summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-05-18 00:35:36 +0000
committerKarl Berry <karl@freefriends.org>2012-05-18 00:35:36 +0000
commitff3def13189580da6fe5254355c8f3b8091bb0fb (patch)
tree13092e119e26dd5354f66cf3746dd0a0cbdd8cb2
parent2721345a8954f1846ff48ba10e634bc65e7b954d (diff)
pmx 2.6.18 (16may12)
git-svn-id: svn://tug.org/texlive/trunk@26478 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/utils/pmx/ChangeLog4
-rw-r--r--Build/source/utils/pmx/Makefile.am4
-rw-r--r--Build/source/utils/pmx/Makefile.in4
-rwxr-xr-xBuild/source/utils/pmx/configure24
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18-PATCHES/ChangeLog19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18-PATCHES/TL-Changes13
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-01-binary17
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-02-bugfix19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-03-DOS-line-endings18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-04-MSVC-complex18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-05-FreeBSD-off_t13
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/AUTHORS1
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/COPYING622
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/ChangeLog206
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/INSTALL365
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/Makefile.am238
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/NEWS1
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-0140
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-0231
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/README11
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/arith.h0
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/config.h.in90
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/configure.ac42
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/Makefile61
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/Notice23
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/README329
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/abort_.c22
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/arithchk.c225
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/backspac.c76
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/c_abs.c20
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/c_cos.c23
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/c_div.c53
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/c_exp.c25
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/c_log.c23
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sin.c23
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sqrt.c41
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/cabs.c33
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/close.c101
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_abs.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_acos.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_asin.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atan.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atn2.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cnjg.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cos.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cosh.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_dim.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_exp.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_imag.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_int.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_lg10.c21
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_log.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_mod.c46
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_nint.c20
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_prod.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sign.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sin.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sinh.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sqrt.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tan.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tanh.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/derf_.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/derfc_.c20
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/dfe.c151
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/dolio.c26
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/dtime_.c63
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/due.c77
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1asc_.c25
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1cmc_.c20
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/endfile.c160
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/erf_.c22
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/erfc_.c22
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/err.c282
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/etime_.c57
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/exit_.c43
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/f2c.h223
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/f77_aloc.c44
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/f77vers.c93
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/fio.h142
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.c525
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.h104
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/fmtlib.c51
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/fp.h28
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell64_.c52
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell_.c52
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/getarg_.c34
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/getenv_.c62
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_abs.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dim.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dnnt.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_indx.c32
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_len.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_mod.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_nint.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/h_sign.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_ge.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_gt.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_le.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_lt.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i77vers.c343
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_abs.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dim.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dnnt.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_indx.c32
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_len.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_mod.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_nint.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/i_sign.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/iargc_.c17
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/iio.c159
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/ilnw.c83
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/inquire.c117
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/l_ge.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/l_gt.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/l_le.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/l_lt.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitbits.c68
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitshft.c17
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/lio.h74
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/lread.c805
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/lwrite.c314
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/main.c147
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/open.c299
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ci.c26
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_dd.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_di.c41
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_hh.c39
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ii.c39
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_qq.c39
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ri.c41
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zi.c60
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zz.c29
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitbits.c72
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitshft.c17
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_abs.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_acos.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_asin.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atan.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atn2.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cnjg.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cos.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cosh.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_dim.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_exp.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_imag.c16
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_int.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_lg10.c21
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_log.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_mod.c46
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_nint.c20
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sign.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sin.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sinh.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sqrt.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tan.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tanh.c19
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/rawio.h41
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/rdfmt.c550
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/rewind.c30
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/rsfe.c91
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/rsli.c109
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/rsne.c616
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cat.c86
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cmp.c50
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/s_copy.c57
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/s_paus.c96
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/s_rnge.c32
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/s_stop.c48
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/sfe.c43
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/sig_die.c51
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/signal1.h35
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/signal_.c21
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/signbit.c24
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/sue.c90
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/sysdep1.h66
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/system_.c42
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/typesize.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/uio.c75
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/uninit.c368
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/util.c54
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/wref.c294
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/wrtfmt.c377
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/wsfe.c78
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/wsle.c42
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/wsne.c32
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/xwsne.c77
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/z_abs.c18
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/z_cos.c21
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/z_div.c50
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/z_exp.c23
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/z_log.c121
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sin.c21
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sqrt.c35
-rwxr-xr-xBuild/source/utils/pmx/pmx-2.6.18/pmx.test25
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/pmx2617.f23597
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/pmx2618.for23646
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/pmx2618.for.orig23646
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/pmxab.c37988
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/scor2prt.c2775
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/scor2prt.f1619
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/scor2prt.for1620
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/scor2prt.for.orig1619
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/tests/barsant.midbin0 -> 3077 bytes
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pml24
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pmx68
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/tests/barsant.tex307
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/tests/barsant1.pmx48
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/tests/barsant2.pmx66
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/version.ac11
-rw-r--r--Build/source/utils/pmx/pmx-2.6.18/w32getc.c14
-rw-r--r--Build/source/utils/pmx/tests/barsant.midbin3077 -> 3077 bytes
-rw-r--r--Build/source/utils/pmx/tests/barsant.pml2
-rw-r--r--Build/source/utils/pmx/version.ac2
l---------Master/bin/alpha-linux/pmx1
l---------Master/bin/alpha-linux/pmx2pdf1
-rwxr-xr-xMaster/bin/alpha-linux/prepmxbin153472 -> 0 bytes
l---------Master/bin/amd64-freebsd/pmx2pdf1
l---------Master/bin/amd64-kfreebsd/pmx1
l---------Master/bin/amd64-kfreebsd/pmx2pdf1
-rwxr-xr-xMaster/bin/amd64-kfreebsd/prepmxbin103824 -> 0 bytes
l---------Master/bin/armel-linux/pmx1
l---------Master/bin/armel-linux/pmx2pdf1
-rwxr-xr-xMaster/bin/armel-linux/prepmxbin95512 -> 0 bytes
l---------Master/bin/i386-cygwin/pmx1
l---------Master/bin/i386-cygwin/pmx2pdf1
-rwxr-xr-xMaster/bin/i386-cygwin/prepmx.exebin95246 -> 0 bytes
l---------Master/bin/i386-freebsd/pmx2pdf1
l---------Master/bin/i386-kfreebsd/pmx1
l---------Master/bin/i386-kfreebsd/pmx2pdf1
-rwxr-xr-xMaster/bin/i386-kfreebsd/prepmxbin103288 -> 0 bytes
l---------Master/bin/i386-linux/pmx1
l---------Master/bin/i386-linux/pmx2pdf1
-rwxr-xr-xMaster/bin/i386-linux/prepmxbin96196 -> 0 bytes
l---------Master/bin/i386-netbsd/pmx2pdf1
l---------Master/bin/i386-solaris/pmx2pdf1
l---------Master/bin/mips-irix/pmx2pdf1
l---------Master/bin/mipsel-linux/pmx1
l---------Master/bin/mipsel-linux/pmx2pdf1
-rwxr-xr-xMaster/bin/mipsel-linux/prepmxbin137336 -> 0 bytes
l---------Master/bin/powerpc-aix/pmx1
l---------Master/bin/powerpc-aix/pmx2pdf1
-rwxr-xr-xMaster/bin/powerpc-aix/prepmxbin106911 -> 0 bytes
l---------Master/bin/powerpc-linux/pmx2pdf1
l---------Master/bin/sparc-solaris/pmx1
l---------Master/bin/sparc-solaris/pmx2pdf1
-rwxr-xr-xMaster/bin/sparc-solaris/prepmxbin125328 -> 0 bytes
l---------Master/bin/universal-darwin/pmx1
l---------Master/bin/universal-darwin/pmx2pdf1
-rwxr-xr-xMaster/bin/universal-darwin/prepmxbin218212 -> 0 bytes
-rwxr-xr-xMaster/bin/win32/pmx2pdf.exebin0 -> 1536 bytes
-rwxr-xr-xMaster/bin/win32/prepmx.exebin85504 -> 0 bytes
l---------Master/bin/x86_64-darwin/pmx1
l---------Master/bin/x86_64-darwin/pmx2pdf1
-rwxr-xr-xMaster/bin/x86_64-darwin/prepmxbin121556 -> 0 bytes
l---------Master/bin/x86_64-linux/pmx1
l---------Master/bin/x86_64-linux/pmx2pdf1
-rwxr-xr-xMaster/bin/x86_64-linux/prepmxbin105624 -> 0 bytes
l---------Master/bin/x86_64-solaris/pmx2pdf1
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmx.pdfbin4342 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmx2pdf.1 (renamed from Master/texmf-dist/doc/generic/pmx/pmx.1)6
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmx2pdf.pdfbin0 -> 4347 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/README12
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/addresses.txt9
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/btennent.eps40
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/call_addr.txt84
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.eps108
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.pngbin323 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.eps94
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.pngbin315 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.eps92
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.pngbin343 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.eps96
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.pngbin342 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.eps108
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.pngbin308 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.eps44
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.pngbin358 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.eps92
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.pngbin351 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.eps55
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.pdfbin1452 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.pngbin408 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.eps96
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.pngbin316 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.eps96
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.pngbin333 -> 0 bytes
-rwxr-xr-xMaster/texmf-dist/doc/generic/pmx/pmxccn/addresses/png2eps.bat19
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.eps90
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.pngbin297 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.eps78
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.pngbin363 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.eps112
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.pngbin408 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/14.eps822
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/18.eps756
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/19.eps1392
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/20.eps4
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21k.eps1230
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21m.eps796
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21n.eps790
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22.eps954
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22k.eps1218
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22m.eps1032
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22n.eps980
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27.eps566
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27a.eps500
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/28.eps560
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29.eps496
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29a.eps488
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29b.eps508
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29c.eps490
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/34.eps478
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Donjump.eps394
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Haydn.eps250
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/JChrBach.eps1614
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDI.eps140
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDIbaroque.eps250
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/agon.eps2794
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/autobeam.eps4
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bars.eps1432
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beams.eps1894
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven0.eps1814
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven1.eps1986
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bloch.eps1712
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bruckner.eps1126
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini1.eps4060
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini2.eps4196
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini3.eps4114
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chords.eps1420
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chordslur.eps140
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg.eps1460
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg2.eps1438
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefnot.eps1528
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1k.eps1482
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1m.eps1296
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1n.eps1290
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2k.eps1496
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2m.eps1062
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2n.eps1100
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/debussy.eps2158
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolca.eps1468
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolica.eps2294
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dottedslur.eps1192
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dufay.eps2402
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/grace.eps1516
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/haydn.eps2756
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/inlinesample.eps766
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpbeam.eps1448
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpslur.eps1896
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/keychg.eps1430
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs1.eps1414
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs2.eps1454
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurtweaks.eps1494
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/macro.eps1178
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/meter.eps1558
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.eps1252
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.midbin311 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midibaroque.eps809
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mozart.eps1010
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mtrauermus.eps3630
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/notepara.eps1114
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparb.eps920
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparc.eps884
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/ornament.eps3004
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pathetique.eps1882
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pickups.eps1608
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pitch.eps1416
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/poppea.eps1772
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/reloctav.eps1450
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/rests.eps1746
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps1242
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs2.eps1238
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose.eps1192
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose1.eps1184
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose2.eps1186
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose3.eps1186
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/triplerest.eps4
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristano.eps2422
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristans.eps2408
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristn.eps250
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/trists.eps250
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi1.eps250
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi2.eps5180
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/volta.eps1724
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletrest.eps4
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtuplets.eps2284
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletsSich.eps2296
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn.pdfbin1177301 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn2618.pdfbin0 -> 1169591 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn2618.tex (renamed from Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn.tex)1502
-rw-r--r--Master/texmf-dist/doc/support/pmx/ChangeLog205
-rwxr-xr-xMaster/texmf-dist/doc/support/pmx/OSX/pmxabbin0 -> 1540260 bytes
-rwxr-xr-xMaster/texmf-dist/doc/support/pmx/OSX/scor2prtbin0 -> 208560 bytes
-rw-r--r--Master/texmf-dist/doc/support/pmx/README79
-rw-r--r--Master/texmf-dist/doc/support/pmx/pmx-install.pdfbin0 -> 96996 bytes
-rw-r--r--Master/texmf-dist/doc/support/pmx/pmx-install.tex163
-rwxr-xr-xMaster/texmf-dist/scripts/pmx/Windows/pmx2pdf.bat (renamed from Master/texmf-dist/scripts/pmx/Windows/pmx.bat)4
-rwxr-xr-xMaster/texmf-dist/scripts/pmx/pmx2pdf.lua (renamed from Master/texmf-dist/scripts/pmx/pmx.lua)16
-rw-r--r--Master/texmf/doc/man/man1/pmx.man1.pdfbin4393 -> 0 bytes
-rw-r--r--Master/texmf/doc/man/man1/pmx2pdf.1 (renamed from Master/texmf/doc/man/man1/pmx.1)6
-rw-r--r--Master/texmf/doc/man/man1/pmx2pdf.man1.pdfbin0 -> 4394 bytes
-rw-r--r--Master/texmf/doc/man/man1/prepmx.195
-rw-r--r--Master/texmf/doc/man/man1/prepmx.man1.pdfbin6269 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/bin/tlpkginfo2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds17
-rw-r--r--Master/tlpkg/tlpsrc/pmx.tlpsrc7
407 files changed, 196369 insertions, 66309 deletions
diff --git a/Build/source/utils/pmx/ChangeLog b/Build/source/utils/pmx/ChangeLog
index 9d507b1f556..abd84a025e9 100644
--- a/Build/source/utils/pmx/ChangeLog
+++ b/Build/source/utils/pmx/ChangeLog
@@ -1,3 +1,7 @@
+2012-05-18 Karl Berry <karl@tug.org>
+
+ * pmx-2.6.18.
+
2012-04-01 Peter Breitenlohner <peb@mppmu.mpg.de>
* w32getc.c (new): Handle DOS line endings (on Windows).
diff --git a/Build/source/utils/pmx/Makefile.am b/Build/source/utils/pmx/Makefile.am
index fb4500cb604..117121f71fb 100644
--- a/Build/source/utils/pmx/Makefile.am
+++ b/Build/source/utils/pmx/Makefile.am
@@ -235,7 +235,7 @@ EXTRA_libf2c_a_SOURCES += \
EXTRA_libf2c_a_SOURCES += \
$(PMX_TREE)/libf2c/signbit.c
-lua_scripts = pmx
+lua_scripts = pmx2pdf
scriptsdir = texmf-dist/scripts/pmx
nodist_bin_SCRIPTS =
@@ -249,7 +249,7 @@ install-data-hook: install-lua-links
uninstall-hook: uninstall-links
-dist_man1_MANS = pmx.1 pmxab.1 scor2prt.1
+dist_man1_MANS = pmx2pdf.1 pmxab.1 scor2prt.1
## Tests
##
diff --git a/Build/source/utils/pmx/Makefile.in b/Build/source/utils/pmx/Makefile.in
index 9062b06b9be..b96e46f01c4 100644
--- a/Build/source/utils/pmx/Makefile.in
+++ b/Build/source/utils/pmx/Makefile.in
@@ -484,7 +484,7 @@ EXTRA_libf2c_a_SOURCES = $(PMX_TREE)/libf2c/uninit.c \
$(PMX_TREE)/libf2c/ftell64_.c $(PMX_TREE)/libf2c/pow_qq.c \
$(PMX_TREE)/libf2c/qbitbits.c $(PMX_TREE)/libf2c/qbitshft.c \
$(PMX_TREE)/libf2c/signbit.c
-lua_scripts = pmx
+lua_scripts = pmx2pdf
scriptsdir = texmf-dist/scripts/pmx
nodist_bin_SCRIPTS = $(am__append_2)
all_scripts = $(lua_scripts) $(perl_scripts) $(shell_scripts)
@@ -492,7 +492,7 @@ all_scripts = $(lua_scripts) $(perl_scripts) $(shell_scripts)
@WIN32_TRUE@@WIN32_WRAP_TRUE@runscript = $(top_srcdir)/../../texk/texlive/w32_wrapper/runscript.exe
texmfdir = $(datarootdir)/$(scriptsdir)
dist_texmf_SCRIPTS = $(lua_scripts:=.lua)
-dist_man1_MANS = pmx.1 pmxab.1 scor2prt.1
+dist_man1_MANS = pmx2pdf.1 pmxab.1 scor2prt.1
TESTS = pmx.test
DISTCLEANFILES = barsant* pmxaerr.dat
all: all-am
diff --git a/Build/source/utils/pmx/configure b/Build/source/utils/pmx/configure
index 828e0c10433..1e5b69f192b 100755
--- a/Build/source/utils/pmx/configure
+++ b/Build/source/utils/pmx/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pmx for TeX Live 2.6.17.
+# Generated by GNU Autoconf 2.69 for pmx for TeX Live 2.6.18.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,12 +580,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='pmx for TeX Live'
PACKAGE_TARNAME='pmx-for-tex-live'
-PACKAGE_VERSION='2.6.17'
-PACKAGE_STRING='pmx for TeX Live 2.6.17'
+PACKAGE_VERSION='2.6.18'
+PACKAGE_STRING='pmx for TeX Live 2.6.18'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="pmx-2.6.17/pmxab.c"
+ac_unique_file="pmx-2.6.18/pmxab.c"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -1275,7 +1275,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures pmx for TeX Live 2.6.17 to adapt to many kinds of systems.
+\`configure' configures pmx for TeX Live 2.6.18 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1342,7 +1342,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of pmx for TeX Live 2.6.17:";;
+ short | recursive ) echo "Configuration of pmx for TeX Live 2.6.18:";;
esac
cat <<\_ACEOF
@@ -1437,7 +1437,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-pmx for TeX Live configure 2.6.17
+pmx for TeX Live configure 2.6.18
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1831,7 +1831,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by pmx for TeX Live $as_me 2.6.17, which was
+It was created by pmx for TeX Live $as_me 2.6.18, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2665,7 +2665,7 @@ fi
# Define the identity of the package.
PACKAGE='pmx-for-tex-live'
- VERSION='2.6.17'
+ VERSION='2.6.18'
cat >>confdefs.h <<_ACEOF
@@ -4524,7 +4524,7 @@ if test $ac_cv_sizeof_long_long -lt 8; then
AM_CPPFLAGS="$AM_CPPPFLAGS -DNO_LONG_LONG"
fi
-PMX_TREE=pmx-2.6.17
+PMX_TREE=pmx-2.6.18
ac_config_files="$ac_config_files Makefile"
@@ -5107,7 +5107,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by pmx for TeX Live $as_me 2.6.17, which was
+This file was extended by pmx for TeX Live $as_me 2.6.18, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5164,7 +5164,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-pmx for TeX Live config.status 2.6.17
+pmx for TeX Live config.status 2.6.18
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/utils/pmx/pmx-2.6.18-PATCHES/ChangeLog b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/ChangeLog
new file mode 100644
index 00000000000..783c0504d7a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/ChangeLog
@@ -0,0 +1,19 @@
+2012-04-01 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-05-FreeBSD-off_t (new): Build fix for FreeBSD.
+ Mail from Nikola Lecic [tlbuild] 21 Apr 2012 20:40:21.
+
+2012-04-01 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-03-DOS-line-endings, patch-04-MSVC-complex (new): WIN32.
+ Mail from Akira, 31 Mar 2012 21:36:26.
+
+2012-03-28 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-01-binary (new): Always use binary mode for WIN32.
+ Mail from Akira, 29 Mar 2012 23:50:53.
+
+ * patch-02-bugfix (new): Bug fix, should be fixed in Fortran.
+
+Copyright (C) 2012 Peter Breitenlohner <tex-live@tug.org>
+You may freely use, modify and/or distribute this file.
diff --git a/Build/source/utils/pmx/pmx-2.6.18-PATCHES/TL-Changes b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/TL-Changes
new file mode 100644
index 00000000000..8e04162140c
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/TL-Changes
@@ -0,0 +1,13 @@
+Changes applied to the pmx-2.6.18 tree as obtained from:
+ http://www.ctan.org/tex-archive/support/pmx/
+
+Remove:
+ Makefile.in
+ aclocal.m4
+ configure
+ depcomp
+ install-sh
+ missing
+
+(looks like the tests and other things are now in the dist, but have to
+ignore that right now, sorry. --karl)
diff --git a/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-01-binary b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-01-binary
new file mode 100644
index 00000000000..16819f76212
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-01-binary
@@ -0,0 +1,17 @@
+ On Windows fseek() etc. are meaningful only for binary access.
+
+ Mail from Akira, 29 Mar 2012 23:50:53.
+
+diff -ur pmx-2.6.17.orig/libf2c/open.c pmx-2.6.17/libf2c/open.c
+--- pmx-2.6.17.orig/libf2c/open.c 2012-03-26 12:09:53.000000000 +0200
++++ pmx-2.6.17/libf2c/open.c 2012-03-29 17:12:53.000000000 +0200
+@@ -30,6 +30,9 @@
+ #ifdef NON_ANSI_RW_MODES
+ char *f__r_mode[2] = {"r", "r"};
+ char *f__w_mode[4] = {"w", "w", "r+w", "r+w"};
++#elif defined(WIN32)
++char *f__r_mode[2] = {"rb", "rb"};
++char *f__w_mode[4] = {"wb", "wb", "rb+", "rb+"};
+ #else
+ char *f__r_mode[2] = {"rb", "r"};
+ char *f__w_mode[4] = {"wb", "w", "r+b", "r+"};
diff --git a/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-02-bugfix b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-02-bugfix
new file mode 100644
index 00000000000..58de7f58ef1
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-02-bugfix
@@ -0,0 +1,19 @@
+ This should really be fixed in the Fortran source.
+
+diff -ur pmx-2.6.17.orig/scor2prt.c pmx-2.6.17/scor2prt.c
+--- pmx-2.6.17.orig/scor2prt.c 2012-03-25 00:00:34.000000000 +0100
++++ pmx-2.6.17/scor2prt.c 2012-03-29 16:59:56.000000000 +0200
+@@ -22,10 +22,10 @@
+ integer nvi[24], nsyst, nvnow;
+ };
+ struct all_2_ {
+- integer noinow, iorig[24], noinst, insetup;
+- real replacing;
++ integer noinow, iorig[24], noinst;
++ logical insetup, replacing;
+ integer instnum[24];
+- real botv[24];
++ logical botv[24];
+ integer nvi[24], nsyst, nvnow;
+ };
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-03-DOS-line-endings b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-03-DOS-line-endings
new file mode 100644
index 00000000000..5e36c101b5a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-03-DOS-line-endings
@@ -0,0 +1,18 @@
+ Handle DOS line endings (using additional file ../w32getc.c).
+
+ Mail from Akira, 31 Mar 2012 21:36:26.
+
+diff -ur pmx-2.6.17.orig/libf2c/fio.h pmx-2.6.17/libf2c/fio.h
+--- pmx-2.6.17.orig/libf2c/fio.h 2012-03-26 12:09:53.000000000 +0200
++++ pmx-2.6.17/libf2c/fio.h 2012-04-01 14:49:20.000000000 +0200
+@@ -2,6 +2,10 @@
+ #include "sysdep1.h"
+ #endif
+ #include "stdio.h"
++#ifdef WIN32
++extern int w32getc(FILE *f);
++#define getc w32getc
++#endif
+ #include "errno.h"
+ #ifndef NULL
+ /* ANSI C */
diff --git a/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-04-MSVC-complex b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-04-MSVC-complex
new file mode 100644
index 00000000000..4017e79ac99
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-04-MSVC-complex
@@ -0,0 +1,18 @@
+ _COMPLEX_DEFINED should be defined for MSVC, otherwise
+ complex is redefined inconsistently in <math.h>.
+
+ Mail from Akira, 31 Mar 2012 21:36:26.
+
+diff -ur pmx-2.6.17.orig/libf2c/f2c.h pmx-2.6.17/libf2c/f2c.h
+--- pmx-2.6.17.orig/libf2c/f2c.h 2012-03-26 12:09:53.000000000 +0200
++++ pmx-2.6.17/libf2c/f2c.h 2012-04-01 14:50:19.000000000 +0200
+@@ -13,6 +13,9 @@
+ typedef short int shortint;
+ typedef float real;
+ typedef double doublereal;
++#ifdef WIN32
++#define _COMPLEX_DEFINED 1
++#endif
+ typedef struct { real r, i; } complex;
+ typedef struct { doublereal r, i; } doublecomplex;
+ typedef long int logical;
diff --git a/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-05-FreeBSD-off_t b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-05-FreeBSD-off_t
new file mode 100644
index 00000000000..8131c75d023
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18-PATCHES/patch-05-FreeBSD-off_t
@@ -0,0 +1,13 @@
+ On FreeBSD (and maybe others) we need <sys/types.h> for off_t.
+
+diff -ur pmx-2.6.17.orig/libf2c/fio.h pmx-2.6.17/libf2c/fio.h
+--- pmx-2.6.17.orig/libf2c/fio.h 2012-04-01 14:49:20.000000000 +0200
++++ pmx-2.6.17/libf2c/fio.h 2012-04-23 10:06:01.000000000 +0200
+@@ -1,6 +1,7 @@
+ #ifndef SYSDEP_H_INCLUDED
+ #include "sysdep1.h"
+ #endif
++#include <sys/types.h> /* for off_t */
+ #include "stdio.h"
+ #ifdef WIN32
+ extern int w32getc(FILE *f);
diff --git a/Build/source/utils/pmx/pmx-2.6.18/AUTHORS b/Build/source/utils/pmx/pmx-2.6.18/AUTHORS
new file mode 100644
index 00000000000..2fa3681a96f
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/AUTHORS
@@ -0,0 +1 @@
+Don Simons dsimons@roadrunner.com
diff --git a/Build/source/utils/pmx/pmx-2.6.18/COPYING b/Build/source/utils/pmx/pmx-2.6.18/COPYING
new file mode 100644
index 00000000000..92bc3d8dc11
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/COPYING
@@ -0,0 +1,622 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/ChangeLog b/Build/source/utils/pmx/pmx-2.6.18/ChangeLog
new file mode 100644
index 00000000000..a6bdd7ee272
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/ChangeLog
@@ -0,0 +1,206 @@
+Changes from PMX 2.5 to 2.603, 15 April 2011
+
+2.501 (Note: new scor2prt)
+
+Bugfix: initialize index in PMX subroutine putorn to eliminate subscript
+error detected in some compilers Bugfix in scor2prt: Ignore special
+treatment of special symbols if they appear between double quotes.
+Tweak: move end of first part of line­break ties slightly to the right.
+
+2.502 (Note: new pmx.tex)
+
+The height of a figured bass vertical stack can now be adjusted upward by
+an integral number of \internote by appending "+" and the number. Recall
+that it can already be moved downward 4\internote by prepending "_"
+(underscore). The two options can be combined to provide full control
+over the vertical position. Ties can now be represented with braces
+"{" before a note and "}" after. Both are equivalent to "t" after the
+note. (Thanks to Dirk Laurie). In pmx.tex all the commands of the form
+\font\...=\fontid sy1000 have been changed to \font\...=cmsy10 (Thanks
+to Olivier Vogel).
+
+2.503
+
+Enable arpeggio left shift with ?­[x] Allow musicsize of 24 and 29.
+Bugfix: Fix bug introduced in 2.415 which caused error in printing
+replacement number in xtup.
+
+2.504
+
+Gap between normal grace and main note: X[x] as option to the G command,
+where x is the gap size in notehead widths. Bugfix: og (segno) now
+works OK when nv .ne. noinst.
+
+2.505
+
+A new global option AK activates special rules for vertical positioning of
+rests in two­voice staves. By way of background, without the new option,
+rests in two­voice staves have default positions based on a simple rule
+that is not context­sensitive: those in the lower voice (the one before
+"//") are 4\internote below their single­voice default positions,
+and those in the upper line are 2\internote above the single­voice
+default. The new option invokes a set of context­sensitive rules to
+set the default position. The baseline rule is to align the rest in
+a horizontal line with the next following note in the same bar. If
+there is no following note in the bar, then it is aligned with the next
+prior note. If there are simulataneous rests in both voices, the old
+rule is applied. When the AK option is in force, it only affects places
+where there are two voices in a staff. It may be toggled on and off at
+the beginning of any input block, using just AK. When the option is in
+effect, any user­defined tweaks on the height of a rest will supersede
+the option for that particular rest, i.e., the tweak will be applied
+relative to the single­voice default position.
+
+2.506
+
+Fixes a bug in AK. Simultaneous, equal­duration rests will be positioned
+according to the default rules.
+
+2.507
+
+Enhancement to global option AK for vertical positioning of rests in
+two­voice staves (see version 2.505): The option L ("look left") in a rest
+will cause the vertical position of that rest to be based on the preceding
+note, rather than the following one as is the default when AK has been
+issued Partial bugfix: In unbeamed xtuplets, the length of the bracket
+and position of the number are now adjusted to account for any inserted
+hardspaces. Bugfix: unbeamed xtups with two flags are now allowed.
+
+2.508
+
+Allow grace notes in xtuplets.
+
+2.509
+
+Correct small bug in arpeggio left­shifting (it got confused when there
+was more than one voice on a staff).
+
+2.510
+
+Bugfix: Correct omission of character variable declarations in new
+subroutine getgrace introduced in 2.508.
+
+2.511 (Note: new scor2prt named s2p2511.exe)
+
+Bugfix: Correct error in horizontal spacing introduced in 2.507.
+Experiment: Remove prohibition against tempo changes in MIDI macros.
+Bugfix in scor2prt: Make it work right when "R" command occurs at end
+of input block and "/" is on next line (as produced by M­Tx).
+
+2.512
+
+Enable multiplicity down­up "][" within xtuplet
+
+2.513
+
+Bugfix: If there is more than one rest at start of a beamed xtuplet marked
+as a forced beam, beam height and slope tweaks are now properly handled.
+Bugfix: If an xtuplet with multiplicity 2 or 3 starts with a rest, the
+rest is now printed correctly. Bugfix: Unbeamed xtuplets (with option
+'a' on first note) with multiplicity 2 or 3 are now printed correctly.
+
+2.514
+
+Bugfix: Correct horizontal spacing when after­grace is immediately
+followed by normal grace. Bugfix: Correct transpose register when it
+has been changed in a single after­grace.
+
+2.515
+
+Bugfix: Correct error in automatic forced beams. Before the fix, if the
+beam did not start an integral number of beam durations from the start
+of the bar, incorrect results would occur. Bugfix: Properly center
+fermata over centered whole­bar rest.
+
+2.516 (Note: new pmx.tex)
+
+Allow figures in voice #2.
+
+2.517
+
+Allow figures in two voices, voice 1 and any other one.
+
+2.518
+
+Bug fixes in 2­voice figures.
+
+2.519
+
+Fix bug that prevented \sk from being output, misaligning some voices.
+
+2.520
+
+New feature: special characters 2+, 4+, 5+, 6+, 9+ for figured bass. In
+the PMX string for any figure, follow the number by 's'. This uses the
+font cmrj from the new package figbas. You must install this font in
+your TeX setup for this to work.
+
+2.521
+
+Bugfix: Font definition syntax corrected so no extra space is introduced.
+
+2.602 (Note: new pmx.tex; requires eTeX)
+
+Allow 24 voices, beams, slurs. Require etex. Include comment about
+doubling size of internal buffer to 131072, requiring gfortran for
+Windows to compile. Correct slur indexing in linebreakslurs. Account for
+comment lines in line count for error messages
+
+2.603 (Note: new scor2prt)
+
+In getpmxmod.for, decrease nline by 2 to fix locating errors following
+reading in an include file. Add some error messages in g1etset.for
+setup data
+
+2.610
+
+Instrument-wise transposition: Ki[instrument #][+/-][trans
+amt.][+/-][new key]. For more than one instrument, may immediately
+repeat everything after "K". Must either be at start of score (right
+after setup), or if later, must be preceded by normal (full score) key
+change command K+0[+/-][new key]. Must be used with relative accidentals
+("Ar"). Part(s) to be transposed must be entered in concert key, and
+will appear transposed in the score. MIDI behavior not yet tested.
+Has not yet been integrated into scor2prt, so for now if you want to
+make parts, only use Ki... as score-only (on line after "%%") and/or
+instrument only (on same line after %[Instrument #]).
+
+2.613
+
+Set error trap if "D" is entered before any notes.
+
+Enhance "AS" to allow spacing adjustments tailored for either smallsize
+or tinysize. As before, "AS" must be followed by nv characters, but now
+they may be "0" for normal, "-" or "s" for small, or "t" for tiny. Still
+must set sizes of instruments with inline TeX.
+
+Bugfix: Fixed broken "K-..." in 2.610.
+
+2.614
+
+Bugfix: revise raised dotted rests by separately raising rest and dot.
+
+2.615 *(Note: new scor2prt)*
+
+Command "AS", described above under 2.163, now also causes staff sizes
+to change (in score only, not parts), so inline TeX is no longer needed
+to change sizes of selected staves.
+
+Scor2prt transfers partwise transposition commands Ki... (see 2.610
+above) into parts.
+
+2.616
+
+"Feature" added: Hairpin dynamics now may span input blocks.
+
+2.617
+
+Repaired several obscure bugs related to platform and compiler
+dependencies; see pmxab.f for details.
+
+2.6.18
+
+For letter and a4 paper respectively, commands "Acl" and "Ac4" set
+horizontal and vertical sizes and offsets that center the page with no
+further adjustments required in dvips.
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/INSTALL b/Build/source/utils/pmx/pmx-2.6.18/INSTALL
new file mode 100644
index 00000000000..7d1c323beae
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/INSTALL
@@ -0,0 +1,365 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+ The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug. Until the bug is fixed you can use this workaround:
+
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/Makefile.am b/Build/source/utils/pmx/pmx-2.6.18/Makefile.am
new file mode 100644
index 00000000000..d595ab06c79
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/Makefile.am
@@ -0,0 +1,238 @@
+## Copyright (C) 2012 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+##
+
+INCLUDES = -I$(srcdir)/libf2c
+AM_CFLAGS = #$(WARNING_CFLAGS)
+
+bin_PROGRAMS = pmxab scor2prt
+
+pmxab_SOURCES = pmxab.c
+
+scor2prt_SOURCES = scor2prt.c
+
+LDADD = libf2c.a
+
+noinst_LIBRARIES = libf2c.a
+
+## libf2c headers
+libf2c_a_SOURCES = \
+ arith.h \
+ libf2c/f2c.h \
+ libf2c/fio.h \
+ libf2c/fmt.h \
+ libf2c/fp.h \
+ libf2c/lio.h \
+ libf2c/rawio.h \
+ libf2c/signal1.h \
+ libf2c/sysdep1.h
+## MISC
+libf2c_a_SOURCES += \
+ libf2c/abort_.c \
+ libf2c/cabs.c \
+ libf2c/derf_.c \
+ libf2c/derfc_.c \
+ libf2c/erf_.c \
+ libf2c/erfc_.c \
+ libf2c/exit_.c \
+ libf2c/f77vers.c \
+ libf2c/getarg_.c \
+ libf2c/getenv_.c \
+ libf2c/i77vers.c \
+ libf2c/iargc_.c \
+ libf2c/main.c \
+ libf2c/s_paus.c \
+ libf2c/s_rnge.c \
+ libf2c/s_stop.c \
+ libf2c/sig_die.c \
+ libf2c/signal_.c \
+ libf2c/system_.c
+## MISC (not used for pmx)
+EXTRA_libf2c_a_SOURCES = \
+ libf2c/uninit.c
+## POW
+libf2c_a_SOURCES += \
+ libf2c/pow_ci.c \
+ libf2c/pow_dd.c \
+ libf2c/pow_di.c \
+ libf2c/pow_hh.c \
+ libf2c/pow_ii.c \
+ libf2c/pow_ri.c \
+ libf2c/pow_zi.c \
+ libf2c/pow_zz.c
+## CX
+libf2c_a_SOURCES += \
+ libf2c/c_abs.c \
+ libf2c/c_cos.c \
+ libf2c/c_div.c \
+ libf2c/c_exp.c \
+ libf2c/c_log.c \
+ libf2c/c_sin.c \
+ libf2c/c_sqrt.c
+## DCX
+libf2c_a_SOURCES += \
+ libf2c/z_abs.c \
+ libf2c/z_cos.c \
+ libf2c/z_div.c \
+ libf2c/z_exp.c \
+ libf2c/z_log.c \
+ libf2c/z_sin.c \
+ libf2c/z_sqrt.c
+## REAL
+libf2c_a_SOURCES += \
+ libf2c/r_abs.c \
+ libf2c/r_acos.c \
+ libf2c/r_asin.c \
+ libf2c/r_atan.c \
+ libf2c/r_atn2.c \
+ libf2c/r_cnjg.c \
+ libf2c/r_cos.c \
+ libf2c/r_cosh.c \
+ libf2c/r_dim.c \
+ libf2c/r_exp.c \
+ libf2c/r_imag.c \
+ libf2c/r_int.c \
+ libf2c/r_lg10.c \
+ libf2c/r_log.c \
+ libf2c/r_mod.c \
+ libf2c/r_nint.c \
+ libf2c/r_sign.c \
+ libf2c/r_sin.c \
+ libf2c/r_sinh.c \
+ libf2c/r_sqrt.c \
+ libf2c/r_tan.c \
+ libf2c/r_tanh.c
+## DBL
+libf2c_a_SOURCES += \
+ libf2c/d_abs.c \
+ libf2c/d_acos.c \
+ libf2c/d_asin.c \
+ libf2c/d_atan.c \
+ libf2c/d_atn2.c \
+ libf2c/d_cnjg.c \
+ libf2c/d_cos.c \
+ libf2c/d_cosh.c \
+ libf2c/d_dim.c \
+ libf2c/d_exp.c \
+ libf2c/d_imag.c \
+ libf2c/d_int.c \
+ libf2c/d_lg10.c \
+ libf2c/d_log.c \
+ libf2c/d_mod.c \
+ libf2c/d_nint.c \
+ libf2c/d_prod.c \
+ libf2c/d_sign.c \
+ libf2c/d_sin.c \
+ libf2c/d_sinh.c \
+ libf2c/d_sqrt.c \
+ libf2c/d_tan.c \
+ libf2c/d_tanh.c
+## INT
+libf2c_a_SOURCES += \
+ libf2c/i_abs.c \
+ libf2c/i_dim.c \
+ libf2c/i_dnnt.c \
+ libf2c/i_indx.c \
+ libf2c/i_len.c \
+ libf2c/i_mod.c \
+ libf2c/i_nint.c \
+ libf2c/i_sign.c \
+ libf2c/lbitbits.c \
+ libf2c/lbitshft.c
+## HALF
+libf2c_a_SOURCES += \
+ libf2c/h_abs.c \
+ libf2c/h_dim.c \
+ libf2c/h_dnnt.c \
+ libf2c/h_indx.c \
+ libf2c/h_len.c \
+ libf2c/h_mod.c \
+ libf2c/h_nint.c \
+ libf2c/h_sign.c
+## CMP
+libf2c_a_SOURCES += \
+ libf2c/hl_ge.c \
+ libf2c/hl_gt.c \
+ libf2c/hl_le.c \
+ libf2c/hl_lt.c \
+ libf2c/l_ge.c \
+ libf2c/l_gt.c \
+ libf2c/l_le.c \
+ libf2c/l_lt.c
+## EFL
+libf2c_a_SOURCES += \
+ libf2c/ef1asc_.c \
+ libf2c/ef1cmc_.c
+## CHAR
+libf2c_a_SOURCES += \
+ libf2c/f77_aloc.c \
+ libf2c/s_cat.c \
+ libf2c/s_cmp.c \
+ libf2c/s_copy.c
+## I77
+libf2c_a_SOURCES += \
+ libf2c/backspac.c \
+ libf2c/close.c \
+ libf2c/dfe.c \
+ libf2c/dolio.c \
+ libf2c/due.c \
+ libf2c/endfile.c \
+ libf2c/err.c \
+ libf2c/fmt.c \
+ libf2c/fmtlib.c \
+ libf2c/ftell_.c \
+ libf2c/iio.c \
+ libf2c/ilnw.c \
+ libf2c/inquire.c \
+ libf2c/lread.c \
+ libf2c/lwrite.c \
+ libf2c/open.c \
+ libf2c/rdfmt.c \
+ libf2c/rewind.c \
+ libf2c/rsfe.c \
+ libf2c/rsli.c \
+ libf2c/rsne.c \
+ libf2c/sfe.c \
+ libf2c/sue.c \
+ libf2c/typesize.c \
+ libf2c/uio.c \
+ libf2c/util.c \
+ libf2c/wref.c \
+ libf2c/wrtfmt.c \
+ libf2c/wsfe.c \
+ libf2c/wsle.c \
+ libf2c/wsne.c \
+ libf2c/xwsne.c
+## TIME
+libf2c_a_SOURCES += \
+ libf2c/dtime_.c \
+ libf2c/etime_.c
+
+## Handle DOS line endings
+if WIN32
+libf2c_a_SOURCES += w32getc.c
+endif WIN32
+
+## QINT (unused)
+EXTRA_libf2c_a_SOURCES += \
+ libf2c/ftell64_.c \
+ libf2c/pow_qq.c \
+ libf2c/qbitbits.c \
+ libf2c/qbitshft.c
+## unused
+EXTRA_libf2c_a_SOURCES += \
+ libf2c/signbit.c
+
+## Tests
+##
+TESTS = pmx.test
+EXTRA_DIST = $(TESTS)
+
+PATCHES = PATCH-2.6.18-01 PATCH-2.6.18-02
+## pmx.test
+EXTRA_DIST += tests/barsant.mid tests/barsant.pml tests/barsant.pmx \
+ tests/barsant.tex tests/barsant1.pmx tests/barsant2.pmx
+EXTRA_DIST += scor2prt.for.orig scor2prt.for pmx2618.for.orig pmx2618.for
+EXTRA_DIST += $(PATCHES)
+DISTCLEANFILES = barsant* pmxaerr.dat
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/NEWS b/Build/source/utils/pmx/pmx-2.6.18/NEWS
new file mode 100644
index 00000000000..533cebce439
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/NEWS
@@ -0,0 +1 @@
+Missing logical declaration in sco2prt.for added (PATCH-2.6.18-01).
diff --git a/Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-01 b/Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-01
new file mode 100644
index 00000000000..79b6bf23c46
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-01
@@ -0,0 +1,40 @@
+*** pmx2618.for.orig 2012-04-25 13:36:16.590777551 -0400
+--- pmx2618.for 2012-04-25 13:37:15.659777518 -0400
+***************
+*** 753,760 ****
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+! call getarg(1,jobname,idum) ! May need to replace this w/ next line
+! c call getarg(1,jobname)
+ end if
+ 10 ljob = lenstr(jobname,44)
+ if (ljob .gt. 44) then
+--- 753,760 ----
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+! c call getarg(1,jobname,idum) ! May need to replace this w/ next line
+! call getarg(1,jobname)
+ end if
+ 10 ljob = lenstr(jobname,44)
+ if (ljob .gt. 44) then
+***************
+*** 766,773 ****
+ else if (numargs .eq. 2) then
+ if (ljob.eq.2 .and. jobname(1:2).eq.'-o') then
+ optimize = .true.
+! call getarg(2,jobname,idum) ! May need to replace this w/ next line
+! c call getarg(2,jobname)
+ numargs = 1
+ go to 10
+ else
+--- 766,773 ----
+ else if (numargs .eq. 2) then
+ if (ljob.eq.2 .and. jobname(1:2).eq.'-o') then
+ optimize = .true.
+! c call getarg(2,jobname,idum) ! May need to replace this w/ next line
+! call getarg(2,jobname)
+ numargs = 1
+ go to 10
+ else
diff --git a/Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-02 b/Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-02
new file mode 100644
index 00000000000..ea95290e8ed
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/PATCH-2.6.18-02
@@ -0,0 +1,31 @@
+*** scor2prt.for.orig 2012-04-25 13:23:32.439903295 -0400
+--- scor2prt.for 2012-04-25 13:30:54.966902964 -0400
+***************
+*** 106,113 ****
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+! call getarg(1,jobname,idum) ! May need to replace this w/ next line
+! c call getarg(1,jobname)
+ end if
+ ljob = lenstr(jobname,27)
+ if (ljob .eq. 0) then
+--- 106,113 ----
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+! c call getarg(1,jobname,idum) ! May need to replace this w/ next line
+! call getarg(1,jobname)
+ end if
+ ljob = lenstr(jobname,27)
+ if (ljob .eq. 0) then
+***************
+*** 1480,1485 ****
+--- 1480,1486 ----
+ c
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
++ logical insetup,replacing,clefpend,botv
+ character*128 line
+ iccount = 0
+ do 1 iset = 1 , 12
diff --git a/Build/source/utils/pmx/pmx-2.6.18/README b/Build/source/utils/pmx/pmx-2.6.18/README
new file mode 100644
index 00000000000..3e5060616d4
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/README
@@ -0,0 +1,11 @@
+This is PMX, version 2.6.18. PMX provides a preprocessor for MusiXTeX.
+
+pmxab builds a TeX input file based on a .pmx input file in a much
+simpler language, making most of the layout decisions by itself. It has
+most of MusiXTeX's functionality, but it also permits in-line TeX to
+give access to virtually all of MusiXTeX. For proof-listening, pmxab will
+make a MIDI file of your score.
+
+scor2prt is an auxiliary program that makes parts from a score.
+
+The author of pmxab and scor2prt is Don Simons (dsimons@roadrunner.com).
diff --git a/Build/source/utils/pmx/pmx-2.6.18/arith.h b/Build/source/utils/pmx/pmx-2.6.18/arith.h
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/arith.h
diff --git a/Build/source/utils/pmx/pmx-2.6.18/config.h.in b/Build/source/utils/pmx/pmx-2.6.18/config.h.in
new file mode 100644
index 00000000000..5706e9a0864
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/config.h.in
@@ -0,0 +1,90 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the `atexit' function. */
+#undef HAVE_ATEXIT
+
+/* Define to 1 if you have the <fenv.h> header file. */
+#undef HAVE_FENV_H
+
+/* Define to 1 if you have the `floor' function. */
+#undef HAVE_FLOOR
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `m' library (-lm). */
+#undef HAVE_LIBM
+
+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+ to 0 otherwise. */
+#undef HAVE_MALLOC
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `memset' function. */
+#undef HAVE_MEMSET
+
+/* Define to 1 if you have the `pow' function. */
+#undef HAVE_POW
+
+/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+ and to 0 otherwise. */
+#undef HAVE_REALLOC
+
+/* Define to 1 if you have the `sqrt' function. */
+#undef HAVE_SQRT
+
+/* 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 <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/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
+
+/* 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 version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to rpl_malloc if the replacement function should be used. */
+#undef malloc
+
+/* Define to rpl_realloc if the replacement function should be used. */
+#undef realloc
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
diff --git a/Build/source/utils/pmx/pmx-2.6.18/configure.ac b/Build/source/utils/pmx/pmx-2.6.18/configure.ac
new file mode 100644
index 00000000000..d56db2ca306
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/configure.ac
@@ -0,0 +1,42 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl
+dnl Copyright (C) 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
+m4_include([version.ac])[] dnl define pmx_version
+AC_INIT([pmx], pmx_version, [rdt@cs.queensu.ca])
+AC_PREREQ([2.63])
+AC_CONFIG_SRCDIR([pmxab.c])
+
+AM_INIT_AUTOMAKE(pmx, pmx_version)
+
+dnl Check compiler and flags
+AC_PROG_CC
+
+dnl initial value for AM_CPPFLAGS
+AC_SUBST([AM_CPPFLAGS], ['-DNON_UNIX_STDIO'])
+
+dnl WIN32 has no <sys/times.h>
+AM_CONDITIONAL([WIN32], [test "x$kpse_cv_have_win32" != xno])
+if test "x$kpse_cv_have_win32" != xno; then
+ AM_CPPFLAGS="$AM_CPPPFLAGS -DUSE_CLOCK"
+fi
+
+dnl Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+
+AC_SEARCH_LIBS([sqrt], [m])
+
+AC_CHECK_SIZEOF([long long])
+if test $ac_cv_sizeof_long_long -lt 8; then
+ AM_CPPFLAGS="$AM_CPPPFLAGS -DNO_LONG_LONG"
+fi
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/Makefile b/Build/source/utils/pmx/pmx-2.6.18/libf2c/Makefile
new file mode 100644
index 00000000000..528a7418bbb
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/Makefile
@@ -0,0 +1,61 @@
+CFLAGS = -Wall -W -pedantic -O2 -DNON_UNIX_STDIO -fPIC
+
+MISC = f77vers.o i77vers.o main.o s_rnge.o abort_.o exit_.o getarg_.o iargc_.o\
+ getenv_.o signal_.o s_stop.o s_paus.o system_.o cabs.o\
+ derf_.o derfc_.o erf_.o erfc_.o sig_die.o uninit.o
+POW = pow_ci.o pow_dd.o pow_di.o pow_hh.o pow_ii.o pow_ri.o pow_zi.o pow_zz.o
+CX = c_abs.o c_cos.o c_div.o c_exp.o c_log.o c_sin.o c_sqrt.o
+DCX = z_abs.o z_cos.o z_div.o z_exp.o z_log.o z_sin.o z_sqrt.o
+REAL = r_abs.o r_acos.o r_asin.o r_atan.o r_atn2.o r_cnjg.o r_cos.o\
+ r_cosh.o r_dim.o r_exp.o r_imag.o r_int.o\
+ r_lg10.o r_log.o r_mod.o r_nint.o r_sign.o\
+ r_sin.o r_sinh.o r_sqrt.o r_tan.o r_tanh.o
+DBL = d_abs.o d_acos.o d_asin.o d_atan.o d_atn2.o\
+ d_cnjg.o d_cos.o d_cosh.o d_dim.o d_exp.o\
+ d_imag.o d_int.o d_lg10.o d_log.o d_mod.o\
+ d_nint.o d_prod.o d_sign.o d_sin.o d_sinh.o\
+ d_sqrt.o d_tan.o d_tanh.o
+INT = i_abs.o i_dim.o i_dnnt.o i_indx.o i_len.o i_mod.o i_nint.o i_sign.o\
+ lbitbits.o lbitshft.o
+HALF = h_abs.o h_dim.o h_dnnt.o h_indx.o h_len.o h_mod.o h_nint.o h_sign.o
+CMP = l_ge.o l_gt.o l_le.o l_lt.o hl_ge.o hl_gt.o hl_le.o hl_lt.o
+EFL = ef1asc_.o ef1cmc_.o
+CHAR = f77_aloc.o s_cat.o s_cmp.o s_copy.o
+I77 = backspac.o close.o dfe.o dolio.o due.o endfile.o err.o\
+ fmt.o fmtlib.o ftell_.o iio.o ilnw.o inquire.o lread.o lwrite.o\
+ open.o rdfmt.o rewind.o rsfe.o rsli.o rsne.o sfe.o sue.o\
+ typesize.o uio.o util.o wref.o wrtfmt.o wsfe.o wsle.o wsne.o xwsne.o
+QINT = pow_qq.o qbitbits.o qbitshft.o ftell64_.o
+TIME = dtime_.o etime_.o
+
+OFILES = $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \
+ $(HALF) $(CMP) $(EFL) $(CHAR) $(I77) $(TIME)
+
+all: arith.h f2c.h signal1.h sysdep1.h libf2c.a
+
+libf2c.a: $(OFILES)
+ ar r libf2c.a $?
+
+f77vers.o: f77vers.c
+
+i77vers.o: i77vers.c
+
+
+arith.h: arithchk.c
+ $(CC) $(CFLAGS) -DNO_FPINIT arithchk.c -lm ||\
+ $(CC) -DNO_LONG_LONG $(CFLAGS) -DNO_FPINIT arithchk.c -lm
+ ./a.out >arith.h
+ rm -f a.out arithchk.o
+
+clean:
+ rm -f libf2c.a *.o arith.h
+
+
+EMPTY_AUTOMAKE_TARGETS = dvi pdf ps info html tags ctags install install-data install-exec uninstall install-dvi install-html install-info install-ps install-pdf installdirs check installcheck mostlyclean distclean maintainer-clean
+.PHONY: $(EMPTY_AUTOMAKE_TARGETS)
+$(EMPTY_AUTOMAKE_TARGETS):
+
+DISTFILES =
+distdir: $(DISTFILES)
+ cp Notice Makefile README *.h *.c $(distdir)
+ cp f2c.h $(top_distdir)
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/Notice b/Build/source/utils/pmx/pmx-2.6.18/libf2c/Notice
new file mode 100644
index 00000000000..261b719bc57
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/Notice
@@ -0,0 +1,23 @@
+/****************************************************************
+Copyright 1990 - 1997 by AT&T, Lucent Technologies and Bellcore.
+
+Permission to use, copy, modify, and distribute this software
+and its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appear in all
+copies and that both that the copyright notice and this
+permission notice and warranty disclaimer appear in supporting
+documentation, and that the names of AT&T, Bell Laboratories,
+Lucent or Bellcore or any of their entities not be used in
+advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+AT&T, Lucent and Bellcore disclaim all warranties with regard to
+this software, including all implied warranties of
+merchantability and fitness. In no event shall AT&T, Lucent or
+Bellcore be liable for any special, indirect or consequential
+damages or any damages whatsoever resulting from loss of use,
+data or profits, whether in an action of contract, negligence or
+other tortious action, arising out of or in connection with the
+use or performance of this software.
+****************************************************************/
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/README b/Build/source/utils/pmx/pmx-2.6.18/libf2c/README
new file mode 100644
index 00000000000..73388d0bd4f
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/README
@@ -0,0 +1,329 @@
+If your system has a double drem() function such that drem(a,b)
+is the IEEE remainder function (with double a, b), then you may
+wish to compile r_mod.c and d_mod.c with IEEE_drem defined.
+
+On machines, such as those using a DEC Alpha processor, on which
+sizeof(short) == 2, sizeof(int) == sizeof(float) == 4, and
+sizeof(long) == sizeof(double) == 8, it suffices to modify f2c.h by
+removing the first occurrence of "long " on each line containing
+"long ". On Unix systems, you can do this by issuing the commands
+ mv f2c.h f2c.h0
+ sed 's/long int /int /' f2c.h0 >f2c.h
+On such machines, one can enable INTEGER*8 by uncommenting the typedefs
+of longint and ulongint in f2c.h and adjusting them, so they read
+ typedef long longint;
+ typedef unsigned long ulongint;
+and by compiling libf2c with -DAllow_TYQUAD, as discussed below.
+
+
+Most of the routines in libf2c are support routines for Fortran
+intrinsic functions or for operations that f2c chooses not
+to do "in line". There are a few exceptions, summarized below --
+functions and subroutines that appear to your program as ordinary
+external Fortran routines.
+
+If you use the REAL valued functions listed below (ERF, ERFC,
+DTIME, and ETIME) with "f2c -R", then you need to compile the
+corresponding source files with -DREAL=float. To do this, it is
+perhaps simplest to add "-DREAL=float" to CFLAGS in the makefile.
+
+1. CALL ABORT prints a message and causes a core dump.
+
+2. ERF(r) and DERF(d) and the REAL and DOUBLE PRECISION
+ error functions (with x REAL and d DOUBLE PRECISION);
+ DERF must be declared DOUBLE PRECISION in your program.
+ Both ERF and DERF assume your C library provides the
+ underlying erf() function (which not all systems do).
+
+3. ERFC(r) and DERFC(d) are the complementary error functions:
+ ERFC(r) = 1 - ERF(r) and DERFC(d) = 1.d0 - DERFC(d)
+ (except that their results may be more accurate than
+ explicitly evaluating the above formulae would give).
+ Again, ERFC and r are REAL, and DERFC and d are DOUBLE
+ PRECISION (and must be declared as such in your program),
+ and ERFC and DERFC rely on your system's erfc().
+
+4. CALL GETARG(n,s), where n is an INTEGER and s is a CHARACTER
+ variable, sets s to the n-th command-line argument (or to
+ all blanks if there are fewer than n command-line arguments);
+ CALL GETARG(0,s) sets s to the name of the program (on systems
+ that support this feature). See IARGC below.
+
+5. CALL GETENV(name, value), where name and value are of type
+ CHARACTER, sets value to the environment value, $name, of
+ name (or to blanks if $name has not been set).
+
+6. NARGS = IARGC() sets NARGS to the number of command-line
+ arguments (an INTEGER value).
+
+7. CALL SIGNAL(n,func), where n is an INTEGER and func is an
+ EXTERNAL procedure, arranges for func to be invoked when n
+ occurs (on systems where this makes sense).
+
+If your compiler complains about the signal calls in main.c, s_paus.c,
+and signal_.c, you may need to adjust signal1.h suitably. See the
+comments in signal1.h.
+
+8. ETIME(ARR) and DTIME(ARR) are REAL functions that return
+ execution times. ARR is declared REAL ARR(2). The elapsed
+ user and system CPU times are stored in ARR(1) and ARR(2),
+ respectively. ETIME returns the total elapsed CPU time,
+ i.e., ARR(1) + ARR(2). DTIME returns total elapsed CPU
+ time since the previous call on DTIME.
+
+9. CALL SYSTEM(cmd), where cmd is of type CHARACTER, passes
+ cmd to the system's command processor (on systems where
+ this can be done).
+
+10. CALL FLUSH flushes all buffers.
+
+11. FTELL(i) is an INTEGER function that returns the current
+ offset of Fortran unit i (or -1 if unit i is not open).
+
+12. CALL FSEEK(i, offset, whence, *errlab) attemps to move
+ Fortran unit i to the specified offset: absolute offset
+ if whence = 0; relative to the current offset if whence = 1;
+ relative to the end of the file if whence = 2. It branches
+ to label errlab if unit i is not open or if the call
+ otherwise fails.
+
+The routines whose objects are makefile.u's $(I77) are for I/O.
+The following comments apply to them.
+
+If your system lacks /usr/include/local.h ,
+then you should create an appropriate local.h in
+this directory. An appropriate local.h may simply
+be empty, or it may #define VAX or #define CRAY
+(or whatever else you must do to make fp.h work right).
+Alternatively, edit fp.h to suite your machine.
+
+If your system lacks /usr/include/fcntl.h , then you
+should simply create an empty fcntl.h in this directory.
+If your compiler then complains about creat and open not
+having a prototype, compile with OPEN_DECL defined.
+On many systems, open and creat are declared in fcntl.h .
+
+If your system's sprintf does not work the way ANSI C
+specifies -- specifically, if it does not return the
+number of characters transmitted -- then insert the line
+
+#define USE_STRLEN
+
+at the end of fmt.h . This is necessary with
+at least some versions of Sun software.
+In particular, if you get a warning about an improper
+pointer/integer combination in compiling wref.c, then
+you need to compile with -DUSE_STRLEN .
+
+If your system's fopen does not like the ANSI binary
+reading and writing modes "rb" and "wb", then you should
+compile open.c with NON_ANSI_RW_MODES #defined.
+
+If you get error messages about references to cf->_ptr
+and cf->_base when compiling wrtfmt.c and wsfe.c or to
+stderr->_flag when compiling err.c, then insert the line
+
+#define NON_UNIX_STDIO
+
+at the beginning of fio.h, and recompile everything (or
+at least those modules that contain NON_UNIX_STDIO).
+
+Unformatted sequential records consist of a length of record
+contents, the record contents themselves, and the length of
+record contents again (for backspace). Prior to 17 Oct. 1991,
+the length was of type int; now it is of type long, but you
+can change it back to int by inserting
+
+#define UIOLEN_int
+
+at the beginning of fio.h. This affects only sue.c and uio.c .
+
+If you have a really ancient K&R C compiler that does not understand
+void, add -Dvoid=int to the definition of CFLAGS in the makefile.
+
+On VAX, Cray, or Research Tenth-Edition Unix systems, you may
+need to add -DVAX, -DCRAY, or -DV10 (respectively) to CFLAGS
+to make fp.h work correctly. Alternatively, you may need to
+edit fp.h to suit your machine.
+
+If your compiler complains about the signal calls in main.c, s_paus.c,
+and signal_.c, you may need to adjust signal1.h suitably. See the
+comments in signal1.h.
+
+You may need to supply the following non-ANSI routines:
+
+ fstat(int fileds, struct stat *buf) is similar
+to stat(char *name, struct stat *buf), except that
+the first argument, fileds, is the file descriptor
+returned by open rather than the name of the file.
+fstat is used in the system-dependent routine
+canseek (in the libf2c source file err.c), which
+is supposed to return 1 if it's possible to issue
+seeks on the file in question, 0 if it's not; you may
+need to suitably modify err.c . On non-UNIX systems,
+you can avoid references to fstat and stat by compiling
+with NON_UNIX_STDIO defined; in that case, you may need
+to supply access(char *Name,0), which is supposed to
+return 0 if file Name exists, nonzero otherwise.
+
+ char * mktemp(char *buf) is supposed to replace the
+6 trailing X's in buf with a unique number and then
+return buf. The idea is to get a unique name for
+a temporary file.
+
+On non-UNIX systems, you may need to change a few other,
+e.g.: the form of name computed by mktemp() in endfile.c and
+open.c; the use of the open(), close(), and creat() system
+calls in endfile.c, err.c, open.c; and the modes in calls on
+fopen() and fdopen() (and perhaps the use of fdopen() itself
+-- it's supposed to return a FILE* corresponding to a given
+an integer file descriptor) in err.c and open.c (component ufmt
+of struct unit is 1 for formatted I/O -- text mode on some systems
+-- and 0 for unformatted I/O -- binary mode on some systems).
+Compiling with -DNON_UNIX_STDIO omits all references to creat()
+and almost all references to open() and close(), the exception
+being in the function f__isdev() (in open.c).
+
+If you wish to use translated Fortran that has funny notions
+of record length for direct unformatted I/O (i.e., that assumes
+RECL= values in OPEN statements are not bytes but rather counts
+of some other units -- e.g., 4-character words for VMS), then you
+should insert an appropriate #define for url_Adjust at the
+beginning of open.c . For VMS Fortran, for example,
+#define url_Adjust(x) x *= 4
+would suffice.
+
+By default, Fortran I/O units 5, 6, and 0 are pre-connected to
+stdin, stdout, and stderr, respectively. You can change this
+behavior by changing f_init() in err.c to suit your needs.
+Note that f2c assumes READ(*... means READ(5... and WRITE(*...
+means WRITE(6... . Moreover, an OPEN(n,... statement that does
+not specify a file name (and does not specify STATUS='SCRATCH')
+assumes FILE='fort.n' . You can change this by editing open.c
+and endfile.c suitably.
+
+Unless you adjust the "#define MXUNIT" line in fio.h, Fortran units
+0, 1, ..., 99 are available, i.e., the highest allowed unit number
+is MXUNIT - 1.
+
+Lines protected from compilation by #ifdef Allow_TYQUAD
+are for a possible extension to 64-bit integers in which
+integer = int = 32 bits and longint = long = 64 bits.
+
+The makefile does not attempt to compile pow_qq.c, qbitbits.c,
+and qbitshft.c, which are meant for use with INTEGER*8. To use
+INTEGER*8, you must modify f2c.h to declare longint and ulongint
+appropriately; then add $(QINT) to the end of the makefile's
+dependency list for libf2c.a (if makefile is a copy of makefile.u;
+for the PC makefiles, add pow_qq.obj qbitbits.obj qbitshft.obj
+to the library's dependency list and adjust libf2c.lbc or libf2c.sy
+accordingly). Also add -DAllow_TYQUAD to the makefile's CFLAGS
+assignment. To make longint and ulongint available, it may suffice
+to add -DINTEGER_STAR_8 to the CFLAGS assignment.
+
+Following Fortran 90, s_cat.c and s_copy.c allow the target of a
+(character string) assignment to be appear on its right-hand, at
+the cost of some extra overhead for all run-time concatenations.
+If you prefer the extra efficiency that comes with the Fortran 77
+requirement that the left-hand side of a character assignment not
+be involved in the right-hand side, compile s_cat.c and s_copy.c
+with -DNO_OVERWRITE .
+
+Extensions (Feb. 1993) to NAMELIST processing:
+ 1. Reading a ? instead of &name (the start of a namelist) causes
+the namelist being sought to be written to stdout (unit 6);
+to omit this feature, compile rsne.c with -DNo_Namelist_Questions.
+ 2. Reading the wrong namelist name now leads to an error message
+and an attempt to skip input until the right namelist name is found;
+to omit this feature, compile rsne.c with -DNo_Bad_Namelist_Skip.
+ 3. Namelist writes now insert newlines before each variable; to omit
+this feature, compile xwsne.c with -DNo_Extra_Namelist_Newlines.
+ 4. (Sept. 1995) When looking for the &name that starts namelist
+input, lines whose first non-blank character is something other
+than &, $, or ? are treated as comment lines and ignored, unless
+rsne.c is compiled with -DNo_Namelist_Comments.
+
+Nonstandard extension (Feb. 1993) to open: for sequential files,
+ACCESS='APPEND' (or access='anything else starting with "A" or "a"')
+causes the file to be positioned at end-of-file, so a write will
+append to the file.
+
+Some buggy Fortran programs use unformatted direct I/O to write
+an incomplete record and later read more from that record than
+they have written. For records other than the last, the unwritten
+portion of the record reads as binary zeros. The last record is
+a special case: attempting to read more from it than was written
+gives end-of-file -- which may help one find a bug. Some other
+Fortran I/O libraries treat the last record no differently than
+others and thus give no help in finding the bug of reading more
+than was written. If you wish to have this behavior, compile
+uio.c with -DPad_UDread .
+
+If you want to be able to catch write failures (e.g., due to a
+disk being full) with an ERR= specifier, compile dfe.c, due.c,
+sfe.c, sue.c, and wsle.c with -DALWAYS_FLUSH. This will lead to
+slower execution and more I/O, but should make ERR= work as
+expected, provided fflush returns an error return when its
+physical write fails.
+
+Carriage controls are meant to be interpreted by the UNIX col
+program (or a similar program). Sometimes it's convenient to use
+only ' ' as the carriage control character (normal single spacing).
+If you compile lwrite.c and wsfe.c with -DOMIT_BLANK_CC, formatted
+external output lines will have an initial ' ' quietly omitted,
+making use of the col program unnecessary with output that only
+has ' ' for carriage control.
+
+The Fortran 77 Standard leaves it up to the implementation whether
+formatted writes of floating-point numbers of absolute value < 1 have
+a zero before the decimal point. By default, libI77 omits such
+superfluous zeros, but you can cause them to appear by compiling
+lwrite.c, wref.c, and wrtfmt.c with -DWANT_LEAD_0 .
+
+If your (Unix) system lacks a ranlib command, you don't need it.
+Either comment out the makefile's ranlib invocation, or install
+a harmless "ranlib" command somewhere in your PATH, such as the
+one-line shell script
+
+ exit 0
+
+or (on some systems)
+
+ exec /usr/bin/ar lts $1 >/dev/null
+
+By default, the routines that implement complex and double complex
+division, c_div.c and z_div.c, call sig_die to print an error message
+and exit if they see a divisor of 0, as this is sometimes helpful for
+debugging. On systems with IEEE arithmetic, compiling c_div.c and
+z_div.c with -DIEEE_COMPLEX_DIVIDE causes them instead to set both
+the real and imaginary parts of the result to +INFINITY if the
+numerator is nonzero, or to NaN if it vanishes.
+
+Nowadays most Unix and Linux systems have function
+ int ftruncate(int fildes, off_t len);
+defined in system header file unistd.h that adjusts the length of file
+descriptor fildes to length len. Unless endfile.c is compiled with
+-DNO_TRUNCATE, endfile.c #includes "unistd.h" and calls ftruncate() if
+necessary to shorten files. If your system lacks ftruncate(), compile
+endfile.c with -DNO_TRUNCATE to make endfile.c use the older and more
+portable scheme of shortening a file by copying to a temporary file
+and back again.
+
+The initializations for "f2c -trapuv" are done by _uninit_f2c(),
+whose source is uninit.c, introduced June 2001. On IEEE-arithmetic
+systems, _uninit_f2c should initialize floating-point variables to
+signaling NaNs and, at its first invocation, should enable the
+invalid operation exception. Alas, the rules for distinguishing
+signaling from quiet NaNs were not specified in the IEEE P754 standard,
+nor were the precise means of enabling and disabling IEEE-arithmetic
+exceptions, and these details are thus system dependent. There are
+#ifdef's in uninit.c that specify them for some popular systems. If
+yours is not one of these systems, it may take some detective work to
+discover the appropriate details for your system. Sometimes it helps
+to look in the standard include directories for header files with
+relevant-sounding names, such as ieeefp.h, nan.h, or trap.h, and
+it may be simplest to run experiments to see what distinguishes a
+signaling from a quiet NaN. (If x is initialized to a signaling
+NaN and the invalid operation exception is masked off, as it should
+be by default on IEEE-arithmetic systems, then computing, say,
+y = x + 1 will yield a quiet NaN.)
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/abort_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/abort_.c
new file mode 100644
index 00000000000..fa5aae6b716
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/abort_.c
@@ -0,0 +1,22 @@
+#include "stdio.h"
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern VOID sig_die();
+
+int abort_()
+#else
+extern void sig_die(char*,int);
+
+int abort_(void)
+#endif
+{
+sig_die("Fortran abort routine called", 1);
+return 0; /* not reached */
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/arithchk.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/arithchk.c
new file mode 100644
index 00000000000..94c93e2f2a4
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/arithchk.c
@@ -0,0 +1,225 @@
+/****************************************************************
+Copyright (C) 1997, 1998, 2000 Lucent Technologies
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appear in all
+copies and that both that the copyright notice and this
+permission notice and warranty disclaimer appear in supporting
+documentation, and that the name of Lucent or any of its entities
+not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
+IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+****************************************************************/
+
+/* Try to deduce arith.h from arithmetic properties. */
+
+#include <stdio.h>
+#include <math.h>
+#include <errno.h>
+
+#ifdef NO_FPINIT
+#define fpinit_ASL()
+#else
+#ifndef KR_headers
+extern
+#ifdef __cplusplus
+ "C"
+#endif
+ void fpinit_ASL(void);
+#endif /*KR_headers*/
+#endif /*NO_FPINIT*/
+
+ static int dalign;
+ typedef struct
+Akind {
+ char *name;
+ int kind;
+ } Akind;
+
+ static Akind
+IEEE_8087 = { "IEEE_8087", 1 },
+IEEE_MC68k = { "IEEE_MC68k", 2 },
+IBM = { "IBM", 3 },
+VAX = { "VAX", 4 },
+CRAY = { "CRAY", 5};
+
+ static double t_nan;
+
+ static Akind *
+Lcheck()
+{
+ union {
+ double d;
+ long L[2];
+ } u;
+ struct {
+ double d;
+ long L;
+ } x[2];
+
+ if (sizeof(x) > 2*(sizeof(double) + sizeof(long)))
+ dalign = 1;
+ u.L[0] = u.L[1] = 0;
+ u.d = 1e13;
+ if (u.L[0] == 1117925532 && u.L[1] == -448790528)
+ return &IEEE_MC68k;
+ if (u.L[1] == 1117925532 && u.L[0] == -448790528)
+ return &IEEE_8087;
+ if (u.L[0] == -2065213935 && u.L[1] == 10752)
+ return &VAX;
+ if (u.L[0] == 1267827943 && u.L[1] == 704643072)
+ return &IBM;
+ return 0;
+ }
+
+ static Akind *
+icheck()
+{
+ union {
+ double d;
+ int L[2];
+ } u;
+ struct {
+ double d;
+ int L;
+ } x[2];
+
+ if (sizeof(x) > 2*(sizeof(double) + sizeof(int)))
+ dalign = 1;
+ u.L[0] = u.L[1] = 0;
+ u.d = 1e13;
+ if (u.L[0] == 1117925532 && u.L[1] == -448790528)
+ return &IEEE_MC68k;
+ if (u.L[1] == 1117925532 && u.L[0] == -448790528)
+ return &IEEE_8087;
+ if (u.L[0] == -2065213935 && u.L[1] == 10752)
+ return &VAX;
+ if (u.L[0] == 1267827943 && u.L[1] == 704643072)
+ return &IBM;
+ return 0;
+ }
+
+char *emptyfmt = ""; /* avoid possible warning message with printf("") */
+
+ static Akind *
+ccheck()
+{
+ union {
+ double d;
+ long L;
+ } u;
+ long Cray1;
+
+ /* Cray1 = 4617762693716115456 -- without overflow on non-Crays */
+ Cray1 = printf(emptyfmt) < 0 ? 0 : 4617762;
+ if (printf(emptyfmt, Cray1) >= 0)
+ Cray1 = 1000000*Cray1 + 693716;
+ if (printf(emptyfmt, Cray1) >= 0)
+ Cray1 = 1000000*Cray1 + 115456;
+ u.d = 1e13;
+ if (u.L == Cray1)
+ return &CRAY;
+ return 0;
+ }
+
+ static int
+fzcheck()
+{
+ double a, b;
+ int i;
+
+ a = 1.;
+ b = .1;
+ for(i = 155;; b *= b, i >>= 1) {
+ if (i & 1) {
+ a *= b;
+ if (i == 1)
+ break;
+ }
+ }
+ b = a * a;
+ return b == 0.;
+ }
+
+ static int
+need_nancheck()
+{
+ double t;
+
+ errno = 0;
+ t = log(t_nan);
+ if (errno == 0)
+ return 1;
+ errno = 0;
+ t = sqrt(t_nan);
+ return errno == 0;
+ }
+
+main()
+{
+ FILE *f;
+ Akind *a = 0;
+ int Ldef = 0;
+
+ fpinit_ASL();
+#ifdef WRITE_ARITH_H /* for Symantec's buggy "make" */
+ f = fopen("arith.h", "w");
+ if (!f) {
+ printf("Cannot open arith.h\n");
+ return 1;
+ }
+#else
+ f = stdout;
+#endif
+
+ if (sizeof(double) == 2*sizeof(long))
+ a = Lcheck();
+ else if (sizeof(double) == 2*sizeof(int)) {
+ Ldef = 1;
+ a = icheck();
+ }
+ else if (sizeof(double) == sizeof(long))
+ a = ccheck();
+ if (a) {
+ fprintf(f, "#define %s\n#define Arith_Kind_ASL %d\n",
+ a->name, a->kind);
+ if (Ldef)
+ fprintf(f, "#define Long int\n#define Intcast (int)(long)\n");
+ if (dalign)
+ fprintf(f, "#define Double_Align\n");
+ if (sizeof(char*) == 8)
+ fprintf(f, "#define X64_bit_pointers\n");
+#ifndef NO_LONG_LONG
+ if (sizeof(long long) < 8)
+#endif
+ fprintf(f, "#define NO_LONG_LONG\n");
+ if (a->kind <= 2) {
+ if (fzcheck())
+ fprintf(f, "#define Sudden_Underflow\n");
+ t_nan = -a->kind;
+ if (need_nancheck())
+ fprintf(f, "#define NANCHECK\n");
+ }
+ return 0;
+ }
+ fprintf(f, "/* Unknown arithmetic */\n");
+ return 1;
+ }
+
+#ifdef __sun
+#ifdef __i386
+/* kludge for Intel Solaris */
+void fpsetprec(int x) { }
+#endif
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/backspac.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/backspac.c
new file mode 100644
index 00000000000..908a61897aa
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/backspac.c
@@ -0,0 +1,76 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef KR_headers
+integer f_back(a) alist *a;
+#else
+integer f_back(alist *a)
+#endif
+{ unit *b;
+ OFF_T v, w, x, y, z;
+ uiolen n;
+ FILE *f;
+
+ f__curunit = b = &f__units[a->aunit]; /* curunit for error messages */
+ if(a->aunit >= MXUNIT || a->aunit < 0)
+ err(a->aerr,101,"backspace")
+ if(b->useek==0) err(a->aerr,106,"backspace")
+ if(b->ufd == NULL) {
+ fk_open(1, 1, a->aunit);
+ return(0);
+ }
+ if(b->uend==1)
+ { b->uend=0;
+ return(0);
+ }
+ if(b->uwrt) {
+ t_runc(a);
+ if (f__nowreading(b))
+ err(a->aerr,errno,"backspace")
+ }
+ f = b->ufd; /* may have changed in t_runc() */
+ if(b->url>0)
+ {
+ x=FTELL(f);
+ y = x % b->url;
+ if(y == 0) x--;
+ x /= b->url;
+ x *= b->url;
+ (void) FSEEK(f,x,SEEK_SET);
+ return(0);
+ }
+
+ if(b->ufmt==0)
+ { FSEEK(f,-(OFF_T)sizeof(uiolen),SEEK_CUR);
+ fread((char *)&n,sizeof(uiolen),1,f);
+ FSEEK(f,-(OFF_T)n-2*sizeof(uiolen),SEEK_CUR);
+ return(0);
+ }
+ w = x = FTELL(f);
+ z = 0;
+ loop:
+ while(x) {
+ x -= x < 64 ? x : 64;
+ FSEEK(f,x,SEEK_SET);
+ for(y = x; y < w; y++) {
+ if (getc(f) != '\n')
+ continue;
+ v = FTELL(f);
+ if (v == w) {
+ if (z)
+ goto break2;
+ goto loop;
+ }
+ z = v;
+ }
+ err(a->aerr,(EOF),"backspace")
+ }
+ break2:
+ FSEEK(f, z, SEEK_SET);
+ return 0;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_abs.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_abs.c
new file mode 100644
index 00000000000..858f2c8b4b1
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_abs.c
@@ -0,0 +1,20 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern double f__cabs();
+
+double c_abs(z) complex *z;
+#else
+extern double f__cabs(double, double);
+
+double c_abs(complex *z)
+#endif
+{
+return( f__cabs( z->r, z->i ) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_cos.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_cos.c
new file mode 100644
index 00000000000..29fe49e3cda
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_cos.c
@@ -0,0 +1,23 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+extern double sin(), cos(), sinh(), cosh();
+
+VOID c_cos(r, z) complex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void c_cos(complex *r, complex *z)
+#endif
+{
+ double zi = z->i, zr = z->r;
+ r->r = cos(zr) * cosh(zi);
+ r->i = - sin(zr) * sinh(zi);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_div.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_div.c
new file mode 100644
index 00000000000..59425e7aaad
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_div.c
@@ -0,0 +1,53 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern VOID sig_die();
+VOID c_div(c, a, b)
+complex *a, *b, *c;
+#else
+extern void sig_die(char*,int);
+void c_div(complex *c, complex *a, complex *b)
+#endif
+{
+ double ratio, den;
+ double abr, abi, cr;
+
+ if( (abr = b->r) < 0.)
+ abr = - abr;
+ if( (abi = b->i) < 0.)
+ abi = - abi;
+ if( abr <= abi )
+ {
+ if(abi == 0) {
+#ifdef IEEE_COMPLEX_DIVIDE
+ float af, bf;
+ af = bf = abr;
+ if (a->i != 0 || a->r != 0)
+ af = 1.;
+ c->i = c->r = af / bf;
+ return;
+#else
+ sig_die("complex division by zero", 1);
+#endif
+ }
+ ratio = (double)b->r / b->i ;
+ den = b->i * (1 + ratio*ratio);
+ cr = (a->r*ratio + a->i) / den;
+ c->i = (a->i*ratio - a->r) / den;
+ }
+
+ else
+ {
+ ratio = (double)b->i / b->r ;
+ den = b->r * (1 + ratio*ratio);
+ cr = (a->r + a->i*ratio) / den;
+ c->i = (a->i - a->r*ratio) / den;
+ }
+ c->r = cr;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_exp.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_exp.c
new file mode 100644
index 00000000000..f46508d35b1
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_exp.c
@@ -0,0 +1,25 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+extern double exp(), cos(), sin();
+
+ VOID c_exp(r, z) complex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void c_exp(complex *r, complex *z)
+#endif
+{
+ double expx, zi = z->i;
+
+ expx = exp(z->r);
+ r->r = expx * cos(zi);
+ r->i = expx * sin(zi);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_log.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_log.c
new file mode 100644
index 00000000000..a0ba3f0d8d2
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_log.c
@@ -0,0 +1,23 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+extern double log(), f__cabs(), atan2();
+VOID c_log(r, z) complex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern double f__cabs(double, double);
+
+void c_log(complex *r, complex *z)
+#endif
+{
+ double zi, zr;
+ r->i = atan2(zi = z->i, zr = z->r);
+ r->r = log( f__cabs(zr, zi) );
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sin.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sin.c
new file mode 100644
index 00000000000..c8bc30f2d69
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sin.c
@@ -0,0 +1,23 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+extern double sin(), cos(), sinh(), cosh();
+
+VOID c_sin(r, z) complex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void c_sin(complex *r, complex *z)
+#endif
+{
+ double zi = z->i, zr = z->r;
+ r->r = sin(zr) * cosh(zi);
+ r->i = cos(zr) * sinh(zi);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sqrt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sqrt.c
new file mode 100644
index 00000000000..1678c534d60
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/c_sqrt.c
@@ -0,0 +1,41 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+extern double sqrt(), f__cabs();
+
+VOID c_sqrt(r, z) complex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern double f__cabs(double, double);
+
+void c_sqrt(complex *r, complex *z)
+#endif
+{
+ double mag, t;
+ double zi = z->i, zr = z->r;
+
+ if( (mag = f__cabs(zr, zi)) == 0.)
+ r->r = r->i = 0.;
+ else if(zr > 0)
+ {
+ r->r = t = sqrt(0.5 * (mag + zr) );
+ t = zi / t;
+ r->i = 0.5 * t;
+ }
+ else
+ {
+ t = sqrt(0.5 * (mag - zr) );
+ if(zi < 0)
+ t = -t;
+ r->i = t;
+ t = zi / t;
+ r->r = 0.5 * t;
+ }
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/cabs.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/cabs.c
new file mode 100644
index 00000000000..84750d505cf
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/cabs.c
@@ -0,0 +1,33 @@
+#ifdef KR_headers
+extern double sqrt();
+double f__cabs(real, imag) double real, imag;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double f__cabs(double real, double imag)
+#endif
+{
+double temp;
+
+if(real < 0)
+ real = -real;
+if(imag < 0)
+ imag = -imag;
+if(imag > real){
+ temp = real;
+ real = imag;
+ imag = temp;
+}
+if((real+imag) == real)
+ return(real);
+
+temp = imag/real;
+temp = real*sqrt(1.0 + temp*temp); /*overflow!!*/
+return(temp);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/close.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/close.c
new file mode 100644
index 00000000000..e958c7172a8
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/close.c
@@ -0,0 +1,101 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef KR_headers
+integer f_clos(a) cllist *a;
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#ifdef NON_UNIX_STDIO
+#ifndef unlink
+#define unlink remove
+#endif
+#else
+#ifdef MSDOS
+#include "io.h"
+#else
+#ifdef __cplusplus
+extern "C" int unlink(const char*);
+#else
+extern int unlink(const char*);
+#endif
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+integer f_clos(cllist *a)
+#endif
+{ unit *b;
+
+ if(a->cunit >= MXUNIT) return(0);
+ b= &f__units[a->cunit];
+ if(b->ufd==NULL)
+ goto done;
+ if (b->uscrtch == 1)
+ goto Delete;
+ if (!a->csta)
+ goto Keep;
+ switch(*a->csta) {
+ default:
+ Keep:
+ case 'k':
+ case 'K':
+ if(b->uwrt == 1)
+ t_runc((alist *)a);
+ if(b->ufnm) {
+ fclose(b->ufd);
+ free(b->ufnm);
+ }
+ break;
+ case 'd':
+ case 'D':
+ Delete:
+ fclose(b->ufd);
+ if(b->ufnm) {
+ unlink(b->ufnm); /*SYSDEP*/
+ free(b->ufnm);
+ }
+ }
+ b->ufd=NULL;
+ done:
+ b->uend=0;
+ b->ufnm=NULL;
+ return(0);
+ }
+ void
+#ifdef KR_headers
+f_exit()
+#else
+f_exit(void)
+#endif
+{ int i;
+ static cllist xx;
+ if (!xx.cerr) {
+ xx.cerr=1;
+ xx.csta=NULL;
+ for(i=0;i<MXUNIT;i++)
+ {
+ xx.cunit=i;
+ (void) f_clos(&xx);
+ }
+ }
+}
+ int
+#ifdef KR_headers
+flush_()
+#else
+flush_(void)
+#endif
+{ int i;
+ for(i=0;i<MXUNIT;i++)
+ if(f__units[i].ufd != NULL && f__units[i].uwrt)
+ fflush(f__units[i].ufd);
+return 0;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_abs.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_abs.c
new file mode 100644
index 00000000000..2f7a153c2e3
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_abs.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double d_abs(x) doublereal *x;
+#else
+double d_abs(doublereal *x)
+#endif
+{
+if(*x >= 0)
+ return(*x);
+return(- *x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_acos.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_acos.c
new file mode 100644
index 00000000000..69005b56d76
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_acos.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double acos();
+double d_acos(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_acos(doublereal *x)
+#endif
+{
+return( acos(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_asin.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_asin.c
new file mode 100644
index 00000000000..d5196ab101e
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_asin.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double asin();
+double d_asin(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_asin(doublereal *x)
+#endif
+{
+return( asin(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atan.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atan.c
new file mode 100644
index 00000000000..d8856f8d698
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atan.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double atan();
+double d_atan(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_atan(doublereal *x)
+#endif
+{
+return( atan(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atn2.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atn2.c
new file mode 100644
index 00000000000..56113850ab9
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_atn2.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double atan2();
+double d_atn2(x,y) doublereal *x, *y;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_atn2(doublereal *x, doublereal *y)
+#endif
+{
+return( atan2(*x,*y) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cnjg.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cnjg.c
new file mode 100644
index 00000000000..38471d9bc0e
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cnjg.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ VOID
+#ifdef KR_headers
+d_cnjg(r, z) doublecomplex *r, *z;
+#else
+d_cnjg(doublecomplex *r, doublecomplex *z)
+#endif
+{
+ doublereal zi = z->i;
+ r->r = z->r;
+ r->i = -zi;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cos.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cos.c
new file mode 100644
index 00000000000..12def9ad0fd
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cos.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double cos();
+double d_cos(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_cos(doublereal *x)
+#endif
+{
+return( cos(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cosh.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cosh.c
new file mode 100644
index 00000000000..9214c7a0d82
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_cosh.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double cosh();
+double d_cosh(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_cosh(doublereal *x)
+#endif
+{
+return( cosh(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_dim.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_dim.c
new file mode 100644
index 00000000000..627ddb690fd
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_dim.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double d_dim(a,b) doublereal *a, *b;
+#else
+double d_dim(doublereal *a, doublereal *b)
+#endif
+{
+return( *a > *b ? *a - *b : 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_exp.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_exp.c
new file mode 100644
index 00000000000..e9ab5d4425c
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_exp.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double exp();
+double d_exp(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_exp(doublereal *x)
+#endif
+{
+return( exp(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_imag.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_imag.c
new file mode 100644
index 00000000000..d17b9dd591d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_imag.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double d_imag(z) doublecomplex *z;
+#else
+double d_imag(doublecomplex *z)
+#endif
+{
+return(z->i);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_int.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_int.c
new file mode 100644
index 00000000000..6da4ce35e92
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_int.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+double d_int(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_int(doublereal *x)
+#endif
+{
+return( (*x>0) ? floor(*x) : -floor(- *x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_lg10.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_lg10.c
new file mode 100644
index 00000000000..664c19d9e99
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_lg10.c
@@ -0,0 +1,21 @@
+#include "f2c.h"
+
+#define log10e 0.43429448190325182765
+
+#ifdef KR_headers
+double log();
+double d_lg10(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_lg10(doublereal *x)
+#endif
+{
+return( log10e * log(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_log.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_log.c
new file mode 100644
index 00000000000..e74be02c54e
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_log.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double log();
+double d_log(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_log(doublereal *x)
+#endif
+{
+return( log(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_mod.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_mod.c
new file mode 100644
index 00000000000..3766d9fa828
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_mod.c
@@ -0,0 +1,46 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+#ifdef IEEE_drem
+double drem();
+#else
+double floor();
+#endif
+double d_mod(x,y) doublereal *x, *y;
+#else
+#ifdef IEEE_drem
+double drem(double, double);
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif
+double d_mod(doublereal *x, doublereal *y)
+#endif
+{
+#ifdef IEEE_drem
+ double xa, ya, z;
+ if ((ya = *y) < 0.)
+ ya = -ya;
+ z = drem(xa = *x, ya);
+ if (xa > 0) {
+ if (z < 0)
+ z += ya;
+ }
+ else if (z > 0)
+ z -= ya;
+ return z;
+#else
+ double quotient;
+ if( (quotient = *x / *y) >= 0)
+ quotient = floor(quotient);
+ else
+ quotient = -floor(-quotient);
+ return(*x - (*y) * quotient );
+#endif
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_nint.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_nint.c
new file mode 100644
index 00000000000..66f2dd0ee67
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_nint.c
@@ -0,0 +1,20 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+double d_nint(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_nint(doublereal *x)
+#endif
+{
+return( (*x)>=0 ?
+ floor(*x + .5) : -floor(.5 - *x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_prod.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_prod.c
new file mode 100644
index 00000000000..f9f348b03dd
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_prod.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double d_prod(x,y) real *x, *y;
+#else
+double d_prod(real *x, real *y)
+#endif
+{
+return( (*x) * (*y) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sign.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sign.c
new file mode 100644
index 00000000000..d06e0d19231
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sign.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double d_sign(a,b) doublereal *a, *b;
+#else
+double d_sign(doublereal *a, doublereal *b)
+#endif
+{
+double x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sin.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sin.c
new file mode 100644
index 00000000000..ebd4eec5eeb
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sin.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sin();
+double d_sin(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_sin(doublereal *x)
+#endif
+{
+return( sin(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sinh.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sinh.c
new file mode 100644
index 00000000000..2479a6fab22
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sinh.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sinh();
+double d_sinh(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_sinh(doublereal *x)
+#endif
+{
+return( sinh(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sqrt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sqrt.c
new file mode 100644
index 00000000000..a7fa66c00aa
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_sqrt.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sqrt();
+double d_sqrt(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_sqrt(doublereal *x)
+#endif
+{
+return( sqrt(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tan.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tan.c
new file mode 100644
index 00000000000..7d252c4d5cf
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tan.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double tan();
+double d_tan(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_tan(doublereal *x)
+#endif
+{
+return( tan(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tanh.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tanh.c
new file mode 100644
index 00000000000..415b58508b3
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/d_tanh.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double tanh();
+double d_tanh(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double d_tanh(doublereal *x)
+#endif
+{
+return( tanh(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/derf_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/derf_.c
new file mode 100644
index 00000000000..d935d315213
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/derf_.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double erf();
+double derf_(x) doublereal *x;
+#else
+extern double erf(double);
+double derf_(doublereal *x)
+#endif
+{
+return( erf(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/derfc_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/derfc_.c
new file mode 100644
index 00000000000..18f5c619b6f
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/derfc_.c
@@ -0,0 +1,20 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern double erfc();
+
+double derfc_(x) doublereal *x;
+#else
+extern double erfc(double);
+
+double derfc_(doublereal *x)
+#endif
+{
+return( erfc(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/dfe.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/dfe.c
new file mode 100644
index 00000000000..c6b10d0e9c3
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/dfe.c
@@ -0,0 +1,151 @@
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ int
+y_rsk(Void)
+{
+ if(f__curunit->uend || f__curunit->url <= f__recpos
+ || f__curunit->url == 1) return 0;
+ do {
+ getc(f__cf);
+ } while(++f__recpos < f__curunit->url);
+ return 0;
+}
+
+ int
+y_getc(Void)
+{
+ int ch;
+ if(f__curunit->uend) return(-1);
+ if((ch=getc(f__cf))!=EOF)
+ {
+ f__recpos++;
+ if(f__curunit->url>=f__recpos ||
+ f__curunit->url==1)
+ return(ch);
+ else return(' ');
+ }
+ if(feof(f__cf))
+ {
+ f__curunit->uend=1;
+ errno=0;
+ return(-1);
+ }
+ err(f__elist->cierr,errno,"readingd");
+}
+
+ static int
+y_rev(Void)
+{
+ if (f__recpos < f__hiwater)
+ f__recpos = f__hiwater;
+ if (f__curunit->url > 1)
+ while(f__recpos < f__curunit->url)
+ (*f__putn)(' ');
+ if (f__recpos)
+ f__putbuf(0);
+ f__recpos = 0;
+ return(0);
+}
+
+ static int
+y_err(Void)
+{
+ err(f__elist->cierr, 110, "dfe");
+}
+
+ static int
+y_newrec(Void)
+{
+ y_rev();
+ f__hiwater = f__cursor = 0;
+ return(1);
+}
+
+ int
+#ifdef KR_headers
+c_dfe(a) cilist *a;
+#else
+c_dfe(cilist *a)
+#endif
+{
+ f__sequential=0;
+ f__formatted=f__external=1;
+ f__elist=a;
+ f__cursor=f__scale=f__recpos=0;
+ f__curunit = &f__units[a->ciunit];
+ if(a->ciunit>MXUNIT || a->ciunit<0)
+ err(a->cierr,101,"startchk");
+ if(f__curunit->ufd==NULL && fk_open(DIR,FMT,a->ciunit))
+ err(a->cierr,104,"dfe");
+ f__cf=f__curunit->ufd;
+ if(!f__curunit->ufmt) err(a->cierr,102,"dfe")
+ if(!f__curunit->useek) err(a->cierr,104,"dfe")
+ f__fmtbuf=a->cifmt;
+ if(a->cirec <= 0)
+ err(a->cierr,130,"dfe")
+ FSEEK(f__cf,(OFF_T)f__curunit->url * (a->cirec-1),SEEK_SET);
+ f__curunit->uend = 0;
+ return(0);
+}
+#ifdef KR_headers
+integer s_rdfe(a) cilist *a;
+#else
+integer s_rdfe(cilist *a)
+#endif
+{
+ int n;
+ if(!f__init) f_init();
+ f__reading=1;
+ if(n=c_dfe(a))return(n);
+ if(f__curunit->uwrt && f__nowreading(f__curunit))
+ err(a->cierr,errno,"read start");
+ f__getn = y_getc;
+ f__doed = rd_ed;
+ f__doned = rd_ned;
+ f__dorevert = f__donewrec = y_err;
+ f__doend = y_rsk;
+ if(pars_f(f__fmtbuf)<0)
+ err(a->cierr,100,"read start");
+ fmt_bg();
+ return(0);
+}
+#ifdef KR_headers
+integer s_wdfe(a) cilist *a;
+#else
+integer s_wdfe(cilist *a)
+#endif
+{
+ int n;
+ if(!f__init) f_init();
+ f__reading=0;
+ if(n=c_dfe(a)) return(n);
+ if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit))
+ err(a->cierr,errno,"startwrt");
+ f__putn = x_putc;
+ f__doed = w_ed;
+ f__doned= w_ned;
+ f__dorevert = y_err;
+ f__donewrec = y_newrec;
+ f__doend = y_rev;
+ if(pars_f(f__fmtbuf)<0)
+ err(a->cierr,100,"startwrt");
+ fmt_bg();
+ return(0);
+}
+integer e_rdfe(Void)
+{
+ en_fio();
+ return 0;
+}
+integer e_wdfe(Void)
+{
+ return en_fio();
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/dolio.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/dolio.c
new file mode 100644
index 00000000000..4070d879012
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/dolio.c
@@ -0,0 +1,26 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef KR_headers
+extern int (*f__lioproc)();
+
+integer do_lio(type,number,ptr,len) ftnint *number,*type; char *ptr; ftnlen len;
+#else
+extern int (*f__lioproc)(ftnint*, char*, ftnlen, ftnint);
+
+integer do_lio(ftnint *type, ftnint *number, char *ptr, ftnlen len)
+#endif
+{
+ return((*f__lioproc)(number,ptr,len,*type));
+}
+#ifdef __cplusplus
+ }
+#endif
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/dtime_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/dtime_.c
new file mode 100644
index 00000000000..6a09b3e9837
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/dtime_.c
@@ -0,0 +1,63 @@
+#include "time.h"
+
+#ifdef MSDOS
+#undef USE_CLOCK
+#define USE_CLOCK
+#endif
+
+#ifndef REAL
+#define REAL double
+#endif
+
+#ifndef USE_CLOCK
+#define _INCLUDE_POSIX_SOURCE /* for HP-UX */
+#define _INCLUDE_XOPEN_SOURCE /* for HP-UX */
+#include "sys/types.h"
+#include "sys/times.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif
+
+#undef Hz
+#ifdef CLK_TCK
+#define Hz CLK_TCK
+#else
+#ifdef HZ
+#define Hz HZ
+#else
+#define Hz 60
+#endif
+#endif
+
+ REAL
+#ifdef KR_headers
+dtime_(tarray) float *tarray;
+#else
+dtime_(float *tarray)
+#endif
+{
+#ifdef USE_CLOCK
+#ifndef CLOCKS_PER_SECOND
+#define CLOCKS_PER_SECOND Hz
+#endif
+ static double t0;
+ double t = clock();
+ tarray[1] = 0;
+ tarray[0] = (t - t0) / CLOCKS_PER_SECOND;
+ t0 = t;
+ return tarray[0];
+#else
+ struct tms t;
+ static struct tms t0;
+
+ times(&t);
+ tarray[0] = (double)(t.tms_utime - t0.tms_utime) / Hz;
+ tarray[1] = (double)(t.tms_stime - t0.tms_stime) / Hz;
+ t0 = t;
+ return tarray[0] + tarray[1];
+#endif
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/due.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/due.c
new file mode 100644
index 00000000000..a7f4cec4673
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/due.c
@@ -0,0 +1,77 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ int
+#ifdef KR_headers
+c_due(a) cilist *a;
+#else
+c_due(cilist *a)
+#endif
+{
+ if(!f__init) f_init();
+ f__sequential=f__formatted=f__recpos=0;
+ f__external=1;
+ f__curunit = &f__units[a->ciunit];
+ if(a->ciunit>=MXUNIT || a->ciunit<0)
+ err(a->cierr,101,"startio");
+ f__elist=a;
+ if(f__curunit->ufd==NULL && fk_open(DIR,UNF,a->ciunit) ) err(a->cierr,104,"due");
+ f__cf=f__curunit->ufd;
+ if(f__curunit->ufmt) err(a->cierr,102,"cdue")
+ if(!f__curunit->useek) err(a->cierr,104,"cdue")
+ if(f__curunit->ufd==NULL) err(a->cierr,114,"cdue")
+ if(a->cirec <= 0)
+ err(a->cierr,130,"due")
+ FSEEK(f__cf,(OFF_T)(a->cirec-1)*f__curunit->url,SEEK_SET);
+ f__curunit->uend = 0;
+ return(0);
+}
+#ifdef KR_headers
+integer s_rdue(a) cilist *a;
+#else
+integer s_rdue(cilist *a)
+#endif
+{
+ int n;
+ f__reading=1;
+ if(n=c_due(a)) return(n);
+ if(f__curunit->uwrt && f__nowreading(f__curunit))
+ err(a->cierr,errno,"read start");
+ return(0);
+}
+#ifdef KR_headers
+integer s_wdue(a) cilist *a;
+#else
+integer s_wdue(cilist *a)
+#endif
+{
+ int n;
+ f__reading=0;
+ if(n=c_due(a)) return(n);
+ if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit))
+ err(a->cierr,errno,"write start");
+ return(0);
+}
+integer e_rdue(Void)
+{
+ if(f__curunit->url==1 || f__recpos==f__curunit->url)
+ return(0);
+ FSEEK(f__cf,(OFF_T)(f__curunit->url-f__recpos),SEEK_CUR);
+ if(FTELL(f__cf)%f__curunit->url)
+ err(f__elist->cierr,200,"syserr");
+ return(0);
+}
+integer e_wdue(Void)
+{
+#ifdef ALWAYS_FLUSH
+ if (fflush(f__cf))
+ err(f__elist->cierr,errno,"write end");
+#endif
+ return(e_rdue());
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1asc_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1asc_.c
new file mode 100644
index 00000000000..70be0bc2e0b
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1asc_.c
@@ -0,0 +1,25 @@
+/* EFL support routine to copy string b to string a */
+
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define M ( (long) (sizeof(long) - 1) )
+#define EVEN(x) ( ( (x)+ M) & (~M) )
+
+#ifdef KR_headers
+extern VOID s_copy();
+ef1asc_(a, la, b, lb) ftnint *a, *b; ftnlen *la, *lb;
+#else
+extern void s_copy(char*,char*,ftnlen,ftnlen);
+int ef1asc_(ftnint *a, ftnlen *la, ftnint *b, ftnlen *lb)
+#endif
+{
+s_copy( (char *)a, (char *)b, EVEN(*la), *lb );
+return 0; /* ignored return value */
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1cmc_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1cmc_.c
new file mode 100644
index 00000000000..4b420ae6465
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ef1cmc_.c
@@ -0,0 +1,20 @@
+/* EFL support routine to compare two character strings */
+
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+integer ef1cmc_(a, la, b, lb) ftnint *a, *b; ftnlen *la, *lb;
+#else
+extern integer s_cmp(char*,char*,ftnlen,ftnlen);
+integer ef1cmc_(ftnint *a, ftnlen *la, ftnint *b, ftnlen *lb)
+#endif
+{
+return( s_cmp( (char *)a, (char *)b, *la, *lb) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/endfile.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/endfile.c
new file mode 100644
index 00000000000..04020d3802d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/endfile.c
@@ -0,0 +1,160 @@
+#include "f2c.h"
+#include "fio.h"
+
+/* Compile this with -DNO_TRUNCATE if unistd.h does not exist or */
+/* if it does not define int truncate(const char *name, off_t). */
+
+#ifdef MSDOS
+#undef NO_TRUNCATE
+#define NO_TRUNCATE
+#endif
+
+#ifndef NO_TRUNCATE
+#include "unistd.h"
+#endif
+
+#ifdef KR_headers
+extern char *strcpy();
+extern FILE *tmpfile();
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#include "string.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif
+
+extern char *f__r_mode[], *f__w_mode[];
+
+#ifdef KR_headers
+integer f_end(a) alist *a;
+#else
+integer f_end(alist *a)
+#endif
+{
+ unit *b;
+ FILE *tf;
+
+ if(a->aunit>=MXUNIT || a->aunit<0) err(a->aerr,101,"endfile");
+ b = &f__units[a->aunit];
+ if(b->ufd==NULL) {
+ char nbuf[10];
+ sprintf(nbuf,"fort.%ld",(long)a->aunit);
+ if (tf = FOPEN(nbuf, f__w_mode[0]))
+ fclose(tf);
+ return(0);
+ }
+ b->uend=1;
+ return(b->useek ? t_runc(a) : 0);
+}
+
+#ifdef NO_TRUNCATE
+ static int
+#ifdef KR_headers
+copy(from, len, to) FILE *from, *to; register long len;
+#else
+copy(FILE *from, register long len, FILE *to)
+#endif
+{
+ int len1;
+ char buf[BUFSIZ];
+
+ while(fread(buf, len1 = len > BUFSIZ ? BUFSIZ : (int)len, 1, from)) {
+ if (!fwrite(buf, len1, 1, to))
+ return 1;
+ if ((len -= len1) <= 0)
+ break;
+ }
+ return 0;
+ }
+#endif /* NO_TRUNCATE */
+
+ int
+#ifdef KR_headers
+t_runc(a) alist *a;
+#else
+t_runc(alist *a)
+#endif
+{
+ OFF_T loc, len;
+ unit *b;
+ int rc;
+ FILE *bf;
+#ifdef NO_TRUNCATE
+ FILE *tf;
+#endif
+
+ b = &f__units[a->aunit];
+ if(b->url)
+ return(0); /*don't truncate direct files*/
+ loc=FTELL(bf = b->ufd);
+ FSEEK(bf,(OFF_T)0,SEEK_END);
+ len=FTELL(bf);
+ if (loc >= len || b->useek == 0)
+ return(0);
+#ifdef NO_TRUNCATE
+ if (b->ufnm == NULL)
+ return 0;
+ rc = 0;
+ fclose(b->ufd);
+ if (!loc) {
+ if (!(bf = FOPEN(b->ufnm, f__w_mode[b->ufmt])))
+ rc = 1;
+ if (b->uwrt)
+ b->uwrt = 1;
+ goto done;
+ }
+ if (!(bf = FOPEN(b->ufnm, f__r_mode[0]))
+ || !(tf = tmpfile())) {
+#ifdef NON_UNIX_STDIO
+ bad:
+#endif
+ rc = 1;
+ goto done;
+ }
+ if (copy(bf, (long)loc, tf)) {
+ bad1:
+ rc = 1;
+ goto done1;
+ }
+ if (!(bf = FREOPEN(b->ufnm, f__w_mode[0], bf)))
+ goto bad1;
+ rewind(tf);
+ if (copy(tf, (long)loc, bf))
+ goto bad1;
+ b->uwrt = 1;
+ b->urw = 2;
+#ifdef NON_UNIX_STDIO
+ if (b->ufmt) {
+ fclose(bf);
+ if (!(bf = FOPEN(b->ufnm, f__w_mode[3])))
+ goto bad;
+ FSEEK(bf,(OFF_T)0,SEEK_END);
+ b->urw = 3;
+ }
+#endif
+done1:
+ fclose(tf);
+done:
+ f__cf = b->ufd = bf;
+#else /* NO_TRUNCATE */
+ if (b->urw & 2)
+ fflush(b->ufd); /* necessary on some Linux systems */
+#ifndef FTRUNCATE
+#define FTRUNCATE ftruncate
+#endif
+ rc = FTRUNCATE(fileno(b->ufd), loc);
+ /* The following FSEEK is unnecessary on some systems, */
+ /* but should be harmless. */
+ FSEEK(b->ufd, (OFF_T)0, SEEK_END);
+#endif /* NO_TRUNCATE */
+ if (rc)
+ err(a->aerr,111,"endfile");
+ return 0;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/erf_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/erf_.c
new file mode 100644
index 00000000000..532fec61c86
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/erf_.c
@@ -0,0 +1,22 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef REAL
+#define REAL double
+#endif
+
+#ifdef KR_headers
+double erf();
+REAL erf_(x) real *x;
+#else
+extern double erf(double);
+REAL erf_(real *x)
+#endif
+{
+return( erf((double)*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/erfc_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/erfc_.c
new file mode 100644
index 00000000000..6f6c9f10644
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/erfc_.c
@@ -0,0 +1,22 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef REAL
+#define REAL double
+#endif
+
+#ifdef KR_headers
+double erfc();
+REAL erfc_(x) real *x;
+#else
+extern double erfc(double);
+REAL erfc_(real *x)
+#endif
+{
+return( erfc((double)*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/err.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/err.c
new file mode 100644
index 00000000000..b81ffc111f0
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/err.c
@@ -0,0 +1,282 @@
+#include "sysdep1.h" /* here to get stat64 on some badly designed Linux systems */
+#include "f2c.h"
+#ifdef KR_headers
+extern char *malloc();
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#endif
+#include "fio.h"
+#include "fmt.h" /* for struct syl */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*global definitions*/
+unit f__units[MXUNIT]; /*unit table*/
+flag f__init; /*0 on entry, 1 after initializations*/
+cilist *f__elist; /*active external io list*/
+icilist *f__svic; /*active internal io list*/
+flag f__reading; /*1 if reading, 0 if writing*/
+flag f__cplus,f__cblank;
+char *f__fmtbuf;
+flag f__external; /*1 if external io, 0 if internal */
+#ifdef KR_headers
+int (*f__doed)(),(*f__doned)();
+int (*f__doend)(),(*f__donewrec)(),(*f__dorevert)();
+int (*f__getn)(); /* for formatted input */
+void (*f__putn)(); /* for formatted output */
+#else
+int (*f__getn)(void); /* for formatted input */
+void (*f__putn)(int); /* for formatted output */
+int (*f__doed)(struct syl*, char*, ftnlen),(*f__doned)(struct syl*);
+int (*f__dorevert)(void),(*f__donewrec)(void),(*f__doend)(void);
+#endif
+flag f__sequential; /*1 if sequential io, 0 if direct*/
+flag f__formatted; /*1 if formatted io, 0 if unformatted*/
+FILE *f__cf; /*current file*/
+unit *f__curunit; /*current unit*/
+int f__recpos; /*place in current record*/
+OFF_T f__cursor, f__hiwater;
+int f__scale;
+char *f__icptr;
+
+/*error messages*/
+char *F_err[] =
+{
+ "error in format", /* 100 */
+ "illegal unit number", /* 101 */
+ "formatted io not allowed", /* 102 */
+ "unformatted io not allowed", /* 103 */
+ "direct io not allowed", /* 104 */
+ "sequential io not allowed", /* 105 */
+ "can't backspace file", /* 106 */
+ "null file name", /* 107 */
+ "can't stat file", /* 108 */
+ "unit not connected", /* 109 */
+ "off end of record", /* 110 */
+ "truncation failed in endfile", /* 111 */
+ "incomprehensible list input", /* 112 */
+ "out of free space", /* 113 */
+ "unit not connected", /* 114 */
+ "read unexpected character", /* 115 */
+ "bad logical input field", /* 116 */
+ "bad variable type", /* 117 */
+ "bad namelist name", /* 118 */
+ "variable not in namelist", /* 119 */
+ "no end record", /* 120 */
+ "variable count incorrect", /* 121 */
+ "subscript for scalar variable", /* 122 */
+ "invalid array section", /* 123 */
+ "substring out of bounds", /* 124 */
+ "subscript out of bounds", /* 125 */
+ "can't read file", /* 126 */
+ "can't write file", /* 127 */
+ "'new' file exists", /* 128 */
+ "can't append to file", /* 129 */
+ "non-positive record number", /* 130 */
+ "nmLbuf overflow" /* 131 */
+};
+#define MAXERR (sizeof(F_err)/sizeof(char *)+100)
+
+ int
+#ifdef KR_headers
+f__canseek(f) FILE *f; /*SYSDEP*/
+#else
+f__canseek(FILE *f) /*SYSDEP*/
+#endif
+{
+#ifdef NON_UNIX_STDIO
+ return !isatty(fileno(f));
+#else
+ struct STAT_ST x;
+
+ if (FSTAT(fileno(f),&x) < 0)
+ return(0);
+#ifdef S_IFMT
+ switch(x.st_mode & S_IFMT) {
+ case S_IFDIR:
+ case S_IFREG:
+ if(x.st_nlink > 0) /* !pipe */
+ return(1);
+ else
+ return(0);
+ case S_IFCHR:
+ if(isatty(fileno(f)))
+ return(0);
+ return(1);
+#ifdef S_IFBLK
+ case S_IFBLK:
+ return(1);
+#endif
+ }
+#else
+#ifdef S_ISDIR
+ /* POSIX version */
+ if (S_ISREG(x.st_mode) || S_ISDIR(x.st_mode)) {
+ if(x.st_nlink > 0) /* !pipe */
+ return(1);
+ else
+ return(0);
+ }
+ if (S_ISCHR(x.st_mode)) {
+ if(isatty(fileno(f)))
+ return(0);
+ return(1);
+ }
+ if (S_ISBLK(x.st_mode))
+ return(1);
+#else
+ Help! How does fstat work on this system?
+#endif
+#endif
+ return(0); /* who knows what it is? */
+#endif
+}
+
+ void
+#ifdef KR_headers
+f__fatal(n,s) char *s;
+#else
+f__fatal(int n, char *s)
+#endif
+{
+ if(n<100 && n>=0) perror(s); /*SYSDEP*/
+ else if(n >= (int)MAXERR || n < -1)
+ { fprintf(stderr,"%s: illegal error number %d\n",s,n);
+ }
+ else if(n == -1) fprintf(stderr,"%s: end of file\n",s);
+ else
+ fprintf(stderr,"%s: %s\n",s,F_err[n-100]);
+ if (f__curunit) {
+ fprintf(stderr,"apparent state: unit %d ",
+ (int)(f__curunit-f__units));
+ fprintf(stderr, f__curunit->ufnm ? "named %s\n" : "(unnamed)\n",
+ f__curunit->ufnm);
+ }
+ else
+ fprintf(stderr,"apparent state: internal I/O\n");
+ if (f__fmtbuf)
+ fprintf(stderr,"last format: %s\n",f__fmtbuf);
+ fprintf(stderr,"lately %s %s %s %s",f__reading?"reading":"writing",
+ f__sequential?"sequential":"direct",f__formatted?"formatted":"unformatted",
+ f__external?"external":"internal");
+ sig_die(" IO", 1);
+}
+/*initialization routine*/
+ VOID
+f_init(Void)
+{ unit *p;
+
+ f__init=1;
+ p= &f__units[0];
+ p->ufd=stderr;
+ p->useek=f__canseek(stderr);
+ p->ufmt=1;
+ p->uwrt=1;
+ p = &f__units[5];
+ p->ufd=stdin;
+ p->useek=f__canseek(stdin);
+ p->ufmt=1;
+ p->uwrt=0;
+ p= &f__units[6];
+ p->ufd=stdout;
+ p->useek=f__canseek(stdout);
+ p->ufmt=1;
+ p->uwrt=1;
+}
+
+ int
+#ifdef KR_headers
+f__nowreading(x) unit *x;
+#else
+f__nowreading(unit *x)
+#endif
+{
+ OFF_T loc;
+ int ufmt, urw;
+ extern char *f__r_mode[], *f__w_mode[];
+
+ if (x->urw & 1)
+ goto done;
+ if (!x->ufnm)
+ goto cantread;
+ ufmt = x->url ? 0 : x->ufmt;
+ loc = FTELL(x->ufd);
+ urw = 3;
+ if (!FREOPEN(x->ufnm, f__w_mode[ufmt|2], x->ufd)) {
+ urw = 1;
+ if(!FREOPEN(x->ufnm, f__r_mode[ufmt], x->ufd)) {
+ cantread:
+ errno = 126;
+ return 1;
+ }
+ }
+ FSEEK(x->ufd,loc,SEEK_SET);
+ x->urw = urw;
+ done:
+ x->uwrt = 0;
+ return 0;
+}
+
+ int
+#ifdef KR_headers
+f__nowwriting(x) unit *x;
+#else
+f__nowwriting(unit *x)
+#endif
+{
+ OFF_T loc;
+ int ufmt;
+ extern char *f__w_mode[];
+
+ if (x->urw & 2) {
+ if (x->urw & 1)
+ FSEEK(x->ufd, (OFF_T)0, SEEK_CUR);
+ goto done;
+ }
+ if (!x->ufnm)
+ goto cantwrite;
+ ufmt = x->url ? 0 : x->ufmt;
+ if (x->uwrt == 3) { /* just did write, rewind */
+ if (!(f__cf = x->ufd =
+ FREOPEN(x->ufnm,f__w_mode[ufmt],x->ufd)))
+ goto cantwrite;
+ x->urw = 2;
+ }
+ else {
+ loc=FTELL(x->ufd);
+ if (!(f__cf = x->ufd =
+ FREOPEN(x->ufnm, f__w_mode[ufmt | 2], x->ufd)))
+ {
+ x->ufd = NULL;
+ cantwrite:
+ errno = 127;
+ return(1);
+ }
+ x->urw = 3;
+ FSEEK(x->ufd,loc,SEEK_SET);
+ }
+ done:
+ x->uwrt = 1;
+ return 0;
+}
+
+ int
+#ifdef KR_headers
+err__fl(f, m, s) int f, m; char *s;
+#else
+err__fl(int f, int m, char *s)
+#endif
+{
+ if (!f)
+ f__fatal(m, s);
+ if (f__doend)
+ (*f__doend)();
+ return errno = m;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/etime_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/etime_.c
new file mode 100644
index 00000000000..2d9a36d8a31
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/etime_.c
@@ -0,0 +1,57 @@
+#include "time.h"
+
+#ifdef MSDOS
+#undef USE_CLOCK
+#define USE_CLOCK
+#endif
+
+#ifndef REAL
+#define REAL double
+#endif
+
+#ifndef USE_CLOCK
+#define _INCLUDE_POSIX_SOURCE /* for HP-UX */
+#define _INCLUDE_XOPEN_SOURCE /* for HP-UX */
+#include "sys/types.h"
+#include "sys/times.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif
+
+#undef Hz
+#ifdef CLK_TCK
+#define Hz CLK_TCK
+#else
+#ifdef HZ
+#define Hz HZ
+#else
+#define Hz 60
+#endif
+#endif
+
+ REAL
+#ifdef KR_headers
+etime_(tarray) float *tarray;
+#else
+etime_(float *tarray)
+#endif
+{
+#ifdef USE_CLOCK
+#ifndef CLOCKS_PER_SECOND
+#define CLOCKS_PER_SECOND Hz
+#endif
+ double t = clock();
+ tarray[1] = 0;
+ return tarray[0] = t / CLOCKS_PER_SECOND;
+#else
+ struct tms t;
+
+ times(&t);
+ return (tarray[0] = (double)t.tms_utime/Hz)
+ + (tarray[1] = (double)t.tms_stime/Hz);
+#endif
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/exit_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/exit_.c
new file mode 100644
index 00000000000..08e9d07067c
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/exit_.c
@@ -0,0 +1,43 @@
+/* This gives the effect of
+
+ subroutine exit(rc)
+ integer*4 rc
+ stop
+ end
+
+ * with the added side effect of supplying rc as the program's exit code.
+ */
+
+#include "f2c.h"
+#undef abs
+#undef min
+#undef max
+#ifndef KR_headers
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void f_exit(void);
+#endif
+
+ void
+#ifdef KR_headers
+exit_(rc) integer *rc;
+#else
+exit_(integer *rc)
+#endif
+{
+#ifdef NO_ONEXIT
+ f_exit();
+#endif
+ exit(*rc);
+ }
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/f2c.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/f2c.h
new file mode 100644
index 00000000000..b94ee7c8e12
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/f2c.h
@@ -0,0 +1,223 @@
+/* f2c.h -- Standard Fortran to C header file */
+
+/** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed."
+
+ - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
+
+#ifndef F2C_INCLUDE
+#define F2C_INCLUDE
+
+typedef long int integer;
+typedef unsigned long int uinteger;
+typedef char *address;
+typedef short int shortint;
+typedef float real;
+typedef double doublereal;
+typedef struct { real r, i; } complex;
+typedef struct { doublereal r, i; } doublecomplex;
+typedef long int logical;
+typedef short int shortlogical;
+typedef char logical1;
+typedef char integer1;
+#ifdef INTEGER_STAR_8 /* Adjust for integer*8. */
+typedef long long longint; /* system-dependent */
+typedef unsigned long long ulongint; /* system-dependent */
+#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
+#define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
+#endif
+
+#define TRUE_ (1)
+#define FALSE_ (0)
+
+/* Extern is for use with -E */
+#ifndef Extern
+#define Extern extern
+#endif
+
+/* I/O stuff */
+
+#ifdef f2c_i2
+/* for -i2 */
+typedef short flag;
+typedef short ftnlen;
+typedef short ftnint;
+#else
+typedef long int flag;
+typedef long int ftnlen;
+typedef long int ftnint;
+#endif
+
+/*external read, write*/
+typedef struct
+{ flag cierr;
+ ftnint ciunit;
+ flag ciend;
+ char *cifmt;
+ ftnint cirec;
+} cilist;
+
+/*internal read, write*/
+typedef struct
+{ flag icierr;
+ char *iciunit;
+ flag iciend;
+ char *icifmt;
+ ftnint icirlen;
+ ftnint icirnum;
+} icilist;
+
+/*open*/
+typedef struct
+{ flag oerr;
+ ftnint ounit;
+ char *ofnm;
+ ftnlen ofnmlen;
+ char *osta;
+ char *oacc;
+ char *ofm;
+ ftnint orl;
+ char *oblnk;
+} olist;
+
+/*close*/
+typedef struct
+{ flag cerr;
+ ftnint cunit;
+ char *csta;
+} cllist;
+
+/*rewind, backspace, endfile*/
+typedef struct
+{ flag aerr;
+ ftnint aunit;
+} alist;
+
+/* inquire */
+typedef struct
+{ flag inerr;
+ ftnint inunit;
+ char *infile;
+ ftnlen infilen;
+ ftnint *inex; /*parameters in standard's order*/
+ ftnint *inopen;
+ ftnint *innum;
+ ftnint *innamed;
+ char *inname;
+ ftnlen innamlen;
+ char *inacc;
+ ftnlen inacclen;
+ char *inseq;
+ ftnlen inseqlen;
+ char *indir;
+ ftnlen indirlen;
+ char *infmt;
+ ftnlen infmtlen;
+ char *inform;
+ ftnint informlen;
+ char *inunf;
+ ftnlen inunflen;
+ ftnint *inrecl;
+ ftnint *innrec;
+ char *inblank;
+ ftnlen inblanklen;
+} inlist;
+
+#define VOID void
+
+union Multitype { /* for multiple entry points */
+ integer1 g;
+ shortint h;
+ integer i;
+ /* longint j; */
+ real r;
+ doublereal d;
+ complex c;
+ doublecomplex z;
+ };
+
+typedef union Multitype Multitype;
+
+/*typedef long int Long;*/ /* No longer used; formerly in Namelist */
+
+struct Vardesc { /* for Namelist */
+ char *name;
+ char *addr;
+ ftnlen *dims;
+ int type;
+ };
+typedef struct Vardesc Vardesc;
+
+struct Namelist {
+ char *name;
+ Vardesc **vars;
+ int nvars;
+ };
+typedef struct Namelist Namelist;
+
+#define abs(x) ((x) >= 0 ? (x) : -(x))
+#define dabs(x) (doublereal)abs(x)
+#define min(a,b) ((a) <= (b) ? (a) : (b))
+#define max(a,b) ((a) >= (b) ? (a) : (b))
+#define dmin(a,b) (doublereal)min(a,b)
+#define dmax(a,b) (doublereal)max(a,b)
+#define bit_test(a,b) ((a) >> (b) & 1)
+#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
+#define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
+
+/* procedure parameter types for -A and -C++ */
+
+#define F2C_proc_par_types 1
+#ifdef __cplusplus
+typedef int /* Unknown procedure type */ (*U_fp)(...);
+typedef shortint (*J_fp)(...);
+typedef integer (*I_fp)(...);
+typedef real (*R_fp)(...);
+typedef doublereal (*D_fp)(...), (*E_fp)(...);
+typedef /* Complex */ VOID (*C_fp)(...);
+typedef /* Double Complex */ VOID (*Z_fp)(...);
+typedef logical (*L_fp)(...);
+typedef shortlogical (*K_fp)(...);
+typedef /* Character */ VOID (*H_fp)(...);
+typedef /* Subroutine */ int (*S_fp)(...);
+#else
+typedef int /* Unknown procedure type */ (*U_fp)();
+typedef shortint (*J_fp)();
+typedef integer (*I_fp)();
+typedef real (*R_fp)();
+typedef doublereal (*D_fp)(), (*E_fp)();
+typedef /* Complex */ VOID (*C_fp)();
+typedef /* Double Complex */ VOID (*Z_fp)();
+typedef logical (*L_fp)();
+typedef shortlogical (*K_fp)();
+typedef /* Character */ VOID (*H_fp)();
+typedef /* Subroutine */ int (*S_fp)();
+#endif
+/* E_fp is for real functions when -R is not specified */
+typedef VOID C_f; /* complex function */
+typedef VOID H_f; /* character function */
+typedef VOID Z_f; /* double complex function */
+typedef doublereal E_f; /* real function with -R not specified */
+
+/* undef any lower-case symbols that your C compiler predefines, e.g.: */
+
+#ifndef Skip_f2c_Undefs
+#undef cray
+#undef gcos
+#undef mc68010
+#undef mc68020
+#undef mips
+#undef pdp11
+#undef sgi
+#undef sparc
+#undef sun
+#undef sun2
+#undef sun3
+#undef sun4
+#undef u370
+#undef u3b
+#undef u3b2
+#undef u3b5
+#undef unix
+#undef vax
+#endif
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/f77_aloc.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/f77_aloc.c
new file mode 100644
index 00000000000..1ff0f896b30
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/f77_aloc.c
@@ -0,0 +1,44 @@
+#include "f2c.h"
+#undef abs
+#undef min
+#undef max
+#include "stdio.h"
+
+static integer memfailure = 3;
+
+#ifdef KR_headers
+extern char *malloc();
+extern void exit_();
+
+ char *
+F77_aloc(Len, whence) integer Len; char *whence;
+#else
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void exit_(integer*);
+#ifdef __cplusplus
+ }
+#endif
+
+ char *
+F77_aloc(integer Len, char *whence)
+#endif
+{
+ char *rv;
+ unsigned int uLen = (unsigned int) Len; /* for K&R C */
+
+ if (!(rv = (char*)malloc(uLen))) {
+ fprintf(stderr, "malloc(%u) failure in %s\n",
+ uLen, whence);
+ exit_(&memfailure);
+ }
+ return rv;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/f77vers.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/f77vers.c
new file mode 100644
index 00000000000..782d40160ca
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/f77vers.c
@@ -0,0 +1,93 @@
+ char
+_libf77_version_f2c[] = "\n@(#) LIBF77 VERSION (f2c) 20021004\n";
+
+/*
+2.00 11 June 1980. File version.c added to library.
+2.01 31 May 1988. s_paus() flushes stderr; names of hl_* fixed
+ [ d]erf[c ] added
+ 8 Aug. 1989: #ifdefs for f2c -i2 added to s_cat.c
+ 29 Nov. 1989: s_cmp returns long (for f2c)
+ 30 Nov. 1989: arg types from f2c.h
+ 12 Dec. 1989: s_rnge allows long names
+ 19 Dec. 1989: getenv_ allows unsorted environment
+ 28 Mar. 1990: add exit(0) to end of main()
+ 2 Oct. 1990: test signal(...) == SIG_IGN rather than & 01 in main
+ 17 Oct. 1990: abort() calls changed to sig_die(...,1)
+ 22 Oct. 1990: separate sig_die from main
+ 25 Apr. 1991: minor, theoretically invisible tweaks to s_cat, sig_die
+ 31 May 1991: make system_ return status
+ 18 Dec. 1991: change long to ftnlen (for -i2) many places
+ 28 Feb. 1992: repair z_sqrt.c (scribbled on input, gave wrong answer)
+ 18 July 1992: for n < 0, repair handling of 0**n in pow_[dr]i.c
+ and m**n in pow_hh.c and pow_ii.c;
+ catch SIGTRAP in main() for error msg before abort
+ 23 July 1992: switch to ANSI prototypes unless KR_headers is #defined
+ 23 Oct. 1992: fix botch in signal_.c (erroneous deref of 2nd arg);
+ change Cabs to f__cabs.
+ 12 March 1993: various tweaks for C++
+ 2 June 1994: adjust so abnormal terminations invoke f_exit just once
+ 16 Sept. 1994: s_cmp: treat characters as unsigned in comparisons.
+ 19 Sept. 1994: s_paus: flush after end of PAUSE; add -DMSDOS
+ 12 Jan. 1995: pow_[dhiqrz][hiq]: adjust x**i to work on machines
+ that sign-extend right shifts when i is the most
+ negative integer.
+ 26 Jan. 1995: adjust s_cat.c, s_copy.c to permit the left-hand side
+ of character assignments to appear on the right-hand
+ side (unless compiled with -DNO_OVERWRITE).
+ 27 Jan. 1995: minor tweak to s_copy.c: copy forward whenever
+ possible (for better cache behavior).
+ 30 May 1995: added subroutine exit(rc) integer rc. Version not changed.
+ 29 Aug. 1995: add F77_aloc.c; use it in s_cat.c and system_.c.
+ 6 Sept. 1995: fix return type of system_ under -DKR_headers.
+ 19 Dec. 1995: s_cat.c: fix bug when 2nd or later arg overlaps lhs.
+ 19 Mar. 1996: s_cat.c: supply missing break after overlap detection.
+ 13 May 1996: add [lq]bitbits.c and [lq]bitshft.c (f90 bit intrinsics).
+ 19 June 1996: add casts to unsigned in [lq]bitshft.c.
+ 26 Feb. 1997: adjust functions with a complex output argument
+ to permit aliasing it with input arguments.
+ (For now, at least, this is just for possible
+ benefit of g77.)
+ 4 April 1997: [cz]_div.c: tweaks invisible on most systems (that may
+ affect systems using gratuitous extra precision).
+ 19 Sept. 1997: [de]time_.c (Unix systems only): change return
+ type to double.
+ 2 May 1999: getenv_.c: omit environ in favor of getenv().
+ c_cos.c, c_exp.c, c_sin.c, d_cnjg.c, r_cnjg.c,
+ z_cos.c, z_exp.c, z_log.c, z_sin.c: cope fully with
+ overlapping arguments caused by equivalence.
+ 3 May 1999: "invisible" tweaks to omit compiler warnings in
+ abort_.c, ef1asc_.c, s_rnge.c, s_stop.c.
+
+ 7 Sept. 1999: [cz]_div.c: arrange for compilation under
+ -DIEEE_COMPLEX_DIVIDE to make these routines
+ avoid calling sig_die when the denominator
+ vanishes; instead, they return pairs of NaNs
+ or Infinities, depending whether the numerator
+ also vanishes or not. VERSION not changed.
+ 15 Nov. 1999: s_rnge.c: add casts for the case of
+ sizeof(ftnint) == sizeof(int) < sizeof(long).
+ 10 March 2000: z_log.c: improve accuracy of Real(log(z)) for, e.g.,
+ z near (+-1,eps) with |eps| small. For the old
+ evaluation, compile with -DPre20000310 .
+ 20 April 2000: s_cat.c: tweak argument types to accord with
+ calls by f2c when ftnint and ftnlen are of
+ different sizes (different numbers of bits).
+ 4 July 2000: adjustments to permit compilation by C++ compilers;
+ VERSION string remains unchanged.
+ 29 Sept. 2000: dtime_.c, etime_.c: use floating-point divide.
+ dtime_.d, erf_.c, erfc_.c, etime.c: for use with
+ "f2c -R", compile with -DREAL=float.
+ 23 June 2001: add uninit.c; [fi]77vers.c: make version strings
+ visible as extern char _lib[fi]77_version_f2c[].
+ 5 July 2001: modify uninit.c for __mc68k__ under Linux.
+ 16 Nov. 2001: uninit.c: Linux Power PC logic supplied by Alan Bain.
+ 18 Jan. 2002: fix glitches in qbit_bits(): wrong return type,
+ missing ~ on y in return value.
+ 14 March 2002: z_log.c: add code to cope with buggy compilers
+ (e.g., some versions of gcc under -O2 or -O3)
+ that do floating-point comparisons against values
+ computed into extended-precision registers on some
+ systems (such as Intel IA32 systems). Compile with
+ -DNO_DOUBLE_EXTENDED to omit the new logic.
+ 4 Oct. 2002: uninit.c: on IRIX systems, omit use of shell variables.
+*/
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/fio.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fio.h
new file mode 100644
index 00000000000..3d168bfcd1a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fio.h
@@ -0,0 +1,142 @@
+#ifndef SYSDEP_H_INCLUDED
+#include "sysdep1.h"
+#endif
+#include "stdio.h"
+#include "errno.h"
+#ifndef NULL
+/* ANSI C */
+#include "stddef.h"
+#endif
+
+#ifndef SEEK_SET
+#define SEEK_SET 0
+#define SEEK_CUR 1
+#define SEEK_END 2
+#endif
+
+#ifndef FOPEN
+#define FOPEN fopen
+#endif
+
+#ifndef FREOPEN
+#define FREOPEN freopen
+#endif
+
+#ifndef FSEEK
+#define FSEEK fseek
+#endif
+
+#ifndef FSTAT
+#define FSTAT fstat
+#endif
+
+#ifndef FTELL
+#define FTELL ftell
+#endif
+
+#ifndef OFF_T
+#define OFF_T long
+#endif
+
+#ifndef STAT_ST
+#define STAT_ST stat
+#endif
+
+#ifndef STAT
+#define STAT stat
+#endif
+
+#ifdef MSDOS
+#ifndef NON_UNIX_STDIO
+#define NON_UNIX_STDIO
+#endif
+#endif
+
+#ifdef UIOLEN_int
+typedef int uiolen;
+#else
+typedef long uiolen;
+#endif
+
+/*units*/
+typedef struct
+{ FILE *ufd; /*0=unconnected*/
+ char *ufnm;
+#ifndef MSDOS
+ long uinode;
+ int udev;
+#endif
+ int url; /*0=sequential*/
+ flag useek; /*true=can backspace, use dir, ...*/
+ flag ufmt;
+ flag urw; /* (1 for can read) | (2 for can write) */
+ flag ublnk;
+ flag uend;
+ flag uwrt; /*last io was write*/
+ flag uscrtch;
+} unit;
+
+extern flag f__init;
+extern cilist *f__elist; /*active external io list*/
+extern flag f__reading,f__external,f__sequential,f__formatted;
+#undef Void
+#ifdef KR_headers
+#define Void /*void*/
+extern int (*f__getn)(); /* for formatted input */
+extern void (*f__putn)(); /* for formatted output */
+extern void x_putc();
+extern long f__inode();
+extern VOID sig_die();
+extern int (*f__donewrec)(), t_putc(), x_wSL();
+extern int c_sfe(), err__fl(), xrd_SL(), f__putbuf();
+#else
+#define Void void
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int (*f__getn)(void); /* for formatted input */
+extern void (*f__putn)(int); /* for formatted output */
+extern void x_putc(int);
+extern long f__inode(char*,int*);
+extern void sig_die(char*,int);
+extern void f__fatal(int,char*);
+extern int t_runc(alist*);
+extern int f__nowreading(unit*), f__nowwriting(unit*);
+extern int fk_open(int,int,ftnint);
+extern int en_fio(void);
+extern void f_init(void);
+extern int (*f__donewrec)(void), t_putc(int), x_wSL(void);
+extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*);
+extern int c_sfe(cilist*), z_rnew(void);
+extern int isatty(int);
+extern int err__fl(int,int,char*);
+extern int xrd_SL(void);
+extern int f__putbuf(int);
+#ifdef __cplusplus
+ }
+#endif
+#endif
+extern int (*f__doend)(Void);
+extern FILE *f__cf; /*current file*/
+extern unit *f__curunit; /*current unit*/
+extern unit f__units[];
+#define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);}
+#define errfl(f,m,s) return err__fl((int)f,m,s)
+
+/*Table sizes*/
+#define MXUNIT 100
+
+extern int f__recpos; /*position in current record*/
+extern OFF_T f__cursor; /* offset to move to */
+extern OFF_T f__hiwater; /* so TL doesn't confuse us */
+
+#define WRITE 1
+#define READ 2
+#define SEQ 3
+#define DIR 4
+#define FMT 5
+#define UNF 6
+#define EXT 7
+#define INT 8
+
+#define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.c
new file mode 100644
index 00000000000..80bcd0a7663
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.c
@@ -0,0 +1,525 @@
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define skip(s) while(*s==' ') s++
+#ifdef interdata
+#define SYLMX 300
+#endif
+#ifdef pdp11
+#define SYLMX 300
+#endif
+#ifdef vax
+#define SYLMX 300
+#endif
+#ifndef SYLMX
+#define SYLMX 300
+#endif
+#define GLITCH '\2'
+ /* special quote character for stu */
+extern flag f__cblank,f__cplus; /*blanks in I and compulsory plus*/
+static struct syl f__syl[SYLMX];
+int f__parenlvl,f__pc,f__revloc;
+
+ static
+#ifdef KR_headers
+char *ap_end(s) char *s;
+#else
+char *ap_end(char *s)
+#endif
+{ char quote;
+ quote= *s++;
+ for(;*s;s++)
+ { if(*s!=quote) continue;
+ if(*++s!=quote) return(s);
+ }
+ if(f__elist->cierr) {
+ errno = 100;
+ return(NULL);
+ }
+ f__fatal(100, "bad string");
+ /*NOTREACHED*/ return 0;
+}
+ static int
+#ifdef KR_headers
+op_gen(a,b,c,d)
+#else
+op_gen(int a, int b, int c, int d)
+#endif
+{ struct syl *p= &f__syl[f__pc];
+ if(f__pc>=SYLMX)
+ { fprintf(stderr,"format too complicated:\n");
+ sig_die(f__fmtbuf, 1);
+ }
+ p->op=a;
+ p->p1=b;
+ p->p2.i[0]=c;
+ p->p2.i[1]=d;
+ return(f__pc++);
+}
+#ifdef KR_headers
+static char *f_list();
+static char *gt_num(s,n,n1) char *s; int *n, n1;
+#else
+static char *f_list(char*);
+static char *gt_num(char *s, int *n, int n1)
+#endif
+{ int m=0,f__cnt=0;
+ char c;
+ for(c= *s;;c = *s)
+ { if(c==' ')
+ { s++;
+ continue;
+ }
+ if(c>'9' || c<'0') break;
+ m=10*m+c-'0';
+ f__cnt++;
+ s++;
+ }
+ if(f__cnt==0) {
+ if (!n1)
+ s = 0;
+ *n=n1;
+ }
+ else *n=m;
+ return(s);
+}
+
+ static
+#ifdef KR_headers
+char *f_s(s,curloc) char *s;
+#else
+char *f_s(char *s, int curloc)
+#endif
+{
+ skip(s);
+ if(*s++!='(')
+ {
+ return(NULL);
+ }
+ if(f__parenlvl++ ==1) f__revloc=curloc;
+ if(op_gen(RET1,curloc,0,0)<0 ||
+ (s=f_list(s))==NULL)
+ {
+ return(NULL);
+ }
+ skip(s);
+ return(s);
+}
+
+ static int
+#ifdef KR_headers
+ne_d(s,p) char *s,**p;
+#else
+ne_d(char *s, char **p)
+#endif
+{ int n,x,sign=0;
+ struct syl *sp;
+ switch(*s)
+ {
+ default:
+ return(0);
+ case ':': (void) op_gen(COLON,0,0,0); break;
+ case '$':
+ (void) op_gen(NONL, 0, 0, 0); break;
+ case 'B':
+ case 'b':
+ if(*++s=='z' || *s == 'Z') (void) op_gen(BZ,0,0,0);
+ else (void) op_gen(BN,0,0,0);
+ break;
+ case 'S':
+ case 's':
+ if(*(s+1)=='s' || *(s+1) == 'S')
+ { x=SS;
+ s++;
+ }
+ else if(*(s+1)=='p' || *(s+1) == 'P')
+ { x=SP;
+ s++;
+ }
+ else x=S;
+ (void) op_gen(x,0,0,0);
+ break;
+ case '/': (void) op_gen(SLASH,0,0,0); break;
+ case '-': sign=1;
+ case '+': s++; /*OUTRAGEOUS CODING TRICK*/
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ if (!(s=gt_num(s,&n,0))) {
+ bad: *p = 0;
+ return 1;
+ }
+ switch(*s)
+ {
+ default:
+ return(0);
+ case 'P':
+ case 'p': if(sign) n= -n; (void) op_gen(P,n,0,0); break;
+ case 'X':
+ case 'x': (void) op_gen(X,n,0,0); break;
+ case 'H':
+ case 'h':
+ sp = &f__syl[op_gen(H,n,0,0)];
+ sp->p2.s = s + 1;
+ s+=n;
+ break;
+ }
+ break;
+ case GLITCH:
+ case '"':
+ case '\'':
+ sp = &f__syl[op_gen(APOS,0,0,0)];
+ sp->p2.s = s;
+ if((*p = ap_end(s)) == NULL)
+ return(0);
+ return(1);
+ case 'T':
+ case 't':
+ if(*(s+1)=='l' || *(s+1) == 'L')
+ { x=TL;
+ s++;
+ }
+ else if(*(s+1)=='r'|| *(s+1) == 'R')
+ { x=TR;
+ s++;
+ }
+ else x=T;
+ if (!(s=gt_num(s+1,&n,0)))
+ goto bad;
+ s--;
+ (void) op_gen(x,n,0,0);
+ break;
+ case 'X':
+ case 'x': (void) op_gen(X,1,0,0); break;
+ case 'P':
+ case 'p': (void) op_gen(P,1,0,0); break;
+ }
+ s++;
+ *p=s;
+ return(1);
+}
+
+ static int
+#ifdef KR_headers
+e_d(s,p) char *s,**p;
+#else
+e_d(char *s, char **p)
+#endif
+{ int i,im,n,w,d,e,found=0,x=0;
+ char *sv=s;
+ s=gt_num(s,&n,1);
+ (void) op_gen(STACK,n,0,0);
+ switch(*s++)
+ {
+ default: break;
+ case 'E':
+ case 'e': x=1;
+ case 'G':
+ case 'g':
+ found=1;
+ if (!(s=gt_num(s,&w,0))) {
+ bad:
+ *p = 0;
+ return 1;
+ }
+ if(w==0) break;
+ if(*s=='.') {
+ if (!(s=gt_num(s+1,&d,0)))
+ goto bad;
+ }
+ else d=0;
+ if(*s!='E' && *s != 'e')
+ (void) op_gen(x==1?E:G,w,d,0); /* default is Ew.dE2 */
+ else {
+ if (!(s=gt_num(s+1,&e,0)))
+ goto bad;
+ (void) op_gen(x==1?EE:GE,w,d,e);
+ }
+ break;
+ case 'O':
+ case 'o':
+ i = O;
+ im = OM;
+ goto finish_I;
+ case 'Z':
+ case 'z':
+ i = Z;
+ im = ZM;
+ goto finish_I;
+ case 'L':
+ case 'l':
+ found=1;
+ if (!(s=gt_num(s,&w,0)))
+ goto bad;
+ if(w==0) break;
+ (void) op_gen(L,w,0,0);
+ break;
+ case 'A':
+ case 'a':
+ found=1;
+ skip(s);
+ if(*s>='0' && *s<='9')
+ { s=gt_num(s,&w,1);
+ if(w==0) break;
+ (void) op_gen(AW,w,0,0);
+ break;
+ }
+ (void) op_gen(A,0,0,0);
+ break;
+ case 'F':
+ case 'f':
+ if (!(s=gt_num(s,&w,0)))
+ goto bad;
+ found=1;
+ if(w==0) break;
+ if(*s=='.') {
+ if (!(s=gt_num(s+1,&d,0)))
+ goto bad;
+ }
+ else d=0;
+ (void) op_gen(F,w,d,0);
+ break;
+ case 'D':
+ case 'd':
+ found=1;
+ if (!(s=gt_num(s,&w,0)))
+ goto bad;
+ if(w==0) break;
+ if(*s=='.') {
+ if (!(s=gt_num(s+1,&d,0)))
+ goto bad;
+ }
+ else d=0;
+ (void) op_gen(D,w,d,0);
+ break;
+ case 'I':
+ case 'i':
+ i = I;
+ im = IM;
+ finish_I:
+ if (!(s=gt_num(s,&w,0)))
+ goto bad;
+ found=1;
+ if(w==0) break;
+ if(*s!='.')
+ { (void) op_gen(i,w,0,0);
+ break;
+ }
+ if (!(s=gt_num(s+1,&d,0)))
+ goto bad;
+ (void) op_gen(im,w,d,0);
+ break;
+ }
+ if(found==0)
+ { f__pc--; /*unSTACK*/
+ *p=sv;
+ return(0);
+ }
+ *p=s;
+ return(1);
+}
+ static
+#ifdef KR_headers
+char *i_tem(s) char *s;
+#else
+char *i_tem(char *s)
+#endif
+{ char *t;
+ int n,curloc;
+ if(*s==')') return(s);
+ if(ne_d(s,&t)) return(t);
+ if(e_d(s,&t)) return(t);
+ s=gt_num(s,&n,1);
+ if((curloc=op_gen(STACK,n,0,0))<0) return(NULL);
+ return(f_s(s,curloc));
+}
+
+ static
+#ifdef KR_headers
+char *f_list(s) char *s;
+#else
+char *f_list(char *s)
+#endif
+{
+ for(;*s!=0;)
+ { skip(s);
+ if((s=i_tem(s))==NULL) return(NULL);
+ skip(s);
+ if(*s==',') s++;
+ else if(*s==')')
+ { if(--f__parenlvl==0)
+ {
+ (void) op_gen(REVERT,f__revloc,0,0);
+ return(++s);
+ }
+ (void) op_gen(GOTO,0,0,0);
+ return(++s);
+ }
+ }
+ return(NULL);
+}
+
+ int
+#ifdef KR_headers
+pars_f(s) char *s;
+#else
+pars_f(char *s)
+#endif
+{
+ f__parenlvl=f__revloc=f__pc=0;
+ if(f_s(s,0) == NULL)
+ {
+ return(-1);
+ }
+ return(0);
+}
+#define STKSZ 10
+int f__cnt[STKSZ],f__ret[STKSZ],f__cp,f__rp;
+flag f__workdone, f__nonl;
+
+ static int
+#ifdef KR_headers
+type_f(n)
+#else
+type_f(int n)
+#endif
+{
+ switch(n)
+ {
+ default:
+ return(n);
+ case RET1:
+ return(RET1);
+ case REVERT: return(REVERT);
+ case GOTO: return(GOTO);
+ case STACK: return(STACK);
+ case X:
+ case SLASH:
+ case APOS: case H:
+ case T: case TL: case TR:
+ return(NED);
+ case F:
+ case I:
+ case IM:
+ case A: case AW:
+ case O: case OM:
+ case L:
+ case E: case EE: case D:
+ case G: case GE:
+ case Z: case ZM:
+ return(ED);
+ }
+}
+#ifdef KR_headers
+integer do_fio(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
+#else
+integer do_fio(ftnint *number, char *ptr, ftnlen len)
+#endif
+{ struct syl *p;
+ int n,i;
+ for(i=0;i<*number;i++,ptr+=len)
+ {
+loop: switch(type_f((p= &f__syl[f__pc])->op))
+ {
+ default:
+ fprintf(stderr,"unknown code in do_fio: %d\n%s\n",
+ p->op,f__fmtbuf);
+ err(f__elist->cierr,100,"do_fio");
+ case NED:
+ if((*f__doned)(p))
+ { f__pc++;
+ goto loop;
+ }
+ f__pc++;
+ continue;
+ case ED:
+ if(f__cnt[f__cp]<=0)
+ { f__cp--;
+ f__pc++;
+ goto loop;
+ }
+ if(ptr==NULL)
+ return((*f__doend)());
+ f__cnt[f__cp]--;
+ f__workdone=1;
+ if((n=(*f__doed)(p,ptr,len))>0)
+ errfl(f__elist->cierr,errno,"fmt");
+ if(n<0)
+ err(f__elist->ciend,(EOF),"fmt");
+ continue;
+ case STACK:
+ f__cnt[++f__cp]=p->p1;
+ f__pc++;
+ goto loop;
+ case RET1:
+ f__ret[++f__rp]=p->p1;
+ f__pc++;
+ goto loop;
+ case GOTO:
+ if(--f__cnt[f__cp]<=0)
+ { f__cp--;
+ f__rp--;
+ f__pc++;
+ goto loop;
+ }
+ f__pc=1+f__ret[f__rp--];
+ goto loop;
+ case REVERT:
+ f__rp=f__cp=0;
+ f__pc = p->p1;
+ if(ptr==NULL)
+ return((*f__doend)());
+ if(!f__workdone) return(0);
+ if((n=(*f__dorevert)()) != 0) return(n);
+ goto loop;
+ case COLON:
+ if(ptr==NULL)
+ return((*f__doend)());
+ f__pc++;
+ goto loop;
+ case NONL:
+ f__nonl = 1;
+ f__pc++;
+ goto loop;
+ case S:
+ case SS:
+ f__cplus=0;
+ f__pc++;
+ goto loop;
+ case SP:
+ f__cplus = 1;
+ f__pc++;
+ goto loop;
+ case P: f__scale=p->p1;
+ f__pc++;
+ goto loop;
+ case BN:
+ f__cblank=0;
+ f__pc++;
+ goto loop;
+ case BZ:
+ f__cblank=1;
+ f__pc++;
+ goto loop;
+ }
+ }
+ return(0);
+}
+
+ int
+en_fio(Void)
+{ ftnint one=1;
+ return(do_fio(&one,(char *)NULL,(ftnint)0));
+}
+
+ VOID
+fmt_bg(Void)
+{
+ f__workdone=f__cp=f__rp=f__pc=f__cursor=0;
+ f__cnt[0]=f__ret[0]=0;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.h
new file mode 100644
index 00000000000..a2fdc651778
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmt.h
@@ -0,0 +1,104 @@
+struct syl
+{ int op;
+ int p1;
+ union { int i[2]; char *s;} p2;
+ };
+#define RET1 1
+#define REVERT 2
+#define GOTO 3
+#define X 4
+#define SLASH 5
+#define STACK 6
+#define I 7
+#define ED 8
+#define NED 9
+#define IM 10
+#define APOS 11
+#define H 12
+#define TL 13
+#define TR 14
+#define T 15
+#define COLON 16
+#define S 17
+#define SP 18
+#define SS 19
+#define P 20
+#define BN 21
+#define BZ 22
+#define F 23
+#define E 24
+#define EE 25
+#define D 26
+#define G 27
+#define GE 28
+#define L 29
+#define A 30
+#define AW 31
+#define O 32
+#define NONL 33
+#define OM 34
+#define Z 35
+#define ZM 36
+extern int f__pc,f__parenlvl,f__revloc;
+typedef union
+{ real pf;
+ doublereal pd;
+} ufloat;
+typedef union
+{ short is;
+#ifndef KR_headers
+ signed
+#endif
+ char ic;
+ integer il;
+#ifdef Allow_TYQUAD
+ longint ili;
+#endif
+} Uint;
+#ifdef KR_headers
+extern int (*f__doed)(),(*f__doned)();
+extern int (*f__dorevert)();
+extern int rd_ed(),rd_ned();
+extern int w_ed(),w_ned();
+extern int signbit_f2c();
+#else
+#ifdef __cplusplus
+extern "C" {
+#define Cextern extern "C"
+#else
+#define Cextern extern
+#endif
+extern int (*f__doed)(struct syl*, char*, ftnlen),(*f__doned)(struct syl*);
+extern int (*f__dorevert)(void);
+extern void fmt_bg(void);
+extern int pars_f(char*);
+extern int rd_ed(struct syl*, char*, ftnlen),rd_ned(struct syl*);
+extern int signbit_f2c(double*);
+extern int w_ed(struct syl*, char*, ftnlen),w_ned(struct syl*);
+extern int wrt_E(ufloat*, int, int, int, ftnlen);
+extern int wrt_F(ufloat*, int, int, ftnlen);
+extern int wrt_L(Uint*, int, ftnlen);
+#ifdef __cplusplus
+ }
+#endif
+#endif
+extern flag f__cblank,f__cplus,f__workdone, f__nonl;
+extern char *f__fmtbuf;
+extern int f__scale;
+#define GET(x) if((x=(*f__getn)())<0) return(x)
+#define VAL(x) (x!='\n'?x:' ')
+#define PUT(x) (*f__putn)(x)
+
+#undef TYQUAD
+#ifndef Allow_TYQUAD
+#undef longint
+#define longint long
+#else
+#define TYQUAD 14
+#endif
+
+#ifdef KR_headers
+extern char *f__icvt();
+#else
+Cextern char *f__icvt(longint, int*, int*, int);
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmtlib.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmtlib.c
new file mode 100644
index 00000000000..279f66f4390
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fmtlib.c
@@ -0,0 +1,51 @@
+/* @(#)fmtlib.c 1.2 */
+#define MAXINTLENGTH 23
+
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef Allow_TYQUAD
+#undef longint
+#define longint long
+#undef ulongint
+#define ulongint unsigned long
+#endif
+
+#ifdef KR_headers
+char *f__icvt(value,ndigit,sign, base) longint value; int *ndigit,*sign;
+ register int base;
+#else
+char *f__icvt(longint value, int *ndigit, int *sign, int base)
+#endif
+{
+ static char buf[MAXINTLENGTH+1];
+ register int i;
+ ulongint uvalue;
+
+ if(value > 0) {
+ uvalue = value;
+ *sign = 0;
+ }
+ else if (value < 0) {
+ uvalue = -value;
+ *sign = 1;
+ }
+ else {
+ *sign = 0;
+ *ndigit = 1;
+ buf[MAXINTLENGTH-1] = '0';
+ return &buf[MAXINTLENGTH-1];
+ }
+ i = MAXINTLENGTH;
+ do {
+ buf[--i] = (uvalue%base) + '0';
+ uvalue /= base;
+ }
+ while(uvalue > 0);
+ *ndigit = MAXINTLENGTH - i;
+ return &buf[i];
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/fp.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fp.h
new file mode 100644
index 00000000000..40743d79f74
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/fp.h
@@ -0,0 +1,28 @@
+#define FMAX 40
+#define EXPMAXDIGS 8
+#define EXPMAX 99999999
+/* FMAX = max number of nonzero digits passed to atof() */
+/* EXPMAX = 10^EXPMAXDIGS - 1 = largest allowed exponent absolute value */
+
+#ifdef V10 /* Research Tenth-Edition Unix */
+#include "local.h"
+#endif
+
+/* MAXFRACDIGS and MAXINTDIGS are for wrt_F -- bounds (not necessarily
+ tight) on the maximum number of digits to the right and left of
+ * the decimal point.
+ */
+
+#ifdef VAX
+#define MAXFRACDIGS 56
+#define MAXINTDIGS 38
+#else
+#ifdef CRAY
+#define MAXFRACDIGS 9880
+#define MAXINTDIGS 9864
+#else
+/* values that suffice for IEEE double */
+#define MAXFRACDIGS 344
+#define MAXINTDIGS 308
+#endif
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell64_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell64_.c
new file mode 100644
index 00000000000..9cc00cba8b9
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell64_.c
@@ -0,0 +1,52 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ static FILE *
+#ifdef KR_headers
+unit_chk(Unit, who) integer Unit; char *who;
+#else
+unit_chk(integer Unit, char *who)
+#endif
+{
+ if (Unit >= MXUNIT || Unit < 0)
+ f__fatal(101, who);
+ return f__units[Unit].ufd;
+ }
+
+ longint
+#ifdef KR_headers
+ftell64_(Unit) integer *Unit;
+#else
+ftell64_(integer *Unit)
+#endif
+{
+ FILE *f;
+ return (f = unit_chk(*Unit, "ftell")) ? FTELL(f) : -1L;
+ }
+
+ int
+#ifdef KR_headers
+fseek64_(Unit, offset, whence) integer *Unit, *whence; longint *offset;
+#else
+fseek64_(integer *Unit, longint *offset, integer *whence)
+#endif
+{
+ FILE *f;
+ int w = (int)*whence;
+#ifdef SEEK_SET
+ static int wohin[3] = { SEEK_SET, SEEK_CUR, SEEK_END };
+#endif
+ if (w < 0 || w > 2)
+ w = 0;
+#ifdef SEEK_SET
+ w = wohin[w];
+#endif
+ return !(f = unit_chk(*Unit, "fseek"))
+ || FSEEK(f, (OFF_T)*offset, w) ? 1 : 0;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell_.c
new file mode 100644
index 00000000000..be9f2871086
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ftell_.c
@@ -0,0 +1,52 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ static FILE *
+#ifdef KR_headers
+unit_chk(Unit, who) integer Unit; char *who;
+#else
+unit_chk(integer Unit, char *who)
+#endif
+{
+ if (Unit >= MXUNIT || Unit < 0)
+ f__fatal(101, who);
+ return f__units[Unit].ufd;
+ }
+
+ integer
+#ifdef KR_headers
+ftell_(Unit) integer *Unit;
+#else
+ftell_(integer *Unit)
+#endif
+{
+ FILE *f;
+ return (f = unit_chk(*Unit, "ftell")) ? ftell(f) : -1L;
+ }
+
+ int
+#ifdef KR_headers
+fseek_(Unit, offset, whence) integer *Unit, *offset, *whence;
+#else
+fseek_(integer *Unit, integer *offset, integer *whence)
+#endif
+{
+ FILE *f;
+ int w = (int)*whence;
+#ifdef SEEK_SET
+ static int wohin[3] = { SEEK_SET, SEEK_CUR, SEEK_END };
+#endif
+ if (w < 0 || w > 2)
+ w = 0;
+#ifdef SEEK_SET
+ w = wohin[w];
+#endif
+ return !(f = unit_chk(*Unit, "fseek"))
+ || fseek(f, *offset, w) ? 1 : 0;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/getarg_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/getarg_.c
new file mode 100644
index 00000000000..9006ad20169
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/getarg_.c
@@ -0,0 +1,34 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * subroutine getarg(k, c)
+ * returns the kth unix command argument in fortran character
+ * variable argument c
+*/
+
+#ifdef KR_headers
+VOID getarg_(n, s, ls) ftnint *n; register char *s; ftnlen ls;
+#else
+void getarg_(ftnint *n, register char *s, ftnlen ls)
+#endif
+{
+extern int xargc;
+extern char **xargv;
+register char *t;
+register int i;
+
+if(*n>=0 && *n<xargc)
+ t = xargv[*n];
+else
+ t = "";
+for(i = 0; i<ls && *t!='\0' ; ++i)
+ *s++ = *t++;
+for( ; i<ls ; ++i)
+ *s++ = ' ';
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/getenv_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/getenv_.c
new file mode 100644
index 00000000000..4c7ecd269ff
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/getenv_.c
@@ -0,0 +1,62 @@
+#include "f2c.h"
+#undef abs
+#ifdef KR_headers
+extern char *F77_aloc(), *getenv();
+#else
+#include <stdlib.h>
+#include <string.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern char *F77_aloc(ftnlen, char*);
+#endif
+
+/*
+ * getenv - f77 subroutine to return environment variables
+ *
+ * called by:
+ * call getenv (ENV_NAME, char_var)
+ * where:
+ * ENV_NAME is the name of an environment variable
+ * char_var is a character variable which will receive
+ * the current value of ENV_NAME, or all blanks
+ * if ENV_NAME is not defined
+ */
+
+#ifdef KR_headers
+ VOID
+getenv_(fname, value, flen, vlen) char *value, *fname; ftnlen vlen, flen;
+#else
+ void
+getenv_(char *fname, char *value, ftnlen flen, ftnlen vlen)
+#endif
+{
+ char buf[256], *ep, *fp;
+ integer i;
+
+ if (flen <= 0)
+ goto add_blanks;
+ for(i = 0; i < sizeof(buf); i++) {
+ if (i == flen || (buf[i] = fname[i]) == ' ') {
+ buf[i] = 0;
+ ep = getenv(buf);
+ goto have_ep;
+ }
+ }
+ while(i < flen && fname[i] != ' ')
+ i++;
+ strncpy(fp = F77_aloc(i+1, "getenv_"), fname, (int)i);
+ fp[i] = 0;
+ ep = getenv(fp);
+ free(fp);
+ have_ep:
+ if (ep)
+ while(*ep && vlen-- > 0)
+ *value++ = *ep++;
+ add_blanks:
+ while(vlen-- > 0)
+ *value++ = ' ';
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_abs.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_abs.c
new file mode 100644
index 00000000000..db6906869cf
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_abs.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+shortint h_abs(x) shortint *x;
+#else
+shortint h_abs(shortint *x)
+#endif
+{
+if(*x >= 0)
+ return(*x);
+return(- *x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dim.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dim.c
new file mode 100644
index 00000000000..443427a9b99
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dim.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+shortint h_dim(a,b) shortint *a, *b;
+#else
+shortint h_dim(shortint *a, shortint *b)
+#endif
+{
+return( *a > *b ? *a - *b : 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dnnt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dnnt.c
new file mode 100644
index 00000000000..1ec641c5aa4
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_dnnt.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+shortint h_dnnt(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+shortint h_dnnt(doublereal *x)
+#endif
+{
+return (shortint)(*x >= 0. ? floor(*x + .5) : -floor(.5 - *x));
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_indx.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_indx.c
new file mode 100644
index 00000000000..018f2f43861
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_indx.c
@@ -0,0 +1,32 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+shortint h_indx(a, b, la, lb) char *a, *b; ftnlen la, lb;
+#else
+shortint h_indx(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+ftnlen i, n;
+char *s, *t, *bend;
+
+n = la - lb + 1;
+bend = b + lb;
+
+for(i = 0 ; i < n ; ++i)
+ {
+ s = a + i;
+ t = b;
+ while(t < bend)
+ if(*s++ != *t++)
+ goto no;
+ return((shortint)i+1);
+ no: ;
+ }
+return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_len.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_len.c
new file mode 100644
index 00000000000..8b0aea99d26
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_len.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+shortint h_len(s, n) char *s; ftnlen n;
+#else
+shortint h_len(char *s, ftnlen n)
+#endif
+{
+return(n);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_mod.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_mod.c
new file mode 100644
index 00000000000..611ef0aa8bf
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_mod.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+shortint h_mod(a,b) short *a, *b;
+#else
+shortint h_mod(short *a, short *b)
+#endif
+{
+return( *a % *b);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_nint.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_nint.c
new file mode 100644
index 00000000000..9e2282f2a74
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_nint.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+shortint h_nint(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+shortint h_nint(real *x)
+#endif
+{
+return (shortint)(*x >= 0 ? floor(*x + .5) : -floor(.5 - *x));
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_sign.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_sign.c
new file mode 100644
index 00000000000..4e214380cf9
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/h_sign.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+shortint h_sign(a,b) shortint *a, *b;
+#else
+shortint h_sign(shortint *a, shortint *b)
+#endif
+{
+shortint x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_ge.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_ge.c
new file mode 100644
index 00000000000..8c72f03d489
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_ge.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+shortlogical hl_ge(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+shortlogical hl_ge(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) >= 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_gt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_gt.c
new file mode 100644
index 00000000000..a448522db4b
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_gt.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+shortlogical hl_gt(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+shortlogical hl_gt(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) > 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_le.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_le.c
new file mode 100644
index 00000000000..31cbc431a3f
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_le.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+shortlogical hl_le(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+shortlogical hl_le(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) <= 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_lt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_lt.c
new file mode 100644
index 00000000000..7ad3c714b1d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/hl_lt.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+shortlogical hl_lt(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+shortlogical hl_lt(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) < 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i77vers.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i77vers.c
new file mode 100644
index 00000000000..60cc24eec19
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i77vers.c
@@ -0,0 +1,343 @@
+ char
+_libi77_version_f2c[] = "\n@(#) LIBI77 VERSION (f2c) pjw,dmg-mods 20030321\n";
+
+/*
+2.01 $ format added
+2.02 Coding bug in open.c repaired
+2.03 fixed bugs in lread.c (read * with negative f-format) and lio.c
+ and lio.h (e-format conforming to spec)
+2.04 changed open.c and err.c (fopen and freopen respectively) to
+ update to new c-library (append mode)
+2.05 added namelist capability
+2.06 allow internal list and namelist I/O
+*/
+
+/*
+close.c:
+ allow upper-case STATUS= values
+endfile.c
+ create fort.nnn if unit nnn not open;
+ else if (file length == 0) use creat() rather than copy;
+ use local copy() rather than forking /bin/cp;
+ rewind, fseek to clear buffer (for no reading past EOF)
+err.c
+ use neither setbuf nor setvbuf; make stderr buffered
+fio.h
+ #define _bufend
+inquire.c
+ upper case responses;
+ omit byfile test from SEQUENTIAL=
+ answer "YES" to DIRECT= for unopened file (open to debate)
+lio.c
+ flush stderr, stdout at end of each stmt
+ space before character strings in list output only at line start
+lio.h
+ adjust LEW, LED consistent with old libI77
+lread.c
+ use atof()
+ allow "nnn*," when reading complex constants
+open.c
+ try opening for writing when open for read fails, with
+ special uwrt value (2) delaying creat() to first write;
+ set curunit so error messages don't drop core;
+ no file name ==> fort.nnn except for STATUS='SCRATCH'
+rdfmt.c
+ use atof(); trust EOF == end-of-file (so don't read past
+ end-of-file after endfile stmt)
+sfe.c
+ flush stderr, stdout at end of each stmt
+wrtfmt.c:
+ use upper case
+ put wrt_E and wrt_F into wref.c, use sprintf()
+ rather than ecvt() and fcvt() [more accurate on VAX]
+*/
+
+/* 16 Oct. 1988: uwrt = 3 after write, rewind, so close won't zap the file. */
+
+/* 10 July 1989: change _bufend to buf_end in fio.h, wsfe.c, wrtfmt.c */
+
+/* 28 Nov. 1989: corrections for IEEE and Cray arithmetic */
+/* 29 Nov. 1989: change various int return types to long for f2c */
+/* 30 Nov. 1989: various types from f2c.h */
+/* 6 Dec. 1989: types corrected various places */
+/* 19 Dec. 1989: make iostat= work right for internal I/O */
+/* 8 Jan. 1990: add rsne, wsne -- routines for handling NAMELIST */
+/* 28 Jan. 1990: have NAMELIST read treat $ as &, general white
+ space as blank */
+/* 27 Mar. 1990: change an = to == in rd_L(rdfmt.c) so formatted reads
+ of logical values reject letters other than fFtT;
+ have nowwriting reset cf */
+/* 14 Aug. 1990: adjust lread.c to treat tabs as spaces in list input */
+/* 17 Aug. 1990: adjust open.c to recognize blank='Z...' as well as
+ blank='z...' when reopening an open file */
+/* 30 Aug. 1990: prevent embedded blanks in list output of complex values;
+ omit exponent field in list output of values of
+ magnitude between 10 and 1e8; prevent writing stdin
+ and reading stdout or stderr; don't close stdin, stdout,
+ or stderr when reopening units 5, 6, 0. */
+/* 18 Sep. 1990: add component udev to unit and consider old == new file
+ iff uinode and udev values agree; use stat rather than
+ access to check existence of file (when STATUS='OLD')*/
+/* 2 Oct. 1990: adjust rewind.c so two successive rewinds after a write
+ don't clobber the file. */
+/* 9 Oct. 1990: add #include "fcntl.h" to endfile.c, err.c, open.c;
+ adjust g_char in util.c for segmented memories. */
+/* 17 Oct. 1990: replace abort() and _cleanup() with calls on
+ sig_die(...,1) (defined in main.c). */
+/* 5 Nov. 1990: changes to open.c: complain if new= is specified and the
+ file already exists; allow file= to be omitted in open stmts
+ and allow status='replace' (Fortran 90 extensions). */
+/* 11 Dec. 1990: adjustments for POSIX. */
+/* 15 Jan. 1991: tweak i_ungetc in rsli.c to allow reading from
+ strings in read-only memory. */
+/* 25 Apr. 1991: adjust namelist stuff to work with f2c -i2 */
+/* 26 Apr. 1991: fix some bugs with NAMELIST read of multi-dim. arrays */
+/* 16 May 1991: increase LEFBL in lio.h to bypass NeXT bug */
+/* 17 Oct. 1991: change type of length field in sequential unformatted
+ records from int to long (for systems where sizeof(int)
+ can vary, depending on the compiler or compiler options). */
+/* 14 Nov. 1991: change uint to Uint in fmt.h, rdfmt.c, wrtfmt.c. */
+/* 25 Nov. 1991: change uint to Uint in lwrite.c; change sizeof(int) to
+ sizeof(uioint) in fseeks in sue.c (missed on 17 Oct.). */
+/* 1 Dec. 1991: uio.c: add test for read failure (seq. unformatted reads);
+ adjust an error return from EOF to off end of record */
+/* 12 Dec. 1991: rsli.c: fix bug with internal list input that caused
+ the last character of each record to be ignored.
+ iio.c: adjust error message in internal formatted
+ input from "end-of-file" to "off end of record" if
+ the format specifies more characters than the
+ record contains. */
+/* 17 Jan. 1992: lread.c, rsne.c: in list and namelist input,
+ treat "r* ," and "r*," alike (where r is a
+ positive integer constant), and fix a bug in
+ handling null values following items with repeat
+ counts (e.g., 2*1,,3); for namelist reading
+ of a numeric array, allow a new name-value subsequence
+ to terminate the current one (as though the current
+ one ended with the right number of null values).
+ lio.h, lwrite.c: omit insignificant zeros in
+ list and namelist output. To get the old
+ behavior, compile with -DOld_list_output . */
+/* 18 Jan. 1992: make list output consistent with F format by
+ printing .1 rather than 0.1 (introduced yesterday). */
+/* 3 Feb. 1992: rsne.c: fix namelist read bug that caused the
+ character following a comma to be ignored. */
+/* 19 May 1992: adjust iio.c, ilnw.c, rdfmt.c and rsli.c to make err=
+ work with internal list and formatted I/O. */
+/* 18 July 1992: adjust rsne.c to allow namelist input to stop at
+ an & (e.g. &end). */
+/* 23 July 1992: switch to ANSI prototypes unless KR_headers is #defined ;
+ recognize Z format (assuming 8-bit bytes). */
+/* 14 Aug. 1992: tweak wrt_E in wref.c to avoid -NaN */
+/* 23 Oct. 1992: Supply missing l_eof = 0 assignment to s_rsne() in rsne.c
+ (so end-of-file on other files won't confuse namelist
+ reads of external files). Prepend f__ to external
+ names that are only of internal interest to lib[FI]77. */
+/* 1 Feb. 1993: backspace.c: fix bug that bit when last char of 2nd
+ buffer == '\n'.
+ endfile.c: guard against tiny L_tmpnam; close and reopen
+ files in t_runc().
+ lio.h: lengthen LINTW (buffer size in lwrite.c).
+ err.c, open.c: more prepending of f__ (to [rw]_mode). */
+/* 5 Feb. 1993: tweaks to NAMELIST: rsne.c: ? prints the namelist being
+ sought; namelists of the wrong name are skipped (after
+ an error message; xwsne.c: namelist writes have a
+ newline before each new variable.
+ open.c: ACCESS='APPEND' positions sequential files
+ at EOF (nonstandard extension -- that doesn't require
+ changing data structures). */
+/* 9 Feb. 1993: Change some #ifdef MSDOS lines to #ifdef NON_UNIX_STDIO.
+ err.c: under NON_UNIX_STDIO, avoid close(creat(name,0666))
+ when the unit has another file descriptor for name. */
+/* 4 March 1993: err.c, open.c: take declaration of fdopen from rawio.h;
+ open.c: always give f__w_mode[] 4 elements for use
+ in t_runc (in endfile.c -- for change of 1 Feb. 1993). */
+/* 6 March 1993: uio.c: adjust off-end-of-record test for sequential
+ unformatted reads to respond to err= rather than end=. */
+/* 12 March 1993: various tweaks for C++ */
+/* 6 April 1993: adjust error returns for formatted inputs to flush
+ the current input line when err=label is specified.
+ To restore the old behavior (input left mid-line),
+ either adjust the #definition of errfl in fio.h or
+ omit the invocation of f__doend in err__fl (in err.c). */
+/* 23 June 1993: iio.c: fix bug in format reversions for internal writes. */
+/* 5 Aug. 1993: lread.c: fix bug in handling repetition counts for
+ logical data (during list or namelist input).
+ Change struct f__syl to struct syl (for buggy compilers). */
+/* 7 Aug. 1993: lread.c: fix bug in namelist reading of incomplete
+ logical arrays. */
+/* 9 Aug. 1993: lread.c: fix bug in namelist reading of an incomplete
+ array of numeric data followed by another namelist
+ item whose name starts with 'd', 'D', 'e', or 'E'. */
+/* 8 Sept. 1993: open.c: protect #include "sys/..." with
+ #ifndef NON_UNIX_STDIO; Version date not changed. */
+/* 10 Nov. 1993: backspace.c: add nonsense for #ifdef MSDOS */
+/* 8 Dec. 1993: iio.c: adjust internal formatted reads to treat
+ short records as though padded with blanks
+ (rather than causing an "off end of record" error). */
+/* 22 Feb. 1994: lread.c: check that realloc did not return NULL. */
+/* 6 June 1994: Under NON_UNIX_STDIO, use binary mode for direct
+ formatted files (avoiding any confusion regarding \n). */
+/* 5 July 1994: Fix bug (introduced 6 June 1994?) in reopening files
+ under NON_UNIX_STDIO. */
+/* 6 July 1994: wref.c: protect with #ifdef GOOD_SPRINTF_EXPONENT an
+ optimization that requires exponents to have 2 digits
+ when 2 digits suffice.
+ lwrite.c wsfe.c (list and formatted external output):
+ omit ' ' carriage-control when compiled with
+ -DOMIT_BLANK_CC . Off-by-one bug fixed in character
+ count for list output of character strings.
+ Omit '.' in list-directed printing of Nan, Infinity. */
+/* 12 July 1994: wrtfmt.c: under G11.4, write 0. as " .0000 " rather
+ than " .0000E+00". */
+/* 3 Aug. 1994: lwrite.c: do not insert a newline when appending an
+ oversize item to an empty line. */
+/* 12 Aug. 1994: rsli.c rsne.c: fix glitch (reset nml_read) that kept
+ ERR= (in list- or format-directed input) from working
+ after a NAMELIST READ. */
+/* 7 Sept. 1994: typesize.c: adjust to allow types LOGICAL*1, LOGICAL*2,
+ INTEGER*1, and (under -DAllow_TYQUAD) INTEGER*8
+ in NAMELISTs. */
+/* 6 Oct. 1994: util.c: omit f__mvgbt, as it is never used. */
+/* 2 Nov. 1994: add #ifdef ALWAYS_FLUSH logic. */
+/* 26 Jan. 1995: wref.c: fix glitch in printing the exponent of 0 when
+ GOOD_SPRINTF_EXPONENT is not #defined. */
+/* 24 Feb. 1995: iio.c: z_getc: insert (unsigned char *) to allow
+ internal reading of characters with high-bit set
+ (on machines that sign-extend characters). */
+/* 14 March 1995:lread.c and rsfe.c: adjust s_rsle and s_rsfe to
+ check for end-of-file (to prevent infinite loops
+ with empty read statements). */
+/* 26 May 1995: iio.c: z_wnew: fix bug in handling T format items
+ in internal writes whose last item is written to
+ an earlier position than some previous item. */
+/* 29 Aug. 1995: backspace.c: adjust MSDOS logic. */
+/* 6 Sept. 1995: Adjust namelist input to treat a subscripted name
+ whose subscripts do not involve colons similarly
+ to the name without a subscript: accept several
+ values, stored in successive elements starting at
+ the indicated subscript. Adjust namelist output
+ to quote character strings (avoiding confusion with
+ arrays of character strings). Adjust f_init calls
+ for people who don't use libF77's main(); now open and
+ namelist read statements invoke f_init if needed. */
+/* 7 Sept. 1995: Fix some bugs with -DAllow_TYQUAD (for integer*8).
+ Add -DNo_Namelist_Comments lines to rsne.c. */
+/* 5 Oct. 1995: wrtfmt.c: fix bug with t editing (f__cursor was not
+ always zeroed in mv_cur). */
+/* 11 Oct. 1995: move defs of f__hiwater, f__svic, f__icptr from wrtfmt.c
+ to err.c */
+/* 15 Mar. 1996: lread.c, rsfe.c: honor END= in READ stmt with empty iolist */
+
+/* 13 May 1996: add ftell_.c and fseek_.c */
+/* 9 June 1996: Adjust rsli.c and lread.c so internal list input with
+ too few items in the input string will honor end= . */
+/* 12 Sept. 1995:fmtlib.c: fix glitch in printing the most negative integer. */
+/* 25 Sept. 1995:fmt.h: for formatted writes of negative integer*1 values,
+ make ic signed on ANSI systems. If formatted writes of
+ integer*1 values trouble you when using a K&R C compiler,
+ switch to an ANSI compiler or use a compiler flag that
+ makes characters signed. */
+/* 9 Dec. 1996: d[fu]e.c, err.c: complain about non-positive rec=
+ in direct read and write statements.
+ ftell_.c: change param "unit" to "Unit" for -DKR_headers. */
+/* 26 Feb. 1997: ftell_.c: on systems that define SEEK_SET, etc., use
+ SEEK_SET, SEEK_CUR, SEEK_END for *whence = 0, 1, 2. */
+/* 7 Apr. 1997: fmt.c: adjust to complain at missing numbers in formats
+ (but still treat missing ".nnn" as ".0"). */
+/* 11 Apr. 1997: err.c: attempt to make stderr line buffered rather
+ than fully buffered. (Buffering is needed for format
+ items T and TR.) */
+/* 27 May 1997: ftell_.c: fix typo (that caused the third argument to be
+ treated as 2 on some systems). */
+/* 5 Aug. 1997: lread.c: adjust to accord with a change to the Fortran 8X
+ draft (in 1990 or 1991) that rescinded permission to elide
+ quote marks in namelist input of character data; compile
+ with -DF8X_NML_ELIDE_QUOTES to get the old behavior.
+ wrtfmt.o: wrt_G: tweak to print the right number of 0's
+ for zero under G format. */
+/* 16 Aug. 1997: iio.c: fix bug in internal writes to an array of character
+ strings that sometimes caused one more array element than
+ required by the format to be blank-filled. Example:
+ format(1x). */
+/* 16 Sept. 1997:fmt.[ch] rdfmt.c wrtfmt.c: tweak struct syl for machines
+ with 64-bit pointers and 32-bit ints that did not 64-bit
+ align struct syl (e.g., Linux on the DEC Alpha). */
+/* 19 Jan. 1998: backspace.c: for b->ufmt==0, change sizeof(int) to
+ sizeof(uiolen). On machines where this would make a
+ difference, it is best for portability to compile libI77 with
+ -DUIOLEN_int (which will render the change invisible). */
+/* 4 March 1998: open.c: fix glitch in comparing file names under
+ -DNON_UNIX_STDIO */
+/* 17 March 1998: endfile.c, open.c: acquire temporary files from tmpfile(),
+ unless compiled with -DNON_ANSI_STDIO, which uses mktemp().
+ New buffering scheme independent of NON_UNIX_STDIO for
+ handling T format items. Now -DNON_UNIX_STDIO is no
+ longer be necessary for Linux, and libf2c no longer
+ causes stderr to be buffered -- the former setbuf or
+ setvbuf call for stderr was to make T format items work.
+ open.c: use the Posix access() function to check existence
+ or nonexistence of files, except under -DNON_POSIX_STDIO,
+ where trial fopen calls are used. */
+/* 5 April 1998: wsfe.c: make $ format item work: this was lost in the
+ changes of 17 March 1998. */
+/* 28 May 1998: backspace.c dfe.c due.c iio.c lread.c rsfe.c sue.c wsfe.c:
+ set f__curunit sooner so various error messages will
+ correctly identify the I/O unit involved. */
+/* 17 June 1998: lread.c: unless compiled with
+ ALLOW_FLOAT_IN_INTEGER_LIST_INPUT #defined, treat
+ floating-point numbers (containing either a decimal point
+ or an exponent field) as errors when they appear as list
+ input for integer data. */
+/* 7 Sept. 1998: move e_wdfe from sfe.c to dfe.c, where it was originally.
+ Why did it ever move to sfe.c? */
+/* 2 May 1999: open.c: set f__external (to get "external" versus "internal"
+ right in the error message if we cannot open the file).
+ err.c: cast a pointer difference to (int) for %d.
+ rdfmt.c: omit fixed-length buffer that could be overwritten
+ by formats Inn or Lnn with nn > 83. */
+/* 3 May 1999: open.c: insert two casts for machines with 64-bit longs. */
+/* 18 June 1999: backspace.c: allow for b->ufd changing in t_runc */
+/* 27 June 1999: rsne.c: fix bug in namelist input: a misplaced increment */
+/* could cause wrong array elements to be assigned; e.g., */
+/* "&input k(5)=10*1 &end" assigned k(5) and k(15..23) */
+/* 15 Nov. 1999: endfile.c: set state to writing (b->uwrt = 1) when an */
+/* endfile statement requires copying the file. */
+/* (Otherwise an immediately following rewind statement */
+/* could make the file appear empty.) Also, supply a */
+/* missing (long) cast in the sprintf call. */
+/* sfe.c: add #ifdef ALWAYS_FLUSH logic, for formatted I/O: */
+/* Compiling libf2c with -DALWAYS_FLUSH should prevent losing */
+/* any data in buffers should the program fault. It also */
+/* makes the program run more slowly. */
+/* 20 April 2000: rsne.c, xwsne.c: tweaks that only matter if ftnint and */
+/* ftnlen are of different fundamental types (different numbers */
+/* of bits). Since these files will not compile when this */
+/* change matters, the above VERSION string remains unchanged. */
+/* 4 July 2000: adjustments to permit compilation by C++ compilers; */
+/* VERSION string remains unchanged. */
+/* 5 Dec. 2000: lread.c: under namelist input, when reading a logical array, */
+/* treat Tstuff= and Fstuff= as new assignments rather than as */
+/* logical constants. */
+/* 22 Feb. 2001: endfile.c: adjust to use truncate() unless compiled with */
+/* -DNO_TRUNCATE (or with -DMSDOS). */
+/* 1 March 2001: endfile.c: switch to ftruncate (absent -DNO_TRUNCATE), */
+/* thus permitting truncation of scratch files on true Unix */
+/* systems, where scratch files have no name. Add an fflush() */
+/* (surprisingly) needed on some Linux systems. */
+/* 11 Oct. 2001: backspac.c dfe.c due.c endfile.c err.c fio.h fmt.c fmt.h */
+/* inquire.c open.c rdfmt.c sue.c util.c: change fseek and */
+/* ftell to FSEEK and FTELL (#defined to be fseek and ftell, */
+/* respectively, in fio.h unless otherwise #defined), and use */
+/* type OFF_T (#defined to be long unless otherwise #defined) */
+/* to permit handling files over 2GB long where possible, */
+/* with suitable -D options, provided for some systems in new */
+/* header file sysdep1.h (copied from sysdep1.h0 by default). */
+/* 15 Nov. 2001: endfile.c: add FSEEK after FTRUNCATE. */
+/* 28 Nov. 2001: fmt.h lwrite.c wref.c and (new) signbit.c: on IEEE systems, */
+/* print -0 as -0 when compiled with -DSIGNED_ZEROS. See */
+/* comments in makefile or (better) libf2c/makefile.* . */
+/* 6 Sept. 2002: rsne.c: fix bug with multiple repeat counts in reading */
+/* namelists, e.g., &nl a(2) = 3*1.0, 2*2.0, 3*3.0 / */
+/* 21 March 2003: err.c: before writing to a file after reading from it, */
+/* f_seek(file, 0, SEEK_CUR) to make writing legal in ANSI C. */
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_abs.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_abs.c
new file mode 100644
index 00000000000..2b92c4aa782
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_abs.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer i_abs(x) integer *x;
+#else
+integer i_abs(integer *x)
+#endif
+{
+if(*x >= 0)
+ return(*x);
+return(- *x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dim.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dim.c
new file mode 100644
index 00000000000..60ed4d8c5b4
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dim.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer i_dim(a,b) integer *a, *b;
+#else
+integer i_dim(integer *a, integer *b)
+#endif
+{
+return( *a > *b ? *a - *b : 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dnnt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dnnt.c
new file mode 100644
index 00000000000..3abc2dc4a51
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_dnnt.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+integer i_dnnt(x) doublereal *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+integer i_dnnt(doublereal *x)
+#endif
+{
+return (integer)(*x >= 0. ? floor(*x + .5) : -floor(.5 - *x));
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_indx.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_indx.c
new file mode 100644
index 00000000000..19256393ecd
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_indx.c
@@ -0,0 +1,32 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer i_indx(a, b, la, lb) char *a, *b; ftnlen la, lb;
+#else
+integer i_indx(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+ftnlen i, n;
+char *s, *t, *bend;
+
+n = la - lb + 1;
+bend = b + lb;
+
+for(i = 0 ; i < n ; ++i)
+ {
+ s = a + i;
+ t = b;
+ while(t < bend)
+ if(*s++ != *t++)
+ goto no;
+ return(i+1);
+ no: ;
+ }
+return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_len.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_len.c
new file mode 100644
index 00000000000..0f7b188d65a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_len.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer i_len(s, n) char *s; ftnlen n;
+#else
+integer i_len(char *s, ftnlen n)
+#endif
+{
+return(n);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_mod.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_mod.c
new file mode 100644
index 00000000000..4a9b5609ba4
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_mod.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer i_mod(a,b) integer *a, *b;
+#else
+integer i_mod(integer *a, integer *b)
+#endif
+{
+return( *a % *b);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_nint.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_nint.c
new file mode 100644
index 00000000000..fe9fd68a86e
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_nint.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+integer i_nint(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+integer i_nint(real *x)
+#endif
+{
+return (integer)(*x >= 0 ? floor(*x + .5) : -floor(.5 - *x));
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_sign.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_sign.c
new file mode 100644
index 00000000000..4c20e9494e1
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/i_sign.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer i_sign(a,b) integer *a, *b;
+#else
+integer i_sign(integer *a, integer *b)
+#endif
+{
+integer x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/iargc_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/iargc_.c
new file mode 100644
index 00000000000..2f29da0eaa6
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/iargc_.c
@@ -0,0 +1,17 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+ftnint iargc_()
+#else
+ftnint iargc_(void)
+#endif
+{
+extern int xargc;
+return ( xargc - 1 );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/iio.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/iio.c
new file mode 100644
index 00000000000..8553efcf97f
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/iio.c
@@ -0,0 +1,159 @@
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern char *f__icptr;
+char *f__icend;
+extern icilist *f__svic;
+int f__icnum;
+
+ int
+z_getc(Void)
+{
+ if(f__recpos++ < f__svic->icirlen) {
+ if(f__icptr >= f__icend) err(f__svic->iciend,(EOF),"endfile");
+ return(*(unsigned char *)f__icptr++);
+ }
+ return '\n';
+}
+
+ void
+#ifdef KR_headers
+z_putc(c)
+#else
+z_putc(int c)
+#endif
+{
+ if (f__icptr < f__icend && f__recpos++ < f__svic->icirlen)
+ *f__icptr++ = c;
+}
+
+ int
+z_rnew(Void)
+{
+ f__icptr = f__svic->iciunit + (++f__icnum)*f__svic->icirlen;
+ f__recpos = 0;
+ f__cursor = 0;
+ f__hiwater = 0;
+ return 1;
+}
+
+ static int
+z_endp(Void)
+{
+ (*f__donewrec)();
+ return 0;
+ }
+
+ int
+#ifdef KR_headers
+c_si(a) icilist *a;
+#else
+c_si(icilist *a)
+#endif
+{
+ f__elist = (cilist *)a;
+ f__fmtbuf=a->icifmt;
+ f__curunit = 0;
+ f__sequential=f__formatted=1;
+ f__external=0;
+ if(pars_f(f__fmtbuf)<0)
+ err(a->icierr,100,"startint");
+ fmt_bg();
+ f__cblank=f__cplus=f__scale=0;
+ f__svic=a;
+ f__icnum=f__recpos=0;
+ f__cursor = 0;
+ f__hiwater = 0;
+ f__icptr = a->iciunit;
+ f__icend = f__icptr + a->icirlen*a->icirnum;
+ f__cf = 0;
+ return(0);
+}
+
+ int
+iw_rev(Void)
+{
+ if(f__workdone)
+ z_endp();
+ f__hiwater = f__recpos = f__cursor = 0;
+ return(f__workdone=0);
+ }
+
+#ifdef KR_headers
+integer s_rsfi(a) icilist *a;
+#else
+integer s_rsfi(icilist *a)
+#endif
+{ int n;
+ if(n=c_si(a)) return(n);
+ f__reading=1;
+ f__doed=rd_ed;
+ f__doned=rd_ned;
+ f__getn=z_getc;
+ f__dorevert = z_endp;
+ f__donewrec = z_rnew;
+ f__doend = z_endp;
+ return(0);
+}
+
+ int
+z_wnew(Void)
+{
+ if (f__recpos < f__hiwater) {
+ f__icptr += f__hiwater - f__recpos;
+ f__recpos = f__hiwater;
+ }
+ while(f__recpos++ < f__svic->icirlen)
+ *f__icptr++ = ' ';
+ f__recpos = 0;
+ f__cursor = 0;
+ f__hiwater = 0;
+ f__icnum++;
+ return 1;
+}
+#ifdef KR_headers
+integer s_wsfi(a) icilist *a;
+#else
+integer s_wsfi(icilist *a)
+#endif
+{ int n;
+ if(n=c_si(a)) return(n);
+ f__reading=0;
+ f__doed=w_ed;
+ f__doned=w_ned;
+ f__putn=z_putc;
+ f__dorevert = iw_rev;
+ f__donewrec = z_wnew;
+ f__doend = z_endp;
+ return(0);
+}
+integer e_rsfi(Void)
+{ int n = en_fio();
+ f__fmtbuf = NULL;
+ return(n);
+}
+integer e_wsfi(Void)
+{
+ int n;
+ n = en_fio();
+ f__fmtbuf = NULL;
+ if(f__svic->icirnum != 1
+ && (f__icnum > f__svic->icirnum
+ || (f__icnum == f__svic->icirnum && (f__recpos | f__hiwater))))
+ err(f__svic->icierr,110,"inwrite");
+ if (f__recpos < f__hiwater)
+ f__recpos = f__hiwater;
+ if (f__recpos >= f__svic->icirlen)
+ err(f__svic->icierr,110,"recend");
+ if (!f__recpos && f__icnum)
+ return n;
+ while(f__recpos++ < f__svic->icirlen)
+ *f__icptr++ = ' ';
+ return n;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/ilnw.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ilnw.c
new file mode 100644
index 00000000000..e8b3d49cf1f
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/ilnw.c
@@ -0,0 +1,83 @@
+#include "f2c.h"
+#include "fio.h"
+#include "lio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern char *f__icptr;
+extern char *f__icend;
+extern icilist *f__svic;
+extern int f__icnum;
+#ifdef KR_headers
+extern void z_putc();
+#else
+extern void z_putc(int);
+#endif
+
+ static int
+z_wSL(Void)
+{
+ while(f__recpos < f__svic->icirlen)
+ z_putc(' ');
+ return z_rnew();
+ }
+
+ static void
+#ifdef KR_headers
+c_liw(a) icilist *a;
+#else
+c_liw(icilist *a)
+#endif
+{
+ f__reading = 0;
+ f__external = 0;
+ f__formatted = 1;
+ f__putn = z_putc;
+ L_len = a->icirlen;
+ f__donewrec = z_wSL;
+ f__svic = a;
+ f__icnum = f__recpos = 0;
+ f__cursor = 0;
+ f__cf = 0;
+ f__curunit = 0;
+ f__icptr = a->iciunit;
+ f__icend = f__icptr + a->icirlen*a->icirnum;
+ f__elist = (cilist *)a;
+ }
+
+ integer
+#ifdef KR_headers
+s_wsni(a) icilist *a;
+#else
+s_wsni(icilist *a)
+#endif
+{
+ cilist ca;
+
+ c_liw(a);
+ ca.cifmt = a->icifmt;
+ x_wsne(&ca);
+ z_wSL();
+ return 0;
+ }
+
+ integer
+#ifdef KR_headers
+s_wsli(a) icilist *a;
+#else
+s_wsli(icilist *a)
+#endif
+{
+ f__lioproc = l_write;
+ c_liw(a);
+ return(0);
+ }
+
+integer e_wsli(Void)
+{
+ z_wSL();
+ return(0);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/inquire.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/inquire.c
new file mode 100644
index 00000000000..5936a674ccc
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/inquire.c
@@ -0,0 +1,117 @@
+#include "f2c.h"
+#include "fio.h"
+#include "string.h"
+#ifdef NON_UNIX_STDIO
+#ifndef MSDOS
+#include "unistd.h" /* for access() */
+#endif
+#endif
+#ifdef KR_headers
+integer f_inqu(a) inlist *a;
+#else
+#ifdef __cplusplus
+extern "C" integer f_inqu(inlist*);
+#endif
+#ifdef MSDOS
+#undef abs
+#undef min
+#undef max
+#include "io.h"
+#endif
+integer f_inqu(inlist *a)
+#endif
+{ flag byfile;
+ int i;
+#ifndef NON_UNIX_STDIO
+ int n;
+#endif
+ unit *p;
+ char buf[256];
+ long x;
+ if(a->infile!=NULL)
+ { byfile=1;
+ g_char(a->infile,a->infilen,buf);
+#ifdef NON_UNIX_STDIO
+ x = access(buf,0) ? -1 : 0;
+ for(i=0,p=NULL;i<MXUNIT;i++)
+ if(f__units[i].ufd != NULL
+ && f__units[i].ufnm != NULL
+ && !strcmp(f__units[i].ufnm,buf)) {
+ p = &f__units[i];
+ break;
+ }
+#else
+ x=f__inode(buf, &n);
+ for(i=0,p=NULL;i<MXUNIT;i++)
+ if(f__units[i].uinode==x
+ && f__units[i].ufd!=NULL
+ && f__units[i].udev == n) {
+ p = &f__units[i];
+ break;
+ }
+#endif
+ }
+ else
+ {
+ byfile=0;
+ if(a->inunit<MXUNIT && a->inunit>=0)
+ {
+ p= &f__units[a->inunit];
+ }
+ else
+ {
+ p=NULL;
+ }
+ }
+ if(a->inex!=NULL)
+ if(byfile && x != -1 || !byfile && p!=NULL)
+ *a->inex=1;
+ else *a->inex=0;
+ if(a->inopen!=NULL)
+ if(byfile) *a->inopen=(p!=NULL);
+ else *a->inopen=(p!=NULL && p->ufd!=NULL);
+ if(a->innum!=NULL) *a->innum= p-f__units;
+ if(a->innamed!=NULL)
+ if(byfile || p!=NULL && p->ufnm!=NULL)
+ *a->innamed=1;
+ else *a->innamed=0;
+ if(a->inname!=NULL)
+ if(byfile)
+ b_char(buf,a->inname,a->innamlen);
+ else if(p!=NULL && p->ufnm!=NULL)
+ b_char(p->ufnm,a->inname,a->innamlen);
+ if(a->inacc!=NULL && p!=NULL && p->ufd!=NULL)
+ if(p->url)
+ b_char("DIRECT",a->inacc,a->inacclen);
+ else b_char("SEQUENTIAL",a->inacc,a->inacclen);
+ if(a->inseq!=NULL)
+ if(p!=NULL && p->url)
+ b_char("NO",a->inseq,a->inseqlen);
+ else b_char("YES",a->inseq,a->inseqlen);
+ if(a->indir!=NULL)
+ if(p==NULL || p->url)
+ b_char("YES",a->indir,a->indirlen);
+ else b_char("NO",a->indir,a->indirlen);
+ if(a->infmt!=NULL)
+ if(p!=NULL && p->ufmt==0)
+ b_char("UNFORMATTED",a->infmt,a->infmtlen);
+ else b_char("FORMATTED",a->infmt,a->infmtlen);
+ if(a->inform!=NULL)
+ if(p!=NULL && p->ufmt==0)
+ b_char("NO",a->inform,a->informlen);
+ else b_char("YES",a->inform,a->informlen);
+ if(a->inunf)
+ if(p!=NULL && p->ufmt==0)
+ b_char("YES",a->inunf,a->inunflen);
+ else if (p!=NULL) b_char("NO",a->inunf,a->inunflen);
+ else b_char("UNKNOWN",a->inunf,a->inunflen);
+ if(a->inrecl!=NULL && p!=NULL)
+ *a->inrecl=p->url;
+ if(a->innrec!=NULL && p!=NULL && p->url>0)
+ *a->innrec=(ftnint)(FTELL(p->ufd)/p->url+1);
+ if(a->inblank && p!=NULL && p->ufmt)
+ if(p->ublnk)
+ b_char("ZERO",a->inblank,a->inblanklen);
+ else b_char("NULL",a->inblank,a->inblanklen);
+ return(0);
+}
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_ge.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_ge.c
new file mode 100644
index 00000000000..a84f0ee4abc
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_ge.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+logical l_ge(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+logical l_ge(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) >= 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_gt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_gt.c
new file mode 100644
index 00000000000..ae6950d1391
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_gt.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+logical l_gt(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+logical l_gt(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) > 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_le.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_le.c
new file mode 100644
index 00000000000..625b49a9ea9
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_le.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+logical l_le(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+logical l_le(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) <= 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_lt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_lt.c
new file mode 100644
index 00000000000..ab21b362de9
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/l_lt.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern integer s_cmp();
+logical l_lt(a,b,la,lb) char *a, *b; ftnlen la, lb;
+#else
+extern integer s_cmp(char *, char *, ftnlen, ftnlen);
+logical l_lt(char *a, char *b, ftnlen la, ftnlen lb)
+#endif
+{
+return(s_cmp(a,b,la,lb) < 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitbits.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitbits.c
new file mode 100644
index 00000000000..5b6ccf72d0a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitbits.c
@@ -0,0 +1,68 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef LONGBITS
+#define LONGBITS 32
+#endif
+
+ integer
+#ifdef KR_headers
+lbit_bits(a, b, len) integer a, b, len;
+#else
+lbit_bits(integer a, integer b, integer len)
+#endif
+{
+ /* Assume 2's complement arithmetic */
+
+ unsigned long x, y;
+
+ x = (unsigned long) a;
+ y = (unsigned long)-1L;
+ x >>= b;
+ y <<= len;
+ return (integer)(x & ~y);
+ }
+
+ integer
+#ifdef KR_headers
+lbit_cshift(a, b, len) integer a, b, len;
+#else
+lbit_cshift(integer a, integer b, integer len)
+#endif
+{
+ unsigned long x, y, z;
+
+ x = (unsigned long)a;
+ if (len <= 0) {
+ if (len == 0)
+ return 0;
+ goto full_len;
+ }
+ if (len >= LONGBITS) {
+ full_len:
+ if (b >= 0) {
+ b %= LONGBITS;
+ return (integer)(x << b | x >> LONGBITS -b );
+ }
+ b = -b;
+ b %= LONGBITS;
+ return (integer)(x << LONGBITS - b | x >> b);
+ }
+ y = z = (unsigned long)-1;
+ y <<= len;
+ z &= ~y;
+ y &= x;
+ x &= z;
+ if (b >= 0) {
+ b %= len;
+ return (integer)(y | z & (x << b | x >> len - b));
+ }
+ b = -b;
+ b %= len;
+ return (integer)(y | z & (x >> b | x << len - b));
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitshft.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitshft.c
new file mode 100644
index 00000000000..fbee94f1403
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lbitshft.c
@@ -0,0 +1,17 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ integer
+#ifdef KR_headers
+lbit_shift(a, b) integer a; integer b;
+#else
+lbit_shift(integer a, integer b)
+#endif
+{
+ return b >= 0 ? a << b : (integer)((uinteger)a >> -b);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/lio.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lio.h
new file mode 100644
index 00000000000..012317206aa
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lio.h
@@ -0,0 +1,74 @@
+/* copy of ftypes from the compiler */
+/* variable types
+ * numeric assumptions:
+ * int < reals < complexes
+ * TYDREAL-TYREAL = TYDCOMPLEX-TYCOMPLEX
+ */
+
+/* 0-10 retain their old (pre LOGICAL*1, etc.) */
+/* values to allow mixing old and new objects. */
+
+#define TYUNKNOWN 0
+#define TYADDR 1
+#define TYSHORT 2
+#define TYLONG 3
+#define TYREAL 4
+#define TYDREAL 5
+#define TYCOMPLEX 6
+#define TYDCOMPLEX 7
+#define TYLOGICAL 8
+#define TYCHAR 9
+#define TYSUBR 10
+#define TYINT1 11
+#define TYLOGICAL1 12
+#define TYLOGICAL2 13
+#ifdef Allow_TYQUAD
+#undef TYQUAD
+#define TYQUAD 14
+#endif
+
+#define LINTW 24
+#define LINE 80
+#define LLOGW 2
+#ifdef Old_list_output
+#define LLOW 1.0
+#define LHIGH 1.e9
+#define LEFMT " %# .8E"
+#define LFFMT " %# .9g"
+#else
+#define LGFMT "%.9G"
+#endif
+/* LEFBL 20 should suffice; 24 overcomes a NeXT bug. */
+#define LEFBL 24
+
+typedef union
+{
+ char flchar;
+ short flshort;
+ ftnint flint;
+#ifdef Allow_TYQUAD
+ longint fllongint;
+#endif
+ real flreal;
+ doublereal fldouble;
+} flex;
+extern int f__scale;
+#ifdef KR_headers
+extern int (*f__lioproc)(), (*l_getc)(), (*l_ungetc)();
+extern int l_read(), l_write();
+#else
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int (*f__lioproc)(ftnint*, char*, ftnlen, ftnint);
+extern int l_write(ftnint*, char*, ftnlen, ftnint);
+extern void x_wsne(cilist*);
+extern int c_le(cilist*), (*l_getc)(void), (*l_ungetc)(int,FILE*);
+extern int l_read(ftnint*,char*,ftnlen,ftnint);
+extern integer e_rsle(void), e_wsle(void), s_wsne(cilist*);
+extern int z_rnew(void);
+#ifdef __cplusplus
+ }
+#endif
+#endif
+extern ftnint L_len;
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/lread.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lread.c
new file mode 100644
index 00000000000..55e068bf9fe
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lread.c
@@ -0,0 +1,805 @@
+#include "f2c.h"
+#include "fio.h"
+
+/* Compile with -DF8X_NML_ELIDE_QUOTES to permit eliding quotation */
+/* marks in namelist input a la the Fortran 8X Draft published in */
+/* the May 1989 issue of Fortran Forum. */
+
+
+extern char *f__fmtbuf;
+
+#ifdef Allow_TYQUAD
+static longint f__llx;
+#endif
+
+#ifdef KR_headers
+extern double atof();
+extern char *malloc(), *realloc();
+int (*f__lioproc)(), (*l_getc)(), (*l_ungetc)();
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#endif
+
+#include "fmt.h"
+#include "lio.h"
+#include "ctype.h"
+#include "fp.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef KR_headers
+int (*f__lioproc)(ftnint*, char*, ftnlen, ftnint), (*l_getc)(void),
+ (*l_ungetc)(int,FILE*);
+#endif
+
+int l_eof;
+
+#define isblnk(x) (f__ltab[x+1]&B)
+#define issep(x) (f__ltab[x+1]&SX)
+#define isapos(x) (f__ltab[x+1]&AX)
+#define isexp(x) (f__ltab[x+1]&EX)
+#define issign(x) (f__ltab[x+1]&SG)
+#define iswhit(x) (f__ltab[x+1]&WH)
+#define SX 1
+#define B 2
+#define AX 4
+#define EX 8
+#define SG 16
+#define WH 32
+char f__ltab[128+1] = { /* offset one for EOF */
+ 0,
+ 0,0,AX,0,0,0,0,0,0,WH|B,SX|WH,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ SX|B|WH,0,AX,0,0,0,0,AX,0,0,0,SG,SX,SG,0,SX,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,EX,EX,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ AX,0,0,0,EX,EX,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+#ifdef ungetc
+ static int
+#ifdef KR_headers
+un_getc(x,f__cf) int x; FILE *f__cf;
+#else
+un_getc(int x, FILE *f__cf)
+#endif
+{ return ungetc(x,f__cf); }
+#else
+#define un_getc ungetc
+#ifdef KR_headers
+ extern int ungetc();
+#else
+extern int ungetc(int, FILE*); /* for systems with a buggy stdio.h */
+#endif
+#endif
+
+ int
+t_getc(Void)
+{ int ch;
+ if(f__curunit->uend) return(EOF);
+ if((ch=getc(f__cf))!=EOF) return(ch);
+ if(feof(f__cf))
+ f__curunit->uend = l_eof = 1;
+ return(EOF);
+}
+integer e_rsle(Void)
+{
+ int ch;
+ if(f__curunit->uend) return(0);
+ while((ch=t_getc())!='\n')
+ if (ch == EOF) {
+ if(feof(f__cf))
+ f__curunit->uend = l_eof = 1;
+ return EOF;
+ }
+ return(0);
+}
+
+flag f__lquit;
+int f__lcount,f__ltype,nml_read;
+char *f__lchar;
+double f__lx,f__ly;
+#define ERR(x) if(n=(x)) return(n)
+#define GETC(x) (x=(*l_getc)())
+#define Ungetc(x,y) (*l_ungetc)(x,y)
+
+ static int
+#ifdef KR_headers
+l_R(poststar, reqint) int poststar, reqint;
+#else
+l_R(int poststar, int reqint)
+#endif
+{
+ char s[FMAX+EXPMAXDIGS+4];
+ register int ch;
+ register char *sp, *spe, *sp1;
+ long e, exp;
+ int havenum, havestar, se;
+
+ if (!poststar) {
+ if (f__lcount > 0)
+ return(0);
+ f__lcount = 1;
+ }
+#ifdef Allow_TYQUAD
+ f__llx = 0;
+#endif
+ f__ltype = 0;
+ exp = 0;
+ havestar = 0;
+retry:
+ sp1 = sp = s;
+ spe = sp + FMAX;
+ havenum = 0;
+
+ switch(GETC(ch)) {
+ case '-': *sp++ = ch; sp1++; spe++;
+ case '+':
+ GETC(ch);
+ }
+ while(ch == '0') {
+ ++havenum;
+ GETC(ch);
+ }
+ while(isdigit(ch)) {
+ if (sp < spe) *sp++ = ch;
+ else ++exp;
+ GETC(ch);
+ }
+ if (ch == '*' && !poststar) {
+ if (sp == sp1 || exp || *s == '-') {
+ errfl(f__elist->cierr,112,"bad repetition count");
+ }
+ poststar = havestar = 1;
+ *sp = 0;
+ f__lcount = atoi(s);
+ goto retry;
+ }
+ if (ch == '.') {
+#ifndef ALLOW_FLOAT_IN_INTEGER_LIST_INPUT
+ if (reqint)
+ errfl(f__elist->cierr,115,"invalid integer");
+#endif
+ GETC(ch);
+ if (sp == sp1)
+ while(ch == '0') {
+ ++havenum;
+ --exp;
+ GETC(ch);
+ }
+ while(isdigit(ch)) {
+ if (sp < spe)
+ { *sp++ = ch; --exp; }
+ GETC(ch);
+ }
+ }
+ havenum += sp - sp1;
+ se = 0;
+ if (issign(ch))
+ goto signonly;
+ if (havenum && isexp(ch)) {
+#ifndef ALLOW_FLOAT_IN_INTEGER_LIST_INPUT
+ if (reqint)
+ errfl(f__elist->cierr,115,"invalid integer");
+#endif
+ GETC(ch);
+ if (issign(ch)) {
+signonly:
+ if (ch == '-') se = 1;
+ GETC(ch);
+ }
+ if (!isdigit(ch)) {
+bad:
+ errfl(f__elist->cierr,112,"exponent field");
+ }
+
+ e = ch - '0';
+ while(isdigit(GETC(ch))) {
+ e = 10*e + ch - '0';
+ if (e > EXPMAX)
+ goto bad;
+ }
+ if (se)
+ exp -= e;
+ else
+ exp += e;
+ }
+ (void) Ungetc(ch, f__cf);
+ if (sp > sp1) {
+ ++havenum;
+ while(*--sp == '0')
+ ++exp;
+ if (exp)
+ sprintf(sp+1, "e%ld", exp);
+ else
+ sp[1] = 0;
+ f__lx = atof(s);
+#ifdef Allow_TYQUAD
+ if (reqint&2 && (se = sp - sp1 + exp) > 14 && se < 20) {
+ /* Assuming 64-bit longint and 32-bit long. */
+ if (exp < 0)
+ sp += exp;
+ if (sp1 <= sp) {
+ f__llx = *sp1 - '0';
+ while(++sp1 <= sp)
+ f__llx = 10*f__llx + (*sp1 - '0');
+ }
+ while(--exp >= 0)
+ f__llx *= 10;
+ if (*s == '-')
+ f__llx = -f__llx;
+ }
+#endif
+ }
+ else
+ f__lx = 0.;
+ if (havenum)
+ f__ltype = TYLONG;
+ else
+ switch(ch) {
+ case ',':
+ case '/':
+ break;
+ default:
+ if (havestar && ( ch == ' '
+ ||ch == '\t'
+ ||ch == '\n'))
+ break;
+ if (nml_read > 1) {
+ f__lquit = 2;
+ return 0;
+ }
+ errfl(f__elist->cierr,112,"invalid number");
+ }
+ return 0;
+ }
+
+ static int
+#ifdef KR_headers
+rd_count(ch) register int ch;
+#else
+rd_count(register int ch)
+#endif
+{
+ if (ch < '0' || ch > '9')
+ return 1;
+ f__lcount = ch - '0';
+ while(GETC(ch) >= '0' && ch <= '9')
+ f__lcount = 10*f__lcount + ch - '0';
+ Ungetc(ch,f__cf);
+ return f__lcount <= 0;
+ }
+
+ static int
+l_C(Void)
+{ int ch, nml_save;
+ double lz;
+ if(f__lcount>0) return(0);
+ f__ltype=0;
+ GETC(ch);
+ if(ch!='(')
+ {
+ if (nml_read > 1 && (ch < '0' || ch > '9')) {
+ Ungetc(ch,f__cf);
+ f__lquit = 2;
+ return 0;
+ }
+ if (rd_count(ch))
+ if(!f__cf || !feof(f__cf))
+ errfl(f__elist->cierr,112,"complex format");
+ else
+ err(f__elist->cierr,(EOF),"lread");
+ if(GETC(ch)!='*')
+ {
+ if(!f__cf || !feof(f__cf))
+ errfl(f__elist->cierr,112,"no star");
+ else
+ err(f__elist->cierr,(EOF),"lread");
+ }
+ if(GETC(ch)!='(')
+ { Ungetc(ch,f__cf);
+ return(0);
+ }
+ }
+ else
+ f__lcount = 1;
+ while(iswhit(GETC(ch)));
+ Ungetc(ch,f__cf);
+ nml_save = nml_read;
+ nml_read = 0;
+ if (ch = l_R(1,0))
+ return ch;
+ if (!f__ltype)
+ errfl(f__elist->cierr,112,"no real part");
+ lz = f__lx;
+ while(iswhit(GETC(ch)));
+ if(ch!=',')
+ { (void) Ungetc(ch,f__cf);
+ errfl(f__elist->cierr,112,"no comma");
+ }
+ while(iswhit(GETC(ch)));
+ (void) Ungetc(ch,f__cf);
+ if (ch = l_R(1,0))
+ return ch;
+ if (!f__ltype)
+ errfl(f__elist->cierr,112,"no imaginary part");
+ while(iswhit(GETC(ch)));
+ if(ch!=')') errfl(f__elist->cierr,112,"no )");
+ f__ly = f__lx;
+ f__lx = lz;
+#ifdef Allow_TYQUAD
+ f__llx = 0;
+#endif
+ nml_read = nml_save;
+ return(0);
+}
+
+ static char nmLbuf[256], *nmL_next;
+ static int (*nmL_getc_save)(Void);
+#ifdef KR_headers
+ static int (*nmL_ungetc_save)(/* int, FILE* */);
+#else
+ static int (*nmL_ungetc_save)(int, FILE*);
+#endif
+
+ static int
+nmL_getc(Void)
+{
+ int rv;
+ if (rv = *nmL_next++)
+ return rv;
+ l_getc = nmL_getc_save;
+ l_ungetc = nmL_ungetc_save;
+ return (*l_getc)();
+ }
+
+ static int
+#ifdef KR_headers
+nmL_ungetc(x, f) int x; FILE *f;
+#else
+nmL_ungetc(int x, FILE *f)
+#endif
+{
+ f = f; /* banish non-use warning */
+ return *--nmL_next = x;
+ }
+
+ static int
+#ifdef KR_headers
+Lfinish(ch, dot, rvp) int ch, dot, *rvp;
+#else
+Lfinish(int ch, int dot, int *rvp)
+#endif
+{
+ char *s, *se;
+ static char what[] = "namelist input";
+
+ s = nmLbuf + 2;
+ se = nmLbuf + sizeof(nmLbuf) - 1;
+ *s++ = ch;
+ while(!issep(GETC(ch)) && ch!=EOF) {
+ if (s >= se) {
+ nmLbuf_ovfl:
+ return *rvp = err__fl(f__elist->cierr,131,what);
+ }
+ *s++ = ch;
+ if (ch != '=')
+ continue;
+ if (dot)
+ return *rvp = err__fl(f__elist->cierr,112,what);
+ got_eq:
+ *s = 0;
+ nmL_getc_save = l_getc;
+ l_getc = nmL_getc;
+ nmL_ungetc_save = l_ungetc;
+ l_ungetc = nmL_ungetc;
+ nmLbuf[1] = *(nmL_next = nmLbuf) = ',';
+ *rvp = f__lcount = 0;
+ return 1;
+ }
+ if (dot)
+ goto done;
+ for(;;) {
+ if (s >= se)
+ goto nmLbuf_ovfl;
+ *s++ = ch;
+ if (!isblnk(ch))
+ break;
+ if (GETC(ch) == EOF)
+ goto done;
+ }
+ if (ch == '=')
+ goto got_eq;
+ done:
+ Ungetc(ch, f__cf);
+ return 0;
+ }
+
+ static int
+l_L(Void)
+{
+ int ch, rv, sawdot;
+
+ if(f__lcount>0)
+ return(0);
+ f__lcount = 1;
+ f__ltype=0;
+ GETC(ch);
+ if(isdigit(ch))
+ {
+ rd_count(ch);
+ if(GETC(ch)!='*')
+ if(!f__cf || !feof(f__cf))
+ errfl(f__elist->cierr,112,"no star");
+ else
+ err(f__elist->cierr,(EOF),"lread");
+ GETC(ch);
+ }
+ sawdot = 0;
+ if(ch == '.') {
+ sawdot = 1;
+ GETC(ch);
+ }
+ switch(ch)
+ {
+ case 't':
+ case 'T':
+ if (nml_read && Lfinish(ch, sawdot, &rv))
+ return rv;
+ f__lx=1;
+ break;
+ case 'f':
+ case 'F':
+ if (nml_read && Lfinish(ch, sawdot, &rv))
+ return rv;
+ f__lx=0;
+ break;
+ default:
+ if(isblnk(ch) || issep(ch) || ch==EOF)
+ { (void) Ungetc(ch,f__cf);
+ return(0);
+ }
+ if (nml_read > 1) {
+ Ungetc(ch,f__cf);
+ f__lquit = 2;
+ return 0;
+ }
+ errfl(f__elist->cierr,112,"logical");
+ }
+ f__ltype=TYLONG;
+ while(!issep(GETC(ch)) && ch!=EOF);
+ Ungetc(ch, f__cf);
+ return(0);
+}
+
+#define BUFSIZE 128
+
+ static int
+l_CHAR(Void)
+{ int ch,size,i;
+ static char rafail[] = "realloc failure";
+ char quote,*p;
+ if(f__lcount>0) return(0);
+ f__ltype=0;
+ if(f__lchar!=NULL) free(f__lchar);
+ size=BUFSIZE;
+ p=f__lchar = (char *)malloc((unsigned int)size);
+ if(f__lchar == NULL)
+ errfl(f__elist->cierr,113,"no space");
+
+ GETC(ch);
+ if(isdigit(ch)) {
+ /* allow Fortran 8x-style unquoted string... */
+ /* either find a repetition count or the string */
+ f__lcount = ch - '0';
+ *p++ = ch;
+ for(i = 1;;) {
+ switch(GETC(ch)) {
+ case '*':
+ if (f__lcount == 0) {
+ f__lcount = 1;
+#ifndef F8X_NML_ELIDE_QUOTES
+ if (nml_read)
+ goto no_quote;
+#endif
+ goto noquote;
+ }
+ p = f__lchar;
+ goto have_lcount;
+ case ',':
+ case ' ':
+ case '\t':
+ case '\n':
+ case '/':
+ Ungetc(ch,f__cf);
+ /* no break */
+ case EOF:
+ f__lcount = 1;
+ f__ltype = TYCHAR;
+ return *p = 0;
+ }
+ if (!isdigit(ch)) {
+ f__lcount = 1;
+#ifndef F8X_NML_ELIDE_QUOTES
+ if (nml_read) {
+ no_quote:
+ errfl(f__elist->cierr,112,
+ "undelimited character string");
+ }
+#endif
+ goto noquote;
+ }
+ *p++ = ch;
+ f__lcount = 10*f__lcount + ch - '0';
+ if (++i == size) {
+ f__lchar = (char *)realloc(f__lchar,
+ (unsigned int)(size += BUFSIZE));
+ if(f__lchar == NULL)
+ errfl(f__elist->cierr,113,rafail);
+ p = f__lchar + i;
+ }
+ }
+ }
+ else (void) Ungetc(ch,f__cf);
+ have_lcount:
+ if(GETC(ch)=='\'' || ch=='"') quote=ch;
+ else if(isblnk(ch) || (issep(ch) && ch != '\n') || ch==EOF) {
+ Ungetc(ch,f__cf);
+ return 0;
+ }
+#ifndef F8X_NML_ELIDE_QUOTES
+ else if (nml_read > 1) {
+ Ungetc(ch,f__cf);
+ f__lquit = 2;
+ return 0;
+ }
+#endif
+ else {
+ /* Fortran 8x-style unquoted string */
+ *p++ = ch;
+ for(i = 1;;) {
+ switch(GETC(ch)) {
+ case ',':
+ case ' ':
+ case '\t':
+ case '\n':
+ case '/':
+ Ungetc(ch,f__cf);
+ /* no break */
+ case EOF:
+ f__ltype = TYCHAR;
+ return *p = 0;
+ }
+ noquote:
+ *p++ = ch;
+ if (++i == size) {
+ f__lchar = (char *)realloc(f__lchar,
+ (unsigned int)(size += BUFSIZE));
+ if(f__lchar == NULL)
+ errfl(f__elist->cierr,113,rafail);
+ p = f__lchar + i;
+ }
+ }
+ }
+ f__ltype=TYCHAR;
+ for(i=0;;)
+ { while(GETC(ch)!=quote && ch!='\n'
+ && ch!=EOF && ++i<size) *p++ = ch;
+ if(i==size)
+ {
+ newone:
+ f__lchar= (char *)realloc(f__lchar,
+ (unsigned int)(size += BUFSIZE));
+ if(f__lchar == NULL)
+ errfl(f__elist->cierr,113,rafail);
+ p=f__lchar+i-1;
+ *p++ = ch;
+ }
+ else if(ch==EOF) return(EOF);
+ else if(ch=='\n')
+ { if(*(p-1) != '\\') continue;
+ i--;
+ p--;
+ if(++i<size) *p++ = ch;
+ else goto newone;
+ }
+ else if(GETC(ch)==quote)
+ { if(++i<size) *p++ = ch;
+ else goto newone;
+ }
+ else
+ { (void) Ungetc(ch,f__cf);
+ *p = 0;
+ return(0);
+ }
+ }
+}
+
+ int
+#ifdef KR_headers
+c_le(a) cilist *a;
+#else
+c_le(cilist *a)
+#endif
+{
+ if(!f__init)
+ f_init();
+ f__fmtbuf="list io";
+ f__curunit = &f__units[a->ciunit];
+ if(a->ciunit>=MXUNIT || a->ciunit<0)
+ err(a->cierr,101,"stler");
+ f__scale=f__recpos=0;
+ f__elist=a;
+ if(f__curunit->ufd==NULL && fk_open(SEQ,FMT,a->ciunit))
+ err(a->cierr,102,"lio");
+ f__cf=f__curunit->ufd;
+ if(!f__curunit->ufmt) err(a->cierr,103,"lio")
+ return(0);
+}
+
+ int
+#ifdef KR_headers
+l_read(number,ptr,len,type) ftnint *number,type; char *ptr; ftnlen len;
+#else
+l_read(ftnint *number, char *ptr, ftnlen len, ftnint type)
+#endif
+{
+#define Ptr ((flex *)ptr)
+ int i,n,ch;
+ doublereal *yy;
+ real *xx;
+ for(i=0;i<*number;i++)
+ {
+ if(f__lquit) return(0);
+ if(l_eof)
+ err(f__elist->ciend, EOF, "list in")
+ if(f__lcount == 0) {
+ f__ltype = 0;
+ for(;;) {
+ GETC(ch);
+ switch(ch) {
+ case EOF:
+ err(f__elist->ciend,(EOF),"list in")
+ case ' ':
+ case '\t':
+ case '\n':
+ continue;
+ case '/':
+ f__lquit = 1;
+ goto loopend;
+ case ',':
+ f__lcount = 1;
+ goto loopend;
+ default:
+ (void) Ungetc(ch, f__cf);
+ goto rddata;
+ }
+ }
+ }
+ rddata:
+ switch((int)type)
+ {
+ case TYINT1:
+ case TYSHORT:
+ case TYLONG:
+#ifndef ALLOW_FLOAT_IN_INTEGER_LIST_INPUT
+ ERR(l_R(0,1));
+ break;
+#endif
+ case TYREAL:
+ case TYDREAL:
+ ERR(l_R(0,0));
+ break;
+#ifdef TYQUAD
+ case TYQUAD:
+ n = l_R(0,2);
+ if (n)
+ return n;
+ break;
+#endif
+ case TYCOMPLEX:
+ case TYDCOMPLEX:
+ ERR(l_C());
+ break;
+ case TYLOGICAL1:
+ case TYLOGICAL2:
+ case TYLOGICAL:
+ ERR(l_L());
+ break;
+ case TYCHAR:
+ ERR(l_CHAR());
+ break;
+ }
+ while (GETC(ch) == ' ' || ch == '\t');
+ if (ch != ',' || f__lcount > 1)
+ Ungetc(ch,f__cf);
+ loopend:
+ if(f__lquit) return(0);
+ if(f__cf && ferror(f__cf)) {
+ clearerr(f__cf);
+ errfl(f__elist->cierr,errno,"list in");
+ }
+ if(f__ltype==0) goto bump;
+ switch((int)type)
+ {
+ case TYINT1:
+ case TYLOGICAL1:
+ Ptr->flchar = (char)f__lx;
+ break;
+ case TYLOGICAL2:
+ case TYSHORT:
+ Ptr->flshort = (short)f__lx;
+ break;
+ case TYLOGICAL:
+ case TYLONG:
+ Ptr->flint = (ftnint)f__lx;
+ break;
+#ifdef Allow_TYQUAD
+ case TYQUAD:
+ if (!(Ptr->fllongint = f__llx))
+ Ptr->fllongint = f__lx;
+ break;
+#endif
+ case TYREAL:
+ Ptr->flreal=f__lx;
+ break;
+ case TYDREAL:
+ Ptr->fldouble=f__lx;
+ break;
+ case TYCOMPLEX:
+ xx=(real *)ptr;
+ *xx++ = f__lx;
+ *xx = f__ly;
+ break;
+ case TYDCOMPLEX:
+ yy=(doublereal *)ptr;
+ *yy++ = f__lx;
+ *yy = f__ly;
+ break;
+ case TYCHAR:
+ b_char(f__lchar,ptr,len);
+ break;
+ }
+ bump:
+ if(f__lcount>0) f__lcount--;
+ ptr += len;
+ if (nml_read)
+ nml_read++;
+ }
+ return(0);
+#undef Ptr
+}
+#ifdef KR_headers
+integer s_rsle(a) cilist *a;
+#else
+integer s_rsle(cilist *a)
+#endif
+{
+ int n;
+
+ f__reading=1;
+ f__external=1;
+ f__formatted=1;
+ if(n=c_le(a)) return(n);
+ f__lioproc = l_read;
+ f__lquit = 0;
+ f__lcount = 0;
+ l_eof = 0;
+ if(f__curunit->uwrt && f__nowreading(f__curunit))
+ err(a->cierr,errno,"read start");
+ if(f__curunit->uend)
+ err(f__elist->ciend,(EOF),"read start");
+ l_getc = t_getc;
+ l_ungetc = un_getc;
+ f__doend = xrd_SL;
+ return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/lwrite.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lwrite.c
new file mode 100644
index 00000000000..9e0d93deb50
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/lwrite.c
@@ -0,0 +1,314 @@
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#include "lio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ftnint L_len;
+int f__Aquote;
+
+ static VOID
+donewrec(Void)
+{
+ if (f__recpos)
+ (*f__donewrec)();
+ }
+
+ static VOID
+#ifdef KR_headers
+lwrt_I(n) longint n;
+#else
+lwrt_I(longint n)
+#endif
+{
+ char *p;
+ int ndigit, sign;
+
+ p = f__icvt(n, &ndigit, &sign, 10);
+ if(f__recpos + ndigit >= L_len)
+ donewrec();
+ PUT(' ');
+ if (sign)
+ PUT('-');
+ while(*p)
+ PUT(*p++);
+}
+ static VOID
+#ifdef KR_headers
+lwrt_L(n, len) ftnint n; ftnlen len;
+#else
+lwrt_L(ftnint n, ftnlen len)
+#endif
+{
+ if(f__recpos+LLOGW>=L_len)
+ donewrec();
+ wrt_L((Uint *)&n,LLOGW, len);
+}
+ static VOID
+#ifdef KR_headers
+lwrt_A(p,len) char *p; ftnlen len;
+#else
+lwrt_A(char *p, ftnlen len)
+#endif
+{
+ int a;
+ char *p1, *pe;
+
+ a = 0;
+ pe = p + len;
+ if (f__Aquote) {
+ a = 3;
+ if (len > 1 && p[len-1] == ' ') {
+ while(--len > 1 && p[len-1] == ' ');
+ pe = p + len;
+ }
+ p1 = p;
+ while(p1 < pe)
+ if (*p1++ == '\'')
+ a++;
+ }
+ if(f__recpos+len+a >= L_len)
+ donewrec();
+ if (a
+#ifndef OMIT_BLANK_CC
+ || !f__recpos
+#endif
+ )
+ PUT(' ');
+ if (a) {
+ PUT('\'');
+ while(p < pe) {
+ if (*p == '\'')
+ PUT('\'');
+ PUT(*p++);
+ }
+ PUT('\'');
+ }
+ else
+ while(p < pe)
+ PUT(*p++);
+}
+
+ static int
+#ifdef KR_headers
+l_g(buf, n) char *buf; double n;
+#else
+l_g(char *buf, double n)
+#endif
+{
+#ifdef Old_list_output
+ doublereal absn;
+ char *fmt;
+
+ absn = n;
+ if (absn < 0)
+ absn = -absn;
+ fmt = LLOW <= absn && absn < LHIGH ? LFFMT : LEFMT;
+#ifdef USE_STRLEN
+ sprintf(buf, fmt, n);
+ return strlen(buf);
+#else
+ return sprintf(buf, fmt, n);
+#endif
+
+#else
+ register char *b, c, c1;
+
+ b = buf;
+ *b++ = ' ';
+ if (n < 0) {
+ *b++ = '-';
+ n = -n;
+ }
+ else
+ *b++ = ' ';
+ if (n == 0) {
+#ifdef SIGNED_ZEROS
+ if (signbit_f2c(&n))
+ *b++ = '-';
+#endif
+ *b++ = '0';
+ *b++ = '.';
+ *b = 0;
+ goto f__ret;
+ }
+ sprintf(b, LGFMT, n);
+ switch(*b) {
+#ifndef WANT_LEAD_0
+ case '0':
+ while(b[0] = b[1])
+ b++;
+ break;
+#endif
+ case 'i':
+ case 'I':
+ /* Infinity */
+ case 'n':
+ case 'N':
+ /* NaN */
+ while(*++b);
+ break;
+
+ default:
+ /* Fortran 77 insists on having a decimal point... */
+ for(;; b++)
+ switch(*b) {
+ case 0:
+ *b++ = '.';
+ *b = 0;
+ goto f__ret;
+ case '.':
+ while(*++b);
+ goto f__ret;
+ case 'E':
+ for(c1 = '.', c = 'E'; *b = c1;
+ c1 = c, c = *++b);
+ goto f__ret;
+ }
+ }
+ f__ret:
+ return b - buf;
+#endif
+ }
+
+ static VOID
+#ifdef KR_headers
+l_put(s) register char *s;
+#else
+l_put(register char *s)
+#endif
+{
+#ifdef KR_headers
+ register void (*pn)() = f__putn;
+#else
+ register void (*pn)(int) = f__putn;
+#endif
+ register int c;
+
+ while(c = *s++)
+ (*pn)(c);
+ }
+
+ static VOID
+#ifdef KR_headers
+lwrt_F(n) double n;
+#else
+lwrt_F(double n)
+#endif
+{
+ char buf[LEFBL];
+
+ if(f__recpos + l_g(buf,n) >= L_len)
+ donewrec();
+ l_put(buf);
+}
+ static VOID
+#ifdef KR_headers
+lwrt_C(a,b) double a,b;
+#else
+lwrt_C(double a, double b)
+#endif
+{
+ char *ba, *bb, bufa[LEFBL], bufb[LEFBL];
+ int al, bl;
+
+ al = l_g(bufa, a);
+ for(ba = bufa; *ba == ' '; ba++)
+ --al;
+ bl = l_g(bufb, b) + 1; /* intentionally high by 1 */
+ for(bb = bufb; *bb == ' '; bb++)
+ --bl;
+ if(f__recpos + al + bl + 3 >= L_len)
+ donewrec();
+#ifdef OMIT_BLANK_CC
+ else
+#endif
+ PUT(' ');
+ PUT('(');
+ l_put(ba);
+ PUT(',');
+ if (f__recpos + bl >= L_len) {
+ (*f__donewrec)();
+#ifndef OMIT_BLANK_CC
+ PUT(' ');
+#endif
+ }
+ l_put(bb);
+ PUT(')');
+}
+
+ int
+#ifdef KR_headers
+l_write(number,ptr,len,type) ftnint *number,type; char *ptr; ftnlen len;
+#else
+l_write(ftnint *number, char *ptr, ftnlen len, ftnint type)
+#endif
+{
+#define Ptr ((flex *)ptr)
+ int i;
+ longint x;
+ double y,z;
+ real *xx;
+ doublereal *yy;
+ for(i=0;i< *number; i++)
+ {
+ switch((int)type)
+ {
+ default: f__fatal(117,"unknown type in lio");
+ case TYINT1:
+ x = Ptr->flchar;
+ goto xint;
+ case TYSHORT:
+ x=Ptr->flshort;
+ goto xint;
+#ifdef Allow_TYQUAD
+ case TYQUAD:
+ x = Ptr->fllongint;
+ goto xint;
+#endif
+ case TYLONG:
+ x=Ptr->flint;
+ xint: lwrt_I(x);
+ break;
+ case TYREAL:
+ y=Ptr->flreal;
+ goto xfloat;
+ case TYDREAL:
+ y=Ptr->fldouble;
+ xfloat: lwrt_F(y);
+ break;
+ case TYCOMPLEX:
+ xx= &Ptr->flreal;
+ y = *xx++;
+ z = *xx;
+ goto xcomplex;
+ case TYDCOMPLEX:
+ yy = &Ptr->fldouble;
+ y= *yy++;
+ z = *yy;
+ xcomplex:
+ lwrt_C(y,z);
+ break;
+ case TYLOGICAL1:
+ x = Ptr->flchar;
+ goto xlog;
+ case TYLOGICAL2:
+ x = Ptr->flshort;
+ goto xlog;
+ case TYLOGICAL:
+ x = Ptr->flint;
+ xlog: lwrt_L(Ptr->flint, len);
+ break;
+ case TYCHAR:
+ lwrt_A(ptr,len);
+ break;
+ }
+ ptr += len;
+ }
+ return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/main.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/main.c
new file mode 100644
index 00000000000..45397490471
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/main.c
@@ -0,0 +1,147 @@
+/* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */
+
+#include "stdio.h"
+#include "signal1.h"
+
+#ifndef SIGIOT
+#ifdef SIGABRT
+#define SIGIOT SIGABRT
+#endif
+#endif
+
+#ifndef KR_headers
+#undef VOID
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif
+
+#ifndef VOID
+#define VOID void
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef NO__STDC
+#define ONEXIT onexit
+extern VOID f_exit();
+#else
+#ifndef KR_headers
+extern void f_exit(void);
+#ifndef NO_ONEXIT
+#define ONEXIT atexit
+extern int atexit(void (*)(void));
+#endif
+#else
+#ifndef NO_ONEXIT
+#define ONEXIT onexit
+extern VOID f_exit();
+#endif
+#endif
+#endif
+
+#ifdef KR_headers
+extern VOID f_init(), sig_die();
+extern int MAIN__();
+#define Int /* int */
+#else
+extern void f_init(void), sig_die(char*, int);
+extern int MAIN__(void);
+#define Int int
+#endif
+
+static VOID sigfdie(Sigarg)
+{
+Use_Sigarg;
+sig_die("Floating Exception", 1);
+}
+
+
+static VOID sigidie(Sigarg)
+{
+Use_Sigarg;
+sig_die("IOT Trap", 1);
+}
+
+#ifdef SIGQUIT
+static VOID sigqdie(Sigarg)
+{
+Use_Sigarg;
+sig_die("Quit signal", 1);
+}
+#endif
+
+
+static VOID sigindie(Sigarg)
+{
+Use_Sigarg;
+sig_die("Interrupt", 0);
+}
+
+static VOID sigtdie(Sigarg)
+{
+Use_Sigarg;
+sig_die("Killed", 0);
+}
+
+#ifdef SIGTRAP
+static VOID sigtrdie(Sigarg)
+{
+Use_Sigarg;
+sig_die("Trace trap", 1);
+}
+#endif
+
+
+int xargc;
+char **xargv;
+
+#ifdef __cplusplus
+ }
+#endif
+
+#ifdef KR_headers
+main(argc, argv) int argc; char **argv;
+#else
+main(int argc, char **argv)
+#endif
+{
+xargc = argc;
+xargv = argv;
+signal1(SIGFPE, sigfdie); /* ignore underflow, enable overflow */
+#ifdef SIGIOT
+signal1(SIGIOT, sigidie);
+#endif
+#ifdef SIGTRAP
+signal1(SIGTRAP, sigtrdie);
+#endif
+#ifdef SIGQUIT
+if(signal1(SIGQUIT,sigqdie) == SIG_IGN)
+ signal1(SIGQUIT, SIG_IGN);
+#endif
+if(signal1(SIGINT, sigindie) == SIG_IGN)
+ signal1(SIGINT, SIG_IGN);
+signal1(SIGTERM,sigtdie);
+
+#ifdef pdp11
+ ldfps(01200); /* detect overflow as an exception */
+#endif
+
+f_init();
+#ifndef NO_ONEXIT
+ONEXIT(f_exit);
+#endif
+MAIN__();
+#ifdef NO_ONEXIT
+f_exit();
+#endif
+exit(0); /* exit(0) rather than return(0) to bypass Cray bug */
+return 0; /* For compilers that complain of missing return values; */
+ /* others will complain that this is unreachable code. */
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/open.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/open.c
new file mode 100644
index 00000000000..6e3def121df
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/open.c
@@ -0,0 +1,299 @@
+#include "f2c.h"
+#include "fio.h"
+#include "string.h"
+#ifndef NON_POSIX_STDIO
+#ifdef MSDOS
+#include "io.h"
+#else
+#include "unistd.h" /* for access */
+#endif
+#endif
+
+#ifdef KR_headers
+extern char *malloc();
+#ifdef NON_ANSI_STDIO
+extern char *mktemp();
+#endif
+extern integer f_clos();
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int f__canseek(FILE*);
+extern integer f_clos(cllist*);
+#endif
+
+#ifdef NON_ANSI_RW_MODES
+char *f__r_mode[2] = {"r", "r"};
+char *f__w_mode[4] = {"w", "w", "r+w", "r+w"};
+#else
+char *f__r_mode[2] = {"rb", "r"};
+char *f__w_mode[4] = {"wb", "w", "r+b", "r+"};
+#endif
+
+ static char f__buf0[400], *f__buf = f__buf0;
+ int f__buflen = (int)sizeof(f__buf0);
+
+ static void
+#ifdef KR_headers
+f__bufadj(n, c) int n, c;
+#else
+f__bufadj(int n, int c)
+#endif
+{
+ unsigned int len;
+ char *nbuf, *s, *t, *te;
+
+ if (f__buf == f__buf0)
+ f__buflen = 1024;
+ while(f__buflen <= n)
+ f__buflen <<= 1;
+ len = (unsigned int)f__buflen;
+ if (len != f__buflen || !(nbuf = (char*)malloc(len)))
+ f__fatal(113, "malloc failure");
+ s = nbuf;
+ t = f__buf;
+ te = t + c;
+ while(t < te)
+ *s++ = *t++;
+ if (f__buf != f__buf0)
+ free(f__buf);
+ f__buf = nbuf;
+ }
+
+ int
+#ifdef KR_headers
+f__putbuf(c) int c;
+#else
+f__putbuf(int c)
+#endif
+{
+ char *s, *se;
+ int n;
+
+ if (f__hiwater > f__recpos)
+ f__recpos = f__hiwater;
+ n = f__recpos + 1;
+ if (n >= f__buflen)
+ f__bufadj(n, f__recpos);
+ s = f__buf;
+ se = s + f__recpos;
+ if (c)
+ *se++ = c;
+ *se = 0;
+ for(;;) {
+ fputs(s, f__cf);
+ s += strlen(s);
+ if (s >= se)
+ break; /* normally happens the first time */
+ putc(*s++, f__cf);
+ }
+ return 0;
+ }
+
+ void
+#ifdef KR_headers
+x_putc(c)
+#else
+x_putc(int c)
+#endif
+{
+ if (f__recpos >= f__buflen)
+ f__bufadj(f__recpos, f__buflen);
+ f__buf[f__recpos++] = c;
+ }
+
+#define opnerr(f,m,s) {if(f) errno= m; else opn_err(m,s,a); return(m);}
+
+ static void
+#ifdef KR_headers
+opn_err(m, s, a) int m; char *s; olist *a;
+#else
+opn_err(int m, char *s, olist *a)
+#endif
+{
+ if (a->ofnm) {
+ /* supply file name to error message */
+ if (a->ofnmlen >= f__buflen)
+ f__bufadj((int)a->ofnmlen, 0);
+ g_char(a->ofnm, a->ofnmlen, f__curunit->ufnm = f__buf);
+ }
+ f__fatal(m, s);
+ }
+
+#ifdef KR_headers
+integer f_open(a) olist *a;
+#else
+integer f_open(olist *a)
+#endif
+{ unit *b;
+ integer rv;
+ char buf[256], *s;
+ cllist x;
+ int ufmt;
+ FILE *tf;
+#ifndef NON_UNIX_STDIO
+ int n;
+#endif
+ f__external = 1;
+ if(a->ounit>=MXUNIT || a->ounit<0)
+ err(a->oerr,101,"open")
+ if (!f__init)
+ f_init();
+ f__curunit = b = &f__units[a->ounit];
+ if(b->ufd) {
+ if(a->ofnm==0)
+ {
+ same: if (a->oblnk)
+ b->ublnk = *a->oblnk == 'z' || *a->oblnk == 'Z';
+ return(0);
+ }
+#ifdef NON_UNIX_STDIO
+ if (b->ufnm
+ && strlen(b->ufnm) == a->ofnmlen
+ && !strncmp(b->ufnm, a->ofnm, (unsigned)a->ofnmlen))
+ goto same;
+#else
+ g_char(a->ofnm,a->ofnmlen,buf);
+ if (f__inode(buf,&n) == b->uinode && n == b->udev)
+ goto same;
+#endif
+ x.cunit=a->ounit;
+ x.csta=0;
+ x.cerr=a->oerr;
+ if ((rv = f_clos(&x)) != 0)
+ return rv;
+ }
+ b->url = (int)a->orl;
+ b->ublnk = a->oblnk && (*a->oblnk == 'z' || *a->oblnk == 'Z');
+ if(a->ofm==0)
+ { if(b->url>0) b->ufmt=0;
+ else b->ufmt=1;
+ }
+ else if(*a->ofm=='f' || *a->ofm == 'F') b->ufmt=1;
+ else b->ufmt=0;
+ ufmt = b->ufmt;
+#ifdef url_Adjust
+ if (b->url && !ufmt)
+ url_Adjust(b->url);
+#endif
+ if (a->ofnm) {
+ g_char(a->ofnm,a->ofnmlen,buf);
+ if (!buf[0])
+ opnerr(a->oerr,107,"open")
+ }
+ else
+ sprintf(buf, "fort.%ld", (long)a->ounit);
+ b->uscrtch = 0;
+ b->uend=0;
+ b->uwrt = 0;
+ b->ufd = 0;
+ b->urw = 3;
+ switch(a->osta ? *a->osta : 'u')
+ {
+ case 'o':
+ case 'O':
+#ifdef NON_POSIX_STDIO
+ if (!(tf = FOPEN(buf,"r")))
+ opnerr(a->oerr,errno,"open")
+ fclose(tf);
+#else
+ if (access(buf,0))
+ opnerr(a->oerr,errno,"open")
+#endif
+ break;
+ case 's':
+ case 'S':
+ b->uscrtch=1;
+#ifdef NON_ANSI_STDIO
+ (void) strcpy(buf,"tmp.FXXXXXX");
+ (void) mktemp(buf);
+ goto replace;
+#else
+ if (!(b->ufd = tmpfile()))
+ opnerr(a->oerr,errno,"open")
+ b->ufnm = 0;
+#ifndef NON_UNIX_STDIO
+ b->uinode = b->udev = -1;
+#endif
+ b->useek = 1;
+ return 0;
+#endif
+
+ case 'n':
+ case 'N':
+#ifdef NON_POSIX_STDIO
+ if ((tf = FOPEN(buf,"r")) || (tf = FOPEN(buf,"a"))) {
+ fclose(tf);
+ opnerr(a->oerr,128,"open")
+ }
+#else
+ if (!access(buf,0))
+ opnerr(a->oerr,128,"open")
+#endif
+ /* no break */
+ case 'r': /* Fortran 90 replace option */
+ case 'R':
+#ifdef NON_ANSI_STDIO
+ replace:
+#endif
+ if (tf = FOPEN(buf,f__w_mode[0]))
+ fclose(tf);
+ }
+
+ b->ufnm=(char *) malloc((unsigned int)(strlen(buf)+1));
+ if(b->ufnm==NULL) opnerr(a->oerr,113,"no space");
+ (void) strcpy(b->ufnm,buf);
+ if ((s = a->oacc) && b->url)
+ ufmt = 0;
+ if(!(tf = FOPEN(buf, f__w_mode[ufmt|2]))) {
+ if (tf = FOPEN(buf, f__r_mode[ufmt]))
+ b->urw = 1;
+ else if (tf = FOPEN(buf, f__w_mode[ufmt])) {
+ b->uwrt = 1;
+ b->urw = 2;
+ }
+ else
+ err(a->oerr, errno, "open");
+ }
+ b->useek = f__canseek(b->ufd = tf);
+#ifndef NON_UNIX_STDIO
+ if((b->uinode = f__inode(buf,&b->udev)) == -1)
+ opnerr(a->oerr,108,"open")
+#endif
+ if(b->useek)
+ if (a->orl)
+ rewind(b->ufd);
+ else if ((s = a->oacc) && (*s == 'a' || *s == 'A')
+ && FSEEK(b->ufd, 0L, SEEK_END))
+ opnerr(a->oerr,129,"open");
+ return(0);
+}
+
+ int
+#ifdef KR_headers
+fk_open(seq,fmt,n) ftnint n;
+#else
+fk_open(int seq, int fmt, ftnint n)
+#endif
+{ char nbuf[10];
+ olist a;
+ (void) sprintf(nbuf,"fort.%ld",(long)n);
+ a.oerr=1;
+ a.ounit=n;
+ a.ofnm=nbuf;
+ a.ofnmlen=strlen(nbuf);
+ a.osta=NULL;
+ a.oacc= (char*)(seq==SEQ?"s":"d");
+ a.ofm = (char*)(fmt==FMT?"f":"u");
+ a.orl = seq==DIR?1:0;
+ a.oblnk=NULL;
+ return(f_open(&a));
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ci.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ci.c
new file mode 100644
index 00000000000..574e0b1ebac
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ci.c
@@ -0,0 +1,26 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+VOID pow_ci(p, a, b) /* p = a**b */
+ complex *p, *a; integer *b;
+#else
+extern void pow_zi(doublecomplex*, doublecomplex*, integer*);
+void pow_ci(complex *p, complex *a, integer *b) /* p = a**b */
+#endif
+{
+doublecomplex p1, a1;
+
+a1.r = a->r;
+a1.i = a->i;
+
+pow_zi(&p1, &a1, b);
+
+p->r = p1.r;
+p->i = p1.i;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_dd.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_dd.c
new file mode 100644
index 00000000000..08fc20884ae
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_dd.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double pow();
+double pow_dd(ap, bp) doublereal *ap, *bp;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double pow_dd(doublereal *ap, doublereal *bp)
+#endif
+{
+return(pow(*ap, *bp) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_di.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_di.c
new file mode 100644
index 00000000000..abf36cb74c0
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_di.c
@@ -0,0 +1,41 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double pow_di(ap, bp) doublereal *ap; integer *bp;
+#else
+double pow_di(doublereal *ap, integer *bp)
+#endif
+{
+double pow, x;
+integer n;
+unsigned long u;
+
+pow = 1;
+x = *ap;
+n = *bp;
+
+if(n != 0)
+ {
+ if(n < 0)
+ {
+ n = -n;
+ x = 1/x;
+ }
+ for(u = n; ; )
+ {
+ if(u & 01)
+ pow *= x;
+ if(u >>= 1)
+ x *= x;
+ else
+ break;
+ }
+ }
+return(pow);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_hh.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_hh.c
new file mode 100644
index 00000000000..882168501aa
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_hh.c
@@ -0,0 +1,39 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+shortint pow_hh(ap, bp) shortint *ap, *bp;
+#else
+shortint pow_hh(shortint *ap, shortint *bp)
+#endif
+{
+ shortint pow, x, n;
+ unsigned u;
+
+ x = *ap;
+ n = *bp;
+
+ if (n <= 0) {
+ if (n == 0 || x == 1)
+ return 1;
+ if (x != -1)
+ return x == 0 ? 1/x : 0;
+ n = -n;
+ }
+ u = n;
+ for(pow = 1; ; )
+ {
+ if(u & 01)
+ pow *= x;
+ if(u >>= 1)
+ x *= x;
+ else
+ break;
+ }
+ return(pow);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ii.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ii.c
new file mode 100644
index 00000000000..748d1217733
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ii.c
@@ -0,0 +1,39 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer pow_ii(ap, bp) integer *ap, *bp;
+#else
+integer pow_ii(integer *ap, integer *bp)
+#endif
+{
+ integer pow, x, n;
+ unsigned long u;
+
+ x = *ap;
+ n = *bp;
+
+ if (n <= 0) {
+ if (n == 0 || x == 1)
+ return 1;
+ if (x != -1)
+ return x == 0 ? 1/x : 0;
+ n = -n;
+ }
+ u = n;
+ for(pow = 1; ; )
+ {
+ if(u & 01)
+ pow *= x;
+ if(u >>= 1)
+ x *= x;
+ else
+ break;
+ }
+ return(pow);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_qq.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_qq.c
new file mode 100644
index 00000000000..09fe18ec8e7
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_qq.c
@@ -0,0 +1,39 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+longint pow_qq(ap, bp) longint *ap, *bp;
+#else
+longint pow_qq(longint *ap, longint *bp)
+#endif
+{
+ longint pow, x, n;
+ unsigned long long u; /* system-dependent */
+
+ x = *ap;
+ n = *bp;
+
+ if (n <= 0) {
+ if (n == 0 || x == 1)
+ return 1;
+ if (x != -1)
+ return x == 0 ? 1/x : 0;
+ n = -n;
+ }
+ u = n;
+ for(pow = 1; ; )
+ {
+ if(u & 01)
+ pow *= x;
+ if(u >>= 1)
+ x *= x;
+ else
+ break;
+ }
+ return(pow);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ri.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ri.c
new file mode 100644
index 00000000000..e29d416eba2
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_ri.c
@@ -0,0 +1,41 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double pow_ri(ap, bp) real *ap; integer *bp;
+#else
+double pow_ri(real *ap, integer *bp)
+#endif
+{
+double pow, x;
+integer n;
+unsigned long u;
+
+pow = 1;
+x = *ap;
+n = *bp;
+
+if(n != 0)
+ {
+ if(n < 0)
+ {
+ n = -n;
+ x = 1/x;
+ }
+ for(u = n; ; )
+ {
+ if(u & 01)
+ pow *= x;
+ if(u >>= 1)
+ x *= x;
+ else
+ break;
+ }
+ }
+return(pow);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zi.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zi.c
new file mode 100644
index 00000000000..1c0a4b07c2d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zi.c
@@ -0,0 +1,60 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+VOID pow_zi(p, a, b) /* p = a**b */
+ doublecomplex *p, *a; integer *b;
+#else
+extern void z_div(doublecomplex*, doublecomplex*, doublecomplex*);
+void pow_zi(doublecomplex *p, doublecomplex *a, integer *b) /* p = a**b */
+#endif
+{
+ integer n;
+ unsigned long u;
+ double t;
+ doublecomplex q, x;
+ static doublecomplex one = {1.0, 0.0};
+
+ n = *b;
+ q.r = 1;
+ q.i = 0;
+
+ if(n == 0)
+ goto done;
+ if(n < 0)
+ {
+ n = -n;
+ z_div(&x, &one, a);
+ }
+ else
+ {
+ x.r = a->r;
+ x.i = a->i;
+ }
+
+ for(u = n; ; )
+ {
+ if(u & 01)
+ {
+ t = q.r * x.r - q.i * x.i;
+ q.i = q.r * x.i + q.i * x.r;
+ q.r = t;
+ }
+ if(u >>= 1)
+ {
+ t = x.r * x.r - x.i * x.i;
+ x.i = 2 * x.r * x.i;
+ x.r = t;
+ }
+ else
+ break;
+ }
+ done:
+ p->i = q.i;
+ p->r = q.r;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zz.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zz.c
new file mode 100644
index 00000000000..b5ffd334835
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/pow_zz.c
@@ -0,0 +1,29 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double log(), exp(), cos(), sin(), atan2(), f__cabs();
+VOID pow_zz(r,a,b) doublecomplex *r, *a, *b;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern double f__cabs(double,double);
+void pow_zz(doublecomplex *r, doublecomplex *a, doublecomplex *b)
+#endif
+{
+double logr, logi, x, y;
+
+logr = log( f__cabs(a->r, a->i) );
+logi = atan2(a->i, a->r);
+
+x = exp( logr * b->r - logi * b->i );
+y = logr * b->i + logi * b->r;
+
+r->r = x * cos(y);
+r->i = x * sin(y);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitbits.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitbits.c
new file mode 100644
index 00000000000..ba1b5bd0c97
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitbits.c
@@ -0,0 +1,72 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef LONGBITS
+#define LONGBITS 32
+#endif
+
+#ifndef LONG8BITS
+#define LONG8BITS (2*LONGBITS)
+#endif
+
+ longint
+#ifdef KR_headers
+qbit_bits(a, b, len) longint a; integer b, len;
+#else
+qbit_bits(longint a, integer b, integer len)
+#endif
+{
+ /* Assume 2's complement arithmetic */
+
+ ulongint x, y;
+
+ x = (ulongint) a;
+ y = (ulongint)-1L;
+ x >>= b;
+ y <<= len;
+ return (longint)(x & ~y);
+ }
+
+ longint
+#ifdef KR_headers
+qbit_cshift(a, b, len) longint a; integer b, len;
+#else
+qbit_cshift(longint a, integer b, integer len)
+#endif
+{
+ ulongint x, y, z;
+
+ x = (ulongint)a;
+ if (len <= 0) {
+ if (len == 0)
+ return 0;
+ goto full_len;
+ }
+ if (len >= LONG8BITS) {
+ full_len:
+ if (b >= 0) {
+ b %= LONG8BITS;
+ return (longint)(x << b | x >> LONG8BITS - b );
+ }
+ b = -b;
+ b %= LONG8BITS;
+ return (longint)(x << LONG8BITS - b | x >> b);
+ }
+ y = z = (unsigned long)-1;
+ y <<= len;
+ z &= ~y;
+ y &= x;
+ x &= z;
+ if (b >= 0) {
+ b %= len;
+ return (longint)(y | z & (x << b | x >> len - b));
+ }
+ b = -b;
+ b %= len;
+ return (longint)(y | z & (x >> b | x << len - b));
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitshft.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitshft.c
new file mode 100644
index 00000000000..78e7b95100d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/qbitshft.c
@@ -0,0 +1,17 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ longint
+#ifdef KR_headers
+qbit_shift(a, b) longint a; integer b;
+#else
+qbit_shift(longint a, integer b)
+#endif
+{
+ return b >= 0 ? a << b : (longint)((ulongint)a >> -b);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_abs.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_abs.c
new file mode 100644
index 00000000000..f3291fb4d14
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_abs.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double r_abs(x) real *x;
+#else
+double r_abs(real *x)
+#endif
+{
+if(*x >= 0)
+ return(*x);
+return(- *x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_acos.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_acos.c
new file mode 100644
index 00000000000..103c7ff070b
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_acos.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double acos();
+double r_acos(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_acos(real *x)
+#endif
+{
+return( acos(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_asin.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_asin.c
new file mode 100644
index 00000000000..432b9406ac7
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_asin.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double asin();
+double r_asin(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_asin(real *x)
+#endif
+{
+return( asin(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atan.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atan.c
new file mode 100644
index 00000000000..7656982db45
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atan.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double atan();
+double r_atan(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_atan(real *x)
+#endif
+{
+return( atan(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atn2.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atn2.c
new file mode 100644
index 00000000000..ab957b89d54
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_atn2.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double atan2();
+double r_atn2(x,y) real *x, *y;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_atn2(real *x, real *y)
+#endif
+{
+return( atan2(*x,*y) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cnjg.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cnjg.c
new file mode 100644
index 00000000000..cef0e4b092b
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cnjg.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+VOID r_cnjg(r, z) complex *r, *z;
+#else
+VOID r_cnjg(complex *r, complex *z)
+#endif
+{
+ real zi = z->i;
+ r->r = z->r;
+ r->i = -zi;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cos.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cos.c
new file mode 100644
index 00000000000..4418f0c1bbf
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cos.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double cos();
+double r_cos(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_cos(real *x)
+#endif
+{
+return( cos(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cosh.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cosh.c
new file mode 100644
index 00000000000..f5478355809
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_cosh.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double cosh();
+double r_cosh(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_cosh(real *x)
+#endif
+{
+return( cosh(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_dim.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_dim.c
new file mode 100644
index 00000000000..d573ca36d8d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_dim.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double r_dim(a,b) real *a, *b;
+#else
+double r_dim(real *a, real *b)
+#endif
+{
+return( *a > *b ? *a - *b : 0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_exp.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_exp.c
new file mode 100644
index 00000000000..4e679794f22
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_exp.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double exp();
+double r_exp(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_exp(real *x)
+#endif
+{
+return( exp(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_imag.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_imag.c
new file mode 100644
index 00000000000..1b4de14373a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_imag.c
@@ -0,0 +1,16 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double r_imag(z) complex *z;
+#else
+double r_imag(complex *z)
+#endif
+{
+return(z->i);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_int.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_int.c
new file mode 100644
index 00000000000..bff87176ff6
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_int.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+double r_int(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_int(real *x)
+#endif
+{
+return( (*x>0) ? floor(*x) : -floor(- *x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_lg10.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_lg10.c
new file mode 100644
index 00000000000..64ffddf48b0
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_lg10.c
@@ -0,0 +1,21 @@
+#include "f2c.h"
+
+#define log10e 0.43429448190325182765
+
+#ifdef KR_headers
+double log();
+double r_lg10(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_lg10(real *x)
+#endif
+{
+return( log10e * log(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_log.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_log.c
new file mode 100644
index 00000000000..94c79b05185
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_log.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double log();
+double r_log(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_log(real *x)
+#endif
+{
+return( log(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_mod.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_mod.c
new file mode 100644
index 00000000000..63ed1753689
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_mod.c
@@ -0,0 +1,46 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+#ifdef IEEE_drem
+double drem();
+#else
+double floor();
+#endif
+double r_mod(x,y) real *x, *y;
+#else
+#ifdef IEEE_drem
+double drem(double, double);
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif
+double r_mod(real *x, real *y)
+#endif
+{
+#ifdef IEEE_drem
+ double xa, ya, z;
+ if ((ya = *y) < 0.)
+ ya = -ya;
+ z = drem(xa = *x, ya);
+ if (xa > 0) {
+ if (z < 0)
+ z += ya;
+ }
+ else if (z > 0)
+ z -= ya;
+ return z;
+#else
+ double quotient;
+ if( (quotient = (double)*x / *y) >= 0)
+ quotient = floor(quotient);
+ else
+ quotient = -floor(-quotient);
+ return(*x - (*y) * quotient );
+#endif
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_nint.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_nint.c
new file mode 100644
index 00000000000..7cc3f1b5aea
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_nint.c
@@ -0,0 +1,20 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double floor();
+double r_nint(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_nint(real *x)
+#endif
+{
+return( (*x)>=0 ?
+ floor(*x + .5) : -floor(.5 - *x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sign.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sign.c
new file mode 100644
index 00000000000..797db1a4cbf
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sign.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double r_sign(a,b) real *a, *b;
+#else
+double r_sign(real *a, real *b)
+#endif
+{
+double x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sin.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sin.c
new file mode 100644
index 00000000000..37e0df25fa5
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sin.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sin();
+double r_sin(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_sin(real *x)
+#endif
+{
+return( sin(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sinh.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sinh.c
new file mode 100644
index 00000000000..39878f03ae7
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sinh.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sinh();
+double r_sinh(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_sinh(real *x)
+#endif
+{
+return( sinh(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sqrt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sqrt.c
new file mode 100644
index 00000000000..e7b2c1c704a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_sqrt.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sqrt();
+double r_sqrt(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_sqrt(real *x)
+#endif
+{
+return( sqrt(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tan.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tan.c
new file mode 100644
index 00000000000..1774bed73a5
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tan.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double tan();
+double r_tan(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_tan(real *x)
+#endif
+{
+return( tan(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tanh.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tanh.c
new file mode 100644
index 00000000000..7739c6ce846
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/r_tanh.c
@@ -0,0 +1,19 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double tanh();
+double r_tanh(x) real *x;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+double r_tanh(real *x)
+#endif
+{
+return( tanh(*x) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/rawio.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rawio.h
new file mode 100644
index 00000000000..fd36a482602
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rawio.h
@@ -0,0 +1,41 @@
+#ifndef KR_headers
+#ifdef MSDOS
+#include "io.h"
+#ifndef WATCOM
+#define close _close
+#define creat _creat
+#define open _open
+#define read _read
+#define write _write
+#endif /*WATCOM*/
+#endif /*MSDOS*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef MSDOS
+#ifdef OPEN_DECL
+extern int creat(const char*,int), open(const char*,int);
+#endif
+extern int close(int);
+extern int read(int,void*,size_t), write(int,void*,size_t);
+extern int unlink(const char*);
+#ifndef _POSIX_SOURCE
+#ifndef NON_UNIX_STDIO
+extern FILE *fdopen(int, const char*);
+#endif
+#endif
+#endif /*KR_HEADERS*/
+
+extern char *mktemp(char*);
+
+#ifdef __cplusplus
+ }
+#endif
+#endif
+
+#include "fcntl.h"
+
+#ifndef O_WRONLY
+#define O_RDONLY 0
+#define O_WRONLY 1
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/rdfmt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rdfmt.c
new file mode 100644
index 00000000000..62b28053409
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rdfmt.c
@@ -0,0 +1,550 @@
+#include "f2c.h"
+#include "fio.h"
+
+#ifdef KR_headers
+extern double atof();
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#endif
+
+#include "fmt.h"
+#include "fp.h"
+#include "ctype.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ static int
+#ifdef KR_headers
+rd_Z(n,w,len) Uint *n; ftnlen len;
+#else
+rd_Z(Uint *n, int w, ftnlen len)
+#endif
+{
+ long x[9];
+ char *s, *s0, *s1, *se, *t;
+ int ch, i, w1, w2;
+ static char hex[256];
+ static int one = 1;
+ int bad = 0;
+
+ if (!hex['0']) {
+ s = "0123456789";
+ while(ch = *s++)
+ hex[ch] = ch - '0' + 1;
+ s = "ABCDEF";
+ while(ch = *s++)
+ hex[ch] = hex[ch + 'a' - 'A'] = ch - 'A' + 11;
+ }
+ s = s0 = (char *)x;
+ s1 = (char *)&x[4];
+ se = (char *)&x[8];
+ if (len > 4*sizeof(long))
+ return errno = 117;
+ while (w) {
+ GET(ch);
+ if (ch==',' || ch=='\n')
+ break;
+ w--;
+ if (ch > ' ') {
+ if (!hex[ch & 0xff])
+ bad++;
+ *s++ = ch;
+ if (s == se) {
+ /* discard excess characters */
+ for(t = s0, s = s1; t < s1;)
+ *t++ = *s++;
+ s = s1;
+ }
+ }
+ }
+ if (bad)
+ return errno = 115;
+ w = (int)len;
+ w1 = s - s0;
+ w2 = w1+1 >> 1;
+ t = (char *)n;
+ if (*(char *)&one) {
+ /* little endian */
+ t += w - 1;
+ i = -1;
+ }
+ else
+ i = 1;
+ for(; w > w2; t += i, --w)
+ *t = 0;
+ if (!w)
+ return 0;
+ if (w < w2)
+ s0 = s - (w << 1);
+ else if (w1 & 1) {
+ *t = hex[*s0++ & 0xff] - 1;
+ if (!--w)
+ return 0;
+ t += i;
+ }
+ do {
+ *t = hex[*s0 & 0xff]-1 << 4 | hex[s0[1] & 0xff]-1;
+ t += i;
+ s0 += 2;
+ }
+ while(--w);
+ return 0;
+ }
+
+ static int
+#ifdef KR_headers
+rd_I(n,w,len, base) Uint *n; int w; ftnlen len; register int base;
+#else
+rd_I(Uint *n, int w, ftnlen len, register int base)
+#endif
+{
+ int ch, sign;
+ longint x = 0;
+
+ if (w <= 0)
+ goto have_x;
+ for(;;) {
+ GET(ch);
+ if (ch != ' ')
+ break;
+ if (!--w)
+ goto have_x;
+ }
+ sign = 0;
+ switch(ch) {
+ case ',':
+ case '\n':
+ w = 0;
+ goto have_x;
+ case '-':
+ sign = 1;
+ case '+':
+ break;
+ default:
+ if (ch >= '0' && ch <= '9') {
+ x = ch - '0';
+ break;
+ }
+ goto have_x;
+ }
+ while(--w) {
+ GET(ch);
+ if (ch >= '0' && ch <= '9') {
+ x = x*base + ch - '0';
+ continue;
+ }
+ if (ch != ' ') {
+ if (ch == '\n' || ch == ',')
+ w = 0;
+ break;
+ }
+ if (f__cblank)
+ x *= base;
+ }
+ if (sign)
+ x = -x;
+ have_x:
+ if(len == sizeof(integer))
+ n->il=x;
+ else if(len == sizeof(char))
+ n->ic = (char)x;
+#ifdef Allow_TYQUAD
+ else if (len == sizeof(longint))
+ n->ili = x;
+#endif
+ else
+ n->is = (short)x;
+ if (w) {
+ while(--w)
+ GET(ch);
+ return errno = 115;
+ }
+ return 0;
+}
+
+ static int
+#ifdef KR_headers
+rd_L(n,w,len) ftnint *n; ftnlen len;
+#else
+rd_L(ftnint *n, int w, ftnlen len)
+#endif
+{ int ch, dot, lv;
+
+ if (w <= 0)
+ goto bad;
+ for(;;) {
+ GET(ch);
+ --w;
+ if (ch != ' ')
+ break;
+ if (!w)
+ goto bad;
+ }
+ dot = 0;
+ retry:
+ switch(ch) {
+ case '.':
+ if (dot++ || !w)
+ goto bad;
+ GET(ch);
+ --w;
+ goto retry;
+ case 't':
+ case 'T':
+ lv = 1;
+ break;
+ case 'f':
+ case 'F':
+ lv = 0;
+ break;
+ default:
+ bad:
+ for(; w > 0; --w)
+ GET(ch);
+ /* no break */
+ case ',':
+ case '\n':
+ return errno = 116;
+ }
+ switch(len) {
+ case sizeof(char): *(char *)n = (char)lv; break;
+ case sizeof(short): *(short *)n = (short)lv; break;
+ default: *n = lv;
+ }
+ while(w-- > 0) {
+ GET(ch);
+ if (ch == ',' || ch == '\n')
+ break;
+ }
+ return 0;
+}
+
+ static int
+#ifdef KR_headers
+rd_F(p, w, d, len) ufloat *p; ftnlen len;
+#else
+rd_F(ufloat *p, int w, int d, ftnlen len)
+#endif
+{
+ char s[FMAX+EXPMAXDIGS+4];
+ register int ch;
+ register char *sp, *spe, *sp1;
+ double x;
+ int scale1, se;
+ long e, exp;
+
+ sp1 = sp = s;
+ spe = sp + FMAX;
+ exp = -d;
+ x = 0.;
+
+ do {
+ GET(ch);
+ w--;
+ } while (ch == ' ' && w);
+ switch(ch) {
+ case '-': *sp++ = ch; sp1++; spe++;
+ case '+':
+ if (!w) goto zero;
+ --w;
+ GET(ch);
+ }
+ while(ch == ' ') {
+blankdrop:
+ if (!w--) goto zero; GET(ch); }
+ while(ch == '0')
+ { if (!w--) goto zero; GET(ch); }
+ if (ch == ' ' && f__cblank)
+ goto blankdrop;
+ scale1 = f__scale;
+ while(isdigit(ch)) {
+digloop1:
+ if (sp < spe) *sp++ = ch;
+ else ++exp;
+digloop1e:
+ if (!w--) goto done;
+ GET(ch);
+ }
+ if (ch == ' ') {
+ if (f__cblank)
+ { ch = '0'; goto digloop1; }
+ goto digloop1e;
+ }
+ if (ch == '.') {
+ exp += d;
+ if (!w--) goto done;
+ GET(ch);
+ if (sp == sp1) { /* no digits yet */
+ while(ch == '0') {
+skip01:
+ --exp;
+skip0:
+ if (!w--) goto done;
+ GET(ch);
+ }
+ if (ch == ' ') {
+ if (f__cblank) goto skip01;
+ goto skip0;
+ }
+ }
+ while(isdigit(ch)) {
+digloop2:
+ if (sp < spe)
+ { *sp++ = ch; --exp; }
+digloop2e:
+ if (!w--) goto done;
+ GET(ch);
+ }
+ if (ch == ' ') {
+ if (f__cblank)
+ { ch = '0'; goto digloop2; }
+ goto digloop2e;
+ }
+ }
+ switch(ch) {
+ default:
+ break;
+ case '-': se = 1; goto signonly;
+ case '+': se = 0; goto signonly;
+ case 'e':
+ case 'E':
+ case 'd':
+ case 'D':
+ if (!w--)
+ goto bad;
+ GET(ch);
+ while(ch == ' ') {
+ if (!w--)
+ goto bad;
+ GET(ch);
+ }
+ se = 0;
+ switch(ch) {
+ case '-': se = 1;
+ case '+':
+signonly:
+ if (!w--)
+ goto bad;
+ GET(ch);
+ }
+ while(ch == ' ') {
+ if (!w--)
+ goto bad;
+ GET(ch);
+ }
+ if (!isdigit(ch))
+ goto bad;
+
+ e = ch - '0';
+ for(;;) {
+ if (!w--)
+ { ch = '\n'; break; }
+ GET(ch);
+ if (!isdigit(ch)) {
+ if (ch == ' ') {
+ if (f__cblank)
+ ch = '0';
+ else continue;
+ }
+ else
+ break;
+ }
+ e = 10*e + ch - '0';
+ if (e > EXPMAX && sp > sp1)
+ goto bad;
+ }
+ if (se)
+ exp -= e;
+ else
+ exp += e;
+ scale1 = 0;
+ }
+ switch(ch) {
+ case '\n':
+ case ',':
+ break;
+ default:
+bad:
+ return (errno = 115);
+ }
+done:
+ if (sp > sp1) {
+ while(*--sp == '0')
+ ++exp;
+ if (exp -= scale1)
+ sprintf(sp+1, "e%ld", exp);
+ else
+ sp[1] = 0;
+ x = atof(s);
+ }
+zero:
+ if (len == sizeof(real))
+ p->pf = x;
+ else
+ p->pd = x;
+ return(0);
+ }
+
+
+ static int
+#ifdef KR_headers
+rd_A(p,len) char *p; ftnlen len;
+#else
+rd_A(char *p, ftnlen len)
+#endif
+{ int i,ch;
+ for(i=0;i<len;i++)
+ { GET(ch);
+ *p++=VAL(ch);
+ }
+ return(0);
+}
+ static int
+#ifdef KR_headers
+rd_AW(p,w,len) char *p; ftnlen len;
+#else
+rd_AW(char *p, int w, ftnlen len)
+#endif
+{ int i,ch;
+ if(w>=len)
+ { for(i=0;i<w-len;i++)
+ GET(ch);
+ for(i=0;i<len;i++)
+ { GET(ch);
+ *p++=VAL(ch);
+ }
+ return(0);
+ }
+ for(i=0;i<w;i++)
+ { GET(ch);
+ *p++=VAL(ch);
+ }
+ for(i=0;i<len-w;i++) *p++=' ';
+ return(0);
+}
+ static int
+#ifdef KR_headers
+rd_H(n,s) char *s;
+#else
+rd_H(int n, char *s)
+#endif
+{ int i,ch;
+ for(i=0;i<n;i++)
+ if((ch=(*f__getn)())<0) return(ch);
+ else *s++ = ch=='\n'?' ':ch;
+ return(1);
+}
+ static int
+#ifdef KR_headers
+rd_POS(s) char *s;
+#else
+rd_POS(char *s)
+#endif
+{ char quote;
+ int ch;
+ quote= *s++;
+ for(;*s;s++)
+ if(*s==quote && *(s+1)!=quote) break;
+ else if((ch=(*f__getn)())<0) return(ch);
+ else *s = ch=='\n'?' ':ch;
+ return(1);
+}
+
+ int
+#ifdef KR_headers
+rd_ed(p,ptr,len) struct syl *p; char *ptr; ftnlen len;
+#else
+rd_ed(struct syl *p, char *ptr, ftnlen len)
+#endif
+{ int ch;
+ for(;f__cursor>0;f__cursor--) if((ch=(*f__getn)())<0) return(ch);
+ if(f__cursor<0)
+ { if(f__recpos+f__cursor < 0) /*err(elist->cierr,110,"fmt")*/
+ f__cursor = -f__recpos; /* is this in the standard? */
+ if(f__external == 0) {
+ extern char *f__icptr;
+ f__icptr += f__cursor;
+ }
+ else if(f__curunit && f__curunit->useek)
+ (void) FSEEK(f__cf, f__cursor,SEEK_CUR);
+ else
+ err(f__elist->cierr,106,"fmt");
+ f__recpos += f__cursor;
+ f__cursor=0;
+ }
+ switch(p->op)
+ {
+ default: fprintf(stderr,"rd_ed, unexpected code: %d\n", p->op);
+ sig_die(f__fmtbuf, 1);
+ case IM:
+ case I: ch = rd_I((Uint *)ptr,p->p1,len, 10);
+ break;
+
+ /* O and OM don't work right for character, double, complex, */
+ /* or doublecomplex, and they differ from Fortran 90 in */
+ /* showing a minus sign for negative values. */
+
+ case OM:
+ case O: ch = rd_I((Uint *)ptr, p->p1, len, 8);
+ break;
+ case L: ch = rd_L((ftnint *)ptr,p->p1,len);
+ break;
+ case A: ch = rd_A(ptr,len);
+ break;
+ case AW:
+ ch = rd_AW(ptr,p->p1,len);
+ break;
+ case E: case EE:
+ case D:
+ case G:
+ case GE:
+ case F: ch = rd_F((ufloat *)ptr,p->p1,p->p2.i[0],len);
+ break;
+
+ /* Z and ZM assume 8-bit bytes. */
+
+ case ZM:
+ case Z:
+ ch = rd_Z((Uint *)ptr, p->p1, len);
+ break;
+ }
+ if(ch == 0) return(ch);
+ else if(ch == EOF) return(EOF);
+ if (f__cf)
+ clearerr(f__cf);
+ return(errno);
+}
+
+ int
+#ifdef KR_headers
+rd_ned(p) struct syl *p;
+#else
+rd_ned(struct syl *p)
+#endif
+{
+ switch(p->op)
+ {
+ default: fprintf(stderr,"rd_ned, unexpected code: %d\n", p->op);
+ sig_die(f__fmtbuf, 1);
+ case APOS:
+ return(rd_POS(p->p2.s));
+ case H: return(rd_H(p->p1,p->p2.s));
+ case SLASH: return((*f__donewrec)());
+ case TR:
+ case X: f__cursor += p->p1;
+ return(1);
+ case T: f__cursor=p->p1-f__recpos - 1;
+ return(1);
+ case TL: f__cursor -= p->p1;
+ if(f__cursor < -f__recpos) /* TL1000, 1X */
+ f__cursor = -f__recpos;
+ return(1);
+ }
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/rewind.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rewind.c
new file mode 100644
index 00000000000..9a0e07e6cfa
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rewind.c
@@ -0,0 +1,30 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef KR_headers
+integer f_rew(a) alist *a;
+#else
+integer f_rew(alist *a)
+#endif
+{
+ unit *b;
+ if(a->aunit>=MXUNIT || a->aunit<0)
+ err(a->aerr,101,"rewind");
+ b = &f__units[a->aunit];
+ if(b->ufd == NULL || b->uwrt == 3)
+ return(0);
+ if(!b->useek)
+ err(a->aerr,106,"rewind")
+ if(b->uwrt) {
+ (void) t_runc(a);
+ b->uwrt = 3;
+ }
+ rewind(b->ufd);
+ b->uend=0;
+ return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsfe.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsfe.c
new file mode 100644
index 00000000000..abe9724a7b8
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsfe.c
@@ -0,0 +1,91 @@
+/* read sequential formatted external */
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ int
+xrd_SL(Void)
+{ int ch;
+ if(!f__curunit->uend)
+ while((ch=getc(f__cf))!='\n')
+ if (ch == EOF) {
+ f__curunit->uend = 1;
+ break;
+ }
+ f__cursor=f__recpos=0;
+ return(1);
+}
+
+ int
+x_getc(Void)
+{ int ch;
+ if(f__curunit->uend) return(EOF);
+ ch = getc(f__cf);
+ if(ch!=EOF && ch!='\n')
+ { f__recpos++;
+ return(ch);
+ }
+ if(ch=='\n')
+ { (void) ungetc(ch,f__cf);
+ return(ch);
+ }
+ if(f__curunit->uend || feof(f__cf))
+ { errno=0;
+ f__curunit->uend=1;
+ return(-1);
+ }
+ return(-1);
+}
+
+ int
+x_endp(Void)
+{
+ xrd_SL();
+ return f__curunit->uend == 1 ? EOF : 0;
+}
+
+ int
+x_rev(Void)
+{
+ (void) xrd_SL();
+ return(0);
+}
+#ifdef KR_headers
+integer s_rsfe(a) cilist *a; /* start */
+#else
+integer s_rsfe(cilist *a) /* start */
+#endif
+{ int n;
+ if(!f__init) f_init();
+ f__reading=1;
+ f__sequential=1;
+ f__formatted=1;
+ f__external=1;
+ if(n=c_sfe(a)) return(n);
+ f__elist=a;
+ f__cursor=f__recpos=0;
+ f__scale=0;
+ f__fmtbuf=a->cifmt;
+ f__cf=f__curunit->ufd;
+ if(pars_f(f__fmtbuf)<0) err(a->cierr,100,"startio");
+ f__getn= x_getc;
+ f__doed= rd_ed;
+ f__doned= rd_ned;
+ fmt_bg();
+ f__doend=x_endp;
+ f__donewrec=xrd_SL;
+ f__dorevert=x_rev;
+ f__cblank=f__curunit->ublnk;
+ f__cplus=0;
+ if(f__curunit->uwrt && f__nowreading(f__curunit))
+ err(a->cierr,errno,"read start");
+ if(f__curunit->uend)
+ err(f__elist->ciend,(EOF),"read start");
+ return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsli.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsli.c
new file mode 100644
index 00000000000..3d4ea428fc9
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsli.c
@@ -0,0 +1,109 @@
+#include "f2c.h"
+#include "fio.h"
+#include "lio.h"
+#include "fmt.h" /* for f__doend */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern flag f__lquit;
+extern int f__lcount;
+extern char *f__icptr;
+extern char *f__icend;
+extern icilist *f__svic;
+extern int f__icnum, f__recpos;
+
+static int i_getc(Void)
+{
+ if(f__recpos >= f__svic->icirlen) {
+ if (f__recpos++ == f__svic->icirlen)
+ return '\n';
+ z_rnew();
+ }
+ f__recpos++;
+ if(f__icptr >= f__icend)
+ return EOF;
+ return(*f__icptr++);
+ }
+
+ static
+#ifdef KR_headers
+int i_ungetc(ch, f) int ch; FILE *f;
+#else
+int i_ungetc(int ch, FILE *f)
+#endif
+{
+ if (--f__recpos == f__svic->icirlen)
+ return '\n';
+ if (f__recpos < -1)
+ err(f__svic->icierr,110,"recend");
+ /* *--icptr == ch, and icptr may point to read-only memory */
+ return *--f__icptr /* = ch */;
+ }
+
+ static void
+#ifdef KR_headers
+c_lir(a) icilist *a;
+#else
+c_lir(icilist *a)
+#endif
+{
+ extern int l_eof;
+ f__reading = 1;
+ f__external = 0;
+ f__formatted = 1;
+ f__svic = a;
+ L_len = a->icirlen;
+ f__recpos = -1;
+ f__icnum = f__recpos = 0;
+ f__cursor = 0;
+ l_getc = i_getc;
+ l_ungetc = i_ungetc;
+ l_eof = 0;
+ f__icptr = a->iciunit;
+ f__icend = f__icptr + a->icirlen*a->icirnum;
+ f__cf = 0;
+ f__curunit = 0;
+ f__elist = (cilist *)a;
+ }
+
+
+#ifdef KR_headers
+integer s_rsli(a) icilist *a;
+#else
+integer s_rsli(icilist *a)
+#endif
+{
+ f__lioproc = l_read;
+ f__lquit = 0;
+ f__lcount = 0;
+ c_lir(a);
+ f__doend = 0;
+ return(0);
+ }
+
+integer e_rsli(Void)
+{ return 0; }
+
+#ifdef KR_headers
+integer s_rsni(a) icilist *a;
+#else
+extern int x_rsne(cilist*);
+
+integer s_rsni(icilist *a)
+#endif
+{
+ extern int nml_read;
+ integer rv;
+ cilist ca;
+ ca.ciend = a->iciend;
+ ca.cierr = a->icierr;
+ ca.cifmt = a->icifmt;
+ c_lir(a);
+ rv = x_rsne(&ca);
+ nml_read = 0;
+ return rv;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsne.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsne.c
new file mode 100644
index 00000000000..f3fcfac13b1
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/rsne.c
@@ -0,0 +1,616 @@
+#include "f2c.h"
+#include "fio.h"
+#include "lio.h"
+
+#define MAX_NL_CACHE 3 /* maximum number of namelist hash tables to cache */
+#define MAXDIM 20 /* maximum number of subscripts */
+
+ struct dimen {
+ ftnlen extent;
+ ftnlen curval;
+ ftnlen delta;
+ ftnlen stride;
+ };
+ typedef struct dimen dimen;
+
+ struct hashentry {
+ struct hashentry *next;
+ char *name;
+ Vardesc *vd;
+ };
+ typedef struct hashentry hashentry;
+
+ struct hashtab {
+ struct hashtab *next;
+ Namelist *nl;
+ int htsize;
+ hashentry *tab[1];
+ };
+ typedef struct hashtab hashtab;
+
+ static hashtab *nl_cache;
+ static int n_nlcache;
+ static hashentry **zot;
+ static int colonseen;
+ extern ftnlen f__typesize[];
+
+ extern flag f__lquit;
+ extern int f__lcount, nml_read;
+ extern int t_getc(Void);
+
+#ifdef KR_headers
+ extern char *malloc(), *memset();
+
+#ifdef ungetc
+ static int
+un_getc(x,f__cf) int x; FILE *f__cf;
+{ return ungetc(x,f__cf); }
+#else
+#define un_getc ungetc
+ extern int ungetc();
+#endif
+
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#include "string.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef ungetc
+ static int
+un_getc(int x, FILE *f__cf)
+{ return ungetc(x,f__cf); }
+#else
+#define un_getc ungetc
+extern int ungetc(int, FILE*); /* for systems with a buggy stdio.h */
+#endif
+#endif
+
+ static Vardesc *
+#ifdef KR_headers
+hash(ht, s) hashtab *ht; register char *s;
+#else
+hash(hashtab *ht, register char *s)
+#endif
+{
+ register int c, x;
+ register hashentry *h;
+ char *s0 = s;
+
+ for(x = 0; c = *s++; x = x & 0x4000 ? ((x << 1) & 0x7fff) + 1 : x << 1)
+ x += c;
+ for(h = *(zot = ht->tab + x % ht->htsize); h; h = h->next)
+ if (!strcmp(s0, h->name))
+ return h->vd;
+ return 0;
+ }
+
+ hashtab *
+#ifdef KR_headers
+mk_hashtab(nl) Namelist *nl;
+#else
+mk_hashtab(Namelist *nl)
+#endif
+{
+ int nht, nv;
+ hashtab *ht;
+ Vardesc *v, **vd, **vde;
+ hashentry *he;
+
+ hashtab **x, **x0, *y;
+ for(x = &nl_cache; y = *x; x0 = x, x = &y->next)
+ if (nl == y->nl)
+ return y;
+ if (n_nlcache >= MAX_NL_CACHE) {
+ /* discard least recently used namelist hash table */
+ y = *x0;
+ free((char *)y->next);
+ y->next = 0;
+ }
+ else
+ n_nlcache++;
+ nv = nl->nvars;
+ if (nv >= 0x4000)
+ nht = 0x7fff;
+ else {
+ for(nht = 1; nht < nv; nht <<= 1);
+ nht += nht - 1;
+ }
+ ht = (hashtab *)malloc(sizeof(hashtab) + (nht-1)*sizeof(hashentry *)
+ + nv*sizeof(hashentry));
+ if (!ht)
+ return 0;
+ he = (hashentry *)&ht->tab[nht];
+ ht->nl = nl;
+ ht->htsize = nht;
+ ht->next = nl_cache;
+ nl_cache = ht;
+ memset((char *)ht->tab, 0, nht*sizeof(hashentry *));
+ vd = nl->vars;
+ vde = vd + nv;
+ while(vd < vde) {
+ v = *vd++;
+ if (!hash(ht, v->name)) {
+ he->next = *zot;
+ *zot = he;
+ he->name = v->name;
+ he->vd = v;
+ he++;
+ }
+ }
+ return ht;
+ }
+
+static char Alpha[256], Alphanum[256];
+
+ static VOID
+nl_init(Void) {
+ register char *s;
+ register int c;
+
+ if(!f__init)
+ f_init();
+ for(s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; c = *s++; )
+ Alpha[c]
+ = Alphanum[c]
+ = Alpha[c + 'a' - 'A']
+ = Alphanum[c + 'a' - 'A']
+ = c;
+ for(s = "0123456789_"; c = *s++; )
+ Alphanum[c] = c;
+ }
+
+#define GETC(x) (x=(*l_getc)())
+#define Ungetc(x,y) (*l_ungetc)(x,y)
+
+ static int
+#ifdef KR_headers
+getname(s, slen) register char *s; int slen;
+#else
+getname(register char *s, int slen)
+#endif
+{
+ register char *se = s + slen - 1;
+ register int ch;
+
+ GETC(ch);
+ if (!(*s++ = Alpha[ch & 0xff])) {
+ if (ch != EOF)
+ ch = 115;
+ errfl(f__elist->cierr, ch, "namelist read");
+ }
+ while(*s = Alphanum[GETC(ch) & 0xff])
+ if (s < se)
+ s++;
+ if (ch == EOF)
+ err(f__elist->cierr, EOF, "namelist read");
+ if (ch > ' ')
+ Ungetc(ch,f__cf);
+ return *s = 0;
+ }
+
+ static int
+#ifdef KR_headers
+getnum(chp, val) int *chp; ftnlen *val;
+#else
+getnum(int *chp, ftnlen *val)
+#endif
+{
+ register int ch, sign;
+ register ftnlen x;
+
+ while(GETC(ch) <= ' ' && ch >= 0);
+ if (ch == '-') {
+ sign = 1;
+ GETC(ch);
+ }
+ else {
+ sign = 0;
+ if (ch == '+')
+ GETC(ch);
+ }
+ x = ch - '0';
+ if (x < 0 || x > 9)
+ return 115;
+ while(GETC(ch) >= '0' && ch <= '9')
+ x = 10*x + ch - '0';
+ while(ch <= ' ' && ch >= 0)
+ GETC(ch);
+ if (ch == EOF)
+ return EOF;
+ *val = sign ? -x : x;
+ *chp = ch;
+ return 0;
+ }
+
+ static int
+#ifdef KR_headers
+getdimen(chp, d, delta, extent, x1)
+ int *chp; dimen *d; ftnlen delta, extent, *x1;
+#else
+getdimen(int *chp, dimen *d, ftnlen delta, ftnlen extent, ftnlen *x1)
+#endif
+{
+ register int k;
+ ftnlen x2, x3;
+
+ if (k = getnum(chp, x1))
+ return k;
+ x3 = 1;
+ if (*chp == ':') {
+ if (k = getnum(chp, &x2))
+ return k;
+ x2 -= *x1;
+ if (*chp == ':') {
+ if (k = getnum(chp, &x3))
+ return k;
+ if (!x3)
+ return 123;
+ x2 /= x3;
+ colonseen = 1;
+ }
+ if (x2 < 0 || x2 >= extent)
+ return 123;
+ d->extent = x2 + 1;
+ }
+ else
+ d->extent = 1;
+ d->curval = 0;
+ d->delta = delta;
+ d->stride = x3;
+ return 0;
+ }
+
+#ifndef No_Namelist_Questions
+ static Void
+#ifdef KR_headers
+print_ne(a) cilist *a;
+#else
+print_ne(cilist *a)
+#endif
+{
+ flag intext = f__external;
+ int rpsave = f__recpos;
+ FILE *cfsave = f__cf;
+ unit *usave = f__curunit;
+ cilist t;
+ t = *a;
+ t.ciunit = 6;
+ s_wsne(&t);
+ fflush(f__cf);
+ f__external = intext;
+ f__reading = 1;
+ f__recpos = rpsave;
+ f__cf = cfsave;
+ f__curunit = usave;
+ f__elist = a;
+ }
+#endif
+
+ static char where0[] = "namelist read start ";
+
+ int
+#ifdef KR_headers
+x_rsne(a) cilist *a;
+#else
+x_rsne(cilist *a)
+#endif
+{
+ int ch, got1, k, n, nd, quote, readall;
+ Namelist *nl;
+ static char where[] = "namelist read";
+ char buf[64];
+ hashtab *ht;
+ Vardesc *v;
+ dimen *dn, *dn0, *dn1;
+ ftnlen *dims, *dims1;
+ ftnlen b, b0, b1, ex, no, nomax, size, span;
+ ftnint no1, no2, type;
+ char *vaddr;
+ long iva, ivae;
+ dimen dimens[MAXDIM], substr;
+
+ if (!Alpha['a'])
+ nl_init();
+ f__reading=1;
+ f__formatted=1;
+ got1 = 0;
+ top:
+ for(;;) switch(GETC(ch)) {
+ case EOF:
+ eof:
+ err(a->ciend,(EOF),where0);
+ case '&':
+ case '$':
+ goto have_amp;
+#ifndef No_Namelist_Questions
+ case '?':
+ print_ne(a);
+ continue;
+#endif
+ default:
+ if (ch <= ' ' && ch >= 0)
+ continue;
+#ifndef No_Namelist_Comments
+ while(GETC(ch) != '\n')
+ if (ch == EOF)
+ goto eof;
+#else
+ errfl(a->cierr, 115, where0);
+#endif
+ }
+ have_amp:
+ if (ch = getname(buf,sizeof(buf)))
+ return ch;
+ nl = (Namelist *)a->cifmt;
+ if (strcmp(buf, nl->name))
+#ifdef No_Bad_Namelist_Skip
+ errfl(a->cierr, 118, where0);
+#else
+ {
+ fprintf(stderr,
+ "Skipping namelist \"%s\": seeking namelist \"%s\".\n",
+ buf, nl->name);
+ fflush(stderr);
+ for(;;) switch(GETC(ch)) {
+ case EOF:
+ err(a->ciend, EOF, where0);
+ case '/':
+ case '&':
+ case '$':
+ if (f__external)
+ e_rsle();
+ else
+ z_rnew();
+ goto top;
+ case '"':
+ case '\'':
+ quote = ch;
+ more_quoted:
+ while(GETC(ch) != quote)
+ if (ch == EOF)
+ err(a->ciend, EOF, where0);
+ if (GETC(ch) == quote)
+ goto more_quoted;
+ Ungetc(ch,f__cf);
+ default:
+ continue;
+ }
+ }
+#endif
+ ht = mk_hashtab(nl);
+ if (!ht)
+ errfl(f__elist->cierr, 113, where0);
+ for(;;) {
+ for(;;) switch(GETC(ch)) {
+ case EOF:
+ if (got1)
+ return 0;
+ err(a->ciend, EOF, where0);
+ case '/':
+ case '$':
+ case '&':
+ return 0;
+ default:
+ if (ch <= ' ' && ch >= 0 || ch == ',')
+ continue;
+ Ungetc(ch,f__cf);
+ if (ch = getname(buf,sizeof(buf)))
+ return ch;
+ goto havename;
+ }
+ havename:
+ v = hash(ht,buf);
+ if (!v)
+ errfl(a->cierr, 119, where);
+ while(GETC(ch) <= ' ' && ch >= 0);
+ vaddr = v->addr;
+ type = v->type;
+ if (type < 0) {
+ size = -type;
+ type = TYCHAR;
+ }
+ else
+ size = f__typesize[type];
+ ivae = size;
+ iva = readall = 0;
+ if (ch == '(' /*)*/ ) {
+ dn = dimens;
+ if (!(dims = v->dims)) {
+ if (type != TYCHAR)
+ errfl(a->cierr, 122, where);
+ if (k = getdimen(&ch, dn, (ftnlen)size,
+ (ftnlen)size, &b))
+ errfl(a->cierr, k, where);
+ if (ch != ')')
+ errfl(a->cierr, 115, where);
+ b1 = dn->extent;
+ if (--b < 0 || b + b1 > size)
+ return 124;
+ iva += b;
+ size = b1;
+ while(GETC(ch) <= ' ' && ch >= 0);
+ goto scalar;
+ }
+ nd = (int)dims[0];
+ nomax = span = dims[1];
+ ivae = iva + size*nomax;
+ colonseen = 0;
+ if (k = getdimen(&ch, dn, size, nomax, &b))
+ errfl(a->cierr, k, where);
+ no = dn->extent;
+ b0 = dims[2];
+ dims1 = dims += 3;
+ ex = 1;
+ for(n = 1; n++ < nd; dims++) {
+ if (ch != ',')
+ errfl(a->cierr, 115, where);
+ dn1 = dn + 1;
+ span /= *dims;
+ if (k = getdimen(&ch, dn1, dn->delta**dims,
+ span, &b1))
+ errfl(a->cierr, k, where);
+ ex *= *dims;
+ b += b1*ex;
+ no *= dn1->extent;
+ dn = dn1;
+ }
+ if (ch != ')')
+ errfl(a->cierr, 115, where);
+ readall = 1 - colonseen;
+ b -= b0;
+ if (b < 0 || b >= nomax)
+ errfl(a->cierr, 125, where);
+ iva += size * b;
+ dims = dims1;
+ while(GETC(ch) <= ' ' && ch >= 0);
+ no1 = 1;
+ dn0 = dimens;
+ if (type == TYCHAR && ch == '(' /*)*/) {
+ if (k = getdimen(&ch, &substr, size, size, &b))
+ errfl(a->cierr, k, where);
+ if (ch != ')')
+ errfl(a->cierr, 115, where);
+ b1 = substr.extent;
+ if (--b < 0 || b + b1 > size)
+ return 124;
+ iva += b;
+ b0 = size;
+ size = b1;
+ while(GETC(ch) <= ' ' && ch >= 0);
+ if (b1 < b0)
+ goto delta_adj;
+ }
+ if (readall)
+ goto delta_adj;
+ for(; dn0 < dn; dn0++) {
+ if (dn0->extent != *dims++ || dn0->stride != 1)
+ break;
+ no1 *= dn0->extent;
+ }
+ if (dn0 == dimens && dimens[0].stride == 1) {
+ no1 = dimens[0].extent;
+ dn0++;
+ }
+ delta_adj:
+ ex = 0;
+ for(dn1 = dn0; dn1 <= dn; dn1++)
+ ex += (dn1->extent-1)
+ * (dn1->delta *= dn1->stride);
+ for(dn1 = dn; dn1 > dn0; dn1--) {
+ ex -= (dn1->extent - 1) * dn1->delta;
+ dn1->delta -= ex;
+ }
+ }
+ else if (dims = v->dims) {
+ no = no1 = dims[1];
+ ivae = iva + no*size;
+ }
+ else
+ scalar:
+ no = no1 = 1;
+ if (ch != '=')
+ errfl(a->cierr, 115, where);
+ got1 = nml_read = 1;
+ f__lcount = 0;
+ readloop:
+ for(;;) {
+ if (iva >= ivae || iva < 0) {
+ f__lquit = 1;
+ goto mustend;
+ }
+ else if (iva + no1*size > ivae)
+ no1 = (ivae - iva)/size;
+ f__lquit = 0;
+ if (k = l_read(&no1, vaddr + iva, size, type))
+ return k;
+ if (f__lquit == 1)
+ return 0;
+ if (readall) {
+ iva += dn0->delta;
+ if (f__lcount > 0) {
+ no2 = (ivae - iva)/size;
+ if (no2 > f__lcount)
+ no2 = f__lcount;
+ if (k = l_read(&no2, vaddr + iva,
+ size, type))
+ return k;
+ iva += no2 * dn0->delta;
+ }
+ }
+ mustend:
+ GETC(ch);
+ if (readall)
+ if (iva >= ivae)
+ readall = 0;
+ else for(;;) {
+ switch(ch) {
+ case ' ':
+ case '\t':
+ case '\n':
+ GETC(ch);
+ continue;
+ }
+ break;
+ }
+ if (ch == '/' || ch == '$' || ch == '&') {
+ f__lquit = 1;
+ return 0;
+ }
+ else if (f__lquit) {
+ while(ch <= ' ' && ch >= 0)
+ GETC(ch);
+ Ungetc(ch,f__cf);
+ if (!Alpha[ch & 0xff] && ch >= 0)
+ errfl(a->cierr, 125, where);
+ break;
+ }
+ Ungetc(ch,f__cf);
+ if (readall && !Alpha[ch & 0xff])
+ goto readloop;
+ if ((no -= no1) <= 0)
+ break;
+ for(dn1 = dn0; dn1 <= dn; dn1++) {
+ if (++dn1->curval < dn1->extent) {
+ iva += dn1->delta;
+ goto readloop;
+ }
+ dn1->curval = 0;
+ }
+ break;
+ }
+ }
+ }
+
+ integer
+#ifdef KR_headers
+s_rsne(a) cilist *a;
+#else
+s_rsne(cilist *a)
+#endif
+{
+ extern int l_eof;
+ int n;
+
+ f__external=1;
+ l_eof = 0;
+ if(n = c_le(a))
+ return n;
+ if(f__curunit->uwrt && f__nowreading(f__curunit))
+ err(a->cierr,errno,where0);
+ l_getc = t_getc;
+ l_ungetc = un_getc;
+ f__doend = xrd_SL;
+ n = x_rsne(a);
+ nml_read = 0;
+ if (n)
+ return n;
+ return e_rsle();
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cat.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cat.c
new file mode 100644
index 00000000000..5bf8a628ac0
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cat.c
@@ -0,0 +1,86 @@
+/* Unless compiled with -DNO_OVERWRITE, this variant of s_cat allows the
+ * target of a concatenation to appear on its right-hand side (contrary
+ * to the Fortran 77 Standard, but in accordance with Fortran 90).
+ */
+
+#include "f2c.h"
+#ifndef NO_OVERWRITE
+#include "stdio.h"
+#undef abs
+#ifdef KR_headers
+ extern char *F77_aloc();
+ extern void free();
+ extern void exit_();
+#else
+#undef min
+#undef max
+#include "stdlib.h"
+extern
+#ifdef __cplusplus
+ "C"
+#endif
+ char *F77_aloc(ftnlen, char*);
+#endif
+#include "string.h"
+#endif /* NO_OVERWRITE */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ VOID
+#ifdef KR_headers
+s_cat(lp, rpp, rnp, np, ll) char *lp, *rpp[]; ftnint rnp[], *np; ftnlen ll;
+#else
+s_cat(char *lp, char *rpp[], ftnint rnp[], ftnint *np, ftnlen ll)
+#endif
+{
+ ftnlen i, nc;
+ char *rp;
+ ftnlen n = *np;
+#ifndef NO_OVERWRITE
+ ftnlen L, m;
+ char *lp0, *lp1;
+
+ lp0 = 0;
+ lp1 = lp;
+ L = ll;
+ i = 0;
+ while(i < n) {
+ rp = rpp[i];
+ m = rnp[i++];
+ if (rp >= lp1 || rp + m <= lp) {
+ if ((L -= m) <= 0) {
+ n = i;
+ break;
+ }
+ lp1 += m;
+ continue;
+ }
+ lp0 = lp;
+ lp = lp1 = F77_aloc(L = ll, "s_cat");
+ break;
+ }
+ lp1 = lp;
+#endif /* NO_OVERWRITE */
+ for(i = 0 ; i < n ; ++i) {
+ nc = ll;
+ if(rnp[i] < nc)
+ nc = rnp[i];
+ ll -= nc;
+ rp = rpp[i];
+ while(--nc >= 0)
+ *lp++ = *rp++;
+ }
+ while(--ll >= 0)
+ *lp++ = ' ';
+#ifndef NO_OVERWRITE
+ if (lp0) {
+ memcpy(lp0, lp1, L);
+ free(lp1);
+ }
+#endif
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cmp.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cmp.c
new file mode 100644
index 00000000000..3a2ea67ddf0
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_cmp.c
@@ -0,0 +1,50 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* compare two strings */
+
+#ifdef KR_headers
+integer s_cmp(a0, b0, la, lb) char *a0, *b0; ftnlen la, lb;
+#else
+integer s_cmp(char *a0, char *b0, ftnlen la, ftnlen lb)
+#endif
+{
+register unsigned char *a, *aend, *b, *bend;
+a = (unsigned char *)a0;
+b = (unsigned char *)b0;
+aend = a + la;
+bend = b + lb;
+
+if(la <= lb)
+ {
+ while(a < aend)
+ if(*a != *b)
+ return( *a - *b );
+ else
+ { ++a; ++b; }
+
+ while(b < bend)
+ if(*b != ' ')
+ return( ' ' - *b );
+ else ++b;
+ }
+
+else
+ {
+ while(b < bend)
+ if(*a == *b)
+ { ++a; ++b; }
+ else
+ return( *a - *b );
+ while(a < aend)
+ if(*a != ' ')
+ return(*a - ' ');
+ else ++a;
+ }
+return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_copy.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_copy.c
new file mode 100644
index 00000000000..9dacfc7d8d2
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_copy.c
@@ -0,0 +1,57 @@
+/* Unless compiled with -DNO_OVERWRITE, this variant of s_copy allows the
+ * target of an assignment to appear on its right-hand side (contrary
+ * to the Fortran 77 Standard, but in accordance with Fortran 90),
+ * as in a(2:5) = a(4:7) .
+ */
+
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* assign strings: a = b */
+
+#ifdef KR_headers
+VOID s_copy(a, b, la, lb) register char *a, *b; ftnlen la, lb;
+#else
+void s_copy(register char *a, register char *b, ftnlen la, ftnlen lb)
+#endif
+{
+ register char *aend, *bend;
+
+ aend = a + la;
+
+ if(la <= lb)
+#ifndef NO_OVERWRITE
+ if (a <= b || a >= b + la)
+#endif
+ while(a < aend)
+ *a++ = *b++;
+#ifndef NO_OVERWRITE
+ else
+ for(b += la; a < aend; )
+ *--aend = *--b;
+#endif
+
+ else {
+ bend = b + lb;
+#ifndef NO_OVERWRITE
+ if (a <= b || a >= bend)
+#endif
+ while(b < bend)
+ *a++ = *b++;
+#ifndef NO_OVERWRITE
+ else {
+ a += lb;
+ while(b < bend)
+ *--a = *--bend;
+ a += lb;
+ }
+#endif
+ while(a < aend)
+ *a++ = ' ';
+ }
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_paus.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_paus.c
new file mode 100644
index 00000000000..51d80eb0878
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_paus.c
@@ -0,0 +1,96 @@
+#include "stdio.h"
+#include "f2c.h"
+#define PAUSESIG 15
+
+#include "signal1.h"
+#ifdef KR_headers
+#define Void /* void */
+#define Int /* int */
+#else
+#define Void void
+#define Int int
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int getpid(void), isatty(int), pause(void);
+#endif
+
+extern VOID f_exit(Void);
+
+#ifndef MSDOS
+ static VOID
+waitpause(Sigarg)
+{ Use_Sigarg;
+ return;
+ }
+#endif
+
+ static VOID
+#ifdef KR_headers
+s_1paus(fin) FILE *fin;
+#else
+s_1paus(FILE *fin)
+#endif
+{
+ fprintf(stderr,
+ "To resume execution, type go. Other input will terminate the job.\n");
+ fflush(stderr);
+ if( getc(fin)!='g' || getc(fin)!='o' || getc(fin)!='\n' ) {
+ fprintf(stderr, "STOP\n");
+#ifdef NO_ONEXIT
+ f_exit();
+#endif
+ exit(0);
+ }
+ }
+
+ int
+#ifdef KR_headers
+s_paus(s, n) char *s; ftnlen n;
+#else
+s_paus(char *s, ftnlen n)
+#endif
+{
+ fprintf(stderr, "PAUSE ");
+ if(n > 0)
+ fprintf(stderr, " %.*s", (int)n, s);
+ fprintf(stderr, " statement executed\n");
+ if( isatty(fileno(stdin)) )
+ s_1paus(stdin);
+ else {
+#ifdef MSDOS
+ FILE *fin;
+ fin = fopen("con", "r");
+ if (!fin) {
+ fprintf(stderr, "s_paus: can't open con!\n");
+ fflush(stderr);
+ exit(1);
+ }
+ s_1paus(fin);
+ fclose(fin);
+#else
+ fprintf(stderr,
+ "To resume execution, execute a kill -%d %d command\n",
+ PAUSESIG, getpid() );
+ signal1(PAUSESIG, waitpause);
+ fflush(stderr);
+ pause();
+#endif
+ }
+ fprintf(stderr, "Execution resumes after PAUSE.\n");
+ fflush(stderr);
+ return 0; /* NOT REACHED */
+#ifdef __cplusplus
+ }
+#endif
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_rnge.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_rnge.c
new file mode 100644
index 00000000000..5c12b949634
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_rnge.c
@@ -0,0 +1,32 @@
+#include "stdio.h"
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* called when a subscript is out of range */
+
+#ifdef KR_headers
+extern VOID sig_die();
+integer s_rnge(varn, offset, procn, line) char *varn, *procn; ftnint offset, line;
+#else
+extern VOID sig_die(char*,int);
+integer s_rnge(char *varn, ftnint offset, char *procn, ftnint line)
+#endif
+{
+register int i;
+
+fprintf(stderr, "Subscript out of range on file line %ld, procedure ",
+ (long)line);
+while((i = *procn) && i != '_' && i != ' ')
+ putc(*procn++, stderr);
+fprintf(stderr, ".\nAttempt to access the %ld-th element of variable ",
+ (long)offset+1);
+while((i = *varn) && i != ' ')
+ putc(*varn++, stderr);
+sig_die(".", 1);
+return 0; /* not reached */
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_stop.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_stop.c
new file mode 100644
index 00000000000..68233aea7e3
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/s_stop.c
@@ -0,0 +1,48 @@
+#include "stdio.h"
+#include "f2c.h"
+
+#ifdef KR_headers
+extern void f_exit();
+int s_stop(s, n) char *s; ftnlen n;
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+void f_exit(void);
+
+int s_stop(char *s, ftnlen n)
+#endif
+{
+int i;
+
+if(n > 0)
+ {
+ fprintf(stderr, "STOP ");
+ for(i = 0; i<n ; ++i)
+ putc(*s++, stderr);
+ fprintf(stderr, " statement executed\n");
+ }
+#ifdef NO_ONEXIT
+f_exit();
+#endif
+exit(0);
+
+/* We cannot avoid (useless) compiler diagnostics here: */
+/* some compilers complain if there is no return statement, */
+/* and others complain that this one cannot be reached. */
+
+return 0; /* NOT REACHED */
+}
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/sfe.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sfe.c
new file mode 100644
index 00000000000..21e1f044645
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sfe.c
@@ -0,0 +1,43 @@
+/* sequential formatted external common routines*/
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern char *f__fmtbuf;
+
+integer e_rsfe(Void)
+{ int n;
+ n=en_fio();
+ f__fmtbuf=NULL;
+ return(n);
+}
+
+ int
+#ifdef KR_headers
+c_sfe(a) cilist *a; /* check */
+#else
+c_sfe(cilist *a) /* check */
+#endif
+{ unit *p;
+ f__curunit = p = &f__units[a->ciunit];
+ if(a->ciunit >= MXUNIT || a->ciunit<0)
+ err(a->cierr,101,"startio");
+ if(p->ufd==NULL && fk_open(SEQ,FMT,a->ciunit)) err(a->cierr,114,"sfe")
+ if(!p->ufmt) err(a->cierr,102,"sfe")
+ return(0);
+}
+integer e_wsfe(Void)
+{
+ int n = en_fio();
+ f__fmtbuf = NULL;
+#ifdef ALWAYS_FLUSH
+ if (!n && fflush(f__cf))
+ err(f__elist->cierr, errno, "write end");
+#endif
+ return n;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/sig_die.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sig_die.c
new file mode 100644
index 00000000000..8c22cd58113
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sig_die.c
@@ -0,0 +1,51 @@
+#include "stdio.h"
+#include "signal.h"
+
+#ifndef SIGIOT
+#ifdef SIGABRT
+#define SIGIOT SIGABRT
+#endif
+#endif
+
+#ifdef KR_headers
+void sig_die(s, kill) register char *s; int kill;
+#else
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+ extern void f_exit(void);
+
+void sig_die(register char *s, int kill)
+#endif
+{
+ /* print error message, then clear buffers */
+ fprintf(stderr, "%s\n", s);
+
+ if(kill)
+ {
+ fflush(stderr);
+ f_exit();
+ fflush(stderr);
+ /* now get a core */
+#ifdef SIGIOT
+ signal(SIGIOT, SIG_DFL);
+#endif
+ abort();
+ }
+ else {
+#ifdef NO_ONEXIT
+ f_exit();
+#endif
+ exit(1);
+ }
+ }
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/signal1.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/signal1.h
new file mode 100644
index 00000000000..a383774b82d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/signal1.h
@@ -0,0 +1,35 @@
+/* You may need to adjust the definition of signal1 to supply a */
+/* cast to the correct argument type. This detail is system- and */
+/* compiler-dependent. The #define below assumes signal.h declares */
+/* type SIG_PF for the signal function's second argument. */
+
+/* For some C++ compilers, "#define Sigarg_t ..." may be appropriate. */
+
+#include <signal.h>
+
+#ifndef Sigret_t
+#define Sigret_t void
+#endif
+#ifndef Sigarg_t
+#ifdef KR_headers
+#define Sigarg_t
+#else
+#define Sigarg_t int
+#endif
+#endif /*Sigarg_t*/
+
+#ifdef USE_SIG_PF /* compile with -DUSE_SIG_PF under IRIX */
+#define sig_pf SIG_PF
+#else
+typedef Sigret_t (*sig_pf)(Sigarg_t);
+#endif
+
+#define signal1(a,b) signal(a,(sig_pf)b)
+
+#ifdef __cplusplus
+#define Sigarg ...
+#define Use_Sigarg
+#else
+#define Sigarg Int n
+#define Use_Sigarg n = n /* shut up compiler warning */
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/signal_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/signal_.c
new file mode 100644
index 00000000000..3b0e6cfe98b
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/signal_.c
@@ -0,0 +1,21 @@
+#include "f2c.h"
+#include "signal1.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ ftnint
+#ifdef KR_headers
+signal_(sigp, proc) integer *sigp; sig_pf proc;
+#else
+signal_(integer *sigp, sig_pf proc)
+#endif
+{
+ int sig;
+ sig = (int)*sigp;
+
+ return (ftnint)signal(sig, proc);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/signbit.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/signbit.c
new file mode 100644
index 00000000000..de95a3b70fd
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/signbit.c
@@ -0,0 +1,24 @@
+#include "arith.h"
+
+#ifndef Long
+#define Long long
+#endif
+
+ int
+#ifdef KR_headers
+signbit_f2c(x) double *x;
+#else
+signbit_f2c(double *x)
+#endif
+{
+#ifdef IEEE_MC68k
+ if (*(Long*)x & 0x80000000)
+ return 1;
+#else
+#ifdef IEEE_8087
+ if (((Long*)x)[1] & 0x80000000)
+ return 1;
+#endif /*IEEE_8087*/
+#endif /*IEEE_MC68k*/
+ return 0;
+ }
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/sue.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sue.c
new file mode 100644
index 00000000000..191e32627cc
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sue.c
@@ -0,0 +1,90 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern uiolen f__reclen;
+OFF_T f__recloc;
+
+ int
+#ifdef KR_headers
+c_sue(a) cilist *a;
+#else
+c_sue(cilist *a)
+#endif
+{
+ f__external=f__sequential=1;
+ f__formatted=0;
+ f__curunit = &f__units[a->ciunit];
+ if(a->ciunit >= MXUNIT || a->ciunit < 0)
+ err(a->cierr,101,"startio");
+ f__elist=a;
+ if(f__curunit->ufd==NULL && fk_open(SEQ,UNF,a->ciunit))
+ err(a->cierr,114,"sue");
+ f__cf=f__curunit->ufd;
+ if(f__curunit->ufmt) err(a->cierr,103,"sue")
+ if(!f__curunit->useek) err(a->cierr,103,"sue")
+ return(0);
+}
+#ifdef KR_headers
+integer s_rsue(a) cilist *a;
+#else
+integer s_rsue(cilist *a)
+#endif
+{
+ int n;
+ if(!f__init) f_init();
+ f__reading=1;
+ if(n=c_sue(a)) return(n);
+ f__recpos=0;
+ if(f__curunit->uwrt && f__nowreading(f__curunit))
+ err(a->cierr, errno, "read start");
+ if(fread((char *)&f__reclen,sizeof(uiolen),1,f__cf)
+ != 1)
+ { if(feof(f__cf))
+ { f__curunit->uend = 1;
+ err(a->ciend, EOF, "start");
+ }
+ clearerr(f__cf);
+ err(a->cierr, errno, "start");
+ }
+ return(0);
+}
+#ifdef KR_headers
+integer s_wsue(a) cilist *a;
+#else
+integer s_wsue(cilist *a)
+#endif
+{
+ int n;
+ if(!f__init) f_init();
+ if(n=c_sue(a)) return(n);
+ f__reading=0;
+ f__reclen=0;
+ if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit))
+ err(a->cierr, errno, "write start");
+ f__recloc=FTELL(f__cf);
+ FSEEK(f__cf,(OFF_T)sizeof(uiolen),SEEK_CUR);
+ return(0);
+}
+integer e_wsue(Void)
+{ OFF_T loc;
+ fwrite((char *)&f__reclen,sizeof(uiolen),1,f__cf);
+#ifdef ALWAYS_FLUSH
+ if (fflush(f__cf))
+ err(f__elist->cierr, errno, "write end");
+#endif
+ loc=FTELL(f__cf);
+ FSEEK(f__cf,f__recloc,SEEK_SET);
+ fwrite((char *)&f__reclen,sizeof(uiolen),1,f__cf);
+ FSEEK(f__cf,loc,SEEK_SET);
+ return(0);
+}
+integer e_rsue(Void)
+{
+ FSEEK(f__cf,(OFF_T)(f__reclen-f__recpos+sizeof(uiolen)),SEEK_CUR);
+ return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/sysdep1.h b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sysdep1.h
new file mode 100644
index 00000000000..4c026a240a1
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/sysdep1.h
@@ -0,0 +1,66 @@
+#ifndef SYSDEP_H_INCLUDED
+#define SYSDEP_H_INCLUDED
+#undef USE_LARGEFILE
+#ifndef NO_LONG_LONG
+
+#ifdef __sun__
+#define USE_LARGEFILE
+#define OFF_T off64_t
+#endif
+
+#ifdef __linux__
+#define USE_LARGEFILE
+#define OFF_T __off64_t
+#endif
+
+#ifdef _AIX43
+#define _LARGE_FILES
+#define _LARGE_FILE_API
+#define USE_LARGEFILE
+#endif /*_AIX43*/
+
+#ifdef __hpux
+#define _FILE64
+#define _LARGEFILE64_SOURCE
+#define USE_LARGEFILE
+#endif /*__hpux*/
+
+#ifdef __sgi
+#define USE_LARGEFILE
+#endif /*__sgi*/
+
+#ifdef __FreeBSD__
+#define OFF_T off_t
+#define FSEEK fseeko
+#define FTELL ftello
+#endif
+
+#ifdef USE_LARGEFILE
+#ifndef OFF_T
+#define OFF_T off64_t
+#endif
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+#include <sys/types.h>
+#include <sys/stat.h>
+#define FOPEN fopen64
+#define FREOPEN freopen64
+#define FSEEK fseeko64
+#define FSTAT fstat64
+#define FTELL ftello64
+#define FTRUNCATE ftruncate64
+#define STAT stat64
+#define STAT_ST stat64
+#endif /*USE_LARGEFILE*/
+#endif /*NO_LONG_LONG*/
+
+#ifndef NON_UNIX_STDIO
+#ifndef USE_LARGEFILE
+#define _INCLUDE_POSIX_SOURCE /* for HP-UX */
+#define _INCLUDE_XOPEN_SOURCE /* for HP-UX */
+#include "sys/types.h"
+#include "sys/stat.h"
+#endif
+#endif
+
+#endif /*SYSDEP_H_INCLUDED*/
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/system_.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/system_.c
new file mode 100644
index 00000000000..3220bfb5c2d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/system_.c
@@ -0,0 +1,42 @@
+/* f77 interface to system routine */
+
+#include "f2c.h"
+
+#ifdef KR_headers
+extern char *F77_aloc();
+
+ integer
+system_(s, n) register char *s; ftnlen n;
+#else
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern char *F77_aloc(ftnlen, char*);
+
+ integer
+system_(register char *s, ftnlen n)
+#endif
+{
+ char buff0[256], *buff;
+ register char *bp, *blast;
+ integer rv;
+
+ buff = bp = n < sizeof(buff0)
+ ? buff0 : F77_aloc(n+1, "system_");
+ blast = bp + n;
+
+ while(bp < blast && *s)
+ *bp++ = *s++;
+ *bp = 0;
+ rv = system(buff);
+ if (buff != buff0)
+ free(buff);
+ return rv;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/typesize.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/typesize.c
new file mode 100644
index 00000000000..39097f46991
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/typesize.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ftnlen f__typesize[] = { 0, 0, sizeof(shortint), sizeof(integer),
+ sizeof(real), sizeof(doublereal),
+ sizeof(complex), sizeof(doublecomplex),
+ sizeof(logical), sizeof(char),
+ 0, sizeof(integer1),
+ sizeof(logical1), sizeof(shortlogical),
+#ifdef Allow_TYQUAD
+ sizeof(longint),
+#endif
+ 0};
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/uio.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/uio.c
new file mode 100644
index 00000000000..44f768d9a24
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/uio.c
@@ -0,0 +1,75 @@
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+uiolen f__reclen;
+
+ int
+#ifdef KR_headers
+do_us(number,ptr,len) ftnint *number; char *ptr; ftnlen len;
+#else
+do_us(ftnint *number, char *ptr, ftnlen len)
+#endif
+{
+ if(f__reading)
+ {
+ f__recpos += (int)(*number * len);
+ if(f__recpos>f__reclen)
+ err(f__elist->cierr, 110, "do_us");
+ if (fread(ptr,(int)len,(int)(*number),f__cf) != *number)
+ err(f__elist->ciend, EOF, "do_us");
+ return(0);
+ }
+ else
+ {
+ f__reclen += *number * len;
+ (void) fwrite(ptr,(int)len,(int)(*number),f__cf);
+ return(0);
+ }
+}
+#ifdef KR_headers
+integer do_ud(number,ptr,len) ftnint *number; char *ptr; ftnlen len;
+#else
+integer do_ud(ftnint *number, char *ptr, ftnlen len)
+#endif
+{
+ f__recpos += (int)(*number * len);
+ if(f__recpos > f__curunit->url && f__curunit->url!=1)
+ err(f__elist->cierr,110,"do_ud");
+ if(f__reading)
+ {
+#ifdef Pad_UDread
+#ifdef KR_headers
+ int i;
+#else
+ size_t i;
+#endif
+ if (!(i = fread(ptr,(int)len,(int)(*number),f__cf))
+ && !(f__recpos - *number*len))
+ err(f__elist->cierr,EOF,"do_ud")
+ if (i < *number)
+ memset(ptr + i*len, 0, (*number - i)*len);
+ return 0;
+#else
+ if(fread(ptr,(int)len,(int)(*number),f__cf) != *number)
+ err(f__elist->cierr,EOF,"do_ud")
+ else return(0);
+#endif
+ }
+ (void) fwrite(ptr,(int)len,(int)(*number),f__cf);
+ return(0);
+}
+#ifdef KR_headers
+integer do_uio(number,ptr,len) ftnint *number; char *ptr; ftnlen len;
+#else
+integer do_uio(ftnint *number, char *ptr, ftnlen len)
+#endif
+{
+ if(f__sequential)
+ return(do_us(number,ptr,len));
+ else return(do_ud(number,ptr,len));
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/uninit.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/uninit.c
new file mode 100644
index 00000000000..794cd6adee0
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/uninit.c
@@ -0,0 +1,368 @@
+#include <stdio.h>
+#include <string.h>
+#include "arith.h"
+
+#define TYSHORT 2
+#define TYLONG 3
+#define TYREAL 4
+#define TYDREAL 5
+#define TYCOMPLEX 6
+#define TYDCOMPLEX 7
+#define TYINT1 11
+#define TYQUAD 14
+#ifndef Long
+#define Long long
+#endif
+
+#ifdef __mips
+#define RNAN 0xffc00000
+#define DNAN0 0xfff80000
+#define DNAN1 0
+#endif
+
+#ifdef _PA_RISC1_1
+#define RNAN 0xffc00000
+#define DNAN0 0xfff80000
+#define DNAN1 0
+#endif
+
+#ifndef RNAN
+#define RNAN 0xff800001
+#ifdef IEEE_MC68k
+#define DNAN0 0xfff00000
+#define DNAN1 1
+#else
+#define DNAN0 1
+#define DNAN1 0xfff00000
+#endif
+#endif /*RNAN*/
+
+#ifdef KR_headers
+#define Void /*void*/
+#define FA7UL (unsigned Long) 0xfa7a7a7aL
+#else
+#define Void void
+#define FA7UL 0xfa7a7a7aUL
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static void ieee0(Void);
+
+static unsigned Long rnan = RNAN,
+ dnan0 = DNAN0,
+ dnan1 = DNAN1;
+
+double _0 = 0.;
+
+ void
+#ifdef KR_headers
+_uninit_f2c(x, type, len) void *x; int type; long len;
+#else
+_uninit_f2c(void *x, int type, long len)
+#endif
+{
+ static int first = 1;
+
+ unsigned Long *lx, *lxe;
+
+ if (first) {
+ first = 0;
+ ieee0();
+ }
+ if (len == 1)
+ switch(type) {
+ case TYINT1:
+ *(char*)x = 'Z';
+ return;
+ case TYSHORT:
+ *(short*)x = 0xfa7a;
+ break;
+ case TYLONG:
+ *(unsigned Long*)x = FA7UL;
+ return;
+ case TYQUAD:
+ case TYCOMPLEX:
+ case TYDCOMPLEX:
+ break;
+ case TYREAL:
+ *(unsigned Long*)x = rnan;
+ return;
+ case TYDREAL:
+ lx = (unsigned Long*)x;
+ lx[0] = dnan0;
+ lx[1] = dnan1;
+ return;
+ default:
+ printf("Surprise type %d in _uninit_f2c\n", type);
+ }
+ switch(type) {
+ case TYINT1:
+ memset(x, 'Z', len);
+ break;
+ case TYSHORT:
+ *(short*)x = 0xfa7a;
+ break;
+ case TYQUAD:
+ len *= 2;
+ /* no break */
+ case TYLONG:
+ lx = (unsigned Long*)x;
+ lxe = lx + len;
+ while(lx < lxe)
+ *lx++ = FA7UL;
+ break;
+ case TYCOMPLEX:
+ len *= 2;
+ /* no break */
+ case TYREAL:
+ lx = (unsigned Long*)x;
+ lxe = lx + len;
+ while(lx < lxe)
+ *lx++ = rnan;
+ break;
+ case TYDCOMPLEX:
+ len *= 2;
+ /* no break */
+ case TYDREAL:
+ lx = (unsigned Long*)x;
+ for(lxe = lx + 2*len; lx < lxe; lx += 2) {
+ lx[0] = dnan0;
+ lx[1] = dnan1;
+ }
+ }
+ }
+#ifdef __cplusplus
+}
+#endif
+
+#ifndef MSpc
+#ifdef MSDOS
+#define MSpc
+#else
+#ifdef _WIN32
+#define MSpc
+#endif
+#endif
+#endif
+
+#ifdef MSpc
+#define IEEE0_done
+#include "float.h"
+#include "signal.h"
+
+ static void
+ieee0(Void)
+{
+#ifndef __alpha
+#ifndef EM_DENORMAL
+#define EM_DENORMAL _EM_DENORMAL
+#endif
+#ifndef EM_UNDERFLOW
+#define EM_UNDERFLOW _EM_UNDERFLOW
+#endif
+#ifndef EM_INEXACT
+#define EM_INEXACT _EM_INEXACT
+#endif
+#ifndef MCW_EM
+#define MCW_EM _MCW_EM
+#endif
+ _control87(EM_DENORMAL | EM_UNDERFLOW | EM_INEXACT, MCW_EM);
+#endif
+ /* With MS VC++, compiling and linking with -Zi will permit */
+ /* clicking to invoke the MS C++ debugger, which will show */
+ /* the point of error -- provided SIGFPE is SIG_DFL. */
+ signal(SIGFPE, SIG_DFL);
+ }
+#endif /* MSpc */
+
+#ifdef __mips /* must link with -lfpe */
+#define IEEE0_done
+/* code from Eric Grosse */
+#include <stdlib.h>
+#include <stdio.h>
+#include "/usr/include/sigfpe.h" /* full pathname for lcc -N */
+#include "/usr/include/sys/fpu.h"
+
+ static void
+#ifdef KR_headers
+ieeeuserhand(exception, val) unsigned exception[5]; int val[2];
+#else
+ieeeuserhand(unsigned exception[5], int val[2])
+#endif
+{
+ fflush(stdout);
+ fprintf(stderr,"ieee0() aborting because of ");
+ if(exception[0]==_OVERFL) fprintf(stderr,"overflow\n");
+ else if(exception[0]==_UNDERFL) fprintf(stderr,"underflow\n");
+ else if(exception[0]==_DIVZERO) fprintf(stderr,"divide by 0\n");
+ else if(exception[0]==_INVALID) fprintf(stderr,"invalid operation\n");
+ else fprintf(stderr,"\tunknown reason\n");
+ fflush(stderr);
+ abort();
+}
+
+ static void
+#ifdef KR_headers
+ieeeuserhand2(j) unsigned int **j;
+#else
+ieeeuserhand2(unsigned int **j)
+#endif
+{
+ fprintf(stderr,"ieee0() aborting because of confusion\n");
+ abort();
+}
+
+ static void
+ieee0(Void)
+{
+ int i;
+ for(i=1; i<=4; i++){
+ sigfpe_[i].count = 1000;
+ sigfpe_[i].trace = 1;
+ sigfpe_[i].repls = _USER_DETERMINED;
+ }
+ sigfpe_[1].repls = _ZERO; /* underflow */
+ handle_sigfpes( _ON,
+ _EN_UNDERFL|_EN_OVERFL|_EN_DIVZERO|_EN_INVALID,
+ ieeeuserhand,_ABORT_ON_ERROR,ieeeuserhand2);
+ }
+#endif /* mips */
+
+#ifdef __linux__
+#define IEEE0_done
+#include "fpu_control.h"
+
+#ifdef __alpha__
+#ifndef USE_setfpucw
+#define __setfpucw(x) __fpu_control = (x)
+#endif
+#endif
+
+#ifndef _FPU_SETCW
+#undef Can_use__setfpucw
+#define Can_use__setfpucw
+#endif
+
+ static void
+ieee0(Void)
+{
+#if (defined(__mc68000__) || defined(__mc68020__) || defined(mc68020) || defined (__mc68k__))
+/* Reported 20010705 by Alan Bain <alanb@chiark.greenend.org.uk> */
+/* Note that IEEE 754 IOP (illegal operation) */
+/* = Signaling NAN (SNAN) + operation error (OPERR). */
+#ifdef Can_use__setfpucw /* Has __setfpucw gone missing from S.u.S.E. 6.3? */
+ __setfpucw(_FPU_IEEE + _FPU_DOUBLE + _FPU_MASK_OPERR + _FPU_MASK_DZ + _FPU_MASK_SNAN+_FPU_MASK_OVFL);
+#else
+ __fpu_control = _FPU_IEEE + _FPU_DOUBLE + _FPU_MASK_OPERR + _FPU_MASK_DZ + _FPU_MASK_SNAN+_FPU_MASK_OVFL;
+ _FPU_SETCW(__fpu_control);
+#endif
+
+#elif (defined(__powerpc__)||defined(_ARCH_PPC)||defined(_ARCH_PWR)) /* !__mc68k__ */
+/* Reported 20011109 by Alan Bain <alanb@chiark.greenend.org.uk> */
+
+#ifdef Can_use__setfpucw
+
+/* The following is NOT a mistake -- the author of the fpu_control.h
+for the PPC has erroneously defined IEEE mode to turn on exceptions
+other than Inexact! Start from default then and turn on only the ones
+which we want*/
+
+ __setfpucw(_FPU_DEFAULT + _FPU_MASK_IM+_FPU_MASK_OM+_FPU_MASK_UM);
+
+#else /* PPC && !Can_use__setfpucw */
+
+ __fpu_control = _FPU_DEFAULT +_FPU_MASK_OM+_FPU_MASK_IM+_FPU_MASK_UM;
+ _FPU_SETCW(__fpu_control);
+
+#endif /*Can_use__setfpucw*/
+
+#else /* !(mc68000||powerpc) */
+
+#ifdef _FPU_IEEE
+#ifndef _FPU_EXTENDED /* e.g., ARM processor under Linux */
+#define _FPU_EXTENDED 0
+#endif
+#ifndef _FPU_DOUBLE
+#define _FPU_DOUBLE 0
+#endif
+#ifdef Can_use__setfpucw /* Has __setfpucw gone missing from S.u.S.E. 6.3? */
+ __setfpucw(_FPU_IEEE - _FPU_EXTENDED + _FPU_DOUBLE - _FPU_MASK_IM - _FPU_MASK_ZM - _FPU_MASK_OM);
+#else
+ __fpu_control = _FPU_IEEE - _FPU_EXTENDED + _FPU_DOUBLE - _FPU_MASK_IM - _FPU_MASK_ZM - _FPU_MASK_OM;
+ _FPU_SETCW(__fpu_control);
+#endif
+
+#else /* !_FPU_IEEE */
+
+ fprintf(stderr, "\n%s\n%s\n%s\n%s\n",
+ "WARNING: _uninit_f2c in libf2c does not know how",
+ "to enable trapping on this system, so f2c's -trapuv",
+ "option will not detect uninitialized variables unless",
+ "you can enable trapping manually.");
+ fflush(stderr);
+
+#endif /* _FPU_IEEE */
+#endif /* __mc68k__ */
+ }
+#endif /* __linux__ */
+
+#ifdef __alpha
+#ifndef IEEE0_done
+#define IEEE0_done
+#include <machine/fpu.h>
+ static void
+ieee0(Void)
+{
+ ieee_set_fp_control(IEEE_TRAP_ENABLE_INV);
+ }
+#endif /*IEEE0_done*/
+#endif /*__alpha*/
+
+#ifdef __hpux
+#define IEEE0_done
+#define _INCLUDE_HPUX_SOURCE
+#include <math.h>
+
+#ifndef FP_X_INV
+#include <fenv.h>
+#define fpsetmask fesettrapenable
+#define FP_X_INV FE_INVALID
+#endif
+
+ static void
+ieee0(Void)
+{
+ fpsetmask(FP_X_INV);
+ }
+#endif /*__hpux*/
+
+#ifdef _AIX
+#define IEEE0_done
+#include <fptrap.h>
+
+ static void
+ieee0(Void)
+{
+ fp_enable(TRP_INVALID);
+ fp_trap(FP_TRAP_SYNC);
+ }
+#endif /*_AIX*/
+
+#ifdef __sun
+#define IEEE0_done
+#include <ieeefp.h>
+
+ static void
+ieee0(Void)
+{
+ fpsetmask(FP_X_INV);
+ }
+#endif /*__sparc*/
+
+#ifndef IEEE0_done
+ static void
+ieee0(Void) {}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/util.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/util.c
new file mode 100644
index 00000000000..f4b3aef2ce7
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/util.c
@@ -0,0 +1,54 @@
+#include "sysdep1.h" /* here to get stat64 on some badly designed Linux systems */
+#include "f2c.h"
+#include "fio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ VOID
+#ifdef KR_headers
+g_char(a,alen,b) char *a,*b; ftnlen alen;
+#else
+g_char(char *a, ftnlen alen, char *b)
+#endif
+{
+ char *x = a + alen, *y = b + alen;
+
+ for(;; y--) {
+ if (x <= a) {
+ *b = 0;
+ return;
+ }
+ if (*--x != ' ')
+ break;
+ }
+ *y-- = 0;
+ do *y-- = *x;
+ while(x-- > a);
+ }
+
+ VOID
+#ifdef KR_headers
+b_char(a,b,blen) char *a,*b; ftnlen blen;
+#else
+b_char(char *a, char *b, ftnlen blen)
+#endif
+{ int i;
+ for(i=0;i<blen && *a!=0;i++) *b++= *a++;
+ for(;i<blen;i++) *b++=' ';
+}
+#ifndef NON_UNIX_STDIO
+#ifdef KR_headers
+long f__inode(a, dev) char *a; int *dev;
+#else
+long f__inode(char *a, int *dev)
+#endif
+{ struct STAT_ST x;
+ if(STAT(a,&x)<0) return(-1);
+ *dev = x.st_dev;
+ return(x.st_ino);
+}
+#endif
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/wref.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wref.c
new file mode 100644
index 00000000000..f2074b75e3a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wref.c
@@ -0,0 +1,294 @@
+#include "f2c.h"
+#include "fio.h"
+
+#ifndef KR_headers
+#undef abs
+#undef min
+#undef max
+#include "stdlib.h"
+#include "string.h"
+#endif
+
+#include "fmt.h"
+#include "fp.h"
+#ifndef VAX
+#include "ctype.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif
+
+ int
+#ifdef KR_headers
+wrt_E(p,w,d,e,len) ufloat *p; ftnlen len;
+#else
+wrt_E(ufloat *p, int w, int d, int e, ftnlen len)
+#endif
+{
+ char buf[FMAX+EXPMAXDIGS+4], *s, *se;
+ int d1, delta, e1, i, sign, signspace;
+ double dd;
+#ifdef WANT_LEAD_0
+ int insert0 = 0;
+#endif
+#ifndef VAX
+ int e0 = e;
+#endif
+
+ if(e <= 0)
+ e = 2;
+ if(f__scale) {
+ if(f__scale >= d + 2 || f__scale <= -d)
+ goto nogood;
+ }
+ if(f__scale <= 0)
+ --d;
+ if (len == sizeof(real))
+ dd = p->pf;
+ else
+ dd = p->pd;
+ if (dd < 0.) {
+ signspace = sign = 1;
+ dd = -dd;
+ }
+ else {
+ sign = 0;
+ signspace = (int)f__cplus;
+#ifndef VAX
+ if (!dd) {
+#ifdef SIGNED_ZEROS
+ if (signbit_f2c(&dd))
+ signspace = sign = 1;
+#endif
+ dd = 0.; /* avoid -0 */
+ }
+#endif
+ }
+ delta = w - (2 /* for the . and the d adjustment above */
+ + 2 /* for the E+ */ + signspace + d + e);
+#ifdef WANT_LEAD_0
+ if (f__scale <= 0 && delta > 0) {
+ delta--;
+ insert0 = 1;
+ }
+ else
+#endif
+ if (delta < 0) {
+nogood:
+ while(--w >= 0)
+ PUT('*');
+ return(0);
+ }
+ if (f__scale < 0)
+ d += f__scale;
+ if (d > FMAX) {
+ d1 = d - FMAX;
+ d = FMAX;
+ }
+ else
+ d1 = 0;
+ sprintf(buf,"%#.*E", d, dd);
+#ifndef VAX
+ /* check for NaN, Infinity */
+ if (!isdigit(buf[0])) {
+ switch(buf[0]) {
+ case 'n':
+ case 'N':
+ signspace = 0; /* no sign for NaNs */
+ }
+ delta = w - strlen(buf) - signspace;
+ if (delta < 0)
+ goto nogood;
+ while(--delta >= 0)
+ PUT(' ');
+ if (signspace)
+ PUT(sign ? '-' : '+');
+ for(s = buf; *s; s++)
+ PUT(*s);
+ return 0;
+ }
+#endif
+ se = buf + d + 3;
+#ifdef GOOD_SPRINTF_EXPONENT /* When possible, exponent has 2 digits. */
+ if (f__scale != 1 && dd)
+ sprintf(se, "%+.2d", atoi(se) + 1 - f__scale);
+#else
+ if (dd)
+ sprintf(se, "%+.2d", atoi(se) + 1 - f__scale);
+ else
+ strcpy(se, "+00");
+#endif
+ s = ++se;
+ if (e < 2) {
+ if (*s != '0')
+ goto nogood;
+ }
+#ifndef VAX
+ /* accommodate 3 significant digits in exponent */
+ if (s[2]) {
+#ifdef Pedantic
+ if (!e0 && !s[3])
+ for(s -= 2, e1 = 2; s[0] = s[1]; s++);
+
+ /* Pedantic gives the behavior that Fortran 77 specifies, */
+ /* i.e., requires that E be specified for exponent fields */
+ /* of more than 3 digits. With Pedantic undefined, we get */
+ /* the behavior that Cray displays -- you get a bigger */
+ /* exponent field if it fits. */
+#else
+ if (!e0) {
+ for(s -= 2, e1 = 2; s[0] = s[1]; s++)
+#ifdef CRAY
+ delta--;
+ if ((delta += 4) < 0)
+ goto nogood
+#endif
+ ;
+ }
+#endif
+ else if (e0 >= 0)
+ goto shift;
+ else
+ e1 = e;
+ }
+ else
+ shift:
+#endif
+ for(s += 2, e1 = 2; *s; ++e1, ++s)
+ if (e1 >= e)
+ goto nogood;
+ while(--delta >= 0)
+ PUT(' ');
+ if (signspace)
+ PUT(sign ? '-' : '+');
+ s = buf;
+ i = f__scale;
+ if (f__scale <= 0) {
+#ifdef WANT_LEAD_0
+ if (insert0)
+ PUT('0');
+#endif
+ PUT('.');
+ for(; i < 0; ++i)
+ PUT('0');
+ PUT(*s);
+ s += 2;
+ }
+ else if (f__scale > 1) {
+ PUT(*s);
+ s += 2;
+ while(--i > 0)
+ PUT(*s++);
+ PUT('.');
+ }
+ if (d1) {
+ se -= 2;
+ while(s < se) PUT(*s++);
+ se += 2;
+ do PUT('0'); while(--d1 > 0);
+ }
+ while(s < se)
+ PUT(*s++);
+ if (e < 2)
+ PUT(s[1]);
+ else {
+ while(++e1 <= e)
+ PUT('0');
+ while(*s)
+ PUT(*s++);
+ }
+ return 0;
+ }
+
+ int
+#ifdef KR_headers
+wrt_F(p,w,d,len) ufloat *p; ftnlen len;
+#else
+wrt_F(ufloat *p, int w, int d, ftnlen len)
+#endif
+{
+ int d1, sign, n;
+ double x;
+ char *b, buf[MAXINTDIGS+MAXFRACDIGS+4], *s;
+
+ x= (len==sizeof(real)?p->pf:p->pd);
+ if (d < MAXFRACDIGS)
+ d1 = 0;
+ else {
+ d1 = d - MAXFRACDIGS;
+ d = MAXFRACDIGS;
+ }
+ if (x < 0.)
+ { x = -x; sign = 1; }
+ else {
+ sign = 0;
+#ifndef VAX
+ if (!x) {
+#ifdef SIGNED_ZEROS
+ if (signbit_f2c(&x))
+ sign = 2;
+#endif
+ x = 0.;
+ }
+#endif
+ }
+
+ if (n = f__scale)
+ if (n > 0)
+ do x *= 10.; while(--n > 0);
+ else
+ do x *= 0.1; while(++n < 0);
+
+#ifdef USE_STRLEN
+ sprintf(b = buf, "%#.*f", d, x);
+ n = strlen(b) + d1;
+#else
+ n = sprintf(b = buf, "%#.*f", d, x) + d1;
+#endif
+
+#ifndef WANT_LEAD_0
+ if (buf[0] == '0' && d)
+ { ++b; --n; }
+#endif
+ if (sign == 1) {
+ /* check for all zeros */
+ for(s = b;;) {
+ while(*s == '0') s++;
+ switch(*s) {
+ case '.':
+ s++; continue;
+ case 0:
+ sign = 0;
+ }
+ break;
+ }
+ }
+ if (sign || f__cplus)
+ ++n;
+ if (n > w) {
+#ifdef WANT_LEAD_0
+ if (buf[0] == '0' && --n == w)
+ ++b;
+ else
+#endif
+ {
+ while(--w >= 0)
+ PUT('*');
+ return 0;
+ }
+ }
+ for(w -= n; --w >= 0; )
+ PUT(' ');
+ if (sign)
+ PUT('-');
+ else if (f__cplus)
+ PUT('+');
+ while(n = *b++)
+ PUT(n);
+ while(--d1 >= 0)
+ PUT('0');
+ return 0;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/wrtfmt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wrtfmt.c
new file mode 100644
index 00000000000..a970db95910
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wrtfmt.c
@@ -0,0 +1,377 @@
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern icilist *f__svic;
+extern char *f__icptr;
+
+ static int
+mv_cur(Void) /* shouldn't use fseek because it insists on calling fflush */
+ /* instead we know too much about stdio */
+{
+ int cursor = f__cursor;
+ f__cursor = 0;
+ if(f__external == 0) {
+ if(cursor < 0) {
+ if(f__hiwater < f__recpos)
+ f__hiwater = f__recpos;
+ f__recpos += cursor;
+ f__icptr += cursor;
+ if(f__recpos < 0)
+ err(f__elist->cierr, 110, "left off");
+ }
+ else if(cursor > 0) {
+ if(f__recpos + cursor >= f__svic->icirlen)
+ err(f__elist->cierr, 110, "recend");
+ if(f__hiwater <= f__recpos)
+ for(; cursor > 0; cursor--)
+ (*f__putn)(' ');
+ else if(f__hiwater <= f__recpos + cursor) {
+ cursor -= f__hiwater - f__recpos;
+ f__icptr += f__hiwater - f__recpos;
+ f__recpos = f__hiwater;
+ for(; cursor > 0; cursor--)
+ (*f__putn)(' ');
+ }
+ else {
+ f__icptr += cursor;
+ f__recpos += cursor;
+ }
+ }
+ return(0);
+ }
+ if (cursor > 0) {
+ if(f__hiwater <= f__recpos)
+ for(;cursor>0;cursor--) (*f__putn)(' ');
+ else if(f__hiwater <= f__recpos + cursor) {
+ cursor -= f__hiwater - f__recpos;
+ f__recpos = f__hiwater;
+ for(; cursor > 0; cursor--)
+ (*f__putn)(' ');
+ }
+ else {
+ f__recpos += cursor;
+ }
+ }
+ else if (cursor < 0)
+ {
+ if(cursor + f__recpos < 0)
+ err(f__elist->cierr,110,"left off");
+ if(f__hiwater < f__recpos)
+ f__hiwater = f__recpos;
+ f__recpos += cursor;
+ }
+ return(0);
+}
+
+ static int
+#ifdef KR_headers
+wrt_Z(n,w,minlen,len) Uint *n; int w, minlen; ftnlen len;
+#else
+wrt_Z(Uint *n, int w, int minlen, ftnlen len)
+#endif
+{
+ register char *s, *se;
+ register int i, w1;
+ static int one = 1;
+ static char hex[] = "0123456789ABCDEF";
+ s = (char *)n;
+ --len;
+ if (*(char *)&one) {
+ /* little endian */
+ se = s;
+ s += len;
+ i = -1;
+ }
+ else {
+ se = s + len;
+ i = 1;
+ }
+ for(;; s += i)
+ if (s == se || *s)
+ break;
+ w1 = (i*(se-s) << 1) + 1;
+ if (*s & 0xf0)
+ w1++;
+ if (w1 > w)
+ for(i = 0; i < w; i++)
+ (*f__putn)('*');
+ else {
+ if ((minlen -= w1) > 0)
+ w1 += minlen;
+ while(--w >= w1)
+ (*f__putn)(' ');
+ while(--minlen >= 0)
+ (*f__putn)('0');
+ if (!(*s & 0xf0)) {
+ (*f__putn)(hex[*s & 0xf]);
+ if (s == se)
+ return 0;
+ s += i;
+ }
+ for(;; s += i) {
+ (*f__putn)(hex[*s >> 4 & 0xf]);
+ (*f__putn)(hex[*s & 0xf]);
+ if (s == se)
+ break;
+ }
+ }
+ return 0;
+ }
+
+ static int
+#ifdef KR_headers
+wrt_I(n,w,len, base) Uint *n; ftnlen len; register int base;
+#else
+wrt_I(Uint *n, int w, ftnlen len, register int base)
+#endif
+{ int ndigit,sign,spare,i;
+ longint x;
+ char *ans;
+ if(len==sizeof(integer)) x=n->il;
+ else if(len == sizeof(char)) x = n->ic;
+#ifdef Allow_TYQUAD
+ else if (len == sizeof(longint)) x = n->ili;
+#endif
+ else x=n->is;
+ ans=f__icvt(x,&ndigit,&sign, base);
+ spare=w-ndigit;
+ if(sign || f__cplus) spare--;
+ if(spare<0)
+ for(i=0;i<w;i++) (*f__putn)('*');
+ else
+ { for(i=0;i<spare;i++) (*f__putn)(' ');
+ if(sign) (*f__putn)('-');
+ else if(f__cplus) (*f__putn)('+');
+ for(i=0;i<ndigit;i++) (*f__putn)(*ans++);
+ }
+ return(0);
+}
+ static int
+#ifdef KR_headers
+wrt_IM(n,w,m,len,base) Uint *n; ftnlen len; int base;
+#else
+wrt_IM(Uint *n, int w, int m, ftnlen len, int base)
+#endif
+{ int ndigit,sign,spare,i,xsign;
+ longint x;
+ char *ans;
+ if(sizeof(integer)==len) x=n->il;
+ else if(len == sizeof(char)) x = n->ic;
+#ifdef Allow_TYQUAD
+ else if (len == sizeof(longint)) x = n->ili;
+#endif
+ else x=n->is;
+ ans=f__icvt(x,&ndigit,&sign, base);
+ if(sign || f__cplus) xsign=1;
+ else xsign=0;
+ if(ndigit+xsign>w || m+xsign>w)
+ { for(i=0;i<w;i++) (*f__putn)('*');
+ return(0);
+ }
+ if(x==0 && m==0)
+ { for(i=0;i<w;i++) (*f__putn)(' ');
+ return(0);
+ }
+ if(ndigit>=m)
+ spare=w-ndigit-xsign;
+ else
+ spare=w-m-xsign;
+ for(i=0;i<spare;i++) (*f__putn)(' ');
+ if(sign) (*f__putn)('-');
+ else if(f__cplus) (*f__putn)('+');
+ for(i=0;i<m-ndigit;i++) (*f__putn)('0');
+ for(i=0;i<ndigit;i++) (*f__putn)(*ans++);
+ return(0);
+}
+ static int
+#ifdef KR_headers
+wrt_AP(s) char *s;
+#else
+wrt_AP(char *s)
+#endif
+{ char quote;
+ int i;
+
+ if(f__cursor && (i = mv_cur()))
+ return i;
+ quote = *s++;
+ for(;*s;s++)
+ { if(*s!=quote) (*f__putn)(*s);
+ else if(*++s==quote) (*f__putn)(*s);
+ else return(1);
+ }
+ return(1);
+}
+ static int
+#ifdef KR_headers
+wrt_H(a,s) char *s;
+#else
+wrt_H(int a, char *s)
+#endif
+{
+ int i;
+
+ if(f__cursor && (i = mv_cur()))
+ return i;
+ while(a--) (*f__putn)(*s++);
+ return(1);
+}
+
+ int
+#ifdef KR_headers
+wrt_L(n,len, sz) Uint *n; ftnlen sz;
+#else
+wrt_L(Uint *n, int len, ftnlen sz)
+#endif
+{ int i;
+ long x;
+ if(sizeof(long)==sz) x=n->il;
+ else if(sz == sizeof(char)) x = n->ic;
+ else x=n->is;
+ for(i=0;i<len-1;i++)
+ (*f__putn)(' ');
+ if(x) (*f__putn)('T');
+ else (*f__putn)('F');
+ return(0);
+}
+ static int
+#ifdef KR_headers
+wrt_A(p,len) char *p; ftnlen len;
+#else
+wrt_A(char *p, ftnlen len)
+#endif
+{
+ while(len-- > 0) (*f__putn)(*p++);
+ return(0);
+}
+ static int
+#ifdef KR_headers
+wrt_AW(p,w,len) char * p; ftnlen len;
+#else
+wrt_AW(char * p, int w, ftnlen len)
+#endif
+{
+ while(w>len)
+ { w--;
+ (*f__putn)(' ');
+ }
+ while(w-- > 0)
+ (*f__putn)(*p++);
+ return(0);
+}
+
+ static int
+#ifdef KR_headers
+wrt_G(p,w,d,e,len) ufloat *p; ftnlen len;
+#else
+wrt_G(ufloat *p, int w, int d, int e, ftnlen len)
+#endif
+{ double up = 1,x;
+ int i=0,oldscale,n,j;
+ x = len==sizeof(real)?p->pf:p->pd;
+ if(x < 0 ) x = -x;
+ if(x<.1) {
+ if (x != 0.)
+ return(wrt_E(p,w,d,e,len));
+ i = 1;
+ goto have_i;
+ }
+ for(;i<=d;i++,up*=10)
+ { if(x>=up) continue;
+ have_i:
+ oldscale = f__scale;
+ f__scale = 0;
+ if(e==0) n=4;
+ else n=e+2;
+ i=wrt_F(p,w-n,d-i,len);
+ for(j=0;j<n;j++) (*f__putn)(' ');
+ f__scale=oldscale;
+ return(i);
+ }
+ return(wrt_E(p,w,d,e,len));
+}
+
+ int
+#ifdef KR_headers
+w_ed(p,ptr,len) struct syl *p; char *ptr; ftnlen len;
+#else
+w_ed(struct syl *p, char *ptr, ftnlen len)
+#endif
+{
+ int i;
+
+ if(f__cursor && (i = mv_cur()))
+ return i;
+ switch(p->op)
+ {
+ default:
+ fprintf(stderr,"w_ed, unexpected code: %d\n", p->op);
+ sig_die(f__fmtbuf, 1);
+ case I: return(wrt_I((Uint *)ptr,p->p1,len, 10));
+ case IM:
+ return(wrt_IM((Uint *)ptr,p->p1,p->p2.i[0],len,10));
+
+ /* O and OM don't work right for character, double, complex, */
+ /* or doublecomplex, and they differ from Fortran 90 in */
+ /* showing a minus sign for negative values. */
+
+ case O: return(wrt_I((Uint *)ptr, p->p1, len, 8));
+ case OM:
+ return(wrt_IM((Uint *)ptr,p->p1,p->p2.i[0],len,8));
+ case L: return(wrt_L((Uint *)ptr,p->p1, len));
+ case A: return(wrt_A(ptr,len));
+ case AW:
+ return(wrt_AW(ptr,p->p1,len));
+ case D:
+ case E:
+ case EE:
+ return(wrt_E((ufloat *)ptr,p->p1,p->p2.i[0],p->p2.i[1],len));
+ case G:
+ case GE:
+ return(wrt_G((ufloat *)ptr,p->p1,p->p2.i[0],p->p2.i[1],len));
+ case F: return(wrt_F((ufloat *)ptr,p->p1,p->p2.i[0],len));
+
+ /* Z and ZM assume 8-bit bytes. */
+
+ case Z: return(wrt_Z((Uint *)ptr,p->p1,0,len));
+ case ZM:
+ return(wrt_Z((Uint *)ptr,p->p1,p->p2.i[0],len));
+ }
+}
+
+ int
+#ifdef KR_headers
+w_ned(p) struct syl *p;
+#else
+w_ned(struct syl *p)
+#endif
+{
+ switch(p->op)
+ {
+ default: fprintf(stderr,"w_ned, unexpected code: %d\n", p->op);
+ sig_die(f__fmtbuf, 1);
+ case SLASH:
+ return((*f__donewrec)());
+ case T: f__cursor = p->p1-f__recpos - 1;
+ return(1);
+ case TL: f__cursor -= p->p1;
+ if(f__cursor < -f__recpos) /* TL1000, 1X */
+ f__cursor = -f__recpos;
+ return(1);
+ case TR:
+ case X:
+ f__cursor += p->p1;
+ return(1);
+ case APOS:
+ return(wrt_AP(p->p2.s));
+ case H:
+ return(wrt_H(p->p1,p->p2.s));
+ }
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsfe.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsfe.c
new file mode 100644
index 00000000000..8709f3b3479
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsfe.c
@@ -0,0 +1,78 @@
+/*write sequential formatted external*/
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ int
+x_wSL(Void)
+{
+ int n = f__putbuf('\n');
+ f__hiwater = f__recpos = f__cursor = 0;
+ return(n == 0);
+}
+
+ static int
+xw_end(Void)
+{
+ int n;
+
+ if(f__nonl) {
+ f__putbuf(n = 0);
+ fflush(f__cf);
+ }
+ else
+ n = f__putbuf('\n');
+ f__hiwater = f__recpos = f__cursor = 0;
+ return n;
+}
+
+ static int
+xw_rev(Void)
+{
+ int n = 0;
+ if(f__workdone) {
+ n = f__putbuf('\n');
+ f__workdone = 0;
+ }
+ f__hiwater = f__recpos = f__cursor = 0;
+ return n;
+}
+
+#ifdef KR_headers
+integer s_wsfe(a) cilist *a; /*start*/
+#else
+integer s_wsfe(cilist *a) /*start*/
+#endif
+{ int n;
+ if(!f__init) f_init();
+ f__reading=0;
+ f__sequential=1;
+ f__formatted=1;
+ f__external=1;
+ if(n=c_sfe(a)) return(n);
+ f__elist=a;
+ f__hiwater = f__cursor=f__recpos=0;
+ f__nonl = 0;
+ f__scale=0;
+ f__fmtbuf=a->cifmt;
+ f__cf=f__curunit->ufd;
+ if(pars_f(f__fmtbuf)<0) err(a->cierr,100,"startio");
+ f__putn= x_putc;
+ f__doed= w_ed;
+ f__doned= w_ned;
+ f__doend=xw_end;
+ f__dorevert=xw_rev;
+ f__donewrec=x_wSL;
+ fmt_bg();
+ f__cplus=0;
+ f__cblank=f__curunit->ublnk;
+ if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit))
+ err(a->cierr,errno,"write start");
+ return(0);
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsle.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsle.c
new file mode 100644
index 00000000000..3e602702c0c
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsle.c
@@ -0,0 +1,42 @@
+#include "f2c.h"
+#include "fio.h"
+#include "fmt.h"
+#include "lio.h"
+#include "string.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+integer s_wsle(a) cilist *a;
+#else
+integer s_wsle(cilist *a)
+#endif
+{
+ int n;
+ if(n=c_le(a)) return(n);
+ f__reading=0;
+ f__external=1;
+ f__formatted=1;
+ f__putn = x_putc;
+ f__lioproc = l_write;
+ L_len = LINE;
+ f__donewrec = x_wSL;
+ if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit))
+ err(a->cierr, errno, "list output start");
+ return(0);
+ }
+
+integer e_wsle(Void)
+{
+ int n = f__putbuf('\n');
+ f__recpos=0;
+#ifdef ALWAYS_FLUSH
+ if (!n && fflush(f__cf))
+ err(f__elist->cierr, errno, "write end");
+#endif
+ return(n);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsne.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsne.c
new file mode 100644
index 00000000000..e204a51a4f1
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/wsne.c
@@ -0,0 +1,32 @@
+#include "f2c.h"
+#include "fio.h"
+#include "lio.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ integer
+#ifdef KR_headers
+s_wsne(a) cilist *a;
+#else
+s_wsne(cilist *a)
+#endif
+{
+ int n;
+
+ if(n=c_le(a))
+ return(n);
+ f__reading=0;
+ f__external=1;
+ f__formatted=1;
+ f__putn = x_putc;
+ L_len = LINE;
+ f__donewrec = x_wSL;
+ if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit))
+ err(a->cierr, errno, "namelist output start");
+ x_wsne(a);
+ return e_wsle();
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/xwsne.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/xwsne.c
new file mode 100644
index 00000000000..f810d3edbfe
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/xwsne.c
@@ -0,0 +1,77 @@
+#include "f2c.h"
+#include "fio.h"
+#include "lio.h"
+#include "fmt.h"
+
+extern int f__Aquote;
+
+ static VOID
+nl_donewrec(Void)
+{
+ (*f__donewrec)();
+ PUT(' ');
+ }
+
+#ifdef KR_headers
+x_wsne(a) cilist *a;
+#else
+#include "string.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ VOID
+x_wsne(cilist *a)
+#endif
+{
+ Namelist *nl;
+ char *s;
+ Vardesc *v, **vd, **vde;
+ ftnint number, type;
+ ftnlen *dims;
+ ftnlen size;
+ extern ftnlen f__typesize[];
+
+ nl = (Namelist *)a->cifmt;
+ PUT('&');
+ for(s = nl->name; *s; s++)
+ PUT(*s);
+ PUT(' ');
+ f__Aquote = 1;
+ vd = nl->vars;
+ vde = vd + nl->nvars;
+ while(vd < vde) {
+ v = *vd++;
+ s = v->name;
+#ifdef No_Extra_Namelist_Newlines
+ if (f__recpos+strlen(s)+2 >= L_len)
+#endif
+ nl_donewrec();
+ while(*s)
+ PUT(*s++);
+ PUT(' ');
+ PUT('=');
+ number = (dims = v->dims) ? dims[1] : 1;
+ type = v->type;
+ if (type < 0) {
+ size = -type;
+ type = TYCHAR;
+ }
+ else
+ size = f__typesize[type];
+ l_write(&number, v->addr, size, type);
+ if (vd < vde) {
+ if (f__recpos+2 >= L_len)
+ nl_donewrec();
+ PUT(',');
+ PUT(' ');
+ }
+ else if (f__recpos+1 >= L_len)
+ nl_donewrec();
+ }
+ f__Aquote = 0;
+ PUT('/');
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_abs.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_abs.c
new file mode 100644
index 00000000000..4d8a015d384
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_abs.c
@@ -0,0 +1,18 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+double f__cabs();
+double z_abs(z) doublecomplex *z;
+#else
+double f__cabs(double, double);
+double z_abs(doublecomplex *z)
+#endif
+{
+return( f__cabs( z->r, z->i ) );
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_cos.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_cos.c
new file mode 100644
index 00000000000..4abe8bf8820
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_cos.c
@@ -0,0 +1,21 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sin(), cos(), sinh(), cosh();
+VOID z_cos(r, z) doublecomplex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+void z_cos(doublecomplex *r, doublecomplex *z)
+#endif
+{
+ double zi = z->i, zr = z->r;
+ r->r = cos(zr) * cosh(zi);
+ r->i = - sin(zr) * sinh(zi);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_div.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_div.c
new file mode 100644
index 00000000000..b61f03b8efc
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_div.c
@@ -0,0 +1,50 @@
+#include "f2c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef KR_headers
+extern VOID sig_die();
+VOID z_div(c, a, b) doublecomplex *a, *b, *c;
+#else
+extern void sig_die(char*, int);
+void z_div(doublecomplex *c, doublecomplex *a, doublecomplex *b)
+#endif
+{
+ double ratio, den;
+ double abr, abi, cr;
+
+ if( (abr = b->r) < 0.)
+ abr = - abr;
+ if( (abi = b->i) < 0.)
+ abi = - abi;
+ if( abr <= abi )
+ {
+ if(abi == 0) {
+#ifdef IEEE_COMPLEX_DIVIDE
+ if (a->i != 0 || a->r != 0)
+ abi = 1.;
+ c->i = c->r = abi / abr;
+ return;
+#else
+ sig_die("complex division by zero", 1);
+#endif
+ }
+ ratio = b->r / b->i ;
+ den = b->i * (1 + ratio*ratio);
+ cr = (a->r*ratio + a->i) / den;
+ c->i = (a->i*ratio - a->r) / den;
+ }
+
+ else
+ {
+ ratio = b->i / b->r ;
+ den = b->r * (1 + ratio*ratio);
+ cr = (a->r + a->i*ratio) / den;
+ c->i = (a->i - a->r*ratio) / den;
+ }
+ c->r = cr;
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_exp.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_exp.c
new file mode 100644
index 00000000000..7b8edfece03
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_exp.c
@@ -0,0 +1,23 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double exp(), cos(), sin();
+VOID z_exp(r, z) doublecomplex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+void z_exp(doublecomplex *r, doublecomplex *z)
+#endif
+{
+ double expx, zi = z->i;
+
+ expx = exp(z->r);
+ r->r = expx * cos(zi);
+ r->i = expx * sin(zi);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_log.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_log.c
new file mode 100644
index 00000000000..4f11bbe0c78
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_log.c
@@ -0,0 +1,121 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double log(), f__cabs(), atan2();
+#define ANSI(x) ()
+#else
+#define ANSI(x) x
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern double f__cabs(double, double);
+#endif
+
+#ifndef NO_DOUBLE_EXTENDED
+#ifndef GCC_COMPARE_BUG_FIXED
+#ifndef Pre20000310
+#ifdef Comment
+Some versions of gcc, such as 2.95.3 and 3.0.4, are buggy under -O2 or -O3:
+on IA32 (Intel 80x87) systems, they may do comparisons on values computed
+in extended-precision registers. This can lead to the test "s > s0" that
+was used below being carried out incorrectly. The fix below cannot be
+spoiled by overzealous optimization, since the compiler cannot know
+whether gcc_bug_bypass_diff_F2C will be nonzero. (We expect it always
+to be zero. The weird name is unlikely to collide with anything.)
+
+An example (provided by Ulrich Jakobus) where the bug fix matters is
+
+ double complex a, b
+ a = (.1099557428756427618354862829619, .9857360542953131909982289471372)
+ b = log(a)
+
+An alternative to the fix below would be to use 53-bit rounding precision,
+but the means of specifying this 80x87 feature are highly unportable.
+#endif /*Comment*/
+#define BYPASS_GCC_COMPARE_BUG
+double (*gcc_bug_bypass_diff_F2C) ANSI((double*,double*));
+ static double
+#ifdef KR_headers
+diff1(a,b) double *a, *b;
+#else
+diff1(double *a, double *b)
+#endif
+{ return *a - *b; }
+#endif /*Pre20000310*/
+#endif /*GCC_COMPARE_BUG_FIXED*/
+#endif /*NO_DOUBLE_EXTENDED*/
+
+#ifdef KR_headers
+VOID z_log(r, z) doublecomplex *r, *z;
+#else
+void z_log(doublecomplex *r, doublecomplex *z)
+#endif
+{
+ double s, s0, t, t2, u, v;
+ double zi = z->i, zr = z->r;
+#ifdef BYPASS_GCC_COMPARE_BUG
+ double (*diff) ANSI((double*,double*));
+#endif
+
+ r->i = atan2(zi, zr);
+#ifdef Pre20000310
+ r->r = log( f__cabs( zr, zi ) );
+#else
+ if (zi < 0)
+ zi = -zi;
+ if (zr < 0)
+ zr = -zr;
+ if (zr < zi) {
+ t = zi;
+ zi = zr;
+ zr = t;
+ }
+ t = zi/zr;
+ s = zr * sqrt(1 + t*t);
+ /* now s = f__cabs(zi,zr), and zr = |zr| >= |zi| = zi */
+ if ((t = s - 1) < 0)
+ t = -t;
+ if (t > .01)
+ r->r = log(s);
+ else {
+
+#ifdef Comment
+
+ log(1+x) = x - x^2/2 + x^3/3 - x^4/4 + - ...
+
+ = x(1 - x/2 + x^2/3 -+...)
+
+ [sqrt(y^2 + z^2) - 1] * [sqrt(y^2 + z^2) + 1] = y^2 + z^2 - 1, so
+
+ sqrt(y^2 + z^2) - 1 = (y^2 + z^2 - 1) / [sqrt(y^2 + z^2) + 1]
+
+#endif /*Comment*/
+
+#ifdef BYPASS_GCC_COMPARE_BUG
+ if (!(diff = gcc_bug_bypass_diff_F2C))
+ diff = diff1;
+#endif
+ t = ((zr*zr - 1.) + zi*zi) / (s + 1);
+ t2 = t*t;
+ s = 1. - 0.5*t;
+ u = v = 1;
+ do {
+ s0 = s;
+ u *= t2;
+ v += 2;
+ s += u/v - t*u/(v+1);
+ }
+#ifdef BYPASS_GCC_COMPARE_BUG
+ while(s - s0 > 1e-18 || (*diff)(&s,&s0) > 0.);
+#else
+ while(s > s0);
+#endif
+ r->r = s*t;
+ }
+#endif
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sin.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sin.c
new file mode 100644
index 00000000000..01225a9448d
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sin.c
@@ -0,0 +1,21 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sin(), cos(), sinh(), cosh();
+VOID z_sin(r, z) doublecomplex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+void z_sin(doublecomplex *r, doublecomplex *z)
+#endif
+{
+ double zi = z->i, zr = z->r;
+ r->r = sin(zr) * cosh(zi);
+ r->i = cos(zr) * sinh(zi);
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sqrt.c b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sqrt.c
new file mode 100644
index 00000000000..35bd44c8e08
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/libf2c/z_sqrt.c
@@ -0,0 +1,35 @@
+#include "f2c.h"
+
+#ifdef KR_headers
+double sqrt(), f__cabs();
+VOID z_sqrt(r, z) doublecomplex *r, *z;
+#else
+#undef abs
+#include "math.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern double f__cabs(double, double);
+void z_sqrt(doublecomplex *r, doublecomplex *z)
+#endif
+{
+ double mag, zi = z->i, zr = z->r;
+
+ if( (mag = f__cabs(zr, zi)) == 0.)
+ r->r = r->i = 0.;
+ else if(zr > 0)
+ {
+ r->r = sqrt(0.5 * (mag + zr) );
+ r->i = zi / r->r / 2;
+ }
+ else
+ {
+ r->i = sqrt(0.5 * (mag - zr) );
+ if(zi < 0)
+ r->i = - r->i;
+ r->r = zi / r->i / 2;
+ }
+ }
+#ifdef __cplusplus
+}
+#endif
diff --git a/Build/source/utils/pmx/pmx-2.6.18/pmx.test b/Build/source/utils/pmx/pmx-2.6.18/pmx.test
new file mode 100755
index 00000000000..e2c9915fdb7
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/pmx.test
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+# Copyright (C) 2012 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+rm -f barsant* pmxaerr.dat
+
+cp $srcdir/tests/barsant.pmx .
+
+failed=
+
+./scor2prt barsant \
+ && diff barsant1.pmx $srcdir/tests/barsant1.pmx \
+ && diff barsant2.pmx $srcdir/tests/barsant2.pmx \
+ || failed="$failed scor2prt"
+
+./pmxab barsant \
+ && diff barsant.mid $srcdir/tests/barsant.mid \
+ && diff barsant.pml $srcdir/tests/barsant.pml \
+ && diff barsant.tex $srcdir/tests/barsant.tex \
+ || failed="$failed pmxab"
+
+test -z "$failed" && exit 0
+echo "failed tests:$failed"
+exit 1
diff --git a/Build/source/utils/pmx/pmx-2.6.18/pmx2617.f b/Build/source/utils/pmx/pmx-2.6.18/pmx2617.f
new file mode 100644
index 00000000000..09b5ec6e0dc
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/pmx2617.f
@@ -0,0 +1,23597 @@
+ program pmxab
+c
+c This program, PMX, developed by Don Simons
+c (dsimons@roadrunner.com), is a preprocessor for MusiXTeX. In concert with
+c MusiXTeX and TeX, its purpose is to allow the user to create high-quality
+c typeset musical scores by including a sequence of PMX commands in an ASCII
+c input file.
+c
+c This program is free software: you can redistribute it and/or modify
+c it under the terms of the GNU General Public License as published by
+c the Free Software Foundation, either version 3 of the License, or
+c (at your option) any later version.
+c
+c This program is distributed in the hope that it will be useful,
+c but WITHOUT ANY WARRANTY; without even the implied warranty of
+c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+c GNU General Public License for more details.
+c
+c You should have received a copy of the GNU General Public License
+c along with this program. If not, see <http://www.gnu.org/licenses/>.
+c
+c
+ character*9 date
+ character*5 version,versionc
+ common /comver/ versionc
+c
+c To compile with gfortran:
+c 1. Merge all files using copy *.for epmx[nnnn].for
+c 2. Search and replace all character*65536 with character*131072
+c 3. Comment/uncomment getarg lines
+c 4. gfortran -O pmx[nnnn].for -o pmxab.exe
+c
+c To do
+c Correct Rainer's email address in manual
+c Linesplit (\\) in h
+c Tt at start of a movement.
+c Toggle midi on or off; allow midi only.
+c Page number printed on 1st page even if 1 system.
+c Still need inserted space for chordal accidentals
+c Voicewise transposition.
+c better segno
+c coda
+c duevolte
+c Fix xtup bracket direction in 2-line staves?? (maybe leave as is)
+c Sticky ornaments with shifts.
+c Deal with Werner's vertical spacing thing associated with title.
+c Multiple ties in midi
+c Werner's missing c in MIDI due to start/stop ties on same note.
+c Beams with single 64ths
+c 128ths and/or dotted 64ths
+c Close out MIDI with integral # of beats?
+c Increase ast dimensions or redo logic.
+c Does slur direction get set for user-defined single-note stem dir'ns?
+c Transpose by sections.
+c Optimization loop over sections only
+c Command-line option to read nbarss in. Write out nbarss when optimizing.
+c (or just read from .plg?)
+c Beams over bar lines.
+c 2-digit figures
+c A real coule (slanted line between notes in a chord)
+c Dotted slurs for grace notes.
+c Undotted chord notes with dotted main note.
+c Forced line break without line number
+c Fix dot moving when 2nds in chord get flipped
+c To do: increase length on notexq in dodyn
+c 2.617
+c In g1etnote, change if-check for note to use index(...) instead
+c of ichar(charq) since it was messing up gfortran optimizer
+c After pmxa, search for and remove penultimate line <blank><blank>/
+c because it was screwing up linux-compiled versions
+c Bugfix: Increase dimension of kicrd from 7 to 10 in crdaccs(...)
+c 2.616 (111110)
+c Allow hairpins to span multiple notes groups (gulps).
+c 2.615+ (110810)
+c Fix midi when some instruments are transposed, by subtracting
+c iTransAmt(instno(iv)) from pitch values sent to via addmidi in
+c make2bar.for (for main notes) and docrd (for chord notes)
+c 2.615 (110725)
+c Fig bug with size-setting (in topfile) when instrument has >1 staves
+c 2.615 (110724)
+c Make AS[0|-|s|t]... really set sizes
+c 2.614
+c Mod notex.for to fix Terry's bug with raised dotted rests (caused
+c by double-hboxing).
+c 2.613
+c Bugfix: In pmxa, change "do while" limit to keep from overwriting instno.
+c 2.612
+c Enhance AS to allow s or t for smallsize or tinysize
+c 2.611
+c Error trap for "D" before any notes in a block.
+c 2.610
+c Instrument-wise key changes and transposition (incomplete)
+c 2.603
+c 101211 In getpmxmod.for, decreased nline by 2 to fix locating errors
+c following reading in an include file.
+c 101121 Added some error messages in g1etset.for setup data
+c 2.602
+c Correct slur indexing in linebreakslurs.
+c Account for comment lines in line count for error messages
+c 2.601
+c Bug fix: allow 24 slurs with graces
+c 2.60 Changes made make it really big
+c increase mv (size of midi) ? Note: MIDI can't have >16 voices w/o
+c major reprogramming, and 16 may also be a problem (icmm)
+c nm=24 (voices) done
+c 24 slurs done
+c 24 simultaneous beams (Replace index 24 by 0, so get 0-23)
+c bufq*131072 (gfortran only)
+c getarg syntax (gfortran only)
+c 2.523+
+c Fix voice numbering for normal dynamics and text dynamics
+c 2.523
+c Version of bigpmx first posted to Hiroaki's web site.
+c 2.522
+c 5/26/10 Replace ipl bits 0-7 with ipl2, add new common for it.
+c With 2.521+ as starting version, incorporate bigpmx mods to allow 24 voices.
+c 5/13/10 Fix log2 function
+c 5/15/10 Fix bitwise storage for dynamics, fix segnoo string length.
+c 2.521+
+c 091025 Enable dotting 2nd part of linebreak slur or tie.
+c To adjust barno height due to linebreak slur, use \bnrs instead of
+c explicitly redefining \raisebarno (pmxb)
+c 2.521
+c Bugfix
+c 2.520
+c 090519 Enable ligfonts (special figured bass characters)
+c 2.519
+c Fix another bug which kept \sk from being output so misaligned some notes.
+c 2.518
+c Fix bugs: referencing fig data, char declaration for member of
+c common/comfig/
+c 2.517
+c Allow figures in voice 1 + any one other.
+c 2.516
+c Allow figures in voice #2
+c 2.515+ to do: Change manual and activate rule against clef change in voice #2.
+c 2.515
+c 071222 Changes in getnote to allow auto forced beams to start anywhere.
+c 071206 In make2bar, shift fermataup7 to left over centered pause.
+c 070901 In doslur, check for nolev <=2 in case slur ends on rest in 2-line
+c staff (it was screwing up vertical justification).
+c n34 for tweaks to midi durations of quarter note septuplets.
+c To do: In ref250.tex, the tables where 's,t,)' is explained, the line
+c [+,- i] ... Vertical adjustment of the start of second segment
+c should it be replaced by
+c [s +,- i] ... Vertical adjustment of the start of second segment
+c 2.514
+c Changes in make2bar to get horizontal spacing right when normal grace
+c follows after grace
+c Changes in dograce to get octaves right for any material entered inside
+c \gaft, which shields transpose register changes from the outside world.
+c 2.513
+c In make1bar, near end, for forced beams starting with a rest, copy hgt and
+c slope tweaks to ALL notes after first, not just the second one, so if
+c there's more than one rest at start the tweaks are still observed.
+c In beamid and beamend, add stand-alone triply-flagged notes for xtups.
+c 2.512
+c Near end of pmxb, fix error trap to allow redundant 'RD'
+c Enable multiplicity down-up '][' within xtup.
+c 2.511
+c Introduce eskz2 for xtup #'s and bracket lengths, to remove bug caused by
+c adjusteskz as in bar 7 of barsant.
+c 2.510a
+c Test: remove restriction on tempo changes in MIDI macros
+c Send to CM for beta testing.
+c 2.509+
+c To do: Correct manual on AS. "-" is for smaller staves.
+c 2.510
+c Forgot to declare litq, voltxtq as character in subroutine getgrace
+c 2.509
+c Corrected small bug in arpeggio shifting (ivx <= iv in call putarp)
+c 2.508
+c Allow graces in xtups. New subroutine getgrace.
+c 2.507
+c To do: Raise/lower figures.
+c To do: Add 24, 29 to list of musicsizes in manual
+c New sub adjusteskz to account for ask's when computing lengths of
+c brackets for unbeamed xtups, slopes and horizontal posn's of number
+c Bug fix: in beamn1, beamid, and beamend, allow unbeamed xtups w/ 2 flags
+c Add look-left option for keyboard rests, "L" in rest command, set iornq(30)
+c 2.506
+c Fix bug with AK, when simultaneous rests have same duration, use defaults.
+c 2.505
+c Keyboard rests AK
+c 2.504
+c Space after normal grace: option X[n]
+c Fixed og when nv .ne. noinst, by using sepsymq instead of '&'
+c (To do) length of xtup bracket when there is added non-collision space.
+c Trap musicsize if .ne. 16,20,24,29.
+c 2.503
+c Enable arpeggio left shift with ?-x
+c To do: In manual, arpeggio over 2 staves.
+c Allow musicsize of 24 and 29. Had to define meter font size explicitly,
+c also change font size for text dynamics, but not much else so far.
+c Bugfix in beamstrt, introduced in 2415, ip was changed before putxtn
+c was called, causing error in printing replacement number.
+c 2.502
+c Incorporate Dirk Laurie's patch to use { , } , for ties.
+c Figure height adjustment: append +[n]
+c Change ec font stuff in pmx.tex per Olivier Vogel's comment (CM email?)
+c 2.501
+c Readjust horizontal offset back to .8 in LineBreakTies
+c Fix zero-subscript (iudorn) in putorn
+c 2.50
+c Increase number of text-dynamics (dimension of txtdynq) per block
+c from 12 to 41.
+c Slur option n to override altered default curvature.
+c Allow default ps slur curvature tweaks with Ap+/-c
+c 2.416
+c Increase length of textdynq from 24 to 128
+c (Todo) Add comment in manual about blank lines at end.
+c Configuration file: Define subroutine getpmxmod, check path in environment
+c variable pmxmoddir, check existence, read lines into bufq after setup.
+c Increase dimension on idynn in dodyn from 4 to 10 for max number
+c of marks in a bar
+c Increase allowable # of lines from 2000 to 4000.
+c (To do) Replace definition of \liftpausc per Olivier.
+c (To do) Fix extraneous error message if RD is placed at very end.
+c 2.415
+c Fix "AT" option: replace putxtn,topfile,beamstrt,beamid to use \xnumt
+c instead of redefining \xnum. Change font used to \smallfont (as for
+c normal xtups,
+c Allow slur to start on rest.
+c 2.414
+c Correct bug in crdacc when adding accidental to boundary causes number of
+c segments to decrease
+c Special rule for 3-accidental chords: If no 2nds, place them in order
+c top, bottom, middle.
+c 2.413
+c Correct bugs in chordal accidentals, related to left-shifted noteheads
+c (a) Special problems with downstem when main note needs shifting
+c (b) Assign 0 rank to boundary segs due to left-shifted noteheads
+c 2.412
+c Change default horiz shift of start of seg 2 of linebreak slurs:
+c -.7 for slurs, -1.2 for ties,
+c Use height of start of seg 1 slur itself for end of 1 and start of 2.
+c 2.411
+c "Apl" activates special treatment of linebreak slur/tie's; breaks all in 2.
+c "s" option in start of slur/tie as precursor to vert/horiz tweaks for end
+c of seg 1. of linebreak slur/tie, 2nd "s" for start of seg2.
+c With "Apl", curvature adjustments on starting slur command apply to seg 1,
+c those on ending command to seg 2.
+c 2.410
+c "AT" to allow Col. S.'s tuplet option. Simply input tuplet.tex and redefine
+c \xnum, \unbkt, \ovbkt.
+c "s" option in main xtup input after "x": slope tweak for bracket. mult(4) is
+c flag, mult(5-9) is tweak value+16
+c 2.409
+c Bugfix in docrd for MIDI: Use original pitch in case main/chord were
+c switched due to 2nds.
+c Remove "o" from error message for "A" command.
+c New syntax: optional instrument number separator ":" in movement
+c break command to precede a 2-digit instrument.
+c Conditional output formats for \setname at movement break to allow
+c instrument numbers >9.
+c Bugfix in coding to raise barno due to slur over line break (pmxb)
+c Move date/version data statement in pmxab to a better place.
+c 2.408
+c Allow pnotes{x} when x>9.995 (mod is only to format stmt in make2bar).
+c Bug fix in \liftPAusep in notex.for and in pmx.tex
+c Character variables for version and date
+c For up-stem single graces slurred to down-stem, shift slur start left by
+c 0.8 so slur doesn't get too short.
+c Initialize and slide mult, same as other full-program variables in /all/.
+c 2.407
+c Allow AN[n]"[partname]" to be parsed by scor2prt as filename for part n,
+c 2.406
+c Alter PMX: put \dnstrut into \znotes in \starteq (for system spacing
+c equalization).
+c Put dimensions of double sharps and flats in crdacc (for chords).
+c Bugfix: Use sepsymq in LineBreakTies(..) instead of '&'
+c Use only first 4 bits of mult for multiplicity+8, so rest can be used
+c for other stuff.
+c Move stemlength stuff in nacc(27-30) to mult(27-30) to remove conflict.
+c 2.405: Not published but saved for safety.
+c Option Aph to write \special{header=psslurs.pro} top of each page, so
+c dviselec will work OK.
+c 2.404
+c Allow slur to end on rest, but not start on a rest. Efaults height
+c of ending is default height of start (before any automatic or user-
+c defined djustments). User may adjust height as normal from default.
+c 2.403
+c Bugfix: turn off repeated beaming patterns.at end of non-last voice.
+c 2.402
+c Automatic repeated forced beams. Start with "[:" End with next explicit
+c forced beam or end of input block.
+c Increase # of forced beams per line of music per input block from 20 to 40
+c 2.401
+c Optional K-Postscript Linebreak Ties, Apl. New subroutine LineBreakTies.
+c Makes 1st part normal shape, and starts 2nd part a little further left.
+c Enable arpeggios in xtuplets. Had to make time itar(narp) a real.
+c 2.40
+c Set up WrotePsslurDefaults (logical) so only write defaults on 1st Ap.
+c Fix non-ps-slur input to \midslur (third signed integer). Do not reverse
+c sign for down-slurs.
+c 2.359
+c Add error exit subroutine stop1 to make exit status g77-compatible..
+c Absolute octave on xtup chord note was 2 octave too high, fixed in getnote
+c Fermata on vertically shifted rest: special trap in putorn() to set height.
+c Correct multiple grace note spacing for small staves (in dograce,
+c define wheadpt1 depending on staff size)
+c 2.358
+c Allow curvature corrections at start of postscript slur, in dopsslur()
+c Local slur options p[+|-][s|t] for [nos|s]luradjust,[not|t]ieadjust
+c Options for [Nos|S]luradjust,[Not|T]ieadjust,[noh|h]alfties: Ap[+|-][s|t|h]
+c Make t[ID] act like s[ID]t, most mods in spsslur().
+c Add spsslur() to read in data for ps slurs, call from getnote.
+c In beamstrt, save args for SetupB in common comipb to save them for
+c 2nd call when xtup starts with rest
+c Add spacing for ornament ")" as if it were accidental, in make2bar().
+c Horiz shift start and end of ps ties, dep. on stem dir'n, in dopsslur()
+c Horiz. shift start of ps grace slur, 2 places in dograce().
+c Horiz shift end of grace slur in endslur()
+c Make st slurs into postscript ties. Separate subroutine dopsslur(),
+c Non-beamed xtup: "a" in 1st note or rest, before "x" (sets drawbm=.false.)
+c Allow two D"x" on same note. Introduced jtxtdyn1 in dodyn.
+c 2.357a
+c Fix missing "end" in backfill.com, too-long lines in g1etnote, getnote
+c 2.357
+c Increase dimension for # of lit TeX strings from 52 to 83.
+c Allow blank rest in middle of xtuplet. Only mods in g*etnote().
+c 2.356
+c Increased some dimensions from 30 to 40 to allow up to 40 pages.
+c In unbeamed xtups, "n" did not suppress bracket. Fixed in beamstrt().
+c Fix parsing of "f,h,H,HH" in sslur.
+c Fix bug with cdot, note-level for slur termination (in getnote)
+c 2.355
+c Midi transposition: IT[+|-][n1][+|-][n2]...[+|-][n(noinst)],
+c n=# of half-steps. Restrict to mult. of 12 now, to avoid key-sig issues
+c Make midi recognize ps ties in doslur.
+c Correct ttieforsl so that it eats 2nd argument properly, using \zcharnote
+c to get octave right.
+c 2.354
+c With postscript slurs, make t-slurs real ties by inserting replacement
+c macros \tieforisu, etc, defined in pmx.tex
+c Check for open cresc or decresc at end of input block, using list[de]cresc
+c Hairpin syntax conditional on postscript slurs. Backup to fill in start
+c level, using new backfill(...). Separate height tweaks for
+c start and finish.
+c 2.353
+c K-0+n to transpose by half step (rather than just change key)
+c Allow "rm[n]" when nv>1. Require it in all parts. Just write a stack of
+c \mbrest's
+c Enable "Rz"; define \setzalaligne in pmx.tex. Special treatment at end
+c of input block before movement break, and at start of block after
+c movement break, using \newmovement rather than \setzalaligne, since
+c former already redefines \stoppiece. In second case, set rptfg2='z'.
+c Make clefq(nm) common between pmxb and getnote; change references in
+c getnote at 'M' to array elements, setting all new clefs as you go.
+c 2.352
+c Remove \parskip redefinition from pmx.tex; write it into TeX file when
+c "Ae" is invoked.
+c Ap to activate postscript slurs. Add macro \psforts to pmx.tex to redefine
+c \tslur in case \midslur was used. Allow slur inputs 'f','h','H','HH',
+c translate them thru mapping to (1,4,5,6) as \midslur params, then let
+c \psforts translate them back to ps slur macors.
+c 2.351
+c Number slurs from 0 up instead of 11 down, anticipating postscript slurs.
+c Write "\eightrm" instead of "\cmr8" for \figfont with small baseline size.
+c Increase length of basenameq to 44 characters everywhere.
+c Increase dimension of mcpitch (midi-chord-pitch) to 20.
+c Set default systems per page to 1 if nv>7
+c In pmxb, move place where isystpg is reset to 0, so that \eject gets
+c written when there is just one system per page.
+c 2.35
+c Cautionary accidentals with 'c' anywhere in note symbol.
+c NEW pmx.tex with \resetsize to set size to normal or small depending on
+c current \internote. Used with new coding in dograce() to get right
+c new size in case user has \setsize'ed some lines to \smallvalue. For
+c \smallvalue-sized staves, redefine \tinynotesize to give 11-pt font.
+c Affects pmx.tex.
+c Continuation figure with fractional length. May now mix with other figures.
+c If another figure follow Cont-fig, separate with colon.
+c 2.342
+c Bugfix in getnote to recognize relative octave shift in grace at start of
+c input block.
+c In make2bar, initialize islhgt=0 earlier than before (possible solution
+c to Suse g77 compile problem that I could not reproduce)..
+c Bugfix in beamstrt & beamn1 for r2x6 c4D d d d
+c 2.341
+c Syntax check: Forced page break page number must be > than previous.
+c Bugfix: Define ivx when "sliding down" breath/caesure data in pmxb.
+c 2.34
+c New pmx.tex with redefined liftpausc
+c Bug fix with dotted, non-beamed xtups.
+c 2.332
+c Fix bugs in horizonal shifts, spacing, for accid's, graces, noteheads.
+c Allow arbitrary pos. input to W in g1etnote and getnote.
+c 2.331
+c Bug-fix in dodyn(..): typo on length of arg of txtdyn
+c 2.33
+c Caesura (oc), breath (ob). Set iornq(28), store rest of data in ibcdata()
+c 2.321
+c Rescale accidental shifts. Still use 7 bits but now map (0,127)
+c onto (-1.,5.35)
+c Fix ihornb bug in dodyn, seen with dynamics on lower-voice non-beamed xtups
+c 2.32 (Noticed after posting)
+c Prohibit "/" as figure.
+c 2.32 (Posted)
+c Tidied up accidentals in chords, do spacing.
+c Still to do:
+c check for "(" on chord notes in spacing algo
+c small accids
+c double accids
+c autoshift slurs
+c 2.310
+c Extra call to precrd ahead of spacing chk, and single-note crd/acc
+c shifts seem OK, but not multiple. crd/acc shifts not recorded 1st time.
+c 2.309
+c Alternate algo for accid shifts in chords.
+c 2.308
+c Auto horiz. notehead shifting added to precrd.
+c 2.307
+c Auto shifting of multiple accidentals in chords.
+c "Ao" in main chord note to keep accidentals in order. Set nacc(28).
+c If there are any manual main or chord note shifts, then
+c If any manual shift is preceded by "A" then
+c 1. Auto-shifting proceeds
+c 2. "A"-shifts add to autoshifts
+c 3. non-"A" shifts are ignored!
+c Else (>0 man shifts, none has "A")
+c No auto-ordering, No autoshifts,
+c End if
+c End if
+c 2.306
+c Initialize legacy note level to middle C in case user forgets to set
+c octave.
+c Shift xtup note?
+c Shift in elemskips rather than noteheads?
+c 2.305
+c Stop pmxb from multiple endvolta's at start of new page.
+c 2.304
+c "Sx" in a note means shorten stemlength by x \internotes. "Sx:" turn on
+c for multiple notes in the voice, "S:" last shortened note.
+c 2.303
+c vshrink stuff all OK? Description is in pmxb.
+c 2.302
+c Toggle vshrink with "Av". vshrink normally kicks in when \interstaff
+c hits 20. This still needs work.
+c Add " /" to last line if last char is not % or /.
+c 2.301
+c Check in beamn1 for single note before multiplicity down-up.
+c allow '.PMX' as well as '.pmx'
+c 2.299
+c Correct typo in pmxb involving PMXbarnotrue.
+c Replacement printed number for xtup: Unsigned integer after 'n' after 'x'
+c Minor upgrade parsing xtuplet options 'x...'
+c Correct dimension of nxtinbm in make2bar.
+c 2.298
+c Account for doubled xtup notes in subroutine getx (user-defined spaces),
+c by adding ndoub as an argument..
+c 2.297
+c Created and solved compiler problem. Put drawbm(NM) in its own common.
+c Add new def'ns [\a|PA]usc, \lift[pa|PA]usc to pmx.tex, use them in make2bar
+c when \centerbar is used.
+c Modify \mbrest & \CenterBar in pmx.tex to use \volta@endcor etc. Have PMX
+c use right 2nd and 3rd args for \mbrest when key, meter, or clef changes.
+c 2.296
+c Correct printed numbers for forced beams with multiple xtups. For each beam
+c make list in setupb by voice of eloff (h-offset) and mtupv (printed #)
+c Increase lengths of jobname and infileq by 20 characters
+c Enable whole notes and breves as 1st or last note of xtup in beamn1 and
+c beamend, and wholes in beamid.
+c 2.295
+c Midi balance Ib[n1]:[n2]:...[nn]
+c Single-slope beam groups [...]-[...]
+c Trap "i" unless after accidental (main notes, xtups, chord notes)
+c 2.294
+c Unequal xtups with "D" to double a note in an xtup.
+c As above, "F" will (a) increase multiplicity by 1 for marked note and next
+c one and (b) add a dot to the first one.
+c Fix bug with e.g. c84 [ .d e.f ] by checking whether forced beam is on
+c when "." is encountered, then correcting beam start time.(end of getnote)
+c MIDI velocity (volume) set: Iv[n1]:[n2]:[n3]...
+c 2.293
+c Check for single notes spanning bar lines.
+c Correct various bugs with staff-jumping beams. (1) for 2nd segment, vxtup
+c must be set in make2bar since beamstrt is not called, fixing problem with
+c dot at end. (2) add ivjb2 to flag which voice has 2nd segment and fix
+c problem when >2 staves.
+c Add nodur to args of dodyn, so can check if stemless and avoid height tweak
+c Correct bug in getdyn setting flag in idynda2(0) for manual horiz. tweak
+c 2.292a
+c Undo syntax check for Type 2 or 3 TeX string starting in column 1.
+c Meanwhile, Werner's problem with a mid-line Type 3 string has gone away?!
+c 2.292
+c Allow comments in xtuplets
+c Enable multiple octave jumps in grace notes.
+c Allow dynamics in xtuplets.
+c Fix bug in getdyn searching for end of text string (correct length of lineq
+c to 128)
+c Fix bug in dodyn, must ignore horiz. interaction tweak for
+c user-text (idno = 0)
+c Syntax check for Type 2 or 3 TeX string starting in column 1
+c (NOTE: later undone!)
+c Syntax check for page number > npages at forced line break.
+c 2.291
+c Fix error in AS command (accid spacing for small systems), making only
+c one spec per staff, nv total.
+c Stop using MIDI channel 10
+c 2.29
+c Fix error in console output format for # of bytes used in MIDI file.
+c Fix bug in dograce so no space is added between grace and main note when
+c there is a MIDI-only accidental.
+c Fix bug so oes?+4 works. It was too ugly to explain.
+c ...Different ways of storing accidental specs on input and output.
+c No longer zap \writezbarno in special situations.
+c Fix bug in dyntxt level on rest
+c Line spacing equalization. Add macros \starteq, \endeq, \spread, etc.
+c Activate with Ae. (Maybe later could input alternate values for
+c \upamt, \dnamt, \parskip). Put \starteq on 1st note in voice 1
+c in the page, and \endeq on 1st note of next-to-last line in page.
+c 2.28
+c Flip direction of forced beam "[f..."
+c Fix beam numbering for staff jumping beams. Uses irest(23,24,29,30)
+c Fix bug in sliding ip's for txtdyn's
+c In dyn's allow vert. offsets +/-64, horiz +/-25.6 (store in idnyda2(1-99)
+c 2.27
+c Comment out lines in dodyn checking number of dynamic marks found. Voice
+c order may not be monotonic if two lines on a staff.
+c Literal dynamic: D"[text]"
+c 2.26
+c Allow hairpin start-stop on same note by disabling auto-tweaks in dodyn,
+c increasing dimension of idynn to 4 to allow 4 symbols on same note.
+c Increase voltxtq length from 10 to 20.
+c AS[-/0][-/0]... to inform PMX that "-" voices are small, and rough
+c accounting for ast's is done by defining effective headwidth
+c whead1 in makebar2 to be 0.8*whead.
+c 2.25
+c Fix logic bug with sepsym's when # of instruments changes.
+c Slight increases in default offsets for hairpin starts after "p"
+c 2.24
+c Hairpins D< or D> as toggle.
+c Many automatic position tweaks for letter-group dynamics and hairpins.
+c 2.23
+c Continued rhythmic shortcuts: space followed by "." or ","
+c 2.22
+c In call to doslur, change tno(...) to tnote(...). This was only
+c used when checking to slurs per stem directions, and should have been
+c the note duration all along.
+c MIDI-only accidental, bit 17 in nacc, or 27 in icrdat.
+c Use "i" anywhere in note symbol.
+c 2.21
+c Increase from 20 to 30 dimensions for movement breaks and midi sections.
+c Fix out-of-order declarations per mutex comments
+c Add "Bad error" and "Kluging" messages to log file.
+c 2.197
+c add /comips/ to save tie-check midi variables
+c For spacing of clef changes at start of input block, changed integer time
+c lastnodur to prevtn, so it works with xtups. Possible incompatibility!
+c 2.196
+c Fix Ickbug with time check in ncmid()
+c Interchange \fermataup7 and \pausec to get proper alignment
+c Enable French violin clef "f", number 7 in PMX, but 9 in MusiXTeX.
+c Add defn's of \hsp, \hspp to pmx.tex
+c Fix pre-slurs on xtup chord notes.
+c Fixed raised PAuse, define \liftPAuse
+c Replace \zbreve\sk with \breve.
+c Made "1" work as mtrdenl by doubling it and mtrnuml. BUT WAIT...what
+c about "o" and 1 as shorthand for 16???? Search for "Kluge"
+c Added "vo" (voice) as MIDI instrument 55
+c Allow 3-digit page numbers (search for "toppageno")
+c Fix bug caused by prior fix (cancelling accid after bar line was ignored).
+c Fix double accids in chords
+c 2.194
+c Fix bug with accid/tie/barline/chord in addmidi by restructuring accid if
+c block.
+c Add meter to MIDI file with every pause
+c Purify FORTRAN?
+c 2.193
+c Increased # of in-line TeX strings from 36 to 52.
+c Fix entry of # of bytes in header of tempo/meter/key track to allow >255.
+c 2.191
+c Event track: Tempos, meters, keys all together. Data in comevent
+c 2.15
+c Pretty good midi capability. Still no attention to slurs on chord notes.
+c 2.11
+c 11 Dec 99 c rm1
+c 11 Dec 99 "oes?", "oe?"
+c 11 Dec 99 Cancel slur horizontal tweaks with non-stemmed notes
+c 11 Dec 99 Error message for shifted, repeated ornaments.
+c 2.10 (Version 2.1)
+c Fix bug with lowdot and xtuplets
+c 2.09
+c Fix bug with multiple ornament heights over beams, when one is . or _
+c Error message from pmxa if rest on last note of xtup.
+c Enable 12 slurs.
+c Reinstate multiple rests at start of xtup.
+c 2.07
+c Combine consecutive type-1 TeX strings.
+c \midslur and \curve as 3rd signed digit in slur termination, + 2 opt.int's.
+c Fixed breve chord notes in docrd
+c Check irest(28) as well as vxtup when setting nodur for chord notes, since
+c vxtup isn't set until 1st *main* note in xtup
+c Vectorize nolev1, slope, ixrest. Klug fix for xtups with variable spacing.
+c 2.06+
+c Make deterministic the beam slope calculation when there are an even # of
+c slopes in list and middle two are equal magnitude but opposite sign.
+c pmxa Trap for "o:" before 1st note in block
+c Partial bug fix for 64th notes in xtuplets.
+c Make ixrest a vector, since with new time scheme may not finish xtup in
+c same notes block.
+c Increase max # of pages from 20 to 30 (dimensions of nsystp,..., in pmxb)
+c 2.06
+c Account for changes in nv when computing \interstaff. Add a counter
+c nistaff(iflb) = # of interstaff spaces per system = nv-1. Set whenever
+c setting isysflb(iflb). Note nv can only change at a forced line break.
+c Note also, iflb starts at 0!
+c 2.05
+c Automatic start of new notes group with part 2 of staff-jump beam
+c In make1bar, set irest bit 29 of lowest-voice note at same time,
+c use as flag when making notes groups.
+c For now, remove dummy blank line at end...it zaps terminal repeats.
+c 2.02
+c Fixed slur-counting bug for multiple, slurred, aftergraces.
+c 2.01
+c Increase to ask(1400)
+c Increase max forced page breaks to 18
+c Define pausc for centered pause
+c 2.0a
+c Insert dummy blank line at very end to handle input files w/o terminal CR-LF
+c pmx03r
+c Option m[n] in S symbol to change musicsize (for parts)
+c Double dotted rests now work.
+c Write file name to log file
+c Check existence of input file
+c Allow 24-char jobname, may end with ".pmx"
+c Comment out time stuff
+c Replace 3-argument getarg with 2-argument + iargc
+c Fix bug with negative noinst due to nint<=int replacement
+c move lovation of iv in isdat1 to allow iv>7.
+c Set nm=12
+c pmx03q
+c replace int(x+.001) with nint(x)
+c Write TeX file name to screen and to pml.
+c Replace char(...) with chax(...) to sovle msdev bug.
+c Bug fix: macro terminations when M is on a line by itself.
+c Bug fix: don't accumulate space for XS in pmxa.
+c Streamline Macros: use pointers to bufq instead of scratch files
+c pmx03p
+c Store input file in single character array bufq.
+c lbuf(i)*2 is length of line i
+c ipbuf is position just before next line to be read.
+c pmx03
+c Optimize read/writes
+c pmx02
+c Fix line count (for errors) when there are saved macros
+c pmx01
+c In optimize mode, open/close macros (Watch out for residual zz files!)
+c Command line input
+c Option Ao to optimize, otherwise normal processing
+c
+ccccccc
+ parameter (nks=125,nm=24,mv=24576,maxblks=4000)
+ character*128 lnholdq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /comevent/ miditime,lasttime
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ common /commus/ musize,whead20
+ integer*4 nbars0(nks),nbars(nks),ipoe(nks),nbari(nks)
+ real*4 poe0(nks),poe(nks)
+ logical isfirst,optimize
+ logical*4 fexist
+ character*44 jobname
+ character*47 infileq
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * idum,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ logical rest,firstline,newmeter
+ common /comdiag/ n69(0:nm),n34(0:nm)
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+ common /truelinecount/ linewcom(20000)
+c
+c immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing
+c nmidsec section starts and stops based on PLAYING macros (not recording).
+c
+ccccccccccccccccccccccccc
+c
+ data date /'28 Jan 12'/
+ data version /'2617'/
+c
+ccccccccccccccccccccccccc
+ data maxit,ncalls /200,0/
+ data isfirst /.true./
+c itstart = mytime()
+ versionc = version
+c
+c Initialize midi parameters
+c
+ gottempo = .false.
+ ismidi = .false.
+ debugmidi = .false.
+ relacc = .false.
+ mmacrec = .false.
+ nmidsec = 1
+ mgap = 10
+ miditime = 0
+ lasttime = 0
+ nmidcrd = 0
+ nusebl = 0
+ notmain = .false.
+ do 3 ivx = 1 , nm
+ twoline(ivx) = .false.
+ midinst(ivx) = 6
+ midivel(ivx) = 127
+ midibal(ivx) = 64
+ miditran(ivx) = 0
+3 continue
+ do 12 icm = 0 , nm
+ imidi(icm) = 0
+ restpend(icm) = .false.
+ trest(icm) = 0.
+ levson(icm) = 0
+ levsoff(icm) = 0
+ slmon(icm) = .false.
+ naccbl(icm) = 0
+ n69(icm) = 0
+ n34(icm) = 0
+ msecstrt(icm,1) = 1
+12 continue
+c
+c End of midi parameter initialization
+c
+ musize = 0
+ optimize = .false.
+ numargs = iargc()
+ if (numargs .eq. 0) then
+ print*,'You could have entered a jobname on the command line,'
+ print*,' but you may enter one now:'
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+c call getarg(1,jobname,idum) ! May need to replace this w/ next line
+ call getarg(1,jobname)
+ end if
+10 ljob = lenstr(jobname,44)
+ if (ljob .gt. 44) then
+ print*,'Jobname is too long. Try again.'
+ call stop1()
+ else if (ljob .eq. 0) then
+ print*,'No was jobname entered. Try again.'
+ call stop1()
+ else if (numargs .eq. 2) then
+ if (ljob.eq.2 .and. jobname(1:2).eq.'-o') then
+ optimize = .true.
+c call getarg(2,jobname,idum) ! May need to replace this w/ next line
+ call getarg(2,jobname)
+ numargs = 1
+ go to 10
+ else
+ print*,'Illegal option on command line'
+ call stop1()
+ end if
+ end if
+c
+c Strip ".pmx" if necessary
+c
+ ndxpmx = max(index(jobname,'.pmx'),index(jobname,'.PMX'))
+ if (ndxpmx .gt. 0) then
+ jobname = jobname(1:ndxpmx-1)
+ ljob = ljob-4
+ end if
+c
+c Check for existence of input file
+c
+ infileq = jobname(1:ljob)//'.pmx'
+ inquire(file=infileq,EXIST=fexist)
+ if (.not.fexist) then
+ inquire(file=jobname(1:ljob)//'.PMX',EXIST=fexist)
+ if (.not.fexist) then
+ print*,'Cannot find file '//infileq
+ call stop1()
+ else
+ infileq = jobname(1:ljob)//'.PMX'
+ end if
+ end if
+c
+c Open a log file
+c
+ open(15,file=jobname(1:ljob)//'.pml')
+ call printl('This is PMX, Version '//version//', '//date)
+ ljob4 = ljob
+ call printl('Opening '//infileq)
+ open(18,file=infileq)
+c
+c Copy input file into common buffer
+c
+ ipbuf = 0
+ linewcom(1) = 1
+ do 8 ilbuf = 1 , maxblks
+ ncomments = 0
+14 read(18,'(a)',end=9)lnholdq
+ lbuf(ilbuf) = lenstr(lnholdq,128)
+ if (lbuf(ilbuf) .eq. 0) then
+c
+c Blank line. Make it a single blank with length 1
+c
+ lbuf(ilbuf) = 1
+ lnholdq = ' '
+ end if
+c
+c Now line has at least one non blank character. Check for comment
+c As of Version 260, do not copy comments into bufq
+c But need to count %'s for error messaging
+c if (lnholdq(1:1).eq.'%') go to 14
+ if (lnholdq(1:1).eq.'%') then
+ ncomments = ncomments+1
+ go to 14
+ end if
+c
+c When here, have counted all preceding comments and have a real line
+c
+ if (ilbuf .gt. 1) then
+ linewcom(ilbuf) = linewcom(ilbuf-1)+1+ncomments
+ else
+ linewcom(1) = 1+ncomments
+ end if
+ if (ipbuf+lbuf(ilbuf).gt.65536) then
+ print*,'Too many characters in file, stopping'
+ call stop1()
+ end if
+ bufq(ipbuf+1:ipbuf+lbuf(ilbuf)) = lnholdq
+ ipbuf = ipbuf+lbuf(ilbuf)
+8 continue
+ call printl('Too many lines in input file')
+ call stop1()
+9 continue
+c
+c Insert dummy line to handle input files w/o CR-LF at end.
+c
+ nlbuf = ilbuf-1
+c nlbuf = ilbuf
+c bufq(ipbuf+1:ipbuf+3) = ' / '
+c lbuf(nlbuf) = 3
+ close(18)
+ do 6 numit = 1 , maxit
+ if (optimize) call printl('Starting an iteration')
+c
+c When isfirst=.true., pmxa() generates linebreaks normally, output in nbars0.
+c Otherwise, nbars0 is the input
+c When islast=.false., pmxb only returns poe's, otherwise does whole job
+c
+ call pmxa(jobname,ljob4,isfirst,nsyst,nbars0,optimize)
+ if (.not.optimize) then
+ if (ismidi) then
+c
+c Set up channel numbers for midi.
+c
+ numchan = 0
+ do 11 iv = nv , 1 , -1
+ if (twoline(iv)) then
+ midchan(iv,2) = numchan
+ numchan = numchan+1
+ end if
+ midchan(iv,1) = numchan
+ numchan = numchan+1
+11 continue
+c
+c numchan will now be the number of channels, but max channel # is numchan-1
+c
+c Set up velocities, balances, and midi-transpositions
+c
+ do 13 iv = nv , 1 , -1
+ if (twoline(iv)) then
+ midvelc(midchan(iv,2)) = midivel(iv)
+ midbc(midchan(iv,2)) = midibal(iv)
+ midtc(midchan(iv,2)) = miditran(iv)
+ end if
+ midvelc(midchan(iv,1)) = midivel(iv)
+ midbc(midchan(iv,1)) = midibal(iv)
+ midtc(midchan(iv,1)) = miditran(iv)
+13 continue
+ end if
+c
+c TEMPORARY!!!
+c
+ write(15,*)'nlbuf: ',nlbuf
+ ip1 = 1
+ do 10000 ilb = 1 , nlbuf
+c write(15,'(2i5,a40,3i5)')ilb,lbuf(ilb),
+c * bufq(ip1:ip1+lbuf(ilb)-1),
+c * (ichar(bufq(ip1+lbuf(ilb)-k:ip1+lbuf(ilb)-k)),
+c * k=min(3,lbuf(ilb)),1,-1)
+ ip1 = ip1+lbuf(ilb)
+10000 continue
+ iplast = ip1-1
+c
+c Check to see if (1) last line is "<blank><blank>/" and (2) next to last
+c line is "/"
+c
+c print*,'iplast:',iplast
+c print*,'Last line:'
+c print*,bufq(iplast+1-lbuf(nlbuf):iplast)
+c print*,'Last char of next to last line:'
+c print*,bufq(iplast-lbuf(nlbuf):iplast-lbuf(nlbuf))
+ if (bufq(iplast+1-lbuf(nlbuf):iplast) .eq. ' /') then
+ if (bufq(iplast-lbuf(nlbuf):iplast-lbuf(nlbuf)).eq.'/') then
+ print*,'Removing last line of "<blank><blank>/"'
+ write(15,*)'Removing last line of "<blank><blank>/"'
+ nlbuf = nlbuf-1
+ end if
+ end if
+c
+ call pmxb(.true.,poe0,ncalls,optimize)
+ if (ismidi) then
+c
+c Write midi file
+c
+ open(51,file=jobname(1:ljob)//'.mid')
+ if (debugmidi) open(52,file=jobname(1:ljob)//'.dbm')
+ call printl(' ')
+ call printl('Writing '//jobname(1:ljob)//'.mid')
+ call writemidi(jobname,ljob)
+ end if
+ close(15)
+ stop
+ end if
+ write(15,*)'nlbuf: ',nlbuf
+ ip1 = 1
+ call pmxb(.false.,poe0,ncalls,optimize)
+ call poestats(nsyst,poe0,poebar0,devnorm0)
+c
+c Save initial deviation and line breaks for later comparison
+c
+ if (numit .eq. 1) then
+ devpmx = devnorm0
+ do 20 isys = 1 , nsyst
+ nbari(isys) = nbars0(isys)
+20 continue
+ end if
+ call sortpoe(nsyst,poe0,ipoe)
+ do 1 iupord = nsyst , 1 , -1
+ isysu = ipoe(iupord)
+ print*,'isysu=',isysu
+ write(15,*)'isysu=',isysu
+c
+c Skip if system isysu has poe0 < avg or isysd has poe0 > avg
+c
+ if (poe0(isysu).lt.poebar0) go to 1
+ do 5 idnord = 1 , nsyst
+ isysd = ipoe(idnord)
+ if (isysu.eq.isysd .or. nbars0(isysd).eq.1
+ * .or. poe0(isysd).gt.poebar0) go to 5
+ do 2 isyst = 1 , nsyst
+ nbars(isyst) = nbars0(isyst)
+ if (isyst .eq. isysu) then
+ nbars(isyst) = nbars(isyst)+1
+ else if (isyst .eq. isysd) then
+ nbars(isyst) = nbars(isyst)-1
+ end if
+2 continue
+ call pmxa(jobname,ljob4,isfirst,nsyst,nbars,optimize)
+ call pmxb(.false.,poe,ncalls,optimize)
+ call poestats(nsyst,poe,poebar,devnorm)
+ if (devnorm .lt. devnorm0) then
+ devnorm0 = devnorm
+ poebar0 = poebar
+ do 4 isys = 1 , nsyst
+ nbars0(isys) = nbars(isys)
+ poe0(isys) = poe(isys)
+4 continue
+ print*,'Improved with iup,idown,devnorm:',
+ * isysu,isysd,devnorm0
+ write(15,*)'Improved with iup,idown,devnorm:',
+ * isysu,isysd,devnorm0
+ write(*,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ call sortpoe(nsyst,poe0,ipoe)
+ go to 6
+ end if
+5 continue
+1 continue
+c
+c If we get here, must have gone thru all switches and found nothing better,
+c so done!
+c
+ go to 7
+6 continue
+7 continue
+ print*,'Optimum located, numit:',numit,', ncalls:',ncalls
+ write(15,*)'Optimum located, numit:',numit,', ncalls:',ncalls
+ print*,'Final error:',devnorm0,', initial error:',devpmx
+ write(15,*)'Final error:',devnorm0,', initial error:',devpmx
+ print*,'Percentage improvement:',100.*(1-devnorm0/devpmx)
+ write(15,*)'Percentage improvement:',100.*(1-devnorm0/devpmx)
+ call printl('Initial bars/system:')
+ write(*,'(5x,20i3)')(nbari(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbari(isys),isys=1,nsyst)
+ call printl('Final bars/system:')
+ write(*,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ call pmxa(jobname,ljob4,.false.,nsyst,nbars0,optimize)
+ call pmxb(.true.,poe0,ncalls,optimize)
+c itend = mytime()
+c print*,'Elapsed time in ms:',itend-itstart
+c write(15,*)'Elapsed time in ms:',itend-itstart
+ close(15)
+ end
+ subroutine accsym(nacc,acsymq,lacc)
+ character*3 acsymq
+ iacc = iand(nacc,7)
+ if (iacc .eq. 1) then
+ acsymq = 'fl'
+ lacc = 2
+ else if (iacc .eq. 2) then
+ acsymq = 'sh'
+ lacc = 2
+ else if (iacc .eq. 3) then
+ acsymq = 'na'
+ lacc = 2
+ else if (iacc .eq. 5) then
+ acsymq = 'dfl'
+ lacc = 3
+ else if (iacc .eq. 6) then
+ acsymq = 'dsh'
+ lacc = 3
+ else
+ print*,'bad accidental: ',iacc
+ end if
+ return
+ end
+ subroutine addask(taskn,waskn,elaskn,
+ * fixednew,scaldold,tglp1,isudsp)
+ parameter (nm=24)
+ logical isudsp
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comtol/ tol
+ if (isudsp) then
+c
+c Find which udsp we're dealing with
+c
+ do 1 iudsp = 1 , nudsp
+ if (abs(taskn+tglp1-tudsp(iudsp)) .lt. tol) go to 2
+1 continue
+ print*,'You should note BEEE here in addask!'
+ call stop1()
+2 continue
+c
+c Fixednew and scaldold must not be changed, since udsp's are already included
+c in fsyst from pmxa, and udsp don't involve scaled space..
+c
+ if (naskb.gt.0 .and. abs(taskn-task(max(1,naskb))).lt.tol) then
+c
+c Must add user-defined space to what's there already.
+c
+ wask(naskb) = wask(naskb)+udsp(iudsp)
+ else
+c
+c This place has no other space.
+c
+ naskb = naskb+1
+ task(naskb) = taskn
+ wask(naskb) = udsp(iudsp)
+ elask(naskb) = 0.
+ end if
+ else
+c
+c This is a normal space, no effect if smaller than existing space
+c
+ if (naskb.gt.0 .and. abs(taskn-task(max(1,naskb))).lt.tol) then
+c
+c We already put in some space at this time
+c Check if new one needs more space than old one at same time
+c
+ if (waskn .gt. wask(naskb)) then
+ naskb = naskb-1
+ else
+ return
+ end if
+ end if
+ naskb = naskb+1
+ task(naskb) = taskn
+ wask(naskb) = waskn
+ elask(naskb) = elaskn
+ fixednew = fixednew+waskn
+ scaldold = scaldold+elaskn
+ end if
+ return
+ end
+ subroutine addblank(noteq,lnoten)
+ character*8 noteq
+ character*1 tchar
+ tchar = noteq
+ noteq = ' '//tchar
+ lnoten = 2
+ return
+ end
+ subroutine addfb(nfb,iv,tnew,t1fb,t2fb,ulfbq,ifbadd)
+ parameter (nm=24)
+ integer nfb(nm)
+ common /comtol/ tol
+ real*4 t1fb(nm,20),t2fb(nm,20)
+ character*1 ulfbq(nm,20)
+ ifbadd = 1
+ nfb(iv) = nfb(iv)+1
+ do 1 ifb = nfb(iv)-1 , 1 , -1
+ if (tnew .lt. t1fb(iv,ifb)-tol) then
+ t1fb(iv,ifb+1) = t1fb(iv,ifb)
+ t2fb(iv,ifb+1) = t2fb(iv,ifb)
+ ulfbq(iv,ifb+1) = ulfbq(iv,ifb)
+ else
+ ifbadd = ifb+1
+ go to 2
+ end if
+1 continue
+2 continue
+ t1fb(iv,ifbadd) = tnew
+ ulfbq(iv,ifbadd) = 'x'
+ return
+ end
+c
+c
+ subroutine addmidi(icm,nolev,iacc,isig,time,rest,endrest)
+ parameter(nm=24,mv=24576)
+ integer*2 mmidi,itk(25)
+ integer*4 itiesav(5,100)
+ character*1 notenumq
+ logical endrest,eximacc,it1found
+ logical rest
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ common /comevent/ miditime,lasttime
+ common /comdiag/ n69(0:nm),n34(0:nm)
+c
+c Following variables are local but must be saved. I hope they are.
+c (3/18/00) With g77 they are not, so add a common block here.
+c
+c integer*2 ipslon(0:nm),lusebl(10),jusebl(10),icmm(0:12)
+ integer*2 ipslon(0:nm),lusebl(10),jusebl(10),icmm(0:15)
+ common /comips/ ipslon,lusebl,jusebl
+c data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/
+ data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16/
+c
+c Cancel out barline accidentals if there's a rest.
+c
+ if (rest) naccbl(icm) = 0
+c
+c Special path to insert dummy rest at end of a section
+c
+ if (endrest) go to 20
+c
+ do 7 ion = 0 , nmidcrd
+c
+c check if this is only to get pitch of a chord note
+c
+ if (notmain) go to 6
+c
+c check for rest
+c
+ if (rest) then
+c
+c Will not put in a note, but must update timing
+c
+ if (.not.restpend(icm)) then
+c
+c First rest in sequence, save the time
+c
+ restpend(icm) = .true.
+ trest(icm) = time
+ else
+ trest(icm) = trest(icm)+time
+ end if
+c
+c Note: code checkers don't like the above due to calling addmidi(trest(icm))
+c but this only happens if rest at end of section (endrest=.true.) (called
+c from getmidi(), in which case these above lines are bypassed.
+c
+ call chkimidi(icm)
+ return
+ end if
+c
+c time tics
+c
+ if (imidi(icm).gt.0 .and. ion.eq.0) then
+ idur = mgap
+ else
+ idur = 0
+ end if
+ if (restpend(icm)) then
+ restpend(icm) = .false.
+ idur = idur+nint(15*trest(icm))
+ end if
+c
+c time to start of note
+c
+ idurvar = isetvarlen(idur,nby2on)
+ if (nby2on .gt. 4) then
+ print*,'You got >4 bytes, something is bogus.'
+ call stop1()
+ end if
+ imidi(icm) = imidi(icm)+1
+ do 2 i = 1 , nby2on
+c
+c imidi points to cell before highest (leftmost) byte. Start with lowest byte
+c at far right, fill in backwards
+c
+ mmidi(icm,imidi(icm)+nby2on-i) = mod(idurvar,256)
+ if (nby2on .gt. 1) idurvar = idurvar/256
+2 continue
+ imidi(icm) = imidi(icm)+nby2on-1
+c
+c Note-on signal
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 9*16+icm
+ mmidi(icm,imidi(icm)) = 9*16+icmm(icm)
+c
+c Entry point for chord note pitch determination
+c
+6 continue
+c
+c Get midi pitch. On chord iteration, only do this first time (main note),
+c since pitch was already computed for nonmain chord notes.
+c
+ if (ion .eq. 0) then
+ ipsav = nolev*12./7+11
+ ipsav0 = ipsav
+ if (isig .ne. 0) then
+c
+c Adjust for signature
+c
+ notenumq = char(48+mod(nolev,7))
+ if (isig.ge.index('4152630',notenumq)) then
+ ipsav = ipsav+1
+ else if (-isig.ge.index('0362514',notenumq)) then
+ ipsav = ipsav-1
+ end if
+ end if
+c
+c Deal with accidentals.
+c
+c iacc 0 1 2 3 4 5 6 7
+c effect X fl sh na X dfl dsh X
+c iashft X -1 1 0 X -2 2 X
+c
+ jacc = 0
+ eximacc = .false.
+ if (iacc .gt. 0) then
+c
+c Adjust key-sig-adjusted pitch for explicit accidental (and exit)
+c
+ jacc = iashft(iacc)
+ eximacc = .true.
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+c
+c (Above) Shift applies to diatonic pitch but will be added to adjusted one
+c
+ else if (naccim(icm) .gt. 0) then
+c
+c Possible implicit accidental from earlier in the bar
+c Check for prior accid in this bar at this note level
+c
+ do 3 kacc = 1 , naccim(icm)
+ if (laccim(icm,kacc) .eq. nolev) then
+ jacc = jaccim(icm,kacc)
+ eximacc = .true.
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+ go to 4
+ end if
+3 continue
+4 continue
+ end if
+c
+c Must split off the following if block from those above because chord
+c notes can cause naccim>0, forcing us to miss other chord note's
+c accross-bar-line accidental
+c
+ if (naccbl(icm).gt.0 .and. .not.eximacc) then
+c
+c Possible carryover accid from prior bar (or prior same-pitch note).
+c
+ do 21 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolev) then
+ jacc = jaccbl(icm,kacc)
+c
+c Since we are *using* the bar-line accid, must flag it to be saved for next.
+c
+ nusebl = nusebl+1
+ jusebl(nusebl) = jacc
+ lusebl(nusebl) = nolev
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+ go to 22
+ end if
+21 continue
+22 continue
+ end if
+ ipsav = ipsav+jacc
+c
+c Midi transpositions
+c
+ ipsav = ipsav+midtc(icm)
+ end if
+ if (notmain) then
+ mcpitch(nmidcrd) = ipsav
+c
+c Save pitch for tie checks
+c
+ if (levson(icm).eq.nolev.and..not.slmon(icm))
+ * ipslon(icm) = ipsav
+ else
+ imidi(icm) = imidi(icm)+1
+ if (ion.eq.0) then
+ mmidi(icm,imidi(icm)) = ipsav
+ if (levson(icm).eq.nolev.and..not.slmon(icm))
+ * ipslon(icm) = ipsav
+ else
+ mmidi(icm,imidi(icm)) = mcpitch(ion)
+ end if
+ end if
+ if (ion .eq. 0) then
+c
+c Only record accids for non-chords, main chord note during chord iteration
+c and chordnotes on first call but not during iteration
+c
+ if (iacc.gt.0) then
+c
+c Set marker for accidental for possible continuations later this bar
+c but first check and clear earlier ones on same note.
+c
+ do 23 kacc = 1 , naccim(icm)
+ if (laccim(icm,kacc) .eq. nolev) then
+ do 24 macc = kacc , naccim(icm)-1
+ laccim(icm,macc) = laccim(icm,macc+1)
+ jaccim(icm,macc) = jaccim(icm,macc+1)
+24 continue
+ go to 25
+ end if
+23 continue
+ go to 26
+25 continue
+ naccim(icm) = naccim(icm)-1
+26 continue
+c
+c Flag new accidental
+c
+ naccim(icm) = naccim(icm)+1
+ laccim(icm,naccim(icm)) = nolev
+ jaccim(icm,naccim(icm)) = iashft(iacc)
+ end if
+c
+c Bail if this is a chord note on the first call (from docrd)
+c
+ if (notmain) then
+ call chkimidi(icm)
+ return
+ end if
+ end if
+c
+c Vel
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 127
+ mmidi(icm,imidi(icm)) = midvelc(icm)
+ call chkimidi(icm)
+7 continue
+c
+c For tie checks
+c
+ if (levson(icm).gt.0.and..not.slmon(icm)) imidso(icm) = imidi(icm)
+c
+c Entry point for special rests at section ends (endrest=T)
+c
+20 continue
+c
+c Now insert all the ends
+c
+ do 8 ioff = 0 , nmidcrd
+ if (ioff .eq. 0) then
+c
+c time to end
+c
+ idur1 = nint(15*time)
+ if (.not.endrest .or. miditime.eq.nint(15*trest(icm))) then
+ idur = idur1-mgap
+ else
+ idur = idur1
+ end if
+c
+c Deal with roundoff problems with 7-tuplets on half or quarters
+c
+ if (idur1 .eq. 69) then
+ n69(icm) = n69(icm)+1
+c if (mod(n69(icm)+6,7) .gt. 3) idur = 58
+ if (mod(n69(icm)+6,7) .gt. 3) idur = idur1-mgap-1
+ else if (idur1 .eq. 34) then
+ n34(icm) = n34(icm)+1
+ if (mod(n34(icm)+6,7) .gt. 4) idur = idur1-mgap+1
+ end if
+ idurvar = isetvarlen(idur,nby2off)
+ if (nby2off .gt. 4) then
+ print*,'You got >4 bytes, something is bogus.'
+ call stop1()
+ end if
+ imidi(icm) = imidi(icm)+1
+ call chkimidi(icm)
+ do 1 i = 1 , nby2off
+ mmidi(icm,imidi(icm)+nby2off-i) = mod(idurvar,256)
+ if (nby2off .gt. 1) idurvar = idurvar/256
+1 continue
+ imidi(icm) = imidi(icm)+nby2off-1
+ else
+c
+c Inserting end of chord note, delta time is 0
+c
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = 0
+ end if
+c
+c Note off
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 8*16+icm
+ mmidi(icm,imidi(icm)) = 8*16+icmm(icm)
+c
+c Pitch
+c
+ imidi(icm) = imidi(icm)+1
+ if (ioff .eq. 0) then
+ mmidi(icm,imidi(icm)) = ipsav
+ else
+ mmidi(icm,imidi(icm)) = mcpitch(ioff)
+ end if
+c
+c Vel
+c
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = 0
+ call chkimidi(icm)
+ if (endrest) then
+ return
+ end if
+c
+c print*,'Off, icm,imidi,ipsav,idur:',icm,imidi(icm),ipsav,time
+c
+8 continue
+ naccbl(icm) = nusebl
+ if (nusebl .gt. 0) then
+c
+c Fix tables of "bar-line" accids that are saved due to consecutive notes.
+c
+ do 30 kacc = 1 , nusebl
+ laccbl(icm,kacc) = lusebl(kacc)
+ jaccbl(icm,kacc) = jusebl(kacc)
+30 continue
+ nusebl = 0
+ end if
+c
+c Begin tie checks
+c
+ if (slmon(icm)) then
+c
+c Prior note had a slur start
+c
+ if (levson(icm).eq.levsoff(icm) .and. iacc.eq.0) then
+c
+c We have a tie! (Assumed there would be no accidental on tie-ending note)
+c Make a list of times of all events back to the one starting at imidso+1,
+c which is at or before where the tie started. Ident tie start and stop by
+c comparing pitches. Save the 4 pieces of data in itiesav(1...4,nsav4tie)
+c Store actual time in itiesav(5,nsav4tie), using itiesav(1,1) as initial
+c time.
+ nsav4tie = 0
+ imidt = imidso(icm)
+10 nsav4tie = nsav4tie+1
+ itiesav(1,nsav4tie) = igetvarlen(mmidi,icm,imidt,nbytes)
+ imidt = imidt+nbytes
+ do 11 j = 1 , 3
+ itiesav(j+1,nsav4tie) = mmidi(icm,imidt+j)
+11 continue
+ imidt = imidt+3
+ if (nsav4tie .eq. 1) then
+ itiesav(5,1) = itiesav(1,1)
+ else
+ itiesav(5,nsav4tie) = itiesav(1,nsav4tie)+
+ * itiesav(5,nsav4tie-1)
+ end if
+ if (imidt .ne. imidi(icm)) go to 10
+c
+c Find which two pitches agree with saved slur pitch.
+c
+ it1found = .false.
+ do 12 it2 = 1 , nsav4tie
+ if (itiesav(3,it2) .eq. ipslon(icm)) then
+ if (it1found) go to 13
+ it1 = it2
+ it1found = .true.
+ end if
+12 continue
+ call printl(
+ * 'Program error, tied notes, send source to Dr. Don')
+ it1 = nsav4tie+1
+ it2 = nsav4tie+1
+13 continue
+c
+c List the positions we want to keep
+c
+ jsav = 0
+ do 14 isav = 1 , nsav4tie
+ if (isav.eq.it1 .or. isav.eq.it2) go to 14
+ jsav = jsav+1
+ itk(jsav) = isav
+14 continue
+ nsav4tie = nsav4tie-2
+c
+c Now dump events it1 & it2, recompute times, restack mmidi.
+c
+ imidi(icm) = imidso(icm)
+ do 15 isav = 1 ,nsav4tie
+ if (isav .eq. 1) then
+ idurvar = isetvarlen(itiesav(5,itk(isav)),nbytes)
+ else
+ idurvar = isetvarlen(itiesav(5,itk(isav))-
+ * itiesav(5,itk(isav-1)),nbytes)
+ end if
+ imidi(icm) = imidi(icm)+1
+ do 16 i = 1 , nbytes
+ mmidi(icm,imidi(icm)+nbytes-i) = mod(idurvar,256)
+ if (nbytes .gt. 1) idurvar = idurvar/256
+16 continue
+ imidi(icm) = imidi(icm)+nbytes-1
+ do 17 i = 2 , 4
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = itiesav(i,itk(isav))
+17 continue
+15 continue
+ end if
+ slmon(icm) = .false.
+ levsoff(icm) = 0
+ if (.not.dbltie) levson(icm) = 0
+ end if
+ if (levson(icm).gt.0) slmon(icm) = .true.
+ if (nmidcrd .gt. 0) nmidcrd = 0
+ call chkimidi(icm)
+ return
+ end
+ subroutine addstr(notexq,lnote,soutq,lsout)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ character*(*) notexq
+ character*80 soutq
+ if (lsout+lnote .gt. 72) then
+ if (islast) write(11,'(a)')soutq(1:lsout)//'%'
+ lsout = 0
+ end if
+ if (lsout .gt. 0) then
+ soutq = soutq(1:lsout)//notexq(1:lnote)
+ else
+ soutq = notexq(1:lnote)
+ end if
+ lsout = lsout+lnote
+ return
+ end
+ subroutine adjusteskz(ib,squez,istart,istop,poenom)
+c
+c For block ib, this adds accidental spaces to eskz, for use in getting
+c length of xtup bracket and slopes of brackets and beams.
+c
+ parameter (nm=24)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ real*4 squez(80)
+ integer*4 istart(80),istop(80)
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /comeskz2/ eskz2(nm,200)
+ common /comtol/ tol
+ common /comntot/ ntot
+ inmin = istart(ib)+1
+ do 10 iaskb = 1 , naskb
+ if (task(iaskb) .lt. to(istart(ib))-tol) go to 10
+ eskadd = wask(iaskb)/poenom-elask(iaskb)
+ do 11 in = inmin , ntot
+ if (to(in) .gt. task(iaskb)-tol) then
+ eskz2(ivxo(in),ipo(in)) = eskz2(ivxo(in),ipo(in))+eskadd
+ if (abs(to(in)-task(iaskb)).lt. tol) inmin=inmin-1
+ else
+ inmin = inmin+1
+ end if
+11 continue
+10 continue
+ return
+ end
+ subroutine askfig(pathnameq,lpath,basenameq,lbase,figbass,istype0)
+ logical figbass,ispoi,topmods,istype0,done,isbbm
+ common /comhsp/ hpttot(176)
+ common /compoi/ ispoi
+ common /combbm/ isbbm
+ common /comas3/ ask(2500),iask,topmods
+ character*40 pathnameq
+ character*44 basenameq
+ character*1 sq,chax
+ character*129 outq
+ sq = chax(92)
+ open(12,file=pathnameq(1:lpath)//basenameq(1:lbase)//'.tex')
+c
+c Transfer first 5 lines of main internal TeX file
+c
+ do 11 il = 1 , 5
+ call moveln(11,12,done)
+11 continue
+ if (istype0) then
+c
+c Transfer literal TeX stuff from special scratch file
+c
+ rewind(17)
+10 call moveln(17,12,done)
+ if (.not.done) go to 10
+ close(17)
+ end if
+c
+c Transfer next 2 lines from main scratch file
+c
+ do 3 il = 1 , 2
+ call moveln(11,12,done)
+3 continue
+ if (ispoi) write(12,'(a)')sq//'input musixpoi'
+ if (isbbm) write(12,'(a)')sq//'input musixbbm'
+ if (figbass) then
+c
+c Transfer .fig data from scratch (unit 14) into external .tex (unit 12)
+c
+4 call moveln(14,12,done)
+ if (.not.done) go to 4
+ close(14)
+ end if
+ iask = 0
+ ihs = 0
+1 read(11,'(a129)',end=999)outq
+c
+c Hardspaces.
+c
+ if (outq(1:5) .eq. sq//'xard') then
+ ihs = ihs+1
+ outq(2:2) = 'h'
+ write(outq(12:15),'(f4.1)')hpttot(ihs)
+ lenout = 19
+ go to 9
+ end if
+c
+c This part hard-wires ask's into new .tex file as ast's
+c
+2 indxask = index(outq,sq//'ask')
+ if (indxask .ne. 0) then
+ iask = iask+1
+ call putast(ask(iask),indxask,outq)
+ go to 2
+ end if
+ lenout = llen(outq,129)
+9 continue
+ write(12,'(a)')outq(1:lenout)
+c
+c If this is the line with "readmod", check for topmods.
+c
+ if (topmods .and. outq(2:8).eq.'readmod') then
+ topmods = .false.
+ rewind(16)
+ do 7 il = 1 , 1000
+ read(16,'(a129)',end=8)outq
+ lenout = llen(outq,129)
+c
+c We inserted the '%' in subroutine littex, to guarantee including blank.
+c
+ write(12,'(a)')outq(1:lenout)
+7 continue
+8 continue
+ close(16)
+ end if
+ go to 1
+999 close(11)
+ close(12)
+ return
+ end
+ subroutine backfill(iunit,oldq,lenold,newq,lennew)
+c
+c In iunit, looks backward for oldq, overwrites newq
+c Safest if both are same length!
+c
+ character*128 lineq(200),nowq
+ character*(*) oldq,newq
+ linesback = 0
+1 continue
+ backspace(iunit)
+ read(iunit,'(a)')nowq
+ ndx = index(nowq,oldq(1:lenold))
+c
+c Save the line just read
+c
+ linesback = linesback+1
+ lineq(linesback) = nowq
+ if (ndx .eq. 0) then
+ backspace(iunit)
+ go to 1
+ end if
+c
+c If here, it's replacement time.
+c
+ lineq(linesback) = nowq(1:ndx-1)//newq(1:lennew)
+ * //nowq(ndx+lenold:128)
+ backspace(iunit)
+ do 2 line = linesback , 1 , -1
+ write(iunit,'(a128)')lineq(line)
+2 continue
+ return
+ end
+ subroutine beamend(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq,ulqq,chax
+ logical beamon,firstgulp,figbass,figchk,flipend,btest,
+ * isfig,vxtup,isdotm,isbjmp,isbj2,drawbm
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comoct/ noctup
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ character*4 tempq
+ character*8 noteq
+ character*79 notexq
+ ip = ipo(jn)
+ multip = iand(mult(ivx,ip),15)-8
+ if (ixrest(ivx) .eq. 4) then
+c
+c This is the LAST note in the xtup (i.e., all rests before). Make single.
+c
+ nodur(ivx,ip) = 2**(4-multip)
+ call notex(notexq,lnote)
+ ixrest(ivx) = 0
+ return
+ end if
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip)
+ nodur(ivx,ip) = 2**(4-multip)
+ if (btest(nacc(ivx,ip-1),27))
+ * nodur(ivx,ip)=nodur(ivx,ip)/2
+ call notex(notexq,lnote)
+ nodur(ivx,ip) = ndsav
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = lnoten+3
+ if (.not.btest(nacc(ivx,ip-1),27)) then
+c
+c Prior note is not regular-dotted
+c
+
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))//noteq
+ lnote = lnote+1
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))//noteq
+ lnote = lnote+2
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'//noteq
+ else if (multip .eq. -3) then
+ notexq = sq//'breve'//noteq
+ lnote = lnote+3
+ else
+ print*
+ print*,'(Error in beamend, send source to Dr. Don)'
+ call stop1()
+ end if
+ else
+c
+c Prior note is regular-dotted so this one is halved
+c
+ if (multip .eq. 0) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -1) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -2) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))//noteq
+ end if
+ end if
+ end if
+ return
+ end if
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ lnote = 0
+c
+c New way, with flipend, which was computed in beamstrt.
+c
+ if (flipend(ivx) .and. btest(ipl(ivx,ip),30))
+ * ulq(ivx,ibmcnt(ivx)) = chax(225-ichar(ulq(ivx,ibmcnt(ivx))))
+ if (ip .gt. ibm1(ivx,ibmcnt(ivx))) then
+c
+c This is not a one-noter from beam-jump. Check if multiplicity has increased
+c
+ if (btest(irest(ivx,ip-1),0)) then
+c
+c Prior note is a rest, check one before that
+c
+ mp = iand(mult(ivx,ip-2),15)-8
+ else
+ mp = iand(mult(ivx,ip-1),15)-8
+ end if
+ if (multip .gt. mp) then
+c
+c Assume 1-3, 2-3, or 1-2
+c
+ do 2 imp = multip , mp+1 , -1
+ call ntrbbb(imp,'t',ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+2 continue
+ else if (btest(nacc(ivx,ip-1),27)) then
+c
+c 2nd member of dotted xtup
+c
+ call ntrbbb(multip+1,'t',
+ * ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+ end if
+ end if
+c
+c Beam termination and direction analysis
+c
+ if (btest(irest(ivx,ip),23) .and. .not.isbjmp) then
+c
+c This is the end of the first segment in a jump-beam. ivbj1=ivx will be number
+c of the jump-beam. ivbj2 will be tested along with isbjmp to see if in the
+c voice of the 2nd part of jumped beam. (May need special treatment for
+c multi-segment jump-beams
+c
+ isbjmp = .true.
+ ivbj1 = ivx
+ ivbj2 = 0
+ end if
+ if (.not.btest(irest(ivx,ip),23)) then
+c
+c This is either a normal beamend or end of a sequence of jump-beam segments,
+c so some sort of termination is required
+c
+ ulqq = ulq(ivx,ibmcnt(ivx))
+ if (.not.isbjmp .or. ivx.ne.ivbj2) then
+c
+c Normal termination
+c
+ call ntrbbb(1,'t',ulqq,mod(ivx,24),notexq,lnote)
+ else
+c
+c Terminate a sequence of jump-beam segments.
+c
+ ulqq = chax(225-ichar(ulqq))
+ call ntrbbb(1,'t',ulqq,mod(ivbj1,24),notexq,lnote)
+ end if
+ end if
+c
+c And now the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+ isdotm = .false.
+ if (.not.vxtup(ivx)) then
+ if (2**log2(nodur(ivx,ip)) .ne. nodur(ivx,ip)) then
+ if (.not.btest(iornq(ivx,ip),13)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ end if
+ end if
+c
+c 5/25/08 Allow >12
+c 5/9/10 Up to 24; replace 24 with 0
+c
+ if (.not.(isbjmp.and.ivx.eq.ivbj2)) then
+c call istring(mod(ivx,12),tempq,len)
+ call istring(mod(ivx,24),tempq,len)
+ else
+c call istring(mod(ivbj1,12),tempq,len)
+ call istring(mod(ivbj1,24),tempq,len)
+ end if
+ if (isbjmp .and. ivx.eq.ivbj2
+ * .and..not.btest(irest(ivx,ip),23)) isbjmp=.false.
+ notexq = notexq(1:lnote)//tempq(1:len)
+ lnote = lnote+len
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 1) then
+ notexq = notexq(1:lnote)//'{'//noteq(1:1)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamid(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq,ulqq,chax
+ logical beamon,firstgulp,figbass,figchk,flipend,btest,
+ * isfig,vxtup,isdotm,isbjmp,bar1syst,isdotted,isbj2,drawbm
+ character*79 notexq
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comoct/ noctup
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ character*8 noteq
+ character*4 tempq
+ lnote = 0
+ ip = ipo(jn)
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ if (.not.btest(irest(ivx,ip),0)) then
+ multip = iand(mult(ivx,ip),15)-8
+c if (btest(islur(ivx,ip-1),3)) multip = multip+1
+c
+c (Above test OK since must have ip>1). Double dotted note preceding
+c
+c Move the following, because can't ask for note until after checking for
+c embedded xtup with number, due to ordering/octave feature.
+c
+c call notefq(noteq,lnoten,nolev(ivx,ip),ncmid(iv,ip))
+ end if
+ if (btest(irest(ivx,ip),28)) vxtup(ivx) = .true.
+ if (vxtup(ivx)) then
+c
+c In an xtup
+c
+ if (btest(irest(ivx,ip),0)) then
+c
+c Intermediate rest in xtup, put in the rest. Reset nodur so notex works OK
+c
+ nodur(ivx,ip) = 2**(4-(iand(mult(ivx,ip),15)-8))
+ call notex(notexq,lnote)
+c
+c Re-zero so next note does not get confused
+c
+ nodur(ivx,ip) = 0
+ return
+ end if
+c if (multip.le.0) then
+c if (multip.le.0 .or.
+c * (multip.eq.1.and.btest(nacc(ivx,ip-1),18))) then
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip)
+ nodur(ivx,ip) = 2**(4-multip)
+ if (btest(nacc(ivx,ip),19) .or.
+ * btest(nacc(ivx,ip),27)) then
+ nodur(ivx,ip)=3*nodur(ivx,ip)/2
+ else if (btest(nacc(ivx,ip-1),27)) then
+ nodur(ivx,ip)=nodur(ivx,ip)/2
+ end if
+ call notex(notexq,lnote)
+ nodur(ivx,ip) = ndsav
+ else
+c
+c Use ulq for stem direction
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = 3
+ if (.not.btest(nacc(ivx,ip-1),27)) then
+c
+c Prior note is not regular-dotted
+c
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 4
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 5
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'
+ end if
+ if (btest(nacc(ivx,ip),27)) then
+c
+c This note is regular dotted non-beamed xtup
+c
+ notexq = notexq(1:3)//'p'
+ lnote = 4
+ end if
+ else
+c
+c Prior note is regular-dotted so this one is halved
+c
+ if (multip .eq. 0) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -2) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ end if
+ return
+ else if (nodur(ivx,ip).eq.0) then
+c
+c In the beamed xtup but not the last note
+c
+ if (nodur(ivx,ip-1).gt.0) then
+c
+c Embedded Xtup, mult>0, starts here. Put in number if needed
+c
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+ iud = 1
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') iud = -1
+c
+c Get ip#, notelevel of middle note (or gap) in xtup
+c
+ ipmid = ip+ntupv(ivx,nxtinbm(ivx))/2
+ xnlmid = levrn(nolev(ivx,ipmid),irest(ivx,ipmid),iud,
+ * ncmid(iv,ipmid),iand(15,mult(ivx,ipmid))-8)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2).eq.0) xnlmid = (xnlmid+
+ * levrn(nolev(ivx,ipmid-1),irest(ivx,ipmid-1),iud,
+ * ncmid(iv,ipmid-1),iand(15,mult(ivx,ipmid-1))-8))/2
+ iflop = 0
+ if (abs(xnlmid-ncmid(iv,ip)).lt.3.) iflop = -iud
+ iup = iud+2*iflop
+ if (btest(irest(ivx,ip),14)) then
+ iup = -iup
+ iflop = 0
+ if (iud*iup .lt. 0) iflop = iup
+ end if
+c
+c Place number if needed
+c
+ if (.not.btest(islur(ivx,ip),31)) then
+ mprint = igetbits(nacc(ivx,ip),5,22)
+ if (mprint.eq.0) mprint=mtupv(ivx,nxtinbm(ivx))
+ call putxtn(mprint,iflop,multip,iud,wheadpt,poenom,
+ * nolev1(ivx),islope(ivx),slfac,
+ * xnlmid,islur(ivx,ip),lnote,notexq,ncmid(iv,ip),nlnum,
+ * eloff(ivx,nxtinbm(ivx)),iup,irest(ivx,ip),.false.)
+ end if
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ else
+c
+c Intermediate note of xtup
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+ else
+c
+c Last note of xtup (but not last note of beam!)
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+ else if (btest(irest(ivx,ip),0)) then
+ call notex(notexq,lnote)
+ return
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+c
+c Check if multiplicity changes in a way requiring action
+c
+ ipleft = ip-1
+ if (btest(irest(ivx,ipleft),0)) ipleft = ipleft-1
+ if (.not.btest(islur(ivx,ipleft),20)) then
+ multl = iand(15,mult(ivx,ipleft))-8
+ else
+ multl = 1
+ end if
+ mub = multip - multl
+ ipright = ip+1
+ if (btest(irest(ivx,ipright),0)) ipright = ipright+1
+ if (.not.btest(islur(ivx,ip),20)) then
+ multr = iand(15,mult(ivx,ipright))-8
+ else
+ multr = 1
+ end if
+ mua = multr-multip
+ if (mub.gt.0 .or. mua .lt. 0) then
+c
+c Multiplicity has increased from left or will decrease to right. Need action.
+c
+ if (isbjmp .and. ivx.eq.ivbj2) then
+ ivb = ivbj1
+ ulqq = chax(225-ichar(ulq(ivx,ibmcnt(ivx))))
+ else
+ ivb = ivx
+ ulqq = ulq(ivx,ibmcnt(ivx))
+ end if
+ if (mua .ge. 0) then
+ call ntrbbb(multip,'n',ulqq,ivb,notexq,lnote)
+ else if (multl .ge. multr) then
+ do 1 im = multip , 1+multr, -1
+ call ntrbbb(im,'t',ulqq,ivb,notexq,lnote)
+1 continue
+ else
+ do 2 im = 1+multr, multip
+ call ntrbbb(im,'r',ulqq,ivb,notexq,lnote)
+2 continue
+ call ntrbbb(multr,'n',ulqq,ivb,notexq,lnote)
+ end if
+ else if (ip .gt. 1) then
+c
+c Check for 2nd member of dotted xtup
+c
+ if (btest(nacc(ivx,ip-1),27)) call ntrbbb(multip+1,'t',
+ * ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+ end if
+c
+c Now put in the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+ isdotm = .false.
+ if (isdotted(nodur,ivx,ip)) then
+c
+c rule out ')'
+c
+ if (.not.btest(iornq(ivx,ip),13)) then
+ if (.not.btest(islur(ivx,ip),3)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+c
+c Double dot
+c
+ notexq = notexq(1:lnote)//'pp'
+ lnote = lnote+1
+ end if
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ else if (btest(nacc(ivx,ip),19)
+ * .or. btest(nacc(ivx,ip),27)) then
+c
+c Special dotted notation for 2:1 xtup, or normal dot in xtup
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+c
+c 5/25/08 Allow >12
+c
+ if (.not.(isbjmp.and.ivx.eq.ivbj2)) then
+c call istring(mod(ivx,12),tempq,len)
+ call istring(mod(ivx,24),tempq,len)
+ else
+c call istring(mod(ivbj1,12),tempq,len)
+ call istring(mod(ivbj1,24),tempq,len)
+ end if
+ notexq = notexq(1:lnote)//tempq(1:len)
+ lnote = lnote+len
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 2) then
+ notexq = notexq(1:lnote)//'{'//noteq(2:2)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamn1(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,isdotm,isbjmp,isbj2,drawbm
+ common /comoct/ noctup
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*8 noteq
+ character*79 notexq
+ ip1 = ipo(jn)
+ multip = iand(15,mult(ivx,ip1))-8
+c if (multip.le.0 .and. btest(irest(ivx,ip1),0)) then
+ if (.not.drawbm(ivx) .and. btest(irest(ivx,ip1),0)) then
+ lnote = 0
+c
+c The rest was already written in beamstrt, so just get out of here
+c
+ return
+ end if
+ nole = nolev(ivx,ipo(jn))
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ipo(jn)),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ipo(jn)),31)) then
+ nole = nole + 1
+ end if
+ if (vxtup(ivx) .and. .not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip1),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip1)
+ nodur(ivx,ip1) = 2**(4-multip)
+ if (btest(nacc(ivx,ip1),19) .or.
+ * btest(nacc(ivx,ip1),27)) nodur(ivx,ip1)=3*nodur(ivx,ip1)/2
+ call notex(notexq,lnote)
+ nodur(ivx,ip1) = ndsav
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip1))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = 3
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 4
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 5
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'
+ else if (multip .eq. -3) then
+ notexq = sq//'breve'
+ lnote = 6
+ else
+ print*
+ print*,'(Error in beamn1, send source to Dr. Don)'
+ call stop1()
+ end if
+ if (btest(nacc(ivx,ip1),19) .or. btest(nacc(ivx,ip1),27)) then
+ notexq = notexq(1:3)//'p'
+ lnote = 4
+ end if
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ end if
+ return
+ end if
+c
+c Check if mult. decreases from 1st note to 2nd
+c
+ if (ibm2(ivx,ibmcnt(ivx)).gt.ip1
+ * .or. btest(islur(ivx,ip1),20)) then
+c
+c More than one note or single-note before a multiplicity-down-up "]["
+c
+ if (btest(islur(ivx,ip1),20)) then
+ multr = 1
+ else if (.not.btest(irest(ivx,ip1+1),0)) then
+ multr = iand(15,mult(ivx,ip1+1))-8
+ else
+ multr = iand(15,mult(ivx,ip1+2))-8
+ end if
+ lnote = 0
+ if (multr .lt. multip) then
+ do 1 im = multip , multr+1 , -1
+ call ntrbbb(im,'r',ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+1 continue
+ end if
+ end if
+c
+c Put in the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+c
+c Check for dot
+c
+ isdotm = .false.
+ if (.not.vxtup(ivx)) then
+ nd = nodur(ivx,ipo(jn))
+ if (nd.ne.0) then
+ if (2**log2(nd).ne.nd) then
+ if (.not.btest(iornq(ivx,ip1),13)) then
+ if (.not.btest(islur(ivx,ip1),3)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+c
+c Double dot
+c
+ notexq = notexq(1:lnote)//'pp'
+ lnote = lnote+1
+ end if
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ end if
+ end if
+ else if (btest(nacc(ivx,ip1),19) .or.
+ * btest(nacc(ivx,ip1),27)) then
+c
+c In an xtup with special 2:1 notation with a dot on 1st note, or normal dot
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+c
+c Do the number; 0 if 12
+c
+c 5/25/08 allow >12
+c
+ if (.not.btest(irest(ivx,ip1),24)) then
+c call istring(mod(ivx,12),noteq,len)
+ call istring(mod(ivx,24),noteq,len)
+ else
+c call istring(mod(ivbj1,12),noteq,len)
+ call istring(mod(ivbj1,24),noteq,len)
+ end if
+ notexq = notexq(1:lnote)//noteq(1:len)
+ lnote = lnote+len
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip1))
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 1) then
+ notexq = notexq(1:lnote)//'{'//noteq(1:1)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamstrt(notexq,lnote,nornb,ihornb,space,squez,ib)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ character*79 inameq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,bar1syst,addbrack,flipend,xto,drawbm
+ common /comeskz2/ eskz2(nm,200)
+ common /comoct/ noctup
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+c
+c The following is just to save the outputs from SetupB for the case of
+c xtups starting with a rest, where beamstrt is called twice.
+c
+ common /comipb/ nnb,sumx,sumy,ipb(24),smed
+ character*8 noteq
+ character*79 notexq,tempq
+ integer nornb(nm),ihornb(nm,24)
+ real*4 space(80),squez(80)
+ logical novshrinktop,cstuplet,usexnumt
+ common /comnvst/ novshrinktop,cstuplet
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figq
+ ibc = ibmcnt(ivx)
+ ipb1 = ibm1(ivx,ibc)
+ multb = iand(15,mult(ivx,ipb1))-8
+ ip = ipo(jn)
+c
+c Compute slopes and note offsets from start of beam. Inside SetupB, for each
+c xtup in the beam, set eloff,mtupv (in comxtup) for printed number.
+c
+ if (ixrest(ivx).eq.0 .and. .not.btest(nacc(ivx,ip),21))
+ * call SetupB(xelsk,nnb,sumx,sumy,ipb,smed,ixrest(ivx))
+ if (btest(nacc(ivx,ip),21)) then
+c
+c This is start of later segment of single-slope beam group so use slope and
+c height from prior beam. Slope is already OK.
+c
+ issb(ivx) = issb(ivx)+1
+ nolev1(ivx) = lev1ssb(ivx,issb(ivx))
+ end if
+ lnote = 0
+ drawbm(ivx) = .true.
+ if (btest(irest(ivx,ipb1),28) .and. ixrest(ivx).ne.2) then
+ vxtup(ivx) = .true.
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+c
+c irest(28)=>Xtup starts on this note. Set up for xtuplet.
+c Number goes on notehead side at middle note (or gap) of xtup, unless that
+c puts it in staff, then it flops to stem (or beam) side.
+c __ __
+c | | | O | |
+c O | | O
+c |___| O |__| |
+c
+c iud -1 -1 1 1 ...stem direction
+c iflop 0 1 -1 0 ...direction of flop
+c iup -1 1 -1 1 ...direction of number and bracket
+c
+ iud = 1
+ if (ulq(ivx,ibc) .eq. 'u') iud = -1
+c
+c Get ip#, note level of middle note (or gap) in xtup
+c
+ ipmid = ipb1+ntupv(ivx,nxtinbm(ivx))/2
+ xnlmid = levrn(nolev(ivx,ipmid),irest(ivx,ipmid),iud,
+ * ncmid(iv,ipmid),iand(15,mult(ivx,ipmid))-8)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2) .eq. 0) xnlmid = (xnlmid+
+ * levrn(nolev(ivx,ipmid-1),irest(ivx,ipmid-1),iud,
+ * ncmid(iv,ipmid-1),iand(15,mult(ivx,ipmid-1))-8))/2
+ iflop = 0
+ if (abs(xnlmid-ncmid(iv,ipb1)).lt.3.) iflop = -iud
+ iup = iud+2*iflop
+ if (btest(irest(ivx,ipb1),14)) then
+c
+c Alter iud, iflop, iup to flip number/bracket. (Stare at above pic)
+c
+ iup = -iup
+ iflop = 0
+ if (iud*iup .lt. 0) iflop = iup
+ end if
+c
+c Determine if a beam is to be drawn
+c
+ do 5 ipp = ibm1(ivx,ibc),ibm2(ivx,ibc)
+ if (iand(15,mult(ivx,ipp))-8 .le. 0) then
+ drawbm(ivx) = .false.
+ go to 6
+ end if
+5 continue
+ drawbm(ivx) = .not.btest(islur(ivx,ibm1(ivx,ibc)),18)
+6 continue
+c
+c Are we using tuplet.tex?
+c
+ usexnumt = cstuplet .and. .not.drawbm(ivx)
+c
+c Place xtup number if needed
+c
+ if (.not.btest(islur(ivx,ipb1),31) .or. multb.le.0) then
+ mprint = igetbits(nacc(ivx,ip),5,22)
+ if (mprint.eq.0) mprint=mtupv(ivx,nxtinbm(ivx))
+ call putxtn(mprint,iflop,multb,iud,wheadpt,
+ * poenom,nolev1(ivx),islope(ivx),slfac,xnlmid,islur(ivx,ipb1),
+ * lnote,notexq,ncmid(iv,ipb1),nlnum,eloff(ivx,nxtinbm(ivx)),
+ * iup,irest(ivx,ipb1),usexnumt)
+ end if
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam
+c
+ if (.not.btest(islur(ivx,ipb1),31)) then
+c
+c Number printing has not been suppressed, so put in the bracket.
+c scale = stretch factor for bracket if there are asx's
+c xnsk = length of the bracket in \noteskips = (\elemskips)/(eon)
+c
+ xnsk = (eskz2(ivx,ipb1+ntupv(ivx,nxtinbm(ivx))-1)
+ * -eskz2(ivx,ipb1))/squez(ib)/feon(space(ib)/squez(ib))
+ if (iup .eq. 1) then
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'ovbkt'
+ else
+ notexq = sq//'ovbkt'
+ end if
+ else
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'unbkt'
+ else
+c
+c Introduced 12/5/98, req'd due to possible presence of in-line TeX
+c
+ notexq = sq//'unbkt'
+ end if
+ end if
+ lnote = lnote+6
+ if (iline.eq.1) then
+ smed = smed/(1.-fracindent)
+ end if
+ xslope = 1.8*smed*slfac
+ islope(ivx) = nint(xslope)
+ nolev1(ivx) = nlnum - nint(smed*eloff(ivx,1))
+ if (islope(ivx) .eq. 0) nolev1(ivx) = nolev1(ivx)-1
+ if (iup .eq. 1) nolev1(ivx) = nolev1(ivx)+4
+ levbracket = nolev1(ivx)
+ if (iup.eq.1 .and. cstuplet) levbracket = levbracket-1
+ call notefq(noteq,lnoten,levbracket,ncmid(iv,ipb1))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+lnoten+1
+ if (xnsk .lt. 0.995) then
+ write(notexq(lnote+1:lnote+4),'(i1,f3.2)')0,xnsk
+ lnote = lnote+4
+ else if (xnsk .lt. 9.995) then
+ write(notexq(lnote+1:lnote+4),'(f4.2)')xnsk
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+5),'(f5.2)')xnsk
+ lnote = lnote+5
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ if (btest(mult(ivx,ipb1),4)) then
+c
+c Tweak slope of bracket
+c
+ islope(ivx) = islope(ivx)+igetbits(mult(ivx,ipb1),5,5)-16
+ end if
+ if (islope(ivx).lt.0 .or. islope(ivx).ge.10) then
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (islope(ivx) .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')islope(ivx)
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+2),'(i2)')islope(ivx)
+ lnote = lnote+2
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+ write(notexq(lnote+1:lnote+1),'(i1)')islope(ivx)
+ lnote = lnote+1
+ end if
+c
+c Done with bracket
+c
+ end if
+ if (ixrest(ivx) .eq. 1) then
+c
+c Put in the rest. Possible problem: Rest is a spacing char, but between
+c beamstrt and beamn1 some non-spacing chars. are inserted.
+c
+ if (multb .eq. 0) then
+ notexq = notexq(1:lnote)//sq//'qp'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.1) then
+ notexq = notexq(1:lnote)//sq//'ds'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.2) then
+ notexq = notexq(1:lnote)//sq//'qs'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.3) then
+ notexq = notexq(1:lnote)//sq//'hs'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//sq//'hpause'
+ lnote = lnote+7
+ end if
+c
+c No need to come back through this subroutine (as would if rest starts bar
+c & multb>0), so do not advance ibm1. But must check in beamn1 and do nothing.
+c
+ ixrest(ivx) = 0
+ end if
+ return
+ end if
+c
+c End if block for non-beamed xtup start...note we returned
+c
+ if (ixrest(ivx) .eq. 1) then
+c
+c Insert rest at start of beamed xtup. See above note for possible problem.
+c
+ nodur(ivx,ipb1) = 2**(4-multb)
+ call notex(tempq,ltemp)
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//tempq(1:ltemp)
+ else
+ notexq = tempq(1:ltemp)
+ end if
+ lnote = lnote+ltemp
+c
+c Re-zero just in case!
+c
+ nodur(ivx,ipb1) = 0
+ ibm1(ivx,ibc) = ibm1(ivx,ibc)+1
+c
+c See if next note is a non-rest
+c
+ if (.not.btest(irest(ivx,ipb1+1),0)) then
+ ixrest(ivx) = 2
+ else
+c
+c Suppress reprinting xtup number next time through beamstrt
+c
+ islur(ivx,ipb1+1) = ibset(islur(ivx,ipb1+1),31)
+c
+c Set new xtup start flag
+c
+ irest(ivx,ipb1+1) = ibset(irest(ivx,ipb1+1),28)
+ end if
+ return
+ end if
+ end if
+c
+c Just ended if block for xtups
+c
+ if (vxtup(ivx) .and. ipb1.eq.ibm2(ivx,ibc)) then
+c
+c Move actual note writing to beamend
+c
+ ixrest(ivx) = 4
+ return
+ end if
+ if (issb(ivx) .eq. 0) then
+c
+c 1st bmstrt in single-slope bm grp, Adjust start level(s) and slope if needed
+c
+ iadj = igetbits(ipl(ivx,ipb1),6,11)-30
+ if (iadj .ne. -30) then
+ nolev1(ivx) = nolev1(ivx)+iadj
+ do 2 isssb = 1 , nssb(ivx)
+ lev1ssb(ivx,isssb) = lev1ssb(ivx,isssb)+iadj
+2 continue
+ end if
+ iadj = igetbits(ipl(ivx,ipb1),6,17)-30
+ if (iadj .ne. -30) then
+ islope(ivx) = islope(ivx)+iadj
+ if (abs(islope(ivx)) .gt. 9) islope(ivx) = sign(9,islope(ivx))
+ if (nssb(ivx) .gt. 0) then
+c
+c Cycle thru non-rest notes in SSBG, looking for bmstrts.
+c
+ isssb = 0
+ do 4 inb = 2, nnb
+ if (btest(nacc(ivx,ipb(inb)),21)) then
+c
+c Beam segment start. New start level
+ isssb = isssb+1
+ lev1ssb(ivx,isssb) =
+ * lev1ssb(ivx,isssb)+islope(ivx)*xelsk(inb)/slfac
+ end if
+4 continue
+ end if
+ end if
+ end if
+ iadj = igetbits(islur(ivx,ipb1),2,27)
+ addbrack = .false.
+ if (btest(ipl(ivx,ipb1),30)) then
+c
+c Check for altered starting polarity. Only in forced beams. Nominal start
+c level is nolev1. So beam level is nolev1 +/- 6, to be compared w/ nolev(.,.).
+c
+ if (ulq(ivx,ibc).eq.'u' .and.
+ * nolev1(ivx)+6.lt.nolev(ivx,ipb1)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'loff{'
+ else
+ notexq = notexq(1:lnote)//sq//'loff{'
+ end if
+ lnote = lnote+6
+ addbrack = .true.
+ else if (ulq(ivx,ibc).eq.'l' .and.
+ * nolev1(ivx)-6.gt.nolev(ivx,ipb1)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'roff{'
+ else
+ notexq = notexq(1:lnote)//sq//'roff{'
+ end if
+ lnote = lnote+6
+ addbrack = .true.
+ end if
+c
+c Check end level for possible flipping in forced beam. Have to do it
+c here since with multiple voices, xelsk will not be preserved.
+c
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') then
+ bmlev = nolev1(ivx)+6+islope(ivx)*xelsk(nnb)/slfac
+ flipend(ivx) = bmlev.lt.nolev(ivx,ibm2(ivx,ibc))
+ else if (ulq(ivx,ibmcnt(ivx)) .eq. 'l') then
+ bmlev = nolev1(ivx)-6+islope(ivx)*xelsk(nnb)/slfac
+ flipend(ivx) = bmlev.gt.nolev(ivx,ibm2(ivx,ibc))
+ end if
+ end if
+ call ntrbbb(multb+iadj,'i',ulq(ivx,ibc),ivx,notexq,lnote)
+c
+c Put in name of start level and slope, after correcting nolev1 if xtup
+c started with a rest.
+c
+ if (ixrest(ivx).eq.2) nolev1(ivx) =
+ * nint(nolev1(ivx)+xelsk(1)*islope(ivx)/slfac)
+ call notefq(noteq,lnoten,nolev1(ivx),ncmid(iv,ipb1))
+ if (islope(ivx) .lt. 0) then
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+4+lnoten
+ write(notexq(lnote-2:lnote),'(i2,a1)')islope(ivx),'}'
+ else
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+1+lnoten
+ write(notexq(lnote:lnote),'(i1)')islope(ivx)
+ end if
+c
+c Check for beam-thk fine-tuning
+c
+ if (iadj .gt. 0) then
+ do 1 imp = multb+iadj , multb+1 , -1
+ call ntrbbb(imp,'t',ulq(ivx,ibc),ivx,notexq,lnote)
+1 continue
+ end if
+c
+c If we shifted, must close with right bracket
+c
+ if (addbrack) then
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+c
+c Get 'floor' zmin for figures
+c Note: Will not come thru here on 1st note of unbeamed xtup, so figure height
+c won't be adjusted. If anyone ever needs that, need to duplicate this
+c functionality up above, before exiting.
+c
+ if (figbass .and. (ivx.eq.1 .or. ivx.eq.ivxfig2)) then
+ if (ivx .eq. 1) then
+ ivf = 1
+ else
+ ivf = ivxfig2
+ end if
+ zmult = 1.2*(multb-1)
+ ymin = 100.
+ do 3 inb = 1, nnb
+ if (isfig(ivf,ipb(inb))) then
+ if (ulq(iv,ibc) .eq. 'u') then
+ ybot = nolev(iv,ipb(inb))
+ else
+ ybot = islope(ivx)/slfac*xelsk(inb)+nolev1(ivx)
+ * -stemlen-zmult
+ end if
+ ymin = min(ymin,ybot)
+ end if
+3 continue
+ maxdrop = ncmid(iv,ipb1)-4-ymin+5.01
+ ifigdr(ivf,iline) = max(ifigdr(ivf,iline),maxdrop)
+ end if
+c
+c Compute ornament levels if needed
+c
+ NomOrnLev = ncmid(iv,ipb1)+5
+ iorn = 0
+ do 8 inb = 1 , nnb
+ ip = ipb(inb)
+ if (.not.btest(iornq(ivx,ip),23)) go to 8
+ if (btest(irest(ivx,ip),26) .and. ulq(ivx,ibc).eq.'l') then
+c
+c letter-dynamic or hairpin ending under down-beamed
+c
+ iorn = iorn+1
+ ybeam = nolev1(ivx)-stemlen+islope(ivx)*xelsk(inb)/slfac+1
+ * -1.2*(multb-1)
+ ihornb(ivx,iorn) = min(nint(ybeam-3.),NomOrnLev-10)
+ else if (.not.btest(ipl(ivx,ip),10)) then
+c
+c Bits 0-13: (stmgx+Tupf._) , 14: Down fermata, was F
+c 15: Trill w/o "tr", was U , 16-18 Editorial s,f,n , 19-21 TBD
+c
+c Non-chord. There IS an ornament. Need ihornb only if upbeam, and if
+c ornament is 1,2,3,5,6,7,8,9,10,15-21 (up- but not domn ferm.)
+c
+ if (ulq(ivx,ibc).eq.'u' .and.
+ * iand(iornq(ivx,ipb(inb)),4163566).gt.0) then
+ iorn = iorn+1
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),22)
+ ybeam = nolev1(ivx)+stemlen+islope(ivx)*xelsk(inb)/slfac-1
+ * +1.2*(multb-1)
+ ihornb(ivx,iorn) = max(nint(ybeam+3.),NomOrnLev)
+ end if
+ else
+c
+c In a chord. Orn may be on main note or non-main or both. Set ihornb if
+c upbeam and highest note has orn, or down beam and lowest. Find 1st chord note
+c
+ do 10 icrd1 = 1 , ncrd
+ if (iand(255,icrdat(icrd1)) .eq. ip .and.
+ * iand(15,ishft(icrdat(icrd1),-8)) .eq. ivx) go to 11
+10 continue
+11 continue
+c
+c Find outermost note, min or max depending on beam direction ulq. xto is true
+c if there's an ornament on that note. Expand orn list to include ._, since if
+c on extreme chord note in beam, will move.
+c So ornaments are all except 0,4,13 (,g,)
+c
+ levx = nolev(ivx,ip)
+ xto = iand(iornq(ivx,ipb(inb)),4186094).gt.0
+ icrdx = 0
+ do 12 icrd = icrd1 , ncrd
+ if (iand(255,icrdat(icrd)) .ne. ip .or.
+ * iand(15,ishft(icrdat(icrd),-8)) .ne. ivx) go to 13
+ levc = iand(127,ishft(icrdat(icrd),-12))
+ if ((ulq(ivx,ibc).eq.'u'.and.levc.gt.levx) .or.
+ * (ulq(ivx,ibc).eq.'l'.and.levc.lt.levx)) then
+ levx = levc
+ icrdx = icrd
+ xto = iand(icrdorn(icrd),4186094).gt.0
+ end if
+12 continue
+13 continue
+c
+c If there's orn on extreme note, do stuff
+c
+ if (xto) then
+ iorn = iorn+1
+ if (ulq(ivx,ibc) .eq. 'u') then
+ ybeam = nolev1(ivx)+stemlen+islope(ivx)*xelsk(inb)/slfac-1
+ * +1.2*(multb-1)
+ ihornb(ivx,iorn) = max(nint(ybeam+3.),NomOrnLev)
+ else
+ ybeam = nolev1(ivx)-stemlen+islope(ivx)*xelsk(inb)/slfac+1
+ * -1.2*(multb-1)
+ ihornb(ivx,iorn) = min(nint(ybeam-3.),NomOrnLev-10)
+ end if
+ if (icrdx .eq. 0) then
+c
+c Affected ornament is on main note
+c
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),22)
+ else
+ icrdorn(icrdx) = ibset(icrdorn(icrdx),22)
+ end if
+ end if
+ end if
+8 continue
+c
+c Henceforth nornb will be a counter.
+c
+ if (iorn .gt. 0) nornb(ivx)=1
+ if (ixrest(ivx) .eq. 2) ixrest(ivx) = 0
+ return
+ end
+ block data
+ parameter (nm=24)
+ common /comtol/ tol
+ common /comtrans/ cheadq
+ common /compage/ widthpt,ptheight,nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /cblock/
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inhnoh
+ common /cominbot/ inbothd
+ logical usefig
+ common /comstart/ facmtr
+ character*60 cheadq
+ character*120 instrq,titleq,compoq
+ logical headlog
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /combmh/ bmhgt,clefend
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /comsize/ isize(nm)
+c
+ data tol /.001/
+ data cheadq
+ * /' '/
+ data gslfac /9./
+ data instrq,titleq,compoq,headlog /3*' ',.false./
+c
+c meter space (pts) = xb4mbr = musicsize*facmtr
+c
+ data facmtr /0.55/
+ data grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,clefend,bmhgt
+ * / 1.3333,.4 , .7 , .3 , 0.2 , 2.0 , 1.0 ,
+ * .7,.7 ,.9 ,.5 ,2.3 ,1.1 /
+ data rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,arpfac
+ * / 1.32 , 2.25 , 0.47 , 0.83 , 0.17 , 0.5 , 1.7 /
+ data rtshfac / 1.0 /
+ data isize /nm*0/
+c
+c From other
+c
+ data ptheight,widthpt,
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inbothd,inhnoh
+ * / 740. , 524. ,
+ * .50 , .25 , 0.4 , 0.4 , 0.2 , 12. ,21. , 12.,
+ * 4 , 1.6 ,5.,5.7,1.071,2.714,16 ,16 /
+ data fracsys /30*0./
+ data ivowg,hoh1,hoh2,hoh2h1 /0,0,0,0,0,1,1,1,1,1,1,1,
+c * 2.0,1.5,1.0,0.5,1.3,1.3,0.4,0.8,1.2,0.8,1.2,1.6,
+ * 2.2,1.7,1.2,0.7,1.3,1.3,0.4,0.8,1.2,0.8,1.2,1.6,
+ * -2.7,-2.2,-1.7,-1.2,-2.3,-2.1,-1.0,-1.7,-2.1,-1.6,-1.9,-2.3,
+ * -0.3,0.3 /
+ data kbdrests /.false./,
+ * levtopr /9,7,5,5,7,5,6,6/, levbotr /0,0,0,2,1,4,5,4/
+ data EarlyTransOn, LaterInstTrans /2*.false./
+ data iInstTrans /nm*0/
+ end
+ subroutine catspace(space,squez,nnsk)
+ parameter (nkb=3999,maxblks=4000)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /comtol/ tol
+ logical gotclef
+ do 16 iptr = nptr(ibarcnt) , nptr(ibarcnt+1)-1
+ if (abs(space-durb(iptr)) .lt. tol) then
+ if (abs(squez-sqzb(iptr)) .lt. tol) then
+c
+c Increment pre-existing entry
+c
+ nnpd(iptr) = nnpd(iptr)+nnsk
+ return
+ end if
+ end if
+16 continue
+c
+c Didn't find current duration & squez, so add a new entry.
+c No particular reason to keep in order, so add at the end.
+c
+ nnpd(nptr(ibarcnt+1)) = nnsk
+ durb(nptr(ibarcnt+1)) = space
+ sqzb(nptr(ibarcnt+1)) = squez
+ nptr(ibarcnt+1) = nptr(ibarcnt+1)+1
+ return
+ end
+ character*1 function chax(n)
+c
+c The only reason for this seemingly do-nothing function is to get around an
+c apparent bug in the Visual Fortran Standard Edition 5.0.A compiler!
+c
+ chax = char(n)
+ return
+ end
+ subroutine checkdyn(lineq,iccount,ibar)
+ character*128 lineq
+ character*1 durq,chax
+ character*4 dynsymq
+ logical txtdyn
+ txtdyn = .false.
+c
+c On entry, iccount is on "D"
+c
+ if (lineq(iccount+1:iccount+1) .eq. '"') then
+c
+c Dynamic text
+c
+ iend = index(lineq(iccount+2:128),'"')
+ if (iend .eq. 0) then
+ call errmsg(lineq,iccount+1,ibar,
+ * 'Dynamic text must be terminated with double quote!')
+ call stop1()
+ end if
+c
+c Set iccount to character after 2nd ", and set ipm
+c
+ iccount = iccount+iend+2
+ ipm = index('- +',lineq(iccount:iccount))
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected "-", "+", or blank here!')
+ call stop1()
+ end if
+ else
+c
+c Expect ordinary dynamic
+c
+ do 1 iend = iccount+2 , 128
+ ipm = index('- +',lineq(iend:iend))
+ if (ipm .gt. 0) go to 2
+1 continue
+2 continue
+ if (iend-iccount.gt.5 .or. iend-iccount.lt.2) then
+ call errmsg(lineq,iend-1,ibar,
+ * 'Wrong length for dynamic mark!')
+ call stop1()
+ end if
+ read(lineq(iccount+1:iend-1),'(a'//chax(47+iend-iccount)//')')
+ * dynsymq
+ idno = (index(
+ * 'ppppppp pp p mp mf f fp sfz ff fff ffff< > ',
+ * dynsymq)+3)/4
+ if (idno .eq. 0) then
+ call errmsg(lineq,iccount+1,ibar,'Illegal dynamic mark!')
+ call stop1()
+ end if
+ iccount = iend
+ end if
+ if (ipm .ne. 2) then
+c
+c There is a vertical shift, have "+" or "-"
+c
+ iccount = iccount+1
+ if (index('0123456789',lineq(iccount:iccount)) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected integer here for vertical offset!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(fnum)
+ if (idno .gt. 63) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Vertical offset for dynamic mark must be (-63,63)!')
+ call stop1()
+ end if
+ ipm = index('- +',durq)
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected "+", "-", or blank here!')
+ call stop1()
+ end if
+ if (ipm .ne. 2) then
+c
+c There is a horizontal shift
+c
+ iccount = iccount+1
+ if (index('.0123456789',lineq(iccount:iccount)) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected number here for horizontal offset!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(10*fnum)
+ if (idno .gt. 255) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Horizontal offset for dynamic mark must be (-25.5,25.5)!')
+ call stop1()
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibar,
+ * 'There should be a blank here!')
+ call stop1()
+ end if
+ end if
+c
+c iccount should be on the blank at the end of the entire symbol
+c
+ end if
+ return
+ end
+ subroutine chkarp(ncrd,icrdat,ivx,ip,iscacc,isarp)
+c subroutine chkarp(found1,ncrd,icrdat,icrdot,ivx,ip,isacc,isarp,
+c * icashft)
+ logical found1,iscacc,isarp,btest
+ integer icrdat(193)
+ found1 = .false.
+c
+c icashft will be max left shift of accid's in chord notes.
+c Used only for spacing checks.
+c Will include left shift of chord note itself.
+c Rezero after use.
+c
+ do 18 icrd = 1 , ncrd
+c
+c This if block cycles thru all chord notes on ivx,ip; then returns.
+c
+ if (iand(255,icrdat(icrd)) .eq. ip .and.
+ * iand(15,ishft(icrdat(icrd),-8)) .eq. ivx) then
+ found1 = .true.
+ iscacc = iscacc .or.
+ * (btest(icrdat(icrd),19).and..not.btest(icrdat(icrd),27))
+c
+c Accid on this chord note, and it's not midi-only.
+c
+c irshft = igetbits(icrdot(icrd),7,20)
+cc
+cc Include increment for notehead shift
+cc
+c if (btest(icrdat(icrd),23)) then
+c if (irshft .eq. 0) then
+c irshft = 44
+c else
+c irshft=irshft-20
+c end if
+c end if
+c if (irshft .ne. 0) then
+cc
+cc Accid on chord note is shifted. Include only left shift, in 20ths.
+cc
+c if (irshft .lt. 64) icashft = max(icashft,64-irshft)
+c end if
+c end if
+ isarp = isarp .or. btest(icrdat(icrd),25)
+ else if (found1) then
+ return
+ end if
+18 continue
+ return
+ end
+ subroutine chkimidi(icm)
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ if (imidi(icm) .ge. mv) then
+ print*
+ print*,'Midi file is too long! It will be corrupted or worse'
+ write(*,'(a6,2x,4i8)')
+ * 'imidi:',imidi(0),imidi(1),imidi(2),imidi(3)
+ end if
+ return
+ end
+ subroutine chklit(lineq,iccount,literr)
+ character*128 lineq
+ character*1 charq,chax
+ literr = 0
+ itype = 1
+17 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. chax(92)) then
+ itype = itype+1
+c if (itype .eq. 2) then
+c if (iccount .ne. 2 ) then
+cc
+cc type 2 or 3 tex string not starting in column 1
+cc
+c literr = 3
+c return
+c end if
+c else if (itype .gt. 3) then
+ if (itype .gt. 3) then
+ literr = 1
+ return
+ end if
+ go to 17
+ end if
+ lenlit = itype
+18 call g1etchar(lineq,iccount,charq)
+ if (charq.eq.chax(92)) then
+ call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+c
+c Starting a new tex command withing the string
+c
+ lenlit = lenlit+2
+ if (lenlit .gt. 128) then
+ literr = 2
+ return
+ end if
+ go to 18
+ end if
+ else
+ lenlit = lenlit+1
+ if (lenlit .gt. 128) then
+ literr = 2
+ return
+ end if
+ go to 18
+ end if
+ return
+ end
+ subroutine chkpm4ac(lineq,iccount,nacc,moved)
+c
+c Called after getting +/-/</> in a note (not rest). iccount is on the +-<>.
+c Sets moved=.true. and sets move parameters in nacc if necc: horiz only (bits
+c 10-16) if < or >, horiz and vert (bits 4-9) if two consecutive signed
+c numbers. If moved=.true., iccount on exit is on end of last number.
+c If moved=.false., iccount still on +/-
+c
+ logical moved,ishorz
+ character*128 lineq
+ character*1 durq
+ if (index('sfnA',lineq(iccount-1:iccount-1)).gt.0 .and.
+ * index('0123456789.',lineq(iccount+1:iccount+1)).gt.0) then
+c
+c Prior char was accid & next is #; this may be start of accidental shift.
+c Must test for "." above in case we get "<" or ">"
+c
+ ipm = index('- +< >',lineq(iccount:iccount))-2
+ if (lineq(iccount+1:iccount+1).eq.'.' .and.
+ * index('0123456789',lineq(iccount+2:iccount+2)).eq.0) then
+c
+c Rare case of [accid][+/-].[letter]. Bail out
+c
+ moved = .false.
+ return
+ end if
+ ishorz = ipm .gt. 1
+c
+c Save iccount in case it's not accid shift and we have to reset.
+c
+ icsav = iccount
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (ishorz .or. index('+-',durq).gt.0) then
+c
+c This has to be accidental shift. Set vert. shift.
+c
+ if (.not.ishorz) then
+c
+c +/- syntax, both shifts set, vertical first
+c
+ call setbits(nacc,6,4,int(ipm*fnum+32.5))
+ ipm = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ else
+c
+c </> syntax, only horiz set
+c
+ ipm = ipm-3
+ end if
+c
+c Set horiz. shift
+c
+ call setbits(nacc,7,10,nint(20*(ipm*fnum+5.35)))
+ iccount = iccount-1
+ moved = .true.
+ else
+c
+c False alarm. Reset everything and flow onward
+c
+ moved = .false.
+ iccount = icsav
+ end if
+ else
+c
+c Either prior char was not 'sfn' or next was not digit, so take no action
+c
+ moved = .false.
+ end if
+ return
+ end
+ subroutine clefsym(isl,notexq,lnote,nclef)
+c
+c Returns string calling Don's TeX macro \pmxclef, for drawing small clefs.
+c
+ character*(*) notexq
+ character*1 chax
+ nclef = iand(ishft(isl,-12),7)
+ if (nclef .eq. 0) then
+c
+c treble
+c
+ nlev = 2
+ else if (nclef .gt. 6) then
+c
+c French violin
+c
+ nlev = 0
+ else if (nclef .lt. 5) then
+c
+c C-clef
+c
+ nlev = 2*nclef-2
+ else
+c
+c F-clef
+c
+ nlev = 2*nclef-6
+ end if
+ notexq = chax(92)//'pmxclef'//chax(48+min(nclef,7))
+ * //chax(48+nlev)
+ lnote = 10
+ return
+ end
+ subroutine crdacc(nacc,naccid,micrd,nolevm,rmsshift,lasttime,
+ * levmaxacc,icrdot0,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+c
+c nacc = accidental bitmap for main note
+c naccid = # of accid's in chord
+c micrd = array with icrd #'s for notes w/ acc's, 0=>main note
+c nolevm = level of main note
+c segrb(1|2,.) x|y-coord of right-bdry segment
+c ksegrb(.) internal use; tells what defined this segment
+c -2: Left-shifted notehead
+c -1: Original right boundary
+c 0: Main note accidental
+c icrd: Chord-note accidental
+c isetshft(i),i=1,naccid: what set shift for this accid, same codes
+c icrdot0 = top-down level-rank of main note among accid-notes
+c icrdot(icrd)(27-29) = level rank of chord-note among accid-notes
+c twooftwo will be true 2nd time thru; signal to store shifts w/ notes
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ real*4 segar(5,2,6),segal(5,2,6),segrb(2,50),segrb0(2,50)
+ integer*4 nsegar(5),nsegal(5),micrd(10),iacctbl(6),ksegrb(50),
+ * isetshft(10),ksegrb0(50)
+ logical lasttime,mainnote,twooftwo
+ data nsegar / 3,4,3,3,2 /, nsegal / 2,4,3,3,2 /
+ data segar /
+c
+c Fancy sharp boundary. fl,sh,na,dfl,dsh
+c
+ * -0.05,-0.38,-0.34,-.05, -.15,-1.4,-2.9,-3.0, -1.4, -1.2,
+c * -0.75,-0.20,-0.80, 0. , 0. , .96,-1.04,1.6, 0. , 0. ,
+c meas value for y, natural is 1.6
+ * -0.75,-0.20,-0.80,-.75, 0. , .96,-1.04,1.48, .96, 1.2,
+ * 0.00,-0.38, 0.00, 0. , 0. ,3.15, 1.64,3.0, 3.15, 0. ,
+ * 0. , 0.00, 0. , 0. , 0. , 0. , 2.90, 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. /
+ data segal /
+c * 0.00, 0.00,-1.04, 0. , 0. ,3.15, 2.9,-1.6, 0. , 0. ,
+cc (meas. value is 3.08) ^^^^
+cc Raise top of flat so it interferes with bottom of sharp
+ * -1.00,-1.02,-0.60,-1.65, -1.2,-1.4,-2.9, -3.0, -1.4, -1.2,
+ * 0.00,-1.20,-1.04, 0. , 0. ,3.15,-1.64,-1.48,3.15, 1.2,
+ * 0. ,-1.02, 0.00, 0. , 0. , 0. , 1.04, 3.0, 0. , 0. ,
+ * 0. , 0.00, 0. , 0. , 0. , 0. , 2.9 , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. /
+c
+c iacctbl(i) = internal accid # (1-5) when i=extern accid # (1,2,3,5,6)
+c
+ data iacctbl / 1 , 2 , 3 , 0 , 4 , 5 /
+c
+c Set up barrier segrb(iseg,ipoint) to define coords of corner points
+c on stem+notes
+c
+ do 11 iseg = 1 , nsegrb0
+ segrb(1,iseg) = segrb0(1,iseg)
+ segrb(2,iseg) = segrb0(2,iseg)
+ ksegrb(iseg) = ksegrb0(iseg)
+11 continue
+ nsegrb = nsegrb0
+ rmsshift = 0.
+ shiftmin = 1000.
+ do 1 iwa = 1 , naccid
+c
+c Initialize shift for this note
+c
+ shift = 0.
+ mainnote = micrd(iwa).eq.0
+ isetshft(iwa) = -1
+c
+c Get note level and accidental type
+c
+ if (mainnote) then
+ nolev = nolevm
+ iacctype = iacctbl(igetbits(nacc,3,0))
+ else
+ nolev = igetbits(icrdat(micrd(iwa)),7,12)
+ iacctype = iacctbl(igetbits(icrdat(micrd(iwa)),3,20))
+ end if
+c
+c Cycle thru segments on right edge of this accidental
+c
+ do 2 isega = 1 , nsegar(iacctype)-1
+ ybotaseg = nolev+segar(iacctype,2,isega)
+ ytopaseg = nolev+segar(iacctype,2,isega+1)
+c
+c Cycle thru segments of right-hand barrier
+c
+ do 3 isegrb = 1 , nsegrb-1
+c
+c Must find all barrier segments that start below ytopseg & end above ybotseg
+c
+ if (segrb(2,isegrb) .lt. ytopaseg) then
+c
+c Barrier seg starts below top of accid
+c Check if barrier seg ends above bottom of accid
+c
+ if (segrb(2,isegrb+1) .gt. ybotaseg) then
+ if (shift .gt.
+ * segrb(1,isegrb)-segar(iacctype,1,isega)) then
+ shift = segrb(1,isegrb)-segar(iacctype,1,isega)
+c
+c Record the cause of the shift
+c
+ isetshft(iwa) = ksegrb(isegrb)
+ end if
+ end if
+c
+c Does barrier segment end above top of accid seg?
+c
+ if (segrb(2,isegrb+1) .gt. ytopaseg) go to 4
+ end if
+3 continue
+4 continue
+2 continue
+ if (.not.btest(nacc,28) .and. abs(shift).gt.0.0001
+ * .and. .not.lasttime) then
+c if (nolev .eq. levmaxacc) then
+ if (nolev.eq.levmaxacc .and. isetshft(iwa).eq.-1) then
+ rmsshift = 1000.
+ return
+ end if
+c
+c Does the following properly account for left-shifted noteheads?
+c
+c Top-down rank of this note we just shifted
+c
+ if (mainnote) then
+ irank = icrdot0
+ else
+ irank = igetbits(icrdot(micrd(iwa)),3,27)
+ end if
+c
+c Compare level-rank of this note vs. that of note that caused the shift.
+c This has effect of checking for basic interferences from top down.
+c
+c ksegrb(.) internal use; tells what defined this segment
+c -2: Left-shifted notehead
+c -1: Original right boundary
+c 0: Main note accidental
+c icrd: Chord-note accidental
+c isetshft(i),i=1,naccid: what set shift for this accid, same codes
+c
+ if (isetshft(iwa) .lt. 0) then
+ iranksetter = 0
+ else if (isetshft(iwa) .eq. 0) then
+ iranksetter = icrdot0
+ else
+ iranksetter = igetbits(icrdot(isetshft(iwa)),3,27)
+ end if
+ if (iranksetter.ne.0 .and. irank.ne.iranksetter+1) then
+ rmsshift = 1000.
+ return
+ end if
+ end if
+ rmsshift = rmsshift+shift**2
+ if (lasttime .and. abs(shift).gt..0001) then
+ if (mainnote) then
+ if (.not.btest(nacc,29)) go to 10
+ else
+ if (.not.btest(icrdat(micrd(iwa)),29)) go to 10
+ end if
+c
+c If here, "A" was set on a manual shift, so must cumulate the shift. Note that if there
+c was a manual shift but auto-shift was zero, will not come thru here, but shift value
+c will be left intact.
+c
+ if (mainnote) then
+ shift = shift+.05*(igetbits(nacc,7,10)-107)
+ else
+ shift = shift+.05*(igetbits(icrdot(micrd(iwa)),7,20)-107)
+ end if
+10 continue
+ if (twooftwo) then
+c
+c Record the shift for this accidental
+c
+ if (shift .lt. -5.35) then
+ call printl(' ')
+ call printl('WARNING: auto-generated accidental '//
+ * 'shift too big for PMX, ignoring')
+ else
+ ishift = nint(20*(shift+5.35))
+ if (mainnote) then
+ call setbits(nacc,7,10,ishift)
+ else
+ call setbits(icrdot(micrd(iwa)),7,20,ishift)
+ end if
+ end if
+ else
+c
+c This is the earlier call to precrd, so need minimum shift
+c
+ shiftmin = min(shiftmin,shift)
+ end if
+ end if
+c
+c Bail out if this is the last accidental to check
+c
+ if (iwa .eq. naccid) go to 1
+c
+c Add this accidental to the right barrier! Count down from highest barrier segment,
+c find 1st one starting below top of accid, and first one starting below bot.
+c
+ do 5 ibelowtop = nsegrb , 1 , -1
+ if (segrb(2,ibelowtop) .lt.
+ * nolev+segal(iacctype,2,nsegal(iacctype))) then
+ do 9 ibelowbot = ibelowtop , 1 , -1
+ if (segrb(2,ibelowbot) .lt.
+ * nolev+segal(iacctype,2,1)) go to 6
+9 continue
+ print*,'Oops2!'
+ call stop1()
+ end if
+5 continue
+ print*,'Ugh0! in crdaccs'
+ call stop1()
+6 continue
+ netgain = nsegal(iacctype)-ibelowtop+ibelowbot
+c
+c Shift high segments up
+c
+ if (netgain .ge. 0) then
+ do 7 isegrb = nsegrb , ibelowtop+1 , -1
+ segrb(1,isegrb+netgain) = segrb(1,isegrb)
+ segrb(2,isegrb+netgain) = segrb(2,isegrb)
+ ksegrb(isegrb+netgain) = ksegrb(isegrb)
+7 continue
+c
+c Set up 1st segment above accid
+c
+ segrb(1,ibelowtop+netgain) = segrb(1,ibelowtop)
+ segrb(2,ibelowtop+netgain) =
+ * nolev+segal(iacctype,2,nsegal(iacctype))
+ ksegrb(ibelowtop+netgain) = ksegrb(ibelowtop)
+ else
+c
+c netgain<0, must remove segments. Use same coding but reverse order,
+c work from bottom up
+c
+ segrb(1,ibelowtop+netgain) = segrb(1,ibelowtop)
+ segrb(2,ibelowtop+netgain) =
+ * nolev+segal(iacctype,2,nsegal(iacctype))
+ ksegrb(ibelowtop+netgain) = ksegrb(ibelowtop)
+ do 12 isegrb = ibelowtop+1 , nsegrb
+ segrb(1,isegrb+netgain) = segrb(1,isegrb)
+ segrb(2,isegrb+netgain) = segrb(2,isegrb)
+ ksegrb(isegrb+netgain) = ksegrb(isegrb)
+12 continue
+ end if
+c
+c Insert new segments
+c
+ do 8 isega = 1 , nsegal(iacctype)-1
+ segrb(1,ibelowbot+isega) = shift+segal(iacctype,1,isega)
+ segrb(2,ibelowbot+isega) = nolev+segal(iacctype,2,isega)
+ if (mainnote) then
+ ksegrb(ibelowbot+isega) = 0
+ else
+ ksegrb(ibelowbot+isega) = micrd(iwa)
+ end if
+8 continue
+c
+c Update number of barrier segments
+c
+ nsegrb = nsegrb+netgain
+cc
+cc Temporary printout for boundary segments as built up
+cc
+c write(15,'()')
+c write(15,'(a/(2f8.2,i5))')' y x kseg',
+c * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb)
+c write(15,'(a/(2i5))')' micrd isetshft',
+c * (micrd(iwa1),isetshft(iwa1),iwa1=1,iwa)
+cc
+1 continue ! next accidental
+ if (lasttime .and. .not.twooftwo) then
+c
+c This is the final call on the pre-ask pass, so compute left-shift rqmt.
+c
+ icashft = nint(-20*shiftmin)
+ end if
+cc
+cc Temporary printout for boundary segments
+cc
+c if (twooftwo) then
+c write(15,'()')
+c write(15,'(a/(2f8.2,i5))')' y x kseg',
+c * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb)
+c write(15,'(a/(2i5))')' micrd isetshft',
+c * (micrd(iwa),isetshft(iwa),iwa=1,naccid)
+c end if
+cc
+ return
+ end
+ subroutine crdaccs(nacc,ipl,irest,naccid,kicrd,nolevm,
+ * levmaxacc,levminacc,icrdot0,twooftwo,icashft)
+c
+c nacc = accidental bitmap for main note
+c naccid = # of accid's in chord
+c kicrd = array with icrd #'s for notes w/ acc's, 0=>main note
+c nolevm = level of main note
+c
+c This is called once per multi-accidental chord. In here, loop over all
+c permutations of the order of accidental as stored in kicrd. Each time thru
+c loop, call crdacc once, get rms shift. Only save permutation and rms value
+c if it is less than old value.
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+c
+c Make consistent? 120106
+c integer*4 kicrd(7),iperm(7),micrd(10),ipermsav(7),ksegrb0(50)
+ integer*4 kicrd(10),iperm(7),micrd(10),ipermsav(7),ksegrb0(50)
+ real*4 segrb0(2,50)
+ logical btest,tagged,manual,lshift,twooftwo
+cc
+cc Temporary printout of level-rankings
+cc
+c write(15,'()')
+c do 98 iacc = 1 , naccid
+c if (kicrd(iacc) .eq. 0) then
+c write(15,'(3i5)')nolevm,icrdot0
+c else
+c write(15,'(2i5)')igetbits(icrdat(kicrd(iacc)),7,12),
+c * igetbits(icrdot(kicrd(iacc)),3,27)
+c end if
+c98 continue
+cc
+c
+c Initialize right-barrier
+c
+ segrb0(1,1) = 0.
+ segrb0(2,1) = -1000.
+ segrb0(1,2) = 0.
+ segrb0(2,2) = 1000.
+ nsegrb0 = 2
+ ksegrb0(1) = -1
+ ksegrb0(2) = -1
+c
+c Search for left-shifted notes, Make up the initial right-barrier, which
+c will be good for all permutations.
+c irest()(27) is set if any notes are left-shifted
+c Must use ALL chord notes, not just ones w/ accid's.
+c
+ if (btest(irest,27)) then
+ do 15 icrd = icrd1-1, icrd2
+ if (icrd .eq. icrd1-1) then
+c
+c Main note
+c
+c lshift = btest(ipl,8)
+ lshift = btest(ipl,8) .or. btest(nacc,31)
+ if (lshift) nolev = nolevm
+ else
+c
+c Chord note
+c
+ lshift = btest(icrdat(icrd),23)
+c if (lshift) nolev = igetbits(icrdat(icrd),7,12)
+ if (lshift) then
+ nolev = igetbits(icrdat(icrd),7,12)
+ if (btest(nacc,31) .and. nolev.eq.nolevm+1) then
+c
+c This note is not really shifted, It is the upper of a 2nd with the main
+c note on an upstem, and Main note must be shifted.
+c nacc(31) signals the real truth.
+c
+ lshift = .false.
+ end if
+ end if
+ end if
+ if (lshift) then
+ do 16 isegrb = 1 , nsegrb0-1
+ if (segrb0(2,isegrb+1) .gt. nolev-1) then
+c
+c Add this notehead to the right boundary here. Move all higher segs up 2.
+c
+ do 17 iiseg = nsegrb0 , isegrb+1 , -1
+ segrb0(1,iiseg+2) = segrb0(1,iiseg)
+ segrb0(2,iiseg+2) = segrb0(2,iiseg)
+ ksegrb0(iiseg+2) = ksegrb0(iiseg)
+17 continue
+ go to 18
+ end if
+16 continue
+18 continue
+c
+c Insert notehead into list. Set kseg=-2 to signal notehead shift.
+c
+ iiseg = isegrb+1
+ segrb0(1,iiseg) = -1.2
+ segrb0(2,iiseg) = nolev-1.
+ ksegrb0(iiseg) = -2
+ segrb0(1,iiseg+1) = 0.
+ segrb0(2,iiseg+1) = nolev+1.
+ ksegrb0(iiseg+1) = -1
+ nsegrb0 = nsegrb0+2
+ end if
+15 continue
+ end if
+c
+c Done setting right barrier for left-shifted noteheads
+c
+ tagged = .false.
+ manual = .false.
+c
+c Preprocess to check for manual shifts.
+c If are manual main [nacc(10-16)] or chord note [icrdot(20-26)]shifts, then
+c If any manual shift is preceded by "A" [nacc(29), icrdat(29)] then
+c 1. Auto-shifting proceeds
+c 2. "A"-shifts add to autoshifts
+c 3. non-"A" shifts are ignored!
+c Else (>0 man shifts, none has "A")
+c No auto-ordering, No autoshifts, Observe all manual shifts.
+c End if
+c End if
+c
+ maxmanshft = 0
+ do 13 i = 1 , naccid
+ if (kicrd(i) .eq. 0) then
+c
+c Main note
+c
+ manshft = igetbits(nacc,7,10)
+ if (manshft .ne. 0) then
+ manual = .true.
+ if (btest(nacc,29)) then
+ tagged = .true.
+ else
+c maxmanshft = max(maxmanshft,64-manshft)
+ maxmanshft = max(maxmanshft,107-manshft)
+ end if
+ end if
+ else
+c
+c Chord note
+c
+ manshft = igetbits(icrdot(kicrd(i)),7,20)
+ if (manshft .ne. 0) then
+ manual = .true.
+ if (btest(icrdat(kicrd(i)),29)) then
+ tagged = .true.
+ else
+c maxmanshft = max(maxmanshft,64-manshft)
+ maxmanshft = max(maxmanshft,107-manshft)
+ end if
+ end if
+ end if
+13 continue
+ if (manual) then
+ if (tagged) then
+c
+c zero out all untagged shifts
+c
+ do 14 i = 1 , naccid
+ if (kicrd(i) .eq. 0) then
+ if (.not.btest(nacc,29)) call setbits (nacc,7,10,0)
+ else
+ if (.not.btest(icrdat(kicrd(i)),29))
+ * call setbits (icrdot(kicrd(i)),7,20,0)
+ end if
+14 continue
+ else
+c
+c There are manual shifts but none tagged. Only proceed if "Ao" was entered
+c
+ if (.not.btest(nacc,28)) then
+ icashft = maxmanshft
+ return
+ end if
+ end if
+ end if
+ if (btest(nacc,28)) then
+c
+c Take the accidentals in order as originally input, then exit.
+c
+ call crdacc(nacc,naccid,kicrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+c end if
+ else if (naccid .eq. 3) then
+c
+c Special treatment if 3 accidentals in chord. If there aren't accids on a 2nd
+c then place in order top, bottom, middle.
+c
+ do 20 i = 1 , 3
+ if (kicrd(i) .eq. 0) then
+ irank = icrdot0
+ nolev = nolevm
+ else
+ irank = igetbits(icrdot(kicrd(i)),3,27)
+ nolev = igetbits(icrdat(kicrd(i)),7,12)
+ end if
+ if (irank .eq. 1 ) then
+ micrd(1) = kicrd(i)
+ else
+ micrd(5-irank) = kicrd(i)
+ end if
+ if (irank .eq. 2) then
+ levmidacc = nolev
+ end if
+20 continue
+ if (levmaxacc.ne.levmidacc+1 .and.
+ * levmidacc.ne.levminacc+1) then
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+ end if
+ end if
+ rmsmin = 100000.
+c
+c Initialize permutation array
+c
+ do 7 i = 1 , naccid
+ iperm(i) = i
+7 continue
+c
+c Start looping over permutations
+c
+ do 8 ip = 1 , 5041
+ if (ip .ne. 1) then
+c
+c Work the magic algorithm to get the next permutation
+c
+ do 1 k = naccid-1 , 1 , -1
+ if (iperm(k) .le. iperm(k+1)) go to 2
+1 continue
+c
+c If here, we just got the last permutation, so exit the loop over permutations
+c
+ go to 10
+2 continue
+ do 3 j = naccid , 1 , -1
+ if (iperm(k) .le. iperm(j)) go to 4
+3 continue
+4 continue
+ it = iperm(j)
+ iperm(j) = iperm(k)
+ iperm(k) = it
+ is = k+1
+ do 5 ir = naccid , 1 , -1
+ if (ir .le. is) go to 6
+ it = iperm(ir)
+ iperm(ir) = iperm(is)
+ iperm(is) = it
+ is = is+1
+5 continue
+6 continue
+ end if
+c
+c New we have a permutation. Take icrd values out of kicrd and put them into
+c micrd in the order of the permutation
+c
+ do 9 i = 1 , naccid
+ micrd(i) = kicrd(iperm(i))
+9 continue
+cc
+cc Temporary printout
+cc
+c write(15,'(/a6,10i3)')'perm:',(iperm(i),i=1,naccid)
+cc
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.false.,
+ * levmaxacc,icrdot0,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+cc
+cc Temporary printout
+cc
+c write(15,*)'perm done, rmsshift:',rmsshift
+cc
+ if (rmsshift .lt. rmsmin) then
+c
+c Save this permutation, reset minrms
+c
+ do 11 i = 1 , naccid
+ ipermsav(i) = iperm(i)
+ rmsmin = rmsshift
+11 continue
+ end if
+8 continue
+ print*,'Should not BEEEEEE here!'
+ call stop1()
+10 continue
+c
+c Done looping, get info for the final choice
+c
+ do 12 i = 1 , naccid
+ micrd(i) = kicrd(ipermsav(i))
+12 continue
+cc
+cc Temporary printout
+cc
+c write(15,'(/a6,10i3)')'Final perm:',(ipermsav(i),i=1,naccid)
+cc
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+ end
+ subroutine doacc(ihshft,ivshft,notexq,lnote,nacc,nolev,ncm,caut)
+ character*1 sq,chax
+ character*3 acsymq
+ character*8 noteq
+ character*79 notexq
+ logical btest,caut
+ sq = chax(92)
+ if (ihshft .eq. -107) ihshft=0
+cc
+cc If main note shifted left, so shift accid. Terminate below, when acc. is done.
+cc
+ if (ihshft .ne. 0) then
+c
+c Accid must be shifted horizontally
+c
+ if (ihshft .lt. 0) then
+ notexq = sq//'loffset{'
+ ihshft = -ihshft
+ else
+ notexq = sq//'roffset{'
+ end if
+ hshft = .05*ihshft
+ if (hshft .lt. 1.) then
+ write(notexq(10:12),'(f3.2)')hshft
+ lnote = 12
+ else
+ write(notexq(10:13),'(f4.2)')hshft
+ lnote = 13
+ end if
+ notexq = notexq(1:lnote)//'}{'//sq
+ lnote = lnote+3
+ else
+ notexq = sq
+ lnote = 1
+ end if
+ if (btest(nacc,3)) then
+ notexq = notexq(1:lnote)//'big'
+ lnote = lnote+3
+ end if
+ if (caut) then
+c
+c Cautionary accidental. Need to define bigcna,... in pmx.tex
+c
+ notexq = notexq(1:lnote)//'c'
+ lnote = lnote+1
+ end if
+ call accsym(nacc,acsymq,lacc)
+ notexq = notexq(1:lnote)//acsymq(1:lacc)
+ lnote = lnote+lacc
+ noleva = nolev
+ if (ivshft .ne. 0) noleva = noleva+ivshft-32
+ call notefq(noteq,lnoten,noleva,ncm)
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihshft .ne. 0) then
+c
+c Terminate horizontal shift
+c
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ return
+ end
+ subroutine docrd(ivx,ip,nodu,ncm,iv,tnow,soutq,lsout,ulq,ibmcnt,
+ * islur,nvmx,nv,beamon,nolevm,ihornb,nornb,stemlen,
+ * dotxtup,nacc)
+ parameter (nm=24,mv=24576)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ logical lowdot,dotxtup
+ integer*4 ihornb(nm,24),nornb(nm)
+ character*1 ulq(nm,9),chax
+ character*7 nosymq
+ character*8 noteq
+ character*79 notexq,outq
+ character*80 soutq
+ logical btest,isleft,isright,beamon
+ character*79 inameq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+c
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c
+c This subr. once produced notexq for entire chord. 10/18/97 altered to write
+c chord notes as we go. 10/22/97 find range of icrd first.
+c 2/25/98 moved rangefinding to precrd so done before slurs, so now
+c on entry, icrd1, icrd2 define range of icrd for this chord.
+c
+c Set counter (for this note) for chord notes present. Set notmain=T.
+c Will test for notmain=.true. in addmidi to tell whether to save pitch.
+c
+ nmidcrd = 0
+ notmain = .true.
+ crdacc = .false.
+ do 5 icrd = icrd1 , icrd2
+ lnote = 0
+ nolev = igetbits(icrdat(icrd),7,12)
+c
+c 3/8/03 save original pitch to use in midi, in case 2nds alter things.
+c
+ nolevo = nolev
+c
+c Check for special situations with 2nds (see precrd).
+c
+ if (btest(nacc,30)) then
+ if (nolev .eq. nolevm-1) nolev = nolevm
+ else if (btest(nacc,31)) then
+ if (nolev .eq. nolevm+1) nolev = nolevm
+ end if
+c
+c Lower dot for lower-voice notes?. Conditions are:
+c 1. Dotted time value
+c 2. Lower voice of two
+c 3. Note is on a line
+c 4. Not a rest (cannot be a rest in a chord!)
+c. 5. Flag (lowdot) is set to true
+c
+ if (lowdot .and. nvmx.eq.2 .and. ivx.le.nv) then
+ if (2**log2(nodu).ne.nodu .and. mod(nolev-ncm,2).eq.0) then
+ if (btest(icrdat(icrd),26)) then
+c
+c Note already in movdot list. Drop by 2.
+c
+ call setbits(icrdot(icrd),7,0,
+ * igetbits(icrdot(icrd),7,0)-20)
+ else
+c
+c Not in list so just move it right now
+c
+ call dotmov(-2.,0.,soutq,lsout,igetbits(islur,1,3))
+ end if
+ end if
+ end if
+ if (btest(icrdat(icrd),26)) then
+c
+c Move the dot.
+c
+ updotc = 0.1*(iand(127,icrdot(icrd))-64)
+ rtdotc = 0.1*(iand(127,ishft(icrdot(icrd),-7))-64)
+ call dotmov(updotc,rtdotc,soutq,lsout,igetbits(islur,1,3))
+ end if
+ isleft = btest(icrdat(icrd),23)
+ isright = btest(icrdat(icrd),24)
+c
+c Check for ornament in chord.
+c
+ if (icrdorn(icrd) .gt. 0) then
+ call putorn(icrdorn(icrd),nolev,nolevm,nodu,nornb,ulq,
+ * ibmcnt,ivx,ncm,islur,nvmx,nv,ihornb,stemlen,outq,lout,
+ * ip,0,beamon,.true.)
+c
+c subroutin putorn(iornq,nolev,nolevm,nodur,nornb,ulq,ibmcnt,ivx,
+c * ncm,islur,nvmx,nv,ihornb,stemlen,outq,lout,ip,islhgt,
+c * notcrd,beamon,iscrd)
+c
+ call addstr(outq,lout,soutq,lsout)
+ end if
+c
+c Chord-note symbol. First check for breve
+c
+ if (nodu .eq. 128) then
+ nosymq = chax(92)//'zbreve'
+ lsym = 7
+ else
+c
+c Not a breve chord. Get first letters in chord-note symbol
+c
+ if (isleft) then
+ nosymq = chax(92)//'l'
+ else if (isright) then
+ nosymq = chax(92)//'r'
+ else
+ nosymq = chax(92)//'z'
+ end if
+ if (nodu .ge. 64) then
+ nosymq = nosymq(1:2)//'w'
+ else if (nodu .ge. 32) then
+ nosymq = nosymq(1:2)//'h'
+ else
+ nosymq = nosymq(1:2)//'q'
+ end if
+ if (2**log2(nodu).eq.nodu .and. .not.dotxtup) then
+ lsym = 3
+ else if (.not.btest(islur,3) .or. dotxtup) then
+c
+c Single dot
+c
+ nosymq = nosymq(1:3)//'p'
+ lsym = 4
+ else
+c
+c Double dot
+c
+ nosymq = nosymq(1:3)//'pp'
+ lsym = 5
+ end if
+ end if
+ if (btest(icrdat(icrd),19).and..not.btest(icrdat(icrd),27)) then
+c
+c Accidental and not MIDI-only. Build up bits 0-3 of nacc
+c
+ nactmp = igetbits(icrdat(icrd),3,20)
+c
+c Kluge for bigness. Only means 'As' has not been issued
+c
+ if (bacfac .ne. 1.e6) nactmp = nactmp+8
+ call doacc(igetbits(icrdot(icrd),7,20)-107,
+ * igetbits(icrdot(icrd),6,14),
+c * notexq,lnote,nactmp,nolev,ncmid(iv,ip))
+c Get original nolev, not altered to deal with 2nds
+ * notexq,lnote,nactmp,igetbits(icrdat(icrd),7,12),
+c * ncmid(iv,ip))
+ * ncmid(iv,ip),btest(icrdat(icrd),31))
+ notexq = notexq(1:lnote)//nosymq
+ crdacc = .true.
+ else
+ notexq = nosymq
+ end if
+ lnote = lnote+lsym
+c
+c Get note name (again if accid, due to possible octave jump)
+c
+ call notefq(noteq,lnoten,nolev,ncm)
+ if (lnoten.eq.1) call addblank(noteq,lnoten)
+c
+c Put in note name
+c
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ if (btest(icrdat(icrd),25)) then
+c
+c Arpeggio signal
+c
+c call putarp(tnow,iv,ip,nolev,ncm,soutq,lsout)
+ call putarp(tnow,ivx,ip,nolev,ncm,soutq,lsout)
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ if (ismidi) then
+c
+c Here is where we collect MIDI pitch info for the chord note. By checking
+c notmain, addmidi(...) knows to just compute the
+c pitch number and store it in mcpitch(nmidcrd). Then on call to addmidi()
+c for MAIN note, will put in note codes for all chord notes + main note.
+c
+ kv = 1
+ if (ivx .gt. iv) kv=2
+ nmidcrd = nmidcrd+1
+ if (nmidcrd .gt. 20) then
+ print*
+ print*,'21 chord notes is too many for midi processor'
+ call stop1()
+ end if
+c
+c Use original saved pitch level, unaltered by 2nds logic.
+c
+c call addmidi(midchan(iv,kv),nolevo,
+ call addmidi(midchan(iv,kv),nolevo-iTransAmt(instno(iv)),
+ * igetbits(icrdat(icrd),3,20),isig,1.,.false.,.false.)
+ end if
+5 continue
+ notmain = .false.
+ return
+ end
+ subroutine dodyn(ivx,ip,nolev,ncm,ipl,islur,irest,nvmx,nv,
+ * beamon,ihornb,nornb,ulq,ibmcnt,nostem,soutq,lsout)
+ parameter (nm=24)
+c
+c Inputs are array *elements* except ihornb,nornb,ulq
+c
+ common /commus/ musize,whead20
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ logical btest,beamon,upstem,nostem
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical fontslur,upslur,WrotePsslurDefaults
+ character*1 udqq,chax,ulq(nm,9)
+ character*4 dynstrq
+ character*5 numpq
+ character*48 dyntablq,tempq
+ character*79 notexq
+ character*80 soutq
+ integer*4 ihornb(nm,24),nornb(nm),idynn(10)
+ data dyntablq /'ppppppp pp p mp mf f fp sfz ff fff ffff'/
+ numdyn = 0
+c
+c Find dynamics for (ivx,ip) in list. May be as many as 4. Store idyn values
+c in idynn(1...4)
+c
+ do 1 idyn = 1 , ndyn
+c ivxtent = iand(idyndat(idyn),15)
+ ivxtent = iand(idyndat(idyn),15)
+ * +16*igetbits(idynda2(idyn),1,10)
+ if (ivxtent .eq. ivx) then
+ iptent = igetbits(idyndat(idyn),8,4)
+ if (iptent .eq. ip) then
+ numdyn = numdyn+1
+ idynn(numdyn) = idyn
+ else if (iptent .gt. ip) then
+c
+c I don't think there are any more possible for this ivx,ip, so exit loop
+c
+ go to 2
+ end if
+c else if (ivxtent .gt. ivx) then
+c go to 2
+ end if
+1 continue
+2 continue
+c
+c At this point there is a list of idyn's in idynn(1...numdyn)
+c Compute level, and stem-dir'n-based horizontal tweaks
+c
+ hoffsd = 0.
+c
+c Set upstem to false as default
+c
+ upstem = .false.
+ if (btest(irest,0)) then
+c
+c It's a rest. Assume it doesn't go below the staff
+c
+ lbot = ncm-4
+ else if (.not.beamon) then
+ if (udqq(nolev,ncm,islur,nvmx,ivx,nv).eq.'u' .or. nostem) then
+ upstem = .true.
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-1,ncm-4)
+ else
+ lbot = min(minlev-1,ncm-4)
+ end if
+ else
+ hoffsd = -.5
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-7,ncm-4)
+ else
+ lbot = min(minlev-7,ncm-4)
+ end if
+ end if
+ else
+ if (ulq(ivx,ibmcnt) .eq. 'u') then
+ upstem = .true.
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-1,ncm-4)
+ else
+ lbot = min(minlev-1,ncm-4)
+ end if
+ else
+ hoffsd = -.5
+ lbot = ihornb(ivx,nornb(ivx))+1
+ if (lbot .eq. 1) then
+c
+c Kluge for non-beamed, down xtup, for which ihorb was never set.
+c Assumes stem is shortened.
+c
+ lbot = nolev-5
+ end if
+ nornb(ivx) = nornb(ivx)+1
+ end if
+ end if
+ lbot = lbot-5
+ jtxtdyn1 = 1
+c
+c Now ready to loop over current dyn's
+c
+ do 3 icntdyn = 1 , numdyn
+ idynd = idyndat(idynn(icntdyn))
+ idynd2 = idynda2(idynn(icntdyn))
+ idno = igetbits(idynd,4,12)
+c ivx = iand(15,idynd)
+ ivx = iand(15,idynd)+16*igetbits(idynd2,1,10)
+c
+c Build the command into notex in stages. Insert name & rq'd args in order:
+c
+c Command name
+c hpstrt, hpcend, hpdend, pmxdyn
+c ivx
+c X X X
+c level
+c X X X
+c hoff
+c X X X X
+c d-mark
+c X
+c
+ if (idno .eq. 0) then
+c
+c Text-dynamic
+c
+ notexq = chax(92)//'txtdyn'
+ lnote = 7
+ else if (idno .le. 12) then
+c
+c Letter-group
+c
+ notexq = chax(92)//'pmxdyn'
+ lnote = 7
+ else if (fontslur) then
+ lnote = 7
+ if (idno .eq. 13) then
+c
+c Start a hairpin
+c
+ notexq = chax(92)//'hpstrt'
+ else if (idno .eq. 14) then
+c
+c End crescendo
+c
+ notexq = chax(92)//'hpcend'
+ else
+c
+c End decrescendo
+c
+ notexq = chax(92)//'hpdend'
+ end if
+ else
+c
+c Postscript hairpins
+c
+ lnote = 7
+ if (idno .eq. 13) then
+ notexq = chax(92)//'Icresc'
+ else if (idno .eq.14) then
+ notexq = chax(92)//'Idecresc'
+ lnote = 9
+ else
+ notexq = chax(92)//'Tcresc'
+ end if
+ end if
+ if (idno .ge. 13) then
+c
+c Put in voice number
+c
+ if (ivx .le. 9) then
+ notexq = notexq(1:lnote)//char(48+ivx)
+ lnote = lnote+1
+ else if (ivx .le. 19) then
+ notexq = notexq(1:lnote)//'{1'//char(38+ivx)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//char(28+ivx)//'}'
+ lnote = lnote+4
+ end if
+ end if
+c
+c Begin setting level
+c
+ lbot1 = lbot
+ if (idno.gt.0 .and. idno.le.5) then
+c
+c All letters are short so raise a bit.
+c
+ lbot1 = lbot1+1
+ else if (idno .ge. 13) then
+ lbot1 = lbot1+2
+ end if
+c
+c Convert so reference is bottom line
+c
+ lbot1 = lbot1-ncm+4
+ if ((fontslur.and.idno.eq.13) .or.
+ * ((.not.fontslur).and.(idno.eq.13.or.idno.eq.14))) then
+c
+c Hairpin start. Save level and user-tweak before applying user tweak.
+c
+ levdsav(ivx) = lbot1
+ levhssav(ivx) = 0
+ if (btest(idynd,16)) levhssav(ivx) = -64+igetbits(idynd,7,17)
+ else if ((fontslur.and.idno.ge.14) .or. idno.eq.15) then
+c
+c Hairpin end; Compare level with saved start level before user-tweaks
+c
+ lbot1 = min(lbot1,levdsav(ivx))
+c
+c Save pre-tweak level
+c
+ lpretweak = lbot1
+ end if
+c
+c Check for user-defined vertical tweak
+c
+ if (btest(idynd,16)) lbot1 = lbot1-64+igetbits(idynd,7,17)
+c
+c Now horizontal stuff
+c
+ hoff = hoffsd
+c
+c Some special horizontal tweaks
+c
+ if (upstem .and. idno.gt.0 .and.
+ * (idno.le.4 .or. idno.eq.8 .or. idno.eq.9)) hoff = hoff+.4
+c
+c User-defined tweaks
+c
+ if (btest(idynd2,0))
+ * hoff = hoff+(igetbits(idynd2,9,1)-256)*.1
+ if (numdyn .gt. 1) then
+c
+c Horizontal-interaction-based tweaks.
+c
+c Cases:
+c numdyn type1 type2 type3 data used
+c 2 wrd-grp hrpnstrt - ivowg(1...12),hoh1(1...12)
+c 2 hrpnend wrd-grp - ivowg,hoh2
+c 2 hrpnend hrpnstrt - hoh2h1(1...2)
+c 3 hrpnend wrd-grp hrpnstrt ivowg,hoh2,hoh1
+c
+ if (idno.gt.0 .and. idno.le.12) then
+c
+c Word-group, may need vertical tweak to line up.
+c
+ lbot1 = lbot1+ivowg(idno)
+c
+c Protecting against hp start-stop on same note
+c
+ else if (((fontslur.and.idno.ge.14).or.idno.eq.15)
+ * .and. icntdyn.lt.numdyn) then
+c
+c Hairpin ending, check next type
+c
+ if ((fontslur .and.
+ * igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.13)
+ * .or. (.not.fontslur .and.
+ * ((igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.13)
+ * .or.
+ * (igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.14))))
+ * then
+c
+c Hairpin end then hairpin start, no words, (remember dealing with end now)
+c
+ hoff = hoff+hoh2h1(1)
+ else
+c
+c Hairpin end then word-group, need idno for w-g to set hp offset
+c
+ hoff = hoff +
+ * hoh2(igetbits(idyndat(idynn(icntdyn+1)),4,12))
+ end if
+c
+c Protecting against hp start-stop on same note
+c
+ else if (icntdyn.gt.1 .and. idno.gt.0 .and.
+ * ((fontslur.and.idno.lt.14).or.
+ * (.not.fontslur.and.idno.lt.15))) then
+c
+c Hairpin start, check prior type
+c
+ if ((fontslur.and.
+ * igetbits(idyndat(idynn(icntdyn-1)),4,12).ge.14)
+ * .or.
+ * (.not.fontslur.and.
+ * igetbits(idyndat(idynn(icntdyn-1)),4,12).eq.15))
+ * then
+c
+c Hairpin end then hairpin start, (remember dealing with start now)
+c
+ hoff = hoff+hoh2h1(2)
+ else
+c
+c Hairpin start after word-group, need idno for w-g to set hp offset
+c
+ hoff = hoff+
+ * hoh1(igetbits(idyndat(idynn(icntdyn-1)),4,12))
+ end if
+ end if
+ end if
+c
+c End of if-block for 2- or 3-way interactions.
+c
+ if ((.not.fontslur) .and. idno.ge.13)
+c
+c Slur font and hairpin. Add hoff, and change from \interneote to \qn@width
+c
+ * hoff = (hoff+.5)*6./2.5
+c
+c Position corrections all done now. Put in the level.
+c
+ if ((fontslur.and.idno.eq.13) .or.
+ * ((.not.fontslur).and.(idno.eq.13.or.idno.eq.14))) then
+c
+c Hairpin start.
+c
+ if (.not.fontslur) then
+c
+c Postscript hairpin start...inset placeholder for start level.
+
+ notexq = notexq(1:lnote)//'{ }'
+ lnote = lnote+5
+ end if
+ else
+c
+c Insert actual level in all cases except hairpin start
+c Create string with level in it
+c
+ if (lbot1 .gt. 9) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else if (lbot1 .gt. -1) then
+ numpq = char(48+lbot1)
+ lnumpq = 1
+ else if (lbot1 .gt. -10) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else
+ numpq = '{'
+ write(numpq(2:4),'(i3)')lbot1
+ numpq = numpq(1:4)//'}'
+ lnumpq = 5
+ end if
+c
+c Level has now been computed and stored in numpq
+c Append the level
+c
+ notexq = notexq(1:lnote)//numpq(1:lnumpq)
+ lnote = lnote+lnumpq
+ end if
+ if (abs(hoff) .lt. .001) then
+c
+c No horiz offset
+c
+ notexq = notexq(1:lnote)//'0'
+ lnote = lnote+1
+ else
+c
+c Horizontal tweak
+c
+ lform = lfmt1(hoff)
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')hoff
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ if (idno .eq. 0) then
+c
+c text-dynamic. Find the string and append it
+c
+ do 4 jtxtdyn = jtxtdyn1 , ntxtdyn
+c ivxip = ivx+16*ip
+ ivxip = ivx+32*ip
+ if (ivxip .eq. ivxiptxt(jtxtdyn)) go to 5
+4 continue
+ call printl('Abnormal stop in putdyn')
+ call stop1()
+5 continue
+ ltxtdyn = lenstr(txtdynq(jtxtdyn),128)
+c
+c Font size based on musicsize
+c
+ if (musize .eq. 20) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'medtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ else if (musize .eq. 16) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'normtype'
+ * //char(92)//'it '
+ lnote = lnote+14
+ else if (musize .eq. 24) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'bigtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ else if (musize .eq. 29) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'Bigtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ end if
+ notexq = notexq(1:lnote)//txtdynq(jtxtdyn)(1:ltxtdyn)
+ * //'}'
+ lnote = lnote+ltxtdyn+1
+c
+c Reset jtxtdyn1 just in case >1 txtdyn on same note.
+c
+ jtxtdyn1 = jtxtdyn+1
+ else if (idno .le. 12) then
+c
+c Letter-group dynamic. Append the letter-group command
+c
+ id = 4*idno
+ dynstrq = dyntablq(id-3:id)
+ id = lenstr(dynstrq,4)
+ notexq = notexq(1:lnote)//chax(92)//dynstrq(1:id)
+ lnote = lnote+1+id
+ end if
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+ if ((.not.fontslur).and.idno.eq.15) then
+c
+c PS slurs on, hairpin is ending. Go back and set height at beginning.
+c Add user-defined tweak to default level
+c
+ lbot1 = lpretweak+levhssav(ivx)
+ if (lbot1 .gt. 9) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else if (lbot1 .gt. -1) then
+ numpq = char(48+lbot1)
+ lnumpq = 1
+ else if (lbot1 .gt. -10) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else
+ numpq = '{'
+ write(numpq(2:4),'(i3)')lbot1
+ numpq = numpq(1:4)//'}'
+ lnumpq = 5
+ end if
+c
+c Construct string to search backwards for placeholder
+c
+ if (ivx .le. 9) then
+ tempq = 'cresc'//char(48+ivx)//'{ }'
+ ltemp = 11
+ else if (ivx .le. 19) then
+ tempq = 'cresc'//'{1'//char(38+ivx)//'}{ }'
+ ltemp = 14
+ else
+ tempq = 'cresc'//'{2'//char(28+ivx)//'}{ }'
+ ltemp = 14
+ end if
+ write(11,'(a)')soutq(1:lsout)//'%'
+ lsout = 0
+ call backfill(11,tempq,ltemp,
+ * tempq(1:ltemp-5)//numpq(1:lnumpq),ltemp-5+lnumpq)
+ end if
+3 continue
+c
+c Shrink arrays, decrease ndyn 111109
+c
+ do 6 icntdyn = numdyn, 1 , -1
+ do 7 jdyn = idynn(icntdyn) , ndyn-1
+ idyndat(jdyn) = idyndat(jdyn+1)
+ idynda2(jdyn) = idynda2(jdyn+1)
+7 continue
+ ndyn = ndyn-1
+6 continue
+ end
+ subroutine dograce(ivx,ip,ptgr,soutq,lsout,ncm,nacc,ig,ipl,
+ * farend,
+ * beamon,nolev,ncmidx,islur,nvmx,nv,ibmcnt,tnote,ulq)
+c
+c ip will be one LESS than current note, for way-after's before bar-end,
+c It is only used to find ig.
+c ig is returned to makeabar in case there's a slur that needs to be ended
+c
+ parameter (nm=24)
+ logical beamon,stemup
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comoct/ noctup
+ logical upg,slurg,slashg,bar1syst,upslur,btest,isgaft,iswaft,
+ * normsp,farend,fontslur,WrotePsslurDefaults
+ real*4 ptgr(37)
+ character*80 soutq
+ character*128 litq
+ character*79 notexq
+ character*20 voltxtq
+ character*10 figq
+ character*8 noteq,noteqGA
+ character*3 acsymq
+ character*1 sq,chax,udqq,ulq(nm,9)
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ sq = chax(92)
+ isgaft = btest(ipl,29)
+ iswaft = btest(ipl,31)
+ normsp = .not. isgaft
+c
+c Find ig.
+c
+ do 120 ig = 1 , ngrace
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 121
+120 continue
+ print*,'Problem finding grace index in dograce'
+ stop
+121 continue
+ ngs = ngstrt(ig)
+ mg = multg(ig)
+ wheadpt1 = wheadpt*fullsize(ivx)
+c
+c For way-after-graces at end of bar, must set the octave.
+c
+ if (farend) then
+ noctup = 0
+ if (ncm .eq.23) noctup = -2
+ end if
+ if (slurg(ig) .and. .not.iswaft .and..not.isgaft) then
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You defined the twentyfifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You defined the twentyfifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Slur on fore-grace. Get index of next slur not in use, from 23 down.
+c
+ ndxslur = log2(16777215-listslur)
+
+ end if
+ if (nng(ig) .eq. 1) then
+c
+c Single grace.
+c
+ if (normsp) then
+c
+c Anything but GA
+c
+ call addstr(sq//'shlft',6,soutq,lsout)
+ niptgr = nint(ptgr(ig))
+c
+c Empirical tweak for postscript.
+c
+C if (.not.fontslur) niptgr = niptgr+nint(wheadpt*.3)
+c++
+ if (niptgr .lt. 10) then
+ call addstr(chax(48+niptgr)//'{',2,soutq,lsout)
+ else if (niptgr .lt. 100) then
+ write(notexq(1:2),'(i2)')niptgr
+ call addstr('{'//notexq(1:2)//'}{',5,soutq,lsout)
+ else
+ print*,
+ * 'Call Dr. Don if you really want grace note group > 99 pt'
+ stop
+ end if
+ else
+ call addstr(sq//'gaft{1.5}{',11,soutq,lsout)
+c
+c GA. Compute aftshft, for later use.
+c
+ aftshft = grafac
+ if (naccg(ngstrt(ig)).gt.0) aftshft = aftshft+agc1fac
+ aftshft = aftshft*wheadpt
+ end if
+ if (slurg(ig) .and. .not.isgaft .and..not.iswaft) then
+c
+c Start slur on pre-grace. No accounting needed since will be ended very soon.
+c
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (fontslur) then
+ if (upg(ig)) then
+ call addstr(sq//'islurd',7,soutq,lsout)
+ else
+ call addstr(sq//'isluru',7,soutq,lsout)
+ end if
+ else
+c
+c Start Postscript slur.
+c
+ if (upg(ig)) then
+ call addstr(sq//'isd',4,soutq,lsout)
+ else
+ call addstr(sq//'isu',4,soutq,lsout)
+ end if
+ end if
+c
+c Print slur number, 23-ndxslur
+c
+ lnote = 0
+ if (23-ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = chax(71-ndxslur)
+ lnote = 1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = '{1'//chax(61-ndxslur)//'}'
+ lnote = 4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = 4
+ end if
+c if (11-ndxslur .lt. 10) then
+c call addstr(chax(59-ndxslur)//noteq(1:lnoten),1+lnoten,
+c * soutq,lsout)
+c else
+c call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten),
+c * 4+lnoten,soutq,lsout)
+c end if
+ call addstr(notexq(1:lnote)//noteq(1:lnoten),
+ * lnote+lnoten,soutq,lsout)
+ if (.not.fontslur) then
+c
+c Horizontal tweaks for postscript slur on single grace
+c
+ stemup = .true.
+ if (upg(ig)) then
+c
+c Check for up-grace + down stem. Get stem direction
+c
+ if (.not.beamon) then
+c
+c Separate note. Get stem direction.
+c
+ stemup = udqq(nolev,ncmidx,
+ * islur,nvmx,ivx,nv) .eq. 'u'
+ else
+c
+c In a beam
+c
+ stemup = ulq(ivx,ibmcnt) .eq. 'u'
+ end if
+c
+c Stop the shift if whole note
+c
+ stemup = stemup .or. tnote.gt.63
+ end if
+ if (stemup) then
+ call addstr('{-.3}',5,soutq,lsout)
+ else
+ call addstr('{-.8}',5,soutq,lsout)
+ end if
+ end if
+ end if
+ if (naccg(ngs) .gt. 0) then
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+c
+c Save for checking octave shifts in GA
+c
+ if (isgaft) then
+ lnotenGA = lnoten
+ noteqGA = noteq
+ end if
+c
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ngs),acsymq,lacc)
+ call addstr(sq//'big'//acsymq(1:lacc)//
+ * noteq(1:lnoten),4+lacc+lnoten,soutq,lsout)
+ end if
+ if (slashg(ig)) then
+ notexq = sq//'grc'
+ lnote = 4
+ else if (mg .eq. 0) then
+ notexq = sq//'zq'
+ lnote = 3
+ else
+ notexq = sq//'zc'
+ do 61 i = 2 , mg
+ notexq = notexq(1:i+1)//'c'
+61 continue
+ lnote = mg+2
+ end if
+ if (upg(ig)) then
+ notexq = notexq(1:lnote)//'u'
+ else
+ notexq = notexq(1:lnote)//'l'
+ end if
+ call addstr(notexq,lnote+1,soutq,lsout)
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+c
+ if (isgaft .and. naccg(ngs).eq.0) then
+ lnotenGA = lnoten
+ noteqGA = noteq
+ end if
+c
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call addstr(noteq,lnoten,soutq,lsout)
+ if (slashg(ig)) call addstr(sq//'off{-'//sq//
+ * 'noteskip}',16,soutq,lsout)
+c
+c Above code needed since slashg causes spacing
+c
+ if (slurg(ig) .and. (iswaft.or.isgaft)) then
+c
+c Terminate slur on single after-grace
+c
+c ndxslur = igetbits(ipl,4,23)
+ ndxslur = igetbits(ipl,5,23)
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ call addstr(sq//'tslur',6,soutq,lsout)
+c
+cc Print 11-ndxslur
+c Print 24-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c call addstr(chax(59-ndxslur)//noteq(1:lnoten),
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),
+ * 1+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ call addstr('{2'//chax(61-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ else
+c call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten),
+ call addstr('{1'//chax(51-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ end if
+ slurg(ig) = .false.
+ listslur = ibclr(listslur,ndxslur)
+ end if
+ call addstr('}',1,soutq,lsout)
+c
+c+++ Try to fix loss of octave with single gaft
+c
+c if (isgaft) call addstr(sq//'zcharnote'//noteq(1:lnoten)//'{~}',
+c * 13+lnoten,soutq,lsout)
+ if (isgaft) then
+ itrans = 0
+ do 1 i = 1 , lnotenGA
+ if (noteqGA(i:i) .eq. chax(39)) then
+ itrans = itrans+7
+ else if (noteqGA(i:i) .eq. chax(96)) then
+ itrans = itrans-7
+ end if
+1 continue
+ if (itrans. eq. -14) then
+ call addstr(sq//'advance'//sq//'transpose-14',21,
+ * soutq,lsout)
+ else if (itrans .eq. -7) then
+ call addstr(sq//'advance'//sq//'transpose-7',20,
+ * soutq,lsout)
+ else if (itrans .eq. 7) then
+ call addstr(sq//'advance'//sq//'transpose7',19,
+ * soutq,lsout)
+ else if (itrans .eq. 14) then
+ call addstr(sq//'advance'//sq//'transpose14',20,
+ * soutq,lsout)
+ end if
+ end if
+ else
+c
+c Multiple grace. Put in literally. Compute beam stuff
+c
+ sumx = 0.
+ sumy = 0.
+ sumxy = 0.
+ sumxx = 0.
+ sumyy = 0.
+ x = 0.
+ do 118 ing = ngs , ngs+nng(ig)-1
+ if (ing.gt.ngs .and. naccg(ing).gt.0) x = x+acgfac
+ y = nolevg(ing)
+ sumx = sumx + x
+ sumy = sumy + y
+ sumxy = sumxy + x*y
+ sumxx = sumxx + x*x
+ sumyy = sumyy + y*y
+ x = x+emgfac
+118 continue
+ delta = nng(ig)*sumxx-sumx*sumx
+ em = (nng(ig)*sumxy-sumx*sumy)/delta
+ islope = nint(0.5*em*gslfac)
+ if (iabs(islope) .gt. 9) islope = isign(9,islope)
+ beta = (sumy-islope/gslfac*sumx)/nng(ig)
+ nolev1 = nint(beta)
+c
+c Back up
+c
+ notexq = sq//'settiny'//sq//'off{'
+ if (normsp) then
+ write(notexq(14:18),'(a1,f4.1)')'-',ptgr(ig)
+ call addstr(notexq(1:18)//'pt}',21,soutq,lsout)
+ finalshift = ptgr(ig)
+ else
+ aftshft = wheadpt*1.33
+ if (naccg(ngstrt(ig)).gt.0) aftshft = aftshft+wheadpt*0.5
+ write(notexq(14:17),'(f4.1)')aftshft
+ call addstr(notexq(1:17)//'pt}'//sq//'bsk',24,soutq,lsout)
+ end if
+c
+c Start the beam
+c
+ notexq = sq//'ib'
+ do 119 ing = 2 , mg
+ notexq = notexq(1:ing+1)//'b'
+119 continue
+ if (upg(ig)) then
+ notexq = notexq(1:mg+2)//'u'
+ else
+ notexq = notexq(1:mg+2)//'l'
+ end if
+ notexq = notexq(1:mg+3)//'0'
+c
+c Get starting note for beam
+c
+ call notefq(noteq,lnoten,nolev1,ncm)
+ call addstr(notexq(1:mg+4)//noteq(1:lnoten),
+ * mg+4+lnoten,soutq,lsout)
+c
+c Put in the slope
+c
+ if (islope .ge. 0) then
+ call addstr(chax(48+islope),1,soutq,lsout)
+ else
+ call addstr('{-'//chax(48-islope)//'}',4,soutq,lsout)
+ end if
+c
+c Start a slur on multiple fore-grace
+c
+ if (slurg(ig) .and. .not.isgaft .and. .not.iswaft) then
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (fontslur) then
+ if (upg(ig)) then
+ call addstr(sq//'islurd',7,soutq,lsout)
+ else
+ call addstr(sq//'isluru',7,soutq,lsout)
+ end if
+ else
+c
+c Need a tweak for postscript slur
+c
+ if (upg(ig)) then
+ call addstr(sq//'isd',4,soutq,lsout)
+ else
+ call addstr(sq//'isu',4,soutq,lsout)
+ end if
+ end if
+c
+c Print 11-ndxslur
+c
+ if (23-ndxslur .lt. 10) then
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),1+lnoten,
+ * soutq,lsout)
+ else if (23-ndxslur .lt. 2) then
+ call addstr('{1'//chax(61-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ else
+ call addstr('{1'//chax(51-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ end if
+c
+c Put in tweak for postscript slur
+c
+ if (.not.fontslur) call addstr('{-.3}',5,soutq,lsout)
+ end if
+c
+c Put in first note. Call notefq again in case octave changed
+c
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (naccg(ngs) .eq. 0) then
+ notexq = sq//'zqb0'//noteq(1:lnoten)
+ lnote = 5+lnoten
+ else
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ngs),acsymq,lacc)
+ notexq = sq//'big'//acsymq(1:lacc)//noteq(1:lnoten)
+ lnote = 4+lacc+lnoten
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ notexq =notexq(1:lnote)//sq//'zqb0'//noteq(1:lnoten)
+ lnote = lnote+5+lnoten
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ do 127 ing = ngs+1 , ngs+nng(ig)-1
+c
+c Skip
+c
+ ptoff = wheadpt1*emgfac
+ if (naccg(ing).gt.0) ptoff = ptoff+wheadpt1*acgfac
+ if (isgaft .and. .not.iswaft) aftshft = aftshft+ptoff
+ notexq = sq//'off{'
+ write(notexq(6:8),'(f3.1)')ptoff
+ if (normsp) finalshift = finalshift-ptoff
+ call addstr(notexq(1:8)//'pt}',11,soutq,lsout)
+ if (ing .eq. ngs+nng(ig)-1) then
+c
+c Terminate beam if needed
+c
+ if (upg(ig)) then
+ call addstr(sq//'tbu0',5,soutq,lsout)
+ else
+ call addstr(sq//'tbl0',5,soutq,lsout)
+ end if
+c
+c Terminate after slur if needed
+c
+ if ((isgaft.or.iswaft) .and. slurg(ig)) then
+c if (iswaft) ndxslur = igetbits(ipl,4,23)
+ if (iswaft) ndxslur = igetbits(ipl,5,23)
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ call addstr(sq//'tslur',6,soutq,lsout)
+c
+c Print 11-ndxslur
+cc Print 23-ndxslur
+c
+ if (23-ndxslur .lt. 10) then
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),
+ * 1+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ call addstr('{2'//chax(61-ndxslur)//'}'
+ * //noteq(1:lnoten),4+lnoten,soutq,lsout)
+ else
+ call addstr('{1'//chax(51-ndxslur)//'}'
+ * //noteq(1:lnoten),4+lnoten,soutq,lsout)
+ end if
+c
+c Stop slur terminator after exit from this subroutine
+c
+ listslur = ibclr(listslur,ndxslur)
+ slurg(ig) = .false.
+ end if
+ end if
+c
+c Accidental if needed
+c
+ if (naccg(ing).gt.0) then
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ing),acsymq,lacc)
+ call addstr(sq//'big'//acsymq(1:lacc)
+ * //noteq(1:lnoten),4+lacc+lnoten,soutq,lsout)
+ end if
+c
+c Put in the (beamed) grace note
+c
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ call addstr(sq//'zqb0'//noteq(1:lnoten),5+lnoten,
+ * soutq,lsout)
+127 continue
+c
+c Terminate the grace
+c
+c notexq = sq//'normalnotesize'//sq//'off{'
+c lnote = 20
+c notexq = '}'//sq//'off{'
+c lnote = 6
+ notexq = sq//'off{'
+ lnote = 5
+ ptoff = wheadpt*emgfac
+ if (iand(nacc,3).gt.0 .and. .not.btest(nacc,17))
+ * ptoff = ptoff+wheadpt*accfac
+ if (isgaft .and. .not.iswaft) then
+ notexq = notexq(1:5)//'-'
+ lnote = 6
+ ptoff = aftshft
+ end if
+ if (normsp) ptoff = finalshift
+ if (ptoff .lt. 9.95) then
+ write(notexq(lnote+1:lnote+3),'(f3.1)')ptoff
+ lnote = lnote+3
+ else if (ptoff .lt. 99.95) then
+ write(notexq(lnote+1:lnote+4),'(f4.1)')ptoff
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+5),'(f5.1)')ptoff
+ lnote = lnote+5
+ end if
+ call addstr(notexq(1:lnote)//'pt}',lnote+3,soutq,lsout)
+ if (isgaft.and..not.iswaft) call addstr(sq//'sk',3,soutq,lsout)
+ call addstr(sq//'resetsize',10,soutq,lsout)
+ end if
+ return
+ end
+ subroutine dopsslur(nolev,isdat1,isdat2,isdat3,isdat4,nsdat,ip,
+ * iv,kv,nv,beamon,ncm,soutq,lsout,ulq,islur,
+ * ipl,iornq,islhgt,tno,nacc)
+c
+c Called once per main note.
+c 12 May 2002 Create this subroutine to isolate postscript slurs/ties.
+c Always set \Nosluradjust\Notieadjust
+c
+ parameter (nm=24,mv=24576)
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ character*1 ulq,slurudq,udfq,udqq,chax
+ character*79 notexq
+ character*8 noteq
+ character*80 soutq
+ logical upslur,beamon,btest,stemup,iscrd,
+ * settie,fontslur,pstie,WrotePsslurDefaults
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+c
+c Bits in isdat1:
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 mod(ndxslur,16), set in doslur when slur is started, used on term.
+c 18 int(ndxslur/16), ditto. So this allows ndxslur>15.
+c
+c Bits in isdat2
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted flag
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+c
+c Bits in isdat3: Only used for slur endings
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c 14-21 tie level for use in LineBreakTies
+c 22-29 ncm for use in LineBreakTies
+c
+c Bits in isdat4 Only used for linebreak slurs
+c 0-5 Linebreak seg 1 voff 1-63 => -31...+31
+c 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3
+c 16-21 Linebreak seg 2 voff 1-63 => -31...+31
+c 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3
+c
+c In listslur bit ib is on if slur index ib is in use, ib=0-13.
+c ndxslur = slur index
+c Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note,
+c s-slur is blank (idcode=32), t-slur is idcode=1.
+c ivoff is user-defined shift or shift due to . or _ , or chord adjustment.
+c Ivoff will be set for ./_ only if no user-defined shift is specified.
+c If highest note has upslur, save slur height in islhgt in case
+c ornament must be moved.
+c
+ islhgt = 0
+ if (beamon) then
+ stemup = ulq .eq. 'u'
+ else if (nvmx(iv) .eq. 2) then
+ if (.not.btest(islur,30)) then
+c
+c Single note, 2 lines of music, stem direction not forced
+c
+ stemup = ivx .gt. nv
+ else
+ stemup = btest(islur,17)
+ end if
+ else
+ stemup = udqq(nolev,ncm,islur,nvmx(iv),ivx,nv) .eq. 'u'
+ end if
+ iscrd = btest(ipl,10)
+ if (ismidi) then
+ settie = .false.
+ dbltie = .false.
+ end if
+ do 1 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ if (iv .eq. igetbits(isdata,5,13) .and.
+ * ip .eq. igetbits(isdata,8,3) .and.
+ * kv .eq. igetbits(isdata,1,12)+1) then
+c
+c Since iv and kv match, ivx will be correct
+c
+ idcode = igetbits(isdata,7,19)
+ ivoff = igetbits(isdat2(isdat),6,6)-32
+ ihoff = igetbits(isdat2(isdat),7,12)-64
+ iupdn = 0
+ slurudq = 'd'
+ nolevs = igetbits(isdat2(isdat),7,19)
+ pstie = btest(isdat2(isdat),3) .or. idcode.eq.1
+ if (btest(isdata,11)) then
+c
+c Turnon
+c
+c if (nolevs.eq.0 .or. nolevs.gt.60) then
+cc
+cc Note was a rest, cannot start slur on rest.
+cc
+c print*
+c call printl('Cannot start slur on a rest')
+c call stop1()
+c nolevs = ncm+5
+c end if
+c
+c Get slur direction
+c
+ if (btest(isdata,26)) then
+c
+c Force slur direction
+c
+ if (btest(isdata,27)) slurudq = 'u'
+ else if (nvmx(iv) .eq. 1) then
+c
+c Only one voice per line
+c
+ if (.not.beamon) then
+c
+c Separate note.
+c
+ slurudq = udfq(nolev,ncm)
+ else
+c
+c In a beam
+c
+ if (ulq .ne. 'u') slurudq = 'u'
+ end if
+ if (iscrd) then
+ if (nolevs .gt. ncm) then
+ slurudq = 'u'
+ else
+ slurudq = 'd'
+ end if
+ end if
+ else
+c
+c Two voices per line. Get default
+c
+ if (ivx .gt. nv) slurudq = 'u'
+c
+c Upper voice of the two, so up slur
+c
+ end if
+c
+c Set level for slur starting on rest
+c
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+ if (slurudq .eq. 'u') then
+ nolevs = ncm+2
+ else
+ nolevs = ncm-2
+ end if
+ end if
+c
+c Save up/down-ness for use at termination
+c
+ if (slurudq .eq. 'u') isdata = ibset(isdata,27)
+c
+c End of section for setting slur direction, still in "Turnon" if-block.
+c
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+c
+c Must move the slur for _ or .
+c
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ ivoff = ivoff+ivoffinc
+ end if
+ end if
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You1 defined the twentyfifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You defined the twentyfifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Get index of next slur not in use, starting from 12 down
+c
+ ndxslur = log2(16777215-listslur)
+c write(*,'()')
+c write(*,'(2i4,2x,B24)')ivx,ndxslur,listslur
+c
+c Record slur index
+c
+ listslur = ibset(listslur,ndxslur)
+c write(*,'(10x,B24)')listslur
+c
+c Save for use on termination
+c
+c call setbits(isdata,4,28,ndxslur)
+c 080531 Allow >16 slurs
+ call setbits(isdata,4,28,mod(ndxslur,16))
+ call setbits(isdata,1,18,ndxslur/16)
+c
+c Shift for stem?
+c
+ if (stemup .and. slurudq.eq.'u' .and. tno.lt.63.) then
+ if (.not.pstie) then
+ ihoff = ihoff+8
+ else
+ ihoff = ihoff+2
+ end if
+ end if
+ if (iscrd) then
+c
+c Additional horiz shifts for h-shifted noteheads?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Slur start on left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ notexq = chax(92)
+ lnote = 1
+c
+c Check for local adjustment default changes
+c
+ if (btest(isdat2(isdat),26)) then
+ notexq = chax(92)//'sluradjust'//chax(92)
+ lnote = 12
+ else if (btest(isdat2(isdat),27)) then
+ notexq = chax(92)//'nosluradjust'//chax(92)
+ lnote = 14
+ else if (btest(isdat2(isdat),28)) then
+ notexq = chax(92)//'tieadjust'//chax(92)
+ lnote = 11
+ else if (btest(isdat2(isdat),29)) then
+ notexq = chax(92)//'notieadjust'//chax(92)
+ lnote = 13
+ end if
+ if (ihoff .eq. 0) then
+c
+c Write stuff for non-shifted start
+c
+ notexq = notexq(1:lnote)//'islur'//slurudq
+ lnote = lnote+6
+ else
+ notexq = notexq(1:lnote)//'is'//slurudq
+ lnote = lnote+3
+ end if
+c
+c Prepend postscript tie switch
+c
+ if (pstie) then
+ notexq = chax(92)//'tieforis'//slurudq//notexq(1:lnote)
+ lnote = lnote+10
+ end if
+ if (btest(isdat2(isdat),4)) then
+c
+c Dotted slur
+c
+c noteq = notexq
+c notexq = chax(92)//'dotted'//noteq
+ notexq = chax(92)//'dotted'//notexq(1:lnote)
+ lnote = lnote+7
+ end if
+c
+c Add slur index to string
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c
+c 5/25/08 Allow 24 slurs
+c
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+c
+c Add note name to string
+c
+c call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ islhgt = nolevs+iupdn+ivoff
+ call notefq(noteq,lnoten,islhgt,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+c
+c Store height and staff mid level for use with LineBreakTies
+c
+ call setbits(isdat3(isdat),8,14,islhgt)
+ call setbits(isdat3(isdat),8,22,ncm)
+c
+c Save height (for ornament and barnobox interference) if topmost slur is up
+c
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c Save height & idcode if top voice and slur start
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. islhgt.gt.is1n1) then
+ is1n1 = islhgt
+ is2n1 = idcode
+ end if
+ end if
+ if (ihoff .ne. 0.) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),'(f'//
+ * chax(48+lform)//'.1)') shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Zero out ip1 to avoid problems if slur goes to next input blk.
+c
+ call setbits(isdata,8,3,0)
+c
+c Set slur-on data for midi. Only treat null-index slurs and ps ties for now.
+c
+ if (ismidi .and. (idcode.eq.32 .or. idcode.eq.1)) then
+c levson(midchan(iv,kv)) = nolev
+ levson(midchan(iv,kv)) = nolevs
+ if (settie) dbltie = .true.
+c
+c Only way settie=T is if we just set a tie ending. So there's also a slur
+c start here, so set a flag telling addmidi not to zero out levson
+c
+ end if
+ else
+c
+c Slur is ending. Back thru list to find starting slur
+c
+ do 3 j = isdat-1 , 1 , -1
+ if (iv.eq.igetbits(isdat1(j),5,13) .and.
+ * kv.eq.igetbits(isdat1(j),1,12)+1) then
+ if (idcode .eq. igetbits(isdat1(j),7,19)) then
+ ndxslur = igetbits(isdat1(j),4,28)
+c
+c 080531 Allow >16 slurs
+c
+ * +16*igetbits(isdat1(j),1,18)
+ if (btest(isdat1(j),27)) slurudq = 'u'
+ go to 4
+ end if
+ end if
+3 continue
+ print*,'Bad place in doslur'
+ call stop1()
+4 continue
+c
+c Bugfix 070901 for slur ending on rest in 2-voice staff
+c
+c if (nolevs.eq.0 .or. nolevs.gt.60) then
+ if (nolevs.le.2 .or. nolevs.gt.60) then
+c
+c Ending is on a rest, reset nolevs to default starting height
+c
+ nolevs = igetbits(isdat2(j),7,19)
+ end if
+ if (btest(isdat3(isdat),0) .or. btest(isdat3(j),0)) then
+c
+c Deal with \curve or \midslur. isdat is ending, j is start.
+c
+ if (btest(isdat3(isdat),0)) then
+ imid = igetbits(isdat3(isdat),6,2)-32
+ else
+ imid = igetbits(isdat3(j),6,2)-32
+ end if
+c
+c Postscript slurs, and \midslur adjustment is needed. Invoke macro
+c (from pmx.tex) that redefines \tslur as r'qd. Tentative mapping:
+c Abs(imid) Postscript slur type
+c 1 f
+c 2-3 default
+c 4 h
+c 5 H
+c 6+ HH
+c
+ call addstr(chax(92)//'psforts'//
+ * chax(48+min(abs(imid),6)),9,soutq,lsout)
+ end if
+c
+c Shift slur ending for stem on any note?
+c
+ if (.not.stemup .and. slurudq.eq.'d' .and. tno.lt.63.) then
+ if (.not.pstie) then
+ ihoff = ihoff-8
+ else
+ ihoff = ihoff-3
+ end if
+ end if
+ if (iscrd) then
+c
+c Shift termination for shifted notehead?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c
+c Switch to postscript tie
+c
+ if (pstie) then
+ notexq = chax(92)//'tieforts'//notexq(1:lnote)
+ lnote = lnote+9
+ end if
+c
+c Print 13-ndxslur
+c 5/25/08 Allow 14 slurs
+c
+ if (23-ndxslur .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ end if
+ ivoff = ivoff+ivoffinc
+ end if
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c If topvoice, upslur, and idcode checks, no more need to keep hgt for barno.
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. is1n1.gt.0) then
+ if (idcode .eq. is2n1) is1n1=0
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihoff .ne. 0) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Clear the bit from list of slurs in use
+c
+ listslur = ibclr(listslur,ndxslur)
+c
+c Zero out the entire strings for start and stop
+c
+ isdata = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ isdat4(isdat) = 0
+ isdat1(j) = 0
+ isdat2(j) = 0
+ isdat3(j) = 0
+ isdat4(j) = 0
+c
+c Set midi info for slur ending
+c
+ if (ismidi .and. (idcode.eq.32 .or. idcode.eq.1)) then
+ icm = midchan(iv,kv)
+ if (slmon(icm)) then
+ if (nolevs.eq.levson(icm) .and. iand(7,nacc).eq.0) then
+c
+c There is a tie here. NB!!! assumed no accidental on 2nd member of tie.
+c
+ levsoff(icm) = nolevs
+ settie = .true.
+ else
+ levsoff(icm) = 0
+ levson(icm) = 0
+ slmon(icm) = .false.
+ end if
+ end if
+ end if
+ end if
+ isdat1(isdat) = isdata
+ end if
+1 continue
+c
+c Clear and collapse the slur data list
+c
+ numdrop = 0
+ do 2 isdat = 1 , nsdat
+ if (isdat1(isdat) .eq. 0) then
+ numdrop = numdrop+1
+ else if (numdrop .gt. 0) then
+ isdat1(isdat-numdrop) = isdat1(isdat)
+ isdat2(isdat-numdrop) = isdat2(isdat)
+ isdat3(isdat-numdrop) = isdat3(isdat)
+ isdat4(isdat-numdrop) = isdat4(isdat)
+ isdat1(isdat) = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ isdat4(isdat) = 0
+ end if
+2 continue
+ nsdat = nsdat-numdrop
+c call report(nsdat,isdat1,isdat2)
+ return
+ end
+ subroutine doslur(nolev,isdat1,isdat2,isdat3,nsdat,ip,iv,kv,nv,
+ * beamon,ncm,soutq,lsout,ulq,islur,ipl,iornq,islhgt,tno,nacc)
+c
+c Called once per main note. (5/26/02) for non-ps slurs only
+c
+ parameter (nm=24,mv=24576)
+ integer*4 isdat1(202),isdat2(202),isdat3(202)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ character*1 ulq,slurudq,udfq,udqq,chax
+ character*79 notexq
+ character*8 noteq
+ character*80 soutq
+ logical upslur,beamon,btest,stemup,iscrd,sfound,tfound,tmove,
+ * settie,fontslur,WrotePsslurDefaults
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+c
+c Bits in isdat1:
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 ndxslur, set in doslur when beam is started, used on term.
+c
+c Bits in isdat2
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted flag
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c
+c Bits in isdat3: Only used for slur endings
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c
+c In listslur bit ib is on if slur index ib is in use, ib=0-23.
+c ndxslur = slur index
+c Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note,
+c s-slur is blank (idcode=32), t-slur is idcode=1.
+c ivoff is user-defined shift or shift due to . or _ , or chord adjustment.
+c Ivoff will be set for ./_ only if no user-defined shift is specified.
+c If highest note has upslur, save slur height in islhgt in case
+c ornament must be moved.
+c
+ islhgt = 0
+ if (beamon) then
+ stemup = ulq .eq. 'u'
+ else if (nvmx(iv) .eq. 2) then
+ if (.not.btest(islur,30)) then
+c
+c Single note, 2 lines of music, stem direction not forced
+c
+ stemup = ivx .gt. nv
+ else
+ stemup = btest(islur,17)
+ end if
+ else
+ stemup = udqq(nolev,ncm,islur,nvmx(iv),ivx,nv) .eq. 'u'
+ end if
+ iscrd = btest(ipl,10)
+ if (btest(islur,1)) then
+c
+c 't'-slur (idcode=1) somewhere on this note. Find it, check height against
+c 's'-slur (idcode=32)
+c
+ sfound = .false.
+ tfound = .false.
+ tmove = .false.
+ do 5 isdat = 1 , nsdat
+ if (iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * ip .eq. igetbits(isdat1(isdat),8,3) .and.
+ * kv .eq. igetbits(isdat1(isdat),1,12)+1) then
+ if (.not.tfound) then
+ tfound = igetbits(isdat1(isdat),7,19).eq.1
+ if (tfound) then
+ nolevt = igetbits(isdat2(isdat),7,19)
+ isdatt = isdat
+ if (sfound) go to 6
+ end if
+ end if
+ if (.not.sfound) then
+ sfound = igetbits(isdat1(isdat),7,19).eq.32
+ if (sfound) then
+ nolevs = igetbits(isdat2(isdat),7,19)
+ isdats = isdat
+ if (tfound) go to 6
+ end if
+ end if
+ end if
+5 continue
+c
+c Will come thru here if there is a t with no s, so comment out the following
+c print*,'Did not find s+t-slurs in doslur'
+c
+6 continue
+ if (sfound .and. tfound)
+ * tmove = nolevs.eq.nolevt .and.
+c
+c Check if 2 starts or two stops
+c
+ * ((btest(isdat1(isdats),11).and.btest(isdat1(isdatt),11)) .or.
+ * (.not.btest(isdat1(isdats),11).and.
+ * .not.btest(isdat1(isdatt),11)) )
+c
+c This is a flag for later changing slur level, after we know slur dir'n.
+c
+ end if
+ if (ismidi) then
+ settie = .false.
+ dbltie = .false.
+ end if
+ do 1 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ if (iv .eq. igetbits(isdata,5,13) .and.
+ * ip .eq. igetbits(isdata,8,3) .and.
+ * kv .eq. igetbits(isdata,1,12)+1) then
+c
+c Since iv and kv match, ivx will be correct
+c
+ idcode = igetbits(isdata,7,19)
+ ivoff = igetbits(isdat2(isdat),6,6)-32
+ ihoff = igetbits(isdat2(isdat),7,12)-64
+ iupdn = 0
+ slurudq = 'd'
+ nolevs = igetbits(isdat2(isdat),7,19)
+ if (btest(isdata,11)) then
+c
+c Turnon,
+c
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+c
+c Note was a rest, cannot start slur on rest.
+c
+ print*
+ call printl('Cannot start slur on a rest')
+ call stop1()
+ end if
+c
+c Get slur direction
+c
+ if (btest(isdata,26)) then
+c
+c Force slur direction
+c
+ if (btest(isdata,27)) slurudq = 'u'
+ else if (nvmx(iv) .eq. 1) then
+c
+c Only one voice per line
+c
+ if (.not.beamon) then
+c
+c Separate note.
+c
+ slurudq = udfq(nolev,ncm)
+ else
+c
+c In a beam
+c
+ if (ulq .ne. 'u') slurudq = 'u'
+ end if
+ if (iscrd) then
+ if (nolevs .gt. ncm) then
+ slurudq = 'u'
+ else
+ slurudq = 'd'
+ end if
+ end if
+ else
+c
+c Two voices per line. Get default
+c
+ if (ivx .gt. nv) slurudq = 'u'
+c
+c Upper voice of the two, so up slur
+c
+ end if
+c
+c Save up/down-ness for use at termination
+c
+ if (slurudq .eq. 'u') isdata = ibset(isdata,27)
+c
+c End of section for setting slur direction, still in "Turnon" if-block.
+c
+ if (idcode.eq.1 .and. tmove) then
+ iupdn = 1
+ if (slurudq .eq. 'd') iupdn = -1
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+c
+c Must move the slur for _ or .
+c
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ ivoff = ivoff+ivoffinc
+ end if
+ end if
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You1 defined the twenty-fifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You2 defined the twenty-fifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Get index of next slur not in use, starting from ? down
+c
+ ndxslur = log2(16777215-listslur)
+c
+c Record slur index
+c
+ listslur = ibset(listslur,ndxslur)
+c
+c Save for use on termination
+c
+c call setbits(isdata,4,28,ndxslur)
+c 080531 Allow >16 slurs
+ call setbits(isdata,4,28,mod(ndxslur,16))
+ call setbits(isdata,1,18,ndxslur/16)
+c
+c Shift for stem?
+c
+ if (stemup .and. slurudq.eq.'u' .and. tno.lt.63.)
+ * ihoff = ihoff+8
+ if (btest(isdat2(isdat),3)) then
+c
+c Tie spacing, (slur start)
+c
+ if (slurudq.eq.'d') then
+ ivoff = ivoff+1
+ ihoff = ihoff+8
+ else if (slurudq.eq.'u') then
+ ivoff = ivoff-1
+ if (.not.(stemup.and.tno.lt.63.)) ihoff = ihoff+8
+c
+c (already shifted if (stemup.and.tno.gt.63.) and slurudq='u')
+c
+ end if
+ end if
+ if (iscrd) then
+c
+c Additional horiz shifts for h-shifted noteheads?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Slur start on left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+c
+c Write stuff for non-shifted start
+c
+ notexq = chax(92)//'islur'//slurudq
+ lnote = 7
+ else
+ notexq = chax(92)//'is'//slurudq
+ lnote = 4
+ end if
+ if (btest(isdat2(isdat),4)) then
+c
+c Dotted slur
+c
+ noteq = notexq
+ notexq = chax(92)//'dotted'//noteq
+ lnote = lnote+7
+ end if
+c
+c Add slur index to string
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c
+c 5/25/08 Allow 24 slurs
+c
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+c
+c Add note name to string
+c
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+c
+c Save height (for ornament and barnobox interference) if topmost slur is up
+c
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c Save height & idcode if top voice and slur start
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. islhgt.gt.is1n1) then
+ is1n1 = islhgt
+ is2n1 = idcode
+ end if
+ end if
+ if (ihoff .ne. 0.) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),'(f'//
+ * chax(48+lform)//'.1)') shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Zero out ip1 to avoid problems if slur goes to next input blk.
+c
+ call setbits(isdata,8,3,0)
+c
+c Set slur-on data for midi. Only treat null-index slurs and ps ties for now.
+c
+ if (ismidi .and. idcode.eq.32) then
+ levson(midchan(iv,kv)) = nolevs
+ if (settie) dbltie = .true.
+c
+c Only way settie=T is if we just set a tie ending. So there's also a slur
+c start here, so set a flag telling addmidi not to zero out levson
+c
+ end if
+ else
+c
+c Slur is ending. Back thru list to find starting slur
+c
+ do 3 j = isdat-1 , 1 , -1
+ if (iv.eq.igetbits(isdat1(j),5,13) .and.
+ * kv.eq.igetbits(isdat1(j),1,12)+1) then
+ if (idcode .eq. igetbits(isdat1(j),7,19)) then
+ ndxslur = igetbits(isdat1(j),4,28)
+c
+c 080531 Allow >16 slurs
+c
+ * +16*igetbits(isdat1(j),1,18)
+ if (btest(isdat1(j),27)) slurudq = 'u'
+ go to 4
+ end if
+ end if
+3 continue
+ print*,'Bad place in doslur'
+ call stop1()
+4 continue
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+c
+c Ending is on a rest, reset nolevs to default starting height
+c
+ nolevs = igetbits(isdat2(j),7,19)
+ end if
+ if (btest(isdat3(isdat),0)) then
+c
+c Deal with \curve or \midslur
+c
+ imid = igetbits(isdat3(isdat),6,2)-32
+c
+c Remember, only dealing with non-ps slurs
+c
+c Who knows where the following line came from. Removed it 6/30/02 to
+c restore behavior of non-ps slurs to old way
+c if (slurudq .eq. 'd') imid = -imid
+c 3/8/03 added the following
+c
+ if (slurudq .eq. 'd') imid = -abs(imid)
+c
+ if (btest(isdat3(isdat),1)) then
+ notexq = chax(92)//'curve'
+ lnote = 6
+ else
+ notexq = chax(92)//'midslur'
+ lnote = 8
+ end if
+ if (imid.lt.0 .or. imid.gt.9) then
+c
+c Need brackets
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (imid .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')imid
+ lnote = lnote+3
+ else if (imid.lt.0 .or. imid.gt.9) then
+ write(notexq(lnote+1:lnote+2),'(i2)')imid
+ lnote = lnote+2
+ else
+ write(notexq(lnote+1:lnote+1),'(i1)')imid
+ lnote = lnote+1
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+c
+c 1=<imid=<9, no brackets
+c
+ notexq = notexq(1:lnote)//char(48+imid)
+ lnote = lnote+1
+ end if
+ if (btest(isdat3(isdat),1)) then
+c
+c \curve; 3 args
+c
+ notexq = notexq(1:lnote)
+ * //char(48+igetbits(isdat3(isdat),3,8))
+ notexq = notexq(1:lnote+1)
+ * //char(48+igetbits(isdat3(isdat),3,11))
+ lnote = lnote+2
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Shift slur ending for stem on any note?
+c
+ if (.not.stemup .and. slurudq.eq.'d' .and. tno.lt.63.)
+ * ihoff = ihoff-8
+ if (btest(isdat2(isdat),3)) then
+c
+c Shift ending for tie spacing
+c
+ if (slurudq .eq. 'u') then
+ ihoff = ihoff-8
+ ivoff = ivoff-1
+ else if (slurudq .eq. 'd') then
+ ivoff = ivoff+1
+ if (stemup.or. tno.gt.63.) ihoff = ihoff-8
+ end if
+ end if
+ if (iscrd) then
+c
+c Shift termination for shifted notehead?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c
+c Print 23-ndxslur
+c 5/25/08 Allow 14 slurs (???????????)
+c
+ if (23-ndxslur .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ end if
+ ivoff = ivoff+ivoffinc
+ end if
+ if (idcode.eq.1 .and. tmove) then
+c
+c t-slur height adjustment
+c
+ iupdn = 1
+ if (slurudq .eq. 'd') iupdn = -1
+ end if
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c If topvoice, upslur, and idcode checks, no more need to keep hgt for barno.
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. is1n1.gt.0) then
+ if (idcode .eq. is2n1) is1n1=0
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihoff .ne. 0) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Clear the bit from list of slurs in use
+c
+ listslur = ibclr(listslur,ndxslur)
+c
+c Zero out the entire strings for start and stop
+c
+ isdata = 0
+ isdat2(isdat) = 0
+ isdat1(j) = 0
+ isdat2(j) = 0
+ isdat3(isdat) = 0
+c
+c Set midi info for slur ending
+c
+ if (ismidi .and. idcode.eq.32) then
+ icm = midchan(iv,kv)
+ if (slmon(icm)) then
+ if (nolevs.eq.levson(icm) .and. iand(7,nacc).eq.0) then
+c
+c There is a tie here. NB!!! assumed no accidental on 2nd member of tie.
+c
+ levsoff(icm) = nolevs
+ settie = .true.
+ else
+ levsoff(icm) = 0
+ levson(icm) = 0
+ slmon(icm) = .false.
+ end if
+ end if
+ end if
+ end if
+ isdat1(isdat) = isdata
+ end if
+1 continue
+c
+c Clear and collapse the slur data list
+c
+ numdrop = 0
+ do 2 isdat = 1 , nsdat
+ if (isdat1(isdat) .eq. 0) then
+ numdrop = numdrop+1
+ else if (numdrop .gt. 0) then
+ isdat1(isdat-numdrop) = isdat1(isdat)
+ isdat2(isdat-numdrop) = isdat2(isdat)
+ isdat3(isdat-numdrop) = isdat3(isdat)
+ isdat1(isdat) = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ end if
+2 continue
+ nsdat = nsdat-numdrop
+c call report(nsdat,isdat1,isdat2)
+ return
+ end
+ subroutine dotmov(updot,rtdot,soutq,lsout,iddot)
+c
+c iddot = 0 for single dot, 1 for double
+c
+ character*80 soutq,notexq
+ character*1 sq,chax
+ sq = chax(92)
+ lfmtup = lfmt1(updot)
+ lfmtrt = lfmt1(rtdot)
+ write(notexq,'(a37,f'//chax(48+lfmtup)//'.1,a2,f'//chax(48+lfmtrt)
+ * //'.1,a15)')
+ * sq//'makeatletter'//sq//'def'//sq//'C@Point#1#2{'//sq//
+ * 'PMXpt{',updot,'}{',rtdot,'}'//chax(48+iddot)//'}'//sq
+ * //'makeatother'
+c
+c Example of string just created:
+c \makeatletter\def\C@Point#1#2{\PMXpt{.5}{.5}}\makeatother\
+c
+ lnote = 54+lfmtup+lfmtrt
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+ return
+ end
+ subroutine dotrill(iv,ip,iornq,noteq,lnoten,notexq,lnote)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*1 chax
+ character*8 noteq
+ character*79 notexq
+ logical tronly,btest
+ do 1 itr = 1 , ntrill
+ if (iv.eq.ivtrill(itr) .and. ip.eq.iptrill(itr)) go to 2
+1 continue
+ print*,'Problem in dotrill. Call Dr. Don'
+ stop
+2 continue
+ tronly = xnsktr(itr) .lt. 0.01
+ if (tronly) then
+ notexq = chax(92)//'zcharnote'
+ lnote = 10
+ else if (btest(iornq,7)) then
+ notexq = chax(92)//'Trille'
+ lnote = 7
+ else
+ notexq = chax(92)//'trille'
+ lnote = 7
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+lnoten+1
+c
+c Write trill duration to nearest tenth of a noteskip
+c
+ if (tronly) then
+ notexq = notexq(1:lnote)//chax(92)//'it tr}'
+ lnote = lnote+7
+ return
+ end if
+ if (xnsktr(itr) .lt. .95) then
+ nfmt = 2
+ else if (xnsktr(itr) .lt. 9.95) then
+ nfmt = 3
+ else
+ nfmt = 4
+ end if
+ write(notexq(lnote+1:lnote+nfmt),'(f'//chax(48+nfmt)//'.1)')
+ * xnsktr(itr)
+ lnote = lnote+nfmt
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ return
+ end
+ subroutine endslur(stemup,upslur,nolev,iupdn,ndxslur,ivoff,ncm,
+ * soutq,lsout,fontslur)
+c
+c Only called to end slur started in dograce.
+c
+ logical shift,stemup,upslur,fontslur
+ character*80 soutq
+ character*79 notexq
+ character*8 noteq
+ character*1 chax
+ shift = .not.stemup .and. .not.upslur
+ if (.not.shift) then
+c
+c No shift needed
+c
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c if (ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(48+ndxslur)
+c lnote = lnote+1
+c else
+c notexq = notexq(1:lnote)//'{1'//chax(38+ndxslur)//'}'
+c lnote = lnote+4
+c end if
+c
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ call notefq(noteq,lnoten,nolev+iupdn+ivoff,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (shift) then
+ if (fontslur) then
+ notexq = notexq(1:lnote)//'{-.6}'
+ else
+ notexq = notexq(1:lnote)//'{-.8}'
+ end if
+ lnote = lnote+5
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ return
+ end
+ subroutine errmsg(lineq,iccount,ibarno,msgq)
+ parameter(nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,fbon,issegno,isheadr,isvolt
+ character*128 lineq
+ character*78 outq
+ character*(*) msgq
+ character*1 chax
+ common /truelinecount/ linewcom(20000)
+ if (iccount .le. 78) then
+ outq = lineq(1:78)
+ iposn = iccount
+ else
+ outq = '... '//lineq(55:128)
+ iposn = iccount-50
+ end if
+ print*
+ ibarnop = ibarno
+ if (linesinpmxmod.eq.0 .or.
+ * nline .gt. line1pmxmod+linesinpmxmod) then
+c
+c Error is in main .pmx file
+c
+c nlinep = nline-linesinpmxmod
+c Correct for comments not copied into buffer
+ nlinep = linewcom(nline)-linesinpmxmod
+ else
+c
+c Error is in include file
+c
+ ibarnop = 0
+ nlinep = nline-line1pmxmod+1
+ call printl(
+ * 'ERROR in include file named above, description given below')
+ end if
+ open(19,file='pmxaerr.dat')
+ write(19,'(i6)') nlinep
+ close(19)
+ ndigbn = max(1,int(log10(ibarnop+.1)+1))
+ ndignl = int(log10(nlinep+.1)+1)
+ lenmsg = index(msgq,'!')-1
+c
+c Split off msgq(..) since UNIX compilers don't allow concat substring!!!
+c
+ write(*,'(/,a15,i'//chax(48+ndignl)//',a6,i'//chax(48+ndigbn)//
+ *',$)')' ERROR in line ',nlinep,', bar ',ibarnop
+ write(*,'(1x,a)')msgq(1:lenmsg)
+ write(15,'(/,a15,i'//chax(48+ndignl)//',a6,i'//chax(48+ndigbn)//
+ *',$)')' ERROR in line ',nlinep,', bar ',ibarnop
+ write(15,'(a)')msgq(1:lenmsg)
+ i10 = iposn/10
+ i1 = iposn-10*i10
+ write(*,'('//chax(48+i10)//chax(48+i1)//'x,a)')'v'
+ write(15,'('//chax(48+i10)//chax(48+i1)//'x,a)')'v'
+ print*,outq(1:78)
+ write(15,'(a)')' '//outq(1:78)
+ write(*,'('//chax(48+i10)//chax(48+i1)//'x,a)')'^'
+ write(15,'('//chax(48+i10)//chax(48+i1)//'x,a)')'^'
+ return
+ end
+ subroutine eskb4(ip,ivx,in,ib,space,tstart,fbar,itrpt,esk)
+c
+c Get elemskips to previous note. Called only for graces, no xtups involved.
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ real*4 tstart(80),space(80)
+ common /comtol/ tol
+ itnd = nint(to(in))
+ if (ip.eq.1 .or. itnd.eq.itrpt) then
+c
+c Start of bar or after rpt.
+c
+ esk = fbar
+ return
+ else
+ esk = 0.
+ itprev = itnd-nodur(ivx,ip-1)
+ do 1 iib = ib , 1 , -1
+ if (tstart(iib) .lt. itprev+tol) then
+c
+c This is the block
+c
+ nnsk = nint(float((itnd-itprev))/space(iib))
+ esk = esk+nnsk*feon(space(iib))
+ return
+ else
+ nnsk = nint((itnd-tstart(iib))/space(iib))
+ esk = esk+nnsk*feon(space(iib))
+ itnd = nint(tstart(iib))
+ end if
+1 continue
+ end if
+ print*,'Problem in eskb4. Send files to Dr. Don'
+ stop
+ end
+ function f1eon(time)
+ f1eon = sqrt(time/2)
+ return
+ end
+ function feon(time)
+ common /comeon/ eonk,ewmxk
+ feon = sqrt(time/2)**(1.-eonk)*ewmxk
+ return
+ end
+ subroutine findbeam(ibmrep,numbms,mapfb)
+c
+c Called once per voice per bar, after setting forced beams.
+c
+ parameter (nm=24)
+ dimension mask(49,3),nummask(3),eqonly(49,3)
+c integer numbms(nm),ipr(48),nip1(0:47),nip2(0:47),mapfb(16),
+c * itr(48),nodue(48)
+c logical short(48),eqonly
+ integer numbms(nm),ipr(248),nip1(0:247),nip2(0:247),mapfb(16),
+ * itr(248),nodue(248)
+ logical short(248),eqonly
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ common /combeam/ ibmtyp
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,btest
+ data nip1,nip2 /496*0/
+ data nummask / 29 , 49 , 12 /
+ data mask
+ * / 65535, 4095, 65520, 255, 65280, 63,
+ * 252, 16128, 64512, 15, 240, 3840,
+ * 61440, 7, 14, 112, 224, 1792,
+ * 3584, 28672, 57344, 3, 12, 48,
+ * 192, 768, 3072, 12288, 49152, 20*0 ,
+ * 16777215, 65535, 16776960, 4095, 65520, 1048320,
+ * 16773120, 255, 65280, 16711680, 63, 252,
+ * 16128, 64512, 4128768, 16515072, 15, 60,
+ * 240, 3840, 15360, 61440, 983040, 3932160,
+ * 15728640, 7, 14, 112, 224, 1792,
+ * 3584, 28672, 57344, 458752, 917504, 7340032,
+ * 14680064, 3, 12, 48, 192, 768,
+ * 3072, 12288, 49152, 196608, 786432, 3145728,
+ * 12582912,
+ * 4095, 255, 4080, 15, 240, 3840,
+ * 3, 12, 48, 192, 768, 3072,
+ * 37*0 /
+ data eqonly /3*.true.,46*.false.,7*.true.,91*.false./
+ ip = 0
+ nreal = 0
+ itnow = 0
+1 continue
+ ip = ip+1
+ if (ip .gt. nn(ivx)) go to 9
+11 if (nodur(ivx,ip).eq.0) then
+c
+c Ignore all xtup notes except the last, the one with nodur > 0 .
+c Xtups are irrelevant here since they are already all in forced beams.
+c Will update itnow by nodur at the END of this loop
+c
+ ip = ip+1
+ go to 11
+ end if
+ nreal = nreal+1
+ nodue(nreal) = nodur(ivx,ip)
+ short(nreal) = nodue(nreal).lt.16 .and.
+ * .not.btest(irest(ivx,ip),0)
+c
+c Rule out notes that have 'alone'-flag set
+c
+ * .and..not.btest(islur(ivx,ip),18)
+ ipr(nreal) = ip
+ itr(nreal) = itnow
+ if (nodue(nreal) .eq. 1) then
+c
+c 64th gap
+c
+ if (mod(itnow,2) .eq. 0) then
+c
+c Start of 32nd gap, lump with following note
+c
+ ip = ip+1
+ nodue(nreal) = 1+nodur(ivx,ip)
+ itnow = itnow+nodue(nreal)
+ else
+c
+c End of 32nd gap, lump with preceeding note
+c
+ nreal = nreal-1
+ nodue(nreal) = 1+nodue(nreal)
+ itnow = itnow+1
+ end if
+ else
+ itnow = itnow+nodur(ivx,ip)
+ end if
+ go to 1
+9 continue
+ ir1 = 1
+ itseg = lenbar/ibmrep
+ do 13 irep = 1 , ibmrep
+c
+c Set bitmaps for all shorts neighbored by a short. Each bit represents a
+c span of 32nd note. maps, mapm, mape record start, full duration, and end
+c of consecutive span of beamable (<1/4) notes.
+c
+ maps = 0
+ mapm = 0
+ mape = 0
+ itend = itseg*irep
+ itoff = itend-itseg
+ do 2 ir = ir1 , nreal
+ it2 = itr(ir)+nodue(ir)-2
+ if (it2 .ge. itend) then
+ ir1 = ir
+ go to 14
+ end if
+c if (short(ir).and.((ir.gt.1.and.short(ir-1)).or.(ir.lt.nreal
+ if (short(ir).and.((ir.gt.1.and.short(max(ir-1,1))).or.
+ * (ir.lt.nreal.and.short(ir+1)))) then
+ ib1 = (itr(ir)-itoff)/2
+ ib2 = (it2-itoff)/2
+ if (max(ib1,ib2).gt.47 .or. ir.gt.48 .or.
+ * min(ib1,ib2).lt.0) return
+c
+c Must have an odd number obe beats in a long bar. Auto-beam won't work
+c
+ nip1(ib1) = ipr(ir)
+ nip2(ib2) = ipr(ir)
+c
+c nip1,2(ib) = 0 unless a real note starts,ends on bit ib; then = ip
+c
+ maps = ibset(maps,ib1)
+ mape = ibset(mape,ib2)
+ do 3 ib = ib1 , ib2
+ mapm = ibset(mapm,ib)
+3 continue
+ end if
+2 continue
+14 continue
+ if (mapm .eq. 0) go to 13
+c
+c Zero out bits from forced beams
+c
+ maps = iand(maps,not(mapfb(irep)))
+ mapm = iand(mapm,not(mapfb(irep)))
+ mape = iand(mape,not(mapfb(irep)))
+c
+c Compare map with template.
+c
+ do 4 it = 1 , nummask(ibmtyp)
+ masknow = mask(it,ibmtyp)
+ if (iand(masknow,mapm) .eq. masknow) then
+c
+c Find least significant bit in the mask to check start time
+c
+ mtemp = masknow
+ maskm = masknow
+ do 5 is1 = 0 , 47
+ if (iand(1,mtemp) .eq. 1) go to 6
+ mtemp = ishft(mtemp,-1)
+5 continue
+6 continue
+ if (iand(ishft(1,is1),maps) .eq. 0) go to 4
+c
+c is1 is the bit where the beam starts. Continue shifting to
+c find most significant bit in the mask to check ending time
+c
+ do 7 is2 = is1 , 47
+ mtemp = ishft(mtemp,-1)
+ if (iand(1,not(mtemp)) .eq. 1) go to 8
+7 continue
+8 continue
+c
+c is2 is now the bit on which the beam ends.
+c
+ if (iand(ishft(1,is2),mape) .eq. 0) go to 4
+c
+c Did we pick out a single note from the middle of a longer sequence?
+c
+ if (nip1(is1) .eq. nip2(is2)) go to 4
+c
+c We almost have a beam. Check equality of notes if needed.
+c
+ if (eqonly(it,ibmtyp)) then
+ do 10 ip = nip1(is1) , nip2(is2)
+ if (nodur(ivx,ip) .ne. 8) then
+c
+c There is a non-1/8th note in this beam. Exit if not 2 quarters
+c
+ if (is2-is1 .ne. 15) go to 4
+c
+c Beam is 2 quarters long. Check if can split in half.
+c
+ ithalf = 0
+ do 20 iip = nip1(is1) , nip2(is2)
+ ithalf = ithalf+nodur(ivx,iip)
+ if (ithalf .gt. 16) go to 4
+ if (ithalf .eq. 16) go to 21
+20 continue
+ print*,'Problem in findbeam, please call Dr. Don'
+ go to 4
+21 continue
+c
+c Otherwise, split in half by keeping only the first half. Other half will
+c be picked up later, assuming masks are listed longest first.
+c
+ is2 = is1+7
+c
+c Reset maskm (since only used part of mask), used later to zero out
+c bits that contain beams
+c
+ maskm = 0
+ do 15 is = is1 , is2
+ maskm = ibset(maskm,is)
+15 continue
+ go to 16
+ end if
+10 continue
+ end if
+16 continue
+c
+c This is a beam. If last "effective" ends on odd 64th, add 1 more
+c
+c if (abs(mod(to(iand(255,ipl(ivx,nip2(is2))))
+c * +nodur(ivx,nip2(is2)),2.)) .gt. tol) then
+ if (abs(amod(to(ipl2(ivx,nip2(is2)))
+ * +nodur(ivx,nip2(is2))+.5*tol,2.)) .gt. tol) then
+ nip2(is2) = nip2(is2)+1
+ end if
+ numbms(ivx) = numbms(ivx)+1
+ numnew = numbms(ivx)
+ call logbeam(numnew,nip1(is1),nip2(is2))
+c
+c Zero out the appropriate bits so these notes don't get used again
+c
+ mapm = iand(mapm,not(maskm))
+ if (mapm.eq.0) go to 13
+ maps = iand(maps,not(maskm))
+ mape = iand(mape,not(maskm))
+ end if
+4 continue
+13 continue
+ return
+ end
+ subroutine findeonk(nptr1,nptr2,wovera,xelsk,dtmin,dtmax,eonk0)
+ parameter (nkb=3999,maxblks=4000)
+c
+c Compute an exponent eonk for use in the "flattened" formula for elemskips
+c vs time. We must solve the eqution f = 0. Initial quess is eonk0.
+c
+ logical gotclef
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /comtol/ tol
+ common /comeon/ eonk,ewmxk
+ eonk = eonk0
+ niter = 0
+1 continue
+ ewmxk = f1eon(dtmax)**eonk
+ niter = niter+1
+ esum = 0.
+ desum = 0.
+ do 2 iptr = nptr1 , nptr2
+ targ = durb(iptr)/sqzb(iptr)
+ esum = esum+nnpd(iptr)*sqzb(iptr)*feon(targ)
+ detarg = sqrt(targ/2*(dtmax/targ)**eonk)*alog(dtmax/targ)
+ desum = desum+nnpd(iptr)*sqzb(iptr)*detarg
+2 continue
+ f = wovera*feon(dtmin)-xelsk-esum
+ fp = wovera*sqrt(dtmin/2*(dtmax/dtmin)**eonk)*alog(dtmax/dtmin)
+ * -desum
+ if (abs(fp).lt.tol .or. abs(eonk-.5).gt..5 .or. niter.gt.100) then
+ call printl(
+ * 'Error in findeonk. Please send source to Dr. Don')
+ eonk = 0.
+ ewmxk = 1.
+ return
+ end if
+ dsoln = -f/fp
+ if (abs(dsoln) .lt. .1*tol) return
+c
+c Not converged yet, try again
+c
+ eonk = eonk+dsoln
+ go to 1
+ end
+ function fnote(nodur,ivx,ip,nacc)
+c
+c This return the real duration of a note
+c
+ parameter (nm=24)
+ integer*4 nodur(nm,200),nacc(nm,200)
+ logical btest
+ ipback = ip
+ if (nodur(ivx,ip) .gt. 0) then
+ if (ip .gt. 1) then
+c
+c Check if this is last note of xtup
+c
+ if (nodur(ivx,ip-1).eq.0) then
+ ipback = ip-1
+ go to 2
+ end if
+ end if
+ fnote = nodur(ivx,ip)
+ return
+ end if
+2 continue
+c
+c Count back to prior non zero note. Start at ip to avoid neg index if ip=1.
+c Count how many doubled xtups notes there are from ip-1 to first note.
+c
+ ndoub = 0
+ do 1 ip1m1 = ipback , 1 , -1
+ if (nodur(ivx,ip1m1) .gt. 0) go to 4
+ if (ip1m1.lt.ip .and. btest(nacc(ivx,ip1m1),18)) ndoub=ndoub+1
+1 continue
+4 continue
+c
+c count forward to next non-0 nodur. Start at ip in case last note of xtup.
+c
+ do 3 iip = ip , 200
+c
+c Count doubled xtup notes from ip to end.
+c
+ if (btest(nacc(ivx,iip),18)) ndoub = ndoub+1
+ if (nodur(ivx,iip) .gt. 0) then
+c fnote = nodur(ivx,iip)/float(iip-ip1m1)
+ fnote = nodur(ivx,iip)/float(iip-ip1m1+ndoub)
+ if (btest(nacc(ivx,ip),18)) then
+ fnote = 2*fnote
+ else if (btest(nacc(ivx,ip),27)) then
+ fnote = 1.5*fnote
+ else if (ip .gt. 1) then
+ if (btest(nacc(ivx,ip-1),27)) fnote = .5*fnote
+ end if
+ return
+ end if
+3 continue
+ print*,' '
+ call printl
+ * ('Probable misplaced barline or incorrect meter, stopping')
+c call printl('Program error in fnote, send source to Dr. Don')
+ call stop1()
+ end
+ subroutine g1etchar(lineq,iccount,charq)
+ parameter(nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,issegno,isheadr,isvolt,fbon
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ character*1 charq
+ character*128 lineq,lnholdq
+c
+c Gets the next character out of lineq*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount. Ends program if no more input.
+c
+ if (iccount .eq. 128) then
+ call read10(lineq,lastchar)
+ if (lastchar) return
+ if (.not.endmac) then
+ iccount = 0
+ if (.not.mplay) nline = nline+1
+ else
+ endmac = .false.
+ iccount = icchold
+ lineq = lnholdq
+ end if
+ if (mrecord) then
+ call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ end if
+ end if
+ iccount = iccount+1
+ charq = lineq(iccount:iccount)
+ return
+ end
+ subroutine g1etnote(loop,ifig,optimize,fulltrans)
+ parameter (nm=24,nkb=3999,mv=24576,maxblks=4000)
+ character*1 chax
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * nbars,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ common /compage/ widthpt,ptheight,nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idsig,isig1,
+ * mbrestsav,kchmid(18),ornrpt,shifton,barend,noinst,stickyS
+ logical lastchar,firstline,rest,loop,newmeter,fbon,issegno,barend,
+ * isheadr,fulbrp,usefig,isvolt,iskchb,kchmid,plusmin,ornrpt,
+ * stickyS
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /commus/ musize,whead20
+ logical mrecord,mplay,endmac,shifton,gotclef,optimize
+ character*128 lineq,lnholdq
+ character*1 charq,dotq,dumq,durq,charlq
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,cdot
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ logical novshrinktop,upslur,fontslur,ztrans,
+ * WrotePsslurDefaults,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ character*51 literq(3)
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ logical fulltrans
+ common /comsize/ isize(nm)
+ data literq
+ * /'Literal TeX string cannot start with 4 backslashes!',
+ * 'TeX string must have <129 char, end with backslash!',
+ * 'Type 2 or 3 TeX string can only start in column 1!'/
+ cdot = .false.
+1 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') charlq = charq
+ if (lastchar) then
+ if (index('/%',charlq) .eq. 0) then
+ print*
+ print*,'WARNING:'
+ print*,'Last non-blank character is "',charlq,'", not "/,%"'
+ print*,'ASCII code:',ichar(charlq)
+ write(15,'(/a)')'Last non-blank character is "'//charlq//
+ * '", not "/,%"'
+ write(15,'(a11,2x,i3)')'ASCII code:',ichar(charlq)
+c
+c Append " /" to last line. NB lastchar=.true. => ilbuf=nlbuf+1.
+c
+ ilbuf = ilbuf-1
+ lbuf(ilbuf) = lbuf(ilbuf)+2
+ bufq = bufq(1:ipbuf)//' /'
+ write(15,*)'appending <blank>/'
+ print*,'appending <blank>/'
+ lineq = lineq(1:iccount)//' /'
+ lastchar = .false.
+ go to 1
+ end if
+ return
+ end if
+ if (charq .eq. ' ') then
+ go to 1
+ else if (charq.eq.'%' .and. iccount.eq.1) then
+ iccount = 128
+ go to 1
+c
+c Replacement 1/22/12 since gfortran 4.7 with -O was choking here!
+c
+c else if ((ichar(charq).ge.97.and.ichar(charq).le.103) .or.
+ else if (index('abcdefg',charq).gt.0 .or.
+ * charq.eq.'r') then
+c
+c This is a note/rest. gotclef is only used for checking for clef before "/"
+c
+ if (cdot) go to 28
+ if (gotclef) gotclef=.false.
+ idotform = 0
+ numnum = 0
+ plusmin = .false.
+28 nnl(ivx) = nnl(ivx)+1
+ if (nnl(ivx) .gt. 200) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '>200 notes in line of music. Use smaller blocks!')
+ call stop1()
+ end if
+ dotq = 'x'
+c
+c Check if this is 'r ' and previous note was full-bar-pause
+c
+ fulbrp = charq.eq.'r' .and. lineq(iccount+1:iccount+1) .eq.' '
+ * .and. nnl(ivx).gt.1 .and. rest(ivx,max(1,nnl(ivx)-1)) .and.
+ * nodur(ivx,max(1,nnl(ivx)-1)) .eq. lenbar
+2 call g1etchar(lineq,iccount,durq)
+ ic = ichar(durq)
+ if (ic.le.57 .and. ic.ge.48) then
+c
+c Digit
+c
+ if (numnum .eq. 0) then
+ nnodur = ic-48
+ numnum = 1
+ go to 2
+ else if (numnum .eq. 1) then
+ if (charq .eq. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one digit allowed after rest symbol "r"!')
+ call stop1()
+ end if
+ numnum = 2
+ if (plusmin) then
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Before version 1.2, +/- was ignored if octave was!')
+ print*,
+ * 'explicitly specified. May need to edit old editions'
+ end if
+ go to 2
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '>2 digits in note symbol!')
+ call stop1()
+ end if
+ else if (durq.eq.'d') then
+ dotq = durq
+ if (lineq(iccount+1:iccount+1) .eq. 'd') then
+ iddot = 1
+ iccount = iccount+1
+c
+c Since we flow out, double dots won't work with other dot options
+c
+ end if
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, provided a number follows.
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789-.',durq) .eq. 0) then
+c
+c Backup, exit the loop normally
+c
+ iccount = iccount-2
+ go to 2
+ end if
+ call readnum(lineq,iccount,dumq,fnum)
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift also
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789-.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected number after 2nd +/- (shift dot)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (index('<>',durq) .gt. 0) then
+c
+c Accidental shift
+c
+c if (index('fsn',lineq(iccount-1:iccount-1)) .eq. 0) then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+c * 'Expected "f", "s", or "n" before "<" or ">"!')
+ * 'Expected "f", "s", "n" or "A" before "<" or ">"!')
+ call stop1()
+ end if
+ ipm = 1
+ if (durq .eq. '<') ipm=-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789.0',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected number after </> (accidental shift)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ fnum = ipm*fnum
+ if (fnum.lt.-5.35 .or. fnum.gt.1.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Horizontal accidental shift must be >-5.35 and <1.0!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 2
+ else if (index('+-',durq) .gt. 0) then
+ if (charq .ne. 'r') then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .gt. 0) then
+ ipm = 1
+ if (durq .eq. '-') ipm=-1
+ if (index('0123456789',lineq(iccount+1:iccount+1))
+ * .gt.0) then
+c
+c This may be start of accidental shift, but may be octave jump; then duration
+c
+ icsav = iccount
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (index('+-',durq) .gt. 0) then
+c
+c This is an accid shift since there's a 2nd consecutive signed number.
+c Check size of 1st number.
+c
+ if (fnum .gt. 30.5) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical accidental shift must be less than 31!')
+ call stop1()
+ end if
+ ipm = 1
+ if (durq .eq. '-') ipm = -1
+ call g1etchar(lineq,iccount,durq)
+ if (index('1234567890.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected 2nd number of accidental shift)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ fnum = ipm*fnum
+ if (fnum.lt.-5.35 .or. fnum.gt.1.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Horiz. accidental shift must be >-5.35 and <1.0!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 2
+ else
+c
+c Not accid shift, reset, then flow out
+c
+ iccount = icsav
+ end if
+ end if
+ end if
+ plusmin = .true.
+ if (numnum .eq. 2) then
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Before version 1.2, +/- was ignored if octave was!')
+ print*,
+ * 'explicitly specified. May need to edit old editions'
+ end if
+ go to 2
+c
+c It's a rest containing +|- . Must refer to a vertical shift. Read past.
+c
+ else
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,dum)
+ iccount = iccount-1
+ go to 2
+ end if
+c else if (index('ulare',durq) .gt. 0) then
+ else if (index('ularec',durq) .gt. 0) then
+ go to 2
+ else if (durq .eq. 'S') then
+c
+c Stemlength change
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('.0123456789:',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a number or colon here!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+ if (.not.stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off sticky stemshrinks without turning on!')
+ call stop1()
+ end if
+ stickyS = .false.
+ go to 2
+ end if
+ call readnum(lineq,iccount,durq,dum)
+ if (dum.lt..5 .or. dum.gt.4.) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Stemlength shortening must be from .5 to 4!')
+ call stop1()
+ end if
+ if (durq .ne. ':') then
+ iccount = iccount-1
+ else
+ if (stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on sticky stemshrinks when already on!')
+ call stop1()
+ end if
+ stickyS = .true.
+ end if
+ go to 2
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Check for midi-only accid. CANNOT coesist with accidental position tweaks, so
+c MUST come right after "f,s,n"
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 2
+ else if (durq .eq. 'p') then
+ fulbrp = charq.eq.'r'
+ if (.not. fulbrp) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'The option "p" only works with "r" (rest)!')
+ call stop1()
+ end if
+ go to 2
+ else if (durq .eq. 'b') then
+ if (charq .ne. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You entered "b"; I expected "rb"!')
+ call stop1()
+ else if (numnum .eq. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You entered "r" & "b" with two numbers!')
+ end if
+ go to 2
+ else if (durq .eq. 'x') then
+c
+c Xtuplet. Count number of doubled notes (for unequal xtups)
+c
+ if (btest(nacc(ivx,nnl(ivx)),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+c
+c Will set all durations to 0 except last one.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'First char after "x" in xtuplet must be "1"-"9"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (fnum .gt. 99) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Xtuplet cannot have more than 99 notes!')
+ call stop1()
+ else if (index(' DFnd',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only legal characters here are " ","D","F","n"!')
+ call stop1()
+ end if
+c
+c End of mandatory xtup inputs. Check for options. Note D,F,d must precede n.
+c
+ if (index('DF',durq) .gt. 0) then
+c
+c Double xtup note to make an un= xtup. Here, number already set, but may also
+c have used this before number was set.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ ndoub = 1
+ call g1etchar(lineq,iccount,durq)
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ call g1etchar(lineq,iccount,durq)
+ end if
+ if (durq .eq. 'n') then
+c
+c Number alteration stuff. After 'n', require '+-123456789fs ', no more 'DF'.
+c
+ numshft = 0
+30 call g1etchar(lineq,iccount,durq)
+ if (durq .eq. 'f') then
+ go to 30
+ else if (index('+-',durq) .gt. 0) then
+ numshft = numshft+1
+ if (numshft .eq. 3) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only 2 shifts are allowed after "n" in xtup!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character should be a digit or "."!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,snum)
+ iccount = iccount-1
+ if ((numshft.eq.1 .and. snum.gt.15.1) .or.
+ * (numshft.eq.2 .and. snum.gt.1.51)) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Shift number after "n" in xtup is out of range!')
+ call stop1()
+ end if
+ go to 30
+ else if (durq .eq. 's') then
+c
+c Slope alteration for bracket
+c
+ call getchar(lineq,iccount,durq)
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'For slope adjustment, this character must be "+" or "-"!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character should be a digit!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,snum)
+ iccount = iccount-1
+ if (nint(snum) .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slope adjustment cannot exceed 15!')
+ call stop1()
+ end if
+ go to 30
+ else if (index('123456789',durq) .gt. 0) then
+c
+c Unsigned integer => alternate printed number
+c
+ call readnum(lineq,iccount,durq,snum)
+ if (snum .gt. 15.1) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Alternate xtup number after "n" must be <16!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 30
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "n" in xtup!')
+ call stop1()
+ end if
+ end if
+ ntup = nint(fnum)
+ do 6 itup = 2 , ntup
+ nodur(ivx,nnl(ivx)) = 0
+ nnl(ivx) = nnl(ivx)+1
+110 call g1etchar(lineq,iccount,durq)
+ if (durq.eq.' ') then
+ go to 110
+ else if (durq .eq. 'o') then
+c
+c Ornament in xtup. "o" symbol must come AFTER the affected note
+c
+ call g1etchar(lineq,iccount,dumq)
+ if (index('(stmx+Tup._)e:>^bc',dumq) .eq. 0 ) then
+ if (index('fg',dumq) .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Fermata or segno not allowed in xtuplet!')
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal ornament!')
+ end if
+ call stop1()
+ end if
+ if (dumq .eq. 'T') then
+c
+c Trill. may be followed by 't' and/or number. read 'til blank
+c
+29 call g1etchar(lineq,iccount,dumq)
+ if (dumq .ne. ' ') go to 29
+ else if (dumq .eq. 'e') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('sfn?',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "e" in edit. accid. symbol!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. '?') call g1etchar(lineq,iccount,dumq)
+ else if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (.not.ornrpt) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off repeated ornaments before they were on!')
+ call stop1()
+ end if
+ ornrpt = .false.
+ else
+ call g1etchar(lineq,iccount,dumq)
+ end if
+ if (index('+- :',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in ornament symbol!')
+ call stop1()
+ end if
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on repeated ornaments but already on!')
+ call stop1()
+ end if
+ ornrpt = .true.
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ if (index('0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be an integer here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .eq. ':') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot shift AND repeat an ornament!')
+ call stop1()
+ end if
+c
+c 12/7/03 Allow horizontal shift on any ornament, not just breath and ceas.
+c
+ if (index('+-',durq) .gt. 0) then
+ if (index('.0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,
+ * ibarcnt-ibaroff+nbars+1,
+ * 'There should be a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ end if
+ go to 110
+ else if (index('st(){}',durq) .gt. 0) then
+c
+c Slur in xtup
+c
+ iposn = 0
+ numint = 0
+15 call g1etchar(lineq,iccount,dumq)
+ iposn = iposn+1
+ if (index('udlbfnht',dumq) .gt. 0) then
+ if (dumq.eq.'t' .and. durq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot use "t" as an option on a tie!')
+ call stop1()
+ end if
+ go to 15
+ else if (index('+-',dumq) .gt. 0) then
+ numint = numint+1
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (numint .eq. 1) then
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ else if (numint .eq. 2) then
+ if (abs(fnum).gt.6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in the range (-6.3,6.3)!')
+ call stop1()
+ end if
+ else
+c
+c Third signed integer, must be a midslur or curve spec.
+c
+ if (abs(fnum).gt.31) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur midheight must be in the range (-31,31)!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+c
+c Expecting curve parameters. Get two numbers
+c
+ do 40 i = 1 , 2
+ iccount = iccount+1
+ fnum = ichar(lineq(iccount:iccount))-48
+ if (abs(fnum-3.5) .gt. 3.6) then
+ call errmsg(lineq,iccount,
+ * ibarcnt-ibaroff+nbars+1,
+ * 'Slur curve parameter must be in range (0,7)!')
+ call stop1()
+ end if
+40 continue
+ iccount = iccount+1
+ end if
+ end if
+ iccount = iccount-1
+ go to 15
+
+ else if (dumq .eq. 's') then
+c
+c What follows should be one or two signed numbers for adjustment of line break
+c slur, end of 1st segment or start of second.
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not use linebreak slur options with font-based slurs!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be "+" or "-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ end if
+ iccount = iccount-1
+ go to 15
+ else if (dumq .eq. 'H' .and. iposn.gt.1) then
+ if (lineq(iccount+1:iccount+1) .eq. 'H')
+ * iccount=iccount+1
+ go to 15
+ else if (dumq .eq. 'p') then
+c
+c local change in postscript slur/tie adjustment default
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must use postscript slurs ("Ap") to use this option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" here!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('st',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "s" or "t" here!')
+ call stop1()
+ end if
+ go to 15
+ else if (dumq .ne. ' ') then
+ ic = ichar(dumq)
+ if ((ic.ge.48.and.ic.le.57) .or.
+ * (ic.ge.65.and.ic.le.90)) then
+ if (iposn .eq. 1) then
+ if (durq.eq.'t' .and. fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID not allowed on non-postscript tie!')
+ call stop1()
+ end if
+ go to 15
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID must be 2nd character in slur symbol!')
+ call stop1()
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in slur symbol!')
+ call stop1()
+ end if
+ go to 110
+ else if (index('0123456789#-nx_',durq) .gt. 0) then
+c
+c We have a figure. Only allow on 1st note of xtup
+c
+ if (itup .ne. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Figure in xtup only allowed on 1st note!')
+ call stop1()
+ else if (durq.eq.'x') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'No floating figures in xtuplets!')
+ call stop1()
+ end if
+ if (usefig .and. ivx.eq.1) ifig = 1
+26 call g1etchar(lineq,iccount,durq)
+ if (index('0123456789#-n_.:',durq) .gt. 0) then
+ go to 26
+ else if (durq .eq. 's') then
+ isligfont = .true.
+ go to 26
+ else if (durq .eq. '+') then
+c
+c vertical offset, must be integer then blank
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .ne. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer for vertical offset expected here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical offset must terminate figure!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 26
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in figure in xtuplet!')
+ call stop1()
+ end if
+ go to 110
+ else if (durq .eq. 'G') then
+ ngr = 1
+79 call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ ngr = nint(fnum)
+ iccount = iccount-1
+ go to 79
+ else if (index('AWulxs',charq) .gt. 0) then
+ go to 79
+ else if (charq .eq. 'm') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('01234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit less than 5 must follow "m" in a grace note!')
+ call stop1()
+ end if
+ go to 79
+ else if (charq .eq. 'X') then
+c
+c Space before main note
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('0123456789.',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 79
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A number must follow "X" in a grace note!')
+ call stop1()
+ end if
+ end if
+c
+c At this point, charq is first note name in rest (grace?)
+c
+ do 71 igr = 1 , ngr
+ numnum = 0
+ if (igr .gt. 1) then
+75 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 75
+ end if
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In grace, expected "a"-"g"!')
+ call stop1()
+ end if
+78 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+ if (index('1234567',charq) .gt. 0) then
+ if (numnum .eq. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one of "+-1234567" allowed here in grace!')
+ call stop1()
+ end if
+ numnum = 1
+ go to 78
+ else if (index('+-nfs',charq) .gt. 0) then
+ go to 78
+ end if
+c
+c Digits are possible octave numbers
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after note name in grace!')
+ call stop1()
+ end if
+71 continue
+ go to 110
+ else if (durq .eq. chax(92)) then
+ call chklit(lineq,iccount,literr)
+ if (literr .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * literq(literr))
+ call stop1()
+ end if
+ go to 110
+ else if (durq .eq. 'M') then
+c
+c Temporary trap until I get around putting this in pmxb
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Macros not yet allowed in xtuplets!')
+ call stop1()
+ else if (durq .eq. 'X') then
+ call g1etx(lineq,iccount,.false.,shifton,
+ * ibarcnt-ibaroff+nbars+1,udsp(ibarcnt+nbars+1),wheadpt)
+ go to 110
+ else if (durq .eq. 'z') then
+c
+c Chord note in xtup. Read past for now.
+c
+33 call g1etchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 33
+ go to 110
+ else if (durq .eq. 'D') then
+c
+c Dynamic mark
+c
+ call checkdyn(lineq,iccount,ibarcnt-ibaroff+nbars+1)
+ go to 110
+ else if (durq .eq. '%') then
+ if (iccount .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Comment must have "%" in column 1!')
+ call stop1()
+ end if
+ iccount = 128
+ go to 110
+ else if (durq .eq. '?') then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ go to 110
+ end if
+ if (durq .ne. '-') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting "-"')
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting number')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 110
+c+++
+ else if (durq.eq.']' .and. lineq(iccount+1:iccount+1).eq.'['
+ * .and. lineq(iccount+2:iccount+2).eq.' ') then
+ iccount = iccount+2
+ go to 110
+c+++
+ end if
+c
+c End of xtup options. At this point symbol can only be note or rest
+c
+ if (index('abcdefgr',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In xtup, this character is not allowed!')
+ call stop1()
+ else if (durq.eq.'r' .and. itup.eq.ntup) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry, PMX cannot end an xtuplet with a rest!')
+ call stop1()
+ end if
+7 call g1etchar(lineq,iccount,durq)
+ if (index('2345678ulcb',durq) .gt. 0) then
+ go to 7
+ else if (index('sfn',durq) .gt. 0) then
+c
+c Check for MIDI-only accidental. Cannot coexist with accid. pos'n shift.
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 7
+ else if (index('+-<>',durq) .gt. 0) then
+c
+c May have either octave jump or shifted accid. on main xtup note
+c
+ if (index('+-',durq).gt.0 .and.
+ * index('01234567890',lineq(iccount+1:iccount+1)).eq.0)
+ * go to 7
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 7
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double an xtup note to make an unequal xtup
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ ndoub = ndoub+1
+ go to 7
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ go to 7
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal option on xtuplet note!')
+ call stop1()
+ end if
+ if (itup .eq. ntup-ndoub) go to 3
+6 continue
+3 continue
+c
+c 6==End of loop for xtuplet input
+c
+ else if (durq .eq. 'm') then
+c
+c Multi-bar rest: next 1 or two digits are # of bars.
+c
+ if (mod(itsofar(iv),lenbar) .ne. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Multibar rest must start at beginning of bar!')
+ call stop1()
+ else if (iv.eq.1.and.ibarmbr.gt.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Multibar rest only OK at one time per block!')
+ call stop1()
+ end if
+c
+c For some purposes, pretend its one bar only
+c
+ nodur(iv,nnl(iv)) = lenbar
+ ibarmbr = nbars+1
+ mbrest = 0
+c20 call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer after "rm"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ mbrest = nint(fnum)
+ iccount = iccount-1
+c if (ichar(durq).ge.48.and.ichar(durq).le.57) then
+c mbrest = 10*mbrest+ichar(durq)-48
+c go to 20
+c end if
+ if (nv .gt. 1) then
+ if (iv .eq. 1) then
+ mbrestsav = mbrest
+ else
+ if (mbrest .ne. mbrestsav) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must enter same multi-bar rest in every voice!')
+ call stop1()
+ end if
+ end if
+c
+c Zero out mbrestsav so can check at end of input block whether
+c all voices have one
+c
+ if (iv .eq. nv) mbrestsav=0
+ end if
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "rm"!')
+ call stop1()
+ end if
+ else if (durq .eq. '.') then
+c
+c Dotted pattern. Close out note. Mult time by 3/4.
+c Set time for next note to 1/4. Start the note.
+c
+ idotform = 1
+ else if (durq .eq. ',') then
+ idotform = 3
+c
+c Now flow to duration setting, as if durq=' '
+c
+ else if (index('oL',durq) .gt. 0) then
+c
+c Suppress full bar rest, or look left for height
+c
+ if (charq .ne. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o","L" options only legal for rest, not note!')
+ call stop1()
+ end if
+ go to 2
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double note for xtup. Must check here in case "D" or "F" came before "x" or on
+c last note of xtup. Need to flag it in pmxa since affects horiz. spacing.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ go to 2
+ else if (durq .eq. 'A') then
+c
+c Main note accidental option
+c
+ call getchar(lineq,iccount,durq)
+ if (index('o+-<>',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o",+","-","<",">" are the only legal options here!')
+ call stop1()
+ end if
+c
+c Need more stuff here
+c
+ if (durq .ne. "o") then
+c
+c Back up 1, flow out, will get +|-|<|> next loop preceded by "A", and will
+c proceed to number input checking
+c
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character!')
+ print*,'ASCII code:',ichar(durq)
+ call stop1()
+ end if
+c
+c End of block for note options.
+c
+c Set the duration
+c
+ if (idotform .gt. 0) then
+ if (idotform .eq. 1) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)*3/2
+ else if (idotform .eq. 2) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/3
+ else if (idotform .eq. 3) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)
+ else if (idotform .eq. 4) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/2
+ end if
+ else if (ibarmbr.ne.nbars+1 .and. .not.fulbrp) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)
+c
+c Check for double dot
+c
+ if (iddot .eq. 1) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*7/6
+ iddot = 0
+ end if
+ else if (fulbrp) then
+ nodur(ivx,nnl(ivx)) = lenbar
+c
+c Use a one-line function to set nnodur. It gives inverse of ifnodur.
+c
+ nnodur = index('62514x0x37',
+ * chax(48+int(log(.1+lenbar)/.69315)))-1
+ fulbrp = .false.
+ end if
+ rest(ivx,nnl(ivx)) = charq.eq.'r'
+c
+c If inside forced beam, check if note is beamable
+c
+ if (fbon) then
+ if (nodur(ivx,nnl(ivx)) .lt. 16) go to 120
+ if (nnl(ivx) .gt. 1) then
+ if (nodur(ivx,nnl(ivx)-1) .eq. 0) go to 120
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Unbeamable thing in forced beam!')
+ call stop1()
+ end if
+120 continue
+c
+c Get number of prior bars for later check on whether note spans bar line
+c
+ nbb4 = itsofar(ivx)/lenbar
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ if (mod(itsofar(ivx),lenbar) .eq. 0) then
+ nbars = nbars+1
+ if (shifton) barend = .true.
+c
+c Will check barend when 1st note of next bar is entered.
+c
+ if (nbars .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot have more than 15 bars in an input block!')
+ call stop1()
+ end if
+ nib(ivx,nbars) = nnl(ivx)
+ if (firstline .and. lenbar.ne.lenbr1) then
+c
+c Just finished the pickup bar for this voice.
+c
+ if (itsofar(ivx) .ne. lenbr0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Pickup bar length disagrees with mtrnum0!')
+ call stop1()
+ end if
+ lenbar = lenbr1
+ itsofar(ivx) = 0
+ end if
+ else if (barend) then
+ if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ end if
+ barend = .false.
+ else if (itsofar(ivx)/lenbar .gt. nbb4) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'This note spans a bar line!')
+ call stop1()
+ end if
+ if (idotform.eq.1 .or. idotform.eq.3) then
+ call g1etchar(lineq,iccount,charq)
+ if (index('abcedfgr',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected note name or "r" here!')
+ call stop1()
+ end if
+ idotform = idotform+1
+ numnum = 1
+ go to 28
+ end if
+c
+c End of sub block for note-rest
+c
+ else if (charq .eq. 'z') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected chord note name here!')
+ call stop1()
+ end if
+25 call g1etchar(lineq,iccount,durq)
+c if (index('dre12345678',durq) .gt. 0) then
+ if (index('dre12345678c',durq) .gt. 0) then
+ go to 25
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Check for midi-only accid. CANNOT coesist with accidental position tweaks, so
+c MUST come right after "f,s,n"
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 25
+ else if (durq .eq. 'A') then
+ if (index('fsn',lineq(iccount-1:iccount-1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "f,s,n" before "A" in chord note!')
+ call stop1()
+ end if
+ go to 25
+ else if (index('<>',durq) .gt. 0) then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .eq. 0) then
+c if (index('fsncA',lineq(iccount-1:iccount-1)) .eq. 0) then ! Causes problems
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "f,s,n,A" before "<" or ">"!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('1234567890.',durq) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number to start here for accidental shift!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 25
+ else if (index('+-',durq) .gt. 0) then
+ if (index('1234567890.',lineq(iccount+1:iccount+1)) .eq. 0)
+ * go to 25
+c
+c Number or '.' (durq) follows +/- . Get it.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '.' .and. index('1234567890',
+ * lineq(iccount+1:iccount+1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * '"." here must be followed by a digit!')
+ call stop1()
+ else if (index('sfndA',lineq(iccount-2:iccount-2)).eq.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Number after +/- must follow "d,s,f,n,A"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (index('+-',durq) .eq. 0) then
+ iccount = iccount-1
+ go to 25
+ end if
+c
+c 2nd +/-
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '.') call g1etchar(lineq,iccount,durq)
+ if (index('1234567890',durq) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 25
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in chord note!')
+ call stop1()
+ end if
+ else if (charq .eq. 'G') then
+ ngr = 1
+9 call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ ngr = nint(fnum)
+ iccount = iccount-1
+ go to 9
+ else if (index('AWulxs',charq) .gt. 0) then
+ go to 9
+ else if (charq .eq. 'm') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('01234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit less than 5 must follow "m" in a grace note!')
+ call stop1()
+ end if
+ go to 9
+ else if (charq .eq. 'X') then
+c
+c Space before main note
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('0123456789.',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 9
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A number must follow "X" in a grace note!')
+ call stop1()
+ end if
+ end if
+c
+c At this point, charq is first note name in rest (grace?)
+c
+ do 19 igr = 1 , ngr
+ numnum = 0
+ if (igr .gt. 1) then
+55 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 55
+ end if
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In grace, expected "a"-"g"!')
+ call stop1()
+ end if
+18 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+ if (index('1234567',charq) .gt. 0) then
+ if (numnum .eq. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one of "+-1234567" allowed here in grace!')
+ call stop1()
+ end if
+ numnum = 1
+ go to 18
+c else if (index('nfs',charq) .gt. 0) then
+ else if (index('+-nfs',charq) .gt. 0) then
+ go to 18
+ end if
+c
+c Digits are possible octave numbers
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after note name in grace!')
+ call stop1()
+ end if
+19 continue
+ else if (charq .eq. chax(92)) then
+ call chklit(lineq,iccount,literr)
+ if (literr .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * literq(literr))
+ call stop1()
+ end if
+ else if (charq .eq. 'o') then
+c
+c Ornament on non-xtup note. "o" symbol must come AFTER the affected note
+c
+ if (nnl(ivx) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o" must be in same input block, after affected note!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('(stmgx+Tupf._)e:>^bc',dumq) .eq. 0 ) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal ornament!')
+ call stop1()
+ end if
+ if (dumq .eq. ':') then
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected blank after "o:"!')
+ call stop1()
+ else if (.not.ornrpt) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off repeated ornaments before they were on!')
+ call stop1()
+ end if
+ ornrpt = .false.
+ else if (dumq .eq. 'g') then
+ if (issegno) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry, only one "segno" per input block!')
+ call stop1()
+ else if (ivx .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'segno can only be in voice 1!')
+ call stop1()
+ end if
+ issegno = .true.
+12 call g1etchar(lineq,iccount,dumq)
+ if (dumq.eq.'-' .or.
+ * (ichar(dumq).ge.48.and.ichar(dumq).le.58)) go to 12
+ if (dumq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in segno ornament symbol!')
+ call stop1()
+ end if
+ else if (dumq .eq. 'T') then
+c
+c Trill. may be followed by 't' and/or number. read 'til blank
+c
+22 call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected blank after ":"!')
+ call stop1()
+ end if
+ go to 32
+ else if (dumq .ne. ' ') then
+ go to 22
+ end if
+ else if (dumq .eq. 'f') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index(' d+-:',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "f" in fermata ornament symbol!')
+ call stop1()
+ end if
+ if (dumq .eq. 'd') call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. ':') go to 32
+ else if (dumq .eq. 'e') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('sfn?',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "e" in edit. accid. symbol!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. '?') call g1etchar(lineq,iccount,dumq)
+ else
+ call g1etchar(lineq,iccount,dumq)
+ end if
+ if (index('+- :',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in ornament symbol!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ if (index('0123456789',lineq(iccount+1:iccount+1)).eq.0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be an integer here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .eq. ':') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot shift AND repeat an ornament!')
+ call stop1()
+ end if
+c
+c 12/7/03 Allow horizontal shift on any ornament, not just breath and caes.
+c
+ if (index('+-',durq) .gt. 0) then
+ if (index('.0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ end if
+32 continue
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on repeated ornaments but already on!')
+ call stop1()
+ end if
+ ornrpt = .true.
+ end if
+ else if (index('st(){}',charq) .gt. 0) then
+ numint = 0
+ iposn = 0
+8 call g1etchar(lineq,iccount,dumq)
+ iposn = iposn+1
+ if (charq.eq.'t' .and. dumq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot use "t" as an option on a tie!')
+ call stop1()
+ end if
+ if (index('udltb+-fnhHps ',dumq) .eq. 0) then
+c
+c Check for explicit ID code.
+c
+ ic = ichar(dumq)
+ if (ic.lt.48 .or. (ic.gt.57.and.ic.lt.65) .or.
+ * ic.gt.90) then
+c
+c Not 0-9 or A-Z, so exit
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in slur symbol!')
+ call stop1()
+ else
+c
+c It is a possible ID code. Right place?
+c
+ if (iposn .ne. 1) then
+c
+c Slur ID is not 2nd!
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID must be second character in slur symbol!')
+ call stop1()
+ else if (charq.eq.'t' .and. fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID not allowed on non-postscript tie!')
+ call stop1()
+ end if
+ end if
+c
+c Slur ID is OK. Note it cannot be "H" at this point..
+c
+ go to 8
+ else if (dumq .eq. 'H') then
+ if (iposn .eq. 1) go to 8
+c
+c "H" is NOT an ID code.
+c
+ if (.not.fontslur .and. charq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot reshape postscript ties this way!')
+ call stop1()
+ end if
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount=iccount+1
+ iposn = iposn+1
+ end if
+ go to 8
+ else if (index('fh',dumq).gt.0 .and. .not.fontslur
+ * .and. charq.eq.'t') then
+c
+c 3/9/03 Can't reshape postscript tie.
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot reshape postscript ties this way!')
+ call stop1()
+ else if (dumq .eq. 'p') then
+c
+c local change in postscript slur/tie adjustment default
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must use postscript slurs ("Ap") to use this option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" here!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('st',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "s" or "t" here!')
+ call stop1()
+ end if
+ iposn = iposn+2
+ go to 8
+ end if
+ if (index('udltbfnh',dumq) .gt. 0) then
+ go to 8
+ else if (index('+-',dumq) .gt. 0) then
+ numint = numint+1
+ if (fontslur .and. charq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"+|-" for slur height only allowed in "s"-slurs!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (numint .eq. 1) then
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ else if (numint .eq. 2) then
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ else
+c
+c Third signed integer, must be a midslur or curve spec.
+c
+ if (abs(fnum).gt.31) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur midheight must be in the range (-31,31)!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+c
+c Expecting curve parameters. Get two numbers
+c
+ do 41 i = 1 , 2
+ iccount = iccount+1
+ fnum = ichar(lineq(iccount:iccount))-48
+ if (abs(fnum-3.5) .gt. 3.6) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur curve parameter must be in range (0,7)!')
+ call stop1()
+ end if
+41 continue
+ iccount = iccount+1
+ end if
+ end if
+ iccount = iccount-1
+ go to 8
+ else if (dumq .eq. 's') then
+c
+c What follows should be one or two signed numbers for adjustment of line break
+c slur, end of 1st segment or start of second.
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not use linebreak slur options with font-based slurs!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be "+" or "-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ end if
+ iccount = iccount-1
+ go to 8
+ else if (dumq .eq. 'H' .and. iposn.gt.1) then
+ if (lineq(iccount+1:iccount+1) .eq. 'H') iccount=iccount+1
+ go to 8
+ end if
+ else if (charq .eq. '?') then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+ if (durq .ne. '-') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting "-"!')
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting number!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ end if
+ else if ((ichar(charq).ge.48.and.ichar(charq).le.57) .or.
+ * index('#-nx_',charq) .gt. 0) then
+c
+c We have a figure. Must come AFTER the note it goes under
+c
+ if (itsofar(ivx).eq.0 .and.
+ * (.not.firstline.or.lenbr0.eq.0.or.lenbar.eq.lenbr0)) then
+c
+c Figure before first note in block
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot put figure before first note in block!')
+ call stop1()
+ end if
+ if (charq.eq.'x') then
+ indxb = index(lineq(iccount:128),' ')
+ if (indxb .lt. 5) then
+ call errmsg(lineq,iccount+indxb-1,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot have a blank here in floating figure!')
+ call stop1()
+ end if
+ end if
+ if (usefig) ifig = 1
+5 call g1etchar(lineq,iccount,charq)
+ if (index(' 0123456789#-nx_.:+s',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in figure!')
+ call stop1()
+ else if (charq .eq. '+') then
+c
+c vertical offset, must be integer, then blank
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer for vertical offset expected here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,charq,fnum)
+ if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical offset must terminate figure!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 5
+ else if (charq .eq. 's') then
+ isligfont = .true.
+ end if
+ if (charq .ne. ' ') go to 5
+ else if (charq .eq. '[') then
+ if (fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Started forced beam while another was open!')
+ call stop1()
+ end if
+ fbon = .true.
+17 call g1etchar(lineq,iccount,charq)
+ if (index('uljhf:',charq) .gt. 0) then
+ go to 17
+ else if (index('+-',charq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 17
+ else if (charq .eq. 'm') then
+c
+c Forced multiplicity, next char should be 1-4
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('1234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced multiplicity for a beam must be 1, 2, 3, or 4!')
+ call stop1()
+ end if
+ go to 17
+ else if (charq .ne. ' ') then
+ if (index('0123456789',charq) .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "[", digits must now be preceeded by "+" or "-"!')
+ print*,'You will have to edit older sources to meet this rqmt,'
+ print*,'but it was needed to allow 2-digit height adjustments.'
+ print*,'Sorry for the inconvenience. --The Management'
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after [!')
+ end if
+ call stop1()
+ end if
+ else if (charq .eq. ']') then
+ if (.not.fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced beam stop with no corresponding start!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,charq)
+ if (charq .eq. '-') then
+ if (lineq(iccount+1:iccount+2) .ne. '[ ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'Only sequence allowed here is "[ "!')
+ call stop1()
+ else
+ iccount = iccount+2
+ end if
+ else if (charq .eq. '[') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be a blank!')
+ call stop1()
+ end if
+ else
+c
+c Forced beam is really ending
+c
+ fbon = .false.
+ if (charq .eq. 'j') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be a blank!')
+ call stop1()
+ end if
+ else if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"]" must be followed by blank, "j", "-", or "["!')
+ call stop1()
+ end if
+ end if
+ else if (charq .eq. 'D') then
+c
+c Dynamic mark
+c
+ if (nnl(ivx) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"D" must not come before any notes have been entered!')
+ call stop1()
+ end if
+ call checkdyn(lineq,iccount,ibarcnt-ibaroff+nbars+1)
+ else if (index('lhw',charq) .gt. 0) then
+c
+c Save position for later check
+c
+ icclhw = iccount
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789.+- ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "l", "w", or "h"!')
+ call stop1()
+ end if
+ isheadr = isheadr .or. charq .eq. 'h'
+ if (index(' +-',durq) .gt. 0) then
+c
+c There is a header (or lower string?)
+c
+ if (index('+-',durq) .gt. 0) then
+c
+c User-defined vert offset (\internote).
+c
+ if (charq .ne. 'h') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"+" or "-" not permitted here!')
+ call stop1()
+ end if
+c
+c Have "h" followed by +/- . Check for digit.
+c Can blow durq since not using fnum for now, but...
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a digit here!')
+ call stop1()
+ end if
+c
+c Have "h" followed by +/- followed by a digit. No need to get the number.
+c
+c call readnum(lineq,iccount,durq,fnum)
+ end if
+ if (charq .ne. 'w') then
+c
+c Header or lower string.
+c
+ if (icclhw .ne. 1) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * '"h" or "l" must be first character in line!')
+ call stop1()
+ end if
+c
+c Read past the next line, which has the string.
+c
+ call read10(charq,lastchar)
+ nline = nline+1
+ iccount = 128
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Symbol "w" (width) must be followed by a digit!')
+ call stop1()
+ end if
+ else
+c
+c Height or width change spec. Check if at start of piece.
+c
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Symbol must go at top of first input block!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,dimen)
+c
+c Check units. Convert to points
+c
+ if (durq .eq. ' ' .or. durq .eq. 'p') then
+ dimen = dimen+.5
+ else if (durq .eq. 'i') then
+ dimen = dimen*72+.5
+ else if (durq .eq. 'm') then
+ dimen = dimen/25.4*72+.5
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal unit; must be "p","i",or"m"!')
+ call stop1()
+ end if
+ if (charq .eq. 'h') then
+ ptheight = int(dimen)
+ else
+ widthpt = int(dimen)
+ end if
+ end if
+ else if (charq .eq. 'm') then
+c
+c Time signature change. Only allow at beginning of block.
+c mtrnuml, mtrdenl (logical) and p (printable) will be input.
+c mtrnuml=0 initially. (In common)
+c
+c Check whether at beginning of a block
+c
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Meter change only OK in voice 1, at start of block!')
+ print*,'voice number is',ivx
+ call stop1()
+ end if
+ newmeter = .true.
+ call readmeter(lineq,iccount,mtrnuml,mtrdenl)
+ if (mtrnuml .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Digit 0 not allowed here!')
+ call stop1()
+c else if (mtrdenl .eq. 1) then
+cc
+cc Kluge!!!
+cc
+c mtrdenl = 2
+c mtrnuml = 2*mtrnuml
+ end if
+ call readmeter(lineq,iccount,mtrnmp,mtrdnp)
+c
+c Read past printed time signature; not used in pmxa.
+c
+ lenbeat = i1fnodur(mtrdenl,'x')
+ lenmult = 1
+ if (mtrdenl .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbar = lenmult*mtrnuml*lenbeat
+ mtrnuml = 0
+ else if (charq .eq. 'C') then
+ call g1etchar(lineq,iccount,durq)
+ if (.not.(index('tsmanrbf',durq).gt.0 .or.
+c * (ichar(durq).ge.48 .and. ichar(durq).le.54))) then
+ * (ichar(durq).ge.48 .and. ichar(durq).le.55))) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Must have t,s,m,a,n,r,b,f or 1-6 after C!')
+ * 'Must have t,s,m,a,n,r,b,f or 1-7 after C!')
+ call stop1()
+ end if
+ gotclef = .true.
+ else if (charq .eq. 'R') then
+ if (ivx .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Repeats can only go in voice 1!')
+ call stop1()
+ end if
+10 call g1etchar(lineq,iccount,durq)
+ if (index('lrdDbz',durq) .gt. 0) go to 10
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "R" (repeat/double bar)!')
+ call stop1()
+ end if
+ else if (charq .eq. 'V') then
+c
+c Ending
+c
+ if (iv .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Voltas are only allowed in voice #1!')
+ call stop1()
+ else if (isvolt) then
+ print*
+ print*,'*******WARNING********'
+ write(15,'(/,a)')'*******WARNING********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There is more than one volta in this input block.!')
+ print*,'This may work in a score, but WILL NOT work in parts.'
+ print*,
+ *'Safest to have only 1 volta per block, at the start of the block'
+ write(15,'(a)')
+ * 'This may work in a score, but WILL NOT work in parts.'
+ write(15,'(a)')
+ *'Safest to have only 1 volta per block, at the start of the block'
+ end if
+ isvolt = .true.
+ lvoltxt = 0
+11 call g1etchar(lineq,iccount,durq)
+ if (durq .ne.' ') then
+ go to 11
+ end if
+ else if (charq .eq. 'B') then
+ continue
+ else if (charq .eq. 'P') then
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only allowed at beginning of block!')
+ call stop1()
+ end if
+16 call g1etchar(lineq,iccount,durq)
+ if (durq.eq.'l'.or.durq.eq.'r'.or.(ichar(durq).ge.48 .and.
+ * ichar(durq).le.57)) go to 16
+ if (durq .eq. 'c') then
+c
+c Expect a centered name, and it has to be last option
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '"') then
+c
+c Quoted name, go to next quote mark
+c
+ do 35 iccount = iccount+1 , 127
+ if (lineq(iccount:iccount) .eq. '"') go to 36
+35 continue
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Missing close quote after page number command (P)!')
+ call stop1()
+36 continue
+ else if (durq .ne. ' ') then
+c
+c Space-delimited name, look for next blank
+c
+ do 37 iccount = iccount+1 , 127
+ if (lineq(iccount:iccount) .eq. ' ') go to 38
+37 continue
+38 continue
+ end if
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only "l","r","c" or digit allowed after "P"!')
+ call stop1()
+ end if
+ else if (charq .eq. 'W') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('.0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number to start here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,wminnh(ibarcnt+nbars+1))
+ else if (charq .eq. 'T') then
+c
+c Titles
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('itc',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must put "i", "t", or "c" after "T"!')
+ call stop1()
+ end if
+ ihead = ihead+2**(index('itc',durq)-1)
+c
+c Maybe a number after 'Tt', but ignore here. Read past string on next line.
+c
+ call read10(charq,lastchar)
+ nline = nline+1
+ iccount = 128
+ else if (charq .eq. 'A') then
+27 call g1etchar(lineq,iccount,durq)
+ if (index('rbsdeK',durq) .gt. 0) then
+ go to 27
+ else if (durq .eq. 'v') then
+ if (ibarcnt .eq. 0) novshrinktop = .true.
+ go to 27
+ else if (durq .eq. 'a') then
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fbar)
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'i') then
+ call g1etchar(lineq,iccount,durq)
+c
+c Local interstaff correction. Set to -1. if not specifiec, or after use,
+c or anytime except at top, since pmxb handles all times except at top.
+c
+ call readnum(lineq,iccount,durq,tintstf)
+ if (ibarcnt .eq. 0) fintstf = tintstf
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'I') then
+c
+c Global interstaff correction. Use in place of fintstf if fintstf<0
+c
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,gintstf)
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'o') then
+ optimize = .true.
+ go to 27
+ else if (durq .eq. 'S') then
+ do 50 iiv = 1 , nv
+ call g1etchar(lineq,iccount,durq)
+ if (index('-0st',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "AS", need nv instances of "s,t,-,0"!')
+ call stop1()
+ end if
+ if (durq.eq.'-'.or.durq.eq.'s') then
+ isize(iiv) = 1
+ else if (durq.eq.'t') then
+ isize(iiv) = 2
+ end if
+50 continue
+ go to 27
+ else if (durq .eq. 'p') then
+ fontslur = .false.
+42 continue
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-',durq) .gt. 0) then
+c
+c Characters to change defaults for ps slurs
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('shtc',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only letters allowed here are "s","h","t","c"!')
+ call stop1()
+ end if
+c
+c Now check for another default modifier
+c
+ go to 42
+ else if (index('lh',durq) .gt. 0) then
+c
+c Flags for optional linebreak ties or header specials
+c
+ go to 42
+ else
+ iccount = iccount-1
+ end if
+ go to 27
+ else if (durq .eq. 'N') then
+c
+c Override default name for a part file. Must have part number, then
+c partname in quotes. Must be on line by itself, and start in column 1.
+c Will only be passed thru to scor2prt.
+c
+ if (iccount .ne. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"AN" must start in column 1!')
+ call stop1()
+ end if
+ ndxquote = index(lineq,'"')
+ if (ndxquote.lt.4 .or. ndxquote.gt.5 .or.
+ * index('123456789',lineq(3:3)).eq.0 .or.
+ * (ndxquote.eq.5.and.index('012',lineq(4:4)).eq.0)) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"AN" must be followed by inst. #, then quote!')
+ call stop1()
+ end if
+ ndxquote = index(lineq(ndxquote+1:128),'"')
+ if (ndxquote .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In "AN", file name must be in quotes!')
+ call stop1()
+ end if
+ iccount = 128
+ else if (durq .eq. 'T') then
+ cstuplet = .true.
+ else if (durq .eq. 'R') then
+c
+c Get full name of normal include file; must occupy remainder of line
+c
+ call getpmxmod(.false.,lineq(iccount+1:128))
+ iccount = 128
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'After "A" must follow one of the letters abdeiINprsST!')
+ * 'After "A" must follow one of the letters abdeiINprRsST!')
+ call stop1()
+ end if
+ else if (charq .eq. 'K') then
+c
+c Rules and function of K command
+c
+c Only 1 K +/-n +/-m allowed per block if n.ne.0 (transposition). isig1 is
+c initial sig, and must be passed to pmxb because it is needed when topfile
+c is called, which is before the K+n+m command is read in pmxb. Also, we
+c compute and save ibrkch and newkey for each syst, accounting for key changes,
+c then adjust fbar to make poenom much more accurate.
+c Jan 02: Now K-0+[n] is used to transpose e.g. from f to f#.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-i',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"K" (transpose or key change) must be followed by "+,-,i"!')
+ call stop1()
+ end if
+ if (durq .ne. 'i') then
+c
+c Normal key change and/or transposition)
+c
+c iccount = iccount+1
+ num1 = 44-ichar(durq)
+c
+c num1= +1 or -1
+c
+ ztrans = num1.eq.-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st +/- must be followed by a number!')
+ call stop1()
+ end if
+c iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ num1 = nint(fnum)*num1
+ ztrans = ztrans .and. num1.eq.0
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st number after "K" must be followed by "+,-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ num2 = 44-ichar(durq)
+ call readnum(lineq,iccount,durq,fnum)
+ num2 = num2*int(fnum+.1)
+ if (num1.eq.0 .and. .not.ztrans) then
+c
+c Key change, only one per block allowed
+c
+ if (iskchb) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one key change allowed per input block!')
+ call stop1()
+ end if
+ iskchb = .true.
+ nkeys = nkeys+1
+ kchmid(nkeys) = mod(itsofar(ivx),lenbar).ne.0
+c
+c Make ibrkch = barnum-1 if at start of bar, so fsyst advances ok at linebreak.
+c
+ ibrkch(nkeys) = ibarcnt+nbars
+ if (kchmid(nkeys)) ibrkch(nkeys) = ibrkch(nkeys)+1
+ newkey(nkeys) = num2+idsig
+ else
+c
+c Transposition
+c
+ fulltrans = .true.
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Transposition must be at top of first input block!')
+ call stop1()
+ end if
+ isig1 = num2
+ idsig = isig1-newkey(1)
+c
+c idsig is the difference between sig after transposition, and sig in setup.
+c It may alter # of accid's in key changes if there is transposition.
+c
+ end if
+ else ! durq='i'
+c
+c 110522/110529
+c Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey]
+c and repeat i[...] for multiple instruments. Store info here if ibarcnt=0
+c so can pass to topfile (via comInstTrans), which is called before getnote.
+c Otherwise, will store info from getnote. Initialize EarlyTransOn and
+c LaterInstTrans to .false. in blockdata. Set EarlyTransOn from here;
+c LaterInstTrans from g1etnote. Zero both out after use. nInstTrans really
+c only needed for instrument-signatures, not transpositions. iTransAmt is
+c ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for
+c each staff.
+c
+c if (fulltrans) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Cannot yet combine full and instrument transposition!')
+c call stop1()
+c end if
+ call GetiTransInfo(.true.,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+ end if
+ else if (charq .eq. '|') then
+c
+c Optional bar symbol
+c
+ if (mod(itsofar(ivx),lenbar).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar line marker out of place!')
+ call stop1()
+ else if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ end if
+ else if (charq .eq. '/') then
+ if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'WARNING: Block ended with repeated ornament still on!')
+ ornrpt = .false.
+ end if
+ if (stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'WARNING: Block ended with sticky stemshrink still on!')
+ stickyS = .false.
+ end if
+ if (fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block ended with forced beam open!')
+ call stop1()
+ else if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ else if (gotclef) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not enter clef at end of input block!')
+ call stop1()
+ end if
+ barend = .false.
+c
+c Perform time checks
+c
+ if (mod(itsofar(ivx),lenbar).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block duration not divisible by lenbar!')
+ print*,'lenbar is ',lenbar
+ call stop1()
+ else if (ivx.gt.1 .and. itsofar(ivx).ne.itsofar(1)) then
+ print*
+ print*,'# of bars in voice 1, current voice:',
+ * itsofar(1)/lenbar,itsofar(ivx)/lenbar
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block duration not equal to voice 1!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ' ' .and. iv.eq.nv) then
+c
+c End of input block
+c
+ loop = .false.
+ else
+c
+c Start a new voice
+c
+ if (lenbr0.ne.0 .and. firstline) lenbar = lenbr0
+ nbars = 0
+ if (durq .eq. ' ') then
+c
+c New voice is on next staff
+c
+ iv = iv+1
+ ivx = iv
+ else
+c
+c New voice is on same staff. Set up for it
+c
+ ivx = nv+1
+ do 23 iiv = 1 , nv
+ if (nvmx(iiv) .eq. 2) ivx = ivx+1
+23 continue
+ if (ivx .gt. nm) then
+ write(*,'(1x,a21,i3,a23)')'Cannot have more than',nm,
+ * ' lines of music at once'
+ call stop1()
+ end if
+ nvmx(iv) = 2
+ ivmx(iv,2) = ivx
+ itsofar(ivx) = 0
+ nnl(ivx) = 0
+ do 24 j = 1 , 200
+ rest(ivx,j) = .false.
+ nacc(ivx,j) = 0
+24 continue
+c
+c For midi stuff, record that there is a 2nd line of music in this voice
+c
+ if (ismidi) twoline(iv) = .true.
+ end if
+ end if
+ iccount = 128
+ else if (charq .eq. 'S') then
+c
+c New nsyst: for use with partmaker scor2prt, for parts w/ diff # of systs.
+c
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"S" can only be in first input block!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit must follow "S"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ nsyst = nint(fnsyst)
+14 continue
+ if (durq .eq. 'P') then
+c
+c New npages for parts.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ npages = nint(fnsyst)
+ go to 14
+ else if (durq .eq. 'm') then
+c
+c Reset musize (musicsize).
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ musize = nint(fnsyst)
+ wheadpt = whead20*musize
+ go to 14
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in "S" symbol!')
+ call stop1()
+ end if
+ else if (charq .eq. 'L') then
+ nflb = nflb+1
+ ibarflb(nflb) = ibarcnt+nbars+1
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Need integer to define forced line break!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,sysflb)
+ isysflb(nflb) = nint(sysflb)
+ if (nflb .gt. 1) then
+c
+c Check if new number is > prior one
+c
+ if (isysflb(nflb) .le. isysflb(nflb-1)) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'You already forced a line break at a later line!')
+ call stop1()
+ end if
+ end if
+ if (npages .eq. 0) then
+ print*
+ print*,'WARNING! You forced a line break at line ',
+ * isysflb(nflb),' but npage = 0. Continue?'
+ read(*,'(a)') charq
+ if (index('yY',charq) .eq. 0) call stop1()
+ else if (isysflb(nflb) .gt. nsyst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced line break at line num > nsyst!')
+ call stop1()
+ else if (index(' PM',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have " ", "P", or "M" here!')
+ call stop1()
+ end if
+ if (durq .eq. 'P') then
+c
+c Forced page break here, get page number.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Need integer to define forced page break!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ nfpb = nfpb+1
+ ipagfpb(nfpb) = nint(fnum)
+ isysfpb(nfpb) = isysflb(nflb)
+ if (ipagfpb(nfpb) .gt. npages) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Forced page break at page num > npages!')
+ call stop1()
+ else if (nfpb .gt. 1) then
+ if (ipagfpb(nfpb) .le. (ipagfpb(nfpb-1))) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Forced page break numbers must increase!')
+ call stop1()
+ end if
+ end if
+ end if
+ if (index(' M',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in linebreak symbol!')
+ call stop1()
+ else if (durq .eq. 'M') then
+ nmovbrk = nmovbrk+1
+ isysmb(nmovbrk) = isysflb(nflb)
+ call g1etchar(lineq,iccount,durq)
+31 if (durq .eq. '+') then
+c
+c Vertical spacing, read past number.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer required here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ go to 31
+ else if (durq .eq. 'i') then
+c
+c Change indentation,
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('.123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Decimal number required here!')
+ call stop1()
+ end if
+c
+c fracsys was initialized in block data to all 0.'s
+c
+ call readnum(lineq,iccount,durq,fracsys(nmovbrk))
+ go to 31
+ else if (durq .eq. 'c') then
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'r') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "+" or "-" after "r" as movement break option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'n') then
+c
+c Change # of voices. Input ninow, iorig(1...ninow). Will use names,
+c staves per inst. and clefs corr. to iorig in original list of instruments.
+c
+ nv = 0
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c Signals a 2-digit number, get next two characters
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,dumq)
+ if (index('12',durq).eq.0
+ * .or.index('0123456789',dumq).eq.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal new number of instruments '//durq//dumq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ read(lineq(iccount-1:iccount),'(i2)')ninow
+ else
+c
+c durq is a single digit number for noinow
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal new number of instruments '//durq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ ninow = ichar(durq)-48
+ end if
+ if (ninow.gt.noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'New number of instruments must be <= original!')
+ call stop1()
+ end if
+ do 63 iinow = 1 , ninow
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c Signals a 2-digit number
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,dumq)
+ if (index('12',durq).eq.0
+ * .or.index('0123456789',dumq).eq.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal 2-digit instrument number '//durq//dumq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ read(lineq(iccount-1:iccount),'(i2)')iorig
+ else
+c
+c durq is a single digit number for iorig
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal instrument number '//durq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ iorig = ichar(durq)-48
+ end if
+ if (iorig .gt. noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'New instrument number must be <= original noinst!')
+ call stop1()
+ end if
+ nv = nv+nsperi(iorig)
+63 continue
+ do 61 iiv = 1 , nv
+c
+c Get clef names
+c
+ call g1etchar(lineq,iccount,durq)
+ if (.not.(index('tsmanrbf',durq).gt.0 .or.
+ * (ichar(durq).ge.48 .and. ichar(durq).le.55))) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have t,s,m,a,n,r,b,f or 1-7 as clef symbol here!')
+ call stop1()
+ end if
+c
+c Initialize new voices
+c
+ nvmx(iiv) = 1
+ ivmx(iiv,1) = iiv
+ itsofar(iiv) = 0
+ nnl(iiv) = 0
+ do 62 j = 1 , 200
+ rest(iiv,j) = .false.
+62 continue
+61 continue
+c
+c Loop back up, this might not be last option in M
+c
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after Movement break symbol!')
+ call stop1()
+ end if
+ if (fracsys(nmovbrk) .lt. 0.001) then
+c
+c Since fracsys was not explicitly set, set it to prior value.
+c
+ if (nmovbrk .eq. 1) then
+ fracsys(nmovbrk) = fracindent
+ else
+ fracsys(nmovbrk) = fracsys(nmovbrk-1)
+ end if
+ end if
+ end if
+c
+c Just before exiting if-block for forced line breaks, set counter to use when
+c dealing with vertical space calcs
+c
+ nistaff(nflb) = nv-1
+ else if (charq .eq. 'F') then
+ usefig = .false.
+ else if (charq .eq. 'X') then
+ call g1etx(lineq,iccount,.true.,shifton,ibarcnt-ibaroff+nbars+1,
+ * udsp(ibarcnt+nbars+1),wheadpt)
+ else if (charq .eq. 'I') then
+c
+c MIDI settings.
+c
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'MIDI stuff only allowed at start of block!')
+ call stop1()
+ end if
+ if (nv .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry but MIDI does not work with more than 15 voices!')
+ call stop1()
+ end if
+ ismidi = .true.
+ call getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,.true.)
+ else if (charq .eq. 'M') then
+ call setmac(lineq,iccount,ibarcnt,ibaroff,nbars,charq,durq,ivx,
+ * nline)
+ else if (index(',.',charq) .gt. 0) then
+c
+c Continued rhythmic shortcut
+c
+ idotform = index('. ,',charq)
+ if (idotform .eq. 1) then
+c
+c Change duration of prior note
+c
+ itsofar(ivx) = itsofar(ivx)-nodur(ivx,nnl(ivx))
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*3/2
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ end if
+ idotform = idotform+1
+ numnum = 1
+ cdot = .true.
+ go to 1
+ else
+ print*,'ASCII code:',ichar(charq)
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character is not allowed here!')
+ print*,'ASCII code:',ichar(charq)
+ call stop1()
+ end if
+ return
+ end
+ subroutine g1etset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,newkey,npages,nsyst,musize,bottreb)
+ parameter(nm=24,maxblks=4000)
+ character*65536 bufq
+ character*1 chax
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*128 lineq
+ logical lastchar,issegno,isheadr,isvolt,fbon,bottreb,
+ * newway
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+c
+c Get the first line
+c
+ iccount = 0
+ nline = 1
+9 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') then
+ nline = nline+1
+ go to 9
+ end if
+ if (lineq(1:3) .eq. '---') then
+c
+c Have TeX input until next line that starts with '---'
+c
+3 nline = nline+1
+ call getbuf(lineq)
+ if (ilbuf .gt. nlbuf) go to 1
+ go to 2
+1 print*,'You did not terminate type 0 TeX input with "---"'
+ call stop1()
+2 continue
+ if (lineq(1:3) .ne. '---') go to 3
+c
+c Force a new line read on first call to readin
+c
+ iccount = 128
+ end if
+c
+c Here, lineq and nline are first non-TeX lines.
+c
+ nv = nint(readin(lineq,iccount,nline))
+ if (nv .gt. nm) then
+ write(*,'(1x,a46,i3)')
+ * 'In setup data, number of voices cannot exceed',nm
+ call stop1()
+ end if
+ noinst = nint(readin(lineq,iccount,nline))
+ if (noinst .gt. nv) then
+ write(*,'(a)')
+ * 'In setup data, cannot have more instruments than staves'
+ call stop1()
+ end if
+ newway = noinst.le.0
+ if (newway) noinst = -noinst
+ do 10 iinst = 1 , noinst
+c
+c Seve # of staves per inst in case later drop some inst's.
+c
+ if (newway) then
+ nsperi(iinst) = nint(readin(lineq,iccount,nline))
+ else if (iinst .gt. 1 ) then
+ nsperi(iinst) = 1
+ else
+ nsperi(iinst) = nv-noinst+1
+ end if
+10 continue
+ mtrnuml = nint(readin(lineq,iccount,nline))
+ mtrdenl = nint(readin(lineq,iccount,nline))
+cc
+cc Kluge!!!
+cc
+c if (mtrdenl .eq. 1) then
+c mtrdenl = 2
+c mtrnuml = mtrnuml*2
+c end if
+ mtrnmp = nint(readin(lineq,iccount,nline))
+ mtrdnp = nint(readin(lineq,iccount,nline))
+ if (mtrnmp.eq.0 .and. mtrdnp .ge. 8) then
+ write(*,'(a)')'In setup data, with mtrnmp=0, mtrdnp must be <8'
+ call stop1()
+ end if
+ xmtrnum0 = readin(lineq,iccount,nline)
+ newkey = nint(readin(lineq,iccount,nline))
+ npages = nint(readin(lineq,iccount,nline))
+ nsyst = nint(readin(lineq,iccount,nline))
+ musize = nint(readin(lineq,iccount,nline))
+ fracindent = readin(lineq,iccount,nline)
+ if (fracindent .ge. 1.) then
+ write(*,'(a)')'In setup data, fracindent must be <1'
+ call stop1()
+ end if
+ if (npages .gt. nsyst) then
+ print*,'Error in input file: npages > nsyst'
+ call stop1()
+ else if((musize-16)*(musize-20)*(musize-24)*(musize-29).ne.0) then
+ call printl('Musicsize must be 16, 20, 24, or 29')
+ call stop1()
+ end if
+c
+c Next noinst non-comment lines are names of instruments.
+c
+ do 4 i = 1 , abs(noinst)
+5 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 5
+4 continue
+c
+c Mext non-comment line has nv clef names
+c
+6 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 6
+ do 7 iv = 1 , nv
+c if (index('brnamstf0123456',lineq(iv:iv)) .eq. 0) then
+ if (index('brnamstf01234567',lineq(iv:iv)) .eq. 0) then
+ call errmsg(lineq,iv,0,
+ * 'There should be a clef symbol here!')
+ call stop1()
+ end if
+7 continue
+ if (lineq(nv+1:nv+1) .ne. ' ') then
+ call errmsg(lineq,nv+1,0,
+ * 'There should be a blank here!')
+ call stop1()
+ end if
+c
+c Set flag if voice 1 is treble, since it affects vertical spacing
+c
+ bottreb = lineq(1:1).eq.'t'
+c
+c Mext non-comment line has path name
+c
+8 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 8
+ lpath = index(lineq,' ')-1
+ if (index('/:'//chax(92),lineq(lpath:lpath)) .eq. 0) then
+ call errmsg(lineq,lpath,0,
+ * 'Last character of pathname is not "/",":", or "'
+ * //chax(92)//'"!')
+ call stop1()
+ end if
+ return
+ end
+ subroutine g1etx(lineq,iccount,notxtup,shifton,ibar,udsp,wheadpt)
+c
+c Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol.
+c In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols.
+c
+ logical notxtup,shifton,number,btest
+ character*128 lineq
+ character*1 charq,dumq
+ number = .false.
+ nPBSc = 0
+1 call g1etchar(lineq,iccount,charq)
+ if (index('PBS:',charq) .gt. 0) then
+c
+c Continue checking here even if "P".
+c
+ ipbsc = index('PBS:',charq)
+ if (btest(nPBSc,ipbsc)) then
+ call errmsg(lineq,iccount,ibar,'Only one allowed per symbol!')
+ call stop1()
+c else if (.not.notxtup .and. ipbsc.gt.2) then
+c call errmsg(lineq,iccount,ibar,'Not allowed in xtuplet!')
+c call stop1()
+ end if
+ nPBSc = ibset(nPBSc,ipbsc)
+ go to 1
+ else if (index('+-.0123456789',charq) .gt. 0) then
+ number = .true.
+ if (index('+-',charq) .gt. 0) then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('.0123456789',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,'Expected a number here!')
+ call stop1()
+ end if
+ end if
+ call readnum(lineq,iccount,dumq,fnum)
+ if (charq.eq.'-') fnum = -fnum
+ if (dumq .ne. 'p') then
+ iccount = iccount-1
+ fnum = fnum*wheadpt
+ end if
+ go to 1
+ else if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibar,'Not allowed in "X" symbol!')
+ call stop1()
+ end if
+c
+c Done with parsing. Other checks
+c
+ if (iand(6,nPBSc).eq.6 .or. iand(24,nPBSc).eq.24) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Cannot have both "P" and "B" or "S" and ":"!')
+ call stop1()
+ end if
+ if (btest(nPBSc,4)) then
+ if (number) then
+ if (shifton) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Started a group shift without stopping prior one!')
+ call stop1()
+ else
+ shifton = .true.
+ end if
+ else
+ if (.not. shifton) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Ended a group shift without starting one!')
+ call stop1()
+ else
+ shifton = .false.
+ end if
+ end if
+ end if
+c
+c P off, S off, c off => normal user-defined space. Add to udsp (later fsyst)
+c
+ if (iand(nPBSc,26).eq.0) udsp = udsp+fnum
+ if (.not.number .and. .not.btest(nPBSc,4)) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Must have either a number or a colon in "X" symbol!')
+ call stop1()
+ end if
+ return
+ end
+c integer*4 function mytime()
+c CHARACTER(10) tq
+c CALL DATE_AND_TIME(TIME=tq)
+c read(tq,'(2i2,f6.3)')ih,im,ts
+c mytime = 1000*(ts+60*(im+60*ih))
+c return
+c end
+ subroutine getbuf(lineq)
+ parameter (maxblks=4000)
+ character*(*) lineq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ lineq = bufq(ipbuf+1:ipbuf+lbuf(ilbuf))
+ ipbuf = ipbuf+lbuf(ilbuf)
+ ilbuf = ilbuf+1
+ return
+ end
+ subroutine getchar(lineq,iccount,charq)
+ parameter (nm=24)
+c
+c Gets the next character out of lineq*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount. Ends program if no more input.
+c
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ logical lastchar,rptnd1,sluron,fbon,rptprev,ornrpt
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac,equalize,stickyS
+ character*1 charq,rptfq1,rptfq2
+ character*128 lineq,lnholdq
+ if (iccount .eq. 128) then
+ call read10(lineq,lastchar)
+ if (lastchar) return
+ if (.not. endmac) then
+ iccount = 0
+ else
+ endmac = .false.
+ iccount = icchold
+ lineq = lnholdq
+ end if
+ if (mrecord) then
+ call mrec1(lineq,iccount,ndxm)
+ end if
+ end if
+ iccount = iccount+1
+ charq = lineq(iccount:iccount)
+ return
+999 continue
+ lastchar = .true.
+ return
+ end
+ subroutine getdyn(ivx,ip,irest,iornq,lineq,iccount)
+ parameter (nm=24)
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical fontslur,upslur,WrotePsslurDefaults
+ character*1 durq,chax
+ character*4 dynsymq
+ character*128 lineq
+c
+c Get info for dynamic mark. Enter after getting "D", iccount sits on "D"
+c Bits in idyndat are as follows
+c 00-03 ivx
+c 04-11 ip
+c 12-15 code for type of mark
+c 0 => arbitrary text
+c 1-12 => pppp,ppp,pp,p,mp,mf,f,fp,sfz,ff,fff,ffff
+c If (.not. fontslur)
+c 13 => hairpin start, 14,15 => <,> (ending)
+c else
+c 13 < start, 14 > start, 15 ending
+c end if
+c 16 flag for vertical offset
+c 17-23 vertical offset + 64 , \internote
+c 31 Hairpin start (0), stop (1)
+c
+c idynda2
+c
+c 00 flag for horizontal offset
+c 01-09 (horizontal offset)/10 + 25.6 notehead widths
+c 10 5th bit for ivx (5/15/10)
+c
+ irest = ibset(irest,26)
+ ndyn = ndyn+1
+ idyn = ivx
+ idynda2(ndyn) = 0
+ if (ivx .ge. 16) call setbits(idynda2(ndyn),1,10,1)
+ call setbits(idyn,8,4,ip)
+ if (lineq(iccount+1:iccount+1) .eq. '"') then
+c
+c text-dynamic
+c
+ ntxtdyn = ntxtdyn+1
+ iend = iccount+index(lineq(iccount+2:128),'"')+2
+ txtdynq(ntxtdyn) = lineq(iccount+2:iend-2)
+c
+cc Store ivx, ip in bits 0-11
+c Store ivx, ip in bits 0-12
+c
+c ivxiptxt(ntxtdyn) = idyn
+ ivxiptxt(ntxtdyn) = ivx+32*ip
+ ipm = index('- +',lineq(iend:iend))
+ idno = 0
+ else
+c
+c Word-group or hairpin
+c
+ do 1 iend = iccount+2 , 128
+ ipm = index('- +',lineq(iend:iend))
+c
+c Exit the loop at first blank, "+", or "-"
+c
+ if (ipm .gt. 0) go to 2
+1 continue
+2 continue
+ read(lineq(iccount+1:iend-1),'(a'//chax(47+iend-iccount)//')')
+ * dynsymq
+ idno = (index(
+ * 'ppppppp pp p mp mf f fp sfz ff fff ffff < > ',
+ * dynsymq)+3)/4
+c
+c Save for later down
+c
+ idno1 = idno
+ end if
+c
+c Set flag to check level later if in beam
+c
+ iornq = ibset(iornq,23)
+ if (idno.ge.14) then
+c
+c Hairpin here. Check if opposite type from one that's already on
+c
+ if (idno.eq.14.and.btest(listdecresc,ivx) .or.
+ * idno.eq.15.and.btest(listcresc,ivx)) then
+ call printl(' ')
+ call printl('Started one kind of hairpin while other is on')
+ call stop1()
+ end if
+c
+c Start or stop?
+c
+ if (btest(listcresc,ivx) .or. btest(listdecresc,ivx)) then
+c
+c Cresc/decresc is on, this is an ending. If fontslur, leave idno as is.
+c
+ if (.not.fontslur) idno = 15
+ else if (fontslur) then
+c
+c Start of font slur
+c
+ idno = 13
+ else
+c
+c Start of postscript slur
+c
+ idno = idno-1
+ end if
+ end if
+c
+c Now that we used list[de]cresc, update
+c
+ if (idno .ge.13) then
+ if (idno.eq.15 .or. (fontslur.and.idno.eq.14)) then
+c
+c Something's ending
+c
+ if (btest(listcresc,ivx)) then
+c
+c It's a cresc!
+c
+ listcresc = ibclr(listcresc,ivx)
+ else
+ listdecresc = ibclr(listdecresc,ivx)
+ end if
+ else
+c
+c Something's starting
+c
+ if (idno1 .eq. 14) then
+c
+c It's a cresc!
+c
+ listcresc = ibset(listcresc,ivx)
+ else
+ listdecresc = ibset(listdecresc,ivx)
+ end if
+ end if
+ end if
+ call setbits(idyn,4,12,idno)
+ iccount = iend
+ if (ipm .ne. 2) then
+c
+c There is a vertical shift
+c
+ idyn = ibset(idyn,16)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(fnum)
+ call setbits(idyn,7,17,(ipm-2)*idno+64)
+ ipm = index('- +',durq)
+ if (ipm .ne. 2) then
+c
+c There is a horizontal shift
+c
+c idynda2(ndyn) = ibset(idyn,23)
+ idynda2(ndyn) = ibset(idynda2(ndyn),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(10*fnum)
+ call setbits(idynda2(ndyn),9,1,(ipm-2)*idno+256)
+ end if
+c
+c iccount should be on the blank at the end of the entire symbol
+c
+ end if
+ idyndat(ndyn) = idyn
+ return
+ end
+ subroutine getfig(itoff,charq,lineq,iccount,isfig,itfig,
+ * itsofar,nodur,figq,ivupfig,nfigs)
+ logical isfig
+ character*1 charq
+ character*10 figq
+ character*128 lineq
+c
+c As of 11/26/08, trapped extra figures in getnote, so no need here.
+c
+c if (ivx .gt. 2) then
+cc
+cc Read past the figure
+cc
+c6 call getchar(lineq,iccount,charq)
+c if (charq .ne. ' ') go to 6
+c return
+c end if
+ nfigs = nfigs+1
+ ivupfig = 0
+ itoff = 0
+ if (charq .eq. 'x') then
+c
+c Floating figure.
+c
+ call getchar(lineq,iccount,charq)
+ read(charq,'(i1)')noff
+ call getchar(lineq,iccount,charq)
+ read(charq,'(i1)')loff
+ itoff = noff*ifnodur(loff,'x')
+ call getchar(lineq,iccount,charq)
+ else
+c
+c Figure on a note
+c
+ isfig = .true.
+ end if
+ itfig = itsofar+itoff-nodur
+ lfig = 1
+ figq = charq
+5 call getchar(lineq,iccount,charq)
+c if (charq .ne. ' ') then
+ if (index(' +',charq) .eq. 0) then
+ figq = figq(1:lfig)//charq
+ lfig = lfig+1
+ go to 5
+ else if (charq .eq. '+') then
+c
+c Get vertical offset for figure. Next character after number has to be blank.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ ivupfig = nint(fnum)
+ end if
+ return
+ end
+ subroutine getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ parameter (nm=24)
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg
+ character*1 charq,durq
+ character*20 voltxtq
+ character*128 lineq,litq
+ integer*4 islur(nm,200),iornq(nm,0:200),ipl(nm,200),nnl(nm),
+ * ndlev(nm,2)
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c Grace, comes *before* main note:
+c UNLESS there's an 'A' or 'W' after the 'G'
+c ngrace = # of grace note groups so far in block
+c ivg(ngrace), ipg(ngrace)
+c nng(ngrace) = # of notes in this group: default = 1
+c ngstrt(ngrace) = starting position in nolevg of levels for this grace
+c multg(ngrace) = multiplicity: default = 1; input as 'm(digit)'
+c upg(ngrace) = logical for beam or stem dirn: default T, input'u,l'
+c slurg(ngrace) = logical for slur; default F, input 's'
+c slashg(ngrace) = T if slash; default is F, input 'x'
+c These data MUST precede note name of first note
+c nolevg, naccg: lists of levels and accid's, indexed as described above.
+c
+ ngrace = ngrace+1
+ ivg(ngrace) = ivx
+ ipg(ngrace) = nnl(ivx)+1
+ if (ngrace .eq. 1) then
+ ngstrt(ngrace) = 1
+ else
+ ngstrt(ngrace) = ngstrt(ngrace-1)+nng(ngrace-1)
+ end if
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),4)
+ nng(ngrace) = 1
+ multg(ngrace) = 1
+ upg(ngrace) = .true.
+ slurg(ngrace) = .false.
+ slashg(ngrace) = .false.
+18 call getchar(lineq,iccount,charq)
+ if (index('WA',charq) .gt. 0) then
+c
+c Grace is on note that was already done, so shift flags forward one note.
+c This puts flag on actual note with grace; later for W will go ahead one more.
+c
+ ipg(ngrace) = nnl(ivx)
+ islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),4)
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),4)
+ if (slurg(ngrace))
+ * iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),24)
+ if (charq .eq. 'A') then
+c
+c close After, clear way-after bit, to ensure priority of most recent A/W
+c
+ ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),31),29)
+ else
+c
+c Way after; later assign to following note, and position like normal grace.
+c
+ ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),29),31)
+ end if
+ else if (charq .eq. 'm') then
+ call getchar(lineq,iccount,charq)
+ multg(ngrace) = ichar(charq)-48
+ else if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ nng(ngrace) = nint(fnum)
+ else if (charq .eq. 'l') then
+ upg(ngrace) = .false.
+ else if (charq .eq. 's') then
+ slurg(ngrace) = .true.
+ if (nnl(ivx) .gt. 0) then
+c
+c If A- or W-grace, set signal to start slur on main note.
+c
+ if(btest(ipl(ivx,nnl(ivx)),31) .or.
+ * btest(ipl(ivx,nnl(ivx)),29))
+ * iornq(ivx,nnl(ivx))=ibset(iornq(ivx,nnl(ivx)),24)
+ end if
+ else if (charq .eq. 'x') then
+ slashg(ngrace) = .true.
+ else if (charq .eq. 'u') then
+ else if (charq .eq. 'X') then
+c
+c Space before main note of grace. Number will come next.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,graspace(ngrace))
+ iccount = iccount-1
+ end if
+ if (index('abcdefg',charq) .eq. 0) go to 18
+c
+c At this point, charq is first note name in grace
+c
+ do 19 ing = ngstrt(ngrace), ngstrt(ngrace)+nng(ngrace)-1
+ naccg(ing) = 0
+ ioct = 0
+ if (ing .gt. ngstrt(ngrace)) then
+55 call getchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 55
+ endif
+ iclastlev = 0
+9 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+ if (durq.eq.'+') then
+ lastlev = lastlev+7
+ iclastlev = iclastlev+7
+ else if (durq.eq.'-') then
+ lastlev = lastlev-7
+ iclastlev = iclastlev-7
+ else if (index('fsn',durq) .gt. 0) then
+ if (naccg(ing) .eq. 0) then
+ naccg(ing) = index('fsn',durq)
+ else
+c
+c Double accidental
+c
+ naccg(ing) = ibset(naccg(ing),2)
+ end if
+ else
+ ioct = ichar(durq)-48
+ end if
+ go to 9
+ end if
+ if (ioct .gt. 0) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ if (nnl(ivx).eq.0 .and. ing.eq.ngstrt(ngrace)) then
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ lastlev = ndlev(iv,kv)+iclastlev
+ end if
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ nolevg(ing) = lastlev
+19 continue
+c
+c Grace could come before first note of block, so reset end level.
+c
+ if (nnl(ivx).eq.0) then
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ ndlev(iv,kv) = lastlev
+ end if
+ return
+ end
+ subroutine GetiTransInfo(From1,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+cccccccccccccccccccccccc
+cc
+cc GetiTransInfo.for
+cc
+cccccccccccccccccccccccc
+c
+c Called from both g1etnote and getnote, after first 'i' in Ki[...]
+c On entry, iccount points to last char retrieved, which is 'i'
+c
+c From1: locgical, true if called from g1etnote
+c ibarcnt: tells whether to set EarlyTransOn to true.
+c EarlyTransOn set false in blkdata, true here, back to false in topfile.
+c
+c 110522/110529
+c Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey]
+c and repeat i[...] for multiple instruments. Store info in g1etnot if ibarcnt=0
+c so can pass to topfile (via comInstTrans), which is called before getnote.
+c Otherwise, will store info from getnote. Initialize EarlyTransOn and
+c LaterInstTrans to .false. in blockdata. Set EarlyTransOn from g1etnote;
+c LaterInstTrans from getnote. Zero both out after use. nInstTrans really
+c only needed for instrument-signatures, not transpositions. iTransAmt is
+c ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for
+c each staff.
+c
+c iTransAmt stored as fn of instrument #, not like iTransKey which is
+c fn. of nm, just a counter, where corr. inst num is iInstTrans(nm). This
+c simplifies use of iTransAmt for all calls to ifnolev.
+c
+ parameter (nm=24)
+ logical From1
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans,store
+ character*128 lineq
+ character*1 durq
+ durq = 'x' ! Can't initialize in declaration stmt, only works once.
+ if(.not.EarlyTransOn) EarlyTransOn = From1 .and. ibarcnt.eq.0
+ store = (EarlyTransOn.and.ibarcnt.eq.0) .or.
+ * (ibarcnt.gt.0.and..not.From1)
+ LaterInstTrans = .not.From1 .and. ibarcnt.gt.0
+ if (store) nInstTrans = 0
+1 continue
+ if (durq .eq. ' ') return
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be an instrument number here!')
+ call stop1()
+ end if
+ if (store) nInstTrans = nInstTrans+1
+ call readnum(lineq,iccount,durq,fnum)
+ instn = nint(fnum)
+ if (instn.gt.noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Instrument number out of range!')
+ call stop1()
+ end if
+ if (store) iInstTrans(nInstTrans) = instn
+c
+c durq is +/- following inst # (for iTransAmt), iccount is on it.
+c
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st character after instrument number must be "+,-"!')
+ call stop1()
+ end if
+ itramt = 44-ichar(durq) ! +1/-1 for itramt
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a transposition amount here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (store) iTransAmt(instn) = nint(fnum)*itramt
+c
+c durq is +/- following iTransAmt (for iTransKey), iccount is on it.
+c
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st character after transposition amount must be "+,-"!')
+ call stop1()
+ end if
+ ikey = 44-ichar(durq) ! +1/-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a key indicator here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (store) iTransKey(nInstTrans) = nint(fnum)*ikey
+c
+c durq is now 1st character after iTransKey, should be either 'i' or ' '
+c
+ if (durq.ne.'i'.and.durq.ne.' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be blank or "i" here!')
+ call stop1()
+ end if
+ go to 1
+ end
+ subroutine getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,first)
+c
+c Use this from both pmxa and pmxb to input and check midi data. "first" tells
+c whether pmxa or pmxb. If .not.first, then tempo and pause commands cause
+c things to be written immediately into the midi storage buffers.
+c
+ parameter (nm=24,mv=24576)
+ common /comevent/ miditime,lasttime
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+c
+c immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing
+c nmidsec section starts and stops based on PLAYING macros (not recording).
+c
+ integer*2 mmidi,midinum(26)
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ character*1 durq
+ character*2 instq
+ character*128 lineq
+ logical first
+ common /comdiag/ n69(0:nm),n34(0:nm)
+c
+c Instrument codes
+c
+ data midinum
+ * / 1, 5, 7, 13,20,25,33,41,42,43,44,57,58,59,61,65,66,67,
+c XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbXtuXfrXsoXalXteX
+c
+ * 68,69,71,72,74,75, 8,55 /
+c bsXobXbaXclXflXreXctXvo
+c
+1 call getchar(lineq,iccount,durq)
+ if (durq .eq. 't') then
+c
+c Tempo in beats ber minute
+c
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer here for the pause!')
+ call stop1()
+c else if (mmacrec) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Cannot change MIDI tempo while recording a MidiMacro!')
+c call stop1()
+ end if
+ call readnum(lineq,iccount,durq,qpm)
+ iccount = iccount-1
+ if (.not.first) then
+ call midievent('t',nint(qpm),0)
+ gottempo = .true.
+ end if
+ go to 1
+ else if (durq .eq. 'p') then
+c
+c Insert a pause. pausemid = pause in 1/4's
+c
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here for the pause!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,pausemid)
+ iccount = iccount-1
+ if (.not.first) then
+c
+c Compute a meter for the pause. This is only to keep MidiNotate on track.
+c Round pause to nearest 16th. Let denominator always be 16.
+c
+ numb16 = nint(pausemid*4)
+ call midievent('m',numb16,16)
+c
+c Put in pausemid beats of rest
+c
+ do 3 icm = 0 , numchan-1
+ call addmidi(icm,0,0,0,4.*numb16,.true.,.false.)
+3 continue
+ miditime = miditime+nint(240*pausemid)
+c
+c Restore meter
+c
+ call midievent('m',mtrdenl*lenbar/64,mtrdenl)
+ end if
+ go to 1
+ else if (durq .eq. 'i') then
+c
+c Instrument numbers or letters. Expect nv of them.
+c
+ do 2 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (ichar(durq) .gt. 96) then
+c
+c It's a lowercase letter. Get another, find corr. instrument #.
+c
+ instq(1:1) = durq
+ call getchar(lineq,iccount,durq)
+ instq = instq(1:1)//durq
+ iname = index('XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbX'//
+ * 'tuXfrXsoXalXteXbsXobXbaXclXflXreXctXvo',instq)/3
+ if (iname .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Unrecognized 2-letter midi instrument name!')
+ call stop1()
+ end if
+ midinst(ivx) = midinum(iname)-1
+ else
+c
+c Expect a number, followed by ":" if that is followed by another number.
+c I.e., if after call to readnum, durq is not ":", it must be either blank
+c or next instrument letter.
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a midi instrument number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midinst(ivx) = nint(fnum)-1
+ if (midinst(ivx).lt.0 .or. midinst(ivx).gt.255) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi instrument number must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+ end if
+2 continue
+ go to 1
+ else if (durq .eq. 'v') then
+c
+c Get volumes for each instrument. Expect nv of them.
+c Follow same pattern as for insttrument numbers above.
+c
+ do 7 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a midi velocity number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midivel(ivx) = nint(fnum)-1
+ if (midivel(ivx).lt.0 .or. midivel(ivx).gt.127) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi velocity must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+7 continue
+ go to 1
+ else if (durq .eq. 'b') then
+c
+c Get balance for each instrument. Expect nv of them.
+c Follow same pattern as for instrument numbers above.
+c
+ do 8 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a balance number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midibal(ivx) = nint(fnum)-1
+ if (midibal(ivx).lt.0 .or. midibal(ivx).gt.127) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi balance must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+8 continue
+ go to 1
+ else if (durq .eq. 'T') then
+c
+c Get transposition for each instrument. Expect nv of them.
+c Follow similar pattern as above, but separator is +|-.
+c
+ do 9 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ ipm = index('-+',durq)
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" for midi transposition here!')
+ call stop1()
+ end if
+ ipm = 2*ipm-3
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ miditran(ivx) = ipm*nint(fnum)
+c if (mod(miditran(ivx),12).ne. 0) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Midi transposition limited to multiples of 12!')
+c call stop1()
+c end if
+ iccount = iccount-1
+9 continue
+ go to 1
+ else if (durq .eq. 'g') then
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer here for the midi gap!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ mgap = nint(fnum)
+ iccount = iccount-1
+ go to 1
+ else if (durq .eq. 'M') then
+c
+c MidiMacros
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'R') then
+c
+c Start recording
+c
+ if (mmacrec) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to record a MidiMacro while already recording!')
+ call stop1()
+ end if
+ mmacrec = .true.
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected MidiMacro ID number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ if (.not.first) then
+ immac = nint(fnum)
+ if (immac .gt. 20) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'MidiMacro ID cannot exceed 20!')
+ call stop1()
+ end if
+c
+c Save the start time
+c
+ mmactime(immac) = miditime
+ do 4 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+c
+c Adjust if there's a rest at end of prior section. Insert dummy turnoff.
+c (This causes two turn-offs in a row, which testmidi sees as an error).
+c
+c Before: section1 ------rest------- section2(to be recorded)
+c After: section1 rest1 now rest2 section2(recorded)
+c
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ lasttime = miditime
+ end if
+ end if
+ mmacstrt(icm,immac) = imidi(icm)+1
+4 continue
+ end if
+ go to 1
+ else if (index('123456789P',durq) .eq. 0) then
+c
+c End recording; close the open macro. Get immac from common.
+c
+ if (.not.mmacrec) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to end a MidiMacro before starting one!')
+ call stop1()
+ end if
+ mmacrec = .false.
+ iccount = iccount-1
+ if (.not.first) then
+c
+c Save the macro duration
+c
+ mmactime(immac) = miditime-mmactime(immac)
+ do 5 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track if needed.
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ lasttime = miditime
+ end if
+ end if
+ mmacend(icm,immac) = imidi(icm)
+5 continue
+ end if
+ if (durq .ne. ' ')go to 1
+ else if (durq .eq. 'P') then
+c
+c Play Back a Macro
+c
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected MidiMacro ID number here!')
+ call stop1()
+ end if
+ if (mmacrec) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to play a MidiMacro before ending recording!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ if (.not.first) then
+ immac = nint(fnum)
+ if (mmactime(immac) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot play a MIDI macro before recording it!')
+ call stop1()
+ end if
+ do 6 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0.
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ end if
+ end if
+ msecend(icm,nmidsec) = imidi(icm)
+ msecstrt(icm,nmidsec+1) = mmacstrt(icm,immac)
+ msecend(icm,nmidsec+1) = mmacend(icm,immac)
+ msecstrt(icm,nmidsec+2) = imidi(icm)+1
+6 continue
+ nmidsec = nmidsec+2
+c
+c Update running time
+c
+ miditime = miditime+mmactime(immac)
+ lasttime = miditime
+ end if
+ go to 1
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in MidiMacro sub-command!')
+ call stop1()
+ end if
+ else if (durq .eq. 'd') then
+ debugmidi = .true.
+ go to 1
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in MIDI input data!')
+ call stop1()
+ end if
+ if (.not.gottempo .and. .not.first) then
+c
+c If no tempo is set on first call on the pmxb pass, then set it
+c
+ call midievent('t',96,0)
+ gottempo = .true.
+ end if
+ return
+ end
+ subroutine getnote(loop)
+ parameter (nm=24,mv=24576)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*10 figq
+ character*1 ulq,sepsymq,sq,rptfq1,rptfq2,clefq,chax
+ logical beamon,firstgulp,figbass,figchk,isfig
+ character*60 cheadq
+ character*120 instrq,titleq,compoq
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,autofbon
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /comnotes/ nnodur,lastlev,ndlev(nm,2),shifton,setis,notcrd,
+ * npreslur,was2(nm),ninow,nobar1,nsystp(40),ipage,
+ * OptLineBreakTies,HeaderSpecial
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,fbon,ornrpt,shifton,setis,notcrd,isbjmp,
+ * was2,nobar1,quoted,isbj2,stickyS,
+ * OptLineBreakTies,HeaderSpecial
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /combc/ bcspec
+ common /comas3/ ask(2500),iask,topmods
+c
+c nvmx is either 1 or 2. ivmx(iv,1)=iv, ; ivmx(iv,2)>nv if defined
+c ivx is current ivmx, and is the index for all notes, acc's etc.
+c
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comtrans/ cheadq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ common /comclefq/ clefq(nm)
+ common /comtol/ tol
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ character*128 txtdynq
+ logical mrecord,mplay,endmac,lowdot,rename,bar1syst,upslur,
+ * fontslur,WrotePsslurDefaults
+ character*128 lineq,lnholdq
+ character*80 headrq, lowerq
+ character*79 inameq
+ character*59 hdlndq
+ character*20 voltxtq
+ character*1 charq,dotq,durq,ulfbq,dumq
+ logical loop,lastchar,lower,rptnd1,rptprev,bcspec,moved,
+ * topmods,headlog,btest,sluron,cdot,equalize
+ character*24 tempq
+ logical novshrinktop,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idumm1,isig1,
+ * mbrestsav,kchmid(18),logdumm1,logdumm2,barend,noinst,logdumm3
+ logical barend,iskchb,kchmid,logdumm1,logdumm2,logdumm3
+ common /combibarcnt/ ibarcnt
+ cdot = .false.
+1 call getchar(lineq,iccount,charq)
+ if (lastchar) return
+ if (charq .eq. ' ') go to 1
+ if (charq .eq. '%') then
+c
+c Check for a bar number format:
+c
+ if (iccount.eq.1 .and. lineq(2:2).eq.' ' .and.
+ * index('bB1234567890',lineq(3:3)).gt.0) then
+ if (islast) write(11,'(a)')lineq(1:lenstr(lineq,128))
+ end if
+ iccount = 128
+ go to 1
+ end if
+c
+c Closing repeat iff charq='/' and the prev. char was 'R' with 'd' or 'r'
+c
+ if (rptprev) then
+ rptnd1 = charq .eq. '/'
+ rptprev = .false.
+ end if
+c
+c Repeat at end of a piece
+c
+ if ((ichar(charq).ge.97.and.ichar(charq).le.103) .or.
+ * charq.eq.'r') then
+ if (cdot) go to 28
+c
+c This is a note/rest.
+c
+ idotform = 0
+ numnum = 0
+c
+c If start of line of music, set pitch from previous
+c
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (nnl(ivx).eq.0) lastlev = ndlev(iv,kv)
+c
+c notcrd is used to tell if orn. goes on main note or chord note
+c
+c notcrd = .true. !Move dow. Was not observed if dotted shortcut.
+c
+c Increase note count, then loop 'til blank. Label 28 is for dotted shortcuts.
+c
+28 continue
+c
+c Moved this from just above, 2 Feb 02
+c
+ notcrd = .true.
+ nnl(ivx) = nnl(ivx)+1
+ if (ornrpt) then
+c
+c Replicate ornament bits, also bit 23 for beam handling if chord.
+c
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),iornq(ivx,0))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+ if (stickyS) then
+c
+c Grab stemlength shortening parameters from prior note
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),27)
+ call setbits (mult(ivx,nnl(ivx)),3,28,
+ * igetbits(mult(ivx,nnl(ivx)-1),3,28))
+ end if
+ if (autofbon .and. tautofb.gt.tol .and. .not.fbon) then
+c
+c Doing auto forced beams, and period has been set, so check if this note
+c starts a period.
+c
+c if (mod(1.*itsofar(ivx),tautofb) .lt. tol) then
+ if (mod(itsofar(ivx)-t1autofb,tautofb) .lt. tol) then
+c
+c Start a forced beam here
+c
+ nfb(ivx) = nfb(ivx)+1
+ fbon = .true.
+ ulfbq(ivx,nfb(ivx)) = 'x'
+ t1fb(ivx,nfb(ivx)) = itsofar(ivx)
+ end if
+ end if
+ if (fbon) ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),30)
+ dotq = 'x'
+ if (charq.eq.'r')
+ * irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),0)
+ if (btest(irest(ivx,nnl(ivx)),0)) then
+c
+c Rest stuff. First check if previous note was full-bar-pause
+c
+ if (lineq(iccount+1:iccount+1) .eq.' '
+ * .and. nnl(ivx).gt.1) then
+ if (btest(islur(ivx,nnl(ivx)-1),19))
+ * islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),19)
+ end if
+c
+c Set default rest level at 0 unless 2 voices/staff in which case it's -4 or 2
+c for voice a or b. Set a-types at 0 as encountered and adjust later
+c after '//'. (Override heights will be set to 100+offset)
+c
+ if (ivx .le. nv) then
+ nolev(ivx,nnl(ivx)) = 0
+ else
+ nolev(ivx,nnl(ivx)) = 2
+ end if
+ end if
+2 call getchar(lineq,iccount,durq)
+ ic = ichar(durq)
+ if (ic.le.57 .and. ic.ge.48) then
+c
+c Digit
+c
+ if (numnum .eq. 0) then
+ nnodur = ic-48
+ numnum = 1
+ go to 2
+ else if (numnum .eq. 1) then
+ ioct = ic-48
+ numnum = 2
+ go to 2
+ else
+ print*,'>2 digits in note sym., ivx,nn:',ivx,nnl(ivx)
+ call stop1()
+ end if
+ else if (durq .eq. 'd') then
+ dotq = durq
+ if (lineq(iccount+1:iccount+1) .eq. 'd') then
+c
+c Double dot.
+c
+ iccount = iccount+1
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),3)
+ end if
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, unless next char is not part of a number
+c
+ if (index('0123456789.',lineq(iccount+2:iccount+2)) .eq. 0)
+ * go to 2
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),19)
+ call getchar(lineq,iccount,durq)
+ ndotmv(ivx) = ndotmv(ivx)+1
+ iccount=iccount+1
+ call readnum(lineq,iccount,dumq,updot(ivx,ndotmv(ivx)))
+ if (durq .eq. '-')
+ * updot(ivx,ndotmv(ivx)) = -updot(ivx,ndotmv(ivx))
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift also
+c
+ iccount=iccount+1
+ call readnum(lineq,iccount,durq,rtdot(ivx,ndotmv(ivx)))
+ if (dumq .eq. '-')
+ * rtdot(ivx,ndotmv(ivx)) = -rtdot(ivx,ndotmv(ivx))
+ else
+ rtdot(ivx,ndotmv(ivx)) = 0.
+ end if
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .eq. 'p') then
+c
+c Full-bar rest as pause
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),19)
+ go to 2
+ else if (durq .eq. 'b') then
+c
+c Blank rest
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),29)
+ go to 2
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Accidental
+c
+ if (nacc(ivx,nnl(ivx)) .eq. 0) then
+c
+c No accidental has been set yet
+c
+ nacc(ivx,nnl(ivx)) = index('fsn',durq)
+ else
+c
+c Repeated accid, so must be double
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),2)
+ end if
+ go to 2
+ else if (durq .eq. 'i') then
+c
+c Set flag for MIDI-only accidental.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),17)
+ go to 2
+ else if (durq .eq. 'c') then
+c
+c Set flags for cautionary accidental
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ go to 2
+ else if (index('+-<>',durq) .gt. 0) then
+ ipm = index('- +',durq)-2
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+c
+c A note, not a rest.
+c
+ call chkpm4ac(lineq,iccount,nacc(ivx,nnl(ivx)),moved)
+ if (moved) go to 2
+c
+c Octave jump with a note
+c
+ if (numnum .lt. 2) then
+ lastlev = lastlev+ipm*7
+ else
+ ioct = ioct+ipm*1
+ end if
+ go to 2
+ else
+c
+c Override default height of a rest
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (lineq(iccount-1:iccount-1) .eq. '.') then
+c
+c Kluge in case there is a shortcut ".". It will have been sucked up by
+c readnum. (Same doesn't hold for ",")
+c
+ iccount = iccount-2
+ go to 2
+ end if
+ nolev(ivx,nnl(ivx)) = 100+ipm*nint(fnum)
+c
+c There may be more characters for this rest
+c
+ iccount = iccount-1
+ go to 2
+ end if
+ else if (durq .eq. 'x') then
+c
+c Xtuplet. Count number of doubled notes (for unequal xtups)
+c
+ if (btest(nacc(ivx,nnl(ivx)),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+c
+c Will set all durations to 0 except last one. Set flag on this note.
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),28)
+c
+c Next input will be digit
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ ntup = nint(fnum)
+ if (index('DF',durq) .gt. 0) then
+c
+c Double xtup note to make an un= xtup. Here xtup number already set but may also
+c have this command before.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ ndoub = 1
+ call getchar(lineq,iccount,durq)
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ call getchar(lineq,iccount,durq)
+ end if
+c
+c Only other possibilities here are ' ' or 'n'
+c
+ if (durq .eq. 'n') then
+c
+c Alter xtup number
+c
+ if (lineq(iccount+1:iccount+1) .eq. ' ') then
+c
+c If the only modifier is 'n', cancel the number
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),31)
+ else
+ numshft = 0
+30 call getchar(lineq,iccount,durq)
+ if (durq .eq. 'f') then
+c
+c Flip up-down-ness
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),14)
+ go to 30
+ else if (index('+-',durq) .gt. 0) then
+c
+c Vertical or horiz shift
+c
+ numshft = numshft+1
+ iofforn = 1
+ if (durq .eq. '-') iofforn = -1
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,xofforn)
+ iccount = iccount-1
+ if (numshft .eq. 1) then
+c
+c Vertical shift
+c
+ iofforn = iofforn*nint(xofforn) + 16
+c
+c Turn on bit 1; set bits 2-6 to iofforn
+c
+ irest(ivx,nnl(ivx)) =
+ * ior(irest(ivx,nnl(ivx)),2+4*iofforn)
+ else
+c
+c Horizontal shift
+c
+ iofforn = iofforn*nint(xofforn*10)+16
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),7)
+ call setbits(irest(ivx,nnl(ivx)),5,9,iofforn)
+ end if
+ go to 30
+ else if (durq .eq. 's') then
+c
+c Slope adjustment for bracket
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),4)
+ call getchar(lineq,iccount,durq)
+ iofforn = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,xofforn)
+ iccount = iccount-1
+ iofforn = nint(iofforn*xofforn+16)
+ call setbits(mult(ivx,nnl(ivx)),5,5,iofforn)
+ else if (index('123456789',durq) .gt. 0) then
+c
+c Replacement printed number
+c
+ call readnum(lineq,iccount,durq,xofforn)
+ call setbits(nacc(ivx,nnl(ivx)),5,22,nint(xofforn))
+ iccount = iccount-1
+ go to 30
+ end if
+ end if
+ end if
+c
+c Set note level of 1st note of xtup, provided not a rest
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ if (numnum .eq. 2) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ nolev(ivx,nnl(ivx)) = lastlev
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ end if
+ do 40 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on starting note of xtuplet
+c
+ call setbits(isdat2(nsdat-npreslur+1),7,19,lastlev)
+40 continue
+ numnum = 0
+ nodur(ivx,nnl(ivx)) = 0
+ do 6 itup = 2 , ntup
+ if (ornrpt) then
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),
+ * iand(iornq(ivx,nnl(ivx)-1),10026991))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+ nnl(ivx) = nnl(ivx)+1
+ if (fbon) ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),30)
+7 call getchar(lineq,iccount,charq)
+ if (charq .eq. ' ') then
+ go to 7
+ else if (charq .eq. '%') then
+ iccount = 128
+ go to 7
+ else if (charq .eq. 'o') then
+c
+c Ornament in xtuplet. "o" symbol must come AFTER the affected note
+c
+ if (notcrd) then
+ nole = nolev(ivx,nnl(ivx)-1)
+ else
+ nole = iand(127,ishft(icrdat(ncrd),-12))
+ end if
+ call getorn(lineq,iccount,iornq(ivx,nnl(ivx)-1),
+ * iornq(ivx,0),ornrpt,noffseg,
+ * nnl(ivx)-1,ivx,.false.,notcrd,nole)
+ go to 7
+ else if (index('st(){}',charq) .gt. 0) then
+ nnlivx = nnl(ivx)-1
+ if (charq.eq.'(' .or. charq.eq.'{') then
+c
+c Detected preslur in xtuplet loop, non-chord note
+c
+ nnlivx = nnlivx+1
+ npreslur = npreslur+1
+ end if
+ islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),0)
+ if (charq.eq.'t') islur(ivx,nnlivx) =
+ * ibset(islur(ivx,nnlivx),1)
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (fontslur) then
+ call sslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,
+ * isdat3,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ else
+ call spsslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,
+ * isdat3,isdat4,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ end if
+ go to 7
+ else if (charq .eq. 'G') then
+c
+c Kluge to get grace in xtup at right location
+c
+ nnl(ivx) = nnl(ivx)-1
+ call getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ nnl(ivx) = nnl(ivx)+1
+ go to 7
+ else if (charq .eq. sq) then
+ call littex(islur,nnl(ivx),ivx,topmods,lineq,iccount)
+ go to 7
+ else if (index('0123456789#-nx_',charq) .gt. 0) then
+c
+c Figure. Must come AFTER the first note of xtup
+c
+ ivf = 1
+ if (ivx .gt. 1) then
+ if (ivxfig2 .eq. 0) then
+ ivxfig2 = ivx
+ else if (ivx .ne. ivxfig2) then
+ print*
+ print*,'Figures not allowed in >1 voice above first'
+ stop
+ end if
+ ivf = 2
+ end if
+ nfig1 = nfigs(ivf)+1
+ call getfig(itoff(ivf,nfig1),charq,lineq,iccount,
+ * isfig(ivf,nnl(ivx)-1),itfig(ivf,nfig1),itsofar(ivx),
+ * 0,figq(ivf,nfig1),ivupfig(ivf,nfig1),nfigs(ivf))
+ go to 7
+ else if (charq .eq. 'X') then
+ call getx(lineq,iccount,irest(ivx,max(1,nnl(ivx)-1)),
+ * shifton,wheadpt,iornq(ivx,nnl(ivx)),ivx,
+ * irest(ivx,nnl(ivx)),itsofar(ivx),ntup,itup,nnodur,
+ * dotq,ndoub)
+ go to 7
+ else if (charq .eq. 'z') then
+c
+c Chord note in xtup. Goes with *prior* note.
+c
+ notcrd = .false.
+ ncrd = ncrd+1
+ ipl(ivx,nnl(ivx)-1) = ibset(ipl(ivx,nnl(ivx)-1),10)
+ numnum = 0
+c icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8))
+ icrdat(ncrd) = nnl(ivx)-1
+ call setbits(icrdat(ncrd),4,8,mod(ivx,16))
+ if (ivx .ge. 16) icrdat(ncrd) = ibset(icrdat(ncrd),28)
+ icrdorn(ncrd) = 0
+c
+c Get note name
+c
+ call getchar(lineq,iccount,charq)
+c
+c Get optional inputs
+c
+34 call getchar(lineq,iccount,durq)
+c
+c When chord note is done, will get ' ', making ndx=0, so go past this block
+c
+ ndx = index('fsn+-<>12345678reic',durq)
+ if (ndx .gt. 0) then
+ if (ndx .le. 3) then
+ if (.not.btest(icrdat(ncrd),19)) then
+ icrdat(ncrd) = ibset(icrdat(ncrd),19)
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(ndx,20))
+ else
+ icrdat(ncrd) = ibset(icrdat(ncrd),22)
+ end if
+ else if (ndx .eq. 19) then
+c
+c Set flags for cautionary accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),31)
+ iornq(ivx,nnl(ivx)-1) =
+ * ibset(iornq(ivx,nnl(ivx)-1),31)
+ else if (ndx .le. 7) then
+c
+c +/-/</> Check whether octave or accidental shift
+c
+ nactmp = 0
+ call chkpm4ac(lineq,iccount,nactmp,moved)
+ if (moved) then
+c
+c Transfer accidental shift values
+c
+ call setbits(icrdot(ncrd),6,14,
+ * igetbits(nactmp,6,4))
+ call setbits(icrdot(ncrd),7,20,
+ * igetbits(nactmp,7,10))
+ else
+ if (durq .eq. '+') then
+ lastlev = lastlev+7
+ else if (durq .eq. '-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (durq .eq. 'e') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),23)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),24)
+ irest(ivx,nnl(ivx)-1) =
+ * ibset(irest(ivx,nnl(ivx)-1),20)
+ else if (durq .eq. 'i') then
+c
+c Midi-only accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),27)
+ else
+c
+c must be a number, save it in ioct
+c
+ numnum = 1
+ ioct = ndx-7
+ end if
+ go to 34
+ end if
+ if (numnum .eq. 1) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(lastlev,12))
+ do 41 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on chord note in xtup
+c
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+c
+c Following lines copied from loop for non-xtup, chord note, preslur
+c Initially I assigned the slur(s) to next note, so fix.
+c
+ islur(ivx,nnl(ivx)) = ibclr(islur(ivx,nnl(ivx)),0)
+ islur(ivx,nnl(ivx)-1) = ibset(islur(ivx,nnl(ivx)-1),0)
+ isdat2(nsdat-npreslur+1) =
+ * ibset(isdat2(nsdat-npreslur+1),0)
+ call setbits(isdat1(nsdat-npreslur+1),8,3,
+ * igetbits(isdat1(nsdat-npreslur+1),8,3)-1)
+41 continue
+ go to 7
+ else if (charq .eq. '?') then
+c
+c Arpeggio
+c
+ if (btest(ipl(ivx,nnl(ivx)-1),10)) then
+c
+c This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note
+c of chord, will not set icrdat(25), but iornq(27)
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),25)
+ else
+ iornq(ivx,nnl(ivx)-1) = ibset(iornq(ivx,nnl(ivx)-1),27)
+ end if
+c
+c Check for shift
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+c
+c durq must be "-"
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+c
+c record the shift
+c
+ NumArpShift = NumArpShift+1
+ IvArpShift(NumArpShift) = ivx
+ IpArpShift(NumArpShift) = nnl(ivx)-1
+ ArpShift(NumArpShift) = fnum
+ end if
+ go to 7
+ else if (charq .eq. 'D') then
+ call getdyn(ivx,nnl(ivx)-1,irest(ivx,nnl(ivx)-1),
+ * iornq(ivx,nnl(ivx)-1),lineq,iccount)
+ go to 7
+c+++
+ else if (charq .eq. ']') then
+c
+c Multiplicity up-down, must have '][ '
+c
+ islur(ivx,nnl(ivx)-1) = ibset(islur(ivx,nnl(ivx)-1),20)
+ iccount = iccount+2
+ go to 7
+cc+++
+ end if
+c
+c End of loop for xtup options. If here, charq must be a (non-crd) note name.
+c or rest
+c
+ if (charq .eq. 'r') then
+c
+c Rest in xtup
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),0)
+ if (index('+-b',lineq(iccount+1:iccount+1)) .gt. 0) then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'b') then
+c
+c Blank rest in middle of xtup
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),29)
+ else
+c
+c Override height of embedded xtup rest
+c
+ ipm = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ nolev(ivx,nnl(ivx)) = 100+ipm*nint(fnum)
+ iccount = iccount-1
+ end if
+ else if (ivx .le. nv) then
+ nolev(ivx,nnl(ivx)) = 0
+ else
+ nolev(ivx,nnl(ivx)) = 2
+ end if
+ end if
+ notcrd = .true.
+8 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+ if (index('+-<>',durq) .gt. 0) then
+c
+c Accidental horizontal shift
+c
+ call chkpm4ac(lineq,iccount,nacc(ivx,nnl(ivx)),moved)
+ if (.not.moved) then
+ if (durq.eq.'+') then
+ lastlev = lastlev+7
+ else if (durq.eq.'-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (index('fsn',durq) .gt. 0) then
+ if (nacc(ivx,nnl(ivx)) .eq. 0) then
+c
+c No accid set yet
+c
+ nacc(ivx,nnl(ivx)) = index('fsn',durq)
+ else
+c
+c Symbol must be repeated, so it's a double
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),2)
+ end if
+ else if (durq .eq. 'i') then
+c
+c Set flag for midi-only accidental
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),17)
+
+ else if (durq .eq. 'c') then
+c
+c Set flags for cautionary accidental
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ else if (index('ul',durq) .gt. 0) then
+c
+c Force stem direction for non-beamed xtup note
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),30)
+ if (durq .eq. 'u') islur(ivx,nnl(ivx)) =
+ * ibset(islur(ivx,nnl(ivx)),17)
+ else if (durq .eq. 'e') then
+c
+c Left-shift main xtup note
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),8)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+c
+c Right-shift main xtup note
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),9)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double an xtup note to make an unequal xtup
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ ndoub = ndoub+1
+ else if (durq .eq. 'd') then
+c
+c Dotted xtup note
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ else
+c
+c Must be an octave number
+c
+ lastlev = ifnolev(charq,ichar(durq)-48
+ * ,iTransAmt(instno(iv)))
+ end if
+ go to 8
+ end if
+ if (itup .lt. ntup) then
+c
+c Last note is handled *after* flowing out of the xtup if block, but still
+c within block for a note-rest. Set note level now (rest already done).
+c Could have problem here if rests & doubled notes are combined in xtup,
+c since might exit the loop at the wrong place. Worry about it later.
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ lastlev = lastlev-3+mod(ifnolev(charq,10,
+ * iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ nodur(ivx,nnl(ivx)) = 0
+ do 42 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on internal xtup note
+c
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+42 continue
+ end if
+ if (itup .eq. ntup-ndoub) go to 12
+6 continue
+12 continue
+ if (ornrpt) then
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),
+ * iand(iornq(ivx,nnl(ivx)-1),10026991))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+c
+c End of if-block for xtuplet input
+c
+ else if (durq .eq. 'm') then
+c
+c Multi-bar rest: next 1 or two digits are # of bars.
+c For some purposes, pretend its one bar only
+c
+ nodur(ivx,nnl(ivx)) = lenbar
+ ibarmbr = nbars+1
+ mbrest = 0
+ xb4mbr = 0.
+20 call getchar(lineq,iccount,durq)
+ if (ichar(durq).ge.48.and.ichar(durq).le.57) then
+ mbrest = 10*mbrest+ichar(durq)-48
+ go to 20
+ end if
+ else if (index('ul',durq) .gt. 0) then
+c
+c Set stem flipper
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),30)
+ if (durq .eq. 'u') islur(ivx,nnl(ivx)) =
+ * ibset(islur(ivx,nnl(ivx)),17)
+ go to 2
+ else if (durq .eq. 'a') then
+c
+c "Alone", i.e., prohibit beam
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),18)
+ go to 2
+ else if (durq .eq. 'r') then
+c
+c Right offset by one notehead
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),9)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ go to 2
+ else if (durq .eq. 'e') then
+c
+c Left offset by one notehead
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),8)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ go to 2
+ else if (durq .eq. 'S') then
+c
+c Stemlength change. Get -dstemlen in \internotes. Allowable values are .5 to 4
+c Set mult(27). Map value to 0 to 7, store in mult(28-30). Later convert to
+c interbeams = internotes*2/3.
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),27)
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c End stickyS. Grab data now from prior note, since we have to shut off stickyS.
+c
+ call setbits (mult(ivx,nnl(ivx)),3,28,
+ * igetbits(mult(ivx,nnl(ivx)-1),3,28))
+ stickyS = .false.
+ go to 2
+ end if
+c
+c If durq .ne. ':' then iccount is now on the start of the number
+c
+ call readnum(lineq,iccount,durq,dum)
+ call setbits (mult(ivx,nnl(ivx)),3,28,nint((dum-.5)*2))
+ if (durq .eq. ':') then
+ stickyS = .true.
+ else
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .eq. ',') then
+c
+c 2:1 pattern
+c
+ idotform = 3
+c
+c Now flow to duration setting, as if durq=' '
+c
+ else if (durq .eq. '.') then
+c
+c Dotted pattern. Close out note. Mult time by 3/4.
+c Set time for next note to 1/4. Start the note.
+c
+ idotform = 1
+ else if (durq .eq. 'o') then
+c
+c Suppress rest centering
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),25)
+ go to 2
+ else if (durq .eq.'L') then
+c
+c With keyboard rest option, look left
+c
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),30)
+ go to 2
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double note for xtup. Must check here in case "D" came before "x" or on
+c last note of xtup. Need to flag it in pmxa since affects horiz. spacing.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ go to 2
+ else if (durq .eq. 'A') then
+c
+c Accidental option
+c
+ call getchar(lineq,iccount,durq)
+c
+ if (durq .eq. 'o') then
+c
+c Ordered accidentals in a chord. Mark the main note.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),28)
+ else
+c
+c Only other possibility is +-<> . Set tag, reduce iccount and loop to get #'s
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),29)
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .ne. ' ') then
+ print*,'Illegal character in note: ',durq,', ivx,nn:',
+ * ivx,nnl(ivx)
+ call stop1()
+ end if
+c
+c Done with note/rest options. Set level and duration.
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ if (numnum .eq. 2) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ nolev(ivx,nnl(ivx)) = lastlev
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ do 43 npreslur = npreslur , 1 , -1
+c
+c Set level for preslur on normal note, non-chord
+c
+ call setbits(isdat2(nsdat-npreslur+1),7,19,lastlev)
+43 continue
+ end if
+ if (idotform .gt. 0) then
+ if (idotform .eq. 1) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)*3/2
+ else if (idotform .eq. 2) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/3
+ else if (idotform .eq. 3) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)
+ else if (idotform .eq. 4) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/2
+ end if
+ else if (btest(islur(ivx,nnl(ivx)),19)) then
+c
+c Set duration of full-bar rest as pause
+c
+ nodur(ivx,nnl(ivx)) = lenbar
+c
+c Use a one-line function to set nnodur. It gives inverse of ifnodur.
+c
+ nnodur = index('62514x0x37',
+ * chax(48+int(log(.1+lenbar)/.69315)))-1
+ else if (ibarmbr.ne.nbars+1) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)
+ if (btest(islur(ivx,nnl(ivx)),3))
+ * nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*7/6
+ end if
+ if (shifton .and. .not.btest(irest(ivx,nnl(ivx)),16)) then
+c
+c Shift is on, and this is not first shifted note. Check for duration change
+c
+ if (nodur(ivx,nnl(ivx)) .ne. nodur(ivx,nnl(ivx)-1)) then
+c
+c Must stop and restart the offset.
+c
+ irest(ivx,nnl(ivx)-1) = ibset(irest(ivx,nnl(ivx)-1),17)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),16)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udoff(ivx,nudoff(ivx)-1)
+ end if
+ end if
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ if (autofbon .and. tautofb.gt.tol .and. fbon) then
+c
+c Check to see if need to terminate auto forced beam
+c
+ if (mod(itsofar(ivx)-t1autofb,tautofb) .lt. tol) then
+c
+c Terminate autofb
+c
+ t2fb(ivx,nfb(ivx)) = itsofar(ivx)
+ fbon = .false.
+ end if
+ end if
+ if (mod(itsofar(ivx)-lenb0,lenbar) .eq. 0) then
+c
+c Finished a bar
+c
+ nbars = nbars+1
+ nib(ivx,nbars) = nnl(ivx)
+ if (firstgulp.and.lenb0.ne.0.and.nbars.eq.1) then
+c
+c Just finished the pickup bar for this voice.
+c
+ lenbar = lenb1
+ end if
+ end if
+ if (idotform .eq. 1) then
+ call getchar(lineq,iccount,charq)
+ idotform = 2
+ numnum = 1
+ go to 28
+ else if (idotform .eq. 3) then
+ call getchar(lineq,iccount,charq)
+ idotform = 4
+ numnum = 1
+ go to 28
+ end if
+c
+c End of sub block for note-rest
+c
+ else if (charq .eq. 'z') then
+c
+c Chord note. Must have note name, may have octave#,+,-,s,f,n,d
+c Actually the 'd' is not used, since time value comes from
+c basic note. Unless dot is to be shifted!
+c Doesn't increase # of notes, so must handle separately
+c ncrd: index of crd
+c Set bit 10 of ipl on main note as flag
+c Bits in icrdat:
+c 0-7 ip within voice
+c 8-11 ivx
+c 12-18 note level
+c 19 accidental?
+c 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp)
+c 23 shift left
+c 24 shift right
+c 25 arpeggio start or stop
+c 26 flag for moved dot (here, not icrdot, since this is always reset!)
+c 27 Midi-only accidental
+c 29 Tag for accidental shift...means add to autoshifts.
+c 31 Cautionary accidental
+c
+c Bits in icrdot:
+c 0-6 10*abs(vertical dot shift in \internote) + 64
+c 7-13 10*abs(horizontal dot shift in \internote) + 64
+c 14-19 vert accidental shift-32
+c 20-26 20*(horiz accidental shift+3.2)
+c 27-29 top-down level rank of chord note w/accid. Set in crdaccs.
+c
+c Bits in icrdorn are same as in iornq, even tho most orns won't go in crds.
+c
+ ncrd = ncrd+1
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),10)
+ numnum = 0
+c icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8))
+ icrdat(ncrd) = nnl(ivx)
+ call setbits(icrdat(ncrd),4,8,mod(ivx,16))
+ if (ivx .ge. 16) icrdat(ncrd) = ibset(icrdat(ncrd),28)
+ icrdot(ncrd) = 0
+ icrdorn(ncrd) = 0
+c
+c Get note name
+c
+ call getchar(lineq,iccount,charq)
+c
+c Get optional inputs
+c
+25 call getchar(lineq,iccount,durq)
+c ndx = index('fsn+-<>12345678rediA',durq)
+ ndx = index('fsn+-<>12345678rediAc',durq)
+ if (ndx .eq. 20) then
+c
+c Expect +|-|<|> , set tag, loop
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),29)
+ go to 25
+ else if (ndx .gt. 0) then
+ if (ndx .le. 3) then
+ if (.not.btest(icrdat(ncrd),19)) then
+ icrdat(ncrd) = ibset(icrdat(ncrd),19)
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(ndx,20))
+ else
+ icrdat(ncrd) = ibset(icrdat(ncrd),22)
+ end if
+ else if (ndx .eq. 21) then
+c
+c Set flags for cautionary accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ else if (ndx .le. 7) then
+c
+c +/-/</> Check whether octave or accidental shift
+c
+ nactmp = 0
+ call chkpm4ac(lineq,iccount,nactmp,moved)
+ if (moved) then
+c
+c Transfer accidental shift values
+c
+ call setbits(icrdot(ncrd),6,14,igetbits(nactmp,6,4))
+ call setbits(icrdot(ncrd),7,20,igetbits(nactmp,7,10))
+ else
+ if (durq .eq. '+') then
+ lastlev = lastlev+7
+ else if (durq .eq. '-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (durq .eq. 'e') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),23)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),24)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ else if (durq .eq. 'i') then
+c
+c Midi-only accidental on chord note
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),27)
+ else if (durq .eq. 'd') then
+c
+c Must keep 'd' optional (backward compatibility), unless it is moved!
+c
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, unless next char is not part of a number
+c
+ if (index('0123456789.',lineq(iccount+2:iccount+2))
+ * .eq. 0) go to 25
+ icrdat(ncrd) = ibset(icrdat(ncrd),26)
+ call getchar(lineq,iccount,durq)
+ iccount=iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (durq .eq. '+') then
+ icrdot(ncrd) = ior(icrdot(ncrd),nint(fnum*10)+64)
+ else
+ icrdot(ncrd) = ior(icrdot(ncrd),-nint(fnum*10)+64)
+ end if
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift specified also
+c
+ iccount=iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (dumq .eq. '+') then
+ ifnum = nint(fnum*10)+64
+ else
+ ifnum = -nint(fnum*10)+64
+ end if
+ else
+ ifnum = 64
+ end if
+ icrdot(ncrd) = ior(icrdot(ncrd),ishft(ifnum,7))
+ iccount = iccount-1
+ end if
+ else
+c
+c must be a single digit, save it in ioct
+c
+ numnum = 1
+ ioct = ndx-7
+ end if
+ go to 25
+ end if
+ if (numnum .eq. 1) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(lastlev,12))
+ do 44 npreslur = npreslur , 1 , -1
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+c
+c Set level for chord note.
+c Initially I assigned the slur(s) to next note, so fix.
+c
+ islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),0)
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),0)
+ isdat2(nsdat-npreslur+1) = ibset(isdat2(nsdat-npreslur+1),0)
+ call setbits(isdat1(nsdat-npreslur+1),8,3,
+ * igetbits(isdat1(nsdat-npreslur+1),8,3)-1)
+44 continue
+ if (notcrd) then
+c
+c This is the first chord note in this chord.
+c
+ minlev = min(nolev(ivx,nnl(ivx)),lastlev)
+ maxlev = max(nolev(ivx,nnl(ivx)),lastlev)
+ else
+ minlev = min(minlev,lastlev)
+ maxlev = max(maxlev,lastlev)
+ end if
+ notcrd = .false.
+ else if (charq .eq. 'G') then
+ call getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ continue
+c
+c Grace, comes *before* main note:
+c UNLESS there's an 'A' or 'W' after the 'G'
+c ngrace = # of grace note groups so far in block
+c ivg(ngrace), ipg(ngrace)
+c nng(ngrace) = # of notes in this group: default = 1
+c ngstrt(ngrace) = starting position in nolevg of levels for this grace
+c multg(ngrace) = multiplicity: default = 1; input as 'm(digit)'
+c upg(ngrace) = logical for beam or stem dirn: default T, input'u,l'
+c slurg(ngrace) = logical for slur; default F, input 's'
+c slashg(ngrace) = T if slash; default is F, input 'x'
+c These data MUST precede note name of first note
+c nolevg, naccg: lists of levels and accid's, indexed as described above.
+c
+c ngrace = ngrace+1
+c ivg(ngrace) = ivx
+c ipg(ngrace) = nnl(ivx)+1
+c if (ngrace .eq. 1) then
+c ngstrt(ngrace) = 1
+c else
+c ngstrt(ngrace) = ngstrt(ngrace-1)+nng(ngrace-1)
+c end if
+c islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),4)
+c nng(ngrace) = 1
+c multg(ngrace) = 1
+c upg(ngrace) = .true.
+c slurg(ngrace) = .false.
+c slashg(ngrace) = .false.
+c18 call getchar(lineq,iccount,charq)
+c if (index('WA',charq) .gt. 0) then
+cc
+cc Grace is on note that was already done, so shift flags forward one note.
+cc This puts flag on actual note with grace; later for W will go ahead one more.
+cc
+c ipg(ngrace) = nnl(ivx)
+c islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),4)
+c islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),4)
+c if (slurg(ngrace))
+c * iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),24)
+c if (charq .eq. 'A') then
+cc
+cc close After, clear way-after bit, to ensure priority of most recent A/W
+cc
+c ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),31),29)
+c else
+cc
+cc Way after; later assign to following note, and position like normal grace.
+cc
+c ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),29),31)
+c end if
+c else if (charq .eq. 'm') then
+c call getchar(lineq,iccount,charq)
+c multg(ngrace) = ichar(charq)-48
+c else if (index('123456789',charq) .gt. 0) then
+c call readnum(lineq,iccount,durq,fnum)
+c iccount = iccount-1
+c nng(ngrace) = nint(fnum)
+c else if (charq .eq. 'l') then
+c upg(ngrace) = .false.
+c else if (charq .eq. 's') then
+c slurg(ngrace) = .true.
+c if (nnl(ivx) .gt. 0) then
+cc
+cc If A- or W-grace, set signal to start slur on main note.
+cc
+c if(btest(ipl(ivx,nnl(ivx)),31) .or.
+c * btest(ipl(ivx,nnl(ivx)),29))
+c * iornq(ivx,nnl(ivx))=ibset(iornq(ivx,nnl(ivx)),24)
+c end if
+c else if (charq .eq. 'x') then
+c slashg(ngrace) = .true.
+c else if (charq .eq. 'u') then
+c else if (charq .eq. 'X') then
+cc
+cc Space before main note of grace. Number will come next.
+cc
+c iccount = iccount+1
+c call readnum(lineq,iccount,durq,graspace(ngrace))
+c iccount = iccount-1
+c end if
+c if (index('abcdefg',charq) .eq. 0) go to 18
+cc
+cc At this point, charq is first note name in grace
+cc
+c do 19 ing = ngstrt(ngrace), ngstrt(ngrace)+nng(ngrace)-1
+c naccg(ing) = 0
+c ioct = 0
+c if (ing .gt. ngstrt(ngrace)) then
+c55 call getchar(lineq,iccount,charq)
+c if (charq .eq. ' ') go to 55
+c endif
+c iclastlev = 0
+c9 call getchar(lineq,iccount,durq)
+c if (durq .ne. ' ') then
+c if (durq.eq.'+') then
+c lastlev = lastlev+7
+c iclastlev = iclastlev+7
+c else if (durq.eq.'-') then
+c lastlev = lastlev-7
+c iclastlev = iclastlev-7
+c else if (index('fsn',durq) .gt. 0) then
+c if (naccg(ing) .eq. 0) then
+c naccg(ing) = index('fsn',durq)
+c else
+cc
+cc Double accidental
+cc
+c naccg(ing) = ibset(naccg(ing),2)
+c end if
+c else
+c ioct = ichar(durq)-48
+c end if
+c go to 9
+c end if
+c if (ioct .gt. 0) then
+c lastlev = ifnolev(charq,ioct)
+c else
+c if (nnl(ivx).eq.0 .and. ing.eq.ngstrt(ngrace)) then
+c if (ivx .le. nv) then
+c kv = 1
+c else
+c kv = 2
+c end if
+c lastlev = ndlev(iv,kv)+iclastlev
+c end if
+c lastlev = lastlev-3+mod(ifnolev(charq,10)-lastlev+3,7)
+c end if
+c nolevg(ing) = lastlev
+c19 continue
+cc
+cc Grace could come before first note of block, so reset end level.
+cc
+c if (nnl(ivx).eq.0) then
+c if (ivx .le. nv) then
+c kv = 1
+c else
+c kv = 2
+c end if
+c ndlev(iv,kv) = lastlev
+c end if
+ else if (charq .eq. sq) then
+c
+c Literal TeX string
+c
+ call littex(islur,nnl(ivx)+1,ivx,topmods,lineq,iccount)
+ else if (charq .eq. 'o') then
+c
+c Ornament on non-xtup note. Symbol must come AFTER the affected note
+c
+ if (notcrd) then
+ nole = nolev(ivx,nnl(ivx))
+ else
+ nole = iand(127,ishft(icrdat(ncrd),-12))
+ end if
+ call getorn(lineq,iccount,iornq(ivx,nnl(ivx)),
+ * iornq(ivx,0),ornrpt,noffseg,nnl(ivx),ivx,
+ * .true.,notcrd,nole)
+ else if (index('st(){}',charq) .gt. 0) then
+ nnlivx = nnl(ivx)
+ if (charq.eq.'(' .or. charq.eq.'{') then
+c
+c Detect preslur on normal non-chord note
+c
+ nnlivx = nnlivx+1
+ npreslur = npreslur+1
+ end if
+ islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),0)
+ if (charq.eq.'t')
+ * islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),1)
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (fontslur) then
+ call sslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,isdat3,
+ * nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ else
+ call spsslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,isdat3,
+ * isdat4,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ end if
+ else if (charq .eq. '?') then
+c
+c Arpeggio
+c
+ if (btest(ipl(ivx,nnl(ivx)),10)) then
+c
+c This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note
+c of chord, will not set icrdat(25), but iornq(27)
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),25)
+ else
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),27)
+ end if
+c
+c Check for shift
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+c
+c durq must be "-"
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+c
+c record the shift
+c
+ NumArpShift = NumArpShift+1
+ IvArpShift(NumArpShift) = ivx
+ IpArpShift(NumArpShift) = nnl(ivx)
+ ArpShift(NumArpShift) = fnum
+ end if
+ else if (index('0123456789#-nx_',charq) .gt. 0) then
+c
+c We have a figure. Must come AFTER the note it goes under
+c
+
+ ivf = 1
+ if (ivx .gt. 1) then
+ if (ivxfig2 .eq. 0) then
+ ivxfig2 = ivx
+ else if (ivx .ne. ivxfig2) then
+ print*
+ print*,'Figures not allowed in >1 voice above first'
+ stop
+ end if
+ ivf = 2
+ end if
+ nfig1 = nfigs(ivf)+1
+ call getfig(itoff(ivf,nfig1),charq,lineq,iccount,
+ * isfig(ivf,nnl(ivx)),itfig(ivf,nfig1),itsofar(ivx),
+ * nodur(ivx,nnl(ivx)),figq(ivf,nfig1),
+ * ivupfig(ivf,nfig1),nfigs(ivf))
+ else if (charq .eq. '[') then
+c
+c Start forced beam. Record barno & time since start of inp. blk. Set signal
+c
+ nfb(ivx) = nfb(ivx)+1
+ fbon = .true.
+ ulfbq(ivx,nfb(ivx)) = 'x'
+ t1fb(ivx,nfb(ivx)) = itsofar(ivx)
+ nadj = 0
+ if (autofbon) then
+ autofbon = .false.
+ end if
+17 call getchar(lineq,iccount,charq)
+ if (index('ulf',charq) .gt. 0) then
+ ulfbq(ivx,nfb(ivx)) = charq
+ go to 17
+ else if (charq .eq. 'j') then
+c
+c Continuing a jumped beam here
+c
+ irest(ivx,nnl(ivx)+1) = ibset(irest(ivx,nnl(ivx)+1),24)
+c
+c Set flag to watch for END of this forced beam, so can set flag rest(30) on
+c NEXT note as signal to start a new notes group there.
+c
+ isbj2 = .true.
+ go to 17
+ else if (charq .eq. 'h') then
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),2)
+ go to 17
+ else if (charq .eq. 'm') then
+c
+c Force multiplicity. Next input is digit
+c
+ call getchar(lineq,iccount,charq)
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),21)
+ call setbits(islur(ivx,nnl(ivx)+1),3,22,ichar(charq)-48)
+ go to 17
+ else if (charq .eq. ':') then
+c
+c Start auto forced beam pattern
+c
+ autofbon = .true.
+c
+c When forced later beam ends, check whether tautofv <=0; if so set it.
+c
+ tautofb = -itsofar(ivx)
+ t1autofb = itsofar(ivx)
+ go to 17
+ else if (charq .ne. ' ') then
+c
+c Must be '+/-' for height or slope shift
+c
+ nadj = nadj+1
+c
+c nadj = 1,2, or 3 for normal start level, slope, or beam-thk start level.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ iadj = nint(fnum)
+ if (charq .eq. '-') iadj = -iadj
+ if (nadj .eq. 1) then
+c
+c This is a level shift. Note if 0 was entered, iadj = 30
+c
+ call setbits(ipl(ivx,nnl(ivx)+1),6,11,iadj+30)
+ else if (nadj .eq. 2) then
+c
+c Must be a slope shift
+c
+ call setbits(ipl(ivx,nnl(ivx)+1),6,17,iadj+30)
+ else
+c
+c Beam-thk fine tune
+c
+ call setbits(islur(ivx,nnl(ivx)+1),2,27,iadj)
+ end if
+ go to 17
+ end if
+ else if (charq .eq. ']') then
+ if (autofbon .and. tautofb.lt.tol) then
+ tautofb=itsofar(ivx)+tautofb
+ end if
+ call getchar(lineq,iccount,charq)
+ if (index('j ',charq) .gt. 0) then
+c
+c Since ']' comes AFTER note, itsofar has been updated. Set ending signal.
+c
+ t2fb(ivx,nfb(ivx)) = itsofar(ivx)
+ fbon = .false.
+ if (charq .eq. 'j')
+ * irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),23)
+ if (isbj2) then
+c
+c This is the end of a fb segment of a jump beam. Set flag on NEXT note to
+c force start of new notes group, provided this is not last note in bar.
+c
+ if (mod(itsofar(ivx),lenbar) .ne. 0)
+ * irest(ivx,nnl(ivx)+1) = ibset(irest(ivx,nnl(ivx)+1),30)
+ isbj2 = .false.
+ end if
+ else if (charq .eq. '[') then
+c
+c Multiplicity down-up signal
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),20)
+ else if (charq .eq. '-') then
+c
+c Set signals for gap in single-slope beam [...]-[...]
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),20)
+ nacc(ivx,nnl(ivx)+1) = ibset(nacc(ivx,nnl(ivx)+1),21)
+c
+c Next two characters must be "[ ". Skip over them.
+c
+ iccount = iccount+2
+ end if
+ else if (charq .eq. 'D') then
+ call getdyn(ivx,nnl(ivx),irest(ivx,nnl(ivx)),
+ * iornq(ivx,nnl(ivx)),lineq,iccount)
+ else if (charq .eq. 'h') then
+c
+c Heading or height. For heading, only OK if at start of block
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "h" not at beginning of block'
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ ihdvrt = 0
+ if (index('+-',durq) .gt. 0) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ ihdvrt = fnum+.1
+ if (durq .eq. '-') ihdvrt = -ihdvrt
+ durq = charq
+ end if
+ if (durq .ne. ' ') then
+c
+c Height symbol. Read past (until next blank)
+c
+3 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 3
+ else
+c
+c Set flag for header & read it in
+c
+ ihdht = 16
+ call getbuf(headrq)
+ iccount = 128
+ end if
+ else if (charq .eq. 'L') then
+c
+c Linebreak, already handled in pmxa, but check for movement break
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fmovbrk)
+ if (durq .eq. 'P') then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ if (durq .eq. 'M') then
+ movbrk = nint(fmovbrk)
+ movgap = 0
+ parmov = -1.
+ call getchar(lineq,iccount,durq)
+31 if (durq .eq. '+') then
+c
+c Get vertical space (\internotes)
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ movgap = nint(fnum)
+ go to 31
+ else if (durq .eq. 'i') then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,parmov)
+ go to 31
+ else if (durq .eq. 'c') then
+ nobar1 = .true.
+ call getchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'r') then
+c
+c "rename" can be set on or off.
+c
+ call getchar(lineq,iccount,durq)
+ rename = durq.eq.'+'
+ call getchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'n') then
+c
+c Change # of voices. Input ninow, iiorig(1...ninow). Will use names,
+c staves per inst. and clefs corr. to iiorig in original list of instruments.
+c
+ nvold = nv
+ nv = 0
+ rename = .true.
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+ iccount = iccount+2
+ read(lineq(iccount-1:iccount),'(i2)')ninow
+ else
+ ninow = ichar(durq)-48
+ end if
+ iiv = 0
+ do 63 iinow = 1 , ninow
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+ iccount = iccount+2
+ read(lineq(iccount-1:iccount),'(i2)')iiorig(iinow)
+ else
+ iiorig(iinow) = ichar(durq)-48
+ end if
+ nspern(iinow) = nsperi(iiorig(iinow))
+ nv = nv+nspern(iinow)
+ sepsymq(iiv+nspern(iinow)) = '&'
+ if (nspern(iinow) .gt. 1) then
+ do 64 iis = 1 , nspern(iinow)-1
+ sepsymq(iiv+iis) = '|'
+64 continue
+ end if
+ iiv = iiv+nspern(iinow)
+63 continue
+ if (islast) then
+ if (ninow .lt. 10) then
+ write(11,'(a)')sq//'newnoi{'//chax(ninow+48)//'}%'
+ else
+ write(11,'(a8,i2,a2)')sq//'newnoi{',ninow,'}%'
+ end if
+ end if
+ if (nv.eq.1 .and. nvold.gt.1) then
+ if (islast) write(11,'(a)')sq//'nostartrule'
+ else if (nv.gt.1 .and. nvold.eq.1) then
+ if (islast) write(11,'(a)')sq//'startrule'
+ end if
+ iiv = 0
+ do 60 iinow = 1 , ninow
+ do 61 iis = 1 , nspern(iinow)
+ iiv = iiv+1
+c
+c May not really need to re-enter clefs, but it's easier to program since
+c clef names are not saved but are needed in newvoice to set ncmidcc.
+c
+ call getchar(lineq,iccount,clefq(iiv))
+ call newvoice(iiv,clefq(iiv),.true.)
+ if (nspern(iinow) .eq. 1) then
+ hdlndq = chax(48+numclef(clefq(iiv)))
+ lclf = 1
+ else if (iis .eq. 1) then
+ hdlndq = '{'//chax(48+numclef(clefq(iiv)))
+ lclf = 2
+ else if (iis .lt. nspern(iinow)) then
+ hdlndq = hdlndq(1:lclf)//chax(48+numclef(clefq(iiv)))
+ lclf = lclf+1
+ else
+ hdlndq =
+ * hdlndq(1:lclf)//chax(48+numclef(clefq(iiv)))//'}'
+ lclf = lclf+2
+ end if
+61 continue
+c
+c setstaffs & setclef go by instrument, not voice
+c
+ if (islast) then
+ if (iinow .lt. 10) then
+ write(11,'(a)')sq//'setstaffs'
+ * //chax(48+iinow)//chax(48+nspern(iinow))//'%'
+ write(11,'(a)')sq//'setclef'//chax(48+iinow)
+ * //hdlndq(1:lclf)//'%'
+ else
+ write(11,'(a11,i2,a)')sq//'setstaffs{',iinow,
+ * '}'//chax(48+nspern(iinow))//'%'
+ write(11,'(a9,i2,a)')sq//'setclef{',iinow,
+ * '}'//hdlndq(1:lclf)//'%'
+ end if
+ end if
+60 continue
+c
+c Loop back up, this may not be last option in M. Note flow out if durq=' '
+c
+ call getchar(lineq,iccount,durq)
+ go to 31
+ end if
+c
+c Write instrument names
+c
+ if (.not.rename) then
+ do 62 iinst = 1 , ninow
+ if (islast) then
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a3)')sq//'setname',iinst,'{}%'
+ else
+ write(11,'(a9,i2,a4)')sq//'setname{',iinst,'}{}%'
+ end if
+ end if
+62 continue
+ else
+ do 65 iinst = 1 , ninow
+ if (islast) then
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a)')sq//'setname',iinst,'{'//
+ * inameq(iiorig(iinst))(1:lnam(iiorig(iinst)))//'}%'
+ else
+ write(11,'(a9,i2,a)')sq//'setname{',iinst,'}{'//
+ * inameq(iiorig(iinst))(1:lnam(iiorig(iinst)))//'}%'
+ end if
+ end if
+65 continue
+ rename = .false.
+ end if
+ end if
+ else if (charq .eq.'|' ) then
+c
+c End of bar symbol. Check about end of bar hardspace.
+c
+ if (btest(iornq(ivx,nnl(ivx)+1),26)) then
+c
+c There was a hardspace followed by a bar line. Remove it from the hardspace
+c list, store with shifts instead, set special bit. Need to repeat this code
+c at '/'.
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),18)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udsp(nudsp)
+ nudsp = nudsp-1
+ iornq(ivx,nnl(ivx)+1) = ibclr(iornq(ivx,nnl(ivx)+1),26)
+ end if
+ else if (index('wS',charq) .gt. 0) then
+c
+c Width symbol or new nsyst. Read past (until blank)
+c
+4 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 4
+ else if (charq .eq. 'l') then
+c
+c Lower string. Only OK if at start of block
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "l" not at beginning of block'
+ call stop1()
+ end if
+c
+c Set flag for lower string & read it in
+c
+ lower = .true.
+ call getbuf(lowerq)
+ iccount = 128
+ else if (charq .eq. 'm') then
+c
+c Meter change. Only allow at beginning of block.
+c mtrnuml, mtrdenl (logical) and p (printable) will be input.
+c mtrnuml=0 initially. (In common)
+c
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "m" not at beginning of block'
+ call stop1()
+ end if
+ call readmeter(lineq,iccount,mtrnuml,mtrdenl)
+ call readmeter(lineq,iccount,mtrnmp,mtrdnp)
+ lenbeat = ifnodur(mtrdenl,'x')
+ if (mtrdenl .eq. 2) lenbeat = 16
+ lenbar = mtrnuml*lenbeat
+ if (mtrdenl .eq. 2) lenbar = lenbar*2
+ lenb1 = lenbar
+ lenb0 = 0
+ if (ismidi) call midievent('m',mtrnuml,mtrdenl)
+ else if (charq .eq. 'C') then
+c
+c Clef change on next note. Set bits 11-15. Won't allow in 2nd line of music.
+c
+ if (nnl(iv) .gt. 0) ncc(iv) = ncc(iv)+1
+ tcc(iv,ncc(iv)) = itsofar(iv)
+ isl = ibset(islur(iv,nnl(iv)+1),11)
+ call getchar(lineq,iccount,durq)
+c
+c Store clef number, or 7 if clef number = 9 (French violin clef)
+c
+ isl = ior(isl,ishft(min(numclef(durq),7),12))
+ ncmidcc(iv,ncc(iv)) = ncmidf(durq)
+c
+c Set marker on note with lowest voice # starting at same time.
+c
+ if (iv .eq. 1) then
+ isl = ibset(isl,15)
+ else
+ do 13 iiv = 1 , iv
+ nnliiv = nnl(iiv)
+ if (iiv .eq. iv) nnliiv = nnliiv+1
+ itother = 0
+ do 14 iip = 1 , nnliiv
+ if (itother .lt. itsofar(iv)) then
+ itother = itother+nodur(iiv,iip)
+ go to 14
+ else if (itother .eq. itsofar(iv)) then
+ islur(iiv,iip) = ibset(islur(iiv,iip),15)
+ go to 15
+ end if
+14 continue
+13 continue
+15 continue
+ end if
+c
+c Need 'or' since may have set bit 15 in the above loop
+c
+ islur(iv,nnl(iv)+1) = ior(isl,islur(iv,nnl(iv)+1))
+ else if (charq .eq. 'R') then
+c
+c Repeats. set bits 5, 6, and/or 8 of islur(1,ip+1)
+c
+10 call getchar(lineq,iccount,durq)
+c
+c Save designator in case it's a terminal Rr or Rd
+c
+ if (durq .eq. 'l') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),5)
+ go to 10
+ else if (index('rdDbz',durq) .gt. 0) then
+ if (durq .eq. 'r') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),6)
+ else if (durq .eq. 'd') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),8)
+ else if (durq .eq. 'D') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),26)
+ else if (durq .eq. 'b') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),25)
+ else if (durq .eq. 'z') then
+ iornq(1,nnl(1)+1) = ibset(iornq(1,nnl(1)+1),29)
+ end if
+ rptprev = .true.
+ rptfq1 = durq
+ go to 10
+ end if
+ else if (charq .eq. 'V') then
+c
+c Ending
+c
+ nnnl = nnl(1)+1
+ lvoltxt = 0
+11 call getchar(lineq,iccount,durq)
+ if (durq.eq.'b' .or. durq .eq.'x') then
+c
+c End Volta, set bit9, and bit10 on if 'b' (end w/ box)
+c
+ islur(1,nnnl) = ibset(islur(1,nnnl),9)
+ if (durq .eq. 'b') islur(1,nnnl) = ibset(islur(1,nnnl),10)
+ go to 11
+ else if (durq .ne. ' ') then
+c
+c Start volta; Get text
+c
+ if (lvoltxt .eq. 0) then
+c
+c First character for text
+c
+ lvoltxt = 1
+ islur(1,nnnl) = ibset(islur(1,nnnl),7)
+ nvolt = nvolt+1
+ voltxtq(nvolt) = durq
+ else
+ voltxtq(nvolt) = voltxtq(nvolt)(1:lvoltxt)//durq
+ lvoltxt = lvoltxt+1
+ end if
+ go to 11
+ end if
+ else if (charq .eq. 'B') then
+ bcspec = .not.bcspec
+ else if (charq .eq. 'P') then
+c
+c Page numbers. Print stuff right now.
+c
+ npg1 = 0
+c
+c Will use ltopnam to signal whether there's a centered heading
+c
+ ltopnam = 0
+ ipg1r = 0
+16 call getchar(lineq,iccount,durq)
+ if (ichar(durq).ge.48 .and. ichar(durq).le.57) then
+ npg1 = npg1*10+ichar(durq)-48
+ go to 16
+ else if (durq .eq. 'l') then
+ if (npg1.eq.0 .or. mod(npg1,2).eq.1) ipg1r = 1
+ go to 16
+ else if (durq .eq. 'r') then
+ if (npg1.gt.0 .and. mod(npg1,2).eq.0) ipg1r = 1
+ go to 16
+ else if (durq .eq. 'c') then
+c
+c Top-centered name. Assume this is last option. Read the name.
+c May surround name in double quotes (to allow blanks).
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ ltopnam = lenstr(cheadq,60)
+ else
+ namstrt = iccount
+ if (durq .eq. '"') then
+c
+c Using quote delimiters.
+c
+ quoted = .true.
+ namstrt = namstrt+1
+ else
+ quoted = .false.
+ end if
+ do 35 iccount = namstrt+1, 128
+ if ((quoted .and. lineq(iccount:iccount) .eq. '"') .or.
+ * (.not.quoted .and. lineq(iccount:iccount) .eq. ' '))
+ * go to 36
+c
+c On exit, iccount is OK, and name is in (namstrt:iccount-1)
+c
+35 continue
+ print*,'Awww, cmon, should not be here.'
+ call stop1()
+36 continue
+ ltopnam = iccount-namstrt
+ cheadq = lineq(namstrt:iccount-1)
+ end if
+ end if
+c
+c Done getting data, now assemble the command
+c
+ if (npg1.eq.0) npg1=1
+c
+c 2/23/03 Don't use \atnextline if on first page and only one system
+c
+c if (ipage.gt.1 .or. nsystp(1).gt.1) then
+ hdlndq = sq//'def'//sq//'atnextline{'//sq//'toppageno{'
+ lhead = 27
+c else
+c hdlndq = sq//'toppageno{'
+c lhead = 11
+c end if
+ if (npg1 .lt. 10) then
+c
+c Note we are overwriting the last "{"
+c
+ write(hdlndq(lhead:lhead),'(i1)')npg1
+ else if (npg1 .lt. 100) then
+ lhead = lhead+3
+ write(hdlndq(lhead-2:lhead),'(i2,a1)')npg1,'}'
+ else
+ lhead = lhead+4
+ write(hdlndq(lhead-3:lhead),'(i3,a1)')npg1,'}'
+ end if
+ hdlndq = hdlndq(1:lhead)//chax(ipg1r+48)//'{'
+ lhead = lhead+2
+c if (ipage.gt.1 .or. nsystp(1).gt.1) then
+ if (ltopnam .eq. 0) then
+ if (islast) write(11,'(a)')hdlndq(1:lhead)//'}}%'
+ else
+ if (islast)
+ * write(11,'(a)')hdlndq(1:lhead)//cheadq(1:ltopnam)//'}}%'
+ end if
+c else
+c if (ltopnam .eq. 0) then
+c if (islast) write(11,'(a)')hdlndq(1:lhead)//'}%'
+c else
+c if (islast)
+c * write(11,'(a)')hdlndq(1:lhead)//cheadq(1:ltopnam)//'}%'
+c end if
+c end if
+ else if (charq .eq. 'W') then
+c
+c Just eat the number that must follow, it was used in pmxa
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ else if (charq .eq. 'T') then
+ headlog = .true.
+ inhead = 0
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'i') then
+ call getbuf(instrq)
+c
+c A kluge for parts from separate score file for later movements.
+c
+ if (instrq(1:1) .eq. ' ') headlog = .false.
+ cheadq = instrq
+ else if (durq .eq. 't') then
+ call getchar(lineq,iccount,durq)
+c
+c Optionally can include extra vertical \internotes above inbothd
+c
+ if (index('-+0123456789',durq) .gt. 0) then
+ ipm = 1
+ if (index('+-',durq) .gt. 0) then
+c
+c Don't trust readnum to round this negative integer properly
+c
+ iccount = iccount+1
+ if (durq .eq. '-') ipm = -1
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ inhead = ipm*nint(fnum)
+ end if
+ call getbuf(titleq)
+ else
+ call getbuf(compoq)
+ end if
+ inhead = inhead+inbothd
+ iccount = 128
+ else if (charq .eq. 'A') then
+c
+c Accidental handling etc.
+c
+27 call getchar(lineq,iccount,durq)
+ if (durq .eq. 'r') then
+ if (islast) then
+ relacc = .true.
+ write(11,'(a)')sq//'relativeaccid%'
+ end if
+ else if (durq .eq. 's') then
+ bacfac = 1.e6
+ else if (durq .eq. 'b') then
+ if (islast) write(11,'(a)')sq//'bigaccid%'
+ accfac = bacfac
+ else if (durq .eq. 'a') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ else if (durq .eq. 'i') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,tintstf)
+ if (.not.firstgulp) fintstf = tintstf
+c
+c Local corrections for first page were handled by pmxa
+c
+ iccount = iccount-1
+ else if (durq .eq. 'I') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,gintstf)
+ iccount = iccount-1
+ else if (durq .eq. 'd') then
+ lowdot = .true.
+ else if (durq .eq. 'o') then
+ continue
+ else if (durq .eq. 'S') then
+ do 50 iiv = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('-s',durq) .gt. 0) then
+ fullsize(iiv) = 0.8
+ else if (durq .eq. 't') then
+ fullsize(iiv) = 0.64
+ else
+ fullsize(ivx) = 1.0
+ end if
+50 continue
+ else if (durq .eq. 'e') then
+c
+c Line-spacing equalization
+c
+ equalize = .true.
+c
+c The following redefinition of \parskip was put into pmx.tex in version 2.25 or so.
+c But it causes problems with some older scores and when excerpts are combined
+c with LaTeX. So as of 2.352 we write it here.
+c
+ write(11,'(a)')sq//'global'//sq//'parskip 0pt plus 12'//sq
+ * //'Interligne minus 99'//sq//'Interligne%'
+ tempq = sepsymq(1)
+ lentemp = 1
+ do 51 iiv = 2 , nv-1
+ tempq = tempq(1:lentemp)//sepsymq(iiv)
+ lentemp = lentemp+1
+51 continue
+ write(11,'(a)')sq//'def'//sq//'upstrut{'//sq//'znotes'
+ * //tempq(1:lentemp)//sq//'zcharnote{'//sq//'upamt}{~}'
+ * //sq//'en}%'
+ else if (durq .eq. 'v') then
+c
+c Toggle usevshrink
+c
+ usevshrink = .not.usevshrink
+ else if (durq .eq.'p') then
+c
+c Postscript slurs. fontslur is already false (set in g1etnote)
+c
+ if (.not.WrotePsslurDefaults) then
+c
+c Set postscrirpt slur adjustment defaults
+c
+ write(11,'(a)')sq//'Nosluradjust'//sq//'Notieadjust'
+ * //sq//'nohalfties'
+ WrotePsslurDefaults = .true.
+ end if
+52 continue
+ call g1etchar(lineq,iccount,durq) ! might be "+", "-", "h" or "l"
+ if (index('+-',durq) .gt. 0) then
+c
+c Characters to change defaults for ps slurs
+c
+ call g1etchar(lineq,iccount,charq) ! charq will be "s,t,h,c"
+ if (durq .eq. '+') then
+ if (charq .eq. 's') then
+ write(11,'(a)')sq//'Sluradjust'
+ else if (charq .eq. 't') then
+ write(11,'(a)')sq//'Tieadjust'
+ else if (charq .eq. 'h') then
+ write(11,'(a)')sq//'halfties'
+ else
+ SlurCurve = SlurCurve + 1
+ if (SlurCurve .gt. 3.1) then
+ call printl('WARNING!')
+ call printl
+ * ('Default slur curvature advanced past HH, resetting')
+ SlurCurve = 3
+ end if
+ end if
+ else
+ if (charq .eq. 's') then
+ write(11,'(a)')sq//'Nosluradjust'
+ else if (charq .eq. 't') then
+ write(11,'(a)')sq//'Notieadjust'
+ else if (charq .eq. 'h') then
+ write(11,'(a)')sq//'nohalfties'
+ else
+ SlurCurve = SlurCurve - 1
+ if (SlurCurve .lt. -1.1) then
+ call printl('WARNING!')
+ call printl(
+ * 'Default slur curvature decremented below f, resetting')
+ SlurCurve = -1
+ end if
+ end if
+ end if
+ go to 52 ! Check for another set of default changes
+ else if (durq .eq. 'l') then
+c
+c Set optional linebreak ties
+c
+ OptLineBreakTies = .true.
+ go to 52
+ else if (durq .eq. 'h') then
+c
+c Set flag to write header special on every page
+c
+ HeaderSpecial = .true.
+ go to 52
+ else
+ iccount = iccount-1
+ end if
+ else if (durq .eq. 'K') then
+c
+c Toggle keyboard rest placement flag
+c
+ kbdrests = .not.kbdrests
+ end if
+c if (durq .eq. 'N') then
+ if (index('NR',durq) .gt. 0) then
+c
+c Override default part names for scor2prt, or normal include file.
+c Just bypass rest of input line
+c
+ iccount = 128
+ else if (durq .ne. ' ') then
+ go to 27
+ end if
+ else if (charq .eq. 'K') then
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. 'i') then
+c
+c Normal, full-score key change and/or transposition
+c
+ num1 = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ num1 = num1*nint(fnum)
+c
+c On exit, durq='+','-'. But only need isig if after start, else done in pmxa
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ if (num1 .eq. 0) then
+c
+c Key change, not transposition.
+c
+ ipl(ivx,nnl(ivx)+1) = ibset(ipl(ivx,nnl(ivx)+1),28)
+ lastisig = isig
+ isig = nint(fnum)
+ if (durq .eq. '-') isig = -isig
+ isig = isig+idsig
+ if (ismidi) call midievent('k',isig,0)
+ else
+c
+c num1 .ne. 0, so transposition, so must be at beginning. isig came with K...
+c but was passed to pmxb through pmxtex.dat. isig0 comes from setup data
+c (signature before transposition). idsig must be added to future key changes.
+c
+ jv = 0
+ do while (jv .lt. nm)
+ jv = jv+1
+ iTransAmt(jv) = num1
+ end do
+ idsig = isig-isig0
+ end if
+ else
+c
+c Instrument specific transposition.
+
+ call GetiTransInfo(.false.,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+ end if
+ else if (charq .eq. '/') then
+ if (btest(iornq(ivx,nnl(ivx)+1),26)) then
+c
+c There was a hardspace followed by end of block. Remove it from the hardspace
+c list, store with shifts instead, set special bit. This code also at '|'
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),18)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udsp(nudsp)
+ nudsp = nudsp-1
+ iornq(ivx,nnl(ivx)+1) = ibclr(iornq(ivx,nnl(ivx)+1),26)
+ end if
+ call getchar(lineq,iccount,durq)
+c
+c Save ending note level:
+c
+ if (ivx .le. nv) then
+c
+c This is the first line of music on this staff. If previous block had only 1
+c voice, save last pitch from line 1 of prev. block to line 2, in case a
+c 2nd line is started just below
+c
+ if (.not.was2(iv)) ndlev(iv,2) = ndlev(iv,1)
+ was2(iv) = .false.
+ ndlev(iv,1) = lastlev
+ else
+c
+c This is the 2nd line of music on this staff.
+c
+ was2(iv) = .true.
+ ndlev(iv,2) = lastlev
+ end if
+ if (durq .eq. ' ' .and. iv.eq.nv) then
+c
+c End of input block
+c
+ loop = .false.
+ else
+c
+c Start a new line of music
+c
+ if (lenb0.ne.0 .and. firstgulp) lenbar = lenb0
+ nbars = 0
+ if (durq .eq. ' ') then
+c
+c New line of music is on next staff
+c
+ iv = iv+1
+ ivx = iv
+ else
+c
+c durq must be 2nd '/'. New line of music is on same staff. Set up for it
+c
+ ivx = nv+1
+ do 23 iiv = 1 , nv
+ if (nvmx(iiv) .eq. 2) ivx = ivx+1
+23 continue
+ nvmx(iv) = 2
+ ivmx(iv,2) = ivx
+ itsofar(ivx) = 0
+ nnl(ivx) = 0
+ nfb(ivx) = 0
+ nudoff(ivx) = 0
+ ndotmv(ivx) = 0
+ do 24 j = 1 , 200
+ irest(ivx,j) = 0
+ islur(ivx,j) = 0
+ nacc(ivx,j) = 0
+ iornq(ivx,j) = 0
+ ipl(ivx,j) = 0
+ mult(ivx,j) = 0
+24 continue
+c
+c Go back and lower the rests in voice "a" that don't have over-ridden heights
+c
+ do 26 j = 1 , nnl(iv)
+ if (btest(irest(iv,j),0) .and. nolev(iv,j).eq.0)
+ * nolev(iv,j) = -4
+26 continue
+ end if
+ end if
+ iccount = 128
+ else if (charq .eq. 'X') then
+c
+c 3rd arg is only for termination of group shifts. Use "max" to avoid zero index,
+c which only happens for normal X at block start, and we took special measures to
+c keep group shifts for crossing block boundaries.
+c
+ call getx(lineq,iccount,irest(ivx,max(1,nnl(ivx))),
+ * shifton,wheadpt,iornq(ivx,nnl(ivx)+1),ivx,
+ * irest(ivx,nnl(ivx)+1),itsofar(ivx),0,0,0,' ',ndoub)
+ else if (charq .eq. 'I') then
+c
+c Midi controls.
+c
+ call getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,.false.)
+ else if (charq .eq. 'M') then
+c
+c Macro action
+c
+ call getchar(lineq,iccount,charq)
+ if (index('RS',charq) .gt. 0) then
+c
+c Record or save a macro. Get the number of the macro.
+c
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ macuse = ibset(macuse,macnum)
+ if (charq .eq. 'R') then
+ call mrec1(lineq,iccount,ndxm)
+ else
+c
+c Save (Record but don't activate)
+c
+5 call mrec1(lineq,iccount,ndxm)
+ if (mrecord) then
+ call getbuf(lineq)
+ iccount = 0
+ go to 5
+ end if
+ iccount = iccount+ndxm+1
+ end if
+ else if (charq .eq. 'P') then
+c
+c Playback the macro
+c
+ call getchar(lineq,iccount,charq)
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ icchold = iccount
+ lnholdq = lineq
+ iccount = 128
+ ilmac = il1mac(macnum)
+ mplay = .true.
+ end if
+ else if (index(',.',charq) .gt. 0) then
+c
+c Continued rhythmic shortcut
+c
+ idotform = index('. ,',charq)
+ if (idotform .eq. 1) then
+c
+c Check for start of forced beam on 2nd member of dotform=1 shortcut
+c
+ if (fbon) then
+ if (t1fb(ivx,nfb(ivx)).eq.itsofar(ivx))
+ * t1fb(ivx,nfb(ivx)) =
+ * t1fb(ivx,nfb(ivx))+nodur(ivx,nnl(ivx))/2
+ end if
+c
+c Change duration of prior note
+c
+ itsofar(ivx) = itsofar(ivx)-nodur(ivx,nnl(ivx))
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*3/2
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ end if
+ idotform = idotform+1
+ numnum = 1
+ cdot = .true.
+ go to 1
+ end if
+ return
+ end
+ subroutine getorn(lineq,iccount,iornq,iornq0,ornrpt,noffseg,
+ * ip,ivx,noxtup,notcrd,nole)
+c
+c iornq: Main note. Do not alter if chord note, except turn on bit 23
+c iornq0: Store iorni + bit 23, in case of repeated ornaments
+c iorni: Internal use, 1st 21 bits of iornq or icrdorn, dep. on notcrd.
+c noffseg: horiz. offset for segno
+c nole: level of note w/ orn, used to ID the note/orn if there's a level shift.
+c
+
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comcb/ nbc,ibcdata(36)
+ character*1 charq,durq
+ character*128 lineq
+ logical ornrpt,negseg,noxtup,notcrd
+c
+c Bits 0-13: (stmgx+Tupf._), 14: Down fermata, was F, 15: Trill w/o "tr", was U
+c 16-18 Editorial sharp, flat, natural "oes,f,n"; 19-20: >^, 21 TBD
+c
+ call getchar(lineq,iccount,charq)
+ if (index('bc',charq) .gt. 0) then
+c
+c caesura or breath, handle specially and exit. Set up data in ibcdata(1...nbc)
+c ivx(0-3,28), ip(4-12),
+c vshift (vshift+32 in bits 13-18),
+c hshift (nint(10*vshift)+128 in bits 19-26)
+c bit 27 = 0 if caesura, 1 if breath
+c bit 28: 5th bit of ivx
+c
+ iornq = ibset(iornq,28)
+ nbc = nbc+1
+c ibcdata(nbc) = ivx+16*ip
+ ibcdata(nbc) = mod(ivx,16)+16*ip
+ if (ivx.ge.16) ibcdata(nbc) = ibset(ibcdata(nbc),28)
+ if (charq .eq. 'b') ibcdata(nbc) = ibset(ibcdata(nbc),27)
+ call getchar(lineq,iccount,durq)
+ if (index('+-',durq) .gt. 0) then
+c
+c We have a vertical shift, get it
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ if (durq .eq. '-') fnum=-fnum
+ call setbits(ibcdata(nbc),6,13,nint(32+fnum))
+ if (index('+-',charq) .gt. 0) then
+c
+c Horizontal shift, get it
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (charq .eq. '-') fnum=-fnum
+ call setbits(ibcdata(nbc),8,19,nint(10*fnum)+128)
+ end if
+ end if
+ return
+ end if
+c
+c Set signal on main note that some note at this time has ornament. ONLY used
+c in beamstrt to activate further tests for whether ihornb is needed.
+c
+ iornq = ibset(iornq,23)
+c
+c Isolate 21 bits defining exisiting ornaments
+c
+ if (notcrd) then
+ iorni = iand(4194303,iornq)
+ else
+ iorni = iand(4194303,icrdorn(ncrd))
+ end if
+ korn = index('stmgx+Tupf._)e:XXX>^',charq)
+ if (korn .ne. 15) iorni = ibset(iorni,korn)
+c
+c Note that korn=0 => charq='(', and we set bit 0. if "e" (14), alter later
+c as follows: korn=16-18 for sfn, and or 21 for bare ?.
+c When this if-block is done, korn will = bit# of actual ornament (unless "?").
+c
+ if (korn .eq. 15) then
+c
+cc Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-20 prev iornq
+c Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-21 prev iornq
+c
+c iorni = ior(iorni,iand(iornq0,1638383))
+ iorni = ior(iorni,iand(iornq0,3735535))
+ ornrpt = .false.
+ call getchar(lineq,iccount,durq)
+c
+c durq will be ' '
+c
+ else if (korn .eq. 14) then
+c
+c Editorial accidental
+c
+ call getchar(lineq,iccount,durq)
+c korn = 15+index('sfn',durq)
+ korn = 15+index('sfn?',durq)
+ if (korn .eq. 19) korn=21
+ iorni = ibset(ibclr(iorni,14),korn)
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. '?') then
+c
+c This is "oe[s|f|n]?". Set 21st bit also.
+c
+ iorni = ibset(iorni,21)
+ korn = korn+6
+ call getchar(lineq,iccount,durq)
+ end if
+c iorni = ibset(ibclr(iorni,14),korn)
+ else if (korn.eq.4 .and. noxtup) then
+c
+c segno. Check in pmxa for just 1/block & notcrd. Get horiz. offset in points
+c
+ noffseg = 0
+ negseg = .false.
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+c
+c Segno shift is specified
+c
+ if (durq .eq. '-') then
+ negseg = .true.
+ call getchar(lineq,iccount,durq)
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ noffseg = int(fnum)
+ if (negseg) noffseg = -noffseg
+ end if
+ else if (korn .eq. 7) then
+c
+c Trill. Check in pmxa for notcrd. Default is 1 noteskip long, with "tr"
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = ip
+ xnsktr(ntrill) = 1.
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 't') then
+c
+c Convert to new internal symbol for non-'"tr" trill
+c
+ korn = 15
+ iorni = ibset(ibclr(iorni,7),15)
+ call getchar(lineq,iccount,durq)
+ end if
+ if (index('0123456789.',durq) .gt. 0) then
+c
+c We have a number for the length
+c
+ call readnum(lineq,iccount,durq,xnsktr(ntrill))
+ end if
+ else if (korn.eq.10 .and. noxtup) then
+c
+c Fermata
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'd') then
+ korn = 14
+ iorni = ibset(ibclr(iorni,10),14)
+ call getchar(lineq,iccount,durq)
+ end if
+ else
+ call getchar(lineq,iccount,durq)
+ end if
+ if (index('+- :',durq) .eq. 0) then
+ print*,'Unexpected character at end of ornament: ',durq
+ call stop1()
+ end if
+ if (index('+-',durq) .gt. 0) then
+c
+c Shift ornament up or down
+c
+ nudorn = nudorn+1
+c
+c Set bit 25 in iorni as a signal. This may not really be necessary.
+c
+ iorni = ibset(iorni,25)
+c
+c Assemble info to put in kudorn(nudorn) Bits 0-7:ip, 8-11:ivx, 12-18:nolev,
+c 19-24: type of ornament to be shifted, 25-30: shift+32, 31:h-shft present
+c
+ xofforn = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iofforn = nint(xofforn*fnum)
+ kudorn(nudorn) = ip+ishft(mod(ivx,16),8)+ishft(nole,12)
+ * +ishft(korn,19)+ishft(iofforn+32,25)
+ ivxudorn(nudorn) = ivx
+ if (index('+-',durq) .gt. 0) then
+c
+c Horizontal shift
+c
+ kudorn(nudorn) = ibset(kudorn(nudorn),31)
+ xofforn = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ ornhshft(nudorn) = nint(xofforn*fnum)
+ end if
+ else if (durq .eq. ':') then
+c
+c Turn on repeated ornaments
+c
+ ornrpt = .true.
+c
+c Save the ornament value just set
+c
+ iornq0 = iorni
+ end if
+ if (notcrd) then
+ iornq = ior(iornq,iorni)
+ else
+ icrdorn(ncrd) = ior(icrdorn(ncrd),iorni)
+ end if
+ return
+ end
+ subroutine getpmxmod(global,includeq)
+c
+c If global=.true., checks for environment variable with path to pmx.mod.
+c Then, if variable exists and points to pmx.mod, insert lines from
+c pmx.mod into buffer
+c If global=.false., checks for existence of includeq and uses it.
+c
+c lenbuf0 = total length of bufq on entry
+c lbuf(i) = length of line (i)
+c nlbuf = number of lines stored in bufq
+c ilbuf = index of first line after setup stuff (on entry). In general, index of
+c next line to be sucked from buffer.
+c ilbufmod = counter for lines in pmx.mod as they are grabbed.
+c Starts at ilbuf. Points to position of next line after
+c pmx.mod stuff in bufq on exiting loop 1
+c ilbuff = transient counter for shifting operations
+c ipbuf = on entry, points to last character in setup stuff. In general, points
+c to last character of most recent line sucked from buffer.
+c ipbufmod = points to last character of most recent inserted line
+c from pmx.mod
+c
+ parameter (maxblks=4000,nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,fbon,issegno,isheadr,isvolt
+ character*(*)includeq
+ character*80 pmxmoddirq
+ character*128 lnholdq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ logical fexist,global
+ line1pmxmod = ilbuf
+ if (.not.global) then
+ inquire(file=includeq,EXIST=fexist)
+c
+c Transfer includeq to temporary char variable with known length
+c
+ pmxmoddirq = includeq
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ print*
+ write(15,'()')
+ if (.not.fexist) then
+ call printl('Could not find '//pmxmoddirq(1:lpmxmoddirq)
+ * //', checking further.')
+c
+c File named includeq doesn't not exist. Get directory from PMXMODDIR and
+c see if it's there
+c
+ call getenv('PMXMODDIR',pmxmoddirq)
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ if (lpmxmoddirq. gt. 0) then
+ pmxmoddirq = pmxmoddirq(1:lpmxmoddirq)//includeq
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ else
+ call printl(
+ * 'No other directory defined by PMXMODDIR, stopping')
+ call stop1()
+ end if
+ inquire(file=pmxmoddirq,EXIST=fexist)
+ if (.not.fexist) then
+ call printl('Could not find '//pmxmoddirq(1:lpmxmoddirq)
+ * //', stopping.')
+ call stop1()
+ end if
+ end if
+ call printl('Opening normal include file '
+ * //pmxmoddirq(1:lpmxmoddirq))
+ open(18,file=pmxmoddirq)
+ else
+c
+c Check for existence of pmx.mod
+c
+ call getenv('PMXMODDIR',pmxmoddirq)
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ if (lpmxmoddirq .eq. 0) return
+ pmxmoddirq = pmxmoddirq(1:lpmxmoddirq)//'pmx.mod'
+ lpmxmoddirq = lpmxmoddirq+7
+ inquire(file=pmxmoddirq,EXIST=fexist)
+ if (.not.fexist) return
+ call printl('Opening global include file '
+ * //pmxmoddirq(1:lpmxmoddirq))
+ open(18,file=pmxmoddirq(1:lpmxmoddirq))
+ end if
+ call printl('Adding include data')
+c
+c Read lines in from pmx.mod one at a time
+c
+ ipbufmod = ipbuf
+ lenbufmod = lenbuf0
+ do 1 ilbufmod = ilbuf , maxblks
+ read(18,'(a)',end=3)lnholdq
+c
+c A line was read. Slide all existing lengths from here forward ahead by 1
+c
+ do 2 ilbuff = nlbuf , ilbufmod , -1
+ lbuf(ilbuff+1) = lbuf(ilbuff)
+2 continue
+c
+c Get length of line from include file
+c
+ lenmodline = lenstr(lnholdq,128)
+ if (lenmodline .eq. 0) then
+c
+c Blank line. Make it a single blank with length 1
+c
+ lenmodline = 1
+ lnholdq = ' '
+ end if
+ lbuf(ilbufmod) = lenmodline
+ call printl(lnholdq(1:lenmodline))
+c
+c Insert new stuff into bufq
+c
+ bufq = bufq(1:ipbufmod)//lnholdq(1:lenmodline)//
+ * bufq(ipbufmod+1:lenbufmod)
+c
+c Update internal parameters
+c
+ ipbufmod = ipbufmod+lbuf(ilbufmod)
+ lenbufmod = lenbufmod+lbuf(ilbufmod)
+ nlbuf = nlbuf+1
+1 continue
+3 continue
+ call printl('Closing '//pmxmoddirq(1:lpmxmoddirq))
+ close(18)
+ linesinpmxmod = linesinpmxmod+ilbufmod-ilbuf
+ lenbuf0 = lenbufmod
+c
+c Fix Andre's error reporting problem 101211 leading to log(neg#) due
+c to nline being 2 bigger than it should be
+c
+ nline=nline-2
+c
+ return
+ end
+ subroutine getset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,npages,nsyst,musicsize,fracindent,istype0,
+ * inameq,clefq,sepsymq,pathnameq,lpath,isig0)
+ parameter (nm=24)
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ character*1 clefq(nm),sepsymq(nm)
+ character*40 pathnameq
+ character*79 inameq(nm)
+ character*128 lineq
+ logical istype0,newway,rename
+c
+c Get the first line
+c
+ iccount = 0
+9 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') go to 9
+ istype0 = lineq(1:3).eq.'---'
+ if (istype0) then
+c
+c Have TeX input until next line that starts with '---'. Save in scratch.
+c
+ open(17,status='SCRATCH')
+3 call getbuf(lineq)
+ if (lineq(1:3) .ne. '---') then
+ write(17,'(a)')lineq
+ go to 3
+ end if
+c
+c Force a new line read on first call to readin
+c
+ iccount = 128
+ end if
+c
+c Here, lineq is first line w/ numerical setup data.
+c
+ nv = nint(readin(lineq,iccount,nline))
+ noinst = nint(readin(lineq,iccount,nline))
+ newway = noinst.le.0
+ if (newway) noinst = -noinst
+ do 2 iinst = 1 , noinst
+c
+c Seve # of staves per inst in case later drop some inst's.
+c
+ if (newway) then
+c
+c Read in nvi for each instrument
+c
+ nsperi(iinst) = nint(readin(lineq,iccount,nline))
+ else if (iinst .gt. 1 ) then
+ nsperi(iinst) = 1
+ else
+ nsperi(iinst) = nv-noinst+1
+ end if
+ iiorig(iinst) = iinst
+ nspern(iinst) = nsperi(iinst)
+2 continue
+ mtrnuml = nint(readin(lineq,iccount,nline))
+ mtrdenl = nint(readin(lineq,iccount,nline))
+cc
+cc Kluge to make mtrdenl work
+cc
+c if (mtrdenl .eq. 1) then
+c mtrdenl = 2
+c mtrnuml = mtrnuml*2
+c end if
+ mtrnmp = nint(readin(lineq,iccount,nline))
+ mtrdnp = nint(readin(lineq,iccount,nline))
+ xmtrnum0 = readin(lineq,iccount,nline)
+c
+c Original key sig (before any trnasposition) in next position. Transposed
+c sig for topfile was transferred thru pmxtex.dat. Need isig0 for key
+c changes if transposed.
+c
+ isig0 = nint(readin(lineq,iccount,nline))
+ npages = nint(readin(lineq,iccount,nline))
+ nsyst = nint(readin(lineq,iccount,nline))
+ musicsize = nint(readin(lineq,iccount,nline))
+ fracindent = readin(lineq,iccount,nline)
+c
+c Next noinst non-comment lines are names of instruments.
+c
+ do 4 i = 1 , noinst
+5 call getbuf(inameq(i))
+ if (inameq(i)(1:1) .eq. '%') go to 5
+4 continue
+c
+c Mext non-comment line has nv clef names
+c
+6 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') go to 6
+ iv = 0
+ nvsofar = 0
+ do 1 jinst = 1 , noinst
+ nvsofar = nvsofar+nsperi(jinst)
+ do 10 ivi = 1 , nsperi(jinst)
+ iv = iv+1
+ clefq(iv) = lineq(iv:iv)
+ if (iv .eq. nvsofar) then
+ sepsymq(iv) = '&'
+ else
+ sepsymq(iv) = '|'
+ end if
+10 continue
+1 continue
+c
+c Mext non-comment line has path name
+c
+8 call getbuf(pathnameq)
+ if (pathnameq(1:1) .eq. '%') go to 8
+ lpath = index(pathnameq,' ')-1
+ return
+ end
+ function getsquez(n,ntot,space,tnote,to)
+ real*4 tnote(600),to(600)
+ common /comtol/ tol
+c
+c Get the squez factor by checking space against tgovern=minimum duration
+c of all notes sounding at time of n-th note in the list.
+c The starting time of base increment is to(n) and ending time is to(n)+space
+c Sounding notes are those that start at or before to(n) .and. end at or
+c after tend=to(n)+space
+c Since notes are ordered by increasing start times, as soon as we find one
+c that starts too late, we are done checking.
+c
+ tgovern = 1000.
+ tend = to(n)+space
+ do 1 in = 1 , ntot
+c
+c Since to() is ordered by start times, exit loop after first note that
+c starts later than note of interest.
+c
+
+ if (to(in) .gt. to(n)+tol) go to 2
+ if (to(in)+tnote(in) .gt. tend-tol) then
+c
+c If here, this note overlaps and must be tested.
+c
+ tgovern = min(tgovern,tnote(in))
+ end if
+1 continue
+2 continue
+ getsquez = space/tgovern
+ return
+ end
+ subroutine getx(lineq,iccount,irest,shifton,wheadpt,iornq1,ivx,
+ * irest1,itsofar,ntup,itup,nnodur,dotq,ndoub)
+ parameter(nm=24)
+c
+c Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol.
+c In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols.
+c Since during getnote phase time is integer itsofar, which is not updated
+c during xtups, we use itup and ntup to get actual time. On entry, ntup=0 if
+c not in xtup.
+c
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ logical shifton,colon,ess,number
+ character*128 lineq
+ character*1 charq,durq,dotq
+ colon = .false.
+ ess = .false.
+ number = .false.
+ nextbl = iccount+index(lineq(iccount:128),' ')-1
+ if (index(lineq(iccount:nextbl),'P') .gt. 0) then
+c
+c "Parts only", ignore entire symbol
+c
+ iccount = nextbl
+ return
+ end if
+1 call getchar(lineq,iccount,charq)
+ if (charq.eq.'B') then
+c
+c "Both parts and score," ignore character
+c
+ go to 1
+ else if (charq .eq. ':') then
+ colon = .true.
+ go to 1
+ else if (charq .eq. 'S') then
+ ess = .true.
+ go to 1
+ else if (index('+-.0123456789',charq) .gt. 0) then
+ number = .true.
+ if (charq.eq.'-') iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (charq .eq. '-') fnum = -fnum
+ if (durq .ne. 'p') then
+ fnum = fnum*wheadpt
+ iccount = iccount-1
+ end if
+ go to 1
+ end if
+c
+c charq must be blank, so done parsing
+c
+ if (.not.ess .and. .not.colon) then
+c
+c Ordinary hardspace. Goes before next note.
+c (Later, at "|" or "/", check for presence and switch to udoff if there!)
+c
+ nudsp = nudsp+1
+ iornq1 = ibset(iornq1,26)
+ udsp(nudsp) = fnum
+ tudsp(nudsp) = itsofar
+ if (ntup .gt. 0) tudsp(nudsp) = tudsp(nudsp)
+c * +float(itup-1)/ntup*ifnodur(nnodur,dotq)
+ * +float(itup-1+ndoub)/ntup*ifnodur(nnodur,dotq)
+ else if (.not.number) then
+c
+c Must be "X:" End a group offset.
+c
+ irest = ibset(irest,17)
+ shifton = .false.
+ return
+ else
+c
+c Only other possibility is start offset, "S" for single, ':' for multiple
+c
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = fnum
+ if (ess) then
+ irest1 = ibset(irest1,15)
+ else
+ irest1 = ibset(irest1,16)
+ shifton = .true.
+ end if
+ end if
+ return
+ end
+ function i1fnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ i1fnodur=1
+ else if (idur .eq. 3) then
+ i1fnodur=2
+ else if (idur .eq. 1) then
+ i1fnodur=4
+ else if (idur .eq. 8) then
+ i1fnodur=8
+ else if (idur .eq. 4) then
+ i1fnodur=16
+ else if (idur .eq. 2) then
+ i1fnodur=32
+ else if (idur .eq. 0) then
+ i1fnodur=64
+ else if (idur .eq. 16) then
+c
+c Only used for denominator of time signatures, not for notes
+c
+ i1fnodur=4
+ else if (idur .eq. 9) then
+ i1fnodur = 128
+ else
+ print*
+ print*,'You entered an invalid note-length value:',idur
+ call stop1()
+ end if
+ if (dotq .eq. 'd') i1fnodur = i1fnodur*3/2
+ return
+ end
+c integer*4 function longi(ishort)
+c integer*2 ishort
+c longi = ishort
+c return
+c end
+ function iashft(nacc)
+ integer*4 ias(6)
+ data ias /-1,1,0,0,-2,2/
+ iashft = ias(nacc)
+ return
+ end
+ function ifnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ ifnodur=1
+ else if (idur .eq. 3)then
+ ifnodur=2
+ else if(idur .eq. 1) then
+ ifnodur=4
+ else if(idur .eq. 8) then
+ ifnodur=8
+ else if(idur .eq. 4) then
+ ifnodur=16
+ else if(idur .eq. 2) then
+ ifnodur=32
+ else if(idur .eq. 0) then
+ ifnodur=64
+ else if(idur .eq. 9) then
+ ifnodur=128
+ else if (idur .eq. 16) then
+c
+c Only used for denominator of time signatures, not for notes
+c
+ ifnodur=4
+ else
+ print*,'You entered an invalid note value'
+ stop
+ end if
+ if (dotq .eq. 'd') ifnodur = ifnodur*3/2
+ return
+ end
+ function ifnolev(noq,oct,ntrans)
+ character*1 noq
+ integer oct
+ ifnolev = 7*oct+mod(ichar(noq)-92,7)+1+ntrans
+ return
+ end
+c subroutine report(nsdat,isdat1,isdat2)
+c integer*4 isdat1(202),isdat2(202)
+c write(*,'(a)')
+c * ' isd on? iv kv ip id ud1 ud2 ndx ivo iho lev crd lhd rhd'
+c do 1 isdat = 1 , nsdat
+c isdata = isdat1(isdat)
+c ionoff = igetbits(isdata,1,11)
+cc iv = iand(7,isdata)
+c iv = igetbits(isdata,5,13)
+c kv = igetbits(isdata,1,12)+1
+c ip = igetbits(isdata,8,3)
+c idcode = igetbits(isdata,7,19)
+c iud1 = igetbits(isdata,1,26)
+c iud2 = igetbits(isdata,1,27)
+c ndxslur = igetbits(isdata,4,28)
+c isdatb = isdat2(isdat)
+c ivo = igetbits(isdatb,6,6)-32
+c iho = igetbits(isdatb,7,12)-64
+c lev = igetbits(isdatb,7,19)
+c icrd = igetbits(isdatb,1,0)
+c lhd = igetbits(isdatb,1,1)
+c irhd = igetbits(isdatb,7,2)
+c write(*,'(17i4)')isdat,ionoff,iv,kv,ip,idcode,iud1,iud2,ndxslur,
+c * ivo,iho,lev,icrd,lhd,irhd
+c1 continue
+c print*
+c return
+c end
+ function igetbits(isdata,iwidbit,ishift)
+c
+c Extracts integer given by iwidbit bits of isdata, shifted by ishift, and
+c then added to ioff
+c
+ igetbits = iand(2**iwidbit-1,ishft(isdata,-ishift))
+ return
+ end
+ function igetvarlen(mmidi,icm,imidi,nbytes)
+c
+c Gets variable-length integer starting in mmidi at imidi+1. Returns nbytes.
+c
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi(0:nm,mv)
+ igetvarlen = 0
+ do 1 nbytes = 1 , 4
+ igetvarlen = 128*igetvarlen
+ * +iand(127,mmidi(icm,imidi+nbytes))
+c * +iand(127,longi(mmidi(icm,imidi+nbytes)))
+ if (.not.btest(mmidi(icm,imidi+nbytes),7)) return
+c if (.not.btest(longi(mmidi(icm,imidi+nbytes)),7)) return
+1 continue
+ print*,'Messup in igetvarlen'
+ call stop1()
+ end
+ logical function isdotted(nodur,ivx,ip)
+ parameter (nm=24)
+c
+c Function returns true if note is dotted or double-dotted.
+c Return false for any xtuplet.
+c
+ common /comtol/ tol
+ integer*4 nodur(nm,200)
+ if (nodur(ivx,ip) .eq. 0) then
+ isdotted = .false.
+ return
+ else if (ip .gt. 1) then
+ if (nodur(ivx,ip-1) .eq. 0) then
+ isdotted = .false.
+ return
+ end if
+ end if
+c
+c Ruled out all xtups, so is dotted or double-dotted if not a power of 2.
+c
+ isdotted =
+ * mod(alog(float(nodur(ivx,ip)))/.69314718+.5*tol,1.) .gt. tol
+ return
+ end
+ function isetvarlen(idur,nbytes)
+ isetvarlen = 0
+ itemp = idur
+ do 1 nbytes = 1 , 4
+ isetvarlen = isetvarlen + iand(itemp,127)*256**(nbytes-1)
+ itemp = ishft(itemp,-7)
+ if (itemp .gt. 0) then
+ isetvarlen = isetvarlen+2**(8*nbytes+7)
+ else
+ return
+ end if
+1 continue
+ print*,'Problem in function isetvarlen'
+ call stop1()
+ end
+ subroutine istring(i,string,len)
+c
+c Returns string with integer only if length is 1, otherwise enclosed in
+c brackets.
+c
+ character*(*) string
+ if (i .ne. 0) then
+ len = alog10(abs(i)*1.0001)+1
+ if (i .lt. 0) len = len+1
+ else
+ string = '0'
+ len = 1
+ return
+ end if
+ if (len .eq. 1) then
+ string = char(48+i)
+ else
+ string = '{'
+ write(string(2:1+len),'(i'//char(48+len)//')')i
+ string = string(1:len+1)//'}'
+ len = len+2
+ end if
+ return
+ end
+ function lenstr(string,n)
+ character*(*) string
+ do 1 lenstr = n , 1 , -1
+ if (string(lenstr:lenstr) .ne. ' ') return
+1 continue
+ lenstr = 0
+ return
+ end
+ function levrn(nolev,irest,iud,ncm,mult)
+c
+c Used for placing numbers in xtups. Returns note level if not a rest,
+c else level of top or bottom of rest symbol opposite beam. iud=-1 for upstm.
+c
+ logical btest
+ if (.not.btest(irest,0)) then
+ levrn = nolev
+ else
+c
+c Restlevel is -4, 0, 2 or 100+offset. First get offset from 1-voice default.
+c
+ if (mult .gt. 0) then
+ if (mult .eq. 2) then
+ ioff = -1+2*iud
+ else if (mult .ne. 4) then
+ ioff = iud*mult
+ else
+ ioff = 1+4*iud
+ end if
+ else
+c
+c May need to futz with this later for non-beamed xtups (quarter, half rests)
+c
+ ioff = iud*2
+ end if
+ levrn = mod(nolev+20,100)-20+ncm+ioff
+ endif
+ return
+ end
+ function lfmt1(x)
+c
+c Computes total length of an "f" format with one decimal place.
+c First round to nearest 0.1
+c
+ if (abs(x) .lt. .001) then
+ lfmt1 = 2
+ else
+ y = sign(.1*int(10*abs(x)+.5),x)
+ lfmt1 = int(log10(1000*abs(y)+.001))
+ if (y .lt. 0) lfmt1 = lfmt1+1
+ end if
+ return
+ end
+ subroutine LineBreakTies(isdat1,isdat2,isdat3,isdat4,nsdat,
+ * ispstie,sepsymq)
+ parameter (nm=24)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comoct/ noctup
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ logical fontslur,WrotePsslurDefaults,btest,upslur,ispstie,tie
+ character*1 udq,chax,sepsymq(nm)
+ character*8 noteq
+ character*128 notexq
+c
+c This is called twice from pmxb after having input an entire block, before
+c making a bar that starts a new system. So nsdat reflects all slur starts
+c and stops in new block, while listslur, which is only set when bars are
+c made, reflects only open slurs from the old block. So we must check
+c listslur to find open ties, not all nsdat.
+c First of two calls (ispstie=.false. on entry) terminates tie at end of line.
+c Second (ispstie=.true. on entry) restarts tie at start of new line. Only
+c need data from original tie-start for both of these. Tie/slur data from
+c closing of full tie are not used except for shape alterations.
+c
+c do 1 ndx = 0 , 11
+ do 1 ndx = 0 , 23
+ if (btest(listslur,ndx)) then
+c
+c Slur or tie with index ndx is open. Find the one with right ndxb, see if tie
+c
+ do 2 isdat = 1 , nsdat
+c if (igetbits(isdat1(isdat),4,28) .ne. ndx) go to 2 ! Wrong index
+ if (igetbits(isdat1(isdat),4,28)
+ * +16*igetbits(isdat1(isdat),1,18) .ne. ndx) go to 2 ! Wrong index
+ if (.not.btest(isdat1(isdat),11)) go to 2 ! Bypass if stop
+ if (btest(isdat2(isdat),3)) go to 3 ! "st"
+ idcode = igetbits(isdat1(isdat),7,19)
+ if (idcode.eq.1) go to 3 ! "t"
+ tie = .false.
+ go to 5
+2 continue
+ end if
+ go to 1
+3 continue
+ tie = .true.
+5 continue
+c
+c A slur or tie is open, with index ndx
+c
+ iv = igetbits(isdat1(isdat),5,13)
+ kv = igetbits(isdat1(isdat),1,12)+1
+ udq = 'd'
+ if (btest(isdat1(isdat),27)) udq='u'
+ notexq = chax(92)//'znotes'
+ lnote = 7
+ do 4 iiv = 1 , iv-1
+ notexq = notexq(1:lnote)//sepsymq(iiv)
+ lnote = lnote+1
+4 continue
+ if (kv .eq. 2) then
+ notexq = notexq(1:lnote)//chax(92)//'nextvoice'
+ lnote = lnote+10
+ end if
+c
+c Compute horiz and vert offsets
+c
+c nolev = igetbits(isdat2(isdat),7,19)
+ islhgt = igetbits(isdat3(isdat),8,14)
+ ilb12 = 0
+ if (ispstie) ilb12 = 1
+ ivoff = igetbits(isdat4(isdat),6,ilb12*16)-32
+ if (ivoff .eq. -32) ivoff = 0
+C nolev = nolev+ivoff
+ islhgt = islhgt+ivoff
+ ihoff = (igetbits(isdat4(isdat),7,ilb12*16+6)-64) ! This is 10X hoff
+ if (ihoff .eq. -64) ihoff = 0
+c
+c Add starting stuff for command
+c
+ if (.not.ispstie) then ! End 1st segment
+ notexq = notexq(1:lnote)//chax(92)//'roffset{'
+ lnote = lnote+9
+c hoff = ihoff*.1-.5
+c hoff = ihoff*.1-.8
+ hoff = ihoff*.1-.4
+ if (hoff .lt. 0) then
+ hoff = -hoff
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ call writflot(hoff,notexq,lnote)
+ notexq = notexq(1:lnote)//'}{'
+ lnote = lnote+2
+ else
+ notexq = notexq(1:lnote)//chax(92)//'off{-'
+ * //chax(92)//'afterruleskip}'
+ lnote = lnote+21
+c
+c 091025 add dotting for 2nd segment if needed
+c
+ if (btest(isdat2(isdat),4)) then
+ notexq = chax(92)//'dotted'//notexq(1:lnote)
+ lnote = lnote+7
+ end if
+ end if
+ if (ispstie .and. tie) then
+ notexq = notexq(1:lnote)//chax(92)//'tieforis'//udq
+ lnote = lnote+10
+ end if
+ if (btest(isdat3(isdat),0)) then
+c
+c Curvature tweak on termination of 1st seg
+c
+ imid = igetbits(isdat3(isdat),6,2)-32
+c
+c Invoke macro (from pmx.tex) that redefines \tslur as r'qd. mapping:
+c Abs(imid) Postscript slur type
+c 1 f
+c 4 h
+c 5 H
+c 6 HH
+c
+ notexq = notexq(1:lnote)//chax(92)//'psforts'//chax(48+imid)
+ lnote = lnote+9
+c
+c Zero out the flag in case there's a different curv on term of 2nd,
+c
+ isdat3(isdat) = ibclr(isdat3(isdat),0)
+ end if
+c
+c Add the command name
+c
+ if (ispstie) then
+ notexq = notexq(1:lnote)//chax(92)//'is'//udq
+ lnote = lnote+4
+ else if (tie) then
+ notexq = notexq(1:lnote)//chax(92)//'ttie'
+ lnote = lnote+5
+ else
+ notexq = notexq(1:lnote)//chax(92)//'tslur'
+ lnote = lnote+6
+ end if
+c
+c Add index
+c
+c if (11-ndx .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndx)
+c lnote = lnote+1
+c else
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndx)//'}'
+c lnote = lnote+4
+c end if
+ if (23-ndx .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndx)
+ lnote = lnote+1
+ else if (23-ndx .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndx)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndx)//'}'
+ lnote = lnote+4
+ end if
+ if (ispstie .or. .not.tie) then
+c
+c Add note name for slur height
+c
+ noctup = 0
+ ncm = igetbits(isdat3(isdat),8,22)
+ if (ncm .eq. 23) noctup = -2
+c call notefq(noteq,lnoten,nolev,ncm)
+ call notefq(noteq,lnoten,islhgt,ncm)
+ notexq = notexq(1:lnote)//'{'//noteq(1:lnoten)//'}'
+ lnote = lnote+1+lnoten+1
+ end if
+ if (ispstie) then
+c
+c Horizontal shift start of new thing
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+c ihoff = ihoff-13
+ if (tie) then
+ ihoff = ihoff-12
+ else
+ ihoff = ihoff-7
+ end if
+ if (ihoff .lt. 0) then
+ ihoff = -ihoff
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ call writflot(ihoff*.1,notexq,lnote)
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+c
+c Add closing stuff
+c
+ if (ispstie) then
+ notexq = notexq(1:lnote)//chax(92)//'off{'
+ * //chax(92)//'afterruleskip}'
+ lnote = lnote+20
+ else
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ notexq = notexq(1:lnote)//chax(92)//'en%'
+ lnote = lnote+4
+ write(11,'(a)')notexq(1:lnote)
+1 continue
+ ispstie = .not.ispstie
+ return
+ end
+ subroutine littex(islur,nnl,iv,topmods,lineq,iccount)
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ integer islur(nm,200)
+ logical topmods
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,merge
+ character*128 lineq,litq
+ character*20 voltxtq
+ character*1 durq,chax
+ merge = .false.
+ if (nlit .gt. 0) then
+ merge = iv.eq.ivlit(nlit) .and. nnl.eq.iplit(nlit)
+ end if
+ nlit = nlit+1
+ ivlit(nlit) = iv
+ iplit(nlit) = nnl
+ itype = 1
+17 call getchar(lineq,iccount,durq)
+ if (durq .eq. chax(92)) then
+ itype=itype+1
+ go to 17
+ end if
+ litq(nlit) = chax(92)//durq
+ lenlit(nlit) = 2
+18 call getchar(lineq,iccount,durq)
+ if (durq.eq.chax(92)) then
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+c
+c Starting a new tex command within the string
+c
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))//chax(92)//durq
+ lenlit(nlit) = lenlit(nlit)+2
+ go to 18
+ end if
+ else
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))//durq
+ lenlit(nlit) = lenlit(nlit)+1
+ go to 18
+ end if
+c
+c If here, just read backslash-blank so string is done
+c
+ if (itype .eq. 1) then
+ islur(iv,nnl) = ibset(islur(iv,nnl),16)
+ if (merge) then
+c
+c There are 2 separate strings on the same note, so merge them.
+c
+ nlit = nlit-1
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))
+ * //litq(nlit+1)(1:lenlit(nlit+1))
+ lenlit(nlit) = lenlit(nlit)+lenlit(nlit+1)
+ if (lenlit(nlit) .gt. 128) then
+ print*
+ print*,
+ * 'Merged type-1 TeX strings longer than 128 characters'
+ write(15,'(/,a)')
+ * 'Merged type-1 TeX strings longer than 128 characters'
+ call stop1()
+ end if
+ end if
+ else
+ if (itype .eq. 3) then
+c
+c Write the string NOW
+c
+ if (islast)
+ * write(11,'(a)')litq(nlit)(1:lenlit(nlit))//'%'
+ else
+c
+c Must go at top
+c
+ if (.not.topmods) then
+ topmods = .true.
+ open(16,status='SCRATCH')
+ end if
+c
+c Must write '%' here rather than later, in case string ends with blank.
+c
+ write(16,'(a)')litq(nlit)(1:lenlit(nlit))//'%'
+ end if
+ nlit = nlit-1
+ end if
+ return
+ end
+ function llen(strq,n)
+ character*129 strq
+ do 1 llen = n , 0 , -1
+ if (strq(llen:llen) .ne. ' ') return
+1 continue
+ end
+ function log2(n)
+c
+c 5/25/08 Modify to allow more slurs
+c
+c log2 = alog(1.*n)/0.6931472+.0001
+c log2 = dlog(1.d0*n)/0.693147181d0+.00000001d0
+ log2 = dlog(1.d0*n)/0.693147181d0+.00000002d0
+ return
+ end
+ subroutine logbeam(numnew,nip1,nip2)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq,ulfq,ulfbq
+ logical beamon,firstgulp,figbass,figchk,isfig,isxtup,btest,
+ * autofbon
+ ibm1(ivx,numnew) = nip1
+ ibm2(ivx,numnew) = nip2
+ numnow = numnew
+ if (numnew .gt. 1) then
+c
+c If it starts before any others, must put it in order
+c
+ do 11 ib = numnew-1 , 1 , -1
+ if (ibm1(ivx,ib) .lt. nip1) go to 12
+ ibm1(ivx,ib+1) = ibm1(ivx,ib)
+ ibm2(ivx,ib+1) = ibm2(ivx,ib)
+ ulq(ivx,ib+1) = ulq(ivx,ib)
+ ibm1(ivx,ib) = nip1
+ ibm2(ivx,ib) = nip2
+ numnow = ib
+11 continue
+12 continue
+ end if
+ sum = 0.
+c
+c Beam has non-xtup within
+c
+ nrests = 0
+ isxtup = .false.
+ do 9 iip = nip1 , nip2
+ if (btest(islur(ivx,nip1),21)) then
+c
+c Forced multiplicity
+c
+c mult(ivx,iip) = igetbits(islur(ivx,nip1),3,22)
+ call setbits(mult(ivx,iip),4,0,
+ * igetbits(islur(ivx,nip1),3,22)+8)
+ else if (.not.isxtup) then
+ if (nodur(ivx,iip) .gt. 0) then
+c mult(ivx,iip) = 4-log2(nodur(ivx,iip))
+ call setbits(mult(ivx,iip),4,0,4-log2(nodur(ivx,iip))+8)
+ else
+c
+c Start xtup within forced beam
+c
+ isxtup = .true.
+ iip1 = iip
+ end if
+ else if (isxtup .and. nodur(ivx,iip).gt.0) then
+c
+c End of xtup within forced beam. Must count doubled notes
+c
+ ndoub = 0
+ do 1 iiip = iip1 , iip
+ if (btest(nacc(ivx,iiip),18)) ndoub = ndoub+1
+1 continue
+ multx = int(10.5+2.929+(0.952*alog(1.+iip-iip1+ndoub)-
+ * alog(nodur(ivx,iip)/2.))/0.69315)-10
+ do 74 iiip = iip1 , iip
+c mult(ivx,iiip) = multx
+ call setbits(mult(ivx,iiip),4,0,multx+8)
+c
+c Note the following still works after making mult only the 1st 4 bits.
+c
+ if (btest(nacc(ivx,iiip),18))
+ * mult(ivx,iiip) = mult(ivx,iiip)-1
+ if (btest(nacc(ivx,iiip),19)) then
+ mult(ivx,iiip) = mult(ivx,iiip)+1
+ else if (iiip .gt. 1) then
+ if (btest(nacc(ivx,iiip-1),19))
+ * mult(ivx,iiip) = mult(ivx,iiip)+1
+ end if
+74 continue
+ isxtup = .false.
+ end if
+ if (btest(irest(ivx,iip),0)) then
+ nrests = nrests+1
+ else
+ sum = sum+nolev(ivx,iip)
+ end if
+9 continue
+c
+c Set beam up-down-ness
+c
+ if (ifb.gt.0 .and. ulfbq(ivx,max(1,ifb)).ne.'x') then
+ if (ulfbq(ivx,ifb) .eq. 'f') then
+c
+c Get default, then trade "l" and "u"
+c
+ ulq(ivx,numnow) = char(225-ichar(
+ * ulfq(sum/(nip2-nip1+1-nrests),ncmid(iv,nip1))))
+ else
+ ulq(ivx,ifb) = ulfbq(ivx,ifb)
+ end if
+c
+c This probably works only because forced beams are done first, so they
+c don't have to be re-sorted within each voice. ????
+c
+ else if (nvmx(iv) .eq. 2) then
+c
+c Multi-voice per staff
+c
+ if (ivx .le. nv) then
+ ulq(ivx,numnow) = 'l'
+ else
+ ulq(ivx,numnow) = 'u'
+ end if
+ else
+c
+c Defaults
+c
+ ulq(ivx,numnow) =
+ * ulfq(sum/(nip2-nip1+1-nrests),ncmid(iv,nip1))
+ end if
+ return
+ end
+ subroutine m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+c
+c This is called when (a) macro recording is just starting and
+c (b) at the start of a new line, if recording is on
+c
+ parameter (maxblks=4000)
+ character*128 lineq,lnholdq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ logical mrecord,mplay,endmac
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ lbuf(1) = lbuf(1)
+ if (.not.mrecord) then
+c
+c Starting the macro
+c
+ ip1mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount
+ il1mac(macnum) = ilbuf-1
+ ic1mac(macnum) = iccount
+ mrecord = .true.
+ end if
+ if (iccount .lt. 128) then
+ ndxm = index(lineq(iccount+1:128),'M')
+ if (ndxm .gt. 0) ndxm = ntindex(lineq(iccount+1:128),'M',
+ * 128-iccount)
+ if (ndxm .gt. 0) then
+c
+c This line ends the macro.
+c
+ if (lineq(iccount+ndxm+1:iccount+ndxm+1) .ne. ' ') then
+ call errmsg(lineq,iccount+ndxm+1,ibarcnt-ibaroff+nbars+1,
+ * 'Improper macro termination!')
+ call stop1()
+ end if
+ ip2mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount+ndxm
+ il2mac(macnum) = ilbuf-1
+ mrecord = .false.
+ end if
+ end if
+ return
+ end
+ subroutine make1bar(ibmrep,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart)
+ parameter (nm=24,mv=24576)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*10 figq
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig,bar1syst
+ common /comeskz2/ eskz2(nm,200)
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /combeam/ ibmtyp
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,autofbon
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ integer cnn(nm),istart(80),istop(80),nxtnow(nm),ifbnow(nm),
+ * numbms(nm),mapfb(16)
+ real*4 xit(nm),t1xtup(20),tstart(80),squez(80)
+ character*1 ulfbq
+ character*79 inameq
+ character*20 voltxtq
+ common /comoct/ noctup
+ character*80 headrq,lowerq
+ logical cwrferm
+ common /comcwrf/ cwrferm(nm)
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ logical lower,cwrest(nm),vxtup,flgndb,btest,upslur,
+ * infbmx(nm),lowdot,inxtup(nm),drawbm
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comstart/ facmtr
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+c
+c Above are factors for grace note, clef spacing. (fraction of wheadpt)
+c In 1.04, moved to block data subprogram
+c
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comtol/ tol
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,fontslur,
+ * WrotePsslurDefaults
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comntot/ ntot
+ if (ismidi) then
+c
+c Initialize for this bar the accidental counter for the midi file.
+c naccim(icm) = # of accidentals from earlier in the bar
+c
+ do 45 iv = 1 , nv
+ do 45 kv = 1 , nvmx(iv)
+ naccim(midchan(iv,kv)) = 0
+45 continue
+ end if
+c
+c Time from start of gulp to end of bar, used with forced beams
+c
+ tglp2 = lenb0+ibar*lenb1
+ if (lenb0 .gt. 0) tglp2 = tglp2-lenb1
+ tglp1 = tglp2-lenbar
+c
+c infbmx will only be true if in xtup that is NOT in explicit forced beam.
+c
+ do 1 iv = 1 , nv
+ do 1 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cwrest(ivx) = .false.
+ infbmx(ivx) = .false.
+ inxtup(ivx) = .false.
+ if (ibar .gt. 1) then
+ nn(ivx) = nib(ivx,ibar)-nib(ivx,ibar-1)
+ else
+ nn(ivx) = nib(ivx,ibar)
+ end if
+1 continue
+c
+c initialize list note counter, time(iv), curr. note(iv). The loop to 4
+c ONLY initializes each voice.
+c
+ in = 1
+ nxtup = 0
+ narp = 0
+ do 4 iv = 1 , nv
+ do 4 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cwrferm(ivx) = .false.
+ cnn(ivx) = 1
+ ivxo(in) = ivx
+ ipo(in) = cnn(ivx)
+ tnote(in) = fnote(nodur,ivx,1,nacc)
+ to(in) = 0.
+ xit(ivx) = tnote(in)
+c
+c Note that xit(ivx) is to END of note in voice, but it1xtup is start time.
+c
+ if (nodur(ivx,ipo(in)) .eq. 0) then
+c
+c First note of xtuplet at start of bar in voice ivx.
+c
+ nxtup = nxtup+1
+ nxtnow(ivx) = nxtup
+ inxtup(ivx) = .true.
+ t1xtup(nxtup) = 0.
+c
+c Xtup at start of bar. If no explicit forced beam, start one, set
+c signal infbmx, and save number ifbnow for use at termination.
+c
+ if (nfb(ivx) .gt. 0) then
+ do 60 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c No explicit fb here; so exit loop and insert one.
+c
+ go to 61
+ else if (t1fb(ivx,ifb) .lt. tglp1+xit(ivx)+tol .and.
+ * t2fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c IS explicit fb here; must NOT insert one
+c
+ go to 62
+ end if
+60 continue
+ end if
+61 continue
+c
+c If here, xtup isn't in explicit fb, so must insert one
+c
+ infbmx(ivx) = .true.
+ call addfb(nfb,ivx,t1xtup(nxtup)+
+ * tglp1,t1fb,t2fb,ulfbq,ifbadd)
+ ifbnow(ivx) = ifbadd
+ end if
+62 continue
+ if (abs(xit(ivx)-lenbar) .lt. tol) xit(ivx) = 1000.
+ in = in+1
+4 continue
+c
+c Build the list: This is a manual loop starting at 5
+c
+5 continue
+c
+c Determine which voice comes next from end of notes done so far.
+c tmin is the earliest ending time of notes done so far
+c
+ tmin = 1000.
+ do 6 iiv = 1 , nv
+ do 6 kv = 1 , nvmx(iiv)
+ iivx = ivmx(iiv,kv)
+ tminn = min(tmin,xit(iivx))
+ if(tminn .lt. tmin-tol) then
+ tmin = tminn
+ ivx = iivx
+ end if
+6 continue
+ if (abs(tmin-1000.) .lt. tol) go to 7
+ ivxo(in) = ivx
+ cnn(ivx) = cnn(ivx)+1
+ ipo(in) = cnn(ivx)
+ to(in) = tmin
+c
+c Check if this voice is done
+c
+ tnote(in) = fnote(nodur,ivx,cnn(ivx),nacc)
+ if (cnn(ivx) .eq. nn(ivx)) then
+ xit(ivx) = 1000.
+ else
+ xit(ivx) = xit(ivx)+tnote(in)
+ end if
+c
+c Flag xtups
+c
+ if (nodur(ivx,cnn(ivx)) .eq. 0) then
+ if (.not.inxtup(ivx)) then
+c
+c First note of xtup, not at start of bar.
+c
+ nxtup = nxtup+1
+ nxtnow(ivx) = nxtup
+ inxtup(ivx) = .true.
+ t1xtup(nxtup) = xit(ivx)-tnote(in)
+c
+c (Note: can't be on last note in voice, so xit(ivx) <> 1000)
+c Put xtuplet in a forced beam if not already in forced beam
+c
+ if (nfb(ivx) .gt. 0) then
+ do 70 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c NO explicit bm; put one in
+c
+ go to 71
+ else if (t1fb(ivx,ifb) .lt. tglp1+xit(ivx)+tol .and.
+ * t2fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c IS explicit bm. Don't put one
+c
+ go to 72
+ end if
+70 continue
+ end if
+71 continue
+c
+c If here, no explicit bm, so put one in
+c
+ infbmx(ivx) = .true.
+ call addfb(nfb,ivx,t1xtup(nxtup)+tglp1,
+ * t1fb,t2fb,ulfbq,ifbadd)
+ ifbnow(ivx) = ifbadd
+ end if
+72 continue
+ else if (inxtup(ivx)) then
+c
+c This test is sufficient because already know nodur>0
+c
+ inxtup(ivx) = .false.
+ if (infbmx(ivx)) then
+c
+c Xtup is in auto-forced beam, so end it
+c
+ t2fb(ivx,ifbnow(ivx)) =
+ * t1xtup(nxtnow(ivx))+nodur(ivx,cnn(ivx))+tglp1
+ infbmx(ivx) = .false.
+ end if
+ end if
+ if (btest(irest(ivxo(in),ipo(in)),24) .or.
+ * btest(irest(ivxo(in),ipo(in)),30)) then
+c
+c For staff jumped beam, flag the first note (lowest voice) at same time.
+c Later will start new notes group here.
+c
+ inj = in
+ if (ivxo(in) .gt. 1) then
+ do 40 iin = in-1 , 1 , -1
+ if (to(iin)+tol .lt. to(in)) go to 41
+ if (abs(to(iin)-to(in)) .lt. tol) then
+ inj = iin
+ go to 40
+ end if
+40 continue
+ end if
+41 continue
+ irest(ivxo(inj),ipo(inj)) = ibset(irest(ivxo(inj),ipo(inj)),29)
+ end if
+ in = in+1
+ go to 5
+7 continue
+ ntot = in-1
+ do 8 in = 1 , ntot-1
+ tno(in) = to(in+1)-to(in)
+8 continue
+ tno(ntot) = tnote(ntot)
+c
+c Debug writes
+c
+c write(*,'()')
+c write(*,'(a)')' Greetings from PMXB'
+c write(*,'(16i5)')(ivxo(in),in=1,ntot)
+c write(*,'(16i5)')(ipo(in),in=1,ntot)
+c write(*,'(16f5.1)')(to(in),in=1,ntot)
+c write(*,'(16f5.1)')(tno(in),in=1,ntot)
+c write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot)
+c write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot)
+c
+c Done w/ list. Loop for parsing into note blocks:
+c
+ ib = 1
+ istart(1) = 1
+ space(1) = 0.
+ in = 1
+c
+c A manual loop to set space(ib) and istop(ib)
+c
+9 continue
+
+ ivx = ivxo(min(in+1,ntot))
+ ip = ipo(min(in+1,ntot))
+ isl = islur(ivx,ip)
+ if (in.eq.ntot .or. ((ivx.eq.1 .and.
+ * (iand(isl,67109216).gt.0 .or. btest(ipl(1,ip),28)
+c * .or. ornq(1,ip).eq.'g')) .or. btest(isl,15) )) then
+c Bits 1-13: stmgx+Tupf._)
+c 14: Down fermata, was F
+c 15: Trill w/o "tr", was U
+ * .or. btest(iornq(1,ip),4))) .or. btest(isl,15) )
+c
+c Checking for start of 2nd part of jumped beam
+c
+ * .or. btest(irest(ivx,ip),29) ) then
+c
+c Bar end, segno, int. rpt or sig change, clef,end of 1st part of jumped beam;
+c flow out of if-loop and into block-wrapup
+c
+c 10/18/97: Problem with clef alignment. Got isl{15} set on lowest-numbered
+c voice, but it wasn't first in the list at the same time. So check if
+c prior notes in list have same time
+c 5/25/98: This stuff causes trouble with just "c2 Ct c", maybe when clef
+c changes on last note in the list?
+c
+ if (btest(isl,15) .and. in.lt.ntot) then
+ do 50 iin = in , 1 , -1
+ if (tno(iin) .gt. tol) then
+ in = iin
+ islur(ivx,ip) = ibclr(islur(ivx,ip),15)
+ islur(ivxo(in+1),ipo(in+1)) =
+ * ibset(islur(ivxo(in+1),ipo(in+1)),15)
+ go to 51
+ end if
+50 continue
+51 continue
+ end if
+ if (space(ib) .lt. tol) then
+ space(ib) = tno(in)
+ squez(ib) = 1.
+ end if
+ istop(ib) = in
+ else if (space(ib) .lt. tol) then
+c
+c space hasn't been set yet, so tentatively set:
+c
+ space(ib) = tno(in)
+ if (space(ib) .lt. tol) then
+ in=in+1
+ else
+ squez(ib) = getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ end if
+ go to 9
+ else if (tno(in+1) .lt. tol) then
+c
+c This is not the last note in the group, so
+c
+ in = in+1
+ go to 9
+ else if (abs(tno(in+1)-space(ib)) .lt. tol) then
+ xsquez = getsquez(in+1,ntot,space(ib),tnote,to)
+ if (abs(xsquez-squez(ib)) .lt. tol) then
+c
+c Keep spacing the same, update tentative stop point
+c
+ in = in+1
+ istop(ib) = in
+ go to 9
+ end if
+ end if
+c
+c At this point istart and istop are good, so finalize block
+c
+ tstart(ib) = to(istart(ib))
+ if (istop(ib) .eq. ntot) go to 15
+ ib = ib+1
+ istart(ib) = istop(ib-1)+1
+ in = istart(ib)
+c
+c Set tentative block space and squeeze-factor for upcoming block
+c
+ space(ib) = tno(in)
+ if (space(ib).gt.tol)
+ * squez(ib)= getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ go to 9
+15 continue
+ nb = ib
+c
+c Invert the list of places into ipl(0-7), making it easier to analyze a voice
+c
+ do 13 in = 1 , ntot
+c
+c ??? This may fix extra \loff's (bit 8 of ipl) in measures with >255 notes.
+c
+c ipl(ivxo(in),ipo(in)) = ior(ipl(ivxo(in),ipo(in)),in)
+ ipl2(ivxo(in),ipo(in)) = in
+13 continue
+c
+c Compute elemskips from start of bar to each note in the bar, for beam slopes
+c
+ eskzb = 0.
+ ib = 1
+ do 30 in = 1 , ntot
+ if (in .eq. istart(ib)) then
+ deskb = squez(ib)*feon(space(ib)/squez(ib))
+ else if (tno(in-1) .gt. tol) then
+ eskzb = eskzb+deskb
+ end if
+ eskz(ivxo(in),ipo(in)) = eskzb
+ eskz2(ivxo(in),ipo(in)) = eskzb
+ if (in .eq. istop(ib)) then
+ eskzb = eskzb+deskb
+ ib = ib+1
+ end if
+30 continue
+c
+c Debug writes
+c
+c print*
+c write(*,'(16f5.1)')(eskz(ivxo(in),ipo(in)),in=1,ntot)
+c print*,'PMXB has now got blocks'
+c write(*,'(16i5)')(istart(ib),ib=1,nb)
+c write(*,'(16i5)')(istop(ib),ib=1,nb)
+c write(*,'(16f5.1)')(space(ib),ib=1,nb)
+c write(*,'(16f5.1)')(squez(ib),ib=1,nb)
+c write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot)
+cc write(*,'(26i3)')(iand(islur(ivxo(in),ipo(in)),30720)/2048,
+c * in=1,ntot)
+c write(*,'(1x,26a3)')(ornq(ivxo(in),ipo(in)),in=1,ntot)
+c
+c
+c Analyze for beams.
+c
+ do 20 iv = 1 , nv
+ do 20 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ numbms(ivx) = 0
+ mapfb(1) = 0
+ mapfb(2) = 0
+ mapfb(3) = 0
+ mapfb(4) = 0
+c
+c First forced beams.
+c
+ if (nfb(ivx) .gt. 0) then
+c
+c tglp2 is time from start of gulp to end of current bar.
+c
+ nfbbar = 0
+ do 80 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb).gt.tglp2-tol) go to 81
+ nfbbar = nfbbar+1
+ numbms(ivx) = numbms(ivx)+1
+ numnew = numbms(ivx)
+c
+c Times from beginning of bar
+c
+ itbb1 = int(t1fb(ivx,ifb)-tglp1+tol)
+ itbb2 = int(t2fb(ivx,ifb)-tglp1+tol)
+ do 83 ip = 1 , nn(ivx)
+ if (int(to(ipl2(ivx,ip))+tol) .eq. itbb1) then
+ nip1fb = ip
+ do 84 ip1 = ip , nn(ivx)
+ inip1 = ipl2(ivx,ip1)
+ if (abs(to(inip1)+tnote(inip1)-itbb2) .lt. tol) then
+ nip2fb = ip1
+ itbb3 = itbb2-2
+ go to 85
+ end if
+84 continue
+ end if
+83 continue
+ print*
+ print*,'Timing problem w/ forced beams'
+ write(15,'(/a)')'Timing problem w/ forced beams'
+85 continue
+ call logbeam(numnew,nip1fb,nip2fb)
+c
+c Set up mapfb for forced beam just logged:
+c
+ ib1 = itbb1/2
+ ib2 = itbb3/2
+ ibrep = lenbar/ibmrep/2
+ do 86 irep = 1 , ibmrep
+ ib1now = max(0,ib1-(irep-1)*ibrep)
+ ib2now = min(irep*ibrep-1,ib2-(irep-1)*ibrep)
+ mapnow = 0
+ do 87 ib = ib1now , ib2now
+ mapnow = ibset(mapnow,ib)
+87 continue
+ mapfb(irep) = ior(mapfb(irep),mapnow)
+86 continue
+c
+c Since we are cycling thru forced beams, for those that start with a rest and
+c have height & slope adjustments, move adjustments to next note.
+c 060924: Copy to ALL later notes in fb, in case there's more than 1 rest at
+c start of beam
+c
+ if (btest(irest(ivx,nip1fb),0)) then
+c call setbits(ipl(ivx,nip1fb+1),6,11,
+c * igetbits(ipl(ivx,nip1fb),6,11))
+c call setbits(ipl(ivx,nip1fb+1),6,17,
+c * igetbits(ipl(ivx,nip1fb),6,17))
+c call setbits(islur(ivx,nip1fb+1),2,27,
+c * igetbits(islur(ivx,nip1fb),2,27))
+ do 88 kp = nip1fb+1 , nip2fb
+ call setbits(ipl(ivx,kp),6,11,
+ * igetbits(ipl(ivx,nip1fb),6,11))
+ call setbits(ipl(ivx,kp),6,17,
+ * igetbits(ipl(ivx,nip1fb),6,17))
+ call setbits(islur(ivx,kp),2,27,
+ * igetbits(islur(ivx,nip1fb),2,27))
+88 continue
+ end if
+80 continue
+81 continue
+c
+c Slide down, reduce nfb(ivx). This lets us count up from 1 for each new bar.
+c Remember, makeabar is called 1/bar, and it calls findbeam once per voice.
+c
+ if (nfbbar .gt. 0) then
+ nfb(ivx) = nfb(ivx)-nfbbar
+ do 82 ifb = 1 , nfb(ivx)
+ t1fb(ivx,ifb) = t1fb(ivx,ifb+nfbbar)
+ t2fb(ivx,ifb) = t2fb(ivx,ifb+nfbbar)
+ ulfbq(ivx,ifb) = ulfbq(ivx,ifb+nfbbar)
+82 continue
+ end if
+ end if
+ ifb = 0
+c
+c Done with forced beam masks for this bar and voice. Now get normal beams.
+c
+ call findbeam(ibmrep,numbms,mapfb)
+20 continue
+ return
+ end
+ subroutine make2bar(ninow,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart,clefq)
+ parameter (nm=24,mv=24576)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*10 figq
+ character*1 ulq,sepsymq,sq,chax
+ logical beamon,firstgulp,figbass,figchk,isfig,bar1syst,isbjmp,
+ * isbj2
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /combeam/ ibmtyp
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,issig,rpndot,autofbon
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ integer istart(80),istop(80),iaskb(nm),numbms(nm),
+ * nornb(nm),ihornb(nm,24),lcwr(nm),ibmcnt1(nm),ifig(2)
+ character*1 ulfbq,udqq,clefq(nm),slurudq
+ character*8 noteq
+ character*79 cwrq(nm),notexq,inameq
+ character*20 voltxtq
+ common /comoct/ noctup
+ character*80 soutq,headrq,lowerq
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ logical bspend,lower,cwrest(nm),vxtup,
+ * isgrace,isclef,nofirst,iscln,isdot,isflag,
+ * isacc,isfirst,flgndb,btest,stemup,upslur,
+ * isgaft,isarp,isrshft,isaccs,iscacc,
+ * lowdot,flipend,iscwr,isdotted,beamon1(nm)
+ real*4 ptgr(37),ptclef(nm),ptsndg(nm),eskndg(nm),tstart(80),
+ * squez(80)
+ logical cwrferm,drawbm
+ common /comcwrf/ cwrferm(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comstart/ facmtr
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+c
+c Factors for grace note, clef spacing. (fraction of wheadpt)
+c In 1.04, moved to block data subprogram
+c
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comtol/ tol
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,fontslur
+ * ,WrotePsslurDefaults
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ common /comevent/ miditime,lasttime
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ logical secondgrace
+c
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c
+c Set up main ib loop within which a block (notes group) is written
+c
+ do 25 iv = 1 , nv
+ do 25 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ibmcnt(ivx) = 1
+ ibmcnt1(ivx) = 1
+ beamon(ivx) = .false.
+ beamon1(ivx) = .false.
+ nornb(ivx) = 0
+ iaskb(ivx) = 1
+ vxtup(ivx) = .false.
+ drawbm(ivx) = .true.
+25 continue
+ naskb = 0
+ ifig(1) = 1
+ ifig(2) = 1
+ ixtup = 0
+ bspend = .false.
+ iscwr = .false.
+ rpndot = .false.
+ do 16 ib = 1 , nb
+c
+c Check for segno
+c
+ if (btest(iornq(1,ipo(istart(ib))),4) .and.
+ * ivxo(istart(ib)).eq.1) then
+ if (noffseg.le.-10) then
+ write(noteq(1:5),'(1H{,i3,1H})')noffseg
+ lnoten = 5
+ else if (noffseg.lt.0 .or. noffseg.ge.10) then
+ write(noteq(1:4),'(1H{,i2,1H})')noffseg
+ lnoten = 4
+ else
+ write(noteq(1:1),'(i1)')noffseg
+ lnoten = 1
+ end if
+ notexq = sq//'znotes'//sq//'segnoo'//noteq(1:lnoten)//'9'
+ lnote = 15+lnoten
+ do 130 iv = 2 , nv
+ if (lnote .gt. 60) then
+ if (islast) write(11,'(a)')notexq(1:lnote)//'%'
+ notexq = sepsymq(iv-1)//sq//'segnoo'
+ * //noteq(1:lnoten)//'9'
+ lnote = lnoten+9
+ else
+ notexq = notexq(1:lnote)//sepsymq(iv-1)//sq//'segnoo'
+ * //noteq(1:lnoten)//'9'
+ lnote = lnote+lnoten+9
+ end if
+130 continue
+ if (islast) write(11,'(a)')notexq(1:lnote)//sq//'en'
+ lnote = 0
+ end if
+c
+c Check for new clefs
+c
+ isclef = .false.
+ if (btest(islur(ivxo(istart(ib)),ipo(istart(ib))),15))
+ * then
+c
+c In preceding line, fl32 gave wrong result for ... .gt.0 !!!
+c
+ do 140 in = istart(ib) , istop(ib)
+ if (btest(islur(ivxo(in),ipo(in)),11)) then
+ call wsclef(ivxo(in),ninow,clefq,
+ * iand(ishft(islur(ivxo(in),ipo(in)),-12),7))
+ end if
+140 continue
+ if (islast) write(11,'(a)')sq//'pmxnewclefs'
+ isclef = .true.
+ end if
+c
+c Start a notes group. We're just gonna define every one using pnotes{n},
+c where \def\pnotes#1{\vnotes#1\elemskip}
+c
+ soutq = sq//'pnotes{'
+ eonsqz = squez(ib)*feon(space(ib)/squez(ib))
+ if (eonsqz .gt. 9.995) then
+ write(soutq(9:12),'(f4.1)')eonsqz
+ else if (eonsqz .gt. 0.995) then
+ write(soutq(9:12),'(f4.2)')eonsqz
+ else if (eonsqz .gt. 0.095) then
+ soutq = soutq(1:8)//'0.'
+ write(soutq(11:12),'(i2)')nint(100*eonsqz)
+ else
+ soutq = soutq(1:8)//'0.0'
+ write(soutq(12:12),'(i1)')nint(100*eonsqz)
+ end if
+ soutq = soutq(1:12)//'}'
+ lsout = 13
+c
+c Check whole block, flag accidentals etc that are too close, one per *time*.
+c Note about bar starts and after rpt's/boublebars: There is an afterruleskip
+c (fbar*wheadpt) following, but rpts seem to occupy some of that gap, so
+c (dotsfac*wheadpt) is presumed to be filled up.
+c
+ in = istart(ib)-1
+ itrpt = -1
+ itsig = -1
+c
+c Begin big manual loop over notes in this block; ends at 112
+c
+111 in = in+1
+ if (in .gt. istop(ib)) go to 112
+ ip = ipo(in)
+ ivx = ivxo(in)
+ if (ivx .le. nv) then
+ iv = ivx
+ else
+ do 128 iv = 1 , nv
+ if (nvmx(iv) .eq. 2 .and. ivmx(iv,2).eq. ivx) go to 129
+128 continue
+ print*,'Trouble finding iv!, ivx,nvmx,ivmx:',ivx,nvmx(1),nvmx(2)
+ print*,ivmx(1,1),ivmx(1,2),ivmx(2,1),ivmx(2,2)
+ stop
+ end if
+129 continue
+c
+c Call precrd here so we know how much space to add for accid's in chords
+c After calling precrd, icashft>0 means there is a shifted chordal accid (incl.
+c main note.
+c
+c To call precrd, need up-downness, so must track if in beam.
+c
+c Deal w/ staff-jumping beams later
+c if ((numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+c * .and. ibm1(ivx,ibmcnt(ivx)) .eq. ip) .or.
+c * btest(nacc(ivx,ip),21)) then
+c if (.not.btest(irest(ivx,ip),24)) then
+ if ((numbms(ivx).gt.0 .and. ibmcnt1(ivx).le.numbms(ivx)
+ * .and. ibm1(ivx,ibmcnt1(ivx)) .eq. ip)) then
+ beamon1(ivx)=.true.
+ end if
+ icashft = 0
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord on this note. Need up-down-ness in precrd to auto shift for 2nds.
+c
+ if (beamon1(ivx)) then
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),ulq(ivx,ibmcnt1(ivx)),
+ * .false.,icashft)
+ else
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),udqq(nolev(ivx,ip),
+ * ncmid(iv,ip),islur(ivx,ip),nvmx(iv),ivx,nv),
+ * .false.,icashft)
+ end if
+ end if
+c
+c Turn beam off?
+c
+ if (beamon1(ivx) .and. ibm2(ivx,ibmcnt1(ivx)).eq.ip) then
+ beamon1(ivx) = .false.
+ ibmcnt1(ivx) = ibmcnt1(ivx)+1
+ end if
+c
+c Remember, rpts & internal sigs can only come at start of (internal) block
+c
+ isacc = iand(nacc(ivx,ip),3).gt.0
+ * .and. .not.btest(nacc(ivx,ip),17)
+ * .and. .not.btest(ipl(ivx,ip),10)
+c
+c i.e., do not set for chord. Now check for "(" as ornament on main note,
+c
+c!!! Need to do this for chord notes too. Maybe in chkarp?
+c
+ isaccs = isacc .or. btest(iornq(ivx,ip),0)
+c
+c 5/15/02 Add check for ) ornament of prior note.
+c 5/16 Nope...fails when grace intervenes.
+c if (ip .gt. 1) then
+c isaccs = isaccs .or. btest(iornq(ivx,ip-1),13)
+c end if
+ isarp = btest(iornq(ivx,ip),27)
+ iscacc = .false.
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord here; check for arpeggios and accidentals. Note accid shifts are
+c not of concern here, only whether there's an accid, whick causes iscacc=.true.
+c
+ iscacc = igetbits(nacc(ivx,ip),3,0).gt.0 .and.
+ * .not.btest(nacc(ivx,ip),17)
+ call chkarp(ncrd,icrdat,ivx,ip,iscacc,isarp)
+ end if
+c
+c When we get motivated, will do spacing for arpeggios here.
+c
+ if (ivx.eq.1 .and. iand(islur(ivx,ip),96).gt.0)
+ * itrpt = nint(to(in))
+ issig = btest(ipl(ivx,ip),28)
+ if (ivx.eq.1 .and. issig) itsig = nint(to(in))
+ isgrace = btest(islur(ivx,ip),4) .and.
+ * .not.btest(ipl(ivx,ip),29) .and. .not.btest(ipl(ivx,ip),31)
+ isgaft = .false.
+ if (ip .gt. 1) then
+ xnd = tnote(ipl2(ivx,ip-1))
+ isgaft = btest(ipl(ivx,ip-1),29) .or. btest(ipl(ivx,ip-1),31)
+ isgrace = isgrace .or. isgaft
+ end if
+ iscln = isclef .and. btest(islur(ivx,ip),11)
+c
+c Is prev. note non-beamed, up-stemmed, & flagged? Recall if ip>1, have nd
+c
+ isflag = ip.gt.1 .and. xnd.gt.tol .and. xnd.lt.16.-tol
+ if (isflag)
+ * isflag = .not.btest(irest(ivx,ip-1),0)
+ * .and. udqq(nolev(ivx,ip-1),
+ * ncmid(iv,ip-1),islur(ivx,ip-1),nvmx(iv),ivx,nv).eq.'u'
+ if (isflag) then
+ do 116 ibmchk = 1 , numbms(ivx)
+ if (ip-1 .lt. ibm1(ivx,ibmchk)) then
+ go to 117
+c
+c Add check for non-beamed xtuplets. May be problem with stem direction.
+c
+c else if (ip-1.le.ibm2(ivx,ibmchk)) then
+ else if (ip-1.le.ibm2(ivx,ibmchk) .and.
+ * .not.btest(islur(ivx,ibm1(ivx,ibmchk)),18)) then
+ isflag = .false.
+ go to 117
+ end if
+116 continue
+ end if
+117 continue
+c
+c If isflag, then won't need to check for dot on prev. note.
+c
+c 5/16/02 ??? Try using this for ) ornament.
+c
+ isflag = isflag .or. btest(iornq(ivx,ip-1),13)
+ isdot = ip.gt.1
+ if (isdot) isdot = isdotted(nodur,ivx,ip-1)
+ isrshft = ip .gt. 1
+ if (isrshft) isrshft = btest(irest(ivx,ip-1),20)
+ if (.not.(isaccs.or.isgrace.or.iscln.or.isflag.or.isrshft.or.
+ * isdot.or.btest(iornq(ivx,ip),26).or.
+ * btest(irest(ivx,ip),21).or.isarp.or.
+ * btest(irest(ivx,ip),27).or.iscacc)) go to 111
+c
+c Here is an accid,grace,clef,flag,rtshft,dot,udsp,arpeg,left-shift.
+c Compute pts, the total occupied space including prior notehead.
+c
+ wheadpt1 = wheadpt*fullsize(iv)
+ pts = wheadpt1
+c
+c Set up for possible cautionary accidental here
+c
+ if (isaccs .or. iscacc) then
+ if (.not.btest(iornq(ivx,ip),31)) then
+ taccfac = accfac
+ else
+ taccfac = 1.4*accfac
+ end if
+ end if
+ if (isgrace) then
+ secondgrace = .false.
+ do 122 ig = 1 , ngrace
+ if (.not. isgaft) then
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 123
+ else if (ip .gt. 1) then
+ if (ipg(ig).eq.ip-1 .and. ivg(ig).eq.ivx) go to 123
+ end if
+122 continue
+ print*,'Problem finding grace index in makeabar'
+ stop
+123 continue
+c
+c wgr = distance to backspace (in headwidths), less main acc.
+c ptgr = same in pts,+ main acc. Not used for after-grace. Distance to backspace.
+c spgr = total space needed (w/o main acc).
+c Also, spgr is same for b4 or after, but xb4fac-space will be in diff. place.
+c
+ if (nng(ig) .eq. 1) then
+ wgr = grafac
+ if (multg(ig) .eq. 0) wgr = wgr-.4
+ else
+ wgr = nng(ig)*emgfac
+ do 126 ing = 2 , nng(ig)
+ if (naccg(ngstrt(ig)-1+ing) .gt. 0) wgr = wgr+acgfac
+126 continue
+ end if
+ if (graspace(ig) .gt. 0.) then
+c
+c User-defined space before grace
+c
+ wgr = wgr+graspace(ig)
+ end if
+ ptgr(ig) = wgr*wheadpt1
+ spgr = ptgr(ig)+xb4fac*wheadpt1
+c
+c!!! May need to mod for chord accid's
+c
+ if (isaccs .or. iscacc) ptgr(ig) = ptgr(ig) + taccfac*wheadpt1
+ if (naccg(ngstrt(ig)) .gt. 0) spgr = spgr+wheadpt1*agc1fac
+ pts = pts+spgr
+c
+c Special check for after-grace on ip-1 and normal on ip. Must go back thru
+c loop again for the normal grace.
+c
+ if (isgaft .and. ig.lt.ngrace .and. .not.secondgrace) then
+ if (ipg(ig+1).eq.ip) then
+ secondgrace = .true.
+ ig = ig+1
+ go to 123
+ end if
+ end if
+ end if
+ if (iscln) then
+ pts = pts+clefac*wheadpt1
+c
+c How far to backspace when printing the clef
+c
+ ptclef(ivx) = 0.
+c
+c!!! May need to mod for chord accid's
+c
+ if (isaccs .or. iscacc)
+ * ptclef(ivx) = ptclef(ivx)+taccfac*wheadpt1
+ if (isgrace) ptclef(ivx) = ptclef(ivx)+spgr
+ end if
+ if (isrshft) then
+ pts = pts+rtshfac*wheadpt1
+ else if (isflag) then
+ pts = pts+flagfac*wheadpt1
+ else if (isdot) then
+ pts = pts+dotfac*wheadpt1
+ end if
+ if (abs(to(in)-itrpt) .lt. tol) then
+c
+c Repeat, need a little extra space
+c
+ pts = pts+dotsfac*wheadpt1
+ end if
+ if (isarp) then
+ pts = pts+arpfac*wheadpt1
+ end if
+c
+c Add in padding space
+c
+ pts = pts+xspfac*wheadpt1
+c
+c Now done with all items needing space except accidentals,
+c accidental shifts, and left-notehead-shifts, and will later
+c subtract a notehead if at start of bar.
+c
+c Get available space in elemskips (esk)
+c
+c isfirst = ip.eq.1 .or. to(in).eq.itrpt .or.
+c * to(in) .eq. itsig
+ isfirst = ip.eq.1 .or. abs(to(in)-itrpt).lt.tol .or.
+ * abs(to(in)-itsig).lt.tol
+ if (isfirst) then
+c
+c At start of bar or after repeat sign or new signature
+c
+c if (to(in) .eq. itsig) then
+ if (abs(to(in)-itsig).lt.tol) then
+ esk = 0.
+ else
+ esk = fbar
+ end if
+ else
+c
+c Not 1st note of bar
+c
+ esk = eskz(ivx,ip)-eskz(ivx,ip-1)
+ end if
+ if (isgrace) then
+c
+c Since graces can be very long, cannot assume no interference if prior
+c note uses >1 noteskip. So must get elsk's back to prior note, whether or
+c not it used only one noteskip.
+c <<But if it was xtup. don't need to call eskb4.>>????
+c
+c 10/8/05 Kluge to not zero out esk if in xtup
+c
+ esksav = esk
+ if ((ip.le.2 .or. nodur(ivx,max(1,ip-2)).gt.0) .and.
+c * to(in).ne.itsig)
+ * abs(to(in)-itsig).gt.tol)
+ * call eskb4(ip,ivx,in,ib,space,tstart,fbar,itrpt,esk)
+ if (abs(esk) .lt. tol) esk = esksav
+ end if
+c
+c Done getting available elemskips. Remove headwidth if first. Must do here
+c rather than earlier since check uses isfirst
+c
+ if (isfirst) pts = pts-wheadpt1
+c
+c Deal with accidental shifts and left-notehead shifts
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c In a chord
+c
+ ptsl = 0.
+ if (btest(irest(ivx,ip),27)) ptsl = wheadpt1
+ ptsadd = max(ptsl,icashft*.05*wheadpt1)
+c
+c Note: may have icashft=-20000 (if shftmin=-1000 in crdacc) but that's OK
+c
+ else
+c
+c Not in a chord
+c
+ ihshft = 0
+ if (isaccs) then
+ ihshft = igetbits(nacc(ivx,ip),7,10)
+c if (ihshft .ne. 0) ihshft = max(0,64-ihshft)
+ if (ihshft .ne. 0) ihshft = max(0,107-ihshft)
+ end if
+c
+c Check for left-shifted main note
+c
+ if (btest(ipl(ivx,ip),8)) ihshft = max(20,ihshft)
+ ptsadd = ihshft*.05*wheadpt1
+ end if
+ pts = pts+ptsadd
+ if (isgrace) ptgr(ig) = ptgr(ig)+ptsadd
+ if (iscln) ptclef(ivx) = ptclef(ivx)+ptsadd
+c
+c Left-shifted, non-chord note before?
+c
+ if (ip .gt. 1) then
+ if (.not.btest(ipl(ivx,ip-1),10) .and.
+ * btest(irest(ivx,ip-1),27)) pts = pts-wheadpt1
+ end if
+c
+c Try big accidentals first
+c
+ ptbneed = pts
+ if (isaccs .or. iscacc) then
+ ptbneed = ptbneed+wheadpt1*bacfac
+ end if
+ if (poenom*esk .gt. ptbneed) then
+c
+c Set flag for big accidental
+c
+ if (isacc) nacc(ivx,ip) = ibset(nacc(ivx,ip),3)
+ go to 99
+ end if
+c
+c Cannot use big, so try small
+c
+ ptsneed = pts
+ if (isaccs .or. iscacc) then
+ ptsneed = ptsneed+taccfac*wheadpt1
+ end if
+ if (poenom*esk .lt. ptsneed) call addask(to(in),ptsneed,
+ * esk,fixednew,scaldold,0.,.false.)
+99 continue
+ if (btest(iornq(ivx,ip),26)) then
+c
+c User-defined space. Warning, "zero" may change value in addask!
+c
+ zero = 0.
+ call addask(to(in),ptsneed,zero,
+ * fixednew,scaldold,tglp1,.true.)
+ end if
+c
+c End of big manual loop over "in" for accidental checking
+c
+ go to 111
+112 continue
+c
+c End of ask analysis for this block.
+c
+c Adjust eskz if there are added spaces. Corrects length of xtup brackets.
+c
+ if (naskb.gt.0) call adjusteskz(ib,squez,istart,istop,poenom)
+c
+c Check for internal repeat or sig change.
+c
+ if (ib.gt.1 .and. ivxo(istart(ib)).eq.1) then
+ iirpt = iand(islur(1,ipo(istart(ib))),67109216)
+ if (iirpt .gt. 0) then
+c
+c Internal repeat
+c
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1%'
+ if (iirpt .eq. 96) then
+ if (islast) write(11,'(a)')sq//'leftrightrepeat'
+ fixednew = fixednew+lrrptfac*wheadpt
+ else if (btest(iirpt,5)) then
+ if (islast) write(11,'(a)')sq//'leftrepeat'
+ fixednew = fixednew+rptfac*wheadpt
+ else if (btest(iirpt,6)) then
+ if (islast) write(11,'(a)')sq//'rightrepeat'
+ fixednew = fixednew+rptfac*wheadpt
+ else if (btest(iirpt,8)) then
+ if (islast) write(11,'(a)')sq//'doublebar'
+ else
+ print*,'Unexpected mid-bar repeat command R*'
+ call stop1()
+ end if
+ scaldold = scaldold-fbar
+ end if
+ if (btest(ipl(1,ipo(istart(ib))),28)) then
+c
+c Internal signature change.
+c
+ notexq = sq//'generalsignature{'
+ lnote = 18
+ if (isig .lt. 0) then
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ if (islast) write(11,'(a)')notexq(1:lnote)
+ * //chax(48+abs(isig))//'}%'
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-.5'//sq//'afterruleskip}%'
+ lnote = 0
+ end if
+ end if
+ flgndb = .false.
+c
+c Done with start-of-block stuff. Begin main loop over voices.
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ icm = midchan(iv,kv)
+c
+c A rather klugey way to set flag for figure in this voice
+c Must always check figbass before figchk.
+c
+ if (figbass) then
+ ivf = 0
+ if (ivx .eq. 1) then
+ ivf = 1
+ else if (ivx .eq. ivxfig2) then
+ ivf = 2
+ end if
+ if (ivf.gt.0) figchk(ivf) = nfigs(ivf).gt.0
+ end if
+ if (ivx .gt. 1) then
+ if (ivx .le. nv) then
+ call addstr(sepsymq(iv-1),1,soutq,lsout)
+ else
+ call addstr(sq//'nextvoice',10,soutq,lsout)
+ end if
+ end if
+ if (ihdht.gt.0 .and. ivx.eq.nv) then
+c
+c Write header. First adjust height if needed to miss barno.
+c
+ if (bar1syst .and. iline.ne.1) then
+ ihdht = 15+irzbnd+isnx
+ end if
+c
+c Add user-defined vertical shift
+c
+ ihdht = ihdht+ihdvrt
+ lchead = lenstr(headrq,80)
+ notexq = sq//'zcharnote{'
+ write(notexq(12:13),'(i2)')ihdht
+ notexq = notexq(1:13)//'}{'//sq//'bigfont'//sq//'kern-30pt '
+ call addstr(notexq,34,soutq,lsout)
+ call addstr(headrq(1:lchead)//'}',1+lchead,soutq,lsout)
+ ihdht = 0
+ end if
+ if (lower .and. ivx.eq.nv) then
+ lclow = lenstr(lowerq,80)
+ call addstr(sq//'zcharnote{-6}{'//
+ * sq//'tempo'//sq//'kern-10pt '//
+ * lowerq(1:lclow)//'}',33+lclow,soutq,lsout)
+ lower=.false.
+ end if
+ tnow = tstart(ib)
+ nofirst = .true.
+c
+c Done setting up voice ivx for start of block ib. Loop over notes in voice.
+c
+ do 10 jn = istart(ib), istop(ib)
+ if (ivxo(jn) .ne. ivx) go to 10
+ ip = ipo(jn)
+c
+c May have problem with not initializing islhgt, so do it here
+c
+ islhgt = 0
+c
+ if (nofirst) then
+ noctup = 0
+ if (ncmid(iv,ip) .eq. 23) noctup = -2
+ nofirst = .false.
+ end if
+c
+c Check for internal floating figure (before last note of group).
+c
+12 if (figbass) then
+ if (ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+ if (figchk(ivf) .and. itfig(ivf,ifig(ivf)).lt.tnow-tol)
+ * then
+c
+c Bypassed figure location. Backup, place fig, return.
+c
+ offnsk = (tnow-itfig(ivf,ifig(ivf)))/space(ib)
+ call putfig(ivf,ifig(ivf),offnsk,figchk(ivf),soutq,
+ * lsout)
+ go to 12
+ end if
+ end if
+ end if
+c
+c Put in \sk if needed
+c
+ if (to(jn) .gt. tnow+tol) then
+ call addstr(sq//'sk',3,soutq,lsout)
+ tnow = tnow+space(ib)
+ go to 12
+ end if
+c
+c Check for user-defined shifts
+c
+ if (btest(irest(ivx,ip),15).or.btest(irest(ivx,ip),16))
+ * call putshft(ivx,.true.,soutq,lsout)
+21 if (iaskb(ivx).le.naskb .and.
+ * tnow.gt.task(iaskb(ivx))-tol) then
+ if (task(iaskb(ivx)) .gt. tstart(ib)-tol) then
+c
+c Insert placeholder for accidental skip
+c
+ call addstr(sq//'ask ',9,soutq,lsout)
+ nasksys = nasksys+1
+ wasksys(nasksys) = wask(iaskb(ivx))
+ if (wask(iaskb(ivx)) .gt. 0.) then
+ elasksys(nasksys) = elask(iaskb(ivx))
+ else
+c
+c This is a signal to permit negative ask's. Should really have elask>=0.
+c
+ elasksys(nasksys) = -elask(iaskb(ivx))
+ end if
+ end if
+c
+c May have skipped some task's in earlier blocks (due to void voice)
+c
+ iaskb(ivx) = iaskb(ivx)+1
+ go to 21
+ end if
+ if (figbass) then
+ if (ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+ if (figchk(ivf) .and.
+ * abs(itfig(ivf,ifig(ivf))-tnow).lt.tol) then
+c
+c Figure on a note. NB: later special check for late figs.
+c
+ call putfig(ivf,ifig(ivf),0.,figchk(ivf),soutq,lsout)
+ end if
+ end if
+ end if
+c
+c Check for new clef here.
+c
+ if (isclef .and. btest(islur(ivx,ip),11)) then
+c print*,'At clef insertion, ptclef:',ptclef(iv)
+ if (ptclef(iv) .gt. 0.) then
+ notexq = sq//'off{-'
+ if (ptclef(iv) .lt. 9.95) then
+ write(notexq(7:9),'(f3.1)')ptclef(iv)
+ lnote = 9
+ else
+ write(notexq(7:10),'(f4.1)')ptclef(iv)
+ lnote = 10
+ end if
+ notexq = notexq(1:lnote)//'pt}'
+ lnote = lnote+3
+ call addstr(notexq,lnote,soutq,lsout)
+c print*,'Just added: ',notexq(1:lnote)
+ end if
+ call clefsym(islur(iv,ip),notexq,lnote,nclef)
+ call addstr(notexq,lnote,soutq,lsout)
+ if (ptclef(iv) .gt. 0.) then
+ notexq = sq//'off{'
+ if (ptclef(iv) .lt. 9.95) then
+ write(notexq(6:8),'(f3.1)')ptclef(iv)
+ lnote = 8
+ else
+ write(notexq(6:9),'(f4.1)')ptclef(iv)
+ lnote = 9
+ end if
+ notexq = notexq(1:lnote)//'pt}'
+ lnote = lnote+3
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+ end if
+c
+c Checking for literal TeX string BEFORE starting beams!!
+c
+ if (btest(islur(ivx,ip),16)) then
+ do 124 il = 1 , nlit
+ if (iplit(il).eq.ip .and. ivlit(il).eq.ivx) go to 125
+124 continue
+ print*,'Problem finding index for literal string'
+ call stop1()
+125 continue
+c
+c Write a type 1 tex string.
+c
+ if (lenlit(il) .lt. 71) then
+c
+c Add normally
+c
+ call addstr(litq(il),lenlit(il),soutq,lsout)
+ else
+c
+c Longer than 71. Write souq, Write string, start new soutq.
+c
+ if (islast) write(11,'(a)')soutq(1:lsout)//'%'
+ if (islast) write(11,'(a)')litq(il)(1:lenlit(il))//'%'
+ lsout = 0
+ end if
+ end if
+c
+c Arpeggio on a main (non-chordal) note?
+c
+ if (btest(iornq(ivx,ip),27)) then
+c call putarp(tnow,iv,ip,nolev(ivx,ip),ncmid(iv,ip),
+ call putarp(tnow,ivx,ip,nolev(ivx,ip),ncmid(iv,ip),
+ * soutq,lsout)
+ end if
+c
+c See if a beam starts here
+c
+ if ((numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+ * .and. ibm1(ivx,ibmcnt(ivx)) .eq. ip) .or.
+ * btest(nacc(ivx,ip),21)) then
+ if (.not.btest(irest(ivx,ip),24)) then
+c
+c Not a jump start
+c
+ call beamstrt(notexq,lnote,nornb,ihornb,space,squez,ib)
+c
+c Shift beam start if notehead was shifted
+c
+ if (btest(ipl(ivx,ip),8)) then
+ call addstr(sq//'loff{',6,soutq,lsout)
+ else if (btest(ipl(ivx,ip),9)) then
+ call addstr(sq//'roff{',6,soutq,lsout)
+ end if
+ if (lnote .gt. 0) call addstr(notexq,lnote,soutq,lsout)
+ if (btest(ipl(ivx,ip),8) .or.
+ * btest(ipl(ivx,ip),9)) call addstr('}',1,soutq,lsout)
+ else
+c
+c Jump start. Set marker for second part of a jump beam. Note ivbj2 was set
+c to 0 at end of first part of jump beam
+c
+ ivbj2 = ivx
+c
+c Check for xtup since we bypassed beamstrt wherein vxtup is normally set
+c
+ if (btest(irest(ivx,ip),28) .and. ixrest(ivx).ne.2)
+ * vxtup(ivx) = .true.
+c
+c Since beamstrt is not called, and drawbm is normally set there, need to set
+c it here. This could cause problems if someone tries a staff-jumping,
+c unbarred beam, which I'll deal with when it comes up.
+c
+ drawbm(ivx) = .true.
+ end if
+ if (ixrest(ivx) .eq. 0) then
+ beamon(ivx) = .true.
+ bspend = .true.
+ if (.not.btest(irest(ivx,ip),24))bspend = .true.
+ end if
+ end if
+c
+c Setup for chords and possible slurs in chords
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord on this note. Just rerun precrd. Klunky, but saves
+c me from tracking down errors instroduced when I moved 1st call
+c forward for accidental spacing analysis.
+c
+ if (beamon(ivx)) then
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),ulq(ivx,ibmcnt(ivx)),
+ * .true.,icashft)
+ else
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),udqq(nolev(ivx,ip),
+ * ncmid(iv,ip),islur(ivx,ip),nvmx(iv),ivx,nv),
+ * .true.,icashft)
+ end if
+ end if
+c
+c Is there slur or grace activity?
+c
+ isgrace = btest(islur(ivx,ip),4)
+ if (ip .gt. 1) isgrace = isgrace.or.btest(ipl(ivx,ip-1),31)
+c
+c isgrace if not 1st note in bar and previous note has Way-after grace.
+c
+ if (btest(islur(ivx,ip),0) .or. isgrace) then
+ if (btest(islur(ivx,ip),0)) then
+ if (fontslur) then
+c
+c Call routine for non-postscript slurs
+c
+ call doslur(nolev(ivx,ip),isdat1,isdat2,isdat3,nsdat,
+ * ip,iv,kv,nv,beamon(ivx),ncmid(iv,ip),soutq,lsout,
+ * ulq(ivx,ibmcnt(ivx)),islur(ivx,ip),ipl(ivx,ip),
+ * iornq(ivx,ip),islhgt,tnote(ipl2(ivx,ip)),
+ * nacc(ivx,ip))
+ else
+c
+c Postscript slurs
+c
+ call dopsslur(nolev(ivx,ip),isdat1,isdat2,isdat3,
+ * isdat4,nsdat,
+ * ip,iv,kv,nv,beamon(ivx),ncmid(iv,ip),soutq,lsout,
+ * ulq(ivx,ibmcnt(ivx)),islur(ivx,ip),ipl(ivx,ip),
+ * iornq(ivx,ip),islhgt,tnote(ipl2(ivx,ip)),
+ * nacc(ivx,ip))
+ end if
+ end if
+ if (isgrace) then
+c
+c Grace note.
+c
+ iphold = ip
+ isgrace = .false.
+ if (ip .gt. 1) isgrace = btest(ipl(ivx,ip-1),31)
+ if (isgrace) iphold = iphold-1
+ isgrace = isgrace .or. (.not.btest(ipl(ivx,ip),31)
+ * .and..not.btest(ipl(ivx,ip),29))
+c
+c Place grace now if (a) Way-after from prev note and ip>1 or (b) Pre-grace
+c on current note. Do A-grace on current note, and W-grace at barend, later.
+c
+ if (isgrace) then
+ call dograce(ivx,iphold,ptgr,soutq,lsout,ncmid(iv,ip),
+ * nacc(ivx,ip),ig,ipl(ivx,iphold),.false.,
+ * beamon(ivx),nolev(ivx,ip),ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),nv,ibmcnt(ivx),
+ * tnote(ipl2(ivx,ip)),ulq)
+ if (slurg(ig)) then
+c
+c Terminate slur started in dograce. Get direction of main note stem
+c
+ if (.not.beamon(ivx)) then
+c
+c Separate note. Get stem direction.
+c
+ stemup = udqq(nolev(ivx,ip),ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),ivx,nv) .eq. 'u'
+ else
+c
+c In a beam
+c
+ stemup = ulq(ivx,ibmcnt(ivx)) .eq. 'u'
+ end if
+c
+c Stop the shift if whole note
+c
+ stemup = stemup .or.
+ * tnote(ipl2(ivx,ip)).gt.63
+ call endslur(stemup,.not.upg(ig),nolev(ivx,ip),0,
+ * ndxslur,0,ncmid(iv,ip),soutq,lsout,fontslur)
+ end if
+ end if
+ end if
+ if (btest(iornq(ivx,ip),24)) then
+c
+c Start slur on main note for After- or Way-after-grace.
+c
+c???? ndxslur = log2(33554431-listslur)
+ ndxslur = log2(16777215-listslur)
+c
+c Get note name
+c
+ call notefq(noteq,lnoten,nolev(ivx,ip),ncmid(iv,ip))
+c
+c Get slur direction
+c
+ slurudq = 'u'
+ if (.not.beamon(ivx)) then
+ if (udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv) .eq. 'u') slurudq = 'd'
+ else
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') slurudq = 'd'
+ end if
+c
+cc Replace ndxslur by 11-ndxslur when printing only.
+c Replace ndxslur by 23-ndxslur when printing only.
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c notexq = sq//'islur'//slurudq//chax(59-ndxslur)
+ notexq = sq//'islur'//slurudq//chax(71-ndxslur)
+ * //noteq(1:lnoten)
+ call addstr(notexq,8+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ notexq = sq//'islur'//slurudq//'{1'//chax(61-ndxslur)
+ * //'}'//noteq(1:lnoten)
+ call addstr(notexq,11+lnoten,soutq,lsout)
+ else
+ notexq = sq//'islur'//slurudq//'{2'//chax(51-ndxslur)
+ * //'}'//noteq(1:lnoten)
+ call addstr(notexq,11+lnoten,soutq,lsout)
+ end if
+c call setbits(ipl(ivx,ip),4,23,ndxslur)
+ call setbits(ipl(ivx,ip),5,23,ndxslur)
+ if (btest(ipl(ivx,ip),31))
+c
+c Starting slur on W-grace on THIS note. Record ndxslur.
+c
+ * listslur = ibset(listslur,ndxslur)
+ end if
+ end if
+c
+c Process dynamic marks
+c
+ if (btest(irest(ivx,ip),26)) then
+ call dodyn(ivx,ip,
+ * nolev(ivx,ip),ncmid(iv,ip),ipl(ivx,ip),islur(ivx,ip),
+ * irest(ivx,ip),nvmx(iv),nv,beamon(ivx),ihornb,nornb,ulq,
+ * ibmcnt(ivx),nodur(ivx,ip).ge.64,soutq,lsout)
+ end if
+c
+c Check for chord notes. Moved up from below, 10/27/96 so chord orns done 1st.
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c Need a duration to set type of note head
+c
+c if (.not. vxtup(ivx)) then
+c
+c Clumsy test, but vxtup is not set until main note is processed.
+c
+ if (.not.(vxtup(ivx).or.btest(irest(ivx,ip),28))) then
+ nodu = nodur(ivx,ip)
+c else if (mult(ivx,ip) .lt. 0) then
+ else if (iand(mult(ivx,ip),15)-8 .lt. 0) then
+ nodu = 32
+ else
+ nodu = 16
+ end if
+ call docrd(ivx,ip,nodu,ncmid(iv,ip),iv,tnow,soutq,lsout,
+ * ulq,ibmcnt(ivx),islur(ivx,ip),nvmx(iv),nv,
+ * beamon(ivx),nolev(ivx,ip),ihornb,nornb,stemlen,
+ * btest(nacc(ivx,ip),27),nacc(ivx,ip))
+ end if
+c
+c Now that chords are done, add stuff to midi file
+c
+c if (ismidi) call addmidi(icm,nolev(ivx,ip),
+ if (ismidi) call addmidi(icm,
+ * nolev(ivx,ip)-iTransAmt(instno(iv)),
+c
+ * iand(nacc(ivx,ip),7),isig,tnote(ipl2(ivx,ip)),
+ * btest(irest(ivx,ip),0),.false.)
+c
+c Check for breath or caesura
+c
+ if (btest(iornq(ivx,ip),28)) then
+ call putcb(ivx,ip,notexq,lnote)
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Check for main-note ornaments. ')' on dotted notes go in with note, not here.
+c Bits 0-13: (stmgx+Tupf._) ; 14: Down fermata, was F
+c 15: Trill w/o "tr", was U , 16-18 edit. accid., 19-21 TBD
+c
+ isacc = iand(iornq(ivx,ip),4194287) .gt. 0
+c
+c isacc=.true. if any ornament except segno
+c
+ if (btest(iornq(ivx,ip),13) .and. nodur(ivx,ip).gt.0) then
+c
+c If ). is only ornament, bypass. If with others, temporarirly zero the bit.
+c
+ if (2**log2(nodur(ivx,ip)) .ne. nodur(ivx,ip)) then
+ if (iand(iornq(ivx,ip),516079) .eq. 0) then
+c
+c ). is the only non-segno ornament
+c
+ isacc = .false.
+ else
+c
+c There are other ornaments in addition
+c
+ rpndot = .true.
+ iornq(ivx,ip) = ibclr(iornq(ivx,ip),13)
+ end if
+ end if
+ end if
+ if (isacc .and. .not.cwrferm(ivx)) then
+c
+c Check for centered whole-bar rest with fermata (bits 10 or 14).
+c
+ if (iand(iornq(ivx,ip),17408).gt.0
+ * .and. btest(irest(ivx,ip),0) .and.
+ * nodur(ivx,ip).eq.lenbar .and.
+ * .not.(firstgulp.and.ibar.eq.1.and.lenb0.gt.0)) then
+ cwrferm(ivx) = .true.
+ go to 30
+ end if
+ call putorn(iornq(ivx,ip),nolev(ivx,ip),nolev(ivx,ip),
+ * nodur(ivx,ip),nornb,ulq,ibmcnt(ivx),ivx,ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),nv,ihornb,stemlen,
+ * notexq,lnote,ip,islhgt,beamon(ivx),
+ * btest(ipl(ivx,ip),10))
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+ if (rpndot) then
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),13)
+ rpndot = .false.
+ end if
+30 continue
+c
+c Check for main note accidental
+c
+ if (iand(nacc(ivx,ip),3).gt.0 .and.
+ * .not.btest(nacc(ivx,ip),17)) then
+ ihshft = igetbits(nacc(ivx,ip),7,10)
+ if (ihshft .ne. 0) ihshft=ihshft-107
+ if (.not.btest(ipl(ivx,ip),10) .and. btest(ipl(ivx,ip),8))
+c
+c Not a chord, and left-shifted main note, so left-shift accid
+c
+ * ihshft = ihshft-20
+ call doacc(ihshft,igetbits(nacc(ivx,ip),6,4),
+ * notexq,lnote,nacc(ivx,ip),nolev(ivx,ip),ncmid(iv,ip),
+ * btest(irest(ivx,ip),31))
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Lower dot for lower-voice notes. Conditions are:
+c 1. Dotted time value
+c 2. Lower voice of two
+c 3. Note is on a line
+c 4. Not a rest
+c. 5. Flag (lowdot) is set to true
+c 6. Not in an xtuplet
+c
+ if (lowdot .and. nvmx(iv).eq.2 .and. ivx.le.nv
+ * .and. nodur(ivx,ip).ne.0) then
+ if (.not.btest(irest(ivx,ip),0) .and.
+ * 2**log2(nodur(ivx,ip)).ne.nodur(ivx,ip) .and.
+ * mod(nolev(ivx,ip)-ncmid(ivx,ip),2).eq.0) then
+ if (btest(irest(ivx,ip),19)) then
+c
+c Note already in movdot list. Drop by 2.
+c
+ updot(ivx,ndotmv(ivx)+1) =
+ * updot(ivx,ndotmv(ivx)+1)-2.
+ else
+c
+c Not in list so just move it right now
+c
+ call dotmov(-2.,0.,soutq,lsout,
+ * igetbits(islur(ivx,ip),1,3))
+ end if
+ end if
+ end if
+c
+c Check for dotted notes with moved dots
+c
+ if (btest(irest(ivx,ip),19)) then
+ ndotmv(ivx) = ndotmv(ivx)+1
+ call dotmov(updot(ivx,ndotmv(ivx)),rtdot(ivx,ndotmv(ivx)),
+ * soutq,lsout,igetbits(islur(ivx,ip),1,3))
+ end if
+c
+c Stemlength shortening?
+c
+ if (btest(mult(ivx,ip),27)) then
+ stemshort = 4.66-.667*(igetbits(mult(ivx,ip),3,28)+1)*.5
+ call addstr(sq//'stemlength{',12,soutq,lsout)
+ write(notexq,'(f4.2)')stemshort
+ call addstr(notexq(1:4)//'}',5,soutq,lsout)
+ else if (ip .gt. 1) then
+ if (btest(mult(ivx,ip-1),27))
+c
+c Cancel shortening. Looks like it gets automatically restored if new inst. or
+c new line, so no need to worry about affecting other lines
+c
+ * call addstr(sq//'stemlength{4.66}',17,soutq,lsout)
+ end if
+c
+c Zero out slur-height marker for raising ornaments
+c
+ islhgt = 0
+c
+c Now start with spacing notes. Is a beam start pending?
+c
+ if (bspend .and.
+ * ibm2(ivx,ibmcnt(ivx)).gt.ibm1(ivx,ibmcnt(ivx))) then
+ if (ixrest(ivx) .eq. 4) then
+c
+c Special path for single note at end of otherwise beamed xtup
+c
+ ixrest(ivx) = 0
+ else
+ call beamn1(notexq,lnote)
+ end if
+ bspend = .false.
+c
+c Is a beam ending?
+c
+ else if (numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+c * .and. ibm2(ivx,ibmcnt(ivx)) .eq. ip) then
+ * .and. (ibm2(ivx,ibmcnt(ivx)).eq.ip .or.
+ * btest(nacc(ivx,ip),20))) then
+ if (bspend) then
+c
+c Must be a single-note ending of a jump-beam
+c
+ bspend = .false.
+ end if
+ call beamend(notexq,lnote)
+ if (.not.btest(nacc(ivx,ip),20)) then
+ vxtup(ivx) = .false.
+ nornb(ivx) = 0
+ ibmcnt(ivx) = ibmcnt(ivx)+1
+ beamon(ivx) = .false.
+ end if
+c
+c Or if we're in the middle of a beam
+c
+ else if (numbms(ivx).gt.0 .and. beamon(ivx)) then
+ call beamid(notexq,lnote)
+c
+c Or whole-bar rest
+c
+ else if (btest(irest(ivx,ip),0)
+ * .and. nodur(ivx,ip).eq.lenbar
+ * .and..not.(firstgulp.and.ibar.eq.1.and.lenb0.gt.0)
+ * .and..not.btest(irest(ivx,ip),25)
+ * .and..not.btest(islur(ivx,ip),29)) then
+c
+c Rule out pickup bar, blank rests, non-centered. Remember islur b19=> rp
+c
+ cwrest(ivx) = .true.
+ iscwr = .true.
+ call notex(cwrq(ivx),lcwr(ivx))
+ tnow = tnow+lenbar
+ go to 10
+ else if (ixrest(ivx) .eq. 0) then
+c
+c Before writing note or rest, check for keyboard rest height adjustment.
+c Conditions are 0. This is a non-blank rest
+c 1. kbdrests = .true.
+c 2. There are two voices on the staff
+c 3. No user-def height adjustments have been applied (nolev<50)
+cc 4. Not last note in bar
+cc 5. Followed by note (add better test later)
+c
+ if (kbdrests .and. btest(irest(ivx,ip),0) .and.
+ * .not.btest(islur(ivx,ip),29).and. nvmx(iv).eq.2 .and.
+c * nolev(ivx,ip).le.50 .and. ip.ne.nn(ivx)
+c * .and. .not.(btest(irest(ivx,ip+1),0))) then
+ * nolev(ivx,ip).le.50) then
+c
+c Get reference level: next following note if no intervening blank rests,
+c otherwise next prior note.
+c
+c levnext = nolev(ivx,ip+1)-ncmid(iv,ip)+4 ! Relative to bottom line
+ if (ip.ne.nn(ivx).and..not.btest(iornq(ivx,ip),30)) then
+c
+c Not the last note and not "look-left" for level
+c
+ do 8 kkp = ip+1 , nn(ivx)
+ if (btest(islur(ivx,kkp),29)) go to 4
+ if (.not.btest(irest(ivx,kkp),0)) then
+ levnext = nolev(ivx,kkp)-ncmid(iv,kkp)+4 ! Relative to bottom line
+ go to 9
+ end if
+8 continue
+ end if
+4 continue
+c
+c If here, there were no following notes or came to a blank rest, or
+c "look-left" option set. So look before
+c
+ if (ip .eq. 1) go to 2 ! Get out if this is the first note.
+ do 3 kkp = ip-1, 1, -1
+ if (.not.btest(irest(ivx,kkp),0)) then
+ levnext = nolev(ivx,kkp)-ncmid(iv,kkp)+4 ! Relative to bottom line
+ go to 9
+ end if
+3 continue
+ go to 2 ! Pretty odd, should never be here, but get out if so.
+9 continue
+c
+c Find note in other voice at same time
+c
+ iupdown = sign(1,ivx-nv-1)
+ ivother = ivmx(iv,(3-iupdown)/2)
+ tother = 0.
+ do 5 kkp = 1 , nib(ivother,ibar)
+ if (abs(tother-tnow) .lt. tol) go to 6
+ tother = tother+nodur(ivother,kkp)
+5 continue
+c
+c If here, then no note starts in other voice at same time, so set default
+c
+ levother = -iupdown*50
+ go to 7
+6 continue
+c
+c If here, have just identified a simultaneous note or rest in other voice
+c
+ if (.not.btest(irest(ivother,kkp),0)) then ! Not a rest, use it
+ levother = nolev(ivother,kkp)-ncmid(iv,ip)+4
+ else
+ if (nodur(ivother,kkp) .eq. nodur(ivx,ip)) then
+c
+c Rest in other voice has same duration, get out (so defualt spacing is used)
+c
+ go to 2
+ end if
+ levother = -iupdown*50
+ end if
+7 continue
+ indxr = log2(nodur(ivx,ip))+1
+ if (iupdown .lt. 0) then
+ levtop = levtopr(indxr)
+ iraise1 = levother-levtop-3 ! Based on other note
+ iraise2 = levnext-levtop ! Based on following note
+ if (indxr.eq.5 .and. levnext.lt.1) iraise2=iraise2+2
+ iraise = min(iraise1,iraise2)
+ if (mod(iraise+50,2).eq.1 .and.
+ * iraise+levtop.gt.-1) iraise = iraise-1
+ else
+ levbot = levbotr(indxr)
+ iraise1 = levother-levbot+3
+ iraise2 = levnext-levbot
+ if (indxr.eq.5 .and. levnext.gt.8) iraise2=iraise2-1
+ iraise = max(iraise1,iraise2)
+ if (mod(iraise+50,2).eq.1 .and.
+ * iraise+levbot.le.9) iraise = iraise-1
+ end if
+ nolev(ivx,ip) = 100+iraise
+ end if
+2 continue
+c
+c Write a separate note or rest
+c
+ call notex(notexq,lnote)
+ end if
+c
+c Right offset? This may cause trouble
+c
+ if (btest(ipl(ivx,ip),8)) then
+ call addstr(sq//'loff{',6,soutq,lsout)
+ else if (btest(ipl(ivx,ip),9)) then
+ call addstr(sq//'roff{',6,soutq,lsout)
+ end if
+ if (ixrest(ivx).eq.0 .and. lnote.gt. 0)
+ * call addstr(notexq,lnote,soutq,lsout)
+ if (btest(ipl(ivx,ip),8) .or.
+ * btest(ipl(ivx,ip),9)) call addstr('}',1,soutq,lsout)
+c
+c Terminate user-defined offsets. Fix format
+c
+ if (btest(irest(ivx,ip),15) .or. btest(irest(ivx,ip),17))
+ * call putshft(ivx,.false.,soutq,lsout)
+c
+c Deal with After- and Way-after-graces. First, if end of bar, compute space
+c needed since it wasn't done during general ask-checks. If extra space is
+c rq'd, convert GW to GA. Therefore GW at end of bar never needs extra sp.
+c But will still need to add extra space as hardspace.
+c
+ if (ip.eq.nn(ivx) .and. (btest(ipl(ivx,ip),31).or.
+ * btest(ipl(ivx,ip),29))) then
+ do 77 ig = 1 , ngrace
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 78
+77 continue
+ print*,'Problem finding grace index at "do 77"'
+ call stop1()
+78 continue
+c
+c Get elemskip to end of bar. WON'T WORK IF XTUPS !!
+c
+ esk = 0.
+ do 40 iib = ib , nb
+ if (iib .eq. ib) then
+ itleft = nint(to(ipl2(ivx,ip)))
+ else
+ itleft = nint(tstart(ib))
+ end if
+ if (iib .lt. nb) then
+ itright = nint(tstart(iib+1))
+ else
+ itright = lenbar
+ end if
+ esk = esk+feon(space(ib))*
+ * (itright-itleft)/space(ib)
+40 continue
+ ptsavail = poenom*esk-wheadpt
+ if (nng(ig) .eq. 1) then
+ wgr = grafac
+ else
+ wgr = nng(ig)*emgfac
+ do 41 ing = 1 , nng(ig)
+ if (naccg(ngstrt(ig)-1+ing) .gt. 0) wgr = wgr+acgfac
+41 continue
+ end if
+ ptgr(ig) = wgr*wheadpt
+ ptsneed = (wgr+0.5)*wheadpt
+ ptsndg(ivx) = 0.
+ if (ptsavail .lt. ptsneed) then
+ ptsndg(ivx) = ptsneed
+ eskndg(ivx) = esk
+ if (btest(ipl(ivx,ip),31)) then
+c
+c Convert GW to GA
+c
+ ipl(ivx,ip) = ibset(ibclr(ipl(ivx,ip),31),29)
+ end if
+ end if
+ end if
+c
+c Check for GA
+c
+ if (btest(ipl(ivx,ip),29))
+ * call dograce(ivx,ip,ptgr,soutq,lsout,ncmid(iv,ip),
+ * nacc(ivx,ip),ig,ipl(ivx,ip),.false.,
+ * .false.,0,0,0,0,0,0,0.,ulq)
+c
+c Update running time
+c
+ tnow = tnow+space(ib)
+10 continue
+c
+c Have finished last note in this voice and block
+c
+ itendb = nint(to(istop(ib))+space(ib))
+ if (figbass .and. ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+17 if (figchk(ivf) .and. itfig(ivf,ifig(ivf)).lt.itendb) then
+c
+c There's at least one figure left. offnsk could be <0
+c
+ offnsk = (tnow-itfig(ivf,ifig(ivf)))/space(ib)
+ call putfig(ivf,ifig(ivf),offnsk,figchk(ivf),soutq,lsout)
+ go to 17
+ end if
+ end if
+c
+c Check for flag, dot, or upstem on last note of bar.
+c
+ if (ib .eq. nb) then
+ ip = ipo(ipl2(ivx,nn(ivx)))
+ flgndv(ivx) = 0.
+ if (abs(tnote(ipl2(ivx,ip))-space(ib)).lt.tol) then
+ if (space(ib) .lt. 16.-tol) then
+c
+c Note in last space, smaller than a quarter note.
+c
+ if ((.not.btest(irest(ivx,ip),0) .and.
+ * udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv).eq.'u')
+ * .or. isdotted(nodur,ivx,ip)) then
+c
+c Upstem non-rest, or dotted
+c
+ if (numbms(ivx).gt.0
+ * .and. ip.eq.ibm2(ivx,max(1,numbms(ivx)))
+ * .and. .not.isdotted(nodur,ivx,ip))
+ * then
+c
+c In beam and not dotted, so use smaller space
+c
+ flgndv(ivx) = upstmfac
+ else
+ flgndv(ivx) = flagfac
+ end if
+ end if
+ else
+c
+c Last space, nonflagged (no beam) only worry dot or up
+c
+ if (isdotted(nodur,ivx,ip)) then
+ flgndv(ivx) = flagfac
+ else if (tnote(ipl2(ivx,ip)).lt.64 .and.
+ * udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv).eq.'u') then
+c
+c Upstem on last note , non-flagged
+c
+ flgndv(ivx) = upstmfac
+ end if
+ end if
+ end if
+c
+c Check for right-shifted chordal note
+c
+ if (btest(irest(ivx,ip),20)) flgndv(ivx) = rtshfac
+ flgndb = flgndb .or. flgndv(ivx).gt.0.
+ if (ismidi) then
+c
+c For midi, set flags for accidentals on last note of bar. Assume they affect
+c first note of next bar whether or not tied.
+c Note has already been done, so next entry into addmidi is 1st in new bar.
+c First do main note, then chord notes
+c
+c Gyrations needed to account for multi-bar tied full-bar notes?
+cc Old old lbacc(icm) = iand(nacc(ivx,ip),7)
+c New old if (lbacc(icm).eq.0) lbacc(icm) = iand(nacc(ivx,ip),7)
+c
+ if (iand(nacc(ivx,ip),7) .gt. 0) then
+c
+c Explicit accidental on last main note in bar
+c
+ do 55 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolev(ivx,ip)) go to 56
+55 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = nolev(ivx,ip)
+ jaccbl(icm,naccbl(icm)) = iashft(iand(nacc(ivx,ip),7))
+ end if
+56 continue
+ if (btest(ipl(ivx,ip),10) .and. crdacc) then
+ do 57 icrd = icrd1 , icrd2
+ iacc = igetbits(icrdat(icrd),3,20)
+ if (iacc .gt. 0) then
+c
+c Explicit accidental on chord note at end of bar
+c
+ nolevc = igetbits(icrdat(icrd),7,12)
+ do 58 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolevc) go to 59
+58 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = nolevc
+ jaccbl(icm,naccbl(icm)) = iashft(iacc)
+ end if
+59 continue
+57 continue
+ end if
+c if (lbacc(icm).eq.0 .and. accb4(icm)) then
+ do 65 kacc = 1 , naccim(icm)
+c
+c If naccim(icm)>0,
+c possible implicit accidental from earlier in the bar. Check for prior accid
+c in this bar at relevant note levels, main and chord notes. Only act if no
+c explicit action from just above. Assuming any accid on last note in bar,
+c either explicit or implicit, has same effect on 1st note of next bar.
+c
+ if (nolev(ivx,ip) .eq. laccim(icm,kacc)) go to 66
+ if (btest(ipl(ivx,ip),10)) then
+ do 67 icrd = icrd1 , icrd2
+ if (iand(ishft(icrdat(icrd),-12),127) .eq.
+ * laccim(icm,kacc)) go to 66
+67 continue
+ end if
+ go to 65
+66 continue
+c
+c So far we know there is a main or chord note at level laccim(icm,kacc). So
+c it will get a bl-accid if it didn't just already get one.
+c
+ do 68 macc = 1 , naccbl(icm)
+ if (laccbl(icm,macc) .eq. laccim(icm,kacc)) go to 65
+68 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = laccim(icm,kacc)
+ jaccbl(icm,naccbl(icm)) = jaccim(icm,kacc)
+65 continue
+ end if
+ end if
+11 continue
+c
+c Close out the notes group
+c
+ call addstr(sq//'en',3,soutq,lsout)
+ if (islast.and.lsout .gt. 0) write(11,'(a)')soutq(1:lsout)//'%'
+16 continue
+c
+c Check for way-after graces at end of bar. We could not link these to notes
+c as in midbar since there is no note following grace! Also, set flag if
+c hardspace is needed. Also, save nvmx, ivmx for use in space checks on reloop.
+c
+ isgrace = .false.
+ do 75 iv = 1 , nv
+ nvmxsav(iv) = nvmx(iv)
+ do 75 kv = 1 , nvmx(iv)
+ ivmxsav(iv,kv) = ivmx(iv,kv)
+ ivx = ivmx(iv,kv)
+ ptsgnd = 0.
+ if ((btest(ipl(ivx,nn(ivx)),29).or.btest(ipl(ivx,nn(ivx)),31))
+ * .and. ptsndg(ivx).gt.0.) then
+ flgndb = .true.
+ if (ptsndg(ivx) .gt. ptsgnd) then
+ ptsgnd = ptsndg(ivx)
+ eskgnd = eskndg(ivx)
+ end if
+ end if
+ if (btest(ipl(ivx,nn(ivx)),31)) then
+c
+c This voice has a way-after grace here at end of bar
+c
+ if (.not.isgrace) then
+c
+c This is the first one, so set up the string
+c
+ isgrace = .true.
+ ivlast = 1
+ soutq = sq//'znotes'
+ lsout = 7
+ end if
+ do 76 iiv = ivlast , iv-1
+ call addstr(sepsymq(iiv),1,soutq,lsout)
+76 continue
+ ivlast = iv
+c
+c No need to put in 'nextvoice', even if 2 lines/staff
+c
+ call dograce(ivx,nn(ivx),ptgr,soutq,lsout,ncmid(iv,nn(ivx)),
+ * nacc(ivx,nn(ivx)),ig,ipl(ivx,nn(ivx)),.true.,
+ * .false.,0,0,0,0,0,0,0.,ulq)
+ end if
+75 continue
+ if (isgrace) then
+ call addstr(sq//'en%',4,soutq,lsout)
+ if (islast .and. lsout .gt. 0) write(11,'(a)')soutq(1:lsout)
+ end if
+ lsout = 0
+c
+c Write multibar rest. Assuming nv = 1 and do not worry about cwbrest
+c This has to be the only use of atnextbar
+c
+c if (ibar .eq. ibarmbr) then
+ if (ibar.eq.ibarmbr .and. islast) then
+c call addstr(sq//'def'//sq//'atnextbar{'//sq//'znotes'//sq//
+c * 'mbrest{',30,soutq,lsout)
+c ndig = int(alog10(mbrest+.01))+1
+c write(soutq(31:33),'(i'//chax(48+ndig)//')')mbrest
+c lsout = lsout+ndig
+c call addstr('}{',2,soutq,lsout)
+c mtrspc = .5+xb4mbr
+c xb4mbr = 0.
+c if (mtrspc .eq. 0) then
+c ndig = 1
+c else
+c ndig = int(alog10(mtrspc+.01))+1
+c end if
+c write(soutq(lsout+1:lsout+2),'(i'//chax(48+ndig)//')')mtrspc
+c lsout = lsout+ndig
+c call addstr('}0'//sq//'en}%',7,soutq,lsout)
+c if (islast) write(11,'(a)')soutq(1:lsout)
+c lsout = 0
+c ndig = int(alog10(mbrest-1+.01))+1
+c if (mbrest.eq.1) ndig=1
+c if (islast) write(11,'(a14,i'//chax(48+ndig)//',a1)')
+c * sq//'advance'//sq//'barno',mbrest-1,'%'
+c++
+ soutq = sq//'def'//sq//'atnextbar{'//sq//'znotes'
+ lsout = 22
+ notexq = sq//'mbrest'
+ lnote = 7
+ call istring(mbrest,noteq,len)
+ notexq = notexq(1:lnote)//noteq(1:len)
+ lnote = lnote+len
+ mtrspc = .5+xb4mbr
+ xb4mbr = 0.
+ call istring(mtrspc,noteq,len)
+ notexq = notexq(1:lnote)//noteq(1:len)//'0'
+ lnote = lnote+len+1
+ do 62 iv = 1 , nv
+ call addstr(notexq,lnote,soutq,lsout)
+ if (iv .lt. nv) call addstr(sepsymq(iv),1,soutq,lsout)
+62 continue
+ call addstr(sq//'en}%',5,soutq,lsout)
+ write(11,'(a)')soutq(1:lsout)
+ lsout = 0
+ if (mbrest .gt. 1) then
+ ndig = int(alog10(mbrest-1+.01))+1
+ write(11,'(a14,i'//chax(48+ndig)//',a1)')
+ * sq//'advance'//sq//'barno',mbrest-1,'%'
+ end if
+ else if (iscwr) then
+c
+c Centered whole-bar rests
+c
+ call addstr(sq//'def'//sq//'atnextbar{'//sq//'znotes',22,
+ * soutq,lsout)
+ do 60 iv = 1 , nv
+ lnote = 0
+ do 61 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (cwrest(ivx)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'centerbar{'
+ lnote = 11
+ end if
+ if (.not.cwrferm(ivx)) then
+ if (lcwr(ivx).ge.11 .and. cwrq(ivx)(11:11).ne.'p') then
+c
+c Kluge to use new definitions for centered, stacked rests
+c
+ if (cwrq(ivx)(2:10).eq.'liftpause' .or.
+ * cwrq(ivx)(2:10).eq.'liftPAuse')
+ * cwrq(ivx)(10:10) = 'c'
+ end if
+ notexq = notexq(1:lnote)//cwrq(ivx)(1:lcwr(ivx))
+ lnote = lnote+lcwr(ivx)
+ else
+c
+c Fermata on centered rest. Will need to fix up level.
+c 12/6/07 shift it left so it's centered over rest
+c
+c notexq = notexq(1:lnote)
+c * //sq//'fermataup7'//cwrq(ivx)(1:lcwr(ivx))
+c lnote = lnote+11+lcwr(ivx)
+c
+ notexq = notexq(1:lnote)//sq//'loffset{.39}{'
+ * //sq//'fermataup7}'//cwrq(ivx)(1:lcwr(ivx))
+ lnote = lnote+26+lcwr(ivx)
+ cwrferm(ivx) = .false.
+ end if
+ end if
+61 continue
+ if (lnote .gt. 0) call addstr(notexq(1:lnote)//'}',lnote+1,
+ * soutq,lsout)
+ if (iv .ne. nv) call addstr(sepsymq(iv),1,soutq,lsout)
+60 continue
+ call addstr(sq//'en}',4,soutq,lsout)
+ if (islast.and.lsout .gt. 0) write(11,'(a)')soutq(1:lsout)//'%'
+ end if
+c
+c End of block for centered whole-bar rests and multi-bar rests
+c
+c If at end of block, save durations of last notes in bar, for possible use
+c if clef changes at start of next bar
+c
+ if (ibar .eq. nbars) then
+ do 63 iv = 1 , nv
+ do 63 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+c prevtn(ivx) = tnote(iand(ipl(ivx,nn(ivx)),255))
+ prevtn(ivx) = tnote(ipl2(ivx,nn(ivx)))
+63 continue
+ end if
+c
+c Update time for midi. This is only used for the event track
+c
+ if (ismidi) then
+ miditime = miditime+15*lenbar
+c
+c If pickup, write the real time signature to the event track. Cannot use
+c mtrnuml since it was reset to 0, have to recompute it
+c
+ if (lenb0 .eq. lenbar)
+ * call midievent('m',mtrdenl*lenb1/64,mtrdenl)
+ end if
+ return
+ end
+ subroutine makeabar()
+c
+c On input, have pseudo-durations in nodur(ivx,ip). Not real durations for
+c xtups, since only last note of xtup gets non-zero nodur, which
+c corresponds to single note of full length of xtup.
+c In this subroutine we make an ordered list of all notes in all voices.
+c ilnc = list note counter
+c ivxo(ilnc), ipo(ilnc) = voice# and position in voice of ilnc-th note.
+c to(ilnc) = real start time of note in PMX-units (64=whole note)
+c tno(ilnc) = time to next event in the bar.
+c tnote(ilnc) = actual duration of note
+c Then run thru list, grouping consecutive notes into \notes groups ib.
+c space(ib) = real time unit for the \notes group
+c squez(ib) = factor on space to get effective space. This will be 1 if
+c there is a note exactly spanning each interval of space, and
+c <1 if not.
+c Details: let eon = elemskips per noteskip (like length). Basic formula is
+c eon = sqrt(space/2.)
+c If tgovern >= space, then
+c eon = sqrt(tgovern/2)*(space/tgovern) = space/sqrt(2*tgovern).
+c Time needed to give this eon using basic formula is
+c teq = space**2/tgovern
+c Factor on space to get teq is
+c squez(ib) = space/tgovern
+c The eon for each ib can then be computed based on time of space*squez.
+c Iff squez = 1, there is a note spanning every increment in the \notes group.
+c
+c tnminb = minimum time span in the bar for increments spanned by notes,
+c i.e., with squez=1. Use after parsing into line to decide if
+c spacing needs to be "flattened" among notes groups.
+c
+ common /comtol/ tol
+ parameter (nm=24,nkb=3999,maxblks=4000)
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * nbars,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ common /linecom/ elskb,tnminb(nkb)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ logical rest,firstline,newmeter,gotclef
+ integer cnn(nm),istart(80),istop(80)
+ real*4 xit(nm),space(80),tstart(80),squez(80),tnote(600)
+ elskb = 0.
+ tnminb(ibarcnt) = 1000.
+ do 1 iv = 1 , nv
+ do 1 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (ibar .gt. 1) then
+ nn(ivx) = nib(ivx,ibar)-nib(ivx,ibar-1)
+ else
+ nn(ivx) = nib(ivx,ibar)
+ end if
+1 continue
+c
+c initialize list note counter, time(iv), curr. note(iv)
+c
+ ilnc = 1
+ do 4 iv = 1 , nv
+ do 4 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cnn(ivx) = 1
+ ivxo(ilnc) = ivx
+ ipo(ilnc) = 1
+ to(ilnc) = 0.
+ tnote(ilnc) = fnote(nodur,ivx,1,nacc)
+ xit(ivx) = tnote(ilnc)
+ if (abs(xit(ivx)-lenbar).lt.tol) xit(ivx) = 1000.
+ ilnc = ilnc+1
+4 continue
+c
+c Build the list
+c
+5 continue
+c
+c Determine which voice comes next from end of notes done so far.
+c tmin is the earliest ending time of notes done so far
+c
+ tmin = 1000.
+ do 6 iv = 1 , nv
+ do 6 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ tminn = min(tmin,xit(ivx))
+ if(tminn .lt. tmin) then
+ tmin = tminn
+ ivnext = ivx
+ end if
+6 continue
+ if (tmin .gt. 999.) go to 7
+ ivxo(ilnc) = ivnext
+ cnn(ivnext) = cnn(ivnext)+1
+ ipo(ilnc) = cnn(ivnext)
+ to(ilnc) = tmin
+c
+c Check if this voice is done
+c
+ tnote(ilnc) = fnote(nodur,ivnext,cnn(ivnext),nacc)
+ if (cnn(ivnext) .eq. nn(ivnext)) then
+ xit(ivnext) = 1000.
+ else
+ xit(ivnext) = xit(ivnext)+tnote(ilnc)
+ end if
+ ilnc = ilnc+1
+ go to 5
+7 continue
+ ntot = ilnc-1
+ if (ntot .gt. 600) then
+ call printl(' ')
+ call printl('Cannot have more than 600 notes per bar, stopping')
+ call stop1()
+ end if
+ do 8 in = 1 , ntot-1
+ tno(in) = to(in+1)-to(in)
+8 continue
+ tno(ntot) = fnote(nodur,ivxo(ntot),ipo(ntot),nacc)
+ tnote(ntot) = tno(ntot)
+c
+c Debug writes
+c
+c write(*,'()')
+c write(*,'(16i5)')(ivxo(in),in=1,ntot)
+c write(*,'(16i5)')(ipo(in),in=1,ntot)
+c write(*,'(16f5.1)')(to(in),in=1,ntot)
+c write(*,'(16f5.1)')(tno(in),in=1,ntot)
+c write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot)
+c write(*,'(16f5.1)')(tnote(in),in=1,ntot)
+c
+c Done w/ list. Initialize loop for building note blocks:
+c
+ ib = 1
+ istart(1) = 1
+ space(1) = 0.
+ in = 1
+c
+c Start the loop
+c
+9 continue
+ if (in .eq. ntot) then
+ if (space(ib) .lt. tol) then
+ space(ib) = tno(in)
+c
+c Last gap in bar is spanned by a note, so cannot need a squeeze.
+c
+ squez(ib) = 1.
+ end if
+ istop(ib) = ntot
+c
+c From here flow out of this if block and into block-setup
+c
+ else if (space(ib) .lt. tol) then
+c
+c space hasn't been set yet, so tentatively set:
+c
+ space(ib) = tno(in)
+ if (space(ib) .lt. tol) then
+ in=in+1
+ else
+c
+c Tentative space tno(in) is non-zero. Set squez, which will be kept (since
+c it is a unique property of the particular increment starting here) :
+c
+ squez(ib) = getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ end if
+ go to 9
+ else if (tno(in+1) .lt. tol) then
+c
+c This is not the last note in the space, so
+c
+ in = in+1
+ go to 9
+ else if (abs(tno(in+1)-space(ib)) .lt. tol) then
+c
+c Next increment has same space. Does it have same squez?
+c
+ xsquez = getsquez(in+1,ntot,space(ib),tnote,to)
+c
+c If it does have the same squez, loop, otherwise flow out
+c
+ if (abs(xsquez-squez(ib)) .lt. tol) then
+c
+c Keep spacing the same, update tentative stop point
+c
+ in = in+1
+ istop(ib) = in
+ go to 9
+ end if
+ end if
+c
+c At this point istart, istop, space, and squez are good, so close out block
+c
+ tstart(ib) = to(istart(ib))
+c
+c Compute elemskips assuming no flattening to increase min space. The formula
+c is only correct if f1eon(t) = sqrt(t/2); more generally (after possible
+c flattening in pmxb), elsperns = squez*feon(space/squez)
+c
+ elsperns = f1eon(space(ib)*squez(ib))
+ if (istop(ib) .eq. ntot) then
+ nnsk = nint((lenbar-tstart(ib))/space(ib))
+ else
+ nnsk = nint((to(istop(ib)+1)-tstart(ib))/space(ib))
+ end if
+ elskb = elskb+elsperns*nnsk
+ if (nptr(ibarcnt+1) .gt. nptr(ibarcnt)) then
+ call catspace(space(ib),squez(ib),nnsk)
+ else
+c
+c This is the first entry for this bar
+c
+ nnpd(nptr(ibarcnt)) = nnsk
+ durb(nptr(ibarcnt)) = space(ib)
+ sqzb(nptr(ibarcnt)) = squez(ib)
+ nptr(ibarcnt+1) = nptr(ibarcnt+1)+1
+ end if
+c
+c Update minimum space spanned by a note
+c
+ if (abs(squez(ib)-1) .lt. tol)
+ * tnminb(ibarcnt) = min(tnminb(ibarcnt),space(ib))
+ if (istop(ib) .eq. ntot) go to 15
+c
+c End of spatial accounting for now
+c
+ ib = ib+1
+ istart(ib) = istop(ib-1)+1
+ in = istart(ib)
+c
+c Set tentative block space for new block
+c
+ space(ib) = tno(in)
+ if (space(ib).gt.tol)
+ * squez(ib)= getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ go to 9
+15 continue
+c nb = ib
+c
+c Debug writes
+c
+c write(*,'(16i5)')(istart(ib),ib=1,nb)
+c write(*,'(16i5)')(istop(ib),ib=1,nb)
+c write(*,'(16f5.1)')(space(ib),ib=1,nb)
+c write(*,'(16f5.1)')(squez(ib),ib=1,nb)
+c
+ return
+ end
+ subroutine midievent(typeq,in1,in2)
+c
+c We now store "conductor" events in mmidi(numchan,.), and count bytes
+c with imidi(numchan)
+c
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comevent/ miditime,lasttime
+ character*1 typeq
+ idur = isetvarlen(miditime-lasttime,nbytes)
+ imidi(numchan) = imidi(numchan)+nbytes+1
+ do 1 i = 1 , nbytes
+ mmidi(numchan,imidi(numchan)-i) = mod(idur,256)
+ idur = ishft(idur,-8)
+1 continue
+ mmidi(numchan,imidi(numchan)) = 255
+ if (typeq .eq. 't') then
+c
+c Tempo event. in1 = quarters per minute (integer)
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+1
+ mmidi(numchan,imidi(numchan)+2) = 3
+ misperq = nint(60000000./in1)
+ do 2 i = 1 , 3
+ mmidi(numchan,imidi(numchan)+6-i) = mod(misperq,256)
+ misperq = ishft(misperq,-8)
+2 continue
+ imidi(numchan) = imidi(numchan)+5
+ else if (typeq .eq. 'm') then
+c
+c Meter event. in1=numerator, in2=denom (power of 2)
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+8
+ mmidi(numchan,imidi(numchan)+2) = 4
+ mmidi(numchan,imidi(numchan)+3) = in1
+ if (in2 .gt. 0) then
+ mmidi(numchan,imidi(numchan)+4) = log2(in2)
+ else
+ mmidi(numchan,imidi(numchan)+4) = 0
+ end if
+ mmidi(numchan,imidi(numchan)+5) = 24
+ mmidi(numchan,imidi(numchan)+6) = 8
+ imidi(numchan) = imidi(numchan)+6
+ else if (typeq .eq. 'k') then
+c
+c Keychange event. in1 = isig
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+9
+ mmidi(numchan,imidi(numchan)+2) = 2
+ mmidi(numchan,imidi(numchan)+3) = mod(256+in1,256)
+ mmidi(numchan,imidi(numchan)+4) = 0
+ imidi(numchan) = imidi(numchan)+4
+ else
+ print*,'Program flameout in midievent'
+ call stop1()
+ end if
+ lasttime = miditime
+ return
+ end
+ subroutine moveln(iuin,iuout,done)
+ logical done
+ character*129 outq
+ done = .false.
+ read(iuin,'(a)',end=1) outq
+ lenout = llen(outq,129)
+ write(iuout,'(a)') outq(1:lenout)
+ return
+1 done = .true.
+ return
+ end
+ subroutine mrec1(lineq,iccount,ndxm)
+c
+c This is called when (a) macro recording is just starting and
+c (b) at the start of a new line, if recording is on
+c
+ parameter (maxblks=4000)
+ character*128 lineq,lnholdq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ if (.not.mrecord) then
+c
+c Starting the macro
+c
+ ip1mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount
+ il1mac(macnum) = ilbuf-1
+ ic1mac(macnum) = iccount
+ mrecord = .true.
+ end if
+ if (iccount .lt. 128) then
+ ndxm = index(lineq(iccount+1:128),'M')
+ if (ndxm .gt. 0) ndxm = ntindex(lineq(iccount+1:128),'M',
+ * 128-iccount)
+ if (ndxm .gt. 0) then
+c
+c This line ends the macro.
+c
+ ip2mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount+ndxm
+ il2mac(macnum) = ilbuf-1
+ mrecord = .false.
+ end if
+ end if
+ return
+ end
+ function ncmid(iv,ip)
+ parameter (nm=24)
+ common /all/ mult(nm,200),jv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ if (ncc(iv) .eq. 1) then
+ ncmid = ncmidcc(iv,1)
+ else
+ xtime = to(ipl2(ivx,ip))
+ do 1 icc = ncc(iv) , 1 , -1
+ if (xtime .gt. tcc(iv,icc)-tol) then
+ ncmid = ncmidcc(iv,icc)
+ return
+ end if
+1 continue
+ print*,'Problem in ncmid()'
+ stop
+ end if
+ end
+ function ncmidf(clefq)
+c
+c Return middle line of a clef
+c
+ character*1 clefq
+c if (clefq.eq.'t' .or. clefq.eq.'0') then
+c ncmidf = 35
+c else if (clefq.eq.'s' .or. clefq.eq.'1') then
+c ncmidf = 33
+c else if (clefq.eq.'m' .or. clefq.eq.'2') then
+c ncmidf = 31
+c else if (clefq.eq.'a' .or. clefq.eq.'3') then
+c ncmidf = 29
+c else if (clefq.eq.'n' .or. clefq.eq.'4') then
+c ncmidf = 27
+c else if (clefq.eq.'r' .or. clefq.eq.'5') then
+c ncmidf = 25
+c else if (clefq.eq.'f' .or. clefq.eq.'7') then
+c ncmidf = 37
+c else
+c ncmidf = 23
+c end if
+ ncmidf = 21+index(' b6r5n4a3m2s1t0f7',clefq)/2*2
+ return
+ end
+ subroutine newvoice(jv,clefq,change)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ character*1 ulfbq,clefq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ logical change,autofbon
+ nvmx(jv) = 1
+ ivmx(jv,1) = jv
+ itsofar(jv) = 0
+ nnl(jv) = 0
+ nfb(jv) = 0
+ if (firstgulp .or. change) then
+ ncmidcc(jv,1) = ncmidf(clefq)
+ else
+ ncmidcc(jv,1) = ncmidcc(jv,ncc(jv))
+ end if
+ tcc(jv,1) = 0.
+ ncc(jv) = 1
+ nudoff(jv) = 0
+ ndotmv(jv) = 0
+ do 5 j = 1 , 200
+ irest(jv,j) = 0
+ islur(jv,j) = 0
+ ipl(jv,j) = 0
+ nacc(jv,j) = 0
+ iornq(jv,j) = 0
+ mult(jv,j) = 0
+ if (jv.le.2) isfig(jv,j) = .false.
+5 continue
+ return
+ end
+ subroutine notefq(noteq,lnote,nolev,ncmid)
+c
+c Returns name of note level with octave transpositions, updates noctup.
+c
+ common /comoct/ noctup
+ character*8 noteq
+ character*1 upcaseq,noteqt,chax
+ nupfroma = mod(nolev+1,7)
+ iname = 97+nupfroma
+ ioctup = (nolev+1)/7-4
+ noteqt = chax(iname)
+ if (ncmid .eq. 23) noteqt = upcaseq(noteqt)
+ if (ioctup .eq. noctup) then
+ noteq = noteqt
+ lnote = 1
+c
+c Must ALWAYS check if lnote=1 for use with functions requiring a blank
+c
+ else if (ioctup .gt. noctup) then
+c
+c Raise octave. Encase in {}
+c
+ write(noteq,'(8a1)')'{',(chax(39),i=noctup,ioctup-1),
+ * noteqt,'}'
+ lnote = 3+ioctup-noctup
+ noctup = ioctup
+ else
+c
+c Lower octave
+c
+ write(noteq,'(8a1)')'{',(chax(96),i=ioctup,noctup-1),
+ * noteqt,'}'
+ lnote = 3+noctup-ioctup
+ noctup = ioctup
+ end if
+ return
+ end
+ subroutine notex(notexq,lnote)
+c
+c Returns non-beamed full note name
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,ispoi,btest,even
+ character*1 udq,udqq,chax
+ character*4 dotq
+ character*2 numq
+ character*79 notexq
+ character*8 noteq
+ character*40 restq
+ common /compoi/ ispoi
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figq
+ ip = ipo(jn)
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ nodu = nodur(ivx,ip)
+ if (.not.btest(irest(ivx,ip),0)) then
+ udq = udqq(nole,ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),ivx,nv)
+ end if
+c
+c Check figure level
+c
+c if (figbass .and. isfig(ivx,ip)
+c * .and. .not.btest(irest(ivx,ip),0)) then
+ if (figbass .and. .not.btest(irest(ivx,ip),0) .and.
+ * ((ivx.eq.1.and.isfig(1,ip))
+ * .or.(ivx.eq.ivxfig2.and.isfig(2,ip)))) then
+ if (udq .eq. 'u' .or. nodu.ge.64) then
+c
+c Upper or no stem, fnole (in noleunits) set by notehead
+c
+ fnole = nole
+ else
+c
+c Lower stem, fnole set by bottom of stem
+c
+ fnole = nole-stemlen
+ end if
+ zmin = fnole-ncmid(ivx,ip)+4
+ if (ivx .eq. 1) then
+ ifigdr(1,iline) = max(ifigdr(1,iline),nint(4-zmin))
+ else
+ ifigdr(2,iline) = max(ifigdr(2,iline),nint(4-zmin))
+ end if
+ end if
+ if (.not.btest(irest(ivx,ip),0)) then
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ if (nodu .eq. 1) then
+ notexq =sq//'cccc'//udq//noteq(1:lnoten)
+ lnote = lnoten+6
+ else if (nodu .eq. 2) then
+ notexq =sq//'ccc'//udq//noteq(1:lnoten)
+ lnote = lnoten+5
+ else if (nodu .eq. 4) then
+ notexq =sq//'cc'//udq//noteq(1:lnoten)
+ lnote = lnoten+4
+ else if (nodu .eq. 8) then
+ notexq =sq//'c'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 16) then
+ notexq =sq//'q'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 32) then
+ notexq =sq//'h'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 64) then
+ notexq =sq//'wh'//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 128) then
+c notexq =sq//'zbreve'//noteq(1:lnoten)//sq//'sk'
+c lnote = lnoten+10
+ notexq =sq//'breve'//noteq(1:lnoten)
+ lnote = lnoten+6
+ else
+ dotq = 'p'
+ ldot = 1
+ if (btest(iornq(ivx,ip),13)) then
+c
+c Dotted note with ')' ornament
+c
+ dotq='m'
+ else if (btest(islur(ivx,ip),3)) then
+c
+c Double dot
+c
+ dotq = 'pp'
+ ldot = 2
+ end if
+ if (nodu .ge. 192) then
+ notexq =sq//'breve'//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+6+ldot
+ else if (nodu .ge. 96) then
+ notexq =sq//'wh'//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 48) then
+ notexq =sq//'h'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 24) then
+ notexq =sq//'q'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 12) then
+ notexq =sq//'c'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 6) then
+ notexq =sq//'cc'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+4+ldot
+ ispoi = .true.
+ else
+ notexq =sq//'ccc'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+5+ldot
+ ispoi = .true.
+ end if
+ if (dotq(1:1) .eq. 'm') then
+c
+c Need another call to the note, in case the first one has octave shifts
+c
+ if (lnoten .eq. 2) then
+ notexq = notexq(1:lnote)//'{'//noteq(2:2)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ end if
+ else if (btest(islur(ivx,ip),29)) then
+c
+c Blank rest
+c
+ notexq = sq//'sk'
+ lnote = 3
+ else
+c
+c Non-blank rest
+c
+ lnote = 0
+ nole = mod(nole+20,100)-20
+c
+c Kluge to get pause symbol for rp:
+c
+ if (btest(islur(ivx,ip),19)) nodu = 64
+ if (nodu .le. 28) then
+c
+c Normal rest < or = double-dotted quarter
+c
+ lrest = 3
+ if (nodu .gt. 14) then
+ restq =sq//'qp'
+ else if (nodu .gt. 7) then
+ restq =sq//'ds'
+ else if (nodu .gt. 3) then
+ restq =sq//'qs'
+ else if (nodu .gt. 1) then
+ restq =sq//'hs'
+ else
+ restq =sq//'qqs'
+ lrest = 4
+ end if
+c if (2**log2(nodu) .ne. nodu) then
+cc
+cc One or two dots on rest
+cc
+c restq = restq(1:3)//'p'
+c lrest = 4
+c if (2*nodu .gt. 3*2**log2(nodu)) then
+cc
+cc Double dotted rest
+cc
+c restq = restq(1:4)//'p'
+c lrest = 5
+c end if
+c end if
+ notexq = restq
+ lnote = lrest
+c
+c At this point notexq=restq,lnote=lrest are name of rest. Now raise if necc.
+c
+ if (nole .ne. 0) then
+ if (abs(nole) .lt. 10) then
+ noteq = chax(48+abs(nole))
+ lnoten = 1
+ else
+ write(noteq(1:2),'(i2)')abs(nole)
+ lnoten = 2
+ end if
+ if (nole .gt. 0) then
+ notexq = sq//'raise'//noteq(1:lnoten)//sq//'internote'
+ else
+ notexq = sq//'lower'//noteq(1:lnoten)//sq//'internote'
+ end if
+ lnote = 16+lnoten
+c if (2**log2(nodu) .ne. nodu) then
+cc
+cc Have dot in raised rest. must put in hbox!
+cc
+c notexq = notexq(1:lnote)//sq//'hbox{'
+c lnote = lnote+6
+c end if
+ notexq = notexq(1:lnote)//restq(1:lrest)
+ lnote = lnote+lrest
+c if (2**log2(nodu) .ne. nodu) then
+c notexq = notexq(1:lnote)//'}'
+c lnote = lnote+1
+c end if
+ end if
+ if (2**log2(nodu) .ne. nodu) then
+c
+c Deal with dots (on rests shorter than half rest)
+c
+ restq = sq//'pt'
+ lrest = 3
+ if (2*nodu .gt. 3*2**log2(nodu)) then
+ restq = sq//'ppt'
+ lrest = 4
+ end if
+ nole = nole+4
+ raisedot = 0
+c
+c Tweak dot positions for special cases
+c
+ even = (mod(100+nole,2).eq.0)
+c if (.not.even.and.nodu.gt.8.and.
+c * (nole.lt.0.or.nole.gt.8)) then
+ if (.not.even .and. (nole.lt.0.or.nole.gt.8)) then
+ raisedot = 1
+ end if
+ if (nole.ge.10 .or. nole.le.-1) then
+ write(numq,'(i2)')nole
+ restq = restq(1:lrest)//'{'//numq//'}'
+ lrest = lrest+4
+ else
+ restq = restq(1:lrest)//chax(nole+48)
+ lrest = lrest+1
+ end if
+ if (raisedot.gt.0) then
+ restq = sq//'raise'//sq//'internote'//
+ * sq//'hbox{'//restq(1:lrest)//'}'
+ lrest = lrest+23
+ end if
+
+
+
+ notexq = restq(1:lrest)//notexq(1:lnote)
+ lnote = lnote+lrest
+ end if
+ else
+c
+c Half rest or longer
+c
+ if (nole .eq. 0) then
+c
+c Half or longer rest is not raised or lowered
+c
+ if (nodu .le. 56) then
+ notexq =sq//'hpause'
+ lnote = 7
+ else if (nodu .le. 112) then
+ if (.not.btest(islur(ivx,ip),19) .or.
+ * btest(irest(ivx,ip),25)) then
+ notexq = sq//'pause'
+ else
+ notexq = sq//'pausc'
+ end if
+ lnote = 6
+ else
+ notexq =sq//'PAuse'
+ lnote = 6
+ end if
+ if (2**log2(nodu) .ne. nodu) then
+c
+c Dotted rest, hpause or longer
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ if (2*nodu .gt. 3*2**log2(nodu)) then
+c
+c Double dotted long rest
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+ end if
+ else
+c
+c Raised or lowered half or whole rest
+c
+ if (nodu .eq. 32) then
+ notexq = sq//'lifthpause'
+ lnote = 11
+ else if (nodu .eq. 48) then
+ notexq = sq//'lifthpausep'
+ lnote = 12
+ else if (nodu .eq. 56) then
+ notexq = sq//'lifthpausepp'
+ lnote = 13
+ else if (nodu .eq. 64) then
+ notexq = sq//'liftpause'
+ lnote = 10
+ else if (nodu .eq. 96) then
+ notexq = sq//'liftpausep'
+ lnote = 11
+ else if (nodu .eq. 112) then
+ notexq = sq//'liftpausepp'
+ lnote = 12
+ else if (nodu .eq. 128) then
+ notexq = sq//'liftPAuse'
+ lnote = 10
+ else
+c
+c Assume dotted double whole rest
+c
+ notexq = sq//'liftPAusep'
+ lnote = 11
+ end if
+c
+c Set up height spec
+c
+ nole = sign(abs(nole)/2,nole)
+ if (nole.le.9 .and. nole.ge.0) then
+ noteq = chax(48+nole)
+ lnoten = 1
+ else
+ noteq = '{'
+ if (nole .ge. -9) then
+ write(noteq(2:3),'(i2)')nole
+ lnoten = 3
+ else
+ write(noteq(2:4),'(i3)')nole
+ lnoten = 4
+ end if
+ noteq = noteq(1:lnoten)//'}'
+ lnoten = lnoten+1
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ end if
+ end if
+ end if
+ return
+ end
+ function ntindex(line,s2q,lenline)
+c
+c Returns index(line,s2q) if NOT in TeX string, 0 otherwise
+c
+ character*(*) s2q,line
+ character*1 chax
+ logical intex
+ ndxs2 = index(line,s2q)
+ ndxbs = index(line,chax(92))
+ if (ndxbs.eq.0 .or. ndxs2.lt.ndxbs) then
+ ntindex = ndxs2
+ else
+c
+c There are both bs and s2q, and bs is to the left of sq2. So check bs's to
+c right of first: End is '\ ', start is ' \'
+c
+ len = lenstr(line,lenline)
+ intex = .true.
+ do 1 ic = ndxbs+1 , len
+ if (ic .eq. ndxs2) then
+ if (intex) then
+ ntindex = 0
+ ndxs2 = index(line(ic+1:len),s2q)+ic
+ else
+ ntindex = ndxs2
+ return
+ end if
+ else if (intex .and. line(ic+1:ic+2).eq.chax(92)//' ') then
+ intex = .false.
+ else if (.not.intex .and. line(ic+1:ic+2).eq.' '//chax(92))
+ * then
+ intex = .true.
+ end if
+1 continue
+ end if
+ return
+ end
+ subroutine ntrbbb(n,char1q,ulqq,iv,notexq,lnote)
+c
+c This appends to notexq e.g. '\ibbbu1'
+c
+ common /combbm/ isbbm
+ logical isbbm
+ character*79 notexq
+ character*1 char1q,ulqq,chax
+ character*4 tempq
+ if (n .ge. 5) isbbm = .true.
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//chax(92)//char1q
+ else
+ notexq = chax(92)//char1q
+ end if
+ lnote = lnote+2
+ do 3 im = 1 , n
+ notexq = notexq(1:lnote)//'b'
+ lnote = lnote+1
+3 continue
+c
+c add the number, 0 if 12
+c
+c 5/25/08 Allow >12
+c
+c call istring(mod(iv,12),tempq,len)
+ if (iv .lt. 24) then
+ call istring(iv,tempq,len)
+ else if (iv .eq. 24) then
+ tempq(1:1) = '0'
+ len = 1
+ else
+ call printl('Sorry, too man open beams')
+ call stop1()
+ end if
+ notexq = notexq(1:lnote)//ulqq//tempq(1:len)
+ lnote = lnote+1+len
+ return
+ end
+ function numclef(clefq)
+c
+c Returns the number to be used as argument of \setclef (for MusiXTeX only)
+ character*1 clefq
+c if (ichar(clefq) .lt. 55) then
+ if (ichar(clefq) .le. 55) then
+ numclef = ichar(clefq)-48
+ if (numclef .eq. 7) numclef = 9
+ else
+ numclef = index('tsmanrbxxf',clefq)-1
+ end if
+ return
+ end
+ subroutine outbar(i,jlast)
+ character*1 chax
+ nfmt = log10(i+.5)+2
+ if (jlast+5+nfmt .lt. 80) then
+ write(*,'(a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ write(15,'(a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ jlast = jlast+5+nfmt
+ else
+ write(*,'(/,a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ write(15,'(/,a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ jlast = 5+nfmt
+ end if
+ return
+ end
+ subroutine pmxa(basenameq,lbase,isfirst,nsyout,nbarss,optimize)
+cccccccccccccccccccccccccccccccccccccccccccccccc
+cc cc
+cc Subroutine, combine with pmxb.for
+cc
+cccccccccccccccccccccccccccccccccccccccccccccccc
+cc
+cc Need to consider X spaces in xtuplets when getting poenom, and
+cc maybe fbar?
+cc mx06a
+cc ID numbers for voices when number of voices is reduced.
+cc
+cc mx03a
+cc account for new fracindent for new movements.
+cc
+cc Known changes since pmxa. Version 1.1b (see pmxb for longer list)
+cc
+cc Check ID codes for slurs.
+cc Version 1.24 still does not have details for spacing/positioning
+cc arpeggios if there are accidentals or shifted notes or crowded scores.
+cc Fix problem in 1.22 with arpeggios across multi-line staves
+cc Fix problem in 1.22 with flat key signatures
+cc Read setup data as strings
+cc Warning for octave designation plus +/-
+cc Don't pause for volta warning,
+cc Macros
+cc Correct fsyst to account for transposition and key changes.
+cc Check for nbars > nsyst
+cc
+ccccccccccccccccccccccccccccccccccc
+ parameter (nm=24,nkb=3999,nks=125,maxblks=4000)
+ logical loop,usefig,isfirst,optimize
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ integer nn(nm),nodur(nm,200),ivxo(600),ipo(600),
+ * nnl(nm),itsofar(nm),nib(nm,15),lastbar(0:nks),nbarss(nks)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /compage/ widthpt,ptheight,nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idsig,isig1,
+ * mbrestsav,kchmid(18),ornrpt,shifton,barend,noinst,stickyS
+ real*4 elsk(nkb),celsk(0:nkb),elss(nks),to(600),tno(600)
+ character*128 lnholdq
+ character*44 basenameq
+ logical rest(nm,200),firstline,fbon,isvolt,iskchb,kchmid,ornrpt,
+ * stickyS
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,newmeter,newmb(nkb),issegno,bottreb,isheadr,
+ * shifton,barend
+ common /a1ll/ iv,ivxo,ipo,to,tno,nnl,nv,ibar,mtrnuml,
+ * nodur,lenbar,iccount,nbars,itsofar,nib,nn,
+ * rest,lenbr0,lenbr1,firstline,newmeter
+ common /linecom/ elskb,tnminb(nkb)
+ common /cblock/
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inhnoh
+ common /cominbot/ inbothd
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /commus/ musize,whead20
+ common /comeon/ eonk,ewmxk
+ logical mrecord,mplay,endmac,gotclef,cstuplet
+ logical novshrinktop,upslur,fontslur,WrotePsslurDefaults
+ common /comnvst/ novshrinktop,cstuplte
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ logical fulltrans
+ data wtimesig,wclef,wkeysig
+ * / 0.72 , 0.8 , 0.28 /
+ whead20 = 0.3
+ if (.not.optimize) then
+ print*
+ print*,'Starting first PMX pass'
+ write(15,'(a)') ' Starting first PMX pass'
+ end if
+ if (isfirst) then
+ open(19,file='pmxaerr.dat')
+ write(19,'(i6)') 0
+ close(19)
+ end if
+ if (.not.optimize) jprntb = 81
+ macuse = 0
+ ornrpt = .false.
+ stickyS = .false.
+ mrecord = .false.
+ mplay = .false.
+ lastchar = .false.
+ novshrinktop = .false.
+ cstuplet = .false.
+ fontslur = .true.
+ isligfont = .false.
+ fulltrans = .false.
+ do 42 ibarcnt = 1 , nkb
+ udsp(ibarcnt) = 0.
+ wminnh(ibarcnt) = -1.
+42 continue
+c
+c Initialize input buffer
+c
+ lenbuf0 = ipbuf
+ ipbuf = 0
+ ilbuf = 1
+ call g1etset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,newkey(1),npages,nsyst,musize,bottreb)
+c
+c Set up list of instrument numbers (iv)
+c
+ ivnow = 0
+ do 13 instnow = 1 , noinst
+ do 14 iscount = 1 , nsperi(instnow)
+ ivnow = ivnow+1
+ instno(ivnow) = instnow
+14 continue
+13 continue
+c
+c Save initial meter for midi
+c
+ if (.not.isfirst .and. npages.eq.0) then
+ print*,'Sorry, must have npages>0 for optimization.'
+ call stop1()
+ end if
+ nsyout = nsyst
+c
+c isig1 will be changed in getnote if there is a transposition
+c
+ isig1 = newkey(1)
+ if (npages .gt. nsyst) then
+ call printl('npages > nsyst in input. Please fix the input.')
+ call stop1()
+ end if
+c
+c fbar = afterruleskip/elemskip
+c apt = width of small accidental + space in points (= 6 at 20pt) =wheadpt
+c
+ fbar = 1.
+ wheadpt = whead20*musize
+ ifig = 0
+ usefig = .true.
+ lenbeat = i1fnodur(mtrdenl,'x')
+ lenmult = 1
+ if (mtrdenl .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbr1 = lenmult*mtrnuml*lenbeat
+ lenbr0 = nint(lenmult*xmtrnum0*lenbeat)
+ mtrnuml = 0
+ if (lenbr0 .ne. 0) then
+ ibaroff = 1
+ lenbar = lenbr0
+ else
+ ibaroff = 0
+ lenbar = lenbr1
+ end if
+ ibarcnt = 0
+ nptr(1) = 1
+ iccount = 128
+ nmovbrk = 0
+ nflb = 0
+ nfpb = 0
+ ipagfpb(0) = 1
+ isysfpb(0) = 1
+ ibarflb(0) = 1
+ isysflb(0) = 1
+ nistaff(0) = nv-1
+c
+c Check for pmx.mod
+c
+ linesinpmxmod = 0
+c line1pmxmod = ilbuf
+ call getpmxmod(.true.,' ')
+ if (.not.isfirst .and. linesinpmxmod .gt. 0) then
+ print*,'Sorry, cannot optimize if there is a pmx.mod file'
+ call stop1()
+ end if
+c
+c Initialize for loop over lines
+c
+ nkeys = 1
+ ibrkch(1) = 1
+ mbrestsav = 0
+ shifton = .false.
+ firstline = .true.
+ newmeter = .false.
+ ihead = 0
+ isheadr = .false.
+ gotclef = .false.
+ idsig = 0
+ iddot = 0
+ fintstf = -1.
+ gintstf = 1.0
+ listcresc = 0
+ listdecresc = 0
+30 loop = .true.
+ iskchb = .false.
+ issegno = .false.
+ nbars = 0
+ ibarmbr = 0
+3 do 4 iv = 1 , nv
+ nvmx(iv) = 1
+ ivmx(iv,1) = iv
+ itsofar(iv) = 0
+ nnl(iv) = 0
+ do 5 j = 1 , 200
+ rest(iv,j) = .false.
+ nacc(iv,j) = 0.
+5 continue
+4 continue
+ iv = 1
+ ivx = 1
+ fbon = .false.
+ barend = .false.
+ isvolt = .false.
+2 if (loop) then
+c
+c Within this short loop, nv voices are filled up for the duration of a block.
+c On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv)
+c nodur(..),rest(..). nnl will later be
+c increased and things slid around as accidental skips are added.
+c
+ call g1etnote(loop,ifig,optimize,fulltrans)
+ if (lastchar) go to 20
+ go to 2
+ end if
+ if (mbrestsav .gt. 0) then
+ call printl(' ')
+ call printl(
+ * 'You must enter the same multibar rest in ALL parts')
+ call stop1()
+ end if
+ do 10 ibar = 1 , nbars
+ ibarcnt = ibarcnt+1
+c
+c The following is just a signal to start a new bar when cataloging spaces
+c for catspace(...)
+c
+ nptr(ibarcnt+1) = nptr(ibarcnt)
+ newmb(ibarcnt) = .false.
+ if (newmeter.and.ibar.eq.1) newmb(ibarcnt) = .true.
+c
+c Above is only for spacing calcs later on. Remember new meter can only occur
+c at START of a new input line (ibar = 1)
+c
+ if (ibar .ne. ibarmbr) then
+ if (.not.optimize) call outbar(ibarcnt-ibaroff,jprntb)
+ else
+ if (.not.optimize) then
+ write(15,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt-ibaroff,'-',ibarcnt-ibaroff+mbrest-1
+ write(*,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt-ibaroff,'-',ibarcnt-ibaroff+mbrest-1
+ jprntb = 0
+ end if
+ ibaroff = ibaroff-mbrest+1
+ end if
+ if (firstline .and. lenbr0.ne.0) then
+ if (ibar .eq. 1) then
+ lenbar = lenbr0
+ else
+ lenbar = lenbr1
+ end if
+ end if
+ if (ibar .gt. 1) then
+c
+c For bars after first, slide all stuff down to beginning of arrays
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ioff = nib(ivx,ibar-1)
+ do 12 ip = 1 , nib(ivx,ibar)-ioff
+ nodur(ivx,ip) = nodur(ivx,ip+ioff)
+ rest(ivx,ip) = rest(ivx,ip+ioff)
+ nacc(ivx,ip) = nacc(ivx,ip+ioff)
+12 continue
+11 continue
+ end if
+ do 67 iv = 1 , nv
+ do 67 kv = 1 , nvmx(iv)
+ ioff= 0
+ if(ibar.gt.1)ioff = nib(ivmx(iv,kv),ibar-1)
+67 continue
+ call makeabar()
+ elsk(ibarcnt) = elskb+fbar
+10 continue
+ newmeter = .false.
+ firstline = .false.
+ go to 30
+20 continue
+c
+c Vertical analysis.
+c
+ if (npages .eq. 0) then
+ if (nsyst .eq. 0) then
+ print*,'When npages=0, must set nsyst=bars/syst, not 0'
+ call stop1()
+ end if
+ nsyst = (ibarcnt-1)/nsyst+1
+ if (nv .eq. 1) then
+ nsystpp = 12
+ else if (nv .eq. 2) then
+ nsystpp = 7
+ else if (nv .eq. 3) then
+ nsystpp = 5
+ else if (nv .eq. 4) then
+ nsystpp = 3
+ else if (nv .le. 7) then
+ nsystpp = 2
+ else
+ nsystpp = 1
+ end if
+ npages = (nsyst-1)/nsystpp+1
+ end if
+c
+c Check nsyst vs ibarcnt
+c
+ if (nsyst .gt. ibarcnt) then
+ print*
+ print*,'nsyst,ibarcnt:',nsyst,ibarcnt
+ print*,'There are more systems than bars.'
+ write(15,'(a,2i5)')' nsyst,ibarcnt:',nsyst,ibarcnt
+ write(15,'(a)')' There are more systems than bars.'
+ call stop1()
+ end if
+c
+c Set up dummy forced line & page breaks after last real one
+c
+ nflb = nflb+1
+ ibarflb(nflb) = ibarcnt+1
+ isysflb(nflb) = nsyst+1
+ nfpb = nfpb+1
+ ipagfpb(nfpb) = npages+1
+ isysfpb(nfpb) = nsyst+1
+ heightil = ptheight*4./musize
+ open(12,status='SCRATCH')
+ write(12,'(a)')basenameq(1:lbase)
+ write(12,*)lbase
+c
+c Pass to pmxb the initial signature, including effect of transposition.
+c
+ write(12,'(6f10.5/f10.5,3i5)')fbar,wheadpt,etait,
+ * etatc,etacs1,etatop,etabot,inbothd,inhnoh,isig1
+ write(12,*)npages,widthpt,ptheight,nsyst
+ iflbnow = -1
+ isysb4 = 0
+ do 8 ifpb = 1 , nfpb
+c
+c Each time thru this loop is like a single score with several pages
+c
+ npages = ipagfpb(ifpb)-ipagfpb(ifpb-1)
+ nsyst = isysfpb(ifpb)-isysfpb(ifpb-1)
+ nomnsystp = (nsyst-1)/npages+1
+ nshort = nomnsystp*npages-nsyst
+ do 7 ipage = 1 , npages
+ nsystp = nomnsystp
+ if (ipage .le. nshort) nsystp = nsystp-1
+c
+c Last system number on this page:
+ isysendpg = isysb4+nsystp
+ nintpg = 0
+ do 15 isy = isysb4+1, isysendpg
+ if (isysflb(iflbnow+1) .eq. isy) iflbnow = iflbnow+1
+ nintpg = nintpg+nistaff(iflbnow)
+15 continue
+ xilfrac = 0.
+ xiltxt = 0.
+ if (ipage.eq.1 .and. ihead.gt.0) then
+c
+c Needn't zero out ihead after printing titles if we only allow titles at top?
+c
+ if (iand(ihead,1) .eq. 1) then
+ xiltxt = xiltxt+hgtin*4/musize
+ xilfrac = xilfrac+etait
+ end if
+ if (iand(ihead,2) .eq. 2) then
+ xiltxt = xiltxt+hgtti*4/musize
+ xilfrac = xilfrac+etatc
+ end if
+ if (iand(ihead,4) .eq. 4) then
+ xiltxt = xiltxt+hgtco*4/musize
+ xilfrac = xilfrac+etacs1
+ else
+c
+c Use double the title-composer space if there is no composer
+c
+ xilfrac = xilfrac+etatc
+ end if
+ end if
+ D = xilfrac+nsystp-1+etatop+etabot
+c C = nsystp*(nv-1)
+ C = nintpg
+c xN = heightil - xiltxt - 4*nsystp*nv - (nsystp-1)*xilbn
+ xN = heightil - xiltxt - 4*(nintpg+nsystp) - (nsystp-1)*xilbn
+ if (bottreb) xN = xN-(nsystp-1)*xilbtc
+ if (ihead.eq.0 .and. isheadr) xN = xN - xilhdr
+ if (ifig .eq. 1) then
+ xN = xN - nsystp*xilfig
+ end if
+ glueil = (xN-b*C)/(D+a*C)
+ omegaG = (b*D+a*xN)/(D+a*C)
+c
+c G = \interlines between systems
+c omega*G = \interlines between staves of the same system
+c \interstaff = 4+omega*G
+c C = total number of interstaff spaces in the page
+c D = omega-indep factors for scalable height = nsy-1 (intersystem glue)
+c + etatop + etabot + etatxt +
+c N = scaleable height (\interlignes) = height - htext - staff heights - xil
+c xil = extra interliges = (nsy-1)*xilbn + 10 if header and no titles
+c + (nsy-1)*xiltcb for treble clef bottoms
+c + nsy*xilfig for figures
+c G = N/(D + omega * C) = glueil, (1)
+c But (empirically) omega*G = a*G + b (2)
+c with a=1.071 and b=2.714
+c Solving (1) and (2) gives
+c G = (N-b*C)/(D+a*C) , omega*G = (b*D+a*N)/(D+a*C)
+c Pass to pmxb omega*G (=\interstaff-4)
+c (etatop,bot,it,tc,cx)*G as inputs to \titles
+c
+c glueil = (heightil-xiltxt-nsystp*(xil+4*nv))
+c * /(nsystp*(1+gfact*(nv-1))-1+etatop+etabot+xilfrac)
+c xnsttop = glueil*etatop
+c xintstaff = 4+gfact*glueil
+c
+c Only the first page will get local adjustment now if needed, others in pmxb
+c
+ if (ifpb.eq.1 .and. ipage.eq.1 .and. fintstf.gt.0.) then
+ facins = fintstf
+ fintstf = -1.
+ else
+c
+c gintstf = 1.0 by default, but may be changed with AI<x>
+c
+ facins = gintstf
+ end if
+ write(12,*)nsystp,max(0.,etatop*glueil),facins*(omegaG+4)
+ ihead = 0
+ isheadr = .false.
+ isysb4 = isysendpg
+7 continue
+8 continue
+c
+c Done with vertical, now do horizontals
+c
+ celsk(1) = elsk(1)
+ do 21 ibar = 2 , ibarcnt
+ celsk(ibar) = celsk(ibar-1)+elsk(ibar)
+21 continue
+ lastbar(0) = 0
+ ibar1 = 1
+ wmins = -1.
+ iflb = 1
+ imovbrk = 0
+ ikey = 1
+c
+c Return nsyst to its *total* value
+c
+ nsyst = isysfpb(nfpb)-1
+ do 22 isyst = 1 , nsyst
+ if (isyst .eq. isysflb(iflb)) iflb = iflb+1
+ if (nmovbrk.gt.0 .and. imovbrk.lt.nmovbrk) then
+ if (isyst .eq. isysmb(imovbrk+1)) imovbrk = imovbrk+1
+ end if
+ ibarb4 = lastbar(isyst-1)
+ if (isyst .eq. 1) then
+ if (isfirst) elsstarg = celsk(ibarflb(1)-1)/
+ * (isysflb(1)-1-fracindent)*(1-fracindent)
+ celskb4 = 0.
+ else
+ celskb4 = celsk(ibarb4)
+c
+c Must dimension isysmb(0:*) just so I can execute this test!
+c
+ if (isfirst) then
+ if (nmovbrk.gt.0 .and. isyst.eq.isysmb(imovbrk)) then
+c
+c First syst after forced line break. There may be indentation.
+c
+ elsstarg = (celsk(ibarflb(iflb)-1)-celskb4)
+ * /(isysflb(iflb)-isyst-fracsys(imovbrk))
+ * *(1-fracsys(imovbrk))
+ else
+c
+c There is no indentation to deal with
+c
+ elsstarg = (celsk(ibarflb(iflb)-1)-celskb4)
+ * /(isysflb(iflb)-isyst)
+ end if
+ end if
+ end if
+ if (isfirst) then
+ diff1 = abs(elsstarg-elsk(ibarb4+1))
+ do 23 ibar = ibarb4+2 , ibarcnt
+ diff = elsstarg-(celsk(ibar)-celskb4)
+ if (abs(diff) .ge. diff1) go to 24
+ diff1 = abs(diff)
+23 continue
+24 ibar = ibar-1
+ lastbar(isyst) = ibar
+ nbarss(isyst) = ibar-ibarb4
+ else
+c
+c nbarss is given as an input, must compute lastbar and ibar
+c
+ lastbar(isyst) = nbarss(isyst)+ibarb4
+ ibar = lastbar(isyst)
+ end if
+c
+c elss is # of elemskip in the syst. from notes & ars's, not ruleskips, ask's.
+c
+ elss(isyst) = celsk(ibar)-celskb4
+ write(12,'(i5)')lastbar(isyst-1)+1
+c
+c Transposed sigs are isig1, newkey(2,3,...).
+c
+ if (ikey .eq. 1) then
+ key1 = isig1
+ else
+ key1 = newkey(ikey)
+ end if
+ fsyst = wclef+abs(key1)*wkeysig+2./musize
+ xelsk = 0.
+1 if (ikey.lt.nkeys) then
+ if (ibrkch(ikey+1).le.lastbar(isyst)) then
+c
+c Add space for all key changes
+c
+ ikey = ikey+1
+ key2 = newkey(ikey)
+ naccs = max(abs(key2-key1),max(abs(key1),abs(key2)))
+ fsyst = fsyst+naccs*wkeysig
+c
+c Account for afterruleskips (fbar)
+c
+ xelsk = xelsk+fbar/2
+ if (ibrkch(ikey).lt.lastbar(isyst) .and. .not.kchmid(ikey))
+ * xelsk = xelsk-1.
+ key1 = key2
+ go to 1
+ end if
+ end if
+c
+c Add extra fixed space for double bar
+c
+ if (isyst .eq. nsyst) then
+ fsyst = fsyst+4.5/musize
+ end if
+c
+c Add extra fixed space for initial time signature
+c
+ if (isyst .eq. 1) then
+ fsyst = fsyst+wtimesig
+ end if
+c
+c Add extra fixed space for time signature changes & user-defined spaces
+c
+ do 26 ibars = ibarb4+1 , lastbar(isyst)
+ if (newmb(ibars)) fsyst = fsyst+wtimesig
+ fsyst = fsyst+udsp(ibars)/musize
+26 continue
+ if (isyst .eq. 1) then
+ wdpt = widthpt*(1-fracindent)
+ else
+ if (nmovbrk.gt.0 .and. imovbrk.gt.0 .and.
+ * isyst.eq.isysmb(imovbrk)) then
+ wdpt = widthpt*(1-fracsys(imovbrk))
+ else
+ wdpt = widthpt
+ end if
+ end if
+ wsyspt = wdpt-fsyst*musize-0.4*nbarss(isyst)
+c
+c Checks for min spacing
+c Get min allowable space
+c
+ dtmin = 1000.
+ do 45 ibar = ibar1 , ibar1+nbarss(isyst)-1
+ dtmin = min(dtmin,tnminb(ibar))
+ if (wminnh(ibar).ge.0.) wmins = wminnh(ibar)
+45 continue
+ if (wmins .lt. 0) wmins = 0.3
+ wminpt = (1+wmins)*0.3*musize
+c
+c Find max duration & # of notes for this system
+c
+ dtmax = 0.
+ nns = 0
+ do 43 iptr = nptr(ibar1) , nptr(ibar1+nbarss(isyst))-1
+ dtmax = max(dtmax,durb(iptr))
+ nns = nns + nnpd(iptr)
+43 continue
+ elmin0 = wsyspt*f1eon(dtmin)/(elss(isyst)+xelsk)
+ if (elmin0 .ge. wminpt) then
+c
+c Subtract out fbar stuff to keep old way of passing sumelsk to pmxb;
+c there is no need to "flatten"
+c
+ sumelsk = elss(isyst)-fbar*nbarss(isyst)
+ eonk = 0.
+ ewmxk = 1.
+ else
+ elmin1 = wsyspt/((fbar*nbarss(isyst)+xelsk)/f1eon(dtmax)+nns)
+ if (elmin1 .le. wminpt) then
+c print*
+c print*,'In system #',isyst,' cannot meet min. space rqmt'
+c write(15,'(/a,i5,a)')
+c * 'In system #',isyst,' cannot meet min. space rqmt'
+ eonk = 0.9
+ else
+c
+c Find eonk by Newton method
+c
+c eonk = min(.9,(wminpt-elmin0)/(elmin1-elmin0))
+ call findeonk(nptr(ibar1),nptr(ibar1+nbarss(isyst))-1,
+ * wsyspt/wminpt,fbar*nbarss(isyst)+xelsk,dtmin,dtmax,
+ * (wminpt-elmin0)/(elmin1-elmin0))
+ eonk = min(.9,eonk)
+ end if
+ ewmxk = f1eon(dtmax)**eonk
+c
+c Recompute poenom!
+c
+ sumelsk = 0
+ do 44 iptr = nptr(ibar1) , nptr(ibar1+nbarss(isyst))-1
+ sumelsk = sumelsk
+ * + nnpd(iptr)*sqzb(iptr)*feon(durb(iptr)/sqzb(iptr))
+44 continue
+ end if
+ poenom = wsyspt/(sumelsk+fbar*nbarss(isyst)+xelsk)
+c
+c Set fracindent for output: orig if isyst=1, fracsys(imovbrk) if movbrk, else 0
+c
+ if (isyst .gt. 0) then
+ if (nmovbrk.gt.0 .and. imovbrk.gt.0 .and.
+ * isyst.eq.isysmb(imovbrk)) then
+ fracindent = fracsys(imovbrk)
+ else
+ fracindent = 0.
+ end if
+ end if
+ write(12,'(1pe12.5/i5,5e12.3)') poenom,nbarss(isyst),
+ * sumelsk,fsyst,fracindent,eonk,ewmxk
+ ibar1 = ibar1+nbarss(isyst)
+22 continue
+ rewind(12)
+ open(13,status='SCRATCH')
+ write(13,'(i5)')ifig
+ rewind(13)
+ ilbuf = 1
+ ipbuf = 0
+ if (.not.optimize) then
+ write(*,'(/,a)')' Done with first pass'
+ print*
+ write(15,'(/,a)')' Done with first pass'
+ write(15,'()')
+ end if
+c
+c Following syntax is needed since pmxa is called with literal argument .false.
+c
+ if (isfirst) isfirst = .false.
+ return
+ end
+ subroutine pmxb(inlast,poevec,ncalls,optimize)
+cccccccccccccccccccccccccc
+cc
+cc To Do
+cc
+cc Resolve disagreement in final poe for 1st system, compared with *.mx2
+cc Shift slurs on right- or left-shifted main notes (2/7/99)
+cc Various end-of-input-block repeat problems (ick142.pmx).
+cc Force multiplicity for un-beamed xtups.
+cc Clef change at end of piece
+cc Global "A" option to maximize "X" at a given time tick.
+cc Tighten test for end-of-bar hardspace, flgndv(ivx) due to right-shifted
+cc note. See trubl18.pmx
+cc Tab character as space.
+cc Clef interference with second line of music.
+cc Add space for interferences between *different* lines of music?
+cc Shift arpeggios, both automatic and manual.
+cc Different musicsize for different instruments.
+cc Spacing checks for accid's on left-shifted chord notes
+cc Spacing checks for double dots
+cc Allow forced line breaks w/o setting nsyst.
+cc Cresc-Decresc. (Enhance MusiXTeX first?)
+cc Dynamic Marks.
+cc Bug with Voltas at line end (MusiXTeX problem?).
+cc Subtle bug w/ slur hgt over line brk, see trubl15.pmx
+cc Stem-end slurs.
+cc Allow units in indentation.
+cc Make inline TeX more context sensitive.
+cc Werner's 4/2/98 problem with "o?"
+cc Scor2prt converts e.g. "r0+0" into "r0 0", which seems to be wrong.
+cc converts e.g. "r2db" into "r2d", which might be wrong.
+cc Werner's generalsignature problem with Key change and new transposition.
+cc (wibug8.pmx)
+cc Unequal xtuplets
+cc Print both sets of bar #'s in tex file.
+cc Make barlines invisible \def\xbar{\empty} , fix fbar.
+cc Auto-tie slurs 'At'
+cc Forced line break anywhere (e.g. at a mid-bar repeat).
+cc Clef change at very start of file.
+cc Tighten test for M as macro terminator.
+cc Fix title so not separate limit on author length + composer length.
+cc Arpeggios in xtups.
+cc
+cc mx10b
+cc Option for instrument name at top center. Last item in P command:
+cc P[n]c text is instrument name (use in parts)
+cc P[n]cstuff text is stuff (up to 1st blank)
+cc P[n]c"stuff with spaces" text is stuff with spaces
+cc
+cc Post version 1.43
+cc Reduced space rqmt for multiplicity-0 graces (no flag)
+cc Removed last sepsym in centered whole-bar rests, fixes volta height bug.
+cc
+cc Version 1.43
+cc Fix spacing for end-of-line signature change.
+cc Adjust left-shift of grace group for shifted accidentals.
+cc Put in extra space for left-shifted accidentals.
+cc Fix bug with dot-shift before accid-shift on chord note.
+cc Space-check for right-shifted main notes.
+cc Enable forcing stem direction of single notes in non-beamed xtups.
+cc Disallow clef change after last note before end of input block (pmxa)
+cc Print meter change before page break
+cc increase length of strings for \titles macro
+cc version 1.42
+cc Loosen up input syntax for "X" commands. Subroutine getx()
+cc "B" and "P" in "X" commands
+cc mx09b
+cc Allow multiple rests at start of xtup
+cc Add 64th rest
+cc Fix xtup numbers over rests. (subroutine levrn)
+cc Initialize notcrd=.false. every gulp. Avoids undefined state with e.g.
+cc c za / ( c a ...
+cc Allow double dots to be shifted.
+cc Fix spacing with double dotted notes; permit splitting small note.
+cc Fix \dotted printout so it works with old compiler
+cc mx08b
+cc Automatic spaces if needed for shifted accidentals.
+cc Some Dynamics
+cc Increase accid. horiz. shift resolution to .o5 (use one more bit in nacc)
+cc version 1.41
+cc Allow ":" as last char of path name
+cc Dotted slurs "sb"
+cc Continue bar numbering at movement break "L[integer]Mc"
+cc mx07b
+cc Whole-bar rests with double lines of music. Fixed all options ?
+cc Shift accidentals, either [+|-][integer][+|-][number] or [<|>][number].
+cc Option to suppress centering full-bar rests. "o"
+cc mx06b
+cc Shift accid on left-shifted chord note.
+cc Rest as first note of xtup.
+cc Wrong slopes with small widths. Scale slfac1 by widthpt_default/widthpt
+cc Allow Rb for single bar at movemnet break or end of piece. (islur(25))
+cc Change # of inst at a movement break. noinst is total # and must be used
+cc in 1st movement. ninow is current. nspern(1,...,ninow) is current
+cc staves/inst, nsperi(1,...,noinst) is original. rename tells whether to
+cc reprint names in parindent at a movement break. Default is .false.
+cc unless ninow changes, then .true. But can force either with r+/- as
+cc option in 'M'
+cc mx04b
+cc Double-dotted notes, separate+beamed, main+chord, still no extra space.
+cc ??? Don't shift slur ends on whole notes.
+cc (pmxa) Write line number of error in pmxaerr.dat
+cc mx02b
+cc Admit "RD" before "/" (search for "rptfq2:" )
+cc In doslur, for multi-line staves, single notes, check forced stem dir'n
+cc before setting stemup (used to set horiz offset).
+ccccccccccccccccccccccccccccccc
+ parameter (nm=24,nks=125,mv=24576,maxblks=4000)
+c
+c FYI /all/ differs in appearance in function ncmid
+c
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ccccccccccccc
+cc islur cc
+ccccccccccccc
+c bit meaning
+c 0 slur activity on this note
+c 1 t-slur here.
+c 2 force 0-slope beam starting on this note
+c 3 Double dotted note!
+c 4 grace before main note
+c 5 left repeat
+c 6 right repeat
+c 7 start Volta
+c 8 doublebar
+c 9 end Volta
+c 10 on=>endvoltabox
+c 11 on=>clefchange
+c 12-14 0=>treble, ... , 6=>bass
+c 15 on=> start new block for clef change (maybe diff. voice)
+c 16 literal TeX string
+c 17 1=up, 0=down stem for single note (override) See bit 30!
+c 18 if on, prohibit beaming
+c 19 if on, full bar rest as pause
+c 20 Beam multiplicity down-up
+c 21 Forced multiplicity for any beam including xtups
+c 22-24 Value of forced multiplicity
+c 25 single barline at movement break
+c 26 doubleBAR (see bits 5,6,8)
+c 27-28 Forced beam fine-tune height (1 to 3)
+c 29 Blank rest
+c 30 If on, get stem dir'n from bit 17
+c 31 If on, suppress printing number with xtuplet starting here
+ccccccccccccc
+cc ipl cc
+ccccccccccccc
+cc 0-7 Location in list [0,200]
+c 0-7 Unused
+c 8 left offset main note one headwidth
+c 9 right offset main note one headwidth
+c 10 chord present?
+c 11-16 Forced beam height adjustment (-30 to +30)
+c 17-22 Forced beam slope adjustment (-30 to +30)
+c 23-26 Slur index for Way-after grace. Inserted when slur is started.
+cc 27 Unused?
+c 27 5th bit for slur index for Way-after grace (100712)
+c 28 key change: only in voice 1
+c 29 Grace after main note. (Type A)
+c 30 In forced beam. Signals need to check beam heights
+c 31 Grace way after main note. (stretch to next note, type W)
+ccccccccccccc
+cc iornq cc
+ccccccccccccc
+c 0 Ornament "(". Was user-defined horizontal slur shift on this note
+c until 9/24/97; changed that to irest(21)
+c 1-13 stmgx+Tupf._)
+c 14 Down fermata, was F
+c 15 Trill w/o "tr", was U
+c 16-18 Editorial s,f,n
+c 19-20 >^
+c 21 "?" for editorial accid, w/ or w/o s,f,n
+c 22 Set if ihornb governs ornament height. Same in icrdorn.
+c 23 Set in getorn if ANY note at time of this main note has ornament.
+c This is ONLY used in beamstrt to signal whether to do more
+c tests for whether ihornb is needed. (ihornb is only needed
+c if nonchord+upbm, chord+upbm+top_note, chord+dnbm+bot_note)
+c (7/1/00)Also set if any dynamic, as ihornb will be needed when dnbm.
+c 24 Slur on after or way-after grace. Use as signal to START slur.
+c 25 Tweak orn ht. Same in icrdorn for chord note
+c 26 Insert user-defined space before this note (was 22)
+c 27 Arpeggio stop or start (if 2 at same time), or all-in-this-chord
+c 28 caesura or breath
+c 29 blank barline (must be iv=1) (would have used islur but no room)
+c 30 "Look-left" option for keyboard rest
+c 31 Set if any note (main or chord) has cautionary accid, for space checks
+ccccccccccccc
+cc irest cc
+ccccccccccccc
+c 0 rest=1, no rest = 0
+c 1 There will be a vertical shift for number of this xtup
+c 2-6 Height shift, 1 => -15, 31 => +15 Indicate by +/- [n] after 'n'
+c 7 There is a horizontal shift for xtup number
+c 9-13 Horiz shift, 1=>-1.5, ... , 31=>+1.5
+c 14 Flip up/down-ness of xtup number
+c 15 Single-voice, single note shift X(...)[p]S
+c 16 Start single-voice, multinote shift with this note X(...)[p]:
+c 17 End single-voice, multinote shift after this note. Enter symbol
+c after note. X:
+c 18 User-defined hardspace after last note of bar, *after* this note.
+c Value still stored in udoff(ivx,nudoff(ivx)), not with other
+c hardspaces in udsp, to avoid confusion with time checks.
+c 19 Move the dot. Data stored in ndotmv,updot,rtdot
+c 20 Set if right-shifted main or chord note here. Use for space checks.
+c 21 User-defined hardspace in xtup
+c 22 User-defined slur shift horizontal slur shift.
+c 23 Set on last note before staff-jumping a beam.
+c 24 Set on first note after staff-jumping a beam
+c 25 Suppress rest centering. "ro"
+c 26 Dynamic on this note
+c 27 Set if left-shifted main or chord note here. Use for space checks.
+c 28 Set if xtup starts on this note.
+c 29 Set on lowest-voice note at same time as 1st note after jump-beam.
+c 30 Set on note after end of jump-beam segment, to force new note group
+c 31 Flag for cautionary accidental
+ccccccccccccc
+cc nacc cc
+ccccccccccccc
+c 0-1 0=no accid, 1=fl, 2=sh, 3=na
+c 2 double
+c 3 big
+c 4-9 vertshift-32
+c 10-16 20*(horiz. shift + 5.35) (Recentered ver 2.32)
+c 17 Midi-only accidental
+c 18 2:1 xtup
+c 19 Together with nacc(18), increase multiplicity by 1 and dot 1st note.
+c 20 Set on last note of each seg except last seg of single-slope beam.
+c 21 Set on 1st note of each seg except 1st seg of single-slope beam.
+c 22-26 If .ne.0, printed xtup number for xtup starting on this note.
+c 27 Set for dotted xtup note. Mult dur by 1.5, mult next by .5 & increase
+c multiplicity by 1
+c 28 Set on main note of chord if accidentals are ordered.
+c 29 Tag for chordal accidental shift...means add to autoshifts.
+c 30-31 Set 30|31 if main note in a chord is part of a 2nd and needs to be shifted.
+c If upstem|downstem, main is upper|lower member of 2nd
+c Action is to interchange pitches only when notes are placed.
+ccccccccccccc
+cc mult cc
+ccccccccccccc
+c 0-3 Multiplicity+8 (mult= # of flags)
+c 4 Set if slope adjustment for xtup bracket
+c 5-9 16+slope adjustment
+c 27 Stemlength override
+c 28-30 New stem length.
+ccccccccccccc
+cc isdat1 cc
+ccccccccccccc
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 ndxslur, set in doslur when beam is started, used on term.
+ccccccccccccc
+cc isdat2 cc
+ccccccccccccc
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted slur
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+ccccccccccccc
+cc isdat3 cc
+ccccccccccccc
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c 14-21 tie level for use in LineBreakTies
+c 22-29 ncm for use in LineBreakTies
+ccccccccccccc
+cc isdat4 cc Set these all at turn-on using s option
+ccccccccccccc
+c 0-5 Linebreak seg 1 voff 1-63 => -31...+31
+c 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3
+c 16-21 Linebreak seg 2 voff 1-63 => -31...+31
+c 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3
+ccccccccccccc
+c icrdat c
+ccccccccccccc
+c 0-7 ip within voice
+c 8-11 ivx (together with 28th bit)
+c 12-18 note level
+c 19 accidental?
+c 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp)
+c 23 shift left
+c 24 shift right
+c 25 arpeggio start or stop
+c 26 flag for moved dot (here, not icrdot, since this is always reset!)
+c 27 Midi-only accidental
+c 28 (6/27/10) 5th bit for ivx, to allow up to 24 voices
+c 29 Tag for accidental shift...means add to autoshifts.
+c 31 Flag for cautionary accidental on chord note
+ccccccccccccc
+c icrdot c:
+ccccccccccccc
+c 0-6 10*abs(vertical dot shift in \internote) + 64
+c 7-13 10*abs(horizontal dot shift in \internote) + 64
+c 14-19 vert accidental shift-32
+c 20-26 20*(horiz accidental shift+3.2)
+c 27-29 top-down level rank of chord note w/accid. Set in crdaccs.
+c
+c Bits in icrdorn are same as in iornq, even tho most orns won't go in crds.
+c
+cccccccccccccccccccccccccccccccc
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*10 figq
+ character*1 ulq,sepsymq,sq,chax
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,rptnd1,rptprev
+ logical loop,lastchar,slint,svolta,evolta,onvolt,
+ * cwrest(nm),islast,inlast,optimize
+ integer istop(80),numbms(nm),istart(80)
+ real*4 xnsttop(40),xintstaff(40),hesk(23),hpts(23),poevec(nks),
+ * tstart(80),squez(80)
+ character*1 clefq(nm),ulfbq,rptfq1,rptfq2,charq
+ character*79 notexq,inameq
+ character*40 pathnameq
+ character*44 basenameq
+ character*24 fmtq
+ character*20 voltxtq
+ character*120 instrq,titleq,compoq
+ common /comlast/ islast,usevshrink
+ logical usevshrink,stickyS,OptLineBreakTies,autofbon
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ common /comstart/ facmtr
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ common /combeam/ ibmtyp
+ common /comnotes/ nnodur,lastlev,ndlev(nm,2),shifton,setis,notcrd,
+ * npreslur,was2(nm),ninow,nobar1,nsystp(40),ipage,
+ * OptLineBreakTies,HeaderSpecial
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comas3/ ask(2500),iask,topmods
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,fbon,ornrpt,shifton,isbjmp,notcrd,was2,
+ * isbj2,fontslur,WrotePsslurDefaults,HeaderSpecial
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*128 litq,lnholdq
+ logical upslur,bar1syst,vshrink,lrpt,rrpt,lrptpend,
+ * ispoi,bcspec,topmods,headlog,clchb,clchv(nm),flgndb,
+ * btest,sluron,setis,nobar1
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /compoi/ ispoi
+ common /combc/ bcspec
+ common /comeon/ eonk,ewmxk
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comhsp/ hpttot(176)
+ common /combmh/ bmhgt,clefend
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ common /commus/ musize,whead20
+ common /comtol/ tol
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ logical mrecord,mplay,endmac,flipend,istype0,lowdot,rename,ispstie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,equalize,
+ * ismbr,putmbr
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comcb/ nbc,ibcdata(36)
+ common /comclefq/ clefq
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /combibarcnt/ ibarcnt
+ if (.not.optimize) then
+ print*
+ print*,'Starting second PMX pass'
+ print*
+ write(15,'(a)')'Starting second PMX pass'
+ end if
+ ncalls = ncalls+1
+ islast = inlast
+ macuse = 0
+ isyscnt = 0
+ stemmax = 8.2
+ stemmin = 3.9
+ stemlen = 6.0
+ sq = chax(92)
+ bcspec = .true.
+ topmods = .false.
+ ismbr = .false.
+ read(12,'(a)')basenameq
+ read(12,*)lbase
+ read(12,*)fbar,wheadpt,etait,etatc,etacs1,etatop,
+ * etabot,inbothd,inhnoh,isig
+ ilbuf = 1
+ ipbuf = 0
+ call getset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,xmtrnum0,
+ * npages,nsyst,musicsize,fracindent,istype0,inameq,
+ * clefq,sepsymq,pathnameq,lpath,isig0)
+ if (ismidi) then
+c
+c Initial key signature and meter for pickup bar
+c
+ call midievent('k',isig,0)
+ if (xmtrnum0 .gt. tol) then
+c
+c We have a pickup. Some tricky stuff to get a meter:
+c
+ xntrial = xmtrnum0
+ do 5 ip2 = 0 , 5
+ if (abs(mod(xntrial,1.)) .lt. tol) go to 6
+ xntrial = xntrial*2
+5 continue
+ print*,'Problem finding meter for pickup bar'
+ xntrial = 1.
+ ip2 = 0
+6 continue
+ call midievent('m',nint(xntrial),2**ip2*mtrdenl)
+ else
+c
+c No pickup, enter the starting meter
+c
+ call midievent('m',mtrnuml,mtrdenl)
+ end if
+ end if
+c
+c Set musicsize from value passed in common, due to possible reset by S[n]m16
+c
+ musicsize = musize
+ read(12,*)npages,widthpt,height,nsyst,
+ * (nsystp(ipa),xnsttop(ipa),xintstaff(ipa),ipa=1,npages),iauto
+c
+c If default width ever changes, must adjust this stmt.
+c
+ slfac1 = 0.00569*524./widthpt
+ figbass = .false.
+ read(13,*)ifig
+ if (ifig .eq. 1) then
+ figbass = .true.
+ open(14,status='SCRATCH')
+ write(14,'(a)')sq//'def'//sq//'fixdrop{'//sq//'advance'//sq//
+ * 'sysno by 1'//sq//'ifcase'//sq//'sysno%'
+ end if
+ lastchar = .false.
+ ibcoff = 0
+ if (xmtrnum0 .gt. 0.) ibcoff = -1
+ open(11,status='SCRATCH')
+c
+c vshrink for the first page is calculated in topfile,
+c and if true set interstaff=10. vshrink affects Titles.
+c Must also save vshrink for page ending.
+c
+ call topfile(basenameq,lbase,nv,clefq,noinst,musicsize,
+ * xintstaff(1),mtrnmp,mtrdnp,vshrink,fbar,fontslur)
+c
+c ninow is working value of # of instruments. noinst is max #, and # at start.
+c
+ ninow = noinst
+c
+c Save original printed meter in case movement breaks
+c
+ movnmp = mtrnmp
+ movdnp = mtrdnp
+c
+ if (islast .and. figbass .and. musicsize.eq.16)
+ * write(11,'(a)')sq//'def'//sq//'figfont{'//sq//'eightrm}%'
+c
+ if (islast .and. isligfont) then
+ if (musicsize .eq. 16) then
+ write(11,'(a)')sq//'font'//sq//'ligfont=cmrj at 8pt%'
+ else
+ write(11,'(a)')sq//'font'//sq//'ligfont=cmrj at 10pt%'
+ end if
+ end if
+ lenbeat = ifnodur(mtrdenl,'x')
+ if (mtrdenl .eq. 2) lenbeat = 16
+ lenb1 = mtrnuml*lenbeat
+ if (mtrdenl .eq. 2) lenb1 = lenb1*2
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ lenb0 = nint(xmtrnum0*lenbeat)
+ if (mtrdenl .eq. 2) lenb0 = lenb0*2
+ if (lenb0 .ne. 0) then
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno by -1'
+ lenbar = lenb0
+ else
+ lenbar = lenb1
+ end if
+c
+c Initialize full-program variables
+c
+ fixednew = 0.
+ scaldold = 0.
+ fintstf = -1.
+ gintstf = 1.
+ nasksys = 0
+ ibarcnt = 0
+ iline = 0
+ movbrk = 0
+ isystpg = 0
+ ipage = 1
+ iccount = 128
+ iask = 0
+ nhstot = 0
+ nb = 1
+ if (.not.optimize) jprntb = 81
+ idsig = 0
+c
+c Next 5 are raise-barno parameters. irzbnd is integer part of default level.
+c
+ irzbnd = 3
+ if (isig.eq.3 .and. clefq(nv).eq.'t') irzbnd = 4
+ is1n1 = 0
+ isnx = 0
+ SlurCurve = 0.
+c
+c 111109 Made global rather than per gulp
+c
+ ndyn = 0
+ ispoi = .false.
+ slint = .false.
+ lrptpend = .false.
+ rptnd1 = .false.
+ rptfq2 = 'E'
+ rptprev = .false.
+ onvolt = .false.
+ flgndb = .false.
+ fbon = .false.
+ shifton = .false.
+ ornrpt = .false.
+ setis = .false.
+ lowdot = .false.
+ rename = .false.
+ nobar1 = .false.
+ equalize = .false.
+ usevshrink = .true.
+ WrotePsslurDefaults = .false.
+ OptLineBreakTies = .false.
+ HeaderSpecial = .false.
+c
+c vshrink is initialized in topfile
+c
+ stickyS = .false.
+c
+c ixrest = 1 or 2 if xtup has started with a rest
+c
+ do 1 ivx = 1 , nm
+ ixrest(ivx) = 0
+ fullsize(ivx) = 1.
+c
+c Set legacy note level to middle c as default
+c
+ ndlev(ivx,1) = 29
+ ndlev(ivx,2) = 29
+1 continue
+ npreslur = 0
+ nhssys = 0
+ listslur = 0
+ do 31 i = 1 , 202
+ isdat1(i) = 0
+ isdat2(i) = 0
+31 continue
+ nsdat = 0
+c
+c Initialize flag for figures in any other voice than 1
+c
+ ivxfig2 = 0
+c
+c Initialize for loop over gulps
+c
+ firstgulp = .true.
+c
+c Start a gulp
+c
+30 loop = .true.
+ notcrd = .true.
+ isbjmp = .false.
+ isbj2 = .false.
+ autofbon = .false.
+ tautofb = 0.
+ nbars = 0
+ nfigs(1) = 0
+ nfigs(2) = 0
+ ngrace = 0
+ ntrill = 0
+ ncrd = 0
+ nudorn = 0
+ nlit = 0
+ nvolt = 0
+ ibarmbr = 0
+ nudsp = 0
+c ndyn = 0 ! 111109
+ ntxtdyn = 0
+ nbc = 0
+ NumArpShift = 0
+ do 3 i = 1 , 37
+ graspace(i) = 0.
+3 continue
+c
+c Now initialize up to nv. Do it in getnote as r'qd for 2nd voices per syst.
+c and also if nv increases in an 'M' directive.
+c
+ do 4 iv = 1 , nv
+ call newvoice(iv,clefq(iv),.false.)
+4 continue
+c
+c Check if endsymbol was set earlier
+c
+ if (rptnd1) then
+ rptnd1 = .false.
+ rptfq2 = rptfq1
+ else
+c
+c Only use if movbrk>0, to signal default ('RD')
+c
+ rptfq2 = 'E'
+ end if
+ iv = 1
+ ivx = 1
+2 if (loop) then
+c
+c Within this loop, nv voices are filled up for the duration of the block.
+c On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv)
+c nolev(nv,nnl(nv)),nodur(..),accq(..),irest(..).
+c nbars is for this input block.
+c Only at the beginning of an input block will there be a possible mtr change,
+c signalled by a nonzero mtrnuml. (which will be re-zeroed right after change)
+c
+ call getnote(loop)
+ if (lastchar) go to 40
+ go to 2
+ end if
+c
+c Finished an input block (gulp).
+c
+ if (ismidi) then
+c
+c Put rests into midi array for 2nd lines that were not used in this gulp.
+c
+ do 60 iv = 1 , nv
+ if (twoline(iv) .and. nvmx(iv).eq.1) then
+ if (firstgulp .and. lenb0.ne.0) then
+ call addmidi(midchan(iv,2),0,0,0,
+ * (nbars-1.)*lenbar+lenb0,.true.,.false.)
+ else
+ call addmidi(midchan(iv,2),0,0,0,1.*nbars*lenbar,.true.,
+ * .false.)
+ end if
+ end if
+60 continue
+ end if
+ nvolt = 0
+ do 28 iv = 1 , nm
+ nudoff(iv) = 0
+ ndotmv(iv) = 0
+28 continue
+c
+c Put stuff at top of p.1. Must wait until now to have read title info.
+c
+ if (ibarcnt .eq. 0) then
+ call puttitle(inhnoh,xnsttop(ipage),
+ * etatop,sq,etait,etatc,etacs1,nv,vshrink,sepsymq)
+ if (HeaderSpecial)
+c
+c Write special header for first page
+c
+ * write(11,'(a)')chax(92)//'special{header=psslurs.pro}%'
+ end if
+ do 10 ibar = 1 , nbars
+ ibarcnt = ibarcnt+1
+ bar1syst = ibarcnt .eq. iauto
+ ndig = max(0,int(log10(.001+ibarcnt+ibcoff)))
+ if (islast)
+ * write(11,'(a11,i'//chax(50+ndig)//')')
+ * '% Bar count',ibarcnt+ibcoff
+ if (ibar .ne. ibarmbr) then
+ if (.not.optimize) call outbar(ibarcnt+ibcoff,jprntb)
+ else
+ if (.not.optimize) then
+ write(*,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt+ibcoff,'-',ibarcnt+ibcoff+mbrest-1
+ write(15,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt+ibcoff,'-',ibarcnt+ibcoff+mbrest-1
+ jprntb = 0
+ end if
+ ibcoff = ibcoff+mbrest-1
+ if (ibar.eq.1 .and. firstgulp .and.
+ * .not.btest(islur(1,1),5)) xb4mbr = facmtr*musicsize
+c
+c The above may be he only case where the space-before option is used in \mbrest
+c
+ end if
+c
+c Move the read to after end-of-bar hardspace checks, so we get right poenom
+c at end of a line.
+c if (bar1syst) read(12,*) poenom
+c
+c Check for clef at start of bar. No slide yet. Also flags at end of prev.
+c bar. This block is run at the start of every bar. May fail for flag at
+c end of last bar. To account for necc. hardspaces, compute and store
+c nhssys = # of hard spaces for this system
+c hesk(nhssys) = elemskips avialable
+c hpts(nhssys) = hard points needed, including notehead
+c Here, merely insert placeholder into output. Later, when poe is computed,
+c compute additional pts and store them in hpttot(1...nhstot). Finally in
+c subroutine askfig, write true pts where placeholders are.
+c
+ ioff = 0
+ if (ibar .gt. 1) ioff = nib(1,ibar-1)
+ clchb = btest(islur(1,ioff+1),15)
+ putmbr = .false.
+ if (ismbr) then
+ if (clchb) then
+c
+c Clef change and multi-bar rest coming up. Kluge to get space at end of rest.
+c
+ write(11,'(a)')sq//'let'//sq//'mbrt'//sq//'mbrest'
+ * //sq//'def'//sq//'mbrest#1#2#3{%'
+ write(11,'(a14,f4.1,a)')sq//'mbrt{#1}{#2}{',musicsize*.55,
+ * '}'//sq//'global'//sq//'let'//sq//'mbrest'//sq//'mbrt}%'
+ end if
+ ismbr = .false.
+ putmbr = .true.
+ end if
+ if (ibar .eq. ibarmbr) ismbr = .true.
+c
+c Set flag here so at start of next bar, if there's a clef change, can add space
+c after the mbr with the above kluge
+c
+ if (.not.(clchb .or. flgndb)) go to 23
+c
+c Must check available space
+c
+ ptsndb = 0.
+c
+c Zero out block signal
+c
+ if (clchb) islur(1,ioff+1) = ibclr(islur(1,ioff+1),15)
+c
+c In this loop, we determine how much hardspace is needed (if any)
+c 9/7/97 Note that for last bar in input block, if number of lines of
+c music decreases in new block, highest numbered ones won't be checked
+c since the loop below covers the new nvmx(iv), not necessarily the old
+c one.
+c 4/18/98 Apparently nmxsav was a solution to the above problem
+c
+ do 16 iv = 1 , nv
+ do 16 kv = 1 , nvmxsav(iv)
+ ivx = ivmxsav(iv,kv)
+ ptsndv = flgndv(ivx)*wheadpt
+ ioff = 0
+ if (ibar .gt. 1) then
+ ioff = nib(ivx,ibar-1)
+ ip = ioff
+ if (ibar.gt.2) ip = ioff-nib(ivx,ibar-2)
+c prevtn(ivx) = tnote(iand(ipl(ivx,ip),255))
+ prevtn(ivx) = tnote(ipl2(ivx,ip))
+c
+c If ibar=1 (1st bar in input block), prevtn(ivx) was set at end of makeabar.
+c
+ end if
+c
+c Only allow clef changes when ivx <= nv
+c
+ if (ivx .le. nv) then
+ clchv(iv) = clchb .and. btest(islur(iv,ioff+1),11)
+ if (clchv(iv)) then
+c
+c Clef change in this voice. Turn off signal. Get space avail.
+c
+ islur(iv,ioff+1) = ibclr(islur(iv,ioff+1),11)
+ if (abs(prevtn(iv)-space(nb)).lt.tol) ptsndv =
+ * ptsndv+clefend*wheadpt
+ end if
+ end if
+ ptsndb = max(ptsndb,ptsndv+wheadpt*xspfac)
+16 continue
+c
+c ???? where is nb set??? nb probably in left over from makeabar
+c
+ esk = feon(space(nb)*squez(nb))
+ ptsdflt = esk*poenom-wheadpt
+c if ((ptsndb.gt.ptsdflt.or.ptsgnd.gt.0.) .and. movbrk.eq.0) then
+ if ((ptsndb.gt.ptsdflt.or.ptsgnd.gt.0.) .and. movbrk.eq.0
+ * .and. .not.putmbr) then
+c
+c Must ADD hardspace! So put in a placeholder, and store params for later.
+c
+ if (islast) write(11,'(a)')sq//'xardspace{ pt}%'
+ nhssys = nhssys+1
+ if (ptsndb-ptsdflt .gt. ptsgnd-poenom*eskgnd) then
+ hesk(nhssys) = esk
+ hpts(nhssys) = ptsndb+wheadpt
+ else
+ hesk(nhssys) = eskgnd
+ hpts(nhssys) = ptsgnd+wheadpt
+ end if
+ fixednew = fixednew+hpts(nhssys)
+ scaldold = scaldold+hesk(nhssys)
+ end if
+ if (clchb) then
+ do 17 iv = 1 , nv
+ if (clchv(iv)) then
+ notexq = sq//'znotes'
+ lnote = 7
+ do 24 iiv = 2 , iv
+ notexq = notexq(1:lnote)//sepsymq(iiv-1)
+ lnote = lnote+1
+24 continue
+c
+c Recompute ioff since it will vary from voice to voice
+c
+ if (ibar .eq. 1) then
+ ioff = 0
+ else
+ ioff = nib(iv,ibar-1)
+ end if
+c
+c Must call clefsym to get nclef, even if there is a movement break
+c
+ call clefsym(islur(iv,ioff+1),fmtq,lclef,nclef)
+ if (movbrk.eq.0 .and.
+ * islast)
+ * write(11,'(a)')notexq(1:lnote)//fmtq(1:lclef)//sq//'en%'
+ call wsclef(iv,ninow,clefq,nclef)
+ end if
+17 continue
+ if (islast) write(11,'(a)')sq//'pmxnewclefs'
+ end if
+23 continue
+c
+c End of loop for end-of-bar hardspaces and non-movbrk clef symbol.
+c
+ if (bar1syst) then
+ read(12,*) poenom
+ end if
+c
+c Repeat symbols. Haven't slid down yet, so use islur(1,nib(1,ibar-1)+1)
+c
+ if (ibar .eq. 1) then
+ islnow = islur(1,1)
+ iornqnow = iornq(1,1)
+ else
+ islnow = islur(1,nib(1,ibar-1)+1)
+ iornqnow = iornq(1,nib(1,ibar-1)+1)
+ end if
+c
+c Check for R-symbols set at end of prior input block
+c
+ if (movbrk.eq.0 .and. rptfq2.ne.'E') then
+ if (rptfq2 .eq. 'D') then
+ islnow = ibset(islnow,26)
+ else if (rptfq2 .eq. 'r') then
+ islnow = ibset(islnow,6)
+ else if (rptfq2 .eq. 'd') then
+ islnow = ibset(islnow,8)
+ else if (rptfq2 .eq. 'b') then
+ islnow = ibset(islnow,25)
+ else
+ print*
+ print*,'Illegal symbol with "R" at end of input block:',
+ * rptfq2
+ call stop1()
+ end if
+ rptfq2 = 'E'
+ end if
+ if (iand(islnow,352) .ne. 0) then
+c
+c Bit 5(lrpt), 6(rrpt), or 8(doublebar) has been set
+c
+ lrpt = btest(islnow,5)
+ rrpt = btest(islnow,6)
+ lrptpend = lrpt.and.bar1syst
+ if (lrpt .and. .not.lrptpend) then
+ if (rrpt) then
+ if (islast) write(11,'(a)')sq//'setleftrightrepeat'
+ fixednew = fixednew+wheadpt*lrrptfac-0.4
+ else
+ if (islast) write(11,'(a)')sq//'setleftrepeat'
+ fixednew = fixednew+wheadpt*rptfac-0.4
+ end if
+ else if (rrpt) then
+ if (islast) write(11,'(a)')sq//'setrightrepeat'
+ fixednew = fixednew+wheadpt*rptfac-0.4
+ else if (btest(islnow,8)) then
+ if (islast) write(11,'(a)')sq//'setdoublebar'
+ fixednew = fixednew+wheadpt*dbarfac-0.4
+ end if
+ else if (btest(islnow,26)) then
+c
+c doubleBAR
+c
+ if (islast) write(11,'(a)')sq//'setdoubleBAR'
+ fixednew = fixednew+wheadpt*ddbarfac-0.4
+ else if (btest(iornqnow,29)) then
+c
+c no bar line
+c
+c-- if (islast) write(11,'(a)')sq//'setzalaligne'
+c++
+ if (islast) then
+ if (movbrk .eq. 0) then
+ write(11,'(a)')sq//'setzalaligne'
+ else
+c
+c Encountered "Rz" at start of input block at start of new movement, Must
+c use newmovement macro with arg 4 rather than setzalaligne, since former
+c already redefines stoppiece.
+c
+ rptfq2 = 'z'
+ end if
+ end if
+c++
+ fixednew = fixednew-0.4
+ end if
+c
+c 1st and 2nd endings
+c
+ svolta = btest(islnow,7)
+ evolta = btest(islnow,9)
+ if (evolta) then
+ if (btest(islnow,10)) then
+ if (islast) write(11,'(a)')sq//'endvoltabox'
+ else
+ if (islast) write(11,'(a)')sq//'endvolta'
+ end if
+ onvolt = .false.
+ end if
+ if (svolta) then
+ nvolt = nvolt+1
+ lvoltxt = index(voltxtq(nvolt),' ')-1
+ if (lvoltxt .eq. 1) then
+ if (islast) write(11,'(a)')sq//'Setvolta'
+ * //voltxtq(nvolt)(1:1)//'%'
+ else
+ if (islast) write(11,'(a)')sq//'Setvolta'//'{'//
+ * voltxtq(nvolt)(1:lvoltxt)//'}%'
+ end if
+ onvolt = .true.
+ end if
+ if (ibar .gt. 1) then
+ ipnow = nib(1,ibar-1)+1
+ else
+ ipnow = 1
+ end if
+ iplnow = ipl(1,ipnow)
+ if (bar1syst) then
+c
+c If listslur>0, then there is at least one slur or tie carried over the break
+c
+ ispstie = .false.
+ if (OptLineBreakTies .and. .not.fontslur .and. listslur.ne.0
+ * .and. islast)
+ * call LineBreakTies(isdat1,isdat2,isdat3,isdat4, nsdat,
+ * ispstie,sepsymq)
+ iline = iline+1
+c
+c End an old system, Start a new system
+c
+ if (iline .ne. 1) then
+c
+c Not first line.
+c Get corrected poe = points/elemskip for *previous* system
+c
+ wdpt = widthpt*(1-fracindent)
+ poe = (wdpt-fsyst*musicsize-0.4*nbarss-fixednew)/
+ * (elsktot+fbar*nbarss-scaldold)
+ isyscnt = isyscnt+1
+ poevec(isyscnt) = poe
+c
+c Transfer data for system into global arrays to hold until very end
+c
+ do 9 ia = 1 , nasksys
+ iask = iask+1
+ ask(iask) = wasksys(ia)/poe-abs(elasksys(ia))
+c
+c Only admit negative ask if it was user-defined space, signalled by elask<=0.
+c
+ if (elasksys(ia).gt.0) ask(iask)=dim(ask(iask),0.)
+9 continue
+ do 25 ia = 1 , nhssys
+ nhstot = nhstot+1
+ hpttot(nhstot) = max(hpts(ia)-hesk(ia)*poe,0.)
+25 continue
+c
+c Reset counters for new system
+c
+ scaldold = 0.
+ fixednew = 0.
+ nasksys = 0
+ nhssys = 0
+ end if
+c
+c End of if block for first bar of non-first system. Still 1st bar, any system
+c
+ if (islast.and.figbass) write(11,'(a)')sq//'fixdrop%'
+ isystpg = isystpg+1
+c
+c Try moving the next stmt way down, to fix a bug and get \eject printed at
+c end of single-system page.
+c if (isystpg .eq. nsystp(ipage)) isystpg = 0
+ read(12,*)nbarss,elsktot,fsyst,frac,eonk,ewmxk
+ if (iline .gt. 1) fracindent=frac
+ if (figbass) then
+ ifigdr(1,iline) = 4
+ ifigdr(2,iline) = 4
+ end if
+ slfac = slfac1*musicsize*elsktot
+ if (iline .ne. 1) then
+c
+c For the line just _finished_, put figdrop in separate file.
+c
+ if (figbass) write(14,'(a9,i2,a10,i2,1x,a4)')
+ * sq//'figdrop=',ifigdr(1,iline-1),
+ * ' '//sq//'figdtwo=',ifigdr(2,iline-1),sq//'or%'
+c
+c Check slurs in top staff for interference w/ barno. Only check when
+c # if digits in barno >= |isig| But to keep on/off phasing, must ALWAYS
+c keep track of ons and offs when |isig|<=3.
+c
+ ndigbn = int(alog10(ibarcnt+ibcoff+.01))+1
+ isnx = 0
+ if (ndigbn.ge.iabs(isig) .and. is1n1.gt.0) then
+c
+c There's a slur in top voice over the line break, hgt=is1n1, idcode=is2n1
+c Look for termination in remainder of this input block. If not found,
+c just use is1n1. Remember, haven't slid down yet.
+c
+ ioff = 0
+ if (ibar .gt. 1) ioff = nib(ivmx(nv,nvmx(nv)),ibar-1)
+ do 50 isdat = 1 , nsdat
+ if (igetbits(isdat1(isdat),5,13).eq.ivmx(nv,nvmx(nv))
+ * .and. .not.btest(isdat1(isdat),11)
+ * .and. igetbits(isdat1(isdat),7,19).eq.is2n1) then
+c
+c Found slur ending. Just check note height, can't do fine adjustments.
+c
+c is1n1 = max(is1n1,igetbits(isdat2(nsdat),7,19))
+ is1n1 = max(is1n1,igetbits(isdat2(isdat),7,19))
+ go to 51
+ end if
+50 continue
+c
+c If exiting loop normally, did not find end of slur. c'est la vie.
+c
+51 continue
+ isnx = idim(is1n1,ncmid(nv,1)+1+irzbnd)
+ if (isnx .gt. 0) then
+c
+c AHA! Slur likely to interfere with barno.
+c
+c Modified 090525 to use \bnrs
+c
+ slint = .true.
+ fmtq = '(a16,i1,a14)'
+ if (irzbnd+isnx .gt. 9) fmtq = '(a16,i2,a14)'
+ if (islast) write(11,fmtq)sq//'def'//sq//'raisebarno{',
+ * irzbnd+isnx,'.5'//sq//'internote}%'
+c if (islast) then
+c if (isnx .le. 9) then
+c write(11,'(a5,i1,a2)')sq//'bnrs',isnx,'0%'
+c else
+c write(11,'(a6,i2,a3)')sq//'bnrs{',isnx,'}0%'
+c end if
+c end if
+c
+ end if
+ end if
+ if (movbrk .gt. 0) then
+c
+c movbrk = 0
+c Move the reset down, so can use movbrk>0 to stop extra meter prints.
+c
+c New movement. Redefine stoppiece, contpiece. These will be called either
+c explicitly or as part of alaligne.
+c indsym = 0,1,2 for doubleBAR , doublebar, rightrepeat.
+c This is passed to \newmovement.
+c
+ if (rptfq2 .eq. 'E') rptfq2 = 'D'
+ indsym = index('Ddrbz',rptfq2)-1
+ rptfq2 = 'E'
+c
+c Also check for Rd or Rr set the normal way
+c
+ if (btest(islnow,8)) then
+ indsym = 1
+ else if (btest(islnow,6)) then
+ indsym = 2
+ end if
+ if (indsym .lt. 0) then
+ print*
+ print*,'Illegal end symbol before "/"'
+ call stop1()
+ end if
+c
+c Check for continuation (no bar number reset)
+c
+ if (islast.and.
+ * nobar1) write(11,'(a)')sq//'advance'//sq//'barno1'
+ * //sq//'startbarno'//sq//'barno%'
+ if (movgap .lt. 10) then
+ if (islast) write(11,'(a12,2i1,a1)')
+ * sq//'newmovement',movgap,indsym,'%'
+ else
+ if (islast) write(11,'(a13,i2,a1,i1,a1)')
+ * sq//'newmovement{',movgap,'}',indsym,'%'
+ end if
+c
+c Change generalmeter if necessary
+c
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+c
+c (Moved all name-writing to getnote, right when 'M' is detected)
+c
+ if (btest(iplnow,28)) then
+c
+c Key signature at movement break
+c
+ iplnow = ibclr(iplnow,28)
+ if (isig .gt. 0) then
+ if (islast) write(11,'(a18,i1,a2)')
+ * sq//'generalsignature{',isig,'}%'
+ else
+ if (islast) write(11,'(a18,i2,a2)')
+ * sq//'generalsignature{',isig,'}%'
+ end if
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ end if
+ if (parmov .ge. -.1) then
+c
+c Resent paragraph indentation
+c
+ ipi = parmov*widthpt+.1
+ if (ipi .lt. 10) then
+ if (islast) write(11,'(a11,i1,a2)')
+ * sq//'parindent ',ipi,'pt'
+ else if (ipi .lt. 100) then
+ if (islast)
+ * write(11,'(a11,i2,a2)')sq//'parindent ',ipi,'pt'
+ else
+ if (islast)
+ * write(11,'(a11,i3,a2)')sq//'parindent ',ipi,'pt'
+ end if
+ end if
+ end if
+ if (isystpg .eq. 1) then
+c
+c First line on a page (not 1st page, still first bar). Tidy up old page
+c then eject.
+c
+c Removed this 5/13/01 as it was causing double endvoltas. This probably
+c is only needed at the end in case there is no endvolta specified.
+c if (onvolt) then
+cc if (islast) write(11,'(a)')sq//'endvoltabox%'
+cc onvolt = .false.
+c end if
+c
+c
+c Check for meter change at start of a new PAGE
+c
+ if (mtrnuml .gt. 0) then
+c
+c Meter change at start of a new page. Ugly repeated coding here.
+c
+ mtrnms = mtrnuml
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ mtrnuml = mtrnms
+ if (movbrk .eq. 0 .and. islast)
+ * call wgmeter(mtrnmp,mtrdnp)
+ end if
+c
+c Key signature change?
+c
+ if (btest(iplnow,28) .and. movbrk.eq.0) then
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast) write(11,'(a)')
+ * notexq(1:lnote)//chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-'//sq//'afterruleskip}'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue%'
+ else if (mtrnuml.gt.0 .and. movbrk.eq.0) then
+c
+c Meter change but no signature change
+c
+ if (islast)
+ * write(11,'(a)')sq//'xchangecontext'//sq//'addspace{-'//
+ * sq//'afterruleskip}'//sq//'let'//sq//'bnat'//sq//
+ * 'barnoadd%'
+ if (islast)
+ * write(11,'(a)')sq//'def'//sq//'barnoadd{'//sq//'let'//
+ * sq//'barnoadd'//sq//'bnat}'//sq//'zstoppiece%'
+ else
+ if (islast) write(11,'(a)')sq//'stoppiece%'
+ end if
+c
+c This is the key spot when vshrink is used. Value of vshrink here comes from
+c just after the prior pagebreak, i.e., it is not affected by "Av"
+c that may have been entered at this pagebreak, since that only affects usevshrink.
+c So choose page *ending* (with or without \vfill) depending on old vshrink. Then
+c check value of usevshrink to reset vshrink if necessary for the new page, where
+c we have to set \interstaff and later call puttitle.
+c Top of first page needs special treatment. For this we use
+c novshrinktop, which was set in g1etnote on the first pass, since on
+c second pass, vshrink at top of page one is dealt with in topfile, which is called
+c *before* any reading in any "Av" at the top of the first input block.
+c
+ if (.not.vshrink) then
+ xnstbot = xnsttop(ipage)*etabot/etatop
+ if (xnstbot .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ if (islast) write(11,fmtq)sq//'vskip',xnstbot,
+ * sq//'Interligne'//sq//'eject%'
+ else
+ if (islast) write(11,'(a)') sq//'vfill'//sq//'eject%'
+ end if
+ ipage = ipage+1
+c
+c Now that page is ejected, compute new vshrink
+c
+ vshrink = xintstaff(ipage).gt.20 .and. usevshrink
+ if (vshrink) then
+ xinsnow = 10
+ else
+ xinsnow = xintstaff(ipage)
+ end if
+ if (fintstf.gt.0 .and. ipage.gt.1) then
+ xinsnow = xinsnow*fintstf/gintstf
+ fintstf = -1.
+ end if
+ if (xinsnow .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else if (xinsnow .lt. 99.95) then
+ fmtq = '(a,f4.1,a)'
+ else
+ fmtq = '(a,f5.1,a)'
+ end if
+c
+c Vertical spacing parameters, then restart
+c
+ if (islast) write(11,fmtq)sq//'interstaff{',xinsnow,
+ * '}'//sq//'contpiece'
+c
+c Check for meter change at start of a new PAGE
+c
+ if (mtrnuml .gt. 0) then
+c
+c Meter change at start of a new page
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) write(11,'(a)')sq//'newtimes2%'
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ end if
+ end if
+ end if
+c
+c If no real titles here, which there probably will never be, make vertical
+c space at page top with \titles{...}. headlog=.false.<=>no real titles
+c
+ call puttitle(inhnoh,xnsttop(ipage),etatop,
+ * sq,etait,etatc,etacs1,nv,vshrink,sepsymq)
+ if (HeaderSpecial)
+c
+c Write special header for first page
+c
+ * write(11,'(a)')chax(92)//'special{header=psslurs.pro}%'
+ else
+c
+c First bar of system, not a new page, force line break
+c
+ if (btest(iplnow,28)) then
+c
+c Signature change
+c
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast) write(11,'(a)')notexq(1:lnote)
+ * //chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1%'
+ if (mtrnuml .ne. 0) then
+c
+c Meter+sig change, new line, may need mods if movement break here.
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (islast) then
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'xchangecontext'//sq//
+c * 'addspace{-'//sq//'afterruleskip}'//sq//'def'
+ * 'addspace{-'//sq//'afterruleskip}'
+c * //sq//'writezbarno{}'//sq//'zalaligne%'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue'//sq//'contpiece%'
+ write(11,'(a)')sq//'addspace{-'//sq
+ * //'afterruleskip}%'
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'zchangecontext'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'xchangecontext'//sq//
+c * 'addspace{-'//sq//'afterruleskip}'//sq//'def'//
+ * 'addspace{-'//sq//'afterruleskip}'
+c * sq//'writezbarno{}'//sq//'zalaligne%'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue'//sq//'contpiece%'
+ end if
+ else if (mtrnuml .eq. 0) then
+c
+c No meter change
+c
+ if (islast) write(11,'(a)')sq//'alaligne'
+ else
+c
+c New meter, no new sig, end of line, not new page.
+c
+c \generalmeter{\meterfrac{3}{4}}%
+c \xchangecontext\addspace{-\afterruleskip}%
+c \zalaligne\generalmeter{\meterfrac{3}{4}}\addspace{-\afterruleskip}%
+c \zchangecontext
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) then
+ write(11,'(a)')
+ * sq//'let'//sq//'bnat'//sq//'barnoadd'
+ * //sq//'def'//sq//'barnoadd{'//sq//'empty}%'
+ write(11,'(a)')sq//'xchangecontext'//sq//
+ * 'addspace{-'//sq//'afterruleskip}'//sq//
+ * 'zalaligne'//sq//'let'//sq//'barnoadd'//sq//'bnat'
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'zchangecontext'
+ end if
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ else
+ if (islast) write(11,'(a)')sq//'alaligne'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'alaligne'
+ end if
+ end if
+ end if
+c
+c Modified 090525 to use \bnrs
+c
+ if (slint) then
+ slint = .false.
+ if (islast) write(11,'(a16,i1,a14)')sq//'def'//sq//
+ * 'raisebarno{',irzbnd,'.5'//sq//'internote}%'
+ end if
+ movbrk = 0
+ end if
+c
+c Clean up if we squelched bar number reset at movement break
+c
+ if (nobar1) then
+ if (islast) write(11,'(a)')sq//'startbarno1'
+ nobar1 = .false.
+ end if
+ read(12,*,end=14)iauto
+14 continue
+c
+c We come thru here for the 1st bar of every system, so initialize is1n1
+c
+ is1n1 = 0
+c
+c Brought down from above
+c
+ if (isystpg .eq. nsystp(ipage)) isystpg = 0
+c
+c Check for linebreak ties
+c
+ if (ispstie)
+ * call LineBreakTies(isdat1,isdat2,isdat3,isdat4,nsdat,
+ * ispstie,sepsymq)
+ else
+c
+c Not first bar of system
+c
+ if (btest(iplnow,28)) then
+c
+c Signature change
+c
+ if (mtrnuml .ne. 0) then
+c
+c Meter+signature change mid line, assume no movement break
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ notexq = sq//'generalsignature{'
+ lnote = 18
+ if (isig .lt. 0) then
+ notexq = notexq(1:18)//'-'
+ lnote = 19
+ end if
+ if (islast) then
+ iptemp = 48+abs(isig)
+ charq = chax(iptemp)
+ notexq = notexq(1:lnote)//charq//'}%'
+ lnote = lnote+3
+ write(11,'(a)')notexq(1:lnote)
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ write(11,'(a)')sq//'xchangecontext%'
+ end if
+ if (ibar .eq. ibarmbr) then
+c
+c Compute space for multibar rest
+c
+ if (lastisig*isig .ge. 0) then
+ naccs = max(abs(lastisig),abs(isig))
+ else
+ naccs = abs(lastisig-isig)
+ end if
+ xb4mbr = (facmtr+naccs*.24)*musicsize
+ end if
+ else
+c
+c Signature change only
+c
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast)
+ * write(11,'(a)')notexq(1:lnote)//chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-.5'// sq//'afterruleskip}%'
+ if (ibar .eq. ibarmbr) then
+c
+c Compute space for multibar rest
+c
+ if (lastisig*isig .ge. 0) then
+ naccs = max(abs(lastisig),abs(isig))
+ else
+ naccs = abs(lastisig-isig)
+ end if
+ xb4mbr = naccs*.24*musicsize
+ end if
+ end if
+ else if (mtrnuml .eq. 0) then
+c
+c No meter change
+c
+ if (islast) write(11,'(a)')sq//'xbar'
+ else
+c
+c Change meter midline
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) write(11,'(a,2i1,a)')sq//'newtimes0%'
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ else
+ if (islast) write(11,'(a)')sq//'xbar'
+ end if
+ end if
+ end if
+ end if
+c
+c Now that xbar's are written, can put in left-repeats at line beginnings
+c
+ if (lrptpend) then
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1'
+ * //sq//'leftrepeat'
+ lrptpend = .false.
+ end if
+ if (ibar .gt. 1) then
+c
+c For bars after first, slide all stuff down to beginning of arrays
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ioff = nib(ivx,ibar-1)
+ do 12 ip = 1 , nib(ivx,ibar)-ioff
+ nolev(ivx,ip) = nolev(ivx,ip+ioff)
+ nodur(ivx,ip) = nodur(ivx,ip+ioff)
+ nacc(ivx,ip) = nacc(ivx,ip+ioff)
+ irest(ivx,ip) = irest(ivx,ip+ioff)
+ islur(ivx,ip) = islur(ivx,ip+ioff)
+ ipl(ivx,ip) = ipl(ivx,ip+ioff)
+ iornq(ivx,ip) = iornq(ivx,ip+ioff)
+ mult(ivx,ip) = mult(ivx,ip+ioff)
+c if (ivx.le.2 .and. figbass)
+c * isfig(ivx,ip) = isfig(ivx,ip+ioff)
+ if (figbass .and. ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ if (ivx.eq.1) then
+ isfig(1,ip) = isfig(1,ip+ioff)
+ else
+ isfig(2,ip) = isfig(2,ip+ioff)
+ end if
+ end if
+12 continue
+ if (ivx.le.nv .and. ncc(iv).gt.1) then
+ islide = 0
+ do 13 icc = 1 , ncc(iv)
+ if (tcc(iv,icc) .le. lenbar) then
+c
+c This time will drop <=0 when slid.
+c
+ islide = icc-1
+ ncmidcc(iv,1) = ncmidcc(iv,icc)
+ else
+ tcc(iv,icc-islide) = tcc(iv,icc)-lenbar
+ ncmidcc(iv,icc-islide) = ncmidcc(iv,icc)
+ end if
+13 continue
+ ncc(iv) = ncc(iv)-islide
+ tcc(iv,1) = 0.
+ end if
+11 continue
+ do 15 ig = 1 , ngrace
+ ipg(ig) = ipg(ig)-nib(ivg(ig),ibar-1)
+ if (ibar .gt. 2) ipg(ig) = ipg(ig)+nib(ivg(ig),ibar-2)
+15 continue
+ do 21 il = 1 , nlit
+ iplit(il) = iplit(il)-nib(ivlit(il),ibar-1)
+ if (ibar .gt. 2) iplit(il) = iplit(il)+nib(ivlit(il),ibar-2)
+21 continue
+ do 22 it = 1 , ntrill
+ iptrill(it) = iptrill(it)-nib(ivtrill(it),ibar-1)
+ if (ibar .gt. 2) iptrill(it) =
+ * iptrill(it)+nib(ivtrill(it),ibar-2)
+22 continue
+ do 27 icrd = 1 , ncrd
+c ivx = iand(15,ishft(icrdat(icrd),-8))
+ ivx = iand(15,ishft(icrdat(icrd),-8))
+ * +16*igetbits(icrdat(icrd),1,28)
+ ipnew = iand(255,icrdat(icrd))-nib(ivx,ibar-1)
+ if (ibar .gt. 2) ipnew = ipnew+nib(ivx,ibar-2)
+ icrdat(icrd) = iand(not(255),icrdat(icrd))
+ icrdat(icrd) = ior(max(0,ipnew),icrdat(icrd))
+27 continue
+ do 29 iudorn = 1 , nudorn
+c ivx = iand(15,ishft(kudorn(iudorn),-8))
+ ivx = ivxudorn(iudorn)
+ ipnew = iand(255,kudorn(iudorn))-nib(ivx,ibar-1)
+ if (ibar .gt. 2) ipnew = ipnew+nib(ivx,ibar-2)
+ kudorn(iudorn) = iand(not(255),kudorn(iudorn))
+ kudorn(iudorn) = ior(max(0,ipnew),kudorn(iudorn))
+29 continue
+ do 42 idyn = 1 , ndyn
+ idynd = idyndat(idyn)
+c ivx = iand(15,idynd)
+ ivx = iand(15,idynd)+16*igetbits(idynda2(idyn),1,10)
+ ipnew = igetbits(idynd,8,4)-nib(ivx,ibar-1)
+c
+c The following construction avoids array bound errors in some compilers
+c
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(idynd,8,4,ipnew)
+ idyndat(idyn) = idynd
+42 continue
+ do 43 itxtdyn = 1 , ntxtdyn
+ idynd = ivxiptxt(itxtdyn)
+c ivx = iand(15,idynd)
+ ivx = iand(31,idynd)
+c ipnew = igetbits(idynd,8,4)-nib(ivx,ibar-1)
+ ipnew = igetbits(idynd,8,5)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+c call setbits(idynd,8,4,ipnew)
+ call setbits(idynd,8,5,ipnew)
+ ivxiptxt(itxtdyn) = idynd
+43 continue
+ do 41 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ ivx = ivmx(igetbits(isdata,5,13),igetbits(isdata,1,12)+1)
+ ipnew = igetbits(isdata,8,3)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(isdata,8,3,ipnew)
+ isdat1(isdat) = isdata
+41 continue
+ do 44 ibc = 1 , nbc
+c ivx = iand(15,ibcdata(ibc))
+ ivx = iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+ ipnew = igetbits(ibcdata(ibc),8,4)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(ibcdata(ibc),8,4,ipnew)
+44 continue
+ do 45 iarps = 1 , NumArpShift
+ IpArpShift(iarps) =
+ * IpArpShift(iarps)-nib(IvArpShift(iarps),ibar-1)
+ if (ibar .gt. 2) then
+ IpArpShift(iarps) =
+ * IpArpShift(iarps)+nib(IvArpShift(iarps),ibar-2)
+ end if
+45 continue
+c
+c Bookkeeping for figures. This will set nfigs = 0 if there are no figs left.
+c If there are figs left, it will reset all times relative to start of
+c current bar.
+c
+ do 46 ivx = 1 , 2
+ if (figbass) then
+ islide = 0
+ do 20 jfig = 1 , nfigs(ivx)
+ if (itfig(ivx,jfig) .lt. lenbar) then
+c
+c This figure was already used
+c
+ islide = jfig
+ else
+ itfig(ivx,jfig-islide) = itfig(ivx,jfig)-lenbar
+ figq(ivx,jfig-islide) = figq(ivx,jfig)
+ itoff(ivx,jfig-islide) = itoff(ivx,jfig)
+ ivupfig(ivx,jfig-islide) = ivupfig(ivx,jfig)
+ end if
+20 continue
+ nfigs(ivx) = nfigs(ivx)-islide
+ end if
+ if (nfigs(2) .eq. 0) go to 47
+46 continue
+47 continue
+ end if
+c
+c End of sliding down for bars after first in gulp.
+c
+c The following may not be needed by makeabar, but just in case...
+c
+ if (firstgulp .and. lenb0.ne.0) then
+ if (ibar .eq. 1) then
+ lenbar = lenb0
+ else
+ lenbar = lenb1
+ end if
+ end if
+c
+c Equal line spacing stuff
+c
+ if (equalize .and. bar1syst) then
+ if (isystpg .eq. 1) then
+ write(11,'(a)')sq//'starteq%'
+ else if (isystpg .eq. nsystp(ipage)-1) then
+ write(11,'(a)')sq//'endeq%'
+ end if
+ end if
+ call make1bar(ibmrep,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart)
+ call make2bar(ninow,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart,clefq)
+c
+c Hardspace before barline?
+c
+ hardb4 = 0.
+ do 35 iv = 1 , nv
+ do 35 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (btest(irest(ivx,nn(ivx)),18)) then
+ nudoff(ivx) = nudoff(ivx)+1
+ hardb4 = max(hardb4,udoff(ivx,nudoff(ivx)))
+ end if
+35 continue
+ if (hardb4 .gt. 0.) then
+ if (islast) write(11,'(a11,f5.1,a4)')sq
+ * //'hardspace{',hardb4,'pt}%'
+ fixednew = fixednew-hardb4
+ end if
+10 continue
+ firstgulp = .false.
+ lenb0 = 0
+ go to 30
+40 close(12)
+ close(13)
+ ilbuf = 1
+ ipbuf = 0
+ wdpt = widthpt
+ if (iline .eq. 1) wdpt = widthpt*(1-fracindent)
+ poe = (wdpt-fsyst*musicsize-0.4*nbarss-fixednew)/
+ * (elsktot+fbar*nbarss-scaldold)
+ poevec(nsyst) = poe
+ if (.not.islast) then
+ close(11)
+ close(16)
+ if (figbass) close(14)
+ return
+ end if
+ do 19 ia = 1 , nasksys
+ iask = iask+1
+ ask(iask) = wasksys(ia)/poe-abs(elasksys(ia))
+ if (elasksys(ia).gt.0) ask(iask)=dim(ask(iask),0.)
+19 continue
+ do 26 ia = 1 , nhssys
+ nhstot = nhstot+1
+ hpttot(nhstot) = max(hpts(ia)-hesk(ia)*poe,0.)
+26 continue
+ if (islast .and.
+ * onvolt) write(11,'(a)')sq//'endvoltabox'
+ if (rptfq2 .ne. 'E') then
+c
+c Terminal repeat. Right or double?
+c
+ if (rptfq2 .eq. 'r') then
+ if (islast) write(11,'(a)')sq//'setrightrepeat'
+ * //sq//'endpiece'
+ else if (rptfq2 .eq. 'd') then
+ if (islast) write(11,'(a)')sq//'setdoublebar'//sq//'endpiece'
+ else if (rptfq2 .eq. 'b') then
+ if (islast) write(11,'(a)')sq//'endpiece'
+ else if (rptfq2 .eq. 'z') then
+ if (islast) write(11,'(a)')sq//'setzalaligne'//sq//'Endpiece'
+ else
+c else if (rptfq2 .ne. 'D') then
+ print*
+ print*,'R? , ? not "d","r",or"b","z"; rptfq2:',rptfq2
+ write(15,*)'R? , ? not "d","r",or"b","z"; rptfq2:',rptfq2
+ if (islast) write(11,'(a)')sq//'Endpiece'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'Endpiece'
+ end if
+ if (.not.vshrink) then
+ xnstbot = xnsttop(ipage)*etabot/etatop
+ if (xnstbot .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ if (islast) write(11,fmtq)sq//'vskip',xnstbot,
+ * sq//'Interligne'//sq//'eject'//sq//'endmuflex'
+ if (islast) write(11,'(a)')sq//'bye'
+ else
+ if (islast) write(11,'(a)')
+ * sq//'vfill'//sq//'eject'//sq//'endmuflex'
+ if (islast) write(11,'(a)')sq//'bye'
+ end if
+ rewind(11)
+ if (figbass) then
+ write(14,'(a9,i2,a10,i2,1x,a5)')
+ * sq//'figdrop=',ifigdr(1,iline),
+ * ' '//sq//'figdtwo=',ifigdr(2,iline),sq//'fi}%'
+ rewind(14)
+ end if
+ call askfig(pathnameq,lpath,basenameq,lbase,figbass,istype0)
+ if (.not.optimize) then
+ print*
+ print*,'Writing '
+ * //pathnameq(1:lpath)//basenameq(1:lbase)//'.tex'
+ print*,'Done with second PMX pass.'
+ write(15,'(/,a)')'Writing '
+ * //pathnameq(1:lpath)//basenameq(1:lbase)//'.tex'
+ write(15,'(a)')' Done with second PMX pass. Now run TeX'
+ end if
+ return
+ end
+ subroutine poestats(nsyst,poe,poebar,devnorm)
+ parameter (nks=125)
+c
+c Compute avg. & norm. std. dev. of poe.
+c
+ real*4 poe(nks)
+ sumx = 0.
+ sumxx = 0.
+ do 1 isyst = 1 , nsyst
+ sumx = sumx+poe(isyst)
+ sumxx = sumxx+poe(isyst)**2
+1 continue
+2 continue
+ devnorm = sqrt(nsyst*sumxx/sumx**2-1)
+ poebar = sumx/nsyst
+ return
+ end
+ subroutine precrd(ivx,ip,nolevm,nacc,ipl,irest,udq,
+ * twooftwo,icashft)
+c
+c Analyzes chords, data to be used with slurs on chords and plain chords.
+c Check for 2nds, shift notes if neccesary.
+c ipl(10) chord present
+c irest(20) set if any note is right shifted
+c irest(27) set if any note is left shifted
+c ipl(8|9) left|right shift main note
+c icrdat(23|24) ditto chord note
+c udq is updown-ness, needed to analyze 2nds.
+c levtabl(i)=0 if no note at this level, -1 if main note, icrd if chord note.
+c icrdot(icrd)(27-29) sequence order of chord note if accid, top down
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ logical btest,is2nd,twooftwo
+ integer*4 kicrd(10),levtabl(88)
+ character*1 udq
+ do 11 i = 1 , 88
+ levtabl(i) = 0
+11 continue
+ do 1 icrd1 = 1 , ncrd
+ ivx1 = iand(15,ishft(icrdat(icrd1),-8))
+ * +16*igetbits(icrdat(icrd1),1,28)
+ ip1 = iand(255,icrdat(icrd1))
+ if (ip1.eq.ip .and. ivx1.eq.ivx) go to 2
+1 continue
+ print*
+ print*,
+ * 'Cannot find first chord note in precrd. Send source to Dr. Don!'
+ call stop1()
+2 continue
+ maxlev = nolevm
+ minlev = nolevm
+ levtabl(nolevm) = -1
+ is2nd = .false.
+ naccid = 0
+ levmaxacc = -100
+ levminacc = 1000
+c
+c Check 1st 3 bits of nacc for accid on main note of chord.
+c
+ if (iand(7,nacc) .gt. 0) then
+ naccid = 1
+c
+c Start list of notes with accid's. There will be naccid of them. kicrd=0 if main,
+c otherwise icrd value for note with accidental.
+c
+ kicrd(1) = 0
+ levmaxacc = nolevm
+ levminacc = nolevm
+c
+c Start the level-ranking
+c
+ icrdot0 = 1
+ end if
+ do 3 icrd2 = icrd1 , ncrd
+ nolev = igetbits(icrdat(icrd2),7,12)
+ levtabl(nolev) = icrd2
+ maxlev = max(maxlev,nolev)
+ minlev = min(minlev,nolev)
+c
+c Check for accidental
+c
+ if (btest(icrdat(icrd2),19)) then
+ naccid = naccid+1
+ levmaxacc = max(levmaxacc,nolev)
+ levminacc = min(levminacc,nolev)
+c
+c Add this icrd to list of values for notes with accid's.
+c
+ kicrd(naccid) = icrd2
+ if (.not.btest(nacc,28)) then
+c
+c Order not forced, so get the level-ranking, top down
+c
+ iorder = 1
+ do 12 iaccid = 1 , naccid-1
+ if (kicrd(iaccid) .eq. 0) then
+ if (nolevm .gt. nolev) then
+ iorder = iorder+1
+ else
+ icrdot0 = icrdot0+1
+ end if
+ else
+ if (igetbits(icrdat(kicrd(iaccid)),7,12)
+ * .gt. nolev) then
+ iorder = iorder+1
+ else
+ iold = igetbits(icrdot(kicrd(iaccid)),3,27)
+ call setbits(icrdot(kicrd(iaccid)),3,27,iold+1)
+ end if
+ end if
+12 continue
+ call setbits(icrdot(icrd2),3,27,iorder)
+ end if
+ end if
+c
+c Exit loop if last note in this chord
+c
+ if (icrd2 .eq. ncrd) go to 4
+ if (igetbits(icrdat(icrd2+1),8,0) .ne. ip .or.
+c * igetbits(icrdat(icrd2+1),4,8) .ne. ivx) go to 4
+ * igetbits(icrdat(icrd2+1),4,8)
+ * +16*igetbits(icrdat(icrd2+1),1,28) .ne. ivx) go to 4
+3 continue
+ print*
+ print*,'Failed to find last chord note. Send source to Dr. Don!'
+ call stop1()
+4 continue
+c
+c Now icrd1, icrd2 define range of icrd for this chord.
+c
+c Bypass autos-shifting if any manual shifts are present
+c
+ if (btest(irest,20) .or. btest(irest,27)) go to 10
+c
+c Check for 2nds
+c
+ do 5 ilev = 1 , 87
+ if (levtabl(ilev).ne.0 .and. levtabl(ilev+1).ne.0) then
+c
+c There is at least one 2nd..
+c
+ if (udq .eq. 'u') then
+c
+c Upstem. Start with 2nd just found and go up, rt-shifting upper
+c member of each pair
+c
+ ile = ilev
+c
+c Set main-note flag for ANY right-shift
+c
+ irest = ibset(irest,20)
+7 continue
+ if (levtabl(ile+1) .lt. 0) then
+c
+c Upstem, & upper member is main so must be rt-shifted. This would move
+c stem too, so we rt-shift the OTHER note, and set flag that signals
+c to interchange pitches just when these two notes are placed.
+c
+ nacc = ibset(nacc,30)
+ icrdat(levtabl(ile)) = ibset(icrdat(levtabl(ile)),24)
+ else
+c
+c Upper member is chord note, must be rt-shifted
+c
+ icrdat(levtabl(ile+1)) = ibset(icrdat(levtabl(ile+1)),24)
+ end if
+ ile = ile+1
+8 continue
+ ile = ile+1
+ if (ile .lt. 87) then
+ if (levtabl(ile).ne.0 .and. levtabl(ile+1).ne.0) then
+ go to 7
+ else
+ go to 8
+ end if
+ end if
+ go to 10
+ else
+c
+c Downstem. Start at top and work down, left-shifting lower member of each pair.
+c We know that lowest pair is at (ilev,ilev+1).
+c
+ ile = 88
+c
+c Set main-note flag for ANY right-shift
+c
+ irest = ibset(irest,27)
+9 continue
+ if (levtabl(ile).ne.0 .and. levtabl(ile-1).ne.0) then
+ if (levtabl(ile-1) .lt. 0) then
+c ipl = ibset(ipl,8)
+c
+c Dnstem, & lower member is main so must be left-shifted. This would move
+c stem too, so we left-shift the OTHER note, and set flag that signals
+c to interchange pitches just when these two notes are placed.
+c
+ nacc = ibset(nacc,31)
+ icrdat(levtabl(ile)) = ibset(icrdat(levtabl(ile)),23)
+ else
+c
+c Lower member is chord note, must be shifted
+c
+ icrdat(levtabl(ile-1)) =
+ * ibset(icrdat(levtabl(ile-1)),23)
+ end if
+ ile = ile-1
+ end if
+ ile = ile-1
+ if (ile .ge. ilev+1) go to 9
+ go to 10
+ end if
+ end if
+5 continue
+10 continue
+c
+c Done with 2nds, now do accid's. Call even if just one, in case left shifts.
+c
+c if (naccid .gt. 1) call crdaccs(nacc,ipl,irest,naccid,
+ if (naccid .ge. 1) call crdaccs(nacc,ipl,irest,naccid,
+ * kicrd,nolevm,levmaxacc,levminacc,icrdot0,twooftwo,icashft)
+ return
+ end
+ subroutine printl(string)
+ character*(*) string
+c
+c Send string to console and to log file
+c
+ print*,string
+ write(15,'(a)')string
+ return
+ end
+ subroutine putarp(tnow,iv,ip,nolev,ncm,soutq,lsout)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtol/ tol
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ logical lowdot,IsArpShift
+ character*80 soutq
+ character*79 notexq
+ character*8 symq(2)
+ character*1 chax
+ data symq /'raisearp','arpeggio'/
+
+c
+c Find which iarp, if any
+c
+ do 1 iarp = 1 , narp
+ if (abs(tnow-tar(iarp)).lt.tol) go to 2
+1 continue
+c
+c If here, this is the *first* call for this arp.
+c
+ narp = narp+1
+ tar(narp) = tnow+tol*.5
+ ivar1(narp) = iv
+ ipar1(narp) = ip
+ levar1(narp) = nolev
+ ncmar1(narp) = ncm
+ return
+2 continue
+c
+c If here, this is *second* call at this time, iarp points to values from 1st.
+c
+c Check for shift. Set IsArpShift and iarps
+c
+ do 3 iarps = 1 , NumArpShift
+ if (IvArpShift(iarps) .eq. ivar1(iarp) .and.
+ * IpArpShift(iarps) .eq. ipar1(iarp)) then
+ IsArpShift = .true.
+ notexq = chax(92)//'loffset{'
+ write(notexq(10:14),'(f3.1,a2)') Arpshift(iarps),'}{'
+ lnote = 14
+ go to 4
+ end if
+3 continue
+ IsArpShift = .false.
+ lnote = 0
+4 continue
+ if (iv .eq. ivar1(iarp)) then
+c
+c Arp is in a single staff.
+c
+ levbot = min(levar1(iarp),nolev)-ncm+3
+ invert = abs(levar1(iarp)-nolev)+1
+ else
+c
+c Arp covers >1 staff. Lower staff has to be the first, upper is current and
+c is where the symbol will be written.
+c
+ levbot = -nint(2*xinsnow)+3+levar1(iarp)-ncmar1(iarp)
+ invert = -levbot+4+nolev-ncm
+c print*,'xinsnow,levar1,ncmar1,levbot,nolev,ncm:'
+c write(*,'(f5.1,5i5)')xinsnow,levar1(iarp),ncmar1(iarp),
+c *levbot,nolev,ncm
+ end if
+c
+c isym will be (1,2) if invert is (even,odd). If even, raise .5\internote
+c
+ isym = mod(invert,2)+1
+ ilvert = (invert+1)/2
+ if (levbot .ge. 0 .and. levbot .le. 9) then
+c
+c Single digit
+c
+ if (.not.IsArpShift) then
+ notexq = chax(92)//symq(isym)//chax(48+levbot)
+ else
+ notexq = notexq(1:lnote)//
+ * chax(92)//symq(isym)//chax(48+levbot)
+ end if
+ lnote = lnote+10
+ else
+ if (.not.IsArpShift) then
+ notexq = chax(92)//symq(isym)//'{'
+ else
+ notexq = notexq(1:lnote)//chax(92)//symq(isym)//'{'
+ end if
+ lnote = lnote+10
+ if (levbot .ge. -9) then
+c
+c Need two spaces for number
+c
+ write(notexq(lnote+1:lnote+3),'(i2,a1)')levbot,'}'
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+4),'(i3,a1)')levbot,'}'
+ lnote = lnote+4
+ end if
+ end if
+c if (ilvert .le. 9) then
+c call addstr(notexq(1:lnote)//chax(48+ilvert),lnote+1,
+c * soutq,lsout)
+c else
+c write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')'{',ilvert,'}'
+c call addstr(notexq(1:lnote+4),lnote+4,soutq,lsout)
+c end if
+
+ if (ilvert .gt. 9) then
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')'{',ilvert,'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//chax(48+ilvert)
+ lnote = lnote+1
+ end if
+ if (IsArpShift) then
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+c
+c cancel out the stored time, to permit two arps at same time!
+c
+ tar(iarp) = -1.
+ return
+ end
+ subroutine putast(elask,indxask,outq)
+ character*129 outq,tag
+ character*9 fmtq
+ if (elask .ge. 0.) then
+ if (elask.lt.0.995) then
+ lp = 3
+ else if (elask .lt. 9.995) then
+ lp = 4
+ else
+ lp = 5
+ end if
+ write(fmtq,'(a5,i1,a3)')'(a2,f',lp,'.2)'
+ else
+ lp = 5
+ fmtq = '(a2,f5.1)'
+ end if
+c
+c Overwrite as follows: ...xyz*ask *lmnop... ->
+c ...xyz*ast{.nn}*lmnop...
+c ...xyz*ast{n.nn}*lmnop...
+c ...xyz*ast{nn.nn}*lmnop...
+c or for negative, ...xyz*ast{-nn.n}*lmnop...
+ tag = outq(indxask+9:)
+ write(outq(indxask+3:),fmtq)'t{',elask
+ outq = outq(1:indxask+4+lp)//'}'//tag
+ return
+ end
+ subroutine putcb(ivx,ip,notexq,lnote)
+ common /comcb/ nbc,ibcdata(36)
+ character*79 notexq
+ logical btest
+c ivxip = ivx+16*ip
+ do 1 ibc = 1 , nbc
+c if (ivxip .eq. iand(1023,ibcdata(ibc))) go to 2
+c if (ivx.eq.iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+c * .and. ip.eq.iand(1008,ibcdata(ibc))) go to 2
+ ivxbc = iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+ ipbc = igetbits(ibcdata(ibc),8,4)
+ if (ivx .eq. ivxbc .and. ip .eq.ipbc) go to 2
+1 continue
+ call printl('Error in putbc, Call Dr. Don')
+ stop
+2 continue
+ if (btest(ibcdata(ibc),27)) then
+ lnote = 8
+ notexq = char(92)//'pbreath'
+ else
+ lnote = 9
+ notexq = char(92)//'pcaesura'
+ end if
+ ivshft = igetbits(ibcdata(ibc),6,13)
+c?? ivshft = igetbits(ibcdata(ibc),6,13)-32
+ if (ivshft .gt. 0) ivshft = ivshft-32
+ if (ivshft.lt.0 .or. ivshft.gt.9) then
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (ivshft .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')ivshft
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+2),'(i2)')ivshft
+ lnote = lnote+2
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+ notexq = notexq(1:lnote)//char(48+ivshft)
+ lnote = lnote+1
+ end if
+ ihshft = igetbits(ibcdata(ibc),8,19)
+ if (ihshft .eq. 0) then
+ notexq = notexq(1:lnote)//'0'
+ lnote = lnote+1
+ else
+ hshft = .1*(ihshft-128)
+c
+c -12.8<hshft<12.8
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (hshft .lt. -9.95) then
+ write(notexq(lnote+1:lnote+5),'(f5.1)')hshft
+ lnote = lnote+5
+ else if (hshft.lt.-0.05 .or. hshft.gt.9.95) then
+ write(notexq(lnote+1:lnote+4),'(f4.1)')hshft
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+3),'(f3.1)')hshft
+ lnote = lnote+3
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ return
+ end
+ subroutine putfig(ivx,ifig,offnsk,figcheck,soutq,lsout)
+ parameter (nm=24)
+ common /comfig/ itfig(2,74),figqq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figqq,figq
+ character*80 soutq,notexq
+ character*1 ch1q,ch2q,sq,chax
+ character*5 nofq,nofaq
+ character*4 Figutq,Conttq
+ logical figcheck
+ if (ivx .eq. 1) then
+ Figutq = 'Figu'
+ Conttq = 'Cont'
+ else
+ Figutq = 'Figt'
+ Conttq = 'Cott'
+ end if
+ sq = chax(92)
+ if (abs(offnsk) .gt. .0001) then
+c
+c Write offset for floating figure, to two decimal places
+c
+ notexq = sq//'off{'
+ if (-offnsk .lt. -9.995) then
+ write(notexq(6:11),'(f6.2)')-offnsk
+ lnote = 11
+ else if (-offnsk.lt.-.995 .or. -offnsk.gt.9.995) then
+ write(notexq(6:10),'(f5.2)')-offnsk
+ lnote = 10
+ else if (-offnsk.lt.-.0001 .or. -offnsk.gt..995) then
+ write(notexq(6:9),'(f4.2)')-offnsk
+ lnote = 9
+ else
+ write(notexq(6:8),'(f3.2)')-offnsk
+ lnote = 8
+ end if
+ notexq = notexq(1:lnote)//sq//'noteskip}'
+ call addstr(notexq,lnote+10,soutq,lsout)
+ end if
+ figq = figqq(ivx,ifig)
+ ic = 1
+c nof = 0
+c nofa = -1
+ nof = -ivupfig(ivx,ifig)
+ nofa = -ivupfig(ivx,ifig)-1
+c
+c Beginning of manual loop
+c
+1 ch1q = figq(ic:ic)
+c
+c Exit when first blank is encountered
+c
+ if (ch1q .eq. ' ') go to 2
+c
+c Starting a level. Set up vertical offset.
+c
+c lnof = 1
+c nofq = chax(nof+48)
+c if (nof .gt. 9) then
+c lnof = 2
+c nofq = '1'//chax(nof-10+48)
+c end if
+c if (nofa .eq.-1) then
+c lnofa = 2
+c nofaq = '-1'
+c else if (nofa .lt. 10) then
+c lnofa = 1
+c nofaq = chax(nofa+48)
+c else
+c lnofa = 2
+c nofaq = '1'//chax(nofa+38)
+c end if
+ call istring(nof,nofq,lnof)
+ call istring(nofa,nofaq,lnofa)
+ if (ch1q .eq. '0') then
+c
+c Continuation figure. Next number is length (in noteskips). The number will
+c end at the first blank or char that is not digit or decimal point. If
+c colon, it is a separator and must be skipped
+c
+ icnum = ic+1
+3 continue
+ ic = ic+1
+ if (index('0123456789.',figq(ic:ic)) .gt. 0) go to 3
+ lnum = ic-icnum
+ call addstr(sq//Conttq//nofq(1:lnof)//'{'
+ * //figq(icnum:ic-1)//'}',7+ic-icnum+lnof,soutq,lsout)
+ if (figq(ic:ic) .ne. ':') ic=ic-1
+ else if (ch1q.eq.'#'.or.ch1q.eq.'-'.or.ch1q.eq.'n') then
+ ic = ic+1
+ ch2q = figq(ic:ic)
+ if (ch2q .eq. ' ') then
+c
+c Figure is a stand-alone accidental, so must be centered
+c
+ if (ch1q .eq. '#') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'sharpfig}',16+lnofa,soutq,lsout)
+ else if (ch1q .eq. '-') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'flatfig}',15+lnofa,soutq,lsout)
+ else if (ch1q .eq. 'n') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'natfig}',14+lnofa,soutq,lsout)
+ end if
+ go to 2
+ else
+c
+c Figure is an accidental followed by a number
+c First put the accidental (offset to the left)
+c
+ if (ch1q .eq. '#') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmsh}',
+ * 13+lnofa,soutq,lsout)
+ else if (ch1q .eq. '-') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmfl}',
+ * 13+lnofa,soutq,lsout)
+ else if (ch1q .eq. 'n') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmna}',
+ * 13+lnofa,soutq,lsout)
+ end if
+c
+c Now put the number
+c
+ call addstr(sq//Figutq//nofq(1:lnof)//'{'//ch2q//'}',
+ * 8+lnof,soutq,lsout)
+ endif
+ else if (ch1q .eq. '_') then
+c
+c Placeholder only (for lowering a figure). Don't do anything!
+c
+ continue
+ else
+c
+c Figure is a single number, maybe with s after
+c
+ call addstr(sq//Figutq//nofq(1:lnof)//'{',
+ * 6+lnof,soutq,lsout)
+ ch2q = figq(ic+1:ic+1)
+ if (ch2q .eq. 's') then
+c
+c Use a special character. Insert font call
+c
+ ic = ic+1
+ call addstr(sq//'ligfont',8,soutq,lsout)
+ end if
+ call addstr(ch1q//'}',2,soutq,lsout)
+c call addstr(sq//Figutq//nofq(1:lnof)//'{'//ch1q//'}',
+c * 8+lnof,soutq,lsout)
+ end if
+ if (ic .ge. 10) go to 2
+ ic = ic+1
+ nof = nof+4
+ nofa = nofa+4
+ go to 1
+2 continue
+ if (abs(offnsk) .gt. .0001) then
+ notexq = sq//'off{'
+ if (offnsk .lt. -9.995) then
+ write(notexq(6:11),'(f6.2)')offnsk
+ lnote = 11
+ else if (offnsk.lt.-.995 .or. offnsk.gt.9.995) then
+ write(notexq(6:10),'(f5.2)')offnsk
+ lnote = 10
+ else if (offnsk.lt.-.0001 .or. offnsk.gt..995) then
+ write(notexq(6:9),'(f4.2)')offnsk
+ lnote = 9
+ else
+ write(notexq(6:8),'(f3.2)')offnsk
+ lnote = 8
+ end if
+ notexq = notexq(1:lnote)//sq//'noteskip}'
+ call addstr(notexq,lnote+10,soutq,lsout)
+ end if
+ if (ifig .lt. nfigs(ivx)) then
+ ifig = ifig+1
+ else
+ nfigs(ivx) = 0
+ figcheck = .false.
+ end if
+ return
+ end
+ subroutine putorn(iornq,nolev,nolevm,nodur,nornb,ulq,ibmcnt,ivx,
+ * ncm,islur,nvmx,nv,ihornb,stemlin,outq,lout,ip,islhgt,
+ * beamon,iscrd)
+c
+c All args are individual array element *values* except nornb,ihornb,ulq.
+c notcrd = .true. if ornament is on main note.
+c nolevm is level of main note (for chords)
+c
+ parameter (nm=24)
+ character*1 ulpzq,ulq(nm,9),udqq,sq,chax
+ character*8 noteq
+ character*79 notexq,outq
+ integer*4 ihornb(nm,24),nornb(nm)
+ logical btest,iscrd,usehornb,beamon
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ sq = chax(92)
+ lout = 0
+ usehornb = .false.
+ if (nodur .lt. 64) then
+ stemlen = stemlin
+ else
+ stemlen = 0.
+ end if
+c
+c Get up-downness. ulpzq is opposite from stem direction for both beams and
+c non beams. Can use in name of ornament [ . or _ ]
+c
+ if (beamon) then
+ if (ulq(ivx,ibmcnt) .eq. 'u') then
+ ulpzq = 'l'
+ else
+ ulpzq = 'u'
+ end if
+ else
+ if (udqq(nolevm,ncm,islur,nvmx,ivx,nv).eq.'l' ) then
+ ulpzq = 'u'
+ else
+ ulpzq = 'l'
+ end if
+ end if
+c
+c To enable >1 ornament on a note, next line is top of manual loop.
+c
+2 continue
+c
+c Bit # of last ornament (last of bits 0-21)
+cc Bit # of last ornament (last of bits 0-24)
+ ibit = log2(iand(iornq,4194303))
+c ibit = log2(iand(iornq,33554431))
+ iornt = 2**ibit
+c
+c Begin routine to set height. Bits 0-13: (stmgx+Tupf._)
+c 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n
+c 19-20: >^, 21: ? (with or w/o 16-18)
+c
+c Do not use beam height for . or _
+c
+ if (btest(iornq,22) .and. iand(iornt,6144).eq.0) then
+c
+c Height is set by special beam stuff.
+c Do not leave ihorn set, do separately for every ornament
+c
+ ihorn = ihornb(ivx,nornb(ivx))
+ if (ulpzq .eq. 'u') ihorn = ihorn-2
+c
+c Following flag tells whether to increment nornb when exiting the subroutine.
+c
+ usehornb = .true.
+ else if (ibit .eq. 14) then
+c
+c Down fermata. Don't worry about upper chord notes.
+c
+ if (ulpzq .eq. 'l') then
+ ihorn = min(nolev,ncm-3)
+ else
+ ihorn = min(nolev-stemlen,ncm-3.)
+ end if
+ else if (btest(iornt,13) .or. btest(iornt,0)) then
+c
+c ( or )
+c
+ ihorn = nolev
+ else if (iand(iornt,6144) .gt. 0) then
+c
+cc Staccato . or tenuto _ , but not special beam stuff. Need up-down info
+c NOTE: removed .&_ from special beam treatment.
+c Staccato . or tenuto _ Need up-down info
+c
+ if (.not.iscrd .or. (maxlev.ne.nolev.and.ulpzq.eq.'l') .or.
+ * (minlev.ne.nolev.and.ulpzq.eq.'u')) then
+ ihorn = nolev
+ else if (maxlev .eq. nolev) then
+ ulpzq = 'u'
+ ihorn = max(nolev+stemlen,ncm+3.)
+ else
+ ulpzq = 'l'
+ ihorn = min(nolev-stemlen,ncm-3.)
+ end if
+ else if (iscrd .and. nolev .eq. minlev) then
+ if (ulpzq .eq. 'l') then
+ ihorn = min(nolev-3,ncm-6)
+ else
+ ihorn = min(nolev-nint(stemlen)-3,ncm-6)
+ end if
+ else if (ibit.eq.10 .and. nolev.gt.90) then
+c
+c Special treatment for fermata on a shifted rest
+c
+ ihorn = ncm+5
+ else if (ulpzq.eq.'l') then
+c
+c (iscrd and nolev=maxlev) or (.not.iscrd)
+c
+ ihorn = max(nolev+stemlen+2,ncm+5.)
+ else
+ ihorn = max(nolev+2,ncm+5)
+ end if
+ ioff = 0
+ iclracc = 0
+c
+c Begin routine to set name. Bits 0-13: (stmgx+Tupf._)
+c 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n
+c
+ if (btest(iornt,2)) then
+ notexq = sq//'shake'
+ lnote = 6
+ else if (btest(iornt,3)) then
+ notexq = sq//'mordent'
+ lnote = 8
+ else if (btest(iornt,1)) then
+ notexq = sq//'mtr'
+ lnote = 4
+ else if (btest(iornt,5)) then
+ notexq = sq//'xtr'
+ lnote = 4
+ else if (btest(iornt,6)) then
+ notexq = sq//'ptr'
+ lnote = 4
+ else if (btest(iornt,13)) then
+ notexq = sq//'rpn'
+ lnote = 4
+ else if (btest(iornt,0)) then
+ notexq = sq//'lpn'
+ lnote = 4
+ else if (btest(iornt,12)) then
+ notexq = sq//ulpzq//'st'
+ lnote = 4
+ else if (btest(iornt,11)) then
+ notexq = sq//ulpzq//'pz'
+ lnote = 4
+ else if (btest(iornt,8)) then
+ notexq = sq//'upz'
+ lnote = 4
+ ioff = -2
+ else if (btest(iornt,9)) then
+ notexq = sq//'uppz'
+ lnote = 5
+ ioff = -2
+ else if (btest(iornt,10)) then
+ if (nodur .lt. 48) then
+ notexq = sq//'fermataup'
+ else
+ notexq = sq//'Fermataup'
+ end if
+ lnote = 10
+ ioff = -2
+ else if (btest(iornt,14)) then
+ if (nodur .lt. 48) then
+ notexq = sq//'fermatadown'
+ else
+ notexq = sq//'Fermatadown'
+ end if
+ lnote = 12
+ else if (btest(iornt,21)) then
+c
+c "?" in editorial ornament. Clear bit 16-18 after use, since ibit=21
+c
+ if (btest(iornq,16)) then
+ notexq = sq//'qsharp'
+ lnote = 7
+ ioff = 2
+ iornq = ibclr(iornq,16)
+ iclracc = 16
+ else if (btest(iornq,17)) then
+ notexq = sq//'qflat'
+ lnote = 6
+ ioff = 1
+ iornq = ibclr(iornq,17)
+ iclracc = 17
+ else if (btest(iornq,18)) then
+ notexq = sq//'qnat'
+ lnote = 5
+ ioff = 2
+ iornq = ibclr(iornq,18)
+ iclracc = 18
+ else
+ notexq = sq//'qedit'
+ lnote = 6
+ ioff = 0
+ end if
+ else if (btest(iornt,16)) then
+ notexq = sq//'esharp'
+ lnote = 7
+ ioff = 2
+ else if (btest(iornt,17)) then
+ notexq = sq//'eflat'
+ lnote = 6
+ ioff = 1
+ else if (btest(iornt,18)) then
+ notexq = sq//'enat'
+ lnote = 5
+ ioff = 2
+ else if (btest(iornt,19)) then
+ notexq = sq//'usf'
+ lnote = 4
+ ioff = -2
+ else if (btest(iornt,20)) then
+ notexq = sq//'usfz'
+ lnote = 5
+ ioff = -2
+ end if
+ iudorn = 0
+c
+c User-defined level shift of ornament from default?
+c
+ if (btest(iornq,25)) then
+c
+c Find which (if any) element of kudorn has the shift.
+c
+ do 3 iudorn = 1 , nudorn
+ if (ibit .lt. 21) then
+ ibitt = ibit
+c
+c Could have oes, but not oe? or oes?
+c
+ else if (iclracc .gt. 0) then
+c
+c Earlier cleared edit. accid, meaning it was oes?
+c
+ ibitt = iclracc+6
+ else
+ ibitt = 21
+ end if
+ ibitt=ip+ishft(mod(ivx,16),8)+ishft(nolev,12)+ishft(ibitt,19)
+c if (ibitt .eq. iand(33554431,kudorn(iudorn))) go to 4
+ if (ibitt .eq. iand(33554431,kudorn(iudorn))
+ * .and. ivx.eq.ivxudorn(iudorn)) go to 4
+3 continue
+c
+c Nothing shifted on this note; exit this if block
+c
+ iudorn = 0
+ go to 5
+4 continue
+ ioffinc = iand(63,ishft(kudorn(iudorn),-25))-32
+ if (ibit.eq.19 .and. ioffinc .lt. -7) then
+c
+c Convert usf to lsf. The reason has to do with positioning being impossile
+c for some mysterious reason when you drop \usf below the staff
+c
+ notexq = sq//'lsf'
+ ioffinc = ioffinc+6
+ end if
+ ioff = ioff+ioffinc
+ end if
+5 continue
+c
+c Shift level to avoid slur. Conditions are
+c 1. There is a slur
+c 2. No user-defined orn height shift (btest(iornq,25))
+c 3. upslur (islhgt>0)
+c 4. ornament is not segno(4), ._)(11-13), down ferm(14) or "(" (0) Bin=30737
+c 5. islhgt+3 >= height already computed.
+c
+ if (.not.btest(iornq,25) .and.
+ * islhgt.gt.0 .and. iand(iornt,30737).eq.0)
+ * ioff = ioff+dim(islhgt+3,ihorn )
+ call notefq(noteq,lnoten,ihorn+ioff,ncm)
+ if (lnoten.eq.1) call addblank(noteq,lnoten)
+ if (iand(iornt,32896) .gt. 0) then
+c
+c T-trill or trill w/o "tr"
+c
+ call dotrill(ivx,ip,iornt,noteq,lnoten,notexq,lnote)
+ else
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ end if
+ if (iudorn .gt. 0) then
+ if (btest(kudorn(iudorn),31)) then
+c
+c Horizontal shift
+c
+ lform = lfmt1(ornhshft(iudorn))
+ write(noteq(1:lform),'(f'//chax(48+lform)//'.1)')
+ * ornhshft(iudorn)
+ notexq = sq//'roffset{'//noteq(1:lform)//'}{'
+ * //notexq(1:lnote)//'}'
+ lnote = lnote+lform+12
+ ornhshft(iudorn) = 0.
+ kudorn(iudorn) = ibclr(kudorn(iudorn),31)
+ end if
+ end if
+c
+c Zero out the bit for ornament just dealt with.
+c
+ iornq = ibclr(iornq,ibit)
+ if (lout .eq. 0) then
+ outq = notexq(1:lnote)
+ else
+ outq = outq(1:lout)//notexq(1:lnote)
+ end if
+ lout = lout+lnote
+c
+c Check bits 0-21, go back if any are still set
+c
+ if (iand(iornq,4194303) .gt. 0) go to 2
+ if (usehornb) nornb(ivx) = nornb(ivx)+1
+ return
+ end
+ subroutine putshft(ivx,onoff,soutq,lsout)
+ parameter (nm=24)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ character*80 soutq,notexq
+ character*1 sq,chax
+ logical onoff
+ sq = chax(92)
+c
+c Start user-defined offsets X(...): or X(...)S
+c
+ if (onoff) nudoff(ivx) = nudoff(ivx)+1
+c
+c Xoff is in pts. Round off to nearest .1. Will use at end of shift.
+c
+ xoff = udoff(ivx,nudoff(ivx))
+ xoff = sign(int(10.*abs(xoff)+.5)/10.,xoff)
+ if (.not.onoff) xoff = -xoff
+ if (xoff .lt. -9.95) then
+ ifmt = 5
+ else if (xoff.lt.-.95 .or. xoff.gt.9.95) then
+ ifmt = 4
+ else
+ ifmt = 3
+ end if
+ write(notexq,'(f'//chax(48+ifmt)//'.1)')xoff
+ call addstr(sq//'off{'//notexq(1:ifmt)//'pt}',8+ifmt,
+ * soutq,lsout)
+ return
+ end
+ subroutine puttitle(inhnoh,xnsttop,etatop,sq,etait,etatc,
+ * etacs1,nv,vshrink,sepsymq)
+c
+c Called once per page, at top of page! If vshrink, only called for p.1.
+c Actual titles only allowed on p.1. (set by headlog).
+c 3/18/01: The above comment is probably bogus...can use Tt on later pages.
+c
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ character*127 notexq
+ character*120 instrq,titleq,compoq
+ parameter (nm=24)
+ character*1 sq,sepsymq(nm),chax
+ logical headlog,vshrink
+ notexq = sq//'znotes'
+ lenline = 7
+ do 22 iv = 1 , nv-1
+ notexq = notexq(1:lenline)//sepsymq(iv)
+ lenline = lenline+1
+22 continue
+ notexq = notexq(1:lenline)//sq//'zcharnote{'
+ lenline = lenline+11
+ if (.not.headlog) then
+ inhead = inhnoh
+ end if
+ if (vshrink .and. usevshrink) then
+ inhead = 16
+ end if
+ ndig = int(alog10(inhead+.01))+1
+ write(notexq(lenline+1:lenline+ndig+10),'(i'//chax(48+ndig)//
+ * ',a10)')inhead,'}{'//sq//'titles{'
+ lenline = lenline+ndig+10
+c
+c Vertical skip at top of page (\Il) = etatop*glueil. Needed whether
+c headers are present or not.
+c
+ glueil = xnsttop/etatop
+ vskil = etatop*glueil
+ if (vshrink .and. usevshrink) vskil = 2
+ call writflot(vskil,notexq,lenline)
+ if (.not.headlog) then
+ if (islast) write(11,'(a)')notexq(1:lenline)
+ * //'}{}{0}{}{0}{}{0}}'//sq//'en%'
+ else
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ lcq = lenstr(instrq,120)
+ if (lcq .gt. 0) then
+ xitil = etait*glueil
+ if (vshrink .and. usevshrink) xitil = 2
+ notexq = notexq(1:lenline)//instrq(1:lcq)//'}{'
+c
+c Null out instrument once used
+c
+ instrq = ' '
+ lenline = lenline+lcq+2
+ call writflot(xitil,notexq,lenline)
+ else
+ notexq = notexq(1:lenline)//'}{0'
+ lenline = lenline+3
+ end if
+ if (islast) write(11,'(a)')notexq(1:lenline)//'}%'
+ notexq = '{'
+ lenline = 1
+ lcq = lenstr(titleq,120)
+ if (lcq .gt. 0) then
+ notexq = notexq(1:lenline)//titleq(1:lcq)
+ lenline = lenline+lcq
+ else
+ call printl(' ')
+ call printl('WARNING')
+ call printl(
+ * ' In a title block, you have specified instrument and/or')
+ call printl(
+ * ' composer but no title for the piece.')
+ end if
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ xtcil = etatc*glueil
+ lcq = lenstr(compoq,120)
+ if (lcq .eq. 0) xtcil = 2*xtcil
+ if (vshrink .and. usevshrink) xtcil = 2
+ call writflot(xtcil,notexq,lenline)
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ if (lcq .gt. 0) then
+ notexq = notexq(1:lenline)//compoq(1:lcq)//'}{'
+ lenline = lenline+2+lcq
+c
+c Null out compoq so it does not get written later
+c
+ compoq = ' '
+ xcsil = etacs1*glueil
+ if (vshrink .and. usevshrink) xcsil = 2
+ call writflot(xcsil,notexq,lenline)
+ else
+ notexq = notexq(1:lenline)//'}{0'
+ lenline = lenline+3
+ end if
+ if (islast) write(11,'(a)')notexq(1:lenline)//'}}'//sq//'en%'
+ headlog = .false.
+ end if
+ return
+ end
+ subroutine putxtn(ntupv,iflop,multb,iud,wheadpt,poenom,
+ * nolev1,islope,slfac,xnlmid,islur,lnote,notexq,ncmid,nlnum,
+ * eloff,iup,irest,usexnumt)
+c
+c Places digit for xtuplet.
+c
+ character*1 chax
+ character*8 noteq
+ character*79 notexq
+ logical btest,usexnumt
+ if (iflop.ne.0 .and. multb.gt.0) then
+c
+c Number goes on beam side, move R/L by .5 wheadpt for upper/lower
+c
+ eloff = eloff-0.5*iud*wheadpt/poenom
+c
+c Number goes on beam side, must use beam parameters to set pos'n
+c
+ nlnum = nolev1+islope/slfac*eloff+iup*(multb+8)
+ if (multb .ge. 2) nlnum = nlnum+iup
+ else
+ nlnum = nint(xnlmid-1+3*iud+iflop*11)
+ end if
+ if (.not.btest(islur,31)) then
+c
+c Only print number when wanted. First check vert, horiz offset
+c
+ if (btest(irest,1)) nlnum = nlnum+iand(31,ishft(irest,-2))-16
+ if (btest(irest,7)) eloff = eloff+
+ * (.1*iand(31,ishft(irest,-9))-1.6)*wheadpt/poenom
+ if (.not.usexnumt) then
+ notexq = chax(92)//'xnum{'
+ lnote = 10
+ istrtn = 7
+ else
+ notexq = chax(92)//'xnumt{'
+ lnote = 11
+ istrtn = 8
+ end if
+ if (eloff .lt. 0.995) then
+ write(notexq(istrtn:istrtn+3),'(i1,f3.2)')0,eloff
+ else if (eloff .lt. 9.995) then
+ write(notexq(istrtn:istrtn+3),'(f4.2)')eloff
+ else
+ write(notexq(istrtn:istrtn+4),'(f5.2)')eloff
+ lnote = lnote+1
+ end if
+ call notefq(noteq,lnoten,nlnum,ncmid)
+ notexq = notexq(1:lnote)//'}'//noteq(1:lnoten)
+ lnote = lnote+1+lnoten
+ if (ntupv .lt. 10) then
+ write(notexq(lnote+1:lnote+1),'(i1)')ntupv
+ lnote = lnote+1
+ else
+ notexq = notexq(1:lnote)//'{'
+ write(notexq(lnote+2:lnote+3),'(i2)')ntupv
+ notexq = notexq(1:lnote+3)//'}'
+ lnote = lnote+4
+ end if
+ end if
+ return
+ end
+ subroutine read10(string,lastchar)
+ parameter (maxblks=4000)
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*(*) string
+ character*128 lnholdq
+ logical lastchar
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ if (.not.mplay) then
+ if (ilbuf .gt. nlbuf) go to 999
+ call getbuf(string)
+ return
+999 lastchar = .true.
+ return
+ else
+c
+c Play a macro. Set pointer to first character needed in buffer
+c
+ if (ilmac .eq. il1mac(macnum)) then
+c
+c Getting first line of macro
+c
+ ip1 = ip1mac(macnum)
+ iplmac = ip1-ic1mac(macnum)
+ else if (ilmac .le. il2mac(macnum)) then
+c
+c Beyond first line of macro. Advance line-start pointer.
+c
+ iplmac = iplmac+lbuf(ilmac-1)
+ ip1 = iplmac+1
+ else
+c
+c Beyond last line of macro. Terminate it!
+c
+ mplay = .false.
+ endmac = .true.
+ return
+ end if
+ if (ilmac .eq. il2mac(macnum)) then
+c
+c Getting last line of macro.
+c
+ ip2 = ip2mac(macnum)
+ else
+c
+c Getting line before last line of macro.
+c
+ ip2 = iplmac+lbuf(ilmac)
+ end if
+ if (ip2 .ge. ip1) then
+ string = bufq(ip1:ip2)
+ else
+c
+c Kluge for when macro start is on a line by itself
+c
+ string = ' '
+ end if
+ ilmac = ilmac+1
+ return
+ end if
+ end
+ function readin(lineq,iccount,nline)
+c
+c Reads a piece of setup data from file lineq, gets a new lineq from
+c file 10 (jobname.pmx) and increments nline if needed, passes over
+c comment lines
+c
+ character*128 lineq
+ character*1 durq,chax
+4 if (iccount .eq. 128) then
+1 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 1
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 2 iccount = iccount , 127
+ if (lineq(iccount:iccount) .ne. ' ') go to 3
+2 continue
+c
+c If here, need to get a new line
+c
+ iccount = 128
+ go to 4
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(lineq,iccount,durq)
+c
+c Remember that getchar increments iccount, then reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ call stop1()
+ end if
+ icf = i2-i1+49
+ read(lineq(i1:i2),'(f'//chax(icf)//'.0)')readin
+ return
+ end
+ subroutine readmeter(lineq,iccount,mtrnum,mtrden)
+ character*128 lineq
+ character*1 durq,chax
+ if (index(lineq(iccount+1:iccount+3),'/') .eq. 0) then
+c
+c No slashes, so use old method
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. '-') then
+c
+c Negative numerator is used only to printed; signals vertical slash
+c
+ call getchar(lineq,iccount,durq)
+ mtrnum = -(ichar(durq)-48)
+ else if (durq .eq. 'o') then
+c
+c Numerator is EXACTLY 1
+c
+ mtrnum = 1
+ else
+ mtrnum = ichar(durq)-48
+ if (mtrnum .eq. 1) then
+c
+c Numerator is >9
+c
+ call getchar(lineq,iccount,durq)
+ mtrnum = 10+ichar(durq)-48
+ end if
+ end if
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'o') then
+ mtrden = 1
+ else
+ mtrden = ichar(durq)-48
+ if (mtrden .eq. 1) then
+ call getchar(lineq,iccount,durq)
+ mtrden = 10+ichar(durq)-48
+ end if
+ end if
+ else
+c
+c Expect the form m[n1]/[n2]/[n3]/[n4] . Advance iccount by one from '/' or 'm'
+c
+ iccount = iccount+1
+ ns = index(lineq(iccount:128),'/')
+ read(lineq(iccount:iccount+ns-2),'(i'//chax(47+ns)//')')mtrnum
+c
+c Reset iccount to start of second integer
+c
+ iccount = iccount+ns
+c
+c There must be either a slash or a blank at pos'n 2 or 3
+c
+ ns = index(lineq(iccount:iccount+2),'/')
+ if (ns .eq. 0) ns = index(lineq(iccount:iccount+2),' ')
+ read(lineq(iccount:iccount+ns-2),'(i'//chax(47+ns)//')')mtrden
+c
+c Set iccount to last character used
+c
+ iccount = iccount+ns-1
+ end if
+ return
+ end
+ subroutine readnum(lineq,iccount,durq,fnum)
+c
+c This reads a number starting at position iccount. Remember that on exit,
+c getchar leaves iccount at the last character retrieved. So must only
+c call this routine *after* detecting a number or decimal.
+c On exit, durq is next character after end of number.
+c
+ character*128 lineq
+ character*1 durq,chax
+ i1 = iccount
+1 call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .gt. 0) go to 1
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ call stop1()
+ else if (lineq(i1:i1).eq.'.'.and.lineq(i2:i2).eq.'.') then
+ i2 = i2-1
+ iccount = iccount-1
+ end if
+ icf = i2-i1+49
+ read(lineq(i1:i2),'(f'//chax(icf)//'.0)')fnum
+ return
+ end
+ subroutine setbits(isdata,iwidbit,ishift,ivalue)
+c
+c Sets iwidbits of isdata, shifted by ishift, to ivalue
+c
+ ibase = 2**iwidbit-1
+ if (ivalue.gt.ibase) then
+ print*
+ print*,'WARNING in setbits: ivalue > ibase'
+ write(15,'(/,a)')'WARNING in setbits: ivalue > ibase'
+ end if
+ isdata = iand(not(ishft(ibase,ishift)),isdata)
+ isdata = ior(isdata,ishft(ivalue,ishift))
+ return
+ end
+ subroutine setbm2(xelsk,nnb,sumx,sumy,ipb,islope,nolev1)
+c
+c The MEAN SQUARE slope algorithm
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig
+ real*4 xelsk(24)
+ integer ipb(24)
+ ibc = ibmcnt(ivx)
+ sumxx = 0.
+ sumxy = 0.
+ do 2 inb = 1 , nnb
+ sumxx = sumxx+xelsk(inb)**2
+ sumxy = sumxy+xelsk(inb)*nolev(ivx,ipb(inb))
+2 continue
+ delta = nnb*sumxx-sumx*sumx
+ em = (nnb*sumxy-sumx*sumy)/delta
+ islope = nint(0.5*em*slfac)
+ if (iabs(islope) .gt. 9) islope = isign(9,islope)
+ beta = (sumy-islope/slfac*sumx)/nnb
+ nolev1 = nint(beta)
+c
+c Check if any stems are too short
+c
+ smin = 100.
+ iul = -1
+ if (ulq(ivx,ibc) .eq. 'u') iul = 1
+ do 4 inb = 1 , nnb
+ ybeam = nolev1+iul*stemlen+islope*xelsk(inb)/slfac
+ ynote = nolev(ivx,ipb(inb))
+ smin = min(smin,iul*(ybeam-ynote))
+4 continue
+ if (smin .lt. stemmin) then
+ deficit = stemmin-smin
+ nolev1 = nint(nolev1+iul*deficit)
+ end if
+ return
+ end
+ subroutine setmac(lineq,iccount,ibarcnt,ibaroff,nbars,charq,durq,
+ * ivx,nline)
+ character*1 charq,durq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac,btest
+ character*128 lnholdq,lineq
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+c
+c Macro action
+c
+ call g1etchar(lineq,iccount,charq)
+ if (charq.eq.'S' .and. ivx.ne.1) then
+ print*
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"MS..." only put in parts by scor2prt if in voice #1!')
+ end if
+ if (index('RSP ',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "M" (macro)!')
+ call stop1()
+ else if (charq .ne. ' ') then
+c
+c Record or playback a macro. Get the number of the macro.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must input number after "MR","MP", or "MS"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Macro number must be followed by a blank!')
+ call stop1()
+ end if
+ if (index('RS',charq ).gt. 0) then
+c
+c Record or save a macro
+c
+ if (macnum.lt.1 .or. macnum.gt.20) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Macro number not in range 1-20!')
+ call stop1()
+c else if (btest(macuse,macnum)) then
+c print*
+c print*,'WARNING: Redefining macro # ',macnum
+ end if
+ macuse = ibset(macuse,macnum)
+ if (charq .eq. 'R') then
+ call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ else if (charq .eq. 'S') then
+c
+c Save (Record but don't activate)
+c
+1 call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ if (mrecord) then
+ call getbuf(lineq)
+ nline = nline+1
+ iccount = 0
+ go to 1
+ end if
+ iccount = iccount+ndxm+1
+ end if
+ else
+c
+c Playback the macro
+c
+ if (.not.btest(macuse,macnum)) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot play a macro that has not been recorded!')
+ call stop1()
+ end if
+ icchold = iccount
+ lnholdq = lineq
+ iccount = 128
+ mplay = .true.
+ ilmac = il1mac(macnum)
+ end if
+ end if
+ return
+ end
+ subroutine setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+c
+c Sets last 2 args depending on 1st 2, (logical) num, denom.
+c ibmtyp = 1, 2, or 3 defines set of masks for beam groupings.
+c 1: all duple meters
+c 2: triple w/ denom=4, subdivide in groups of 2 8ths
+c 3: triple w/ denom=8, subdivide in groups of 3 8ths
+c Note that lenbar is set at top or when 'm' symbol is read in getnote
+c
+ if (mtrdenl .eq. 4) then
+ if (mod(mtrnuml,3) .eq. 0) then
+ ibmtyp = 2
+ ibmrep = mtrnuml/3
+ else
+ ibmtyp = 1
+ ibmrep = mtrnuml/2
+ end if
+ else if (mtrdenl .eq. 2) then
+ ibmtyp = 1
+ if (mtrnuml .eq. 3) then
+ ibmrep = 3
+ else
+ ibmrep = 2*mtrnuml/mtrdenl
+ end if
+ else
+c
+c Assumes mtrdenl=8 and 3/8, 6/8, 9/8, or 12/8
+c
+ ibmtyp = 3
+ ibmrep = mtrnuml/3
+ end if
+c
+c Reset so we don't keep writing new meters
+c
+ mtrnuml = 0
+c
+c Prevent ibmrep=0. Needed for odd bars, e.g. 1/8, where beams don't matter
+c
+ ibmrep = max(ibmrep,1)
+ return
+ end
+ subroutine SetupB(xelsk,nnb,sumx,sumy,ipb,smed,ixrest)
+c
+c The outer combo algorithm
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,l1ng,l2ng,bar1syst,drawbm
+ common /comeskz2/ eskz2(nm,200)
+ real*4 slope(800),xelsk(24)
+ integer ipb(24)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xels11(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /combmh/ bmhgt,clefend
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ ibc = ibmcnt(ivx)
+ nxtinbm(ivx) = 0
+ n1 = ipl2(ivx,ibm1(ivx,ibc))
+c
+c Initialize counters used in this subroutine, and then later during actual
+c beam drawing, to count later segments of single-slope beam groups
+c
+ nssb(ivx) = 0
+ issb(ivx) = 0
+c
+c Set flag for xtup beam starting with rest (no others can start with rest)
+c
+ if (btest(irest(ivx,ipo(n1)),0)) ixrest = 1
+c
+c Figure how many elemskips to each note. Use the list, counting only non-rests.
+c
+ eskz0 = eskz(ivx,ibm1(ivx,ibc))
+ nnb = 0
+ sumx = 0.
+ sumy = 0.
+ ipxt1 = 0
+ iplast = ibm2(ivx,ibc)
+ do 2 ip = ibm1(ivx,ibc) , iplast
+ if (.not.btest(irest(ivx,ip),0)) then
+ nnb = nnb+1
+ ipb(nnb) = ip
+ xelsk(nnb) = eskz(ivx,ip)-eskz0
+ sumx = sumx+xelsk(nnb)
+ sumy = sumy+nolev(ivx,ipb(nnb))
+ if (btest(nacc(ivx,ip),21)) then
+c
+c This is the starting note of later segment of single-slope beam group
+c Temporarily store ip here.
+c
+ nssb(ivx) = nssb(ivx)+1
+ lev1ssb(ivx,nssb(ivx)) = nnb
+ end if
+ end if
+c
+c New xtup stuff here. Final object is to get distance from start of xtup
+c to number. xtinbm counts xtups in this beam only. mtupv is the printed
+c number. ntupv is number of notes in xtup, and is only used to get
+c eloff, the distance from start of xtup to the number.
+c
+ if (btest(nacc(ivx,ip),18)) ndoub = ndoub+1
+ if (ipxt1.eq.0 .and. nodur(ivx,ip).eq.0) then
+c
+c Xtup is starting here
+c
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+ ipxt1 = ip
+ if (btest(nacc(ivx,ip),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+ else if (ipxt1.gt.0 .and. nodur(ivx,ip).gt.0) then
+c
+c Xtup ends here. Set total number of notes in xtup.
+c
+ ntupv(ivx,nxtinbm(ivx)) = ip+1-ipxt1
+c
+c Set printed number for embedded xtup.
+c
+ mtupv(ivx,nxtinbm(ivx)) = ntupv(ivx,nxtinbm(ivx))+ndoub
+c
+c Middle note of xtup if ntupv odd, note to left of gap if even.
+c
+ ipxtmid = (ip+ipxt1)/2
+ eloff(ivx,nxtinbm(ivx)) = eskz2(ivx,ipxtmid)-eskz2(ivx,ipxt1)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2) .eq. 0)
+ * eloff(ivx,nxtinbm(ivx)) = eloff(ivx,nxtinbm(ivx))+
+ * .5*(eskz2(ivx,ipxtmid+1)-eskz2(ivx,ipxtmid))
+ ipxt1 = 0
+ end if
+2 continue
+c
+c Reset nxtinbm for use as counter as #'s are posted by putxtn(..)
+c
+ nxtinbm(ivx) = 0
+ smed = 0.
+ if (.not.btest(islur(ivx,ipb(1)),2)) then
+c
+c No forced 0 slope
+c
+ if (nnb .eq. 1) go to 6
+ nsc = 0
+ do 5 inb = 1 , nnb-1
+ do 5 jnb = inb+1 , nnb
+ nsc = nsc+1
+ slope(nsc) = (nolev(ivx,ipb(jnb))-nolev(ivx,ipb(inb)))/
+ * (xelsk(jnb)-xelsk(inb))
+ if (abs(slope(nsc)) .lt. 1.e-4) then
+ nsc = nsc+1
+ slope(nsc) = slope(nsc-1)
+ nsc = nsc+1
+ slope(nsc) = slope(nsc-1)
+ end if
+5 continue
+ if (nsc .eq. 1) then
+ smed = slope(1)
+ go to 6
+ end if
+ nscmid = nsc/2+1
+ do 7 i = 1 , nscmid
+ do 7 j = i+1 , nsc
+ if (slope(j) .lt. slope(i)) then
+ t = slope(j)
+ slope(j) = slope(i)
+ slope(i) = t
+ end if
+7 continue
+ smed = slope(nscmid)
+ if (nsc .eq. 2*(nsc/2)) then
+c
+c Even number of slopes in the list, so median is ambiguous
+c
+ if (abs(slope(nscmid-1)) .lt. abs(slope(nscmid))-tol) then
+c
+c Lower-numbered one is truly less in absolute value, so use it
+c
+ smed=slope(nscmid-1)
+ else if (abs(slope(nscmid-1)+slope(nscmid)) .lt. tol) then
+c
+c Two slopes are effectively equal. Take the one with sign of the average
+c
+ sum = 0.
+ do 1 i = 1 , nsc
+ sum = sum+slope(i)
+1 continue
+ smed = sign(smed,sum)
+ end if
+ end if
+6 continue
+ islope(ivx) = nint(0.5*smed*slfac)
+ if (iabs(islope(ivx)) .gt. 9)
+ * islope(ivx) = isign(9,islope(ivx))
+ else
+c
+c Forced horizontal beam
+c
+ islope(ivx) = 0
+ end if
+ beta = (sumy-islope(ivx)/slfac*sumx)/nnb
+c
+c If ixrest>0, this is a virtual nolev1 at location of rest. Will first use
+c as is for placing xtup number and/or bracket, then reset it for start of
+c actual beam
+c
+ nolev1(ivx) = nint(beta)
+c
+c Check if any stems are too short
+c
+ smin = 100.
+ iul = -1
+ if (ulq(ivx,ibc) .eq. 'u') iul = 1
+ ssq = 0.
+ syb = 0.
+c yb1 = nolev1(ivx)+iul*(stemlen+bmhgt*(mult(ivx,ipb(1))-1))
+ yb1 = nolev1(ivx)
+ * +iul*(stemlen+bmhgt*(iand(15,mult(ivx,ipb(1)))-8-1))
+ do 4 inb = 1 , nnb
+ ybeam = yb1+islope(ivx)*xelsk(inb)/slfac
+c * -iul*bmhgt*(mult(ivx,ipb(inb))-1)
+ * -iul*bmhgt*(iand(15,mult(ivx,ipb(inb)))-8-1)
+ syb = syb+ybeam
+ ynote = nolev(ivx,ipb(inb))
+ off = ybeam-ynote
+ if (inb .eq. 1) then
+ off1 = off
+ else if (inb .eq. nnb) then
+ off2 = off
+ end if
+ ssq = ssq+off*off
+ smin = min(smin,iul*off)
+4 continue
+ dnolev = 0.
+ if (smin .lt. stemmin) then
+ deficit = stemmin-smin
+ nolevo = nolev1(ivx)
+ nolev1(ivx) = nint(nolev1(ivx)+iul*deficit)
+ dnolev = nolev1(ivx)-nolevo
+ off1 = off1+dnolev
+ off2 = off2+dnolev
+ end if
+ ssq = ssq+2*dnolev*(syb-sumy)+dnolev**2
+ if (.not.vxtup(ivx) .and. sqrt(ssq/nnb) .gt. stemmax .and.
+ * (abs(off1).lt.stemmax .or. abs(off2).lt.stemmax)
+ * .and. .not.btest(islur(ivx,ipb(1)),2)) then
+c
+c The first check is to save trouble of putting xtup's in setbm2.
+c The penultimate check is that first and last stems aren't both excessive.
+c The last check is that a 0 slope has not been forced
+c
+ call setbm2(xelsk,nnb,sumx,sumy,ipb,islope(ivx),nolev1(ivx))
+ end if
+c
+c Check if beam starts or ends too high or low.
+c
+c xboff = bmhgt*(mult(ivx,ipb(1))-1)
+ xboff = bmhgt*(iand(15,mult(ivx,ipb(1)))-8-1)
+ l1ng = iul*(nolev1(ivx)-ncmid(iv,ipb(1)))+xboff+7 .lt. 0.
+ xnolev2 = nolev1(ivx)+islope(ivx)/slfac*xelsk(nnb)
+ l2ng = iul*(xnolev2-ncmid(iv,ipb(nnb)))+xboff+7 .lt. 0
+ if (l1ng .or. l2ng) then
+c
+c Need to correct start or stop, also slope
+c
+ if (l1ng) then
+ nolev1(ivx) = nint(ncmid(iv,ipb(1))-(7.+xboff)*iul)
+ end if
+ if (l2ng) then
+ xnolev2 = nint(ncmid(iv,ipb(nnb))-(7.+xboff)*iul)
+ end if
+c
+c Since one or the other end has changed, need to change slope
+c
+ if (.not.btest(islur(ivx,ipb(1)),2))
+ * islope(ivx) = nint(slfac*(xnolev2-nolev1(ivx))/xelsk(nnb))
+ end if
+ if (nssb(ivx) .gt. 0) then
+c
+c This is a single-slope beam group. Store start heights for later segs.
+c
+ do 3 issbs = 1 , nssb(ivx)
+ lev1ssb(ivx,issbs) = nolev1(ivx)+islope(ivx)/slfac*
+ * xelsk(lev1ssb(ivx,issbs))
+3 continue
+ end if
+ return
+ end
+ subroutine sortpoe(nsyst,poe,ipoe)
+ parameter (nks=125)
+ real*4 poe(nks)
+ integer*4 ipoe(nks)
+c
+c Initialize ipoe:
+c
+ do 3 iord = 1 , nsyst
+ ipoe(iord) = iord
+3 continue
+c
+c Construct ipoe vector with pairwise interchanges. When done, ipoe(1) will
+c be index of smallest poe, and ipoe(nsyst) will be index of biggest poe.
+c
+ do 4 io1 = 1 , nsyst-1
+ do 5 io2 = io1+1 , nsyst
+ if (poe(ipoe(io1)) .gt. poe(ipoe(io2))) then
+c
+c Interchange the indices
+c
+ itemp = ipoe(io1)
+ ipoe(io1) = ipoe(io2)
+ ipoe(io2) = itemp
+ end if
+5 continue
+4 continue
+ return
+ end
+ subroutine spsslur(lineq,iccount,iv,kv,ip,isdat1,isdat2,isdat3,
+ * isdat4,nsdat,notcrd,nolev,starter)
+ parameter (nm=24)
+c
+c Reads in slur data. Record all h/v-shifts for non-chords, user-specified
+c ones for chords.
+c 5/26/02 This subr is called ONLY for postscript slurs.
+c
+c See subroutine doslur for bit values in isdat1,2,3
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ logical notcrd,btest
+ character*128 lineq
+ character*1 durq,dumq,starter
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical upslur,fontslur,WrotePsslurDefaults
+c
+c Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve
+c
+ numint = 0
+ ivoff = 0
+ ihoff = 0
+ nsdat = nsdat+1
+ if (starter.eq.'{' .or. starter.eq.'}')
+ * isdat2(nsdat)=ibset(isdat2(nsdat),3)
+ call setbits(isdat1(nsdat),5,13,iv)
+ call setbits(isdat1(nsdat),1,12,kv-1)
+ call setbits(isdat1(nsdat),8,3,ip)
+ isdat3(nsdat) = 0
+ isdat4(nsdat) = 0
+ ilb12 = 0 ! flag for tweaks of 1st or 2nd (0|1) seg of linebreak slur
+c
+c Get ID code
+c
+ call getchar(lineq,iccount,durq)
+ if (index('uldtb+-hfnHps ',durq) .gt. 0) then
+c
+c Null id. Note for ps slurs, 'H' cannot be an ID
+c
+ iccount = iccount-1
+ if (lineq(iccount:iccount) .eq. 't') then
+ idcode = 1
+ else
+ idcode = 32
+ end if
+ else
+c
+c Set explicit idcode
+c
+ idcode = ichar(durq)
+ if (lineq(iccount-1:iccount-1) .eq. 't') then
+c
+c Make t[ID] look like s[ID]t
+c
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ end if
+ end if
+ call setbits(isdat1(nsdat),7,19,idcode)
+c
+c Set start/stop: look thru list from end for same idcode,iv,kv
+c
+ do 2 isdat = nsdat-1 , 1 , -1
+ if (idcode .eq. igetbits(isdat1(isdat),7,19) .and.
+ * iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * kv-1 .eq. igetbits(isdat1(isdat),1,12)) then
+c
+c Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0.
+c
+ if (btest(isdat1(isdat),11)) go to 3
+c
+c Found slur is a turnoff, so new one is a turnon. Jump down to set bit
+c
+ go to 4
+ end if
+2 continue
+c
+c If here, this is turnon.
+c
+4 continue
+ isdat1(nsdat) = ibset(isdat1(nsdat),11)
+3 continue
+c
+c Now done with initial turnon- or turnoff-specifics.
+c
+ if (nint(SlurCurve).ne.0 .and. btest(isdat1(nsdat),11)) then
+c
+c There's a default curvature tweak
+c
+ icurv1 = nint(SlurCurve)+3
+ if (icurv1 .eq. 2) icurv1 = 1
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ end if
+c
+c Loop for rest of input
+c
+1 call getchar(lineq,iccount,durq)
+ if (index('uld',durq) .gt. 0) then
+c
+c Force direction
+c
+ isdat1(nsdat) = ibset(isdat1(nsdat),26)
+ if (durq .eq. 'u') isdat1(nsdat) = ibset(isdat1(nsdat),27)
+ go to 1
+ else if (index('+-',durq) .gt. 0) then
+ numint = numint+1
+ if (numint .eq. 1) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+ ivoff = nint(fnum)
+ if (durq .eq. '-') ivoff = -ivoff
+ else if (numint .eq. 2) then
+c
+c Horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+c
+c fnum is abs(hshift), must be 0 to 6.3
+c
+ ihoff = fnum*10 + .5
+ if (durq .eq. '-') ihoff = -ihoff
+c
+c Later will set bits to 1...127 to represent -6.3,...+6.3
+c
+ else
+c
+c Must be the 3rd signed integer, so it's a curve specification
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ icurv1 = nint(fnum)
+ if (durq .eq. '-') icurv1 = -icurv1
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ if (dumq .ne. ':') then
+c
+c Back up the pointer and loop for more input
+c
+ iccount = iccount-1
+ else
+c
+c Expect two single digits as parameters for curve
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),1)
+ call setbits(isdat3(nsdat),3,8,
+ * ichar(lineq(iccount+1:iccount+1))-48)
+ call setbits(isdat3(nsdat),3,11,
+ * ichar(lineq(iccount+2:iccount+2))-48)
+ iccount = iccount+2
+ end if
+ end if
+ go to 1
+ else if (durq .eq. 't') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ go to 1
+ else if (durq .eq. 'b') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),4)
+ go to 1
+ else if (durq .eq. 's') then
+c
+c Endpoint tweaks for linebreak slurs.
+c
+ call getchar(lineq,iccount,durq) ! Must be +|-
+c
+c Next is vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (durq .eq. '-') fnum=-fnum
+ call setbits(isdat4(nsdat),6,ilb12*16,nint(fnum)+32)
+ if (index('+-',dumq) .gt. 0) then
+c
+c Also a horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (dumq .eq. '-') fnum=-fnum
+ call setbits(isdat4(nsdat),7,ilb12*16+6,nint(10*fnum)+64)
+ end if
+ iccount = iccount-1
+ ilb12 = 1
+ go to 1
+ else if (index('fnhH',durq).gt.0) then
+c
+c Special ps slur curvatures.
+c Translate to old \midslur args (1,4,5,6)
+c
+ icurv1 = index('fnxhH',durq)
+ if (icurv1 .eq. 5) then
+c
+c check for 2nd H
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount = iccount+1
+ icurv1 = 6
+ end if
+ end if
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ go to 1
+ else if (durq .eq. 'p') then ! Local adjustment
+ call getchar(lineq,iccount,durq) ! +|-
+ call getchar(lineq,iccount,dumq) ! s|t
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+ if (durq .eq. '+') then
+ if (dumq .eq. 's') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),26)
+ else
+ isdat2(nsdat) = ibset(isdat2(nsdat),28)
+ end if
+ else
+ if (dumq .eq. 's') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),27)
+ else
+ isdat2(nsdat) = ibset(isdat2(nsdat),29)
+ end if
+ end if
+ go to 1
+ end if
+c
+c Record shifts
+c
+ call setbits(isdat2(nsdat),6, 6,ivoff+32)
+ call setbits(isdat2(nsdat),7,12,ihoff+64)
+c
+c Record chord flag, note level, notehead shift
+c
+ if (notcrd) then
+ call setbits(isdat2(nsdat),7,19,nolev)
+ else
+ nolevc = igetbits(icrdat(ncrd),7,12)
+ call setbits(isdat2(nsdat),7,19,nolevc)
+ isdat2(nsdat) = ibset(isdat2(nsdat),0)
+ call setbits(isdat2(nsdat),2,1,igetbits(icrdat(ncrd),2,23))
+ end if
+ return
+ end
+ subroutine sslur(lineq,iccount,iv,kv,ip,isdat1,isdat2,isdat3,
+ * nsdat,notcrd,nolev,starter)
+ parameter (nm=24)
+c
+c Reads in slur data. Record all h/v-shifts for non-chords, user-specified
+c ones for chords.
+c 5/26/02 now only for non-postscript slurs, use spsslur() for postscript
+c
+c See subroutine doslur for bit values in isdat1,2,3
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ integer*4 isdat1(202),isdat2(202),isdat3(202)
+ logical notcrd,btest
+ character*128 lineq
+ character*1 durq,dumq,starter
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical upslur,fontslur,WrotePsslurDefaults
+c
+c Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve
+c
+ numint = 0
+ ivoff = 0
+ ihoff = 0
+ nsdat = nsdat+1
+ if (starter.eq.'{' .or. starter.eq.'}')
+ * isdat2(nsdat)=ibset(isdat2(nsdat),3)
+ call setbits(isdat1(nsdat),5,13,iv)
+ call setbits(isdat1(nsdat),1,12,kv-1)
+ call setbits(isdat1(nsdat),8,3,ip)
+ isdat3(nsdat) = 0
+c
+c Get id letter
+c
+ if (lineq(iccount:iccount) .eq. 't') then
+c
+c Old-style t-slur. Use special idcode = 1
+c
+ idcode = 1
+ else
+ call getchar(lineq,iccount,durq)
+ if (index('uldtb+-hf ',durq) .gt. 0) then
+c
+c Null id
+c
+ idcode = 32
+ iccount = iccount-1
+ else if (durq.eq.'H') then
+c
+c Postscript slur, cannot use 'H' as code, must check for 2nd 'H'
+c
+ idcode = 32
+ iccount = iccount-1
+c
+c There may be another "H", but no need to deal with it yet
+c
+ else
+c
+c Set explicit idcode
+c
+ idcode = ichar(durq)
+ end if
+ end if
+ call setbits(isdat1(nsdat),7,19,idcode)
+c
+c Set start/stop: look thru list from end for same idcode,iv,kv
+c
+ do 2 isdat = nsdat-1 , 1 , -1
+ if (idcode .eq. igetbits(isdat1(isdat),7,19) .and.
+ * iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * kv-1 .eq. igetbits(isdat1(isdat),1,12)) then
+c
+c Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0.
+c
+ if (btest(isdat1(isdat),11)) go to 3
+c
+c Found slur is a turnoff, so new one is a turnon. Jump down to set bit
+c
+ go to 4
+ end if
+2 continue
+c
+c If here, this is turnon.
+c
+4 continue
+ isdat1(nsdat) = ibset(isdat1(nsdat),11)
+3 continue
+c
+c Now done with initial turnon- or turnoff-specifics. Loop for rest of input
+c
+1 call getchar(lineq,iccount,durq)
+ if (index('uld',durq) .gt. 0) then
+c
+c Force direction
+c
+ isdat1(nsdat) = ibset(isdat1(nsdat),26)
+ if (durq .eq. 'u') isdat1(nsdat) = ibset(isdat1(nsdat),27)
+ go to 1
+ else if (index('+-',durq) .gt. 0) then
+ numint = numint+1
+ if (numint .eq. 1) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+ ivoff = nint(fnum)
+ if (durq .eq. '-') ivoff = -ivoff
+ else if (numint .eq. 2) then
+c
+c Horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+c
+c fnum is abs(hshift), must be 0 to 6.3
+c
+ ihoff = fnum*10 + .5
+ if (durq .eq. '-') ihoff = -ihoff
+c
+c Later will set bits to 1...127 to represent -6.3,...+6.3
+c
+ else
+c
+c Must be the 3rd signed integer, so it's a curve specification
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ icurv1 = nint(fnum)
+ if (durq .eq. '-') icurv1 = -icurv1
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ if (dumq .ne. ':') then
+c
+c Back up the pointer and loop for more input
+c
+ iccount = iccount-1
+ else
+c
+c Expect two single digits as parameters for curve
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),1)
+ call setbits(isdat3(nsdat),3,8,
+ * ichar(lineq(iccount+1:iccount+1))-48)
+ call setbits(isdat3(nsdat),3,11,
+ * ichar(lineq(iccount+2:iccount+2))-48)
+ iccount = iccount+2
+ end if
+ end if
+ go to 1
+ else if (durq .eq. 't') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ go to 1
+ else if (durq .eq. 'b') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),4)
+ go to 1
+ else if (index('fhH',durq) .gt. 0) then
+c
+c Special ps slur curvatures. Translate to old \midslur args (1,4,5,6)
+c
+ icurv1 = 2+index('fhH',durq)
+ if (icurv1 .eq. 3) then
+ icurv1 = 1
+ else if (icurv1 .eq. 5) then
+c
+c check for 2nd H
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount = iccount+1
+ icurv1 = 6
+ end if
+ end if
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+c
+c Must change sign if downslur, but cannot do it now since we don't know
+c slur direction for sure.
+c
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ go to 1
+ end if
+c
+c Record shifts
+c
+ call setbits(isdat2(nsdat),6, 6,ivoff+32)
+ call setbits(isdat2(nsdat),7,12,ihoff+64)
+c
+c Record chord flag, note level, notehead shift
+c
+ if (notcrd) then
+ call setbits(isdat2(nsdat),7,19,nolev)
+ else
+ nolevc = igetbits(icrdat(ncrd),7,12)
+ call setbits(isdat2(nsdat),7,19,nolevc)
+ isdat2(nsdat) = ibset(isdat2(nsdat),0)
+ call setbits(isdat2(nsdat),2,1,igetbits(icrdat(ncrd),2,23))
+ end if
+ return
+ end
+ subroutine stop1()
+ call exit(1)
+ end
+ subroutine topfile(basenameq,lbase,nv,clefq,noinst,musicsize,
+ * xinstf1,mtrnmp,mtrdnp,vshrink,fbar,fontslur)
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink,fontslur
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ character*79 inameq
+ character*44 basenameq
+ character*24 fmtq
+ character*5 fbarq
+ character*1 clefq(nm),sq,chax
+ common /comstart/ facmtr
+ logical vshrink,lowdot,rename
+ logical novshrinktop,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /comsize/ isize(nm)
+ sq = chax(92)
+ vshrink = xinstf1.gt.20. .and. .not.novshrinktop
+ if (vshrink) then
+ xinsnow = 10.
+ else
+ xinsnow = xinstf1
+ end if
+ if (.not.islast) return
+ write(11,'(a)')'%%%%%%%%%%%%%%%%%'
+ write(11,'(a)')'%'
+ write(11,'(a)')'% '//basenameq(1:lbase)//'.tex'
+ write(11,'(a)')'%'
+ write(11,'(a)')'%%%%%%%%%%%%%%%%'
+ write(11,'(a)')sq//'input musixtex'
+ write(11,'(a)')sq//'input pmx'
+c write(11,'(a)')sq//'input musixmad'
+c write(11,'(a)')sq//'input musixxad'
+ write(11,'(a)')
+ * sq//'setmaxslurs{24}'//sq//'setmaxinstruments{24}%'
+ if (.not.fontslur) write(11,'(a)')sq//'input musixps'
+c
+c Need to input musixmad to permit more slurs.
+c
+ if (musicsize .eq. 20) then
+ write(11,'(a)')sq//'normalmusicsize%'
+ else if (musicsize .eq. 16) then
+ write(11,'(a)')sq//'smallmusicsize%'
+ else if (musicsize .eq. 24) then
+ write(11,'(a)')sq//'largemusicsize%'
+ write(11,'(a)')sq//'def'//sq//'meterfont{'//sq//
+ * 'meterlargefont}%'
+ else if (musicsize .eq. 29) then
+ write(11,'(a)')sq//'Largemusicsize%'
+ write(11,'(a)')sq//'def'//sq//'meterfont{'//sq//
+ * 'meterLargefont}%'
+ end if
+c
+c Set sizes. Have sizes per staff in isize(.) and noinst per staff in
+c nsperi(.)
+c
+ iiv = 1
+ do 5 iinst = 1 , noinst
+ if (isize(iiv) .eq. 1) then
+ if(iinst.le.9) then
+ write(11,'(a8,i1,a)')
+ * sq//'setsize',iinst,sq//'smallvalue%'
+ else
+ write(11,'(a9,i2,a)')
+ * sq//'setsize{',iinst,'}'//sq//'smallvalue%'
+ end if
+ else if (isize(iiv) .eq. 2) then
+ if(iinst.le.9) then
+ write(11,'(a8,i1,a)')
+ * sq//'setsize',iinst,sq//'tinyvalue%'
+ else
+ write(11,'(a9,i2,a)')
+ * sq//'setsize{',iinst,'}'//sq//'tinyvalue%'
+ end if
+ end if
+ iiv = iiv+nsperi(iinst)
+5 continue
+c
+c do 5 iiv = 1 , nv
+c if (isize(iiv) .eq. 1) then
+c if(iiv.le.9) then
+c write(11,'(a8,i1,a)')
+c * sq//'setsize',iiv,sq//'smallvalue%'
+c else
+c write(11,'(a9,i2,a)')
+c * sq//'setsize{',iiv,'}'//sq//'smallvalue%'
+c end if
+c else if (isize(iiv) .eq. 2) then
+c if(iiv.le.9) then
+c write(11,'(a8,i1,a)')
+c * sq//'setsize',iiv,sq//'tinyvalue%'
+c else
+c write(11,'(a9,i2,a)')
+c * sq//'setsize{',iiv,'}'//sq//'tinyvalue%'
+c end if
+c end if
+c5 continue
+c
+ write(fbarq,'(f5.3)')fbar
+ write(11,'(a)')sq//'nopagenumbers'
+ write(11,'(a)')sq//'tracingstats=2'//sq//'relax'
+ write(11,'(a7,i3,a2)')sq//'hsize=',nint(widthpt),'pt'
+ write(11,'(a6,i'//chax(49+int(log10(height+.1)))//',a2)')
+ * sq//'vsize',int(height+.1),'pt'
+c
+c The default raisebarno=3.5 internote, set in pmx.tex. Increase to 4.5 if
+c 3 sharps and treble clef, to avoid vertical clash with top space g#
+c
+ if (isig.eq.3 .and. clefq(nv).eq.'t') write(11,'(a)')
+ * sq//'def'//sq//'raisebarno{4.5'//sq//'internote}'
+ if (noinst .lt. 10) then
+ write(11,'(a19,i1,a1)')sq//'def'//sq//'nbinstruments{',
+ * noinst,'}'
+ else
+ write(11,'(a19,i2,a1)')sq//'def'//sq//'nbinstruments{',
+ * noinst,'}'
+ end if
+ iv = 0
+ do 1 iinst = 1 , noinst
+ nstaves = nsperi(iinst)
+ if (iinst .lt. 10) then
+ write(11,'(a)')sq//'setstaffs'//chax(48+iinst)
+ * //chax(48+nstaves)
+ else
+ write(11,'(a11,i2,a)')sq//'setstaffs{',iinst,'}'
+ * //chax(48+nstaves)
+ end if
+ iv = iv+1
+ if (nstaves .eq. 1) then
+ fmtq = chax(48+numclef(clefq(iv)))
+ lfmtq = 1
+ else
+ fmtq = '{'//chax(48+numclef(clefq(iv)))
+ lfmtq = 2
+ do 2 k = 2 , nstaves
+ iv = iv+1
+ fmtq = fmtq(1:lfmtq)//chax(48+numclef(clefq(iv)))
+ lfmtq = lfmtq+1
+2 continue
+ fmtq = fmtq(1:lfmtq)//'}'
+ lfmtq = lfmtq+1
+ end if
+ if (iinst .lt. 10) then
+ write(11,'(a)')sq//'setclef'//chax(48+iinst)//fmtq(1:lfmtq)
+ else
+ write(11,'(a9,i2,a)')sq//'setclef{',iinst,'}'//fmtq(1:lfmtq)
+ end if
+ do 3 lname = 79 , 2 , -1
+ if (inameq(iinst)(lname:lname) .ne. ' ') go to 4
+3 continue
+4 continue
+ lnam(iinst) = lname
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a)')sq//'setname',iinst,
+ * '{'//inameq(iinst)(1:lname)//'}'
+ else
+ write(11,'(a9,i2,a)')sq//'setname{',iinst,
+ * '}{'//inameq(iinst)(1:lname)//'}'
+ end if
+1 continue
+ write(11,'(a18,i2,a2)')sq//'generalsignature{',isig,'}%'
+ if (EarlyTransOn)
+ * call Writesetsign(nInstTrans,iInstTrans,iTransKey,EarlyTransOn)
+ call wgmeter(mtrnmp,mtrdnp)
+ ipi = nint(fracindent*widthpt)
+ if (ipi .lt. 10) then
+ write(11,'(a11,i1,a2)')sq//'parindent ',ipi,'pt'
+ else if (ipi .lt. 100) then
+ write(11,'(a11,i2,a2)')sq//'parindent ',ipi,'pt'
+ else
+ write(11,'(a11,i3,a2)')sq//'parindent ',ipi,'pt'
+ end if
+ write(11,'(a)')sq//'elemskip1pt'//sq//'afterruleskip'
+ * //fbarq//'pt'//sq//'beforeruleskip0pt'//sq//'relax'
+ if (.not.vshrink) then
+ if (xinstf1 .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ write(11,fmtq)sq//'stafftopmarg0pt'//sq//'staffbotmarg0pt'
+ * //sq//'interstaff{',xinstf1,'}'//sq//'relax'
+ else
+ write(11,'(a)')sq//'stafftopmarg0pt'//
+ * sq//'staffbotmarg5'//sq//'Interligne'//sq//
+ * 'interstaff{10}'//sq//'relax'
+ end if
+ if (nv.eq.1) write(11,'(a)')sq//'nostartrule'
+ write(11,'(a)')sq//'readmod{'//basenameq(1:lbase)//'}'
+ if (cstuplet) then
+ write(11,'(a)')sq//'input tuplet'
+ * //sq//'def'//sq//'xnumt#1#2#3{'//sq//'zcharnote{#2}{~}'
+ * //sq//'def'//sq//'tuplettxt{'//sq//'smalltype'//sq//'it{#3}'
+ * //sq//'/'//sq//'/}}%'
+ write(11,'(a)')sq//'let'//sq//'ovbkt'//sq//'uptuplet'
+ * //sq//'let'//sq//'unbkt'//sq//'downtuplet%'
+ end if
+ write(11,'(a)')sq//'startmuflex'//sq//'startpiece'//sq//
+ * 'addspace'//sq//'afterruleskip%'
+ return
+ end
+ character*1 function udfq(nolev,ncm)
+c
+c Slur directions
+c
+ common /combc/ bcspec
+ logical bcspec
+ ntest = nolev-ncm
+ if (ntest.lt.0 .or.
+ * (ntest.eq.0 .and. bcspec .and. ncm.eq.23) ) then
+ udfq = 'd'
+ else
+ udfq = 'u'
+ end if
+ return
+ end
+ character*1 function udqq(nole,ncm,isl,nvmx,ivx,nv)
+c
+c Stem direction for single notes
+c
+ character*1 ulfq
+ character*1 udqqq
+ logical btest
+ if (btest(isl,30)) then
+c
+c Absolute override
+c
+ if (btest(isl,17)) then
+ udqqq = 'u'
+ else
+ udqqq = 'l'
+ end if
+ else if (nvmx .eq. 1) then
+c
+c Single voice per staff, default
+c
+ udqqq = ulfq(1.*nole,ncm)
+ else
+c
+c Multi-voice per staff, 1st is lower, 2nd upper
+c
+ if (ivx .le. nv) then
+ udqqq = 'l'
+ else
+ udqqq = 'u'
+ end if
+ end if
+ udqq = udqqq
+ return
+ end
+ character*1 function ulfq(xnolev,ncm)
+c
+c Stem directions
+c
+ common /combc/ bcspec
+ logical bcspec
+ test = xnolev-ncm
+ if (test.lt.-.001 .or.
+ * (test.lt..001.and.bcspec.and.ncm.eq.23) ) then
+ ulfq = 'u'
+ else
+ ulfq = 'l'
+ end if
+ return
+ end
+ function upcaseq(chq)
+ character*1 chq,upcaseq,chax
+ if (ichar(chq).ge.61.and.ichar(chq).lt.122) then
+ upcaseq = chax(ichar(chq)-32)
+ else
+ upcaseq = chq
+ print*,'Warning, upcaseq was called with improper argument: '
+ * //chq
+ stop
+ end if
+ return
+ end
+ subroutine wgmeter(mtrnmp,mtrdnp)
+c
+c Writes meter stuff to file 11, so only called if islast=.true.
+c
+ character*1 sq,chax
+ if (mtrdnp .eq. 0) return
+ sq=chax(92)
+ if (mtrnmp.gt.0 .and. mtrnmp.le.9) then
+ if (mtrdnp .lt. 10) then
+ write(11,'(a25,i1,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ else
+ write(11,'(a25,i1,a2,i2,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ end if
+ else if (mtrnmp .ge. 10) then
+ if (mtrdnp .lt. 10) then
+ write(11,'(a25,i2,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ else
+ write(11,'(a25,i2,a2,i2,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ end if
+ else if (mtrnmp .lt. 0) then
+ write(11,'(a26,i1,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfracS{',
+ * -mtrnmp,'}{',mtrdnp,'}}%'
+ else if (mtrdnp .le. 4) then
+ write(11,'(a21,i1,a2)')
+ * sq//'generalmeter{'//sq//'meterN',mtrdnp,'}%'
+ else if (mtrdnp .eq. 5) then
+ write(11,'(a)')sq//'generalmeter'//sq//'allabreve%'
+ else if (mtrdnp .eq. 6) then
+ write(11,'(a)')sq//'generalmeter'//sq//'meterC%'
+ else if (mtrdnp .eq. 7) then
+ write(11,'(a)')sq//'generalmeter'//sq//'meterIIIS%'
+ end if
+ return
+ end
+ subroutine writemidi(jobname,ljob)
+ parameter(nm=24,mv=24576)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ character*1 byteq(4),char,chax
+ character*10 tempoq,instq
+ character*44 jobname
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ common /comevent/ miditime,lasttime
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+ character*79 inameq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,idsig,
+ * lnam(nm),inameq(nm)
+ logical rename
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+c
+c Used to be icmm(0:nm); did midi fail when nv>16?
+c
+ integer*2 iinsiv(nm),icmm(0:15)
+ character*5 versionc
+ common /comver/ versionc
+c data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/
+ data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16/
+c Can't remember why these were not consecutive.
+c data icmm /0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15/
+c
+c Write Header
+c
+ write(51,'(a,$)')'MThd'//char(0)//char(0)//char(0)//char(6)
+ * //char(0)//char(1)//char(0)//char(numchan+1)//char(0)//char(240)
+ if (debugmidi)
+ * write(52,'(a6,10Z4)')'"MThd"',0,0,0,6,
+ * 0,1,0,numchan+1,0,240
+c
+c Write the "conductor" track, for keys, meter, and tempos
+c Get the number of bytes in the conductor event stream
+c
+ ndata = 1+imidi(numchan)-msecstrt(numchan,nmidsec)
+ do 15 isec = 1 , nmidsec-1
+ ndata = ndata+1+msecend(numchan,isec)-msecstrt(numchan,isec)
+15 continue
+c ib1 = (4+ljob+26+ndata+4)/256
+c ib0 = 4+ljob+26+ndata+4-256*ib1
+ ib1 = (4+ljob+27+ndata+4)/256
+ ib0 = 4+ljob+27+ndata+4-256*ib1
+ write(51,'(a,$)')'MTrk'//char(0)//char(0)//char(ib1)//char(ib0)
+c
+c Text header
+c
+c * //char(0)//char(255)//char(1)//char(ljob+26)
+ * //char(0)//char(255)//char(1)//char(ljob+27)
+ if (debugmidi)
+ * write(52,'(a6,8z4)')'"MTrk"',0,0,ib1,ib0,
+ * 0,255,1,ljob+27
+ write(51,'(a,$)')jobname(1:ljob)
+ if (debugmidi) write(52,'(a)')'"'//jobname(1:ljob)//'"'
+c
+c (separate writes are needed to defeat compiler BUG!!!)
+c
+c write(51,'(a,$)')'.mid, produced by PMX 2.30'
+ write(51,'(a,$)')'.mid, produced by PMX '//versionc
+ if (debugmidi) write(52,'(a)')
+ * '".mid, produced by PMX '//versionc//'"'
+c
+c Conductor event data: Loop over sections.
+c
+ do 16 isec = 1 , nmidsec
+ if (isec .lt. nmidsec) then
+ mend = msecend(numchan,isec)
+ else
+ mend = imidi(numchan)
+ end if
+ do 17 i = msecstrt(numchan,isec) , mend
+ write(51,'(a,$)')char(mmidi(numchan,i))
+ if (debugmidi) write(52,'(z4)')mmidi(numchan,i)
+17 continue
+16 continue
+c
+c And close out the time sig / tempo track.
+c
+ write(51,'(a,$)')char(0)//char(255)//char(2*16+15)//char(0)
+ if (debugmidi) write(52,'(4z4)')0,255,2*16+15,0
+c
+c Loop over track for each voice: The following sets up iv.
+c
+ iv = nv
+ if (twoline(nv)) then
+ kv = 2
+ else
+ kv = 1
+ end if
+c
+c Count up staves(iv,nv) vs instruments. Store instr# for iv in iinsiv(iv)
+c
+ nstaves = 0
+ ivt = 0
+ do 12 iinst = 1 , nm
+ nstaves = nstaves+nsperi(iinst)
+ do 13 ivtt = 1 , nsperi(iinst)
+ ivt = ivt+1
+ iinsiv(ivt) = iinst
+13 continue
+ if (nstaves .eq. nv) go to 14
+12 continue
+ print*,'Screwup!'
+ call stop1()
+14 continue
+c
+ do 5 icm = 0 , numchan-1
+c
+c Get the number of bytes in the data stream
+c
+ ndata = 1+imidi(icm)-msecstrt(icm,nmidsec)
+ do 11 isec = 1 , nmidsec-1
+ ndata = ndata+1+msecend(icm,isec)-msecstrt(icm,isec)
+11 continue
+c
+cc Add 3 (for instrum) plus 4 (for closing) to byte count,
+c Add 3 for instrum, 4 for bal, plus 4 (for closing) to byte count,
+c
+c ndata = ndata+7
+ ndata = ndata+11
+c
+c Add 4+lnam(iinsiv(iv)) if lnam>0 ,
+c
+ if (lnam(iinsiv(iv)).gt.0) ndata = ndata+4+lnam(iinsiv(iv))
+c
+c Separate total byte counts into 4 bytes
+c
+ do 2 ibyte = 1 , 4
+ if (ndata .gt. 0) then
+ byteq(ibyte) = char(mod(ndata,256))
+ ndata = ishft(ndata,-8)
+ else
+ byteq(ibyte) = char(0)
+ end if
+2 continue
+c
+c Now write front stuff for this track
+c
+ write(51,'(a,$)')'MTrk'//byteq(4)//byteq(3)//byteq(2)//byteq(1)
+ * //char(0)//char(12*16+icmm(icm))//char(midinst(iv))
+ * //char(0)//char(11*16+icmm(icm))//char(10)//char(midbc(icm))
+ if (debugmidi) write(52,'(a4,z2,a7,11z4)')'icm=',icm,
+ * ' "MTrk"',ichar(byteq(4)),ichar(byteq(3)),ichar(byteq(2)),
+ * ichar(byteq(1)),0,12*16+icmm(icm),midinst(iv),
+ * 0,11*16+icmm(icm),10,midbc(icm)
+ if (lnam(iinsiv(iv)) .gt. 0) then
+c
+c Add instrument name as sequence name
+c
+ write(51,'(a,$)')char(0)//char(255)//char(3)
+ * //char(lnam(iinsiv(iv)))
+ if (debugmidi) write(52,'(4z4)')0,255,3,lnam(iinsiv(iv))
+ write(51,'(a,$)')
+ * inameq(iinsiv(iv))(1:lnam(iinsiv(iv)))
+ if (debugmidi) write(52,'(a)')
+ * '"'//inameq(iinsiv(iv))(1:lnam(iinsiv(iv)))//'"'
+ end if
+ write(tempoq,'(i2)')icm
+ write(instq,'(i3)')midinst(iv)
+ call printl('MIDI instrument '//tempoq(1:2)//' is '//instq(1:3))
+c
+c Notes: Loop over sections.
+c
+ do 9 isec = 1 , nmidsec
+ if (isec .lt. nmidsec) then
+ mend = msecend(icm,isec)
+ else
+ mend = imidi(icm)
+ end if
+ do 10 i = msecstrt(icm,isec) , mend
+ write(51,'(a,$)')char(mmidi(icm,i))
+ if (debugmidi) write(52,'(z4)')mmidi(icm,i)
+10 continue
+9 continue
+c
+c Closing 4 bytes
+c
+ write(51,'(a,$)')chax(0)//char(255)//char(2*16+15)//char(0)
+ if (debugmidi) write(52,'(4z4)')0,255,2*16+15,0
+ if (kv .eq. 2) then
+ kv = 1
+ else if (iv .eq. 1) then
+ go to 5
+ else
+ iv = iv-1
+ if (twoline(iv)) kv=2
+ end if
+5 continue
+ write(*,'(1x,a12,(10i6))')'Bytes used:',(imidi(icm),icm=0,numchan)
+ write(15,'(1x,a12,(10i6))')
+ * 'Bytes used:',(imidi(icm),icm=0,numchan)
+ close(51)
+ if (debugmidi) close(52)
+ return
+ end
+ subroutine Writesetsign(nInstTrans,iInstTrans,iTransKey,flag)
+ parameter(nm=24)
+ integer*4 iInstTrans(nm),iTransKey(nm)
+ character*79 notexq
+ character*1 chax
+ logical flag
+c
+c Assumes notexq is blank
+c
+ do 1 i = 1 , nInstTrans
+ notexq = chax(92)//'setsign'
+ lnote = 8
+ if (iInstTrans(i) .lt. 10) then
+ notexq = notexq(1:lnote)//chax(48+iInstTrans(i))
+ lnote = lnote+1
+ else
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')
+ * '{',iInstTrans(i),'}'
+ lnote = lnote+4
+ end if
+ if (iTransKey(i) .lt. 0) then
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')
+ * '{',iTransKey(i),'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//chax(48+iTransKey(i))
+ lnote = lnote+1
+ end if
+ write(11,'(a)')notexq(1:lnote)//'%'
+1 continue
+ flag = .false.
+ return
+ end
+ subroutine writflot(x,notexq,lenline)
+ character*(*) notexq
+ if (x .lt. 0.95) then
+ write(notexq(lenline+1:lenline+2),'(f2.1)')x
+ lenline = lenline+2
+ else if (x .lt. 9.95) then
+ write(notexq(lenline+1:lenline+3),'(f3.1)')x
+ lenline = lenline+3
+ else
+ write(notexq(lenline+1:lenline+4),'(f4.1)')x
+ lenline = lenline+4
+ end if
+ return
+ end
+ subroutine wsclef(iv,ninow,clefq,nclef)
+c
+c Writes \setclef for instrument containing voice iv
+c
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ logical rename
+ character*1 clefq(nm),chax
+ character*20 temq
+ if (nclef .lt. 7) then
+ clefq(iv) = chax(48+nclef)
+ else
+ clefq(iv)='9'
+ end if
+ if (.not.islast) return
+ iv1 = 1
+ do 1 iinst = 1 , ninow
+ if (iv .lt. iv1+nspern(iinst)) go to 2
+ iv1 = iv1+nspern(iinst)
+1 continue
+ print*
+ print*,'Should not be here in wsclef!'
+ call stop1()
+2 continue
+ iv2 = iv1+nspern(iinst)-1
+ if (iinst .lt. 10) then
+ temq = chax(92)//'setclef'//chax(48+iinst)
+ ltem = 9
+ else
+ write(temq,'(a9,i2,a1)') chax(92)//'setclef{',iinst,'}'
+ ltem = 12
+ end if
+ if (iv1 .eq. iv2) then
+ write(11,'(a)')temq(1:ltem)//clefq(iv)//'%'
+ else
+ temq = temq(1:ltem)//'{'
+ ltem = ltem+1
+ do 3 iiv = iv1 , iv2
+ temq = temq(1:ltem)//chax(48+numclef(clefq(iiv)))
+ ltem = ltem+1
+3 continue
+ write(11,'(a)')temq(1:ltem)//'}%'
+ end if
+ return
+ end
diff --git a/Build/source/utils/pmx/pmx-2.6.18/pmx2618.for b/Build/source/utils/pmx/pmx-2.6.18/pmx2618.for
new file mode 100644
index 00000000000..e5f73564979
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/pmx2618.for
@@ -0,0 +1,23646 @@
+ program pmxab
+c
+c This program, PMX, developed by Don Simons
+c (dsimons@roadrunner.com), is a preprocessor for MusiXTeX. In concert with
+c MusiXTeX and TeX, its purpose is to allow the user to create high-quality
+c typeset musical scores by including a sequence of PMX commands in an ASCII
+c input file.
+c
+c This program is free software: you can redistribute it and/or modify
+c it under the terms of the GNU General Public License as published by
+c the Free Software Foundation, either version 3 of the License, or
+c (at your option) any later version.
+c
+c This program is distributed in the hope that it will be useful,
+c but WITHOUT ANY WARRANTY; without even the implied warranty of
+c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+c GNU General Public License for more details.
+c
+c You should have received a copy of the GNU General Public License
+c along with this program. If not, see <http://www.gnu.org/licenses/>.
+c
+c
+ character*9 date
+ character*5 version,versionc
+ common /comver/ versionc
+c
+c To compile with gfortran:
+c 1. Merge all files using copy *.for epmx[nnnn].for
+c 2. Search and replace all character*65536 with character*131072
+c 3. Comment/uncomment getarg lines
+c 4. gfortran -O pmx[nnnn].for -o pmxab.exe
+c
+c To do
+c Correct Rainer's email address in manual
+c Linesplit (\\) in h
+c Tt at start of a movement.
+c Toggle midi on or off; allow midi only.
+c Page number printed on 1st page even if 1 system.
+c Still need inserted space for chordal accidentals
+c Voicewise transposition.
+c better segno
+c coda
+c duevolte
+c Fix xtup bracket direction in 2-line staves?? (maybe leave as is)
+c Sticky ornaments with shifts.
+c Deal with Werner's vertical spacing thing associated with title.
+c Multiple ties in midi
+c Werner's missing c in MIDI due to start/stop ties on same note.
+c Beams with single 64ths
+c 128ths and/or dotted 64ths
+c Close out MIDI with integral # of beats?
+c Increase ast dimensions or redo logic.
+c Does slur direction get set for user-defined single-note stem dir'ns?
+c Transpose by sections.
+c Optimization loop over sections only
+c Command-line option to read nbarss in. Write out nbarss when optimizing.
+c (or just read from .plg?)
+c Beams over bar lines.
+c 2-digit figures
+c A real coule (slanted line between notes in a chord)
+c Dotted slurs for grace notes.
+c Undotted chord notes with dotted main note.
+c Forced line break without line number
+c Fix dot moving when 2nds in chord get flipped
+c To do: increase length on notexq in dodyn
+c 2.618
+c Add option Ac[l,4] to set vert and horiz size and offsets to properly
+c center page for letter or a4 paper.
+c 2.617
+c In g1etnote, change if-check for note to use index(...) instead
+c of ichar(charq) since it was messing up gfortran optimizer
+c After pmxa, search for and remove penultimate line <blank><blank>/
+c because it was screwing up linux-compiled versions
+c Bugfix: Increase dimension of kicrd from 7 to 10 in crdaccs(...)
+c 2.616 (111110)
+c Allow hairpins to span multiple notes groups (gulps).
+c 2.615+ (110810)
+c Fix midi when some instruments are transposed, by subtracting
+c iTransAmt(instno(iv)) from pitch values sent to via addmidi in
+c make2bar.for (for main notes) and docrd (for chord notes)
+c 2.615 (110725)
+c Fig bug with size-setting (in topfile) when instrument has >1 staves
+c 2.615 (110724)
+c Make AS[0|-|s|t]... really set sizes
+c 2.614
+c Mod notex.for to fix Terry's bug with raised dotted rests (caused
+c by double-hboxing).
+c 2.613
+c Bugfix: In pmxa, change "do while" limit to keep from overwriting instno.
+c 2.612
+c Enhance AS to allow s or t for smallsize or tinysize
+c 2.611
+c Error trap for "D" before any notes in a block.
+c 2.610
+c Instrument-wise key changes and transposition (incomplete)
+c 2.603
+c 101211 In getpmxmod.for, decreased nline by 2 to fix locating errors
+c following reading in an include file.
+c 101121 Added some error messages in g1etset.for setup data
+c 2.602
+c Correct slur indexing in linebreakslurs.
+c Account for comment lines in line count for error messages
+c 2.601
+c Bug fix: allow 24 slurs with graces
+c 2.60 Changes made make it really big
+c increase mv (size of midi) ? Note: MIDI can't have >16 voices w/o
+c major reprogramming, and 16 may also be a problem (icmm)
+c nm=24 (voices) done
+c 24 slurs done
+c 24 simultaneous beams (Replace index 24 by 0, so get 0-23)
+c bufq*131072 (gfortran only)
+c getarg syntax (gfortran only)
+c 2.523+
+c Fix voice numbering for normal dynamics and text dynamics
+c 2.523
+c Version of bigpmx first posted to Hiroaki's web site.
+c 2.522
+c 5/26/10 Replace ipl bits 0-7 with ipl2, add new common for it.
+c With 2.521+ as starting version, incorporate bigpmx mods to allow 24 voices.
+c 5/13/10 Fix log2 function
+c 5/15/10 Fix bitwise storage for dynamics, fix segnoo string length.
+c 2.521+
+c 091025 Enable dotting 2nd part of linebreak slur or tie.
+c To adjust barno height due to linebreak slur, use \bnrs instead of
+c explicitly redefining \raisebarno (pmxb)
+c 2.521
+c Bugfix
+c 2.520
+c 090519 Enable ligfonts (special figured bass characters)
+c 2.519
+c Fix another bug which kept \sk from being output so misaligned some notes.
+c 2.518
+c Fix bugs: referencing fig data, char declaration for member of
+c common/comfig/
+c 2.517
+c Allow figures in voice 1 + any one other.
+c 2.516
+c Allow figures in voice #2
+c 2.515+ to do: Change manual and activate rule against clef change in voice #2.
+c 2.515
+c 071222 Changes in getnote to allow auto forced beams to start anywhere.
+c 071206 In make2bar, shift fermataup7 to left over centered pause.
+c 070901 In doslur, check for nolev <=2 in case slur ends on rest in 2-line
+c staff (it was screwing up vertical justification).
+c n34 for tweaks to midi durations of quarter note septuplets.
+c To do: In ref250.tex, the tables where 's,t,)' is explained, the line
+c [+,- i] ... Vertical adjustment of the start of second segment
+c should it be replaced by
+c [s +,- i] ... Vertical adjustment of the start of second segment
+c 2.514
+c Changes in make2bar to get horizontal spacing right when normal grace
+c follows after grace
+c Changes in dograce to get octaves right for any material entered inside
+c \gaft, which shields transpose register changes from the outside world.
+c 2.513
+c In make1bar, near end, for forced beams starting with a rest, copy hgt and
+c slope tweaks to ALL notes after first, not just the second one, so if
+c there's more than one rest at start the tweaks are still observed.
+c In beamid and beamend, add stand-alone triply-flagged notes for xtups.
+c 2.512
+c Near end of pmxb, fix error trap to allow redundant 'RD'
+c Enable multiplicity down-up '][' within xtup.
+c 2.511
+c Introduce eskz2 for xtup #'s and bracket lengths, to remove bug caused by
+c adjusteskz as in bar 7 of barsant.
+c 2.510a
+c Test: remove restriction on tempo changes in MIDI macros
+c Send to CM for beta testing.
+c 2.509+
+c To do: Correct manual on AS. "-" is for smaller staves.
+c 2.510
+c Forgot to declare litq, voltxtq as character in subroutine getgrace
+c 2.509
+c Corrected small bug in arpeggio shifting (ivx <= iv in call putarp)
+c 2.508
+c Allow graces in xtups. New subroutine getgrace.
+c 2.507
+c To do: Raise/lower figures.
+c To do: Add 24, 29 to list of musicsizes in manual
+c New sub adjusteskz to account for ask's when computing lengths of
+c brackets for unbeamed xtups, slopes and horizontal posn's of number
+c Bug fix: in beamn1, beamid, and beamend, allow unbeamed xtups w/ 2 flags
+c Add look-left option for keyboard rests, "L" in rest command, set iornq(30)
+c 2.506
+c Fix bug with AK, when simultaneous rests have same duration, use defaults.
+c 2.505
+c Keyboard rests AK
+c 2.504
+c Space after normal grace: option X[n]
+c Fixed og when nv .ne. noinst, by using sepsymq instead of '&'
+c (To do) length of xtup bracket when there is added non-collision space.
+c Trap musicsize if .ne. 16,20,24,29.
+c 2.503
+c Enable arpeggio left shift with ?-x
+c To do: In manual, arpeggio over 2 staves.
+c Allow musicsize of 24 and 29. Had to define meter font size explicitly,
+c also change font size for text dynamics, but not much else so far.
+c Bugfix in beamstrt, introduced in 2415, ip was changed before putxtn
+c was called, causing error in printing replacement number.
+c 2.502
+c Incorporate Dirk Laurie's patch to use { , } , for ties.
+c Figure height adjustment: append +[n]
+c Change ec font stuff in pmx.tex per Olivier Vogel's comment (CM email?)
+c 2.501
+c Readjust horizontal offset back to .8 in LineBreakTies
+c Fix zero-subscript (iudorn) in putorn
+c 2.50
+c Increase number of text-dynamics (dimension of txtdynq) per block
+c from 12 to 41.
+c Slur option n to override altered default curvature.
+c Allow default ps slur curvature tweaks with Ap+/-c
+c 2.416
+c Increase length of textdynq from 24 to 128
+c (Todo) Add comment in manual about blank lines at end.
+c Configuration file: Define subroutine getpmxmod, check path in environment
+c variable pmxmoddir, check existence, read lines into bufq after setup.
+c Increase dimension on idynn in dodyn from 4 to 10 for max number
+c of marks in a bar
+c Increase allowable # of lines from 2000 to 4000.
+c (To do) Replace definition of \liftpausc per Olivier.
+c (To do) Fix extraneous error message if RD is placed at very end.
+c 2.415
+c Fix "AT" option: replace putxtn,topfile,beamstrt,beamid to use \xnumt
+c instead of redefining \xnum. Change font used to \smallfont (as for
+c normal xtups,
+c Allow slur to start on rest.
+c 2.414
+c Correct bug in crdacc when adding accidental to boundary causes number of
+c segments to decrease
+c Special rule for 3-accidental chords: If no 2nds, place them in order
+c top, bottom, middle.
+c 2.413
+c Correct bugs in chordal accidentals, related to left-shifted noteheads
+c (a) Special problems with downstem when main note needs shifting
+c (b) Assign 0 rank to boundary segs due to left-shifted noteheads
+c 2.412
+c Change default horiz shift of start of seg 2 of linebreak slurs:
+c -.7 for slurs, -1.2 for ties,
+c Use height of start of seg 1 slur itself for end of 1 and start of 2.
+c 2.411
+c "Apl" activates special treatment of linebreak slur/tie's; breaks all in 2.
+c "s" option in start of slur/tie as precursor to vert/horiz tweaks for end
+c of seg 1. of linebreak slur/tie, 2nd "s" for start of seg2.
+c With "Apl", curvature adjustments on starting slur command apply to seg 1,
+c those on ending command to seg 2.
+c 2.410
+c "AT" to allow Col. S.'s tuplet option. Simply input tuplet.tex and redefine
+c \xnum, \unbkt, \ovbkt.
+c "s" option in main xtup input after "x": slope tweak for bracket. mult(4) is
+c flag, mult(5-9) is tweak value+16
+c 2.409
+c Bugfix in docrd for MIDI: Use original pitch in case main/chord were
+c switched due to 2nds.
+c Remove "o" from error message for "A" command.
+c New syntax: optional instrument number separator ":" in movement
+c break command to precede a 2-digit instrument.
+c Conditional output formats for \setname at movement break to allow
+c instrument numbers >9.
+c Bugfix in coding to raise barno due to slur over line break (pmxb)
+c Move date/version data statement in pmxab to a better place.
+c 2.408
+c Allow pnotes{x} when x>9.995 (mod is only to format stmt in make2bar).
+c Bug fix in \liftPAusep in notex.for and in pmx.tex
+c Character variables for version and date
+c For up-stem single graces slurred to down-stem, shift slur start left by
+c 0.8 so slur doesn't get too short.
+c Initialize and slide mult, same as other full-program variables in /all/.
+c 2.407
+c Allow AN[n]"[partname]" to be parsed by scor2prt as filename for part n,
+c 2.406
+c Alter PMX: put \dnstrut into \znotes in \starteq (for system spacing
+c equalization).
+c Put dimensions of double sharps and flats in crdacc (for chords).
+c Bugfix: Use sepsymq in LineBreakTies(..) instead of '&'
+c Use only first 4 bits of mult for multiplicity+8, so rest can be used
+c for other stuff.
+c Move stemlength stuff in nacc(27-30) to mult(27-30) to remove conflict.
+c 2.405: Not published but saved for safety.
+c Option Aph to write \special{header=psslurs.pro} top of each page, so
+c dviselec will work OK.
+c 2.404
+c Allow slur to end on rest, but not start on a rest. Efaults height
+c of ending is default height of start (before any automatic or user-
+c defined djustments). User may adjust height as normal from default.
+c 2.403
+c Bugfix: turn off repeated beaming patterns.at end of non-last voice.
+c 2.402
+c Automatic repeated forced beams. Start with "[:" End with next explicit
+c forced beam or end of input block.
+c Increase # of forced beams per line of music per input block from 20 to 40
+c 2.401
+c Optional K-Postscript Linebreak Ties, Apl. New subroutine LineBreakTies.
+c Makes 1st part normal shape, and starts 2nd part a little further left.
+c Enable arpeggios in xtuplets. Had to make time itar(narp) a real.
+c 2.40
+c Set up WrotePsslurDefaults (logical) so only write defaults on 1st Ap.
+c Fix non-ps-slur input to \midslur (third signed integer). Do not reverse
+c sign for down-slurs.
+c 2.359
+c Add error exit subroutine stop1 to make exit status g77-compatible..
+c Absolute octave on xtup chord note was 2 octave too high, fixed in getnote
+c Fermata on vertically shifted rest: special trap in putorn() to set height.
+c Correct multiple grace note spacing for small staves (in dograce,
+c define wheadpt1 depending on staff size)
+c 2.358
+c Allow curvature corrections at start of postscript slur, in dopsslur()
+c Local slur options p[+|-][s|t] for [nos|s]luradjust,[not|t]ieadjust
+c Options for [Nos|S]luradjust,[Not|T]ieadjust,[noh|h]alfties: Ap[+|-][s|t|h]
+c Make t[ID] act like s[ID]t, most mods in spsslur().
+c Add spsslur() to read in data for ps slurs, call from getnote.
+c In beamstrt, save args for SetupB in common comipb to save them for
+c 2nd call when xtup starts with rest
+c Add spacing for ornament ")" as if it were accidental, in make2bar().
+c Horiz shift start and end of ps ties, dep. on stem dir'n, in dopsslur()
+c Horiz. shift start of ps grace slur, 2 places in dograce().
+c Horiz shift end of grace slur in endslur()
+c Make st slurs into postscript ties. Separate subroutine dopsslur(),
+c Non-beamed xtup: "a" in 1st note or rest, before "x" (sets drawbm=.false.)
+c Allow two D"x" on same note. Introduced jtxtdyn1 in dodyn.
+c 2.357a
+c Fix missing "end" in backfill.com, too-long lines in g1etnote, getnote
+c 2.357
+c Increase dimension for # of lit TeX strings from 52 to 83.
+c Allow blank rest in middle of xtuplet. Only mods in g*etnote().
+c 2.356
+c Increased some dimensions from 30 to 40 to allow up to 40 pages.
+c In unbeamed xtups, "n" did not suppress bracket. Fixed in beamstrt().
+c Fix parsing of "f,h,H,HH" in sslur.
+c Fix bug with cdot, note-level for slur termination (in getnote)
+c 2.355
+c Midi transposition: IT[+|-][n1][+|-][n2]...[+|-][n(noinst)],
+c n=# of half-steps. Restrict to mult. of 12 now, to avoid key-sig issues
+c Make midi recognize ps ties in doslur.
+c Correct ttieforsl so that it eats 2nd argument properly, using \zcharnote
+c to get octave right.
+c 2.354
+c With postscript slurs, make t-slurs real ties by inserting replacement
+c macros \tieforisu, etc, defined in pmx.tex
+c Check for open cresc or decresc at end of input block, using list[de]cresc
+c Hairpin syntax conditional on postscript slurs. Backup to fill in start
+c level, using new backfill(...). Separate height tweaks for
+c start and finish.
+c 2.353
+c K-0+n to transpose by half step (rather than just change key)
+c Allow "rm[n]" when nv>1. Require it in all parts. Just write a stack of
+c \mbrest's
+c Enable "Rz"; define \setzalaligne in pmx.tex. Special treatment at end
+c of input block before movement break, and at start of block after
+c movement break, using \newmovement rather than \setzalaligne, since
+c former already redefines \stoppiece. In second case, set rptfg2='z'.
+c Make clefq(nm) common between pmxb and getnote; change references in
+c getnote at 'M' to array elements, setting all new clefs as you go.
+c 2.352
+c Remove \parskip redefinition from pmx.tex; write it into TeX file when
+c "Ae" is invoked.
+c Ap to activate postscript slurs. Add macro \psforts to pmx.tex to redefine
+c \tslur in case \midslur was used. Allow slur inputs 'f','h','H','HH',
+c translate them thru mapping to (1,4,5,6) as \midslur params, then let
+c \psforts translate them back to ps slur macors.
+c 2.351
+c Number slurs from 0 up instead of 11 down, anticipating postscript slurs.
+c Write "\eightrm" instead of "\cmr8" for \figfont with small baseline size.
+c Increase length of basenameq to 44 characters everywhere.
+c Increase dimension of mcpitch (midi-chord-pitch) to 20.
+c Set default systems per page to 1 if nv>7
+c In pmxb, move place where isystpg is reset to 0, so that \eject gets
+c written when there is just one system per page.
+c 2.35
+c Cautionary accidentals with 'c' anywhere in note symbol.
+c NEW pmx.tex with \resetsize to set size to normal or small depending on
+c current \internote. Used with new coding in dograce() to get right
+c new size in case user has \setsize'ed some lines to \smallvalue. For
+c \smallvalue-sized staves, redefine \tinynotesize to give 11-pt font.
+c Affects pmx.tex.
+c Continuation figure with fractional length. May now mix with other figures.
+c If another figure follow Cont-fig, separate with colon.
+c 2.342
+c Bugfix in getnote to recognize relative octave shift in grace at start of
+c input block.
+c In make2bar, initialize islhgt=0 earlier than before (possible solution
+c to Suse g77 compile problem that I could not reproduce)..
+c Bugfix in beamstrt & beamn1 for r2x6 c4D d d d
+c 2.341
+c Syntax check: Forced page break page number must be > than previous.
+c Bugfix: Define ivx when "sliding down" breath/caesure data in pmxb.
+c 2.34
+c New pmx.tex with redefined liftpausc
+c Bug fix with dotted, non-beamed xtups.
+c 2.332
+c Fix bugs in horizonal shifts, spacing, for accid's, graces, noteheads.
+c Allow arbitrary pos. input to W in g1etnote and getnote.
+c 2.331
+c Bug-fix in dodyn(..): typo on length of arg of txtdyn
+c 2.33
+c Caesura (oc), breath (ob). Set iornq(28), store rest of data in ibcdata()
+c 2.321
+c Rescale accidental shifts. Still use 7 bits but now map (0,127)
+c onto (-1.,5.35)
+c Fix ihornb bug in dodyn, seen with dynamics on lower-voice non-beamed xtups
+c 2.32 (Noticed after posting)
+c Prohibit "/" as figure.
+c 2.32 (Posted)
+c Tidied up accidentals in chords, do spacing.
+c Still to do:
+c check for "(" on chord notes in spacing algo
+c small accids
+c double accids
+c autoshift slurs
+c 2.310
+c Extra call to precrd ahead of spacing chk, and single-note crd/acc
+c shifts seem OK, but not multiple. crd/acc shifts not recorded 1st time.
+c 2.309
+c Alternate algo for accid shifts in chords.
+c 2.308
+c Auto horiz. notehead shifting added to precrd.
+c 2.307
+c Auto shifting of multiple accidentals in chords.
+c "Ao" in main chord note to keep accidentals in order. Set nacc(28).
+c If there are any manual main or chord note shifts, then
+c If any manual shift is preceded by "A" then
+c 1. Auto-shifting proceeds
+c 2. "A"-shifts add to autoshifts
+c 3. non-"A" shifts are ignored!
+c Else (>0 man shifts, none has "A")
+c No auto-ordering, No autoshifts,
+c End if
+c End if
+c 2.306
+c Initialize legacy note level to middle C in case user forgets to set
+c octave.
+c Shift xtup note?
+c Shift in elemskips rather than noteheads?
+c 2.305
+c Stop pmxb from multiple endvolta's at start of new page.
+c 2.304
+c "Sx" in a note means shorten stemlength by x \internotes. "Sx:" turn on
+c for multiple notes in the voice, "S:" last shortened note.
+c 2.303
+c vshrink stuff all OK? Description is in pmxb.
+c 2.302
+c Toggle vshrink with "Av". vshrink normally kicks in when \interstaff
+c hits 20. This still needs work.
+c Add " /" to last line if last char is not % or /.
+c 2.301
+c Check in beamn1 for single note before multiplicity down-up.
+c allow '.PMX' as well as '.pmx'
+c 2.299
+c Correct typo in pmxb involving PMXbarnotrue.
+c Replacement printed number for xtup: Unsigned integer after 'n' after 'x'
+c Minor upgrade parsing xtuplet options 'x...'
+c Correct dimension of nxtinbm in make2bar.
+c 2.298
+c Account for doubled xtup notes in subroutine getx (user-defined spaces),
+c by adding ndoub as an argument..
+c 2.297
+c Created and solved compiler problem. Put drawbm(NM) in its own common.
+c Add new def'ns [\a|PA]usc, \lift[pa|PA]usc to pmx.tex, use them in make2bar
+c when \centerbar is used.
+c Modify \mbrest & \CenterBar in pmx.tex to use \volta@endcor etc. Have PMX
+c use right 2nd and 3rd args for \mbrest when key, meter, or clef changes.
+c 2.296
+c Correct printed numbers for forced beams with multiple xtups. For each beam
+c make list in setupb by voice of eloff (h-offset) and mtupv (printed #)
+c Increase lengths of jobname and infileq by 20 characters
+c Enable whole notes and breves as 1st or last note of xtup in beamn1 and
+c beamend, and wholes in beamid.
+c 2.295
+c Midi balance Ib[n1]:[n2]:...[nn]
+c Single-slope beam groups [...]-[...]
+c Trap "i" unless after accidental (main notes, xtups, chord notes)
+c 2.294
+c Unequal xtups with "D" to double a note in an xtup.
+c As above, "F" will (a) increase multiplicity by 1 for marked note and next
+c one and (b) add a dot to the first one.
+c Fix bug with e.g. c84 [ .d e.f ] by checking whether forced beam is on
+c when "." is encountered, then correcting beam start time.(end of getnote)
+c MIDI velocity (volume) set: Iv[n1]:[n2]:[n3]...
+c 2.293
+c Check for single notes spanning bar lines.
+c Correct various bugs with staff-jumping beams. (1) for 2nd segment, vxtup
+c must be set in make2bar since beamstrt is not called, fixing problem with
+c dot at end. (2) add ivjb2 to flag which voice has 2nd segment and fix
+c problem when >2 staves.
+c Add nodur to args of dodyn, so can check if stemless and avoid height tweak
+c Correct bug in getdyn setting flag in idynda2(0) for manual horiz. tweak
+c 2.292a
+c Undo syntax check for Type 2 or 3 TeX string starting in column 1.
+c Meanwhile, Werner's problem with a mid-line Type 3 string has gone away?!
+c 2.292
+c Allow comments in xtuplets
+c Enable multiple octave jumps in grace notes.
+c Allow dynamics in xtuplets.
+c Fix bug in getdyn searching for end of text string (correct length of lineq
+c to 128)
+c Fix bug in dodyn, must ignore horiz. interaction tweak for
+c user-text (idno = 0)
+c Syntax check for Type 2 or 3 TeX string starting in column 1
+c (NOTE: later undone!)
+c Syntax check for page number > npages at forced line break.
+c 2.291
+c Fix error in AS command (accid spacing for small systems), making only
+c one spec per staff, nv total.
+c Stop using MIDI channel 10
+c 2.29
+c Fix error in console output format for # of bytes used in MIDI file.
+c Fix bug in dograce so no space is added between grace and main note when
+c there is a MIDI-only accidental.
+c Fix bug so oes?+4 works. It was too ugly to explain.
+c ...Different ways of storing accidental specs on input and output.
+c No longer zap \writezbarno in special situations.
+c Fix bug in dyntxt level on rest
+c Line spacing equalization. Add macros \starteq, \endeq, \spread, etc.
+c Activate with Ae. (Maybe later could input alternate values for
+c \upamt, \dnamt, \parskip). Put \starteq on 1st note in voice 1
+c in the page, and \endeq on 1st note of next-to-last line in page.
+c 2.28
+c Flip direction of forced beam "[f..."
+c Fix beam numbering for staff jumping beams. Uses irest(23,24,29,30)
+c Fix bug in sliding ip's for txtdyn's
+c In dyn's allow vert. offsets +/-64, horiz +/-25.6 (store in idnyda2(1-99)
+c 2.27
+c Comment out lines in dodyn checking number of dynamic marks found. Voice
+c order may not be monotonic if two lines on a staff.
+c Literal dynamic: D"[text]"
+c 2.26
+c Allow hairpin start-stop on same note by disabling auto-tweaks in dodyn,
+c increasing dimension of idynn to 4 to allow 4 symbols on same note.
+c Increase voltxtq length from 10 to 20.
+c AS[-/0][-/0]... to inform PMX that "-" voices are small, and rough
+c accounting for ast's is done by defining effective headwidth
+c whead1 in makebar2 to be 0.8*whead.
+c 2.25
+c Fix logic bug with sepsym's when # of instruments changes.
+c Slight increases in default offsets for hairpin starts after "p"
+c 2.24
+c Hairpins D< or D> as toggle.
+c Many automatic position tweaks for letter-group dynamics and hairpins.
+c 2.23
+c Continued rhythmic shortcuts: space followed by "." or ","
+c 2.22
+c In call to doslur, change tno(...) to tnote(...). This was only
+c used when checking to slurs per stem directions, and should have been
+c the note duration all along.
+c MIDI-only accidental, bit 17 in nacc, or 27 in icrdat.
+c Use "i" anywhere in note symbol.
+c 2.21
+c Increase from 20 to 30 dimensions for movement breaks and midi sections.
+c Fix out-of-order declarations per mutex comments
+c Add "Bad error" and "Kluging" messages to log file.
+c 2.197
+c add /comips/ to save tie-check midi variables
+c For spacing of clef changes at start of input block, changed integer time
+c lastnodur to prevtn, so it works with xtups. Possible incompatibility!
+c 2.196
+c Fix Ickbug with time check in ncmid()
+c Interchange \fermataup7 and \pausec to get proper alignment
+c Enable French violin clef "f", number 7 in PMX, but 9 in MusiXTeX.
+c Add defn's of \hsp, \hspp to pmx.tex
+c Fix pre-slurs on xtup chord notes.
+c Fixed raised PAuse, define \liftPAuse
+c Replace \zbreve\sk with \breve.
+c Made "1" work as mtrdenl by doubling it and mtrnuml. BUT WAIT...what
+c about "o" and 1 as shorthand for 16???? Search for "Kluge"
+c Added "vo" (voice) as MIDI instrument 55
+c Allow 3-digit page numbers (search for "toppageno")
+c Fix bug caused by prior fix (cancelling accid after bar line was ignored).
+c Fix double accids in chords
+c 2.194
+c Fix bug with accid/tie/barline/chord in addmidi by restructuring accid if
+c block.
+c Add meter to MIDI file with every pause
+c Purify FORTRAN?
+c 2.193
+c Increased # of in-line TeX strings from 36 to 52.
+c Fix entry of # of bytes in header of tempo/meter/key track to allow >255.
+c 2.191
+c Event track: Tempos, meters, keys all together. Data in comevent
+c 2.15
+c Pretty good midi capability. Still no attention to slurs on chord notes.
+c 2.11
+c 11 Dec 99 c rm1
+c 11 Dec 99 "oes?", "oe?"
+c 11 Dec 99 Cancel slur horizontal tweaks with non-stemmed notes
+c 11 Dec 99 Error message for shifted, repeated ornaments.
+c 2.10 (Version 2.1)
+c Fix bug with lowdot and xtuplets
+c 2.09
+c Fix bug with multiple ornament heights over beams, when one is . or _
+c Error message from pmxa if rest on last note of xtup.
+c Enable 12 slurs.
+c Reinstate multiple rests at start of xtup.
+c 2.07
+c Combine consecutive type-1 TeX strings.
+c \midslur and \curve as 3rd signed digit in slur termination, + 2 opt.int's.
+c Fixed breve chord notes in docrd
+c Check irest(28) as well as vxtup when setting nodur for chord notes, since
+c vxtup isn't set until 1st *main* note in xtup
+c Vectorize nolev1, slope, ixrest. Klug fix for xtups with variable spacing.
+c 2.06+
+c Make deterministic the beam slope calculation when there are an even # of
+c slopes in list and middle two are equal magnitude but opposite sign.
+c pmxa Trap for "o:" before 1st note in block
+c Partial bug fix for 64th notes in xtuplets.
+c Make ixrest a vector, since with new time scheme may not finish xtup in
+c same notes block.
+c Increase max # of pages from 20 to 30 (dimensions of nsystp,..., in pmxb)
+c 2.06
+c Account for changes in nv when computing \interstaff. Add a counter
+c nistaff(iflb) = # of interstaff spaces per system = nv-1. Set whenever
+c setting isysflb(iflb). Note nv can only change at a forced line break.
+c Note also, iflb starts at 0!
+c 2.05
+c Automatic start of new notes group with part 2 of staff-jump beam
+c In make1bar, set irest bit 29 of lowest-voice note at same time,
+c use as flag when making notes groups.
+c For now, remove dummy blank line at end...it zaps terminal repeats.
+c 2.02
+c Fixed slur-counting bug for multiple, slurred, aftergraces.
+c 2.01
+c Increase to ask(1400)
+c Increase max forced page breaks to 18
+c Define pausc for centered pause
+c 2.0a
+c Insert dummy blank line at very end to handle input files w/o terminal CR-LF
+c pmx03r
+c Option m[n] in S symbol to change musicsize (for parts)
+c Double dotted rests now work.
+c Write file name to log file
+c Check existence of input file
+c Allow 24-char jobname, may end with ".pmx"
+c Comment out time stuff
+c Replace 3-argument getarg with 2-argument + iargc
+c Fix bug with negative noinst due to nint<=int replacement
+c move lovation of iv in isdat1 to allow iv>7.
+c Set nm=12
+c pmx03q
+c replace int(x+.001) with nint(x)
+c Write TeX file name to screen and to pml.
+c Replace char(...) with chax(...) to sovle msdev bug.
+c Bug fix: macro terminations when M is on a line by itself.
+c Bug fix: don't accumulate space for XS in pmxa.
+c Streamline Macros: use pointers to bufq instead of scratch files
+c pmx03p
+c Store input file in single character array bufq.
+c lbuf(i)*2 is length of line i
+c ipbuf is position just before next line to be read.
+c pmx03
+c Optimize read/writes
+c pmx02
+c Fix line count (for errors) when there are saved macros
+c pmx01
+c In optimize mode, open/close macros (Watch out for residual zz files!)
+c Command line input
+c Option Ao to optimize, otherwise normal processing
+c
+ccccccc
+ parameter (nks=125,nm=24,mv=24576,maxblks=4000)
+ character*128 lnholdq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /comevent/ miditime,lasttime
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ common /commus/ musize,whead20
+ integer*4 nbars0(nks),nbars(nks),ipoe(nks),nbari(nks)
+ real*4 poe0(nks),poe(nks)
+ logical isfirst,optimize
+ logical*4 fexist
+ character*44 jobname
+ character*47 infileq
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * idum,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ logical rest,firstline,newmeter
+ common /comdiag/ n69(0:nm),n34(0:nm)
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+ common /truelinecount/ linewcom(20000)
+c
+c immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing
+c nmidsec section starts and stops based on PLAYING macros (not recording).
+c
+ccccccccccccccccccccccccc
+c
+ data date /'19 Mar 12'/
+ data version /'2618'/
+c
+ccccccccccccccccccccccccc
+ data maxit,ncalls /200,0/
+ data isfirst /.true./
+c itstart = mytime()
+ versionc = version
+c
+c Initialize midi parameters
+c
+ gottempo = .false.
+ ismidi = .false.
+ debugmidi = .false.
+ relacc = .false.
+ mmacrec = .false.
+ nmidsec = 1
+ mgap = 10
+ miditime = 0
+ lasttime = 0
+ nmidcrd = 0
+ nusebl = 0
+ notmain = .false.
+ do 3 ivx = 1 , nm
+ twoline(ivx) = .false.
+ midinst(ivx) = 6
+ midivel(ivx) = 127
+ midibal(ivx) = 64
+ miditran(ivx) = 0
+3 continue
+ do 12 icm = 0 , nm
+ imidi(icm) = 0
+ restpend(icm) = .false.
+ trest(icm) = 0.
+ levson(icm) = 0
+ levsoff(icm) = 0
+ slmon(icm) = .false.
+ naccbl(icm) = 0
+ n69(icm) = 0
+ n34(icm) = 0
+ msecstrt(icm,1) = 1
+12 continue
+c
+c End of midi parameter initialization
+c
+ musize = 0
+ optimize = .false.
+ numargs = iargc()
+ if (numargs .eq. 0) then
+ print*,'You could have entered a jobname on the command line,'
+ print*,' but you may enter one now:'
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+c call getarg(1,jobname,idum) ! May need to replace this w/ next line
+ call getarg(1,jobname)
+ end if
+10 ljob = lenstr(jobname,44)
+ if (ljob .gt. 44) then
+ print*,'Jobname is too long. Try again.'
+ call stop1()
+ else if (ljob .eq. 0) then
+ print*,'No was jobname entered. Try again.'
+ call stop1()
+ else if (numargs .eq. 2) then
+ if (ljob.eq.2 .and. jobname(1:2).eq.'-o') then
+ optimize = .true.
+c call getarg(2,jobname,idum) ! May need to replace this w/ next line
+ call getarg(2,jobname)
+ numargs = 1
+ go to 10
+ else
+ print*,'Illegal option on command line'
+ call stop1()
+ end if
+ end if
+c
+c Strip ".pmx" if necessary
+c
+ ndxpmx = max(index(jobname,'.pmx'),index(jobname,'.PMX'))
+ if (ndxpmx .gt. 0) then
+ jobname = jobname(1:ndxpmx-1)
+ ljob = ljob-4
+ end if
+c
+c Check for existence of input file
+c
+ infileq = jobname(1:ljob)//'.pmx'
+ inquire(file=infileq,EXIST=fexist)
+ if (.not.fexist) then
+ inquire(file=jobname(1:ljob)//'.PMX',EXIST=fexist)
+ if (.not.fexist) then
+ print*,'Cannot find file '//infileq
+ call stop1()
+ else
+ infileq = jobname(1:ljob)//'.PMX'
+ end if
+ end if
+c
+c Open a log file
+c
+ open(15,file=jobname(1:ljob)//'.pml')
+ call printl('This is PMX, Version '//version//', '//date)
+ ljob4 = ljob
+ call printl('Opening '//infileq)
+ open(18,file=infileq)
+c
+c Copy input file into common buffer
+c
+ ipbuf = 0
+ linewcom(1) = 1
+ do 8 ilbuf = 1 , maxblks
+ ncomments = 0
+14 read(18,'(a)',end=9)lnholdq
+ lbuf(ilbuf) = lenstr(lnholdq,128)
+ if (lbuf(ilbuf) .eq. 0) then
+c
+c Blank line. Make it a single blank with length 1
+c
+ lbuf(ilbuf) = 1
+ lnholdq = ' '
+ end if
+c
+c Now line has at least one non blank character. Check for comment
+c As of Version 260, do not copy comments into bufq
+c But need to count %'s for error messaging
+c if (lnholdq(1:1).eq.'%') go to 14
+ if (lnholdq(1:1).eq.'%') then
+ ncomments = ncomments+1
+ go to 14
+ end if
+c
+c When here, have counted all preceding comments and have a real line
+c
+ if (ilbuf .gt. 1) then
+ linewcom(ilbuf) = linewcom(ilbuf-1)+1+ncomments
+ else
+ linewcom(1) = 1+ncomments
+ end if
+ if (ipbuf+lbuf(ilbuf).gt.65536) then
+ print*,'Too many characters in file, stopping'
+ call stop1()
+ end if
+ bufq(ipbuf+1:ipbuf+lbuf(ilbuf)) = lnholdq
+ ipbuf = ipbuf+lbuf(ilbuf)
+8 continue
+ call printl('Too many lines in input file')
+ call stop1()
+9 continue
+c
+c Insert dummy line to handle input files w/o CR-LF at end.
+c
+ nlbuf = ilbuf-1
+c nlbuf = ilbuf
+c bufq(ipbuf+1:ipbuf+3) = ' / '
+c lbuf(nlbuf) = 3
+ close(18)
+ do 6 numit = 1 , maxit
+ if (optimize) call printl('Starting an iteration')
+c
+c When isfirst=.true., pmxa() generates linebreaks normally, output in nbars0.
+c Otherwise, nbars0 is the input
+c When islast=.false., pmxb only returns poe's, otherwise does whole job
+c
+ call pmxa(jobname,ljob4,isfirst,nsyst,nbars0,optimize)
+ if (.not.optimize) then
+ if (ismidi) then
+c
+c Set up channel numbers for midi.
+c
+ numchan = 0
+ do 11 iv = nv , 1 , -1
+ if (twoline(iv)) then
+ midchan(iv,2) = numchan
+ numchan = numchan+1
+ end if
+ midchan(iv,1) = numchan
+ numchan = numchan+1
+11 continue
+c
+c numchan will now be the number of channels, but max channel # is numchan-1
+c
+c Set up velocities, balances, and midi-transpositions
+c
+ do 13 iv = nv , 1 , -1
+ if (twoline(iv)) then
+ midvelc(midchan(iv,2)) = midivel(iv)
+ midbc(midchan(iv,2)) = midibal(iv)
+ midtc(midchan(iv,2)) = miditran(iv)
+ end if
+ midvelc(midchan(iv,1)) = midivel(iv)
+ midbc(midchan(iv,1)) = midibal(iv)
+ midtc(midchan(iv,1)) = miditran(iv)
+13 continue
+ end if
+c
+c TEMPORARY!!!
+c
+ write(15,*)'nlbuf: ',nlbuf
+ ip1 = 1
+ do 10000 ilb = 1 , nlbuf
+c write(15,'(2i5,a40,3i5)')ilb,lbuf(ilb),
+c * bufq(ip1:ip1+lbuf(ilb)-1),
+c * (ichar(bufq(ip1+lbuf(ilb)-k:ip1+lbuf(ilb)-k)),
+c * k=min(3,lbuf(ilb)),1,-1)
+ ip1 = ip1+lbuf(ilb)
+10000 continue
+ iplast = ip1-1
+c
+c Check to see if (1) last line is "<blank><blank>/" and (2) next to last
+c line is "/"
+c
+c print*,'iplast:',iplast
+c print*,'Last line:'
+c print*,bufq(iplast+1-lbuf(nlbuf):iplast)
+c print*,'Last char of next to last line:'
+c print*,bufq(iplast-lbuf(nlbuf):iplast-lbuf(nlbuf))
+ if (bufq(iplast+1-lbuf(nlbuf):iplast) .eq. ' /') then
+ if (bufq(iplast-lbuf(nlbuf):iplast-lbuf(nlbuf)).eq.'/') then
+ print*,'Removing last line of "<blank><blank>/"'
+ write(15,*)'Removing last line of "<blank><blank>/"'
+ nlbuf = nlbuf-1
+ end if
+ end if
+c
+ call pmxb(.true.,poe0,ncalls,optimize)
+ if (ismidi) then
+c
+c Write midi file
+c
+ open(51,file=jobname(1:ljob)//'.mid')
+ if (debugmidi) open(52,file=jobname(1:ljob)//'.dbm')
+ call printl(' ')
+ call printl('Writing '//jobname(1:ljob)//'.mid')
+ call writemidi(jobname,ljob)
+ end if
+ close(15)
+ stop
+ end if
+ write(15,*)'nlbuf: ',nlbuf
+ ip1 = 1
+ call pmxb(.false.,poe0,ncalls,optimize)
+ call poestats(nsyst,poe0,poebar0,devnorm0)
+c
+c Save initial deviation and line breaks for later comparison
+c
+ if (numit .eq. 1) then
+ devpmx = devnorm0
+ do 20 isys = 1 , nsyst
+ nbari(isys) = nbars0(isys)
+20 continue
+ end if
+ call sortpoe(nsyst,poe0,ipoe)
+ do 1 iupord = nsyst , 1 , -1
+ isysu = ipoe(iupord)
+ print*,'isysu=',isysu
+ write(15,*)'isysu=',isysu
+c
+c Skip if system isysu has poe0 < avg or isysd has poe0 > avg
+c
+ if (poe0(isysu).lt.poebar0) go to 1
+ do 5 idnord = 1 , nsyst
+ isysd = ipoe(idnord)
+ if (isysu.eq.isysd .or. nbars0(isysd).eq.1
+ * .or. poe0(isysd).gt.poebar0) go to 5
+ do 2 isyst = 1 , nsyst
+ nbars(isyst) = nbars0(isyst)
+ if (isyst .eq. isysu) then
+ nbars(isyst) = nbars(isyst)+1
+ else if (isyst .eq. isysd) then
+ nbars(isyst) = nbars(isyst)-1
+ end if
+2 continue
+ call pmxa(jobname,ljob4,isfirst,nsyst,nbars,optimize)
+ call pmxb(.false.,poe,ncalls,optimize)
+ call poestats(nsyst,poe,poebar,devnorm)
+ if (devnorm .lt. devnorm0) then
+ devnorm0 = devnorm
+ poebar0 = poebar
+ do 4 isys = 1 , nsyst
+ nbars0(isys) = nbars(isys)
+ poe0(isys) = poe(isys)
+4 continue
+ print*,'Improved with iup,idown,devnorm:',
+ * isysu,isysd,devnorm0
+ write(15,*)'Improved with iup,idown,devnorm:',
+ * isysu,isysd,devnorm0
+ write(*,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ call sortpoe(nsyst,poe0,ipoe)
+ go to 6
+ end if
+5 continue
+1 continue
+c
+c If we get here, must have gone thru all switches and found nothing better,
+c so done!
+c
+ go to 7
+6 continue
+7 continue
+ print*,'Optimum located, numit:',numit,', ncalls:',ncalls
+ write(15,*)'Optimum located, numit:',numit,', ncalls:',ncalls
+ print*,'Final error:',devnorm0,', initial error:',devpmx
+ write(15,*)'Final error:',devnorm0,', initial error:',devpmx
+ print*,'Percentage improvement:',100.*(1-devnorm0/devpmx)
+ write(15,*)'Percentage improvement:',100.*(1-devnorm0/devpmx)
+ call printl('Initial bars/system:')
+ write(*,'(5x,20i3)')(nbari(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbari(isys),isys=1,nsyst)
+ call printl('Final bars/system:')
+ write(*,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ call pmxa(jobname,ljob4,.false.,nsyst,nbars0,optimize)
+ call pmxb(.true.,poe0,ncalls,optimize)
+c itend = mytime()
+c print*,'Elapsed time in ms:',itend-itstart
+c write(15,*)'Elapsed time in ms:',itend-itstart
+ close(15)
+ end
+ subroutine accsym(nacc,acsymq,lacc)
+ character*3 acsymq
+ iacc = iand(nacc,7)
+ if (iacc .eq. 1) then
+ acsymq = 'fl'
+ lacc = 2
+ else if (iacc .eq. 2) then
+ acsymq = 'sh'
+ lacc = 2
+ else if (iacc .eq. 3) then
+ acsymq = 'na'
+ lacc = 2
+ else if (iacc .eq. 5) then
+ acsymq = 'dfl'
+ lacc = 3
+ else if (iacc .eq. 6) then
+ acsymq = 'dsh'
+ lacc = 3
+ else
+ print*,'bad accidental: ',iacc
+ end if
+ return
+ end
+ subroutine addask(taskn,waskn,elaskn,
+ * fixednew,scaldold,tglp1,isudsp)
+ parameter (nm=24)
+ logical isudsp
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comtol/ tol
+ if (isudsp) then
+c
+c Find which udsp we're dealing with
+c
+ do 1 iudsp = 1 , nudsp
+ if (abs(taskn+tglp1-tudsp(iudsp)) .lt. tol) go to 2
+1 continue
+ print*,'You should note BEEE here in addask!'
+ call stop1()
+2 continue
+c
+c Fixednew and scaldold must not be changed, since udsp's are already included
+c in fsyst from pmxa, and udsp don't involve scaled space..
+c
+ if (naskb.gt.0 .and. abs(taskn-task(max(1,naskb))).lt.tol) then
+c
+c Must add user-defined space to what's there already.
+c
+ wask(naskb) = wask(naskb)+udsp(iudsp)
+ else
+c
+c This place has no other space.
+c
+ naskb = naskb+1
+ task(naskb) = taskn
+ wask(naskb) = udsp(iudsp)
+ elask(naskb) = 0.
+ end if
+ else
+c
+c This is a normal space, no effect if smaller than existing space
+c
+ if (naskb.gt.0 .and. abs(taskn-task(max(1,naskb))).lt.tol) then
+c
+c We already put in some space at this time
+c Check if new one needs more space than old one at same time
+c
+ if (waskn .gt. wask(naskb)) then
+ naskb = naskb-1
+ else
+ return
+ end if
+ end if
+ naskb = naskb+1
+ task(naskb) = taskn
+ wask(naskb) = waskn
+ elask(naskb) = elaskn
+ fixednew = fixednew+waskn
+ scaldold = scaldold+elaskn
+ end if
+ return
+ end
+ subroutine addblank(noteq,lnoten)
+ character*8 noteq
+ character*1 tchar
+ tchar = noteq
+ noteq = ' '//tchar
+ lnoten = 2
+ return
+ end
+ subroutine addfb(nfb,iv,tnew,t1fb,t2fb,ulfbq,ifbadd)
+ parameter (nm=24)
+ integer nfb(nm)
+ common /comtol/ tol
+ real*4 t1fb(nm,20),t2fb(nm,20)
+ character*1 ulfbq(nm,20)
+ ifbadd = 1
+ nfb(iv) = nfb(iv)+1
+ do 1 ifb = nfb(iv)-1 , 1 , -1
+ if (tnew .lt. t1fb(iv,ifb)-tol) then
+ t1fb(iv,ifb+1) = t1fb(iv,ifb)
+ t2fb(iv,ifb+1) = t2fb(iv,ifb)
+ ulfbq(iv,ifb+1) = ulfbq(iv,ifb)
+ else
+ ifbadd = ifb+1
+ go to 2
+ end if
+1 continue
+2 continue
+ t1fb(iv,ifbadd) = tnew
+ ulfbq(iv,ifbadd) = 'x'
+ return
+ end
+c
+c
+ subroutine addmidi(icm,nolev,iacc,isig,time,rest,endrest)
+ parameter(nm=24,mv=24576)
+ integer*2 mmidi,itk(25)
+ integer*4 itiesav(5,100)
+ character*1 notenumq
+ logical endrest,eximacc,it1found
+ logical rest
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ common /comevent/ miditime,lasttime
+ common /comdiag/ n69(0:nm),n34(0:nm)
+c
+c Following variables are local but must be saved. I hope they are.
+c (3/18/00) With g77 they are not, so add a common block here.
+c
+c integer*2 ipslon(0:nm),lusebl(10),jusebl(10),icmm(0:12)
+ integer*2 ipslon(0:nm),lusebl(10),jusebl(10),icmm(0:15)
+ common /comips/ ipslon,lusebl,jusebl
+c data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/
+ data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16/
+c
+c Cancel out barline accidentals if there's a rest.
+c
+ if (rest) naccbl(icm) = 0
+c
+c Special path to insert dummy rest at end of a section
+c
+ if (endrest) go to 20
+c
+ do 7 ion = 0 , nmidcrd
+c
+c check if this is only to get pitch of a chord note
+c
+ if (notmain) go to 6
+c
+c check for rest
+c
+ if (rest) then
+c
+c Will not put in a note, but must update timing
+c
+ if (.not.restpend(icm)) then
+c
+c First rest in sequence, save the time
+c
+ restpend(icm) = .true.
+ trest(icm) = time
+ else
+ trest(icm) = trest(icm)+time
+ end if
+c
+c Note: code checkers don't like the above due to calling addmidi(trest(icm))
+c but this only happens if rest at end of section (endrest=.true.) (called
+c from getmidi(), in which case these above lines are bypassed.
+c
+ call chkimidi(icm)
+ return
+ end if
+c
+c time tics
+c
+ if (imidi(icm).gt.0 .and. ion.eq.0) then
+ idur = mgap
+ else
+ idur = 0
+ end if
+ if (restpend(icm)) then
+ restpend(icm) = .false.
+ idur = idur+nint(15*trest(icm))
+ end if
+c
+c time to start of note
+c
+ idurvar = isetvarlen(idur,nby2on)
+ if (nby2on .gt. 4) then
+ print*,'You got >4 bytes, something is bogus.'
+ call stop1()
+ end if
+ imidi(icm) = imidi(icm)+1
+ do 2 i = 1 , nby2on
+c
+c imidi points to cell before highest (leftmost) byte. Start with lowest byte
+c at far right, fill in backwards
+c
+ mmidi(icm,imidi(icm)+nby2on-i) = mod(idurvar,256)
+ if (nby2on .gt. 1) idurvar = idurvar/256
+2 continue
+ imidi(icm) = imidi(icm)+nby2on-1
+c
+c Note-on signal
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 9*16+icm
+ mmidi(icm,imidi(icm)) = 9*16+icmm(icm)
+c
+c Entry point for chord note pitch determination
+c
+6 continue
+c
+c Get midi pitch. On chord iteration, only do this first time (main note),
+c since pitch was already computed for nonmain chord notes.
+c
+ if (ion .eq. 0) then
+ ipsav = nolev*12./7+11
+ ipsav0 = ipsav
+ if (isig .ne. 0) then
+c
+c Adjust for signature
+c
+ notenumq = char(48+mod(nolev,7))
+ if (isig.ge.index('4152630',notenumq)) then
+ ipsav = ipsav+1
+ else if (-isig.ge.index('0362514',notenumq)) then
+ ipsav = ipsav-1
+ end if
+ end if
+c
+c Deal with accidentals.
+c
+c iacc 0 1 2 3 4 5 6 7
+c effect X fl sh na X dfl dsh X
+c iashft X -1 1 0 X -2 2 X
+c
+ jacc = 0
+ eximacc = .false.
+ if (iacc .gt. 0) then
+c
+c Adjust key-sig-adjusted pitch for explicit accidental (and exit)
+c
+ jacc = iashft(iacc)
+ eximacc = .true.
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+c
+c (Above) Shift applies to diatonic pitch but will be added to adjusted one
+c
+ else if (naccim(icm) .gt. 0) then
+c
+c Possible implicit accidental from earlier in the bar
+c Check for prior accid in this bar at this note level
+c
+ do 3 kacc = 1 , naccim(icm)
+ if (laccim(icm,kacc) .eq. nolev) then
+ jacc = jaccim(icm,kacc)
+ eximacc = .true.
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+ go to 4
+ end if
+3 continue
+4 continue
+ end if
+c
+c Must split off the following if block from those above because chord
+c notes can cause naccim>0, forcing us to miss other chord note's
+c accross-bar-line accidental
+c
+ if (naccbl(icm).gt.0 .and. .not.eximacc) then
+c
+c Possible carryover accid from prior bar (or prior same-pitch note).
+c
+ do 21 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolev) then
+ jacc = jaccbl(icm,kacc)
+c
+c Since we are *using* the bar-line accid, must flag it to be saved for next.
+c
+ nusebl = nusebl+1
+ jusebl(nusebl) = jacc
+ lusebl(nusebl) = nolev
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+ go to 22
+ end if
+21 continue
+22 continue
+ end if
+ ipsav = ipsav+jacc
+c
+c Midi transpositions
+c
+ ipsav = ipsav+midtc(icm)
+ end if
+ if (notmain) then
+ mcpitch(nmidcrd) = ipsav
+c
+c Save pitch for tie checks
+c
+ if (levson(icm).eq.nolev.and..not.slmon(icm))
+ * ipslon(icm) = ipsav
+ else
+ imidi(icm) = imidi(icm)+1
+ if (ion.eq.0) then
+ mmidi(icm,imidi(icm)) = ipsav
+ if (levson(icm).eq.nolev.and..not.slmon(icm))
+ * ipslon(icm) = ipsav
+ else
+ mmidi(icm,imidi(icm)) = mcpitch(ion)
+ end if
+ end if
+ if (ion .eq. 0) then
+c
+c Only record accids for non-chords, main chord note during chord iteration
+c and chordnotes on first call but not during iteration
+c
+ if (iacc.gt.0) then
+c
+c Set marker for accidental for possible continuations later this bar
+c but first check and clear earlier ones on same note.
+c
+ do 23 kacc = 1 , naccim(icm)
+ if (laccim(icm,kacc) .eq. nolev) then
+ do 24 macc = kacc , naccim(icm)-1
+ laccim(icm,macc) = laccim(icm,macc+1)
+ jaccim(icm,macc) = jaccim(icm,macc+1)
+24 continue
+ go to 25
+ end if
+23 continue
+ go to 26
+25 continue
+ naccim(icm) = naccim(icm)-1
+26 continue
+c
+c Flag new accidental
+c
+ naccim(icm) = naccim(icm)+1
+ laccim(icm,naccim(icm)) = nolev
+ jaccim(icm,naccim(icm)) = iashft(iacc)
+ end if
+c
+c Bail if this is a chord note on the first call (from docrd)
+c
+ if (notmain) then
+ call chkimidi(icm)
+ return
+ end if
+ end if
+c
+c Vel
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 127
+ mmidi(icm,imidi(icm)) = midvelc(icm)
+ call chkimidi(icm)
+7 continue
+c
+c For tie checks
+c
+ if (levson(icm).gt.0.and..not.slmon(icm)) imidso(icm) = imidi(icm)
+c
+c Entry point for special rests at section ends (endrest=T)
+c
+20 continue
+c
+c Now insert all the ends
+c
+ do 8 ioff = 0 , nmidcrd
+ if (ioff .eq. 0) then
+c
+c time to end
+c
+ idur1 = nint(15*time)
+ if (.not.endrest .or. miditime.eq.nint(15*trest(icm))) then
+ idur = idur1-mgap
+ else
+ idur = idur1
+ end if
+c
+c Deal with roundoff problems with 7-tuplets on half or quarters
+c
+ if (idur1 .eq. 69) then
+ n69(icm) = n69(icm)+1
+c if (mod(n69(icm)+6,7) .gt. 3) idur = 58
+ if (mod(n69(icm)+6,7) .gt. 3) idur = idur1-mgap-1
+ else if (idur1 .eq. 34) then
+ n34(icm) = n34(icm)+1
+ if (mod(n34(icm)+6,7) .gt. 4) idur = idur1-mgap+1
+ end if
+ idurvar = isetvarlen(idur,nby2off)
+ if (nby2off .gt. 4) then
+ print*,'You got >4 bytes, something is bogus.'
+ call stop1()
+ end if
+ imidi(icm) = imidi(icm)+1
+ call chkimidi(icm)
+ do 1 i = 1 , nby2off
+ mmidi(icm,imidi(icm)+nby2off-i) = mod(idurvar,256)
+ if (nby2off .gt. 1) idurvar = idurvar/256
+1 continue
+ imidi(icm) = imidi(icm)+nby2off-1
+ else
+c
+c Inserting end of chord note, delta time is 0
+c
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = 0
+ end if
+c
+c Note off
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 8*16+icm
+ mmidi(icm,imidi(icm)) = 8*16+icmm(icm)
+c
+c Pitch
+c
+ imidi(icm) = imidi(icm)+1
+ if (ioff .eq. 0) then
+ mmidi(icm,imidi(icm)) = ipsav
+ else
+ mmidi(icm,imidi(icm)) = mcpitch(ioff)
+ end if
+c
+c Vel
+c
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = 0
+ call chkimidi(icm)
+ if (endrest) then
+ return
+ end if
+c
+c print*,'Off, icm,imidi,ipsav,idur:',icm,imidi(icm),ipsav,time
+c
+8 continue
+ naccbl(icm) = nusebl
+ if (nusebl .gt. 0) then
+c
+c Fix tables of "bar-line" accids that are saved due to consecutive notes.
+c
+ do 30 kacc = 1 , nusebl
+ laccbl(icm,kacc) = lusebl(kacc)
+ jaccbl(icm,kacc) = jusebl(kacc)
+30 continue
+ nusebl = 0
+ end if
+c
+c Begin tie checks
+c
+ if (slmon(icm)) then
+c
+c Prior note had a slur start
+c
+ if (levson(icm).eq.levsoff(icm) .and. iacc.eq.0) then
+c
+c We have a tie! (Assumed there would be no accidental on tie-ending note)
+c Make a list of times of all events back to the one starting at imidso+1,
+c which is at or before where the tie started. Ident tie start and stop by
+c comparing pitches. Save the 4 pieces of data in itiesav(1...4,nsav4tie)
+c Store actual time in itiesav(5,nsav4tie), using itiesav(1,1) as initial
+c time.
+ nsav4tie = 0
+ imidt = imidso(icm)
+10 nsav4tie = nsav4tie+1
+ itiesav(1,nsav4tie) = igetvarlen(mmidi,icm,imidt,nbytes)
+ imidt = imidt+nbytes
+ do 11 j = 1 , 3
+ itiesav(j+1,nsav4tie) = mmidi(icm,imidt+j)
+11 continue
+ imidt = imidt+3
+ if (nsav4tie .eq. 1) then
+ itiesav(5,1) = itiesav(1,1)
+ else
+ itiesav(5,nsav4tie) = itiesav(1,nsav4tie)+
+ * itiesav(5,nsav4tie-1)
+ end if
+ if (imidt .ne. imidi(icm)) go to 10
+c
+c Find which two pitches agree with saved slur pitch.
+c
+ it1found = .false.
+ do 12 it2 = 1 , nsav4tie
+ if (itiesav(3,it2) .eq. ipslon(icm)) then
+ if (it1found) go to 13
+ it1 = it2
+ it1found = .true.
+ end if
+12 continue
+ call printl(
+ * 'Program error, tied notes, send source to Dr. Don')
+ it1 = nsav4tie+1
+ it2 = nsav4tie+1
+13 continue
+c
+c List the positions we want to keep
+c
+ jsav = 0
+ do 14 isav = 1 , nsav4tie
+ if (isav.eq.it1 .or. isav.eq.it2) go to 14
+ jsav = jsav+1
+ itk(jsav) = isav
+14 continue
+ nsav4tie = nsav4tie-2
+c
+c Now dump events it1 & it2, recompute times, restack mmidi.
+c
+ imidi(icm) = imidso(icm)
+ do 15 isav = 1 ,nsav4tie
+ if (isav .eq. 1) then
+ idurvar = isetvarlen(itiesav(5,itk(isav)),nbytes)
+ else
+ idurvar = isetvarlen(itiesav(5,itk(isav))-
+ * itiesav(5,itk(isav-1)),nbytes)
+ end if
+ imidi(icm) = imidi(icm)+1
+ do 16 i = 1 , nbytes
+ mmidi(icm,imidi(icm)+nbytes-i) = mod(idurvar,256)
+ if (nbytes .gt. 1) idurvar = idurvar/256
+16 continue
+ imidi(icm) = imidi(icm)+nbytes-1
+ do 17 i = 2 , 4
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = itiesav(i,itk(isav))
+17 continue
+15 continue
+ end if
+ slmon(icm) = .false.
+ levsoff(icm) = 0
+ if (.not.dbltie) levson(icm) = 0
+ end if
+ if (levson(icm).gt.0) slmon(icm) = .true.
+ if (nmidcrd .gt. 0) nmidcrd = 0
+ call chkimidi(icm)
+ return
+ end
+ subroutine addstr(notexq,lnote,soutq,lsout)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ character*(*) notexq
+ character*80 soutq
+ if (lsout+lnote .gt. 72) then
+ if (islast) write(11,'(a)')soutq(1:lsout)//'%'
+ lsout = 0
+ end if
+ if (lsout .gt. 0) then
+ soutq = soutq(1:lsout)//notexq(1:lnote)
+ else
+ soutq = notexq(1:lnote)
+ end if
+ lsout = lsout+lnote
+ return
+ end
+ subroutine adjusteskz(ib,squez,istart,istop,poenom)
+c
+c For block ib, this adds accidental spaces to eskz, for use in getting
+c length of xtup bracket and slopes of brackets and beams.
+c
+ parameter (nm=24)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ real*4 squez(80)
+ integer*4 istart(80),istop(80)
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /comeskz2/ eskz2(nm,200)
+ common /comtol/ tol
+ common /comntot/ ntot
+ inmin = istart(ib)+1
+ do 10 iaskb = 1 , naskb
+ if (task(iaskb) .lt. to(istart(ib))-tol) go to 10
+ eskadd = wask(iaskb)/poenom-elask(iaskb)
+ do 11 in = inmin , ntot
+ if (to(in) .gt. task(iaskb)-tol) then
+ eskz2(ivxo(in),ipo(in)) = eskz2(ivxo(in),ipo(in))+eskadd
+ if (abs(to(in)-task(iaskb)).lt. tol) inmin=inmin-1
+ else
+ inmin = inmin+1
+ end if
+11 continue
+10 continue
+ return
+ end
+ subroutine askfig(pathnameq,lpath,basenameq,lbase,figbass,istype0)
+ logical figbass,ispoi,topmods,istype0,done,isbbm
+ common /comhsp/ hpttot(176)
+ common /compoi/ ispoi
+ common /combbm/ isbbm
+ common /comas3/ ask(2500),iask,topmods
+ character*40 pathnameq
+ character*44 basenameq
+ character*1 sq,chax
+ character*129 outq
+ sq = chax(92)
+ open(12,file=pathnameq(1:lpath)//basenameq(1:lbase)//'.tex')
+c
+c Transfer first 5 lines of main internal TeX file
+c
+ do 11 il = 1 , 5
+ call moveln(11,12,done)
+11 continue
+ if (istype0) then
+c
+c Transfer literal TeX stuff from special scratch file
+c
+ rewind(17)
+10 call moveln(17,12,done)
+ if (.not.done) go to 10
+ close(17)
+ end if
+c
+c Transfer next 2 lines from main scratch file
+c
+ do 3 il = 1 , 2
+ call moveln(11,12,done)
+3 continue
+ if (ispoi) write(12,'(a)')sq//'input musixpoi'
+ if (isbbm) write(12,'(a)')sq//'input musixbbm'
+ if (figbass) then
+c
+c Transfer .fig data from scratch (unit 14) into external .tex (unit 12)
+c
+4 call moveln(14,12,done)
+ if (.not.done) go to 4
+ close(14)
+ end if
+ iask = 0
+ ihs = 0
+1 read(11,'(a129)',end=999)outq
+c
+c Hardspaces.
+c
+ if (outq(1:5) .eq. sq//'xard') then
+ ihs = ihs+1
+ outq(2:2) = 'h'
+ write(outq(12:15),'(f4.1)')hpttot(ihs)
+ lenout = 19
+ go to 9
+ end if
+c
+c This part hard-wires ask's into new .tex file as ast's
+c
+2 indxask = index(outq,sq//'ask')
+ if (indxask .ne. 0) then
+ iask = iask+1
+ call putast(ask(iask),indxask,outq)
+ go to 2
+ end if
+ lenout = llen(outq,129)
+9 continue
+ write(12,'(a)')outq(1:lenout)
+c
+c If this is the line with "readmod", check for topmods.
+c
+ if (topmods .and. outq(2:8).eq.'readmod') then
+ topmods = .false.
+ rewind(16)
+ do 7 il = 1 , 1000
+ read(16,'(a129)',end=8)outq
+ lenout = llen(outq,129)
+c
+c We inserted the '%' in subroutine littex, to guarantee including blank.
+c
+ write(12,'(a)')outq(1:lenout)
+7 continue
+8 continue
+ close(16)
+ end if
+ go to 1
+999 close(11)
+ close(12)
+ return
+ end
+ subroutine backfill(iunit,oldq,lenold,newq,lennew)
+c
+c In iunit, looks backward for oldq, overwrites newq
+c Safest if both are same length!
+c
+ character*128 lineq(200),nowq
+ character*(*) oldq,newq
+ linesback = 0
+1 continue
+ backspace(iunit)
+ read(iunit,'(a)')nowq
+ ndx = index(nowq,oldq(1:lenold))
+c
+c Save the line just read
+c
+ linesback = linesback+1
+ lineq(linesback) = nowq
+ if (ndx .eq. 0) then
+ backspace(iunit)
+ go to 1
+ end if
+c
+c If here, it's replacement time.
+c
+ lineq(linesback) = nowq(1:ndx-1)//newq(1:lennew)
+ * //nowq(ndx+lenold:128)
+ backspace(iunit)
+ do 2 line = linesback , 1 , -1
+ write(iunit,'(a128)')lineq(line)
+2 continue
+ return
+ end
+ subroutine beamend(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq,ulqq,chax
+ logical beamon,firstgulp,figbass,figchk,flipend,btest,
+ * isfig,vxtup,isdotm,isbjmp,isbj2,drawbm
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comoct/ noctup
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ character*4 tempq
+ character*8 noteq
+ character*79 notexq
+ ip = ipo(jn)
+ multip = iand(mult(ivx,ip),15)-8
+ if (ixrest(ivx) .eq. 4) then
+c
+c This is the LAST note in the xtup (i.e., all rests before). Make single.
+c
+ nodur(ivx,ip) = 2**(4-multip)
+ call notex(notexq,lnote)
+ ixrest(ivx) = 0
+ return
+ end if
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip)
+ nodur(ivx,ip) = 2**(4-multip)
+ if (btest(nacc(ivx,ip-1),27))
+ * nodur(ivx,ip)=nodur(ivx,ip)/2
+ call notex(notexq,lnote)
+ nodur(ivx,ip) = ndsav
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = lnoten+3
+ if (.not.btest(nacc(ivx,ip-1),27)) then
+c
+c Prior note is not regular-dotted
+c
+
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))//noteq
+ lnote = lnote+1
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))//noteq
+ lnote = lnote+2
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'//noteq
+ else if (multip .eq. -3) then
+ notexq = sq//'breve'//noteq
+ lnote = lnote+3
+ else
+ print*
+ print*,'(Error in beamend, send source to Dr. Don)'
+ call stop1()
+ end if
+ else
+c
+c Prior note is regular-dotted so this one is halved
+c
+ if (multip .eq. 0) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -1) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -2) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))//noteq
+ end if
+ end if
+ end if
+ return
+ end if
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ lnote = 0
+c
+c New way, with flipend, which was computed in beamstrt.
+c
+ if (flipend(ivx) .and. btest(ipl(ivx,ip),30))
+ * ulq(ivx,ibmcnt(ivx)) = chax(225-ichar(ulq(ivx,ibmcnt(ivx))))
+ if (ip .gt. ibm1(ivx,ibmcnt(ivx))) then
+c
+c This is not a one-noter from beam-jump. Check if multiplicity has increased
+c
+ if (btest(irest(ivx,ip-1),0)) then
+c
+c Prior note is a rest, check one before that
+c
+ mp = iand(mult(ivx,ip-2),15)-8
+ else
+ mp = iand(mult(ivx,ip-1),15)-8
+ end if
+ if (multip .gt. mp) then
+c
+c Assume 1-3, 2-3, or 1-2
+c
+ do 2 imp = multip , mp+1 , -1
+ call ntrbbb(imp,'t',ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+2 continue
+ else if (btest(nacc(ivx,ip-1),27)) then
+c
+c 2nd member of dotted xtup
+c
+ call ntrbbb(multip+1,'t',
+ * ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+ end if
+ end if
+c
+c Beam termination and direction analysis
+c
+ if (btest(irest(ivx,ip),23) .and. .not.isbjmp) then
+c
+c This is the end of the first segment in a jump-beam. ivbj1=ivx will be number
+c of the jump-beam. ivbj2 will be tested along with isbjmp to see if in the
+c voice of the 2nd part of jumped beam. (May need special treatment for
+c multi-segment jump-beams
+c
+ isbjmp = .true.
+ ivbj1 = ivx
+ ivbj2 = 0
+ end if
+ if (.not.btest(irest(ivx,ip),23)) then
+c
+c This is either a normal beamend or end of a sequence of jump-beam segments,
+c so some sort of termination is required
+c
+ ulqq = ulq(ivx,ibmcnt(ivx))
+ if (.not.isbjmp .or. ivx.ne.ivbj2) then
+c
+c Normal termination
+c
+ call ntrbbb(1,'t',ulqq,mod(ivx,24),notexq,lnote)
+ else
+c
+c Terminate a sequence of jump-beam segments.
+c
+ ulqq = chax(225-ichar(ulqq))
+ call ntrbbb(1,'t',ulqq,mod(ivbj1,24),notexq,lnote)
+ end if
+ end if
+c
+c And now the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+ isdotm = .false.
+ if (.not.vxtup(ivx)) then
+ if (2**log2(nodur(ivx,ip)) .ne. nodur(ivx,ip)) then
+ if (.not.btest(iornq(ivx,ip),13)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ end if
+ end if
+c
+c 5/25/08 Allow >12
+c 5/9/10 Up to 24; replace 24 with 0
+c
+ if (.not.(isbjmp.and.ivx.eq.ivbj2)) then
+c call istring(mod(ivx,12),tempq,len)
+ call istring(mod(ivx,24),tempq,len)
+ else
+c call istring(mod(ivbj1,12),tempq,len)
+ call istring(mod(ivbj1,24),tempq,len)
+ end if
+ if (isbjmp .and. ivx.eq.ivbj2
+ * .and..not.btest(irest(ivx,ip),23)) isbjmp=.false.
+ notexq = notexq(1:lnote)//tempq(1:len)
+ lnote = lnote+len
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 1) then
+ notexq = notexq(1:lnote)//'{'//noteq(1:1)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamid(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq,ulqq,chax
+ logical beamon,firstgulp,figbass,figchk,flipend,btest,
+ * isfig,vxtup,isdotm,isbjmp,bar1syst,isdotted,isbj2,drawbm
+ character*79 notexq
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comoct/ noctup
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ character*8 noteq
+ character*4 tempq
+ lnote = 0
+ ip = ipo(jn)
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ if (.not.btest(irest(ivx,ip),0)) then
+ multip = iand(mult(ivx,ip),15)-8
+c if (btest(islur(ivx,ip-1),3)) multip = multip+1
+c
+c (Above test OK since must have ip>1). Double dotted note preceding
+c
+c Move the following, because can't ask for note until after checking for
+c embedded xtup with number, due to ordering/octave feature.
+c
+c call notefq(noteq,lnoten,nolev(ivx,ip),ncmid(iv,ip))
+ end if
+ if (btest(irest(ivx,ip),28)) vxtup(ivx) = .true.
+ if (vxtup(ivx)) then
+c
+c In an xtup
+c
+ if (btest(irest(ivx,ip),0)) then
+c
+c Intermediate rest in xtup, put in the rest. Reset nodur so notex works OK
+c
+ nodur(ivx,ip) = 2**(4-(iand(mult(ivx,ip),15)-8))
+ call notex(notexq,lnote)
+c
+c Re-zero so next note does not get confused
+c
+ nodur(ivx,ip) = 0
+ return
+ end if
+c if (multip.le.0) then
+c if (multip.le.0 .or.
+c * (multip.eq.1.and.btest(nacc(ivx,ip-1),18))) then
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip)
+ nodur(ivx,ip) = 2**(4-multip)
+ if (btest(nacc(ivx,ip),19) .or.
+ * btest(nacc(ivx,ip),27)) then
+ nodur(ivx,ip)=3*nodur(ivx,ip)/2
+ else if (btest(nacc(ivx,ip-1),27)) then
+ nodur(ivx,ip)=nodur(ivx,ip)/2
+ end if
+ call notex(notexq,lnote)
+ nodur(ivx,ip) = ndsav
+ else
+c
+c Use ulq for stem direction
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = 3
+ if (.not.btest(nacc(ivx,ip-1),27)) then
+c
+c Prior note is not regular-dotted
+c
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 4
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 5
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'
+ end if
+ if (btest(nacc(ivx,ip),27)) then
+c
+c This note is regular dotted non-beamed xtup
+c
+ notexq = notexq(1:3)//'p'
+ lnote = 4
+ end if
+ else
+c
+c Prior note is regular-dotted so this one is halved
+c
+ if (multip .eq. 0) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -2) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ end if
+ return
+ else if (nodur(ivx,ip).eq.0) then
+c
+c In the beamed xtup but not the last note
+c
+ if (nodur(ivx,ip-1).gt.0) then
+c
+c Embedded Xtup, mult>0, starts here. Put in number if needed
+c
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+ iud = 1
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') iud = -1
+c
+c Get ip#, notelevel of middle note (or gap) in xtup
+c
+ ipmid = ip+ntupv(ivx,nxtinbm(ivx))/2
+ xnlmid = levrn(nolev(ivx,ipmid),irest(ivx,ipmid),iud,
+ * ncmid(iv,ipmid),iand(15,mult(ivx,ipmid))-8)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2).eq.0) xnlmid = (xnlmid+
+ * levrn(nolev(ivx,ipmid-1),irest(ivx,ipmid-1),iud,
+ * ncmid(iv,ipmid-1),iand(15,mult(ivx,ipmid-1))-8))/2
+ iflop = 0
+ if (abs(xnlmid-ncmid(iv,ip)).lt.3.) iflop = -iud
+ iup = iud+2*iflop
+ if (btest(irest(ivx,ip),14)) then
+ iup = -iup
+ iflop = 0
+ if (iud*iup .lt. 0) iflop = iup
+ end if
+c
+c Place number if needed
+c
+ if (.not.btest(islur(ivx,ip),31)) then
+ mprint = igetbits(nacc(ivx,ip),5,22)
+ if (mprint.eq.0) mprint=mtupv(ivx,nxtinbm(ivx))
+ call putxtn(mprint,iflop,multip,iud,wheadpt,poenom,
+ * nolev1(ivx),islope(ivx),slfac,
+ * xnlmid,islur(ivx,ip),lnote,notexq,ncmid(iv,ip),nlnum,
+ * eloff(ivx,nxtinbm(ivx)),iup,irest(ivx,ip),.false.)
+ end if
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ else
+c
+c Intermediate note of xtup
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+ else
+c
+c Last note of xtup (but not last note of beam!)
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+ else if (btest(irest(ivx,ip),0)) then
+ call notex(notexq,lnote)
+ return
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+c
+c Check if multiplicity changes in a way requiring action
+c
+ ipleft = ip-1
+ if (btest(irest(ivx,ipleft),0)) ipleft = ipleft-1
+ if (.not.btest(islur(ivx,ipleft),20)) then
+ multl = iand(15,mult(ivx,ipleft))-8
+ else
+ multl = 1
+ end if
+ mub = multip - multl
+ ipright = ip+1
+ if (btest(irest(ivx,ipright),0)) ipright = ipright+1
+ if (.not.btest(islur(ivx,ip),20)) then
+ multr = iand(15,mult(ivx,ipright))-8
+ else
+ multr = 1
+ end if
+ mua = multr-multip
+ if (mub.gt.0 .or. mua .lt. 0) then
+c
+c Multiplicity has increased from left or will decrease to right. Need action.
+c
+ if (isbjmp .and. ivx.eq.ivbj2) then
+ ivb = ivbj1
+ ulqq = chax(225-ichar(ulq(ivx,ibmcnt(ivx))))
+ else
+ ivb = ivx
+ ulqq = ulq(ivx,ibmcnt(ivx))
+ end if
+ if (mua .ge. 0) then
+ call ntrbbb(multip,'n',ulqq,ivb,notexq,lnote)
+ else if (multl .ge. multr) then
+ do 1 im = multip , 1+multr, -1
+ call ntrbbb(im,'t',ulqq,ivb,notexq,lnote)
+1 continue
+ else
+ do 2 im = 1+multr, multip
+ call ntrbbb(im,'r',ulqq,ivb,notexq,lnote)
+2 continue
+ call ntrbbb(multr,'n',ulqq,ivb,notexq,lnote)
+ end if
+ else if (ip .gt. 1) then
+c
+c Check for 2nd member of dotted xtup
+c
+ if (btest(nacc(ivx,ip-1),27)) call ntrbbb(multip+1,'t',
+ * ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+ end if
+c
+c Now put in the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+ isdotm = .false.
+ if (isdotted(nodur,ivx,ip)) then
+c
+c rule out ')'
+c
+ if (.not.btest(iornq(ivx,ip),13)) then
+ if (.not.btest(islur(ivx,ip),3)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+c
+c Double dot
+c
+ notexq = notexq(1:lnote)//'pp'
+ lnote = lnote+1
+ end if
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ else if (btest(nacc(ivx,ip),19)
+ * .or. btest(nacc(ivx,ip),27)) then
+c
+c Special dotted notation for 2:1 xtup, or normal dot in xtup
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+c
+c 5/25/08 Allow >12
+c
+ if (.not.(isbjmp.and.ivx.eq.ivbj2)) then
+c call istring(mod(ivx,12),tempq,len)
+ call istring(mod(ivx,24),tempq,len)
+ else
+c call istring(mod(ivbj1,12),tempq,len)
+ call istring(mod(ivbj1,24),tempq,len)
+ end if
+ notexq = notexq(1:lnote)//tempq(1:len)
+ lnote = lnote+len
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 2) then
+ notexq = notexq(1:lnote)//'{'//noteq(2:2)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamn1(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,isdotm,isbjmp,isbj2,drawbm
+ common /comoct/ noctup
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*8 noteq
+ character*79 notexq
+ ip1 = ipo(jn)
+ multip = iand(15,mult(ivx,ip1))-8
+c if (multip.le.0 .and. btest(irest(ivx,ip1),0)) then
+ if (.not.drawbm(ivx) .and. btest(irest(ivx,ip1),0)) then
+ lnote = 0
+c
+c The rest was already written in beamstrt, so just get out of here
+c
+ return
+ end if
+ nole = nolev(ivx,ipo(jn))
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ipo(jn)),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ipo(jn)),31)) then
+ nole = nole + 1
+ end if
+ if (vxtup(ivx) .and. .not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip1),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip1)
+ nodur(ivx,ip1) = 2**(4-multip)
+ if (btest(nacc(ivx,ip1),19) .or.
+ * btest(nacc(ivx,ip1),27)) nodur(ivx,ip1)=3*nodur(ivx,ip1)/2
+ call notex(notexq,lnote)
+ nodur(ivx,ip1) = ndsav
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip1))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = 3
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 4
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 5
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'
+ else if (multip .eq. -3) then
+ notexq = sq//'breve'
+ lnote = 6
+ else
+ print*
+ print*,'(Error in beamn1, send source to Dr. Don)'
+ call stop1()
+ end if
+ if (btest(nacc(ivx,ip1),19) .or. btest(nacc(ivx,ip1),27)) then
+ notexq = notexq(1:3)//'p'
+ lnote = 4
+ end if
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ end if
+ return
+ end if
+c
+c Check if mult. decreases from 1st note to 2nd
+c
+ if (ibm2(ivx,ibmcnt(ivx)).gt.ip1
+ * .or. btest(islur(ivx,ip1),20)) then
+c
+c More than one note or single-note before a multiplicity-down-up "]["
+c
+ if (btest(islur(ivx,ip1),20)) then
+ multr = 1
+ else if (.not.btest(irest(ivx,ip1+1),0)) then
+ multr = iand(15,mult(ivx,ip1+1))-8
+ else
+ multr = iand(15,mult(ivx,ip1+2))-8
+ end if
+ lnote = 0
+ if (multr .lt. multip) then
+ do 1 im = multip , multr+1 , -1
+ call ntrbbb(im,'r',ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+1 continue
+ end if
+ end if
+c
+c Put in the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+c
+c Check for dot
+c
+ isdotm = .false.
+ if (.not.vxtup(ivx)) then
+ nd = nodur(ivx,ipo(jn))
+ if (nd.ne.0) then
+ if (2**log2(nd).ne.nd) then
+ if (.not.btest(iornq(ivx,ip1),13)) then
+ if (.not.btest(islur(ivx,ip1),3)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+c
+c Double dot
+c
+ notexq = notexq(1:lnote)//'pp'
+ lnote = lnote+1
+ end if
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ end if
+ end if
+ else if (btest(nacc(ivx,ip1),19) .or.
+ * btest(nacc(ivx,ip1),27)) then
+c
+c In an xtup with special 2:1 notation with a dot on 1st note, or normal dot
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+c
+c Do the number; 0 if 12
+c
+c 5/25/08 allow >12
+c
+ if (.not.btest(irest(ivx,ip1),24)) then
+c call istring(mod(ivx,12),noteq,len)
+ call istring(mod(ivx,24),noteq,len)
+ else
+c call istring(mod(ivbj1,12),noteq,len)
+ call istring(mod(ivbj1,24),noteq,len)
+ end if
+ notexq = notexq(1:lnote)//noteq(1:len)
+ lnote = lnote+len
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip1))
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 1) then
+ notexq = notexq(1:lnote)//'{'//noteq(1:1)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamstrt(notexq,lnote,nornb,ihornb,space,squez,ib)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ character*79 inameq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,bar1syst,addbrack,flipend,xto,drawbm
+ common /comeskz2/ eskz2(nm,200)
+ common /comoct/ noctup
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+c
+c The following is just to save the outputs from SetupB for the case of
+c xtups starting with a rest, where beamstrt is called twice.
+c
+ common /comipb/ nnb,sumx,sumy,ipb(24),smed
+ character*8 noteq
+ character*79 notexq,tempq
+ integer nornb(nm),ihornb(nm,24)
+ real*4 space(80),squez(80)
+ logical novshrinktop,cstuplet,usexnumt
+ common /comnvst/ novshrinktop,cstuplet
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figq
+ ibc = ibmcnt(ivx)
+ ipb1 = ibm1(ivx,ibc)
+ multb = iand(15,mult(ivx,ipb1))-8
+ ip = ipo(jn)
+c
+c Compute slopes and note offsets from start of beam. Inside SetupB, for each
+c xtup in the beam, set eloff,mtupv (in comxtup) for printed number.
+c
+ if (ixrest(ivx).eq.0 .and. .not.btest(nacc(ivx,ip),21))
+ * call SetupB(xelsk,nnb,sumx,sumy,ipb,smed,ixrest(ivx))
+ if (btest(nacc(ivx,ip),21)) then
+c
+c This is start of later segment of single-slope beam group so use slope and
+c height from prior beam. Slope is already OK.
+c
+ issb(ivx) = issb(ivx)+1
+ nolev1(ivx) = lev1ssb(ivx,issb(ivx))
+ end if
+ lnote = 0
+ drawbm(ivx) = .true.
+ if (btest(irest(ivx,ipb1),28) .and. ixrest(ivx).ne.2) then
+ vxtup(ivx) = .true.
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+c
+c irest(28)=>Xtup starts on this note. Set up for xtuplet.
+c Number goes on notehead side at middle note (or gap) of xtup, unless that
+c puts it in staff, then it flops to stem (or beam) side.
+c __ __
+c | | | O | |
+c O | | O
+c |___| O |__| |
+c
+c iud -1 -1 1 1 ...stem direction
+c iflop 0 1 -1 0 ...direction of flop
+c iup -1 1 -1 1 ...direction of number and bracket
+c
+ iud = 1
+ if (ulq(ivx,ibc) .eq. 'u') iud = -1
+c
+c Get ip#, note level of middle note (or gap) in xtup
+c
+ ipmid = ipb1+ntupv(ivx,nxtinbm(ivx))/2
+ xnlmid = levrn(nolev(ivx,ipmid),irest(ivx,ipmid),iud,
+ * ncmid(iv,ipmid),iand(15,mult(ivx,ipmid))-8)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2) .eq. 0) xnlmid = (xnlmid+
+ * levrn(nolev(ivx,ipmid-1),irest(ivx,ipmid-1),iud,
+ * ncmid(iv,ipmid-1),iand(15,mult(ivx,ipmid-1))-8))/2
+ iflop = 0
+ if (abs(xnlmid-ncmid(iv,ipb1)).lt.3.) iflop = -iud
+ iup = iud+2*iflop
+ if (btest(irest(ivx,ipb1),14)) then
+c
+c Alter iud, iflop, iup to flip number/bracket. (Stare at above pic)
+c
+ iup = -iup
+ iflop = 0
+ if (iud*iup .lt. 0) iflop = iup
+ end if
+c
+c Determine if a beam is to be drawn
+c
+ do 5 ipp = ibm1(ivx,ibc),ibm2(ivx,ibc)
+ if (iand(15,mult(ivx,ipp))-8 .le. 0) then
+ drawbm(ivx) = .false.
+ go to 6
+ end if
+5 continue
+ drawbm(ivx) = .not.btest(islur(ivx,ibm1(ivx,ibc)),18)
+6 continue
+c
+c Are we using tuplet.tex?
+c
+ usexnumt = cstuplet .and. .not.drawbm(ivx)
+c
+c Place xtup number if needed
+c
+ if (.not.btest(islur(ivx,ipb1),31) .or. multb.le.0) then
+ mprint = igetbits(nacc(ivx,ip),5,22)
+ if (mprint.eq.0) mprint=mtupv(ivx,nxtinbm(ivx))
+ call putxtn(mprint,iflop,multb,iud,wheadpt,
+ * poenom,nolev1(ivx),islope(ivx),slfac,xnlmid,islur(ivx,ipb1),
+ * lnote,notexq,ncmid(iv,ipb1),nlnum,eloff(ivx,nxtinbm(ivx)),
+ * iup,irest(ivx,ipb1),usexnumt)
+ end if
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam
+c
+ if (.not.btest(islur(ivx,ipb1),31)) then
+c
+c Number printing has not been suppressed, so put in the bracket.
+c scale = stretch factor for bracket if there are asx's
+c xnsk = length of the bracket in \noteskips = (\elemskips)/(eon)
+c
+ xnsk = (eskz2(ivx,ipb1+ntupv(ivx,nxtinbm(ivx))-1)
+ * -eskz2(ivx,ipb1))/squez(ib)/feon(space(ib)/squez(ib))
+ if (iup .eq. 1) then
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'ovbkt'
+ else
+ notexq = sq//'ovbkt'
+ end if
+ else
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'unbkt'
+ else
+c
+c Introduced 12/5/98, req'd due to possible presence of in-line TeX
+c
+ notexq = sq//'unbkt'
+ end if
+ end if
+ lnote = lnote+6
+ if (iline.eq.1) then
+ smed = smed/(1.-fracindent)
+ end if
+ xslope = 1.8*smed*slfac
+ islope(ivx) = nint(xslope)
+ nolev1(ivx) = nlnum - nint(smed*eloff(ivx,1))
+ if (islope(ivx) .eq. 0) nolev1(ivx) = nolev1(ivx)-1
+ if (iup .eq. 1) nolev1(ivx) = nolev1(ivx)+4
+ levbracket = nolev1(ivx)
+ if (iup.eq.1 .and. cstuplet) levbracket = levbracket-1
+ call notefq(noteq,lnoten,levbracket,ncmid(iv,ipb1))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+lnoten+1
+ if (xnsk .lt. 0.995) then
+ write(notexq(lnote+1:lnote+4),'(i1,f3.2)')0,xnsk
+ lnote = lnote+4
+ else if (xnsk .lt. 9.995) then
+ write(notexq(lnote+1:lnote+4),'(f4.2)')xnsk
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+5),'(f5.2)')xnsk
+ lnote = lnote+5
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ if (btest(mult(ivx,ipb1),4)) then
+c
+c Tweak slope of bracket
+c
+ islope(ivx) = islope(ivx)+igetbits(mult(ivx,ipb1),5,5)-16
+ end if
+ if (islope(ivx).lt.0 .or. islope(ivx).ge.10) then
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (islope(ivx) .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')islope(ivx)
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+2),'(i2)')islope(ivx)
+ lnote = lnote+2
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+ write(notexq(lnote+1:lnote+1),'(i1)')islope(ivx)
+ lnote = lnote+1
+ end if
+c
+c Done with bracket
+c
+ end if
+ if (ixrest(ivx) .eq. 1) then
+c
+c Put in the rest. Possible problem: Rest is a spacing char, but between
+c beamstrt and beamn1 some non-spacing chars. are inserted.
+c
+ if (multb .eq. 0) then
+ notexq = notexq(1:lnote)//sq//'qp'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.1) then
+ notexq = notexq(1:lnote)//sq//'ds'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.2) then
+ notexq = notexq(1:lnote)//sq//'qs'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.3) then
+ notexq = notexq(1:lnote)//sq//'hs'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//sq//'hpause'
+ lnote = lnote+7
+ end if
+c
+c No need to come back through this subroutine (as would if rest starts bar
+c & multb>0), so do not advance ibm1. But must check in beamn1 and do nothing.
+c
+ ixrest(ivx) = 0
+ end if
+ return
+ end if
+c
+c End if block for non-beamed xtup start...note we returned
+c
+ if (ixrest(ivx) .eq. 1) then
+c
+c Insert rest at start of beamed xtup. See above note for possible problem.
+c
+ nodur(ivx,ipb1) = 2**(4-multb)
+ call notex(tempq,ltemp)
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//tempq(1:ltemp)
+ else
+ notexq = tempq(1:ltemp)
+ end if
+ lnote = lnote+ltemp
+c
+c Re-zero just in case!
+c
+ nodur(ivx,ipb1) = 0
+ ibm1(ivx,ibc) = ibm1(ivx,ibc)+1
+c
+c See if next note is a non-rest
+c
+ if (.not.btest(irest(ivx,ipb1+1),0)) then
+ ixrest(ivx) = 2
+ else
+c
+c Suppress reprinting xtup number next time through beamstrt
+c
+ islur(ivx,ipb1+1) = ibset(islur(ivx,ipb1+1),31)
+c
+c Set new xtup start flag
+c
+ irest(ivx,ipb1+1) = ibset(irest(ivx,ipb1+1),28)
+ end if
+ return
+ end if
+ end if
+c
+c Just ended if block for xtups
+c
+ if (vxtup(ivx) .and. ipb1.eq.ibm2(ivx,ibc)) then
+c
+c Move actual note writing to beamend
+c
+ ixrest(ivx) = 4
+ return
+ end if
+ if (issb(ivx) .eq. 0) then
+c
+c 1st bmstrt in single-slope bm grp, Adjust start level(s) and slope if needed
+c
+ iadj = igetbits(ipl(ivx,ipb1),6,11)-30
+ if (iadj .ne. -30) then
+ nolev1(ivx) = nolev1(ivx)+iadj
+ do 2 isssb = 1 , nssb(ivx)
+ lev1ssb(ivx,isssb) = lev1ssb(ivx,isssb)+iadj
+2 continue
+ end if
+ iadj = igetbits(ipl(ivx,ipb1),6,17)-30
+ if (iadj .ne. -30) then
+ islope(ivx) = islope(ivx)+iadj
+ if (abs(islope(ivx)) .gt. 9) islope(ivx) = sign(9,islope(ivx))
+ if (nssb(ivx) .gt. 0) then
+c
+c Cycle thru non-rest notes in SSBG, looking for bmstrts.
+c
+ isssb = 0
+ do 4 inb = 2, nnb
+ if (btest(nacc(ivx,ipb(inb)),21)) then
+c
+c Beam segment start. New start level
+ isssb = isssb+1
+ lev1ssb(ivx,isssb) =
+ * lev1ssb(ivx,isssb)+islope(ivx)*xelsk(inb)/slfac
+ end if
+4 continue
+ end if
+ end if
+ end if
+ iadj = igetbits(islur(ivx,ipb1),2,27)
+ addbrack = .false.
+ if (btest(ipl(ivx,ipb1),30)) then
+c
+c Check for altered starting polarity. Only in forced beams. Nominal start
+c level is nolev1. So beam level is nolev1 +/- 6, to be compared w/ nolev(.,.).
+c
+ if (ulq(ivx,ibc).eq.'u' .and.
+ * nolev1(ivx)+6.lt.nolev(ivx,ipb1)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'loff{'
+ else
+ notexq = notexq(1:lnote)//sq//'loff{'
+ end if
+ lnote = lnote+6
+ addbrack = .true.
+ else if (ulq(ivx,ibc).eq.'l' .and.
+ * nolev1(ivx)-6.gt.nolev(ivx,ipb1)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'roff{'
+ else
+ notexq = notexq(1:lnote)//sq//'roff{'
+ end if
+ lnote = lnote+6
+ addbrack = .true.
+ end if
+c
+c Check end level for possible flipping in forced beam. Have to do it
+c here since with multiple voices, xelsk will not be preserved.
+c
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') then
+ bmlev = nolev1(ivx)+6+islope(ivx)*xelsk(nnb)/slfac
+ flipend(ivx) = bmlev.lt.nolev(ivx,ibm2(ivx,ibc))
+ else if (ulq(ivx,ibmcnt(ivx)) .eq. 'l') then
+ bmlev = nolev1(ivx)-6+islope(ivx)*xelsk(nnb)/slfac
+ flipend(ivx) = bmlev.gt.nolev(ivx,ibm2(ivx,ibc))
+ end if
+ end if
+ call ntrbbb(multb+iadj,'i',ulq(ivx,ibc),ivx,notexq,lnote)
+c
+c Put in name of start level and slope, after correcting nolev1 if xtup
+c started with a rest.
+c
+ if (ixrest(ivx).eq.2) nolev1(ivx) =
+ * nint(nolev1(ivx)+xelsk(1)*islope(ivx)/slfac)
+ call notefq(noteq,lnoten,nolev1(ivx),ncmid(iv,ipb1))
+ if (islope(ivx) .lt. 0) then
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+4+lnoten
+ write(notexq(lnote-2:lnote),'(i2,a1)')islope(ivx),'}'
+ else
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+1+lnoten
+ write(notexq(lnote:lnote),'(i1)')islope(ivx)
+ end if
+c
+c Check for beam-thk fine-tuning
+c
+ if (iadj .gt. 0) then
+ do 1 imp = multb+iadj , multb+1 , -1
+ call ntrbbb(imp,'t',ulq(ivx,ibc),ivx,notexq,lnote)
+1 continue
+ end if
+c
+c If we shifted, must close with right bracket
+c
+ if (addbrack) then
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+c
+c Get 'floor' zmin for figures
+c Note: Will not come thru here on 1st note of unbeamed xtup, so figure height
+c won't be adjusted. If anyone ever needs that, need to duplicate this
+c functionality up above, before exiting.
+c
+ if (figbass .and. (ivx.eq.1 .or. ivx.eq.ivxfig2)) then
+ if (ivx .eq. 1) then
+ ivf = 1
+ else
+ ivf = ivxfig2
+ end if
+ zmult = 1.2*(multb-1)
+ ymin = 100.
+ do 3 inb = 1, nnb
+ if (isfig(ivf,ipb(inb))) then
+ if (ulq(iv,ibc) .eq. 'u') then
+ ybot = nolev(iv,ipb(inb))
+ else
+ ybot = islope(ivx)/slfac*xelsk(inb)+nolev1(ivx)
+ * -stemlen-zmult
+ end if
+ ymin = min(ymin,ybot)
+ end if
+3 continue
+ maxdrop = ncmid(iv,ipb1)-4-ymin+5.01
+ ifigdr(ivf,iline) = max(ifigdr(ivf,iline),maxdrop)
+ end if
+c
+c Compute ornament levels if needed
+c
+ NomOrnLev = ncmid(iv,ipb1)+5
+ iorn = 0
+ do 8 inb = 1 , nnb
+ ip = ipb(inb)
+ if (.not.btest(iornq(ivx,ip),23)) go to 8
+ if (btest(irest(ivx,ip),26) .and. ulq(ivx,ibc).eq.'l') then
+c
+c letter-dynamic or hairpin ending under down-beamed
+c
+ iorn = iorn+1
+ ybeam = nolev1(ivx)-stemlen+islope(ivx)*xelsk(inb)/slfac+1
+ * -1.2*(multb-1)
+ ihornb(ivx,iorn) = min(nint(ybeam-3.),NomOrnLev-10)
+ else if (.not.btest(ipl(ivx,ip),10)) then
+c
+c Bits 0-13: (stmgx+Tupf._) , 14: Down fermata, was F
+c 15: Trill w/o "tr", was U , 16-18 Editorial s,f,n , 19-21 TBD
+c
+c Non-chord. There IS an ornament. Need ihornb only if upbeam, and if
+c ornament is 1,2,3,5,6,7,8,9,10,15-21 (up- but not domn ferm.)
+c
+ if (ulq(ivx,ibc).eq.'u' .and.
+ * iand(iornq(ivx,ipb(inb)),4163566).gt.0) then
+ iorn = iorn+1
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),22)
+ ybeam = nolev1(ivx)+stemlen+islope(ivx)*xelsk(inb)/slfac-1
+ * +1.2*(multb-1)
+ ihornb(ivx,iorn) = max(nint(ybeam+3.),NomOrnLev)
+ end if
+ else
+c
+c In a chord. Orn may be on main note or non-main or both. Set ihornb if
+c upbeam and highest note has orn, or down beam and lowest. Find 1st chord note
+c
+ do 10 icrd1 = 1 , ncrd
+ if (iand(255,icrdat(icrd1)) .eq. ip .and.
+ * iand(15,ishft(icrdat(icrd1),-8)) .eq. ivx) go to 11
+10 continue
+11 continue
+c
+c Find outermost note, min or max depending on beam direction ulq. xto is true
+c if there's an ornament on that note. Expand orn list to include ._, since if
+c on extreme chord note in beam, will move.
+c So ornaments are all except 0,4,13 (,g,)
+c
+ levx = nolev(ivx,ip)
+ xto = iand(iornq(ivx,ipb(inb)),4186094).gt.0
+ icrdx = 0
+ do 12 icrd = icrd1 , ncrd
+ if (iand(255,icrdat(icrd)) .ne. ip .or.
+ * iand(15,ishft(icrdat(icrd),-8)) .ne. ivx) go to 13
+ levc = iand(127,ishft(icrdat(icrd),-12))
+ if ((ulq(ivx,ibc).eq.'u'.and.levc.gt.levx) .or.
+ * (ulq(ivx,ibc).eq.'l'.and.levc.lt.levx)) then
+ levx = levc
+ icrdx = icrd
+ xto = iand(icrdorn(icrd),4186094).gt.0
+ end if
+12 continue
+13 continue
+c
+c If there's orn on extreme note, do stuff
+c
+ if (xto) then
+ iorn = iorn+1
+ if (ulq(ivx,ibc) .eq. 'u') then
+ ybeam = nolev1(ivx)+stemlen+islope(ivx)*xelsk(inb)/slfac-1
+ * +1.2*(multb-1)
+ ihornb(ivx,iorn) = max(nint(ybeam+3.),NomOrnLev)
+ else
+ ybeam = nolev1(ivx)-stemlen+islope(ivx)*xelsk(inb)/slfac+1
+ * -1.2*(multb-1)
+ ihornb(ivx,iorn) = min(nint(ybeam-3.),NomOrnLev-10)
+ end if
+ if (icrdx .eq. 0) then
+c
+c Affected ornament is on main note
+c
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),22)
+ else
+ icrdorn(icrdx) = ibset(icrdorn(icrdx),22)
+ end if
+ end if
+ end if
+8 continue
+c
+c Henceforth nornb will be a counter.
+c
+ if (iorn .gt. 0) nornb(ivx)=1
+ if (ixrest(ivx) .eq. 2) ixrest(ivx) = 0
+ return
+ end
+ block data
+ parameter (nm=24)
+ common /comtol/ tol
+ common /comtrans/ cheadq
+ common /compage/ widthpt,ptheight,hoffpt,voffpt,
+ * nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /cblock/
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inhnoh
+ common /cominbot/ inbothd
+ logical usefig
+ common /comstart/ facmtr
+ character*60 cheadq
+ character*120 instrq,titleq,compoq
+ logical headlog
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /combmh/ bmhgt,clefend
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /comsize/ isize(nm)
+c
+ data tol /.001/
+ data cheadq
+ * /' '/
+ data gslfac /9./
+ data instrq,titleq,compoq,headlog /3*' ',.false./
+c
+c meter space (pts) = xb4mbr = musicsize*facmtr
+c
+ data facmtr /0.55/
+ data grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,clefend,bmhgt
+ * / 1.3333,.4 , .7 , .3 , 0.2 , 2.0 , 1.0 ,
+ * .7,.7 ,.9 ,.5 ,2.3 ,1.1 /
+ data rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,arpfac
+ * / 1.32 , 2.25 , 0.47 , 0.83 , 0.17 , 0.5 , 1.7 /
+ data rtshfac / 1.0 /
+ data isize /nm*0/
+c
+c From other
+c
+ data ptheight,widthpt,hoffpt,voffpt,
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inbothd,inhnoh
+ * / 740. , 524. , 0., 0.,
+ * .50 , .25 , 0.4 , 0.4 , 0.2 , 12. ,21. , 12.,
+ * 4 , 1.6 ,5.,5.7,1.071,2.714,16 ,16 /
+ data fracsys /30*0./
+ data ivowg,hoh1,hoh2,hoh2h1 /0,0,0,0,0,1,1,1,1,1,1,1,
+c * 2.0,1.5,1.0,0.5,1.3,1.3,0.4,0.8,1.2,0.8,1.2,1.6,
+ * 2.2,1.7,1.2,0.7,1.3,1.3,0.4,0.8,1.2,0.8,1.2,1.6,
+ * -2.7,-2.2,-1.7,-1.2,-2.3,-2.1,-1.0,-1.7,-2.1,-1.6,-1.9,-2.3,
+ * -0.3,0.3 /
+ data kbdrests /.false./,
+ * levtopr /9,7,5,5,7,5,6,6/, levbotr /0,0,0,2,1,4,5,4/
+ data EarlyTransOn, LaterInstTrans /2*.false./
+ data iInstTrans /nm*0/
+ end
+ subroutine catspace(space,squez,nnsk)
+ parameter (nkb=3999,maxblks=4000)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /comtol/ tol
+ logical gotclef
+ do 16 iptr = nptr(ibarcnt) , nptr(ibarcnt+1)-1
+ if (abs(space-durb(iptr)) .lt. tol) then
+ if (abs(squez-sqzb(iptr)) .lt. tol) then
+c
+c Increment pre-existing entry
+c
+ nnpd(iptr) = nnpd(iptr)+nnsk
+ return
+ end if
+ end if
+16 continue
+c
+c Didn't find current duration & squez, so add a new entry.
+c No particular reason to keep in order, so add at the end.
+c
+ nnpd(nptr(ibarcnt+1)) = nnsk
+ durb(nptr(ibarcnt+1)) = space
+ sqzb(nptr(ibarcnt+1)) = squez
+ nptr(ibarcnt+1) = nptr(ibarcnt+1)+1
+ return
+ end
+ character*1 function chax(n)
+c
+c The only reason for this seemingly do-nothing function is to get around an
+c apparent bug in the Visual Fortran Standard Edition 5.0.A compiler!
+c
+ chax = char(n)
+ return
+ end
+ subroutine checkdyn(lineq,iccount,ibar)
+ character*128 lineq
+ character*1 durq,chax
+ character*4 dynsymq
+ logical txtdyn
+ txtdyn = .false.
+c
+c On entry, iccount is on "D"
+c
+ if (lineq(iccount+1:iccount+1) .eq. '"') then
+c
+c Dynamic text
+c
+ iend = index(lineq(iccount+2:128),'"')
+ if (iend .eq. 0) then
+ call errmsg(lineq,iccount+1,ibar,
+ * 'Dynamic text must be terminated with double quote!')
+ call stop1()
+ end if
+c
+c Set iccount to character after 2nd ", and set ipm
+c
+ iccount = iccount+iend+2
+ ipm = index('- +',lineq(iccount:iccount))
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected "-", "+", or blank here!')
+ call stop1()
+ end if
+ else
+c
+c Expect ordinary dynamic
+c
+ do 1 iend = iccount+2 , 128
+ ipm = index('- +',lineq(iend:iend))
+ if (ipm .gt. 0) go to 2
+1 continue
+2 continue
+ if (iend-iccount.gt.5 .or. iend-iccount.lt.2) then
+ call errmsg(lineq,iend-1,ibar,
+ * 'Wrong length for dynamic mark!')
+ call stop1()
+ end if
+ read(lineq(iccount+1:iend-1),'(a'//chax(47+iend-iccount)//')')
+ * dynsymq
+ idno = (index(
+ * 'ppppppp pp p mp mf f fp sfz ff fff ffff< > ',
+ * dynsymq)+3)/4
+ if (idno .eq. 0) then
+ call errmsg(lineq,iccount+1,ibar,'Illegal dynamic mark!')
+ call stop1()
+ end if
+ iccount = iend
+ end if
+ if (ipm .ne. 2) then
+c
+c There is a vertical shift, have "+" or "-"
+c
+ iccount = iccount+1
+ if (index('0123456789',lineq(iccount:iccount)) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected integer here for vertical offset!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(fnum)
+ if (idno .gt. 63) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Vertical offset for dynamic mark must be (-63,63)!')
+ call stop1()
+ end if
+ ipm = index('- +',durq)
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected "+", "-", or blank here!')
+ call stop1()
+ end if
+ if (ipm .ne. 2) then
+c
+c There is a horizontal shift
+c
+ iccount = iccount+1
+ if (index('.0123456789',lineq(iccount:iccount)) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected number here for horizontal offset!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(10*fnum)
+ if (idno .gt. 255) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Horizontal offset for dynamic mark must be (-25.5,25.5)!')
+ call stop1()
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibar,
+ * 'There should be a blank here!')
+ call stop1()
+ end if
+ end if
+c
+c iccount should be on the blank at the end of the entire symbol
+c
+ end if
+ return
+ end
+ subroutine chkarp(ncrd,icrdat,ivx,ip,iscacc,isarp)
+c subroutine chkarp(found1,ncrd,icrdat,icrdot,ivx,ip,isacc,isarp,
+c * icashft)
+ logical found1,iscacc,isarp,btest
+ integer icrdat(193)
+ found1 = .false.
+c
+c icashft will be max left shift of accid's in chord notes.
+c Used only for spacing checks.
+c Will include left shift of chord note itself.
+c Rezero after use.
+c
+ do 18 icrd = 1 , ncrd
+c
+c This if block cycles thru all chord notes on ivx,ip; then returns.
+c
+ if (iand(255,icrdat(icrd)) .eq. ip .and.
+ * iand(15,ishft(icrdat(icrd),-8)) .eq. ivx) then
+ found1 = .true.
+ iscacc = iscacc .or.
+ * (btest(icrdat(icrd),19).and..not.btest(icrdat(icrd),27))
+c
+c Accid on this chord note, and it's not midi-only.
+c
+c irshft = igetbits(icrdot(icrd),7,20)
+cc
+cc Include increment for notehead shift
+cc
+c if (btest(icrdat(icrd),23)) then
+c if (irshft .eq. 0) then
+c irshft = 44
+c else
+c irshft=irshft-20
+c end if
+c end if
+c if (irshft .ne. 0) then
+cc
+cc Accid on chord note is shifted. Include only left shift, in 20ths.
+cc
+c if (irshft .lt. 64) icashft = max(icashft,64-irshft)
+c end if
+c end if
+ isarp = isarp .or. btest(icrdat(icrd),25)
+ else if (found1) then
+ return
+ end if
+18 continue
+ return
+ end
+ subroutine chkimidi(icm)
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ if (imidi(icm) .ge. mv) then
+ print*
+ print*,'Midi file is too long! It will be corrupted or worse'
+ write(*,'(a6,2x,4i8)')
+ * 'imidi:',imidi(0),imidi(1),imidi(2),imidi(3)
+ end if
+ return
+ end
+ subroutine chklit(lineq,iccount,literr)
+ character*128 lineq
+ character*1 charq,chax
+ literr = 0
+ itype = 1
+17 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. chax(92)) then
+ itype = itype+1
+c if (itype .eq. 2) then
+c if (iccount .ne. 2 ) then
+cc
+cc type 2 or 3 tex string not starting in column 1
+cc
+c literr = 3
+c return
+c end if
+c else if (itype .gt. 3) then
+ if (itype .gt. 3) then
+ literr = 1
+ return
+ end if
+ go to 17
+ end if
+ lenlit = itype
+18 call g1etchar(lineq,iccount,charq)
+ if (charq.eq.chax(92)) then
+ call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+c
+c Starting a new tex command withing the string
+c
+ lenlit = lenlit+2
+ if (lenlit .gt. 128) then
+ literr = 2
+ return
+ end if
+ go to 18
+ end if
+ else
+ lenlit = lenlit+1
+ if (lenlit .gt. 128) then
+ literr = 2
+ return
+ end if
+ go to 18
+ end if
+ return
+ end
+ subroutine chkpm4ac(lineq,iccount,nacc,moved)
+c
+c Called after getting +/-/</> in a note (not rest). iccount is on the +-<>.
+c Sets moved=.true. and sets move parameters in nacc if necc: horiz only (bits
+c 10-16) if < or >, horiz and vert (bits 4-9) if two consecutive signed
+c numbers. If moved=.true., iccount on exit is on end of last number.
+c If moved=.false., iccount still on +/-
+c
+ logical moved,ishorz
+ character*128 lineq
+ character*1 durq
+ if (index('sfnA',lineq(iccount-1:iccount-1)).gt.0 .and.
+ * index('0123456789.',lineq(iccount+1:iccount+1)).gt.0) then
+c
+c Prior char was accid & next is #; this may be start of accidental shift.
+c Must test for "." above in case we get "<" or ">"
+c
+ ipm = index('- +< >',lineq(iccount:iccount))-2
+ if (lineq(iccount+1:iccount+1).eq.'.' .and.
+ * index('0123456789',lineq(iccount+2:iccount+2)).eq.0) then
+c
+c Rare case of [accid][+/-].[letter]. Bail out
+c
+ moved = .false.
+ return
+ end if
+ ishorz = ipm .gt. 1
+c
+c Save iccount in case it's not accid shift and we have to reset.
+c
+ icsav = iccount
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (ishorz .or. index('+-',durq).gt.0) then
+c
+c This has to be accidental shift. Set vert. shift.
+c
+ if (.not.ishorz) then
+c
+c +/- syntax, both shifts set, vertical first
+c
+ call setbits(nacc,6,4,int(ipm*fnum+32.5))
+ ipm = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ else
+c
+c </> syntax, only horiz set
+c
+ ipm = ipm-3
+ end if
+c
+c Set horiz. shift
+c
+ call setbits(nacc,7,10,nint(20*(ipm*fnum+5.35)))
+ iccount = iccount-1
+ moved = .true.
+ else
+c
+c False alarm. Reset everything and flow onward
+c
+ moved = .false.
+ iccount = icsav
+ end if
+ else
+c
+c Either prior char was not 'sfn' or next was not digit, so take no action
+c
+ moved = .false.
+ end if
+ return
+ end
+ subroutine clefsym(isl,notexq,lnote,nclef)
+c
+c Returns string calling Don's TeX macro \pmxclef, for drawing small clefs.
+c
+ character*(*) notexq
+ character*1 chax
+ nclef = iand(ishft(isl,-12),7)
+ if (nclef .eq. 0) then
+c
+c treble
+c
+ nlev = 2
+ else if (nclef .gt. 6) then
+c
+c French violin
+c
+ nlev = 0
+ else if (nclef .lt. 5) then
+c
+c C-clef
+c
+ nlev = 2*nclef-2
+ else
+c
+c F-clef
+c
+ nlev = 2*nclef-6
+ end if
+ notexq = chax(92)//'pmxclef'//chax(48+min(nclef,7))
+ * //chax(48+nlev)
+ lnote = 10
+ return
+ end
+ subroutine crdacc(nacc,naccid,micrd,nolevm,rmsshift,lasttime,
+ * levmaxacc,icrdot0,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+c
+c nacc = accidental bitmap for main note
+c naccid = # of accid's in chord
+c micrd = array with icrd #'s for notes w/ acc's, 0=>main note
+c nolevm = level of main note
+c segrb(1|2,.) x|y-coord of right-bdry segment
+c ksegrb(.) internal use; tells what defined this segment
+c -2: Left-shifted notehead
+c -1: Original right boundary
+c 0: Main note accidental
+c icrd: Chord-note accidental
+c isetshft(i),i=1,naccid: what set shift for this accid, same codes
+c icrdot0 = top-down level-rank of main note among accid-notes
+c icrdot(icrd)(27-29) = level rank of chord-note among accid-notes
+c twooftwo will be true 2nd time thru; signal to store shifts w/ notes
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ real*4 segar(5,2,6),segal(5,2,6),segrb(2,50),segrb0(2,50)
+ integer*4 nsegar(5),nsegal(5),micrd(10),iacctbl(6),ksegrb(50),
+ * isetshft(10),ksegrb0(50)
+ logical lasttime,mainnote,twooftwo
+ data nsegar / 3,4,3,3,2 /, nsegal / 2,4,3,3,2 /
+ data segar /
+c
+c Fancy sharp boundary. fl,sh,na,dfl,dsh
+c
+ * -0.05,-0.38,-0.34,-.05, -.15,-1.4,-2.9,-3.0, -1.4, -1.2,
+c * -0.75,-0.20,-0.80, 0. , 0. , .96,-1.04,1.6, 0. , 0. ,
+c meas value for y, natural is 1.6
+ * -0.75,-0.20,-0.80,-.75, 0. , .96,-1.04,1.48, .96, 1.2,
+ * 0.00,-0.38, 0.00, 0. , 0. ,3.15, 1.64,3.0, 3.15, 0. ,
+ * 0. , 0.00, 0. , 0. , 0. , 0. , 2.90, 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. /
+ data segal /
+c * 0.00, 0.00,-1.04, 0. , 0. ,3.15, 2.9,-1.6, 0. , 0. ,
+cc (meas. value is 3.08) ^^^^
+cc Raise top of flat so it interferes with bottom of sharp
+ * -1.00,-1.02,-0.60,-1.65, -1.2,-1.4,-2.9, -3.0, -1.4, -1.2,
+ * 0.00,-1.20,-1.04, 0. , 0. ,3.15,-1.64,-1.48,3.15, 1.2,
+ * 0. ,-1.02, 0.00, 0. , 0. , 0. , 1.04, 3.0, 0. , 0. ,
+ * 0. , 0.00, 0. , 0. , 0. , 0. , 2.9 , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. /
+c
+c iacctbl(i) = internal accid # (1-5) when i=extern accid # (1,2,3,5,6)
+c
+ data iacctbl / 1 , 2 , 3 , 0 , 4 , 5 /
+c
+c Set up barrier segrb(iseg,ipoint) to define coords of corner points
+c on stem+notes
+c
+ do 11 iseg = 1 , nsegrb0
+ segrb(1,iseg) = segrb0(1,iseg)
+ segrb(2,iseg) = segrb0(2,iseg)
+ ksegrb(iseg) = ksegrb0(iseg)
+11 continue
+ nsegrb = nsegrb0
+ rmsshift = 0.
+ shiftmin = 1000.
+ do 1 iwa = 1 , naccid
+c
+c Initialize shift for this note
+c
+ shift = 0.
+ mainnote = micrd(iwa).eq.0
+ isetshft(iwa) = -1
+c
+c Get note level and accidental type
+c
+ if (mainnote) then
+ nolev = nolevm
+ iacctype = iacctbl(igetbits(nacc,3,0))
+ else
+ nolev = igetbits(icrdat(micrd(iwa)),7,12)
+ iacctype = iacctbl(igetbits(icrdat(micrd(iwa)),3,20))
+ end if
+c
+c Cycle thru segments on right edge of this accidental
+c
+ do 2 isega = 1 , nsegar(iacctype)-1
+ ybotaseg = nolev+segar(iacctype,2,isega)
+ ytopaseg = nolev+segar(iacctype,2,isega+1)
+c
+c Cycle thru segments of right-hand barrier
+c
+ do 3 isegrb = 1 , nsegrb-1
+c
+c Must find all barrier segments that start below ytopseg & end above ybotseg
+c
+ if (segrb(2,isegrb) .lt. ytopaseg) then
+c
+c Barrier seg starts below top of accid
+c Check if barrier seg ends above bottom of accid
+c
+ if (segrb(2,isegrb+1) .gt. ybotaseg) then
+ if (shift .gt.
+ * segrb(1,isegrb)-segar(iacctype,1,isega)) then
+ shift = segrb(1,isegrb)-segar(iacctype,1,isega)
+c
+c Record the cause of the shift
+c
+ isetshft(iwa) = ksegrb(isegrb)
+ end if
+ end if
+c
+c Does barrier segment end above top of accid seg?
+c
+ if (segrb(2,isegrb+1) .gt. ytopaseg) go to 4
+ end if
+3 continue
+4 continue
+2 continue
+ if (.not.btest(nacc,28) .and. abs(shift).gt.0.0001
+ * .and. .not.lasttime) then
+c if (nolev .eq. levmaxacc) then
+ if (nolev.eq.levmaxacc .and. isetshft(iwa).eq.-1) then
+ rmsshift = 1000.
+ return
+ end if
+c
+c Does the following properly account for left-shifted noteheads?
+c
+c Top-down rank of this note we just shifted
+c
+ if (mainnote) then
+ irank = icrdot0
+ else
+ irank = igetbits(icrdot(micrd(iwa)),3,27)
+ end if
+c
+c Compare level-rank of this note vs. that of note that caused the shift.
+c This has effect of checking for basic interferences from top down.
+c
+c ksegrb(.) internal use; tells what defined this segment
+c -2: Left-shifted notehead
+c -1: Original right boundary
+c 0: Main note accidental
+c icrd: Chord-note accidental
+c isetshft(i),i=1,naccid: what set shift for this accid, same codes
+c
+ if (isetshft(iwa) .lt. 0) then
+ iranksetter = 0
+ else if (isetshft(iwa) .eq. 0) then
+ iranksetter = icrdot0
+ else
+ iranksetter = igetbits(icrdot(isetshft(iwa)),3,27)
+ end if
+ if (iranksetter.ne.0 .and. irank.ne.iranksetter+1) then
+ rmsshift = 1000.
+ return
+ end if
+ end if
+ rmsshift = rmsshift+shift**2
+ if (lasttime .and. abs(shift).gt..0001) then
+ if (mainnote) then
+ if (.not.btest(nacc,29)) go to 10
+ else
+ if (.not.btest(icrdat(micrd(iwa)),29)) go to 10
+ end if
+c
+c If here, "A" was set on a manual shift, so must cumulate the shift. Note that if there
+c was a manual shift but auto-shift was zero, will not come thru here, but shift value
+c will be left intact.
+c
+ if (mainnote) then
+ shift = shift+.05*(igetbits(nacc,7,10)-107)
+ else
+ shift = shift+.05*(igetbits(icrdot(micrd(iwa)),7,20)-107)
+ end if
+10 continue
+ if (twooftwo) then
+c
+c Record the shift for this accidental
+c
+ if (shift .lt. -5.35) then
+ call printl(' ')
+ call printl('WARNING: auto-generated accidental '//
+ * 'shift too big for PMX, ignoring')
+ else
+ ishift = nint(20*(shift+5.35))
+ if (mainnote) then
+ call setbits(nacc,7,10,ishift)
+ else
+ call setbits(icrdot(micrd(iwa)),7,20,ishift)
+ end if
+ end if
+ else
+c
+c This is the earlier call to precrd, so need minimum shift
+c
+ shiftmin = min(shiftmin,shift)
+ end if
+ end if
+c
+c Bail out if this is the last accidental to check
+c
+ if (iwa .eq. naccid) go to 1
+c
+c Add this accidental to the right barrier! Count down from highest barrier segment,
+c find 1st one starting below top of accid, and first one starting below bot.
+c
+ do 5 ibelowtop = nsegrb , 1 , -1
+ if (segrb(2,ibelowtop) .lt.
+ * nolev+segal(iacctype,2,nsegal(iacctype))) then
+ do 9 ibelowbot = ibelowtop , 1 , -1
+ if (segrb(2,ibelowbot) .lt.
+ * nolev+segal(iacctype,2,1)) go to 6
+9 continue
+ print*,'Oops2!'
+ call stop1()
+ end if
+5 continue
+ print*,'Ugh0! in crdaccs'
+ call stop1()
+6 continue
+ netgain = nsegal(iacctype)-ibelowtop+ibelowbot
+c
+c Shift high segments up
+c
+ if (netgain .ge. 0) then
+ do 7 isegrb = nsegrb , ibelowtop+1 , -1
+ segrb(1,isegrb+netgain) = segrb(1,isegrb)
+ segrb(2,isegrb+netgain) = segrb(2,isegrb)
+ ksegrb(isegrb+netgain) = ksegrb(isegrb)
+7 continue
+c
+c Set up 1st segment above accid
+c
+ segrb(1,ibelowtop+netgain) = segrb(1,ibelowtop)
+ segrb(2,ibelowtop+netgain) =
+ * nolev+segal(iacctype,2,nsegal(iacctype))
+ ksegrb(ibelowtop+netgain) = ksegrb(ibelowtop)
+ else
+c
+c netgain<0, must remove segments. Use same coding but reverse order,
+c work from bottom up
+c
+ segrb(1,ibelowtop+netgain) = segrb(1,ibelowtop)
+ segrb(2,ibelowtop+netgain) =
+ * nolev+segal(iacctype,2,nsegal(iacctype))
+ ksegrb(ibelowtop+netgain) = ksegrb(ibelowtop)
+ do 12 isegrb = ibelowtop+1 , nsegrb
+ segrb(1,isegrb+netgain) = segrb(1,isegrb)
+ segrb(2,isegrb+netgain) = segrb(2,isegrb)
+ ksegrb(isegrb+netgain) = ksegrb(isegrb)
+12 continue
+ end if
+c
+c Insert new segments
+c
+ do 8 isega = 1 , nsegal(iacctype)-1
+ segrb(1,ibelowbot+isega) = shift+segal(iacctype,1,isega)
+ segrb(2,ibelowbot+isega) = nolev+segal(iacctype,2,isega)
+ if (mainnote) then
+ ksegrb(ibelowbot+isega) = 0
+ else
+ ksegrb(ibelowbot+isega) = micrd(iwa)
+ end if
+8 continue
+c
+c Update number of barrier segments
+c
+ nsegrb = nsegrb+netgain
+cc
+cc Temporary printout for boundary segments as built up
+cc
+c write(15,'()')
+c write(15,'(a/(2f8.2,i5))')' y x kseg',
+c * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb)
+c write(15,'(a/(2i5))')' micrd isetshft',
+c * (micrd(iwa1),isetshft(iwa1),iwa1=1,iwa)
+cc
+1 continue ! next accidental
+ if (lasttime .and. .not.twooftwo) then
+c
+c This is the final call on the pre-ask pass, so compute left-shift rqmt.
+c
+ icashft = nint(-20*shiftmin)
+ end if
+cc
+cc Temporary printout for boundary segments
+cc
+c if (twooftwo) then
+c write(15,'()')
+c write(15,'(a/(2f8.2,i5))')' y x kseg',
+c * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb)
+c write(15,'(a/(2i5))')' micrd isetshft',
+c * (micrd(iwa),isetshft(iwa),iwa=1,naccid)
+c end if
+cc
+ return
+ end
+ subroutine crdaccs(nacc,ipl,irest,naccid,kicrd,nolevm,
+ * levmaxacc,levminacc,icrdot0,twooftwo,icashft)
+c
+c nacc = accidental bitmap for main note
+c naccid = # of accid's in chord
+c kicrd = array with icrd #'s for notes w/ acc's, 0=>main note
+c nolevm = level of main note
+c
+c This is called once per multi-accidental chord. In here, loop over all
+c permutations of the order of accidental as stored in kicrd. Each time thru
+c loop, call crdacc once, get rms shift. Only save permutation and rms value
+c if it is less than old value.
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+c
+c Make consistent? 120106
+c integer*4 kicrd(7),iperm(7),micrd(10),ipermsav(7),ksegrb0(50)
+ integer*4 kicrd(10),iperm(7),micrd(10),ipermsav(7),ksegrb0(50)
+ real*4 segrb0(2,50)
+ logical btest,tagged,manual,lshift,twooftwo
+cc
+cc Temporary printout of level-rankings
+cc
+c write(15,'()')
+c do 98 iacc = 1 , naccid
+c if (kicrd(iacc) .eq. 0) then
+c write(15,'(3i5)')nolevm,icrdot0
+c else
+c write(15,'(2i5)')igetbits(icrdat(kicrd(iacc)),7,12),
+c * igetbits(icrdot(kicrd(iacc)),3,27)
+c end if
+c98 continue
+cc
+c
+c Initialize right-barrier
+c
+ segrb0(1,1) = 0.
+ segrb0(2,1) = -1000.
+ segrb0(1,2) = 0.
+ segrb0(2,2) = 1000.
+ nsegrb0 = 2
+ ksegrb0(1) = -1
+ ksegrb0(2) = -1
+c
+c Search for left-shifted notes, Make up the initial right-barrier, which
+c will be good for all permutations.
+c irest()(27) is set if any notes are left-shifted
+c Must use ALL chord notes, not just ones w/ accid's.
+c
+ if (btest(irest,27)) then
+ do 15 icrd = icrd1-1, icrd2
+ if (icrd .eq. icrd1-1) then
+c
+c Main note
+c
+c lshift = btest(ipl,8)
+ lshift = btest(ipl,8) .or. btest(nacc,31)
+ if (lshift) nolev = nolevm
+ else
+c
+c Chord note
+c
+ lshift = btest(icrdat(icrd),23)
+c if (lshift) nolev = igetbits(icrdat(icrd),7,12)
+ if (lshift) then
+ nolev = igetbits(icrdat(icrd),7,12)
+ if (btest(nacc,31) .and. nolev.eq.nolevm+1) then
+c
+c This note is not really shifted, It is the upper of a 2nd with the main
+c note on an upstem, and Main note must be shifted.
+c nacc(31) signals the real truth.
+c
+ lshift = .false.
+ end if
+ end if
+ end if
+ if (lshift) then
+ do 16 isegrb = 1 , nsegrb0-1
+ if (segrb0(2,isegrb+1) .gt. nolev-1) then
+c
+c Add this notehead to the right boundary here. Move all higher segs up 2.
+c
+ do 17 iiseg = nsegrb0 , isegrb+1 , -1
+ segrb0(1,iiseg+2) = segrb0(1,iiseg)
+ segrb0(2,iiseg+2) = segrb0(2,iiseg)
+ ksegrb0(iiseg+2) = ksegrb0(iiseg)
+17 continue
+ go to 18
+ end if
+16 continue
+18 continue
+c
+c Insert notehead into list. Set kseg=-2 to signal notehead shift.
+c
+ iiseg = isegrb+1
+ segrb0(1,iiseg) = -1.2
+ segrb0(2,iiseg) = nolev-1.
+ ksegrb0(iiseg) = -2
+ segrb0(1,iiseg+1) = 0.
+ segrb0(2,iiseg+1) = nolev+1.
+ ksegrb0(iiseg+1) = -1
+ nsegrb0 = nsegrb0+2
+ end if
+15 continue
+ end if
+c
+c Done setting right barrier for left-shifted noteheads
+c
+ tagged = .false.
+ manual = .false.
+c
+c Preprocess to check for manual shifts.
+c If are manual main [nacc(10-16)] or chord note [icrdot(20-26)]shifts, then
+c If any manual shift is preceded by "A" [nacc(29), icrdat(29)] then
+c 1. Auto-shifting proceeds
+c 2. "A"-shifts add to autoshifts
+c 3. non-"A" shifts are ignored!
+c Else (>0 man shifts, none has "A")
+c No auto-ordering, No autoshifts, Observe all manual shifts.
+c End if
+c End if
+c
+ maxmanshft = 0
+ do 13 i = 1 , naccid
+ if (kicrd(i) .eq. 0) then
+c
+c Main note
+c
+ manshft = igetbits(nacc,7,10)
+ if (manshft .ne. 0) then
+ manual = .true.
+ if (btest(nacc,29)) then
+ tagged = .true.
+ else
+c maxmanshft = max(maxmanshft,64-manshft)
+ maxmanshft = max(maxmanshft,107-manshft)
+ end if
+ end if
+ else
+c
+c Chord note
+c
+ manshft = igetbits(icrdot(kicrd(i)),7,20)
+ if (manshft .ne. 0) then
+ manual = .true.
+ if (btest(icrdat(kicrd(i)),29)) then
+ tagged = .true.
+ else
+c maxmanshft = max(maxmanshft,64-manshft)
+ maxmanshft = max(maxmanshft,107-manshft)
+ end if
+ end if
+ end if
+13 continue
+ if (manual) then
+ if (tagged) then
+c
+c zero out all untagged shifts
+c
+ do 14 i = 1 , naccid
+ if (kicrd(i) .eq. 0) then
+ if (.not.btest(nacc,29)) call setbits (nacc,7,10,0)
+ else
+ if (.not.btest(icrdat(kicrd(i)),29))
+ * call setbits (icrdot(kicrd(i)),7,20,0)
+ end if
+14 continue
+ else
+c
+c There are manual shifts but none tagged. Only proceed if "Ao" was entered
+c
+ if (.not.btest(nacc,28)) then
+ icashft = maxmanshft
+ return
+ end if
+ end if
+ end if
+ if (btest(nacc,28)) then
+c
+c Take the accidentals in order as originally input, then exit.
+c
+ call crdacc(nacc,naccid,kicrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+c end if
+ else if (naccid .eq. 3) then
+c
+c Special treatment if 3 accidentals in chord. If there aren't accids on a 2nd
+c then place in order top, bottom, middle.
+c
+ do 20 i = 1 , 3
+ if (kicrd(i) .eq. 0) then
+ irank = icrdot0
+ nolev = nolevm
+ else
+ irank = igetbits(icrdot(kicrd(i)),3,27)
+ nolev = igetbits(icrdat(kicrd(i)),7,12)
+ end if
+ if (irank .eq. 1 ) then
+ micrd(1) = kicrd(i)
+ else
+ micrd(5-irank) = kicrd(i)
+ end if
+ if (irank .eq. 2) then
+ levmidacc = nolev
+ end if
+20 continue
+ if (levmaxacc.ne.levmidacc+1 .and.
+ * levmidacc.ne.levminacc+1) then
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+ end if
+ end if
+ rmsmin = 100000.
+c
+c Initialize permutation array
+c
+ do 7 i = 1 , naccid
+ iperm(i) = i
+7 continue
+c
+c Start looping over permutations
+c
+ do 8 ip = 1 , 5041
+ if (ip .ne. 1) then
+c
+c Work the magic algorithm to get the next permutation
+c
+ do 1 k = naccid-1 , 1 , -1
+ if (iperm(k) .le. iperm(k+1)) go to 2
+1 continue
+c
+c If here, we just got the last permutation, so exit the loop over permutations
+c
+ go to 10
+2 continue
+ do 3 j = naccid , 1 , -1
+ if (iperm(k) .le. iperm(j)) go to 4
+3 continue
+4 continue
+ it = iperm(j)
+ iperm(j) = iperm(k)
+ iperm(k) = it
+ is = k+1
+ do 5 ir = naccid , 1 , -1
+ if (ir .le. is) go to 6
+ it = iperm(ir)
+ iperm(ir) = iperm(is)
+ iperm(is) = it
+ is = is+1
+5 continue
+6 continue
+ end if
+c
+c New we have a permutation. Take icrd values out of kicrd and put them into
+c micrd in the order of the permutation
+c
+ do 9 i = 1 , naccid
+ micrd(i) = kicrd(iperm(i))
+9 continue
+cc
+cc Temporary printout
+cc
+c write(15,'(/a6,10i3)')'perm:',(iperm(i),i=1,naccid)
+cc
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.false.,
+ * levmaxacc,icrdot0,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+cc
+cc Temporary printout
+cc
+c write(15,*)'perm done, rmsshift:',rmsshift
+cc
+ if (rmsshift .lt. rmsmin) then
+c
+c Save this permutation, reset minrms
+c
+ do 11 i = 1 , naccid
+ ipermsav(i) = iperm(i)
+ rmsmin = rmsshift
+11 continue
+ end if
+8 continue
+ print*,'Should not BEEEEEE here!'
+ call stop1()
+10 continue
+c
+c Done looping, get info for the final choice
+c
+ do 12 i = 1 , naccid
+ micrd(i) = kicrd(ipermsav(i))
+12 continue
+cc
+cc Temporary printout
+cc
+c write(15,'(/a6,10i3)')'Final perm:',(ipermsav(i),i=1,naccid)
+cc
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+ end
+ subroutine doacc(ihshft,ivshft,notexq,lnote,nacc,nolev,ncm,caut)
+ character*1 sq,chax
+ character*3 acsymq
+ character*8 noteq
+ character*79 notexq
+ logical btest,caut
+ sq = chax(92)
+ if (ihshft .eq. -107) ihshft=0
+cc
+cc If main note shifted left, so shift accid. Terminate below, when acc. is done.
+cc
+ if (ihshft .ne. 0) then
+c
+c Accid must be shifted horizontally
+c
+ if (ihshft .lt. 0) then
+ notexq = sq//'loffset{'
+ ihshft = -ihshft
+ else
+ notexq = sq//'roffset{'
+ end if
+ hshft = .05*ihshft
+ if (hshft .lt. 1.) then
+ write(notexq(10:12),'(f3.2)')hshft
+ lnote = 12
+ else
+ write(notexq(10:13),'(f4.2)')hshft
+ lnote = 13
+ end if
+ notexq = notexq(1:lnote)//'}{'//sq
+ lnote = lnote+3
+ else
+ notexq = sq
+ lnote = 1
+ end if
+ if (btest(nacc,3)) then
+ notexq = notexq(1:lnote)//'big'
+ lnote = lnote+3
+ end if
+ if (caut) then
+c
+c Cautionary accidental. Need to define bigcna,... in pmx.tex
+c
+ notexq = notexq(1:lnote)//'c'
+ lnote = lnote+1
+ end if
+ call accsym(nacc,acsymq,lacc)
+ notexq = notexq(1:lnote)//acsymq(1:lacc)
+ lnote = lnote+lacc
+ noleva = nolev
+ if (ivshft .ne. 0) noleva = noleva+ivshft-32
+ call notefq(noteq,lnoten,noleva,ncm)
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihshft .ne. 0) then
+c
+c Terminate horizontal shift
+c
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ return
+ end
+ subroutine docrd(ivx,ip,nodu,ncm,iv,tnow,soutq,lsout,ulq,ibmcnt,
+ * islur,nvmx,nv,beamon,nolevm,ihornb,nornb,stemlen,
+ * dotxtup,nacc)
+ parameter (nm=24,mv=24576)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ logical lowdot,dotxtup
+ integer*4 ihornb(nm,24),nornb(nm)
+ character*1 ulq(nm,9),chax
+ character*7 nosymq
+ character*8 noteq
+ character*79 notexq,outq
+ character*80 soutq
+ logical btest,isleft,isright,beamon
+ character*79 inameq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+c
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c
+c This subr. once produced notexq for entire chord. 10/18/97 altered to write
+c chord notes as we go. 10/22/97 find range of icrd first.
+c 2/25/98 moved rangefinding to precrd so done before slurs, so now
+c on entry, icrd1, icrd2 define range of icrd for this chord.
+c
+c Set counter (for this note) for chord notes present. Set notmain=T.
+c Will test for notmain=.true. in addmidi to tell whether to save pitch.
+c
+ nmidcrd = 0
+ notmain = .true.
+ crdacc = .false.
+ do 5 icrd = icrd1 , icrd2
+ lnote = 0
+ nolev = igetbits(icrdat(icrd),7,12)
+c
+c 3/8/03 save original pitch to use in midi, in case 2nds alter things.
+c
+ nolevo = nolev
+c
+c Check for special situations with 2nds (see precrd).
+c
+ if (btest(nacc,30)) then
+ if (nolev .eq. nolevm-1) nolev = nolevm
+ else if (btest(nacc,31)) then
+ if (nolev .eq. nolevm+1) nolev = nolevm
+ end if
+c
+c Lower dot for lower-voice notes?. Conditions are:
+c 1. Dotted time value
+c 2. Lower voice of two
+c 3. Note is on a line
+c 4. Not a rest (cannot be a rest in a chord!)
+c. 5. Flag (lowdot) is set to true
+c
+ if (lowdot .and. nvmx.eq.2 .and. ivx.le.nv) then
+ if (2**log2(nodu).ne.nodu .and. mod(nolev-ncm,2).eq.0) then
+ if (btest(icrdat(icrd),26)) then
+c
+c Note already in movdot list. Drop by 2.
+c
+ call setbits(icrdot(icrd),7,0,
+ * igetbits(icrdot(icrd),7,0)-20)
+ else
+c
+c Not in list so just move it right now
+c
+ call dotmov(-2.,0.,soutq,lsout,igetbits(islur,1,3))
+ end if
+ end if
+ end if
+ if (btest(icrdat(icrd),26)) then
+c
+c Move the dot.
+c
+ updotc = 0.1*(iand(127,icrdot(icrd))-64)
+ rtdotc = 0.1*(iand(127,ishft(icrdot(icrd),-7))-64)
+ call dotmov(updotc,rtdotc,soutq,lsout,igetbits(islur,1,3))
+ end if
+ isleft = btest(icrdat(icrd),23)
+ isright = btest(icrdat(icrd),24)
+c
+c Check for ornament in chord.
+c
+ if (icrdorn(icrd) .gt. 0) then
+ call putorn(icrdorn(icrd),nolev,nolevm,nodu,nornb,ulq,
+ * ibmcnt,ivx,ncm,islur,nvmx,nv,ihornb,stemlen,outq,lout,
+ * ip,0,beamon,.true.)
+c
+c subroutin putorn(iornq,nolev,nolevm,nodur,nornb,ulq,ibmcnt,ivx,
+c * ncm,islur,nvmx,nv,ihornb,stemlen,outq,lout,ip,islhgt,
+c * notcrd,beamon,iscrd)
+c
+ call addstr(outq,lout,soutq,lsout)
+ end if
+c
+c Chord-note symbol. First check for breve
+c
+ if (nodu .eq. 128) then
+ nosymq = chax(92)//'zbreve'
+ lsym = 7
+ else
+c
+c Not a breve chord. Get first letters in chord-note symbol
+c
+ if (isleft) then
+ nosymq = chax(92)//'l'
+ else if (isright) then
+ nosymq = chax(92)//'r'
+ else
+ nosymq = chax(92)//'z'
+ end if
+ if (nodu .ge. 64) then
+ nosymq = nosymq(1:2)//'w'
+ else if (nodu .ge. 32) then
+ nosymq = nosymq(1:2)//'h'
+ else
+ nosymq = nosymq(1:2)//'q'
+ end if
+ if (2**log2(nodu).eq.nodu .and. .not.dotxtup) then
+ lsym = 3
+ else if (.not.btest(islur,3) .or. dotxtup) then
+c
+c Single dot
+c
+ nosymq = nosymq(1:3)//'p'
+ lsym = 4
+ else
+c
+c Double dot
+c
+ nosymq = nosymq(1:3)//'pp'
+ lsym = 5
+ end if
+ end if
+ if (btest(icrdat(icrd),19).and..not.btest(icrdat(icrd),27)) then
+c
+c Accidental and not MIDI-only. Build up bits 0-3 of nacc
+c
+ nactmp = igetbits(icrdat(icrd),3,20)
+c
+c Kluge for bigness. Only means 'As' has not been issued
+c
+ if (bacfac .ne. 1.e6) nactmp = nactmp+8
+ call doacc(igetbits(icrdot(icrd),7,20)-107,
+ * igetbits(icrdot(icrd),6,14),
+c * notexq,lnote,nactmp,nolev,ncmid(iv,ip))
+c Get original nolev, not altered to deal with 2nds
+ * notexq,lnote,nactmp,igetbits(icrdat(icrd),7,12),
+c * ncmid(iv,ip))
+ * ncmid(iv,ip),btest(icrdat(icrd),31))
+ notexq = notexq(1:lnote)//nosymq
+ crdacc = .true.
+ else
+ notexq = nosymq
+ end if
+ lnote = lnote+lsym
+c
+c Get note name (again if accid, due to possible octave jump)
+c
+ call notefq(noteq,lnoten,nolev,ncm)
+ if (lnoten.eq.1) call addblank(noteq,lnoten)
+c
+c Put in note name
+c
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ if (btest(icrdat(icrd),25)) then
+c
+c Arpeggio signal
+c
+c call putarp(tnow,iv,ip,nolev,ncm,soutq,lsout)
+ call putarp(tnow,ivx,ip,nolev,ncm,soutq,lsout)
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ if (ismidi) then
+c
+c Here is where we collect MIDI pitch info for the chord note. By checking
+c notmain, addmidi(...) knows to just compute the
+c pitch number and store it in mcpitch(nmidcrd). Then on call to addmidi()
+c for MAIN note, will put in note codes for all chord notes + main note.
+c
+ kv = 1
+ if (ivx .gt. iv) kv=2
+ nmidcrd = nmidcrd+1
+ if (nmidcrd .gt. 20) then
+ print*
+ print*,'21 chord notes is too many for midi processor'
+ call stop1()
+ end if
+c
+c Use original saved pitch level, unaltered by 2nds logic.
+c
+c call addmidi(midchan(iv,kv),nolevo,
+ call addmidi(midchan(iv,kv),nolevo-iTransAmt(instno(iv)),
+ * igetbits(icrdat(icrd),3,20),isig,1.,.false.,.false.)
+ end if
+5 continue
+ notmain = .false.
+ return
+ end
+ subroutine dodyn(ivx,ip,nolev,ncm,ipl,islur,irest,nvmx,nv,
+ * beamon,ihornb,nornb,ulq,ibmcnt,nostem,soutq,lsout)
+ parameter (nm=24)
+c
+c Inputs are array *elements* except ihornb,nornb,ulq
+c
+ common /commus/ musize,whead20
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ logical btest,beamon,upstem,nostem
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical fontslur,upslur,WrotePsslurDefaults
+ character*1 udqq,chax,ulq(nm,9)
+ character*4 dynstrq
+ character*5 numpq
+ character*48 dyntablq,tempq
+ character*79 notexq
+ character*80 soutq
+ integer*4 ihornb(nm,24),nornb(nm),idynn(10)
+ data dyntablq /'ppppppp pp p mp mf f fp sfz ff fff ffff'/
+ numdyn = 0
+c
+c Find dynamics for (ivx,ip) in list. May be as many as 4. Store idyn values
+c in idynn(1...4)
+c
+ do 1 idyn = 1 , ndyn
+c ivxtent = iand(idyndat(idyn),15)
+ ivxtent = iand(idyndat(idyn),15)
+ * +16*igetbits(idynda2(idyn),1,10)
+ if (ivxtent .eq. ivx) then
+ iptent = igetbits(idyndat(idyn),8,4)
+ if (iptent .eq. ip) then
+ numdyn = numdyn+1
+ idynn(numdyn) = idyn
+ else if (iptent .gt. ip) then
+c
+c I don't think there are any more possible for this ivx,ip, so exit loop
+c
+ go to 2
+ end if
+c else if (ivxtent .gt. ivx) then
+c go to 2
+ end if
+1 continue
+2 continue
+c
+c At this point there is a list of idyn's in idynn(1...numdyn)
+c Compute level, and stem-dir'n-based horizontal tweaks
+c
+ hoffsd = 0.
+c
+c Set upstem to false as default
+c
+ upstem = .false.
+ if (btest(irest,0)) then
+c
+c It's a rest. Assume it doesn't go below the staff
+c
+ lbot = ncm-4
+ else if (.not.beamon) then
+ if (udqq(nolev,ncm,islur,nvmx,ivx,nv).eq.'u' .or. nostem) then
+ upstem = .true.
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-1,ncm-4)
+ else
+ lbot = min(minlev-1,ncm-4)
+ end if
+ else
+ hoffsd = -.5
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-7,ncm-4)
+ else
+ lbot = min(minlev-7,ncm-4)
+ end if
+ end if
+ else
+ if (ulq(ivx,ibmcnt) .eq. 'u') then
+ upstem = .true.
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-1,ncm-4)
+ else
+ lbot = min(minlev-1,ncm-4)
+ end if
+ else
+ hoffsd = -.5
+ lbot = ihornb(ivx,nornb(ivx))+1
+ if (lbot .eq. 1) then
+c
+c Kluge for non-beamed, down xtup, for which ihorb was never set.
+c Assumes stem is shortened.
+c
+ lbot = nolev-5
+ end if
+ nornb(ivx) = nornb(ivx)+1
+ end if
+ end if
+ lbot = lbot-5
+ jtxtdyn1 = 1
+c
+c Now ready to loop over current dyn's
+c
+ do 3 icntdyn = 1 , numdyn
+ idynd = idyndat(idynn(icntdyn))
+ idynd2 = idynda2(idynn(icntdyn))
+ idno = igetbits(idynd,4,12)
+c ivx = iand(15,idynd)
+ ivx = iand(15,idynd)+16*igetbits(idynd2,1,10)
+c
+c Build the command into notex in stages. Insert name & rq'd args in order:
+c
+c Command name
+c hpstrt, hpcend, hpdend, pmxdyn
+c ivx
+c X X X
+c level
+c X X X
+c hoff
+c X X X X
+c d-mark
+c X
+c
+ if (idno .eq. 0) then
+c
+c Text-dynamic
+c
+ notexq = chax(92)//'txtdyn'
+ lnote = 7
+ else if (idno .le. 12) then
+c
+c Letter-group
+c
+ notexq = chax(92)//'pmxdyn'
+ lnote = 7
+ else if (fontslur) then
+ lnote = 7
+ if (idno .eq. 13) then
+c
+c Start a hairpin
+c
+ notexq = chax(92)//'hpstrt'
+ else if (idno .eq. 14) then
+c
+c End crescendo
+c
+ notexq = chax(92)//'hpcend'
+ else
+c
+c End decrescendo
+c
+ notexq = chax(92)//'hpdend'
+ end if
+ else
+c
+c Postscript hairpins
+c
+ lnote = 7
+ if (idno .eq. 13) then
+ notexq = chax(92)//'Icresc'
+ else if (idno .eq.14) then
+ notexq = chax(92)//'Idecresc'
+ lnote = 9
+ else
+ notexq = chax(92)//'Tcresc'
+ end if
+ end if
+ if (idno .ge. 13) then
+c
+c Put in voice number
+c
+ if (ivx .le. 9) then
+ notexq = notexq(1:lnote)//char(48+ivx)
+ lnote = lnote+1
+ else if (ivx .le. 19) then
+ notexq = notexq(1:lnote)//'{1'//char(38+ivx)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//char(28+ivx)//'}'
+ lnote = lnote+4
+ end if
+ end if
+c
+c Begin setting level
+c
+ lbot1 = lbot
+ if (idno.gt.0 .and. idno.le.5) then
+c
+c All letters are short so raise a bit.
+c
+ lbot1 = lbot1+1
+ else if (idno .ge. 13) then
+ lbot1 = lbot1+2
+ end if
+c
+c Convert so reference is bottom line
+c
+ lbot1 = lbot1-ncm+4
+ if ((fontslur.and.idno.eq.13) .or.
+ * ((.not.fontslur).and.(idno.eq.13.or.idno.eq.14))) then
+c
+c Hairpin start. Save level and user-tweak before applying user tweak.
+c
+ levdsav(ivx) = lbot1
+ levhssav(ivx) = 0
+ if (btest(idynd,16)) levhssav(ivx) = -64+igetbits(idynd,7,17)
+ else if ((fontslur.and.idno.ge.14) .or. idno.eq.15) then
+c
+c Hairpin end; Compare level with saved start level before user-tweaks
+c
+ lbot1 = min(lbot1,levdsav(ivx))
+c
+c Save pre-tweak level
+c
+ lpretweak = lbot1
+ end if
+c
+c Check for user-defined vertical tweak
+c
+ if (btest(idynd,16)) lbot1 = lbot1-64+igetbits(idynd,7,17)
+c
+c Now horizontal stuff
+c
+ hoff = hoffsd
+c
+c Some special horizontal tweaks
+c
+ if (upstem .and. idno.gt.0 .and.
+ * (idno.le.4 .or. idno.eq.8 .or. idno.eq.9)) hoff = hoff+.4
+c
+c User-defined tweaks
+c
+ if (btest(idynd2,0))
+ * hoff = hoff+(igetbits(idynd2,9,1)-256)*.1
+ if (numdyn .gt. 1) then
+c
+c Horizontal-interaction-based tweaks.
+c
+c Cases:
+c numdyn type1 type2 type3 data used
+c 2 wrd-grp hrpnstrt - ivowg(1...12),hoh1(1...12)
+c 2 hrpnend wrd-grp - ivowg,hoh2
+c 2 hrpnend hrpnstrt - hoh2h1(1...2)
+c 3 hrpnend wrd-grp hrpnstrt ivowg,hoh2,hoh1
+c
+ if (idno.gt.0 .and. idno.le.12) then
+c
+c Word-group, may need vertical tweak to line up.
+c
+ lbot1 = lbot1+ivowg(idno)
+c
+c Protecting against hp start-stop on same note
+c
+ else if (((fontslur.and.idno.ge.14).or.idno.eq.15)
+ * .and. icntdyn.lt.numdyn) then
+c
+c Hairpin ending, check next type
+c
+ if ((fontslur .and.
+ * igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.13)
+ * .or. (.not.fontslur .and.
+ * ((igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.13)
+ * .or.
+ * (igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.14))))
+ * then
+c
+c Hairpin end then hairpin start, no words, (remember dealing with end now)
+c
+ hoff = hoff+hoh2h1(1)
+ else
+c
+c Hairpin end then word-group, need idno for w-g to set hp offset
+c
+ hoff = hoff +
+ * hoh2(igetbits(idyndat(idynn(icntdyn+1)),4,12))
+ end if
+c
+c Protecting against hp start-stop on same note
+c
+ else if (icntdyn.gt.1 .and. idno.gt.0 .and.
+ * ((fontslur.and.idno.lt.14).or.
+ * (.not.fontslur.and.idno.lt.15))) then
+c
+c Hairpin start, check prior type
+c
+ if ((fontslur.and.
+ * igetbits(idyndat(idynn(icntdyn-1)),4,12).ge.14)
+ * .or.
+ * (.not.fontslur.and.
+ * igetbits(idyndat(idynn(icntdyn-1)),4,12).eq.15))
+ * then
+c
+c Hairpin end then hairpin start, (remember dealing with start now)
+c
+ hoff = hoff+hoh2h1(2)
+ else
+c
+c Hairpin start after word-group, need idno for w-g to set hp offset
+c
+ hoff = hoff+
+ * hoh1(igetbits(idyndat(idynn(icntdyn-1)),4,12))
+ end if
+ end if
+ end if
+c
+c End of if-block for 2- or 3-way interactions.
+c
+ if ((.not.fontslur) .and. idno.ge.13)
+c
+c Slur font and hairpin. Add hoff, and change from \interneote to \qn@width
+c
+ * hoff = (hoff+.5)*6./2.5
+c
+c Position corrections all done now. Put in the level.
+c
+ if ((fontslur.and.idno.eq.13) .or.
+ * ((.not.fontslur).and.(idno.eq.13.or.idno.eq.14))) then
+c
+c Hairpin start.
+c
+ if (.not.fontslur) then
+c
+c Postscript hairpin start...inset placeholder for start level.
+
+ notexq = notexq(1:lnote)//'{ }'
+ lnote = lnote+5
+ end if
+ else
+c
+c Insert actual level in all cases except hairpin start
+c Create string with level in it
+c
+ if (lbot1 .gt. 9) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else if (lbot1 .gt. -1) then
+ numpq = char(48+lbot1)
+ lnumpq = 1
+ else if (lbot1 .gt. -10) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else
+ numpq = '{'
+ write(numpq(2:4),'(i3)')lbot1
+ numpq = numpq(1:4)//'}'
+ lnumpq = 5
+ end if
+c
+c Level has now been computed and stored in numpq
+c Append the level
+c
+ notexq = notexq(1:lnote)//numpq(1:lnumpq)
+ lnote = lnote+lnumpq
+ end if
+ if (abs(hoff) .lt. .001) then
+c
+c No horiz offset
+c
+ notexq = notexq(1:lnote)//'0'
+ lnote = lnote+1
+ else
+c
+c Horizontal tweak
+c
+ lform = lfmt1(hoff)
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')hoff
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ if (idno .eq. 0) then
+c
+c text-dynamic. Find the string and append it
+c
+ do 4 jtxtdyn = jtxtdyn1 , ntxtdyn
+c ivxip = ivx+16*ip
+ ivxip = ivx+32*ip
+ if (ivxip .eq. ivxiptxt(jtxtdyn)) go to 5
+4 continue
+ call printl('Abnormal stop in putdyn')
+ call stop1()
+5 continue
+ ltxtdyn = lenstr(txtdynq(jtxtdyn),128)
+c
+c Font size based on musicsize
+c
+ if (musize .eq. 20) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'medtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ else if (musize .eq. 16) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'normtype'
+ * //char(92)//'it '
+ lnote = lnote+14
+ else if (musize .eq. 24) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'bigtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ else if (musize .eq. 29) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'Bigtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ end if
+ notexq = notexq(1:lnote)//txtdynq(jtxtdyn)(1:ltxtdyn)
+ * //'}'
+ lnote = lnote+ltxtdyn+1
+c
+c Reset jtxtdyn1 just in case >1 txtdyn on same note.
+c
+ jtxtdyn1 = jtxtdyn+1
+ else if (idno .le. 12) then
+c
+c Letter-group dynamic. Append the letter-group command
+c
+ id = 4*idno
+ dynstrq = dyntablq(id-3:id)
+ id = lenstr(dynstrq,4)
+ notexq = notexq(1:lnote)//chax(92)//dynstrq(1:id)
+ lnote = lnote+1+id
+ end if
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+ if ((.not.fontslur).and.idno.eq.15) then
+c
+c PS slurs on, hairpin is ending. Go back and set height at beginning.
+c Add user-defined tweak to default level
+c
+ lbot1 = lpretweak+levhssav(ivx)
+ if (lbot1 .gt. 9) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else if (lbot1 .gt. -1) then
+ numpq = char(48+lbot1)
+ lnumpq = 1
+ else if (lbot1 .gt. -10) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else
+ numpq = '{'
+ write(numpq(2:4),'(i3)')lbot1
+ numpq = numpq(1:4)//'}'
+ lnumpq = 5
+ end if
+c
+c Construct string to search backwards for placeholder
+c
+ if (ivx .le. 9) then
+ tempq = 'cresc'//char(48+ivx)//'{ }'
+ ltemp = 11
+ else if (ivx .le. 19) then
+ tempq = 'cresc'//'{1'//char(38+ivx)//'}{ }'
+ ltemp = 14
+ else
+ tempq = 'cresc'//'{2'//char(28+ivx)//'}{ }'
+ ltemp = 14
+ end if
+ write(11,'(a)')soutq(1:lsout)//'%'
+ lsout = 0
+ call backfill(11,tempq,ltemp,
+ * tempq(1:ltemp-5)//numpq(1:lnumpq),ltemp-5+lnumpq)
+ end if
+3 continue
+c
+c Shrink arrays, decrease ndyn 111109
+c
+ do 6 icntdyn = numdyn, 1 , -1
+ do 7 jdyn = idynn(icntdyn) , ndyn-1
+ idyndat(jdyn) = idyndat(jdyn+1)
+ idynda2(jdyn) = idynda2(jdyn+1)
+7 continue
+ ndyn = ndyn-1
+6 continue
+ end
+ subroutine dograce(ivx,ip,ptgr,soutq,lsout,ncm,nacc,ig,ipl,
+ * farend,
+ * beamon,nolev,ncmidx,islur,nvmx,nv,ibmcnt,tnote,ulq)
+c
+c ip will be one LESS than current note, for way-after's before bar-end,
+c It is only used to find ig.
+c ig is returned to makeabar in case there's a slur that needs to be ended
+c
+ parameter (nm=24)
+ logical beamon,stemup
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comoct/ noctup
+ logical upg,slurg,slashg,bar1syst,upslur,btest,isgaft,iswaft,
+ * normsp,farend,fontslur,WrotePsslurDefaults
+ real*4 ptgr(37)
+ character*80 soutq
+ character*128 litq
+ character*79 notexq
+ character*20 voltxtq
+ character*10 figq
+ character*8 noteq,noteqGA
+ character*3 acsymq
+ character*1 sq,chax,udqq,ulq(nm,9)
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ sq = chax(92)
+ isgaft = btest(ipl,29)
+ iswaft = btest(ipl,31)
+ normsp = .not. isgaft
+c
+c Find ig.
+c
+ do 120 ig = 1 , ngrace
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 121
+120 continue
+ print*,'Problem finding grace index in dograce'
+ stop
+121 continue
+ ngs = ngstrt(ig)
+ mg = multg(ig)
+ wheadpt1 = wheadpt*fullsize(ivx)
+c
+c For way-after-graces at end of bar, must set the octave.
+c
+ if (farend) then
+ noctup = 0
+ if (ncm .eq.23) noctup = -2
+ end if
+ if (slurg(ig) .and. .not.iswaft .and..not.isgaft) then
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You defined the twentyfifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You defined the twentyfifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Slur on fore-grace. Get index of next slur not in use, from 23 down.
+c
+ ndxslur = log2(16777215-listslur)
+
+ end if
+ if (nng(ig) .eq. 1) then
+c
+c Single grace.
+c
+ if (normsp) then
+c
+c Anything but GA
+c
+ call addstr(sq//'shlft',6,soutq,lsout)
+ niptgr = nint(ptgr(ig))
+c
+c Empirical tweak for postscript.
+c
+C if (.not.fontslur) niptgr = niptgr+nint(wheadpt*.3)
+c++
+ if (niptgr .lt. 10) then
+ call addstr(chax(48+niptgr)//'{',2,soutq,lsout)
+ else if (niptgr .lt. 100) then
+ write(notexq(1:2),'(i2)')niptgr
+ call addstr('{'//notexq(1:2)//'}{',5,soutq,lsout)
+ else
+ print*,
+ * 'Call Dr. Don if you really want grace note group > 99 pt'
+ stop
+ end if
+ else
+ call addstr(sq//'gaft{1.5}{',11,soutq,lsout)
+c
+c GA. Compute aftshft, for later use.
+c
+ aftshft = grafac
+ if (naccg(ngstrt(ig)).gt.0) aftshft = aftshft+agc1fac
+ aftshft = aftshft*wheadpt
+ end if
+ if (slurg(ig) .and. .not.isgaft .and..not.iswaft) then
+c
+c Start slur on pre-grace. No accounting needed since will be ended very soon.
+c
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (fontslur) then
+ if (upg(ig)) then
+ call addstr(sq//'islurd',7,soutq,lsout)
+ else
+ call addstr(sq//'isluru',7,soutq,lsout)
+ end if
+ else
+c
+c Start Postscript slur.
+c
+ if (upg(ig)) then
+ call addstr(sq//'isd',4,soutq,lsout)
+ else
+ call addstr(sq//'isu',4,soutq,lsout)
+ end if
+ end if
+c
+c Print slur number, 23-ndxslur
+c
+ lnote = 0
+ if (23-ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = chax(71-ndxslur)
+ lnote = 1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = '{1'//chax(61-ndxslur)//'}'
+ lnote = 4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = 4
+ end if
+c if (11-ndxslur .lt. 10) then
+c call addstr(chax(59-ndxslur)//noteq(1:lnoten),1+lnoten,
+c * soutq,lsout)
+c else
+c call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten),
+c * 4+lnoten,soutq,lsout)
+c end if
+ call addstr(notexq(1:lnote)//noteq(1:lnoten),
+ * lnote+lnoten,soutq,lsout)
+ if (.not.fontslur) then
+c
+c Horizontal tweaks for postscript slur on single grace
+c
+ stemup = .true.
+ if (upg(ig)) then
+c
+c Check for up-grace + down stem. Get stem direction
+c
+ if (.not.beamon) then
+c
+c Separate note. Get stem direction.
+c
+ stemup = udqq(nolev,ncmidx,
+ * islur,nvmx,ivx,nv) .eq. 'u'
+ else
+c
+c In a beam
+c
+ stemup = ulq(ivx,ibmcnt) .eq. 'u'
+ end if
+c
+c Stop the shift if whole note
+c
+ stemup = stemup .or. tnote.gt.63
+ end if
+ if (stemup) then
+ call addstr('{-.3}',5,soutq,lsout)
+ else
+ call addstr('{-.8}',5,soutq,lsout)
+ end if
+ end if
+ end if
+ if (naccg(ngs) .gt. 0) then
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+c
+c Save for checking octave shifts in GA
+c
+ if (isgaft) then
+ lnotenGA = lnoten
+ noteqGA = noteq
+ end if
+c
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ngs),acsymq,lacc)
+ call addstr(sq//'big'//acsymq(1:lacc)//
+ * noteq(1:lnoten),4+lacc+lnoten,soutq,lsout)
+ end if
+ if (slashg(ig)) then
+ notexq = sq//'grc'
+ lnote = 4
+ else if (mg .eq. 0) then
+ notexq = sq//'zq'
+ lnote = 3
+ else
+ notexq = sq//'zc'
+ do 61 i = 2 , mg
+ notexq = notexq(1:i+1)//'c'
+61 continue
+ lnote = mg+2
+ end if
+ if (upg(ig)) then
+ notexq = notexq(1:lnote)//'u'
+ else
+ notexq = notexq(1:lnote)//'l'
+ end if
+ call addstr(notexq,lnote+1,soutq,lsout)
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+c
+ if (isgaft .and. naccg(ngs).eq.0) then
+ lnotenGA = lnoten
+ noteqGA = noteq
+ end if
+c
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call addstr(noteq,lnoten,soutq,lsout)
+ if (slashg(ig)) call addstr(sq//'off{-'//sq//
+ * 'noteskip}',16,soutq,lsout)
+c
+c Above code needed since slashg causes spacing
+c
+ if (slurg(ig) .and. (iswaft.or.isgaft)) then
+c
+c Terminate slur on single after-grace
+c
+c ndxslur = igetbits(ipl,4,23)
+ ndxslur = igetbits(ipl,5,23)
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ call addstr(sq//'tslur',6,soutq,lsout)
+c
+cc Print 11-ndxslur
+c Print 24-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c call addstr(chax(59-ndxslur)//noteq(1:lnoten),
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),
+ * 1+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ call addstr('{2'//chax(61-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ else
+c call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten),
+ call addstr('{1'//chax(51-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ end if
+ slurg(ig) = .false.
+ listslur = ibclr(listslur,ndxslur)
+ end if
+ call addstr('}',1,soutq,lsout)
+c
+c+++ Try to fix loss of octave with single gaft
+c
+c if (isgaft) call addstr(sq//'zcharnote'//noteq(1:lnoten)//'{~}',
+c * 13+lnoten,soutq,lsout)
+ if (isgaft) then
+ itrans = 0
+ do 1 i = 1 , lnotenGA
+ if (noteqGA(i:i) .eq. chax(39)) then
+ itrans = itrans+7
+ else if (noteqGA(i:i) .eq. chax(96)) then
+ itrans = itrans-7
+ end if
+1 continue
+ if (itrans. eq. -14) then
+ call addstr(sq//'advance'//sq//'transpose-14',21,
+ * soutq,lsout)
+ else if (itrans .eq. -7) then
+ call addstr(sq//'advance'//sq//'transpose-7',20,
+ * soutq,lsout)
+ else if (itrans .eq. 7) then
+ call addstr(sq//'advance'//sq//'transpose7',19,
+ * soutq,lsout)
+ else if (itrans .eq. 14) then
+ call addstr(sq//'advance'//sq//'transpose14',20,
+ * soutq,lsout)
+ end if
+ end if
+ else
+c
+c Multiple grace. Put in literally. Compute beam stuff
+c
+ sumx = 0.
+ sumy = 0.
+ sumxy = 0.
+ sumxx = 0.
+ sumyy = 0.
+ x = 0.
+ do 118 ing = ngs , ngs+nng(ig)-1
+ if (ing.gt.ngs .and. naccg(ing).gt.0) x = x+acgfac
+ y = nolevg(ing)
+ sumx = sumx + x
+ sumy = sumy + y
+ sumxy = sumxy + x*y
+ sumxx = sumxx + x*x
+ sumyy = sumyy + y*y
+ x = x+emgfac
+118 continue
+ delta = nng(ig)*sumxx-sumx*sumx
+ em = (nng(ig)*sumxy-sumx*sumy)/delta
+ islope = nint(0.5*em*gslfac)
+ if (iabs(islope) .gt. 9) islope = isign(9,islope)
+ beta = (sumy-islope/gslfac*sumx)/nng(ig)
+ nolev1 = nint(beta)
+c
+c Back up
+c
+ notexq = sq//'settiny'//sq//'off{'
+ if (normsp) then
+ write(notexq(14:18),'(a1,f4.1)')'-',ptgr(ig)
+ call addstr(notexq(1:18)//'pt}',21,soutq,lsout)
+ finalshift = ptgr(ig)
+ else
+ aftshft = wheadpt*1.33
+ if (naccg(ngstrt(ig)).gt.0) aftshft = aftshft+wheadpt*0.5
+ write(notexq(14:17),'(f4.1)')aftshft
+ call addstr(notexq(1:17)//'pt}'//sq//'bsk',24,soutq,lsout)
+ end if
+c
+c Start the beam
+c
+ notexq = sq//'ib'
+ do 119 ing = 2 , mg
+ notexq = notexq(1:ing+1)//'b'
+119 continue
+ if (upg(ig)) then
+ notexq = notexq(1:mg+2)//'u'
+ else
+ notexq = notexq(1:mg+2)//'l'
+ end if
+ notexq = notexq(1:mg+3)//'0'
+c
+c Get starting note for beam
+c
+ call notefq(noteq,lnoten,nolev1,ncm)
+ call addstr(notexq(1:mg+4)//noteq(1:lnoten),
+ * mg+4+lnoten,soutq,lsout)
+c
+c Put in the slope
+c
+ if (islope .ge. 0) then
+ call addstr(chax(48+islope),1,soutq,lsout)
+ else
+ call addstr('{-'//chax(48-islope)//'}',4,soutq,lsout)
+ end if
+c
+c Start a slur on multiple fore-grace
+c
+ if (slurg(ig) .and. .not.isgaft .and. .not.iswaft) then
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (fontslur) then
+ if (upg(ig)) then
+ call addstr(sq//'islurd',7,soutq,lsout)
+ else
+ call addstr(sq//'isluru',7,soutq,lsout)
+ end if
+ else
+c
+c Need a tweak for postscript slur
+c
+ if (upg(ig)) then
+ call addstr(sq//'isd',4,soutq,lsout)
+ else
+ call addstr(sq//'isu',4,soutq,lsout)
+ end if
+ end if
+c
+c Print 11-ndxslur
+c
+ if (23-ndxslur .lt. 10) then
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),1+lnoten,
+ * soutq,lsout)
+ else if (23-ndxslur .lt. 2) then
+ call addstr('{1'//chax(61-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ else
+ call addstr('{1'//chax(51-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ end if
+c
+c Put in tweak for postscript slur
+c
+ if (.not.fontslur) call addstr('{-.3}',5,soutq,lsout)
+ end if
+c
+c Put in first note. Call notefq again in case octave changed
+c
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (naccg(ngs) .eq. 0) then
+ notexq = sq//'zqb0'//noteq(1:lnoten)
+ lnote = 5+lnoten
+ else
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ngs),acsymq,lacc)
+ notexq = sq//'big'//acsymq(1:lacc)//noteq(1:lnoten)
+ lnote = 4+lacc+lnoten
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ notexq =notexq(1:lnote)//sq//'zqb0'//noteq(1:lnoten)
+ lnote = lnote+5+lnoten
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ do 127 ing = ngs+1 , ngs+nng(ig)-1
+c
+c Skip
+c
+ ptoff = wheadpt1*emgfac
+ if (naccg(ing).gt.0) ptoff = ptoff+wheadpt1*acgfac
+ if (isgaft .and. .not.iswaft) aftshft = aftshft+ptoff
+ notexq = sq//'off{'
+ write(notexq(6:8),'(f3.1)')ptoff
+ if (normsp) finalshift = finalshift-ptoff
+ call addstr(notexq(1:8)//'pt}',11,soutq,lsout)
+ if (ing .eq. ngs+nng(ig)-1) then
+c
+c Terminate beam if needed
+c
+ if (upg(ig)) then
+ call addstr(sq//'tbu0',5,soutq,lsout)
+ else
+ call addstr(sq//'tbl0',5,soutq,lsout)
+ end if
+c
+c Terminate after slur if needed
+c
+ if ((isgaft.or.iswaft) .and. slurg(ig)) then
+c if (iswaft) ndxslur = igetbits(ipl,4,23)
+ if (iswaft) ndxslur = igetbits(ipl,5,23)
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ call addstr(sq//'tslur',6,soutq,lsout)
+c
+c Print 11-ndxslur
+cc Print 23-ndxslur
+c
+ if (23-ndxslur .lt. 10) then
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),
+ * 1+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ call addstr('{2'//chax(61-ndxslur)//'}'
+ * //noteq(1:lnoten),4+lnoten,soutq,lsout)
+ else
+ call addstr('{1'//chax(51-ndxslur)//'}'
+ * //noteq(1:lnoten),4+lnoten,soutq,lsout)
+ end if
+c
+c Stop slur terminator after exit from this subroutine
+c
+ listslur = ibclr(listslur,ndxslur)
+ slurg(ig) = .false.
+ end if
+ end if
+c
+c Accidental if needed
+c
+ if (naccg(ing).gt.0) then
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ing),acsymq,lacc)
+ call addstr(sq//'big'//acsymq(1:lacc)
+ * //noteq(1:lnoten),4+lacc+lnoten,soutq,lsout)
+ end if
+c
+c Put in the (beamed) grace note
+c
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ call addstr(sq//'zqb0'//noteq(1:lnoten),5+lnoten,
+ * soutq,lsout)
+127 continue
+c
+c Terminate the grace
+c
+c notexq = sq//'normalnotesize'//sq//'off{'
+c lnote = 20
+c notexq = '}'//sq//'off{'
+c lnote = 6
+ notexq = sq//'off{'
+ lnote = 5
+ ptoff = wheadpt*emgfac
+ if (iand(nacc,3).gt.0 .and. .not.btest(nacc,17))
+ * ptoff = ptoff+wheadpt*accfac
+ if (isgaft .and. .not.iswaft) then
+ notexq = notexq(1:5)//'-'
+ lnote = 6
+ ptoff = aftshft
+ end if
+ if (normsp) ptoff = finalshift
+ if (ptoff .lt. 9.95) then
+ write(notexq(lnote+1:lnote+3),'(f3.1)')ptoff
+ lnote = lnote+3
+ else if (ptoff .lt. 99.95) then
+ write(notexq(lnote+1:lnote+4),'(f4.1)')ptoff
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+5),'(f5.1)')ptoff
+ lnote = lnote+5
+ end if
+ call addstr(notexq(1:lnote)//'pt}',lnote+3,soutq,lsout)
+ if (isgaft.and..not.iswaft) call addstr(sq//'sk',3,soutq,lsout)
+ call addstr(sq//'resetsize',10,soutq,lsout)
+ end if
+ return
+ end
+ subroutine dopsslur(nolev,isdat1,isdat2,isdat3,isdat4,nsdat,ip,
+ * iv,kv,nv,beamon,ncm,soutq,lsout,ulq,islur,
+ * ipl,iornq,islhgt,tno,nacc)
+c
+c Called once per main note.
+c 12 May 2002 Create this subroutine to isolate postscript slurs/ties.
+c Always set \Nosluradjust\Notieadjust
+c
+ parameter (nm=24,mv=24576)
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ character*1 ulq,slurudq,udfq,udqq,chax
+ character*79 notexq
+ character*8 noteq
+ character*80 soutq
+ logical upslur,beamon,btest,stemup,iscrd,
+ * settie,fontslur,pstie,WrotePsslurDefaults
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+c
+c Bits in isdat1:
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 mod(ndxslur,16), set in doslur when slur is started, used on term.
+c 18 int(ndxslur/16), ditto. So this allows ndxslur>15.
+c
+c Bits in isdat2
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted flag
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+c
+c Bits in isdat3: Only used for slur endings
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c 14-21 tie level for use in LineBreakTies
+c 22-29 ncm for use in LineBreakTies
+c
+c Bits in isdat4 Only used for linebreak slurs
+c 0-5 Linebreak seg 1 voff 1-63 => -31...+31
+c 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3
+c 16-21 Linebreak seg 2 voff 1-63 => -31...+31
+c 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3
+c
+c In listslur bit ib is on if slur index ib is in use, ib=0-13.
+c ndxslur = slur index
+c Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note,
+c s-slur is blank (idcode=32), t-slur is idcode=1.
+c ivoff is user-defined shift or shift due to . or _ , or chord adjustment.
+c Ivoff will be set for ./_ only if no user-defined shift is specified.
+c If highest note has upslur, save slur height in islhgt in case
+c ornament must be moved.
+c
+ islhgt = 0
+ if (beamon) then
+ stemup = ulq .eq. 'u'
+ else if (nvmx(iv) .eq. 2) then
+ if (.not.btest(islur,30)) then
+c
+c Single note, 2 lines of music, stem direction not forced
+c
+ stemup = ivx .gt. nv
+ else
+ stemup = btest(islur,17)
+ end if
+ else
+ stemup = udqq(nolev,ncm,islur,nvmx(iv),ivx,nv) .eq. 'u'
+ end if
+ iscrd = btest(ipl,10)
+ if (ismidi) then
+ settie = .false.
+ dbltie = .false.
+ end if
+ do 1 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ if (iv .eq. igetbits(isdata,5,13) .and.
+ * ip .eq. igetbits(isdata,8,3) .and.
+ * kv .eq. igetbits(isdata,1,12)+1) then
+c
+c Since iv and kv match, ivx will be correct
+c
+ idcode = igetbits(isdata,7,19)
+ ivoff = igetbits(isdat2(isdat),6,6)-32
+ ihoff = igetbits(isdat2(isdat),7,12)-64
+ iupdn = 0
+ slurudq = 'd'
+ nolevs = igetbits(isdat2(isdat),7,19)
+ pstie = btest(isdat2(isdat),3) .or. idcode.eq.1
+ if (btest(isdata,11)) then
+c
+c Turnon
+c
+c if (nolevs.eq.0 .or. nolevs.gt.60) then
+cc
+cc Note was a rest, cannot start slur on rest.
+cc
+c print*
+c call printl('Cannot start slur on a rest')
+c call stop1()
+c nolevs = ncm+5
+c end if
+c
+c Get slur direction
+c
+ if (btest(isdata,26)) then
+c
+c Force slur direction
+c
+ if (btest(isdata,27)) slurudq = 'u'
+ else if (nvmx(iv) .eq. 1) then
+c
+c Only one voice per line
+c
+ if (.not.beamon) then
+c
+c Separate note.
+c
+ slurudq = udfq(nolev,ncm)
+ else
+c
+c In a beam
+c
+ if (ulq .ne. 'u') slurudq = 'u'
+ end if
+ if (iscrd) then
+ if (nolevs .gt. ncm) then
+ slurudq = 'u'
+ else
+ slurudq = 'd'
+ end if
+ end if
+ else
+c
+c Two voices per line. Get default
+c
+ if (ivx .gt. nv) slurudq = 'u'
+c
+c Upper voice of the two, so up slur
+c
+ end if
+c
+c Set level for slur starting on rest
+c
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+ if (slurudq .eq. 'u') then
+ nolevs = ncm+2
+ else
+ nolevs = ncm-2
+ end if
+ end if
+c
+c Save up/down-ness for use at termination
+c
+ if (slurudq .eq. 'u') isdata = ibset(isdata,27)
+c
+c End of section for setting slur direction, still in "Turnon" if-block.
+c
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+c
+c Must move the slur for _ or .
+c
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ ivoff = ivoff+ivoffinc
+ end if
+ end if
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You1 defined the twentyfifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You defined the twentyfifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Get index of next slur not in use, starting from 12 down
+c
+ ndxslur = log2(16777215-listslur)
+c write(*,'()')
+c write(*,'(2i4,2x,B24)')ivx,ndxslur,listslur
+c
+c Record slur index
+c
+ listslur = ibset(listslur,ndxslur)
+c write(*,'(10x,B24)')listslur
+c
+c Save for use on termination
+c
+c call setbits(isdata,4,28,ndxslur)
+c 080531 Allow >16 slurs
+ call setbits(isdata,4,28,mod(ndxslur,16))
+ call setbits(isdata,1,18,ndxslur/16)
+c
+c Shift for stem?
+c
+ if (stemup .and. slurudq.eq.'u' .and. tno.lt.63.) then
+ if (.not.pstie) then
+ ihoff = ihoff+8
+ else
+ ihoff = ihoff+2
+ end if
+ end if
+ if (iscrd) then
+c
+c Additional horiz shifts for h-shifted noteheads?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Slur start on left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ notexq = chax(92)
+ lnote = 1
+c
+c Check for local adjustment default changes
+c
+ if (btest(isdat2(isdat),26)) then
+ notexq = chax(92)//'sluradjust'//chax(92)
+ lnote = 12
+ else if (btest(isdat2(isdat),27)) then
+ notexq = chax(92)//'nosluradjust'//chax(92)
+ lnote = 14
+ else if (btest(isdat2(isdat),28)) then
+ notexq = chax(92)//'tieadjust'//chax(92)
+ lnote = 11
+ else if (btest(isdat2(isdat),29)) then
+ notexq = chax(92)//'notieadjust'//chax(92)
+ lnote = 13
+ end if
+ if (ihoff .eq. 0) then
+c
+c Write stuff for non-shifted start
+c
+ notexq = notexq(1:lnote)//'islur'//slurudq
+ lnote = lnote+6
+ else
+ notexq = notexq(1:lnote)//'is'//slurudq
+ lnote = lnote+3
+ end if
+c
+c Prepend postscript tie switch
+c
+ if (pstie) then
+ notexq = chax(92)//'tieforis'//slurudq//notexq(1:lnote)
+ lnote = lnote+10
+ end if
+ if (btest(isdat2(isdat),4)) then
+c
+c Dotted slur
+c
+c noteq = notexq
+c notexq = chax(92)//'dotted'//noteq
+ notexq = chax(92)//'dotted'//notexq(1:lnote)
+ lnote = lnote+7
+ end if
+c
+c Add slur index to string
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c
+c 5/25/08 Allow 24 slurs
+c
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+c
+c Add note name to string
+c
+c call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ islhgt = nolevs+iupdn+ivoff
+ call notefq(noteq,lnoten,islhgt,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+c
+c Store height and staff mid level for use with LineBreakTies
+c
+ call setbits(isdat3(isdat),8,14,islhgt)
+ call setbits(isdat3(isdat),8,22,ncm)
+c
+c Save height (for ornament and barnobox interference) if topmost slur is up
+c
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c Save height & idcode if top voice and slur start
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. islhgt.gt.is1n1) then
+ is1n1 = islhgt
+ is2n1 = idcode
+ end if
+ end if
+ if (ihoff .ne. 0.) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),'(f'//
+ * chax(48+lform)//'.1)') shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Zero out ip1 to avoid problems if slur goes to next input blk.
+c
+ call setbits(isdata,8,3,0)
+c
+c Set slur-on data for midi. Only treat null-index slurs and ps ties for now.
+c
+ if (ismidi .and. (idcode.eq.32 .or. idcode.eq.1)) then
+c levson(midchan(iv,kv)) = nolev
+ levson(midchan(iv,kv)) = nolevs
+ if (settie) dbltie = .true.
+c
+c Only way settie=T is if we just set a tie ending. So there's also a slur
+c start here, so set a flag telling addmidi not to zero out levson
+c
+ end if
+ else
+c
+c Slur is ending. Back thru list to find starting slur
+c
+ do 3 j = isdat-1 , 1 , -1
+ if (iv.eq.igetbits(isdat1(j),5,13) .and.
+ * kv.eq.igetbits(isdat1(j),1,12)+1) then
+ if (idcode .eq. igetbits(isdat1(j),7,19)) then
+ ndxslur = igetbits(isdat1(j),4,28)
+c
+c 080531 Allow >16 slurs
+c
+ * +16*igetbits(isdat1(j),1,18)
+ if (btest(isdat1(j),27)) slurudq = 'u'
+ go to 4
+ end if
+ end if
+3 continue
+ print*,'Bad place in doslur'
+ call stop1()
+4 continue
+c
+c Bugfix 070901 for slur ending on rest in 2-voice staff
+c
+c if (nolevs.eq.0 .or. nolevs.gt.60) then
+ if (nolevs.le.2 .or. nolevs.gt.60) then
+c
+c Ending is on a rest, reset nolevs to default starting height
+c
+ nolevs = igetbits(isdat2(j),7,19)
+ end if
+ if (btest(isdat3(isdat),0) .or. btest(isdat3(j),0)) then
+c
+c Deal with \curve or \midslur. isdat is ending, j is start.
+c
+ if (btest(isdat3(isdat),0)) then
+ imid = igetbits(isdat3(isdat),6,2)-32
+ else
+ imid = igetbits(isdat3(j),6,2)-32
+ end if
+c
+c Postscript slurs, and \midslur adjustment is needed. Invoke macro
+c (from pmx.tex) that redefines \tslur as r'qd. Tentative mapping:
+c Abs(imid) Postscript slur type
+c 1 f
+c 2-3 default
+c 4 h
+c 5 H
+c 6+ HH
+c
+ call addstr(chax(92)//'psforts'//
+ * chax(48+min(abs(imid),6)),9,soutq,lsout)
+ end if
+c
+c Shift slur ending for stem on any note?
+c
+ if (.not.stemup .and. slurudq.eq.'d' .and. tno.lt.63.) then
+ if (.not.pstie) then
+ ihoff = ihoff-8
+ else
+ ihoff = ihoff-3
+ end if
+ end if
+ if (iscrd) then
+c
+c Shift termination for shifted notehead?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c
+c Switch to postscript tie
+c
+ if (pstie) then
+ notexq = chax(92)//'tieforts'//notexq(1:lnote)
+ lnote = lnote+9
+ end if
+c
+c Print 13-ndxslur
+c 5/25/08 Allow 14 slurs
+c
+ if (23-ndxslur .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ end if
+ ivoff = ivoff+ivoffinc
+ end if
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c If topvoice, upslur, and idcode checks, no more need to keep hgt for barno.
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. is1n1.gt.0) then
+ if (idcode .eq. is2n1) is1n1=0
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihoff .ne. 0) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Clear the bit from list of slurs in use
+c
+ listslur = ibclr(listslur,ndxslur)
+c
+c Zero out the entire strings for start and stop
+c
+ isdata = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ isdat4(isdat) = 0
+ isdat1(j) = 0
+ isdat2(j) = 0
+ isdat3(j) = 0
+ isdat4(j) = 0
+c
+c Set midi info for slur ending
+c
+ if (ismidi .and. (idcode.eq.32 .or. idcode.eq.1)) then
+ icm = midchan(iv,kv)
+ if (slmon(icm)) then
+ if (nolevs.eq.levson(icm) .and. iand(7,nacc).eq.0) then
+c
+c There is a tie here. NB!!! assumed no accidental on 2nd member of tie.
+c
+ levsoff(icm) = nolevs
+ settie = .true.
+ else
+ levsoff(icm) = 0
+ levson(icm) = 0
+ slmon(icm) = .false.
+ end if
+ end if
+ end if
+ end if
+ isdat1(isdat) = isdata
+ end if
+1 continue
+c
+c Clear and collapse the slur data list
+c
+ numdrop = 0
+ do 2 isdat = 1 , nsdat
+ if (isdat1(isdat) .eq. 0) then
+ numdrop = numdrop+1
+ else if (numdrop .gt. 0) then
+ isdat1(isdat-numdrop) = isdat1(isdat)
+ isdat2(isdat-numdrop) = isdat2(isdat)
+ isdat3(isdat-numdrop) = isdat3(isdat)
+ isdat4(isdat-numdrop) = isdat4(isdat)
+ isdat1(isdat) = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ isdat4(isdat) = 0
+ end if
+2 continue
+ nsdat = nsdat-numdrop
+c call report(nsdat,isdat1,isdat2)
+ return
+ end
+ subroutine doslur(nolev,isdat1,isdat2,isdat3,nsdat,ip,iv,kv,nv,
+ * beamon,ncm,soutq,lsout,ulq,islur,ipl,iornq,islhgt,tno,nacc)
+c
+c Called once per main note. (5/26/02) for non-ps slurs only
+c
+ parameter (nm=24,mv=24576)
+ integer*4 isdat1(202),isdat2(202),isdat3(202)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ character*1 ulq,slurudq,udfq,udqq,chax
+ character*79 notexq
+ character*8 noteq
+ character*80 soutq
+ logical upslur,beamon,btest,stemup,iscrd,sfound,tfound,tmove,
+ * settie,fontslur,WrotePsslurDefaults
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+c
+c Bits in isdat1:
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 ndxslur, set in doslur when beam is started, used on term.
+c
+c Bits in isdat2
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted flag
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c
+c Bits in isdat3: Only used for slur endings
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c
+c In listslur bit ib is on if slur index ib is in use, ib=0-23.
+c ndxslur = slur index
+c Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note,
+c s-slur is blank (idcode=32), t-slur is idcode=1.
+c ivoff is user-defined shift or shift due to . or _ , or chord adjustment.
+c Ivoff will be set for ./_ only if no user-defined shift is specified.
+c If highest note has upslur, save slur height in islhgt in case
+c ornament must be moved.
+c
+ islhgt = 0
+ if (beamon) then
+ stemup = ulq .eq. 'u'
+ else if (nvmx(iv) .eq. 2) then
+ if (.not.btest(islur,30)) then
+c
+c Single note, 2 lines of music, stem direction not forced
+c
+ stemup = ivx .gt. nv
+ else
+ stemup = btest(islur,17)
+ end if
+ else
+ stemup = udqq(nolev,ncm,islur,nvmx(iv),ivx,nv) .eq. 'u'
+ end if
+ iscrd = btest(ipl,10)
+ if (btest(islur,1)) then
+c
+c 't'-slur (idcode=1) somewhere on this note. Find it, check height against
+c 's'-slur (idcode=32)
+c
+ sfound = .false.
+ tfound = .false.
+ tmove = .false.
+ do 5 isdat = 1 , nsdat
+ if (iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * ip .eq. igetbits(isdat1(isdat),8,3) .and.
+ * kv .eq. igetbits(isdat1(isdat),1,12)+1) then
+ if (.not.tfound) then
+ tfound = igetbits(isdat1(isdat),7,19).eq.1
+ if (tfound) then
+ nolevt = igetbits(isdat2(isdat),7,19)
+ isdatt = isdat
+ if (sfound) go to 6
+ end if
+ end if
+ if (.not.sfound) then
+ sfound = igetbits(isdat1(isdat),7,19).eq.32
+ if (sfound) then
+ nolevs = igetbits(isdat2(isdat),7,19)
+ isdats = isdat
+ if (tfound) go to 6
+ end if
+ end if
+ end if
+5 continue
+c
+c Will come thru here if there is a t with no s, so comment out the following
+c print*,'Did not find s+t-slurs in doslur'
+c
+6 continue
+ if (sfound .and. tfound)
+ * tmove = nolevs.eq.nolevt .and.
+c
+c Check if 2 starts or two stops
+c
+ * ((btest(isdat1(isdats),11).and.btest(isdat1(isdatt),11)) .or.
+ * (.not.btest(isdat1(isdats),11).and.
+ * .not.btest(isdat1(isdatt),11)) )
+c
+c This is a flag for later changing slur level, after we know slur dir'n.
+c
+ end if
+ if (ismidi) then
+ settie = .false.
+ dbltie = .false.
+ end if
+ do 1 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ if (iv .eq. igetbits(isdata,5,13) .and.
+ * ip .eq. igetbits(isdata,8,3) .and.
+ * kv .eq. igetbits(isdata,1,12)+1) then
+c
+c Since iv and kv match, ivx will be correct
+c
+ idcode = igetbits(isdata,7,19)
+ ivoff = igetbits(isdat2(isdat),6,6)-32
+ ihoff = igetbits(isdat2(isdat),7,12)-64
+ iupdn = 0
+ slurudq = 'd'
+ nolevs = igetbits(isdat2(isdat),7,19)
+ if (btest(isdata,11)) then
+c
+c Turnon,
+c
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+c
+c Note was a rest, cannot start slur on rest.
+c
+ print*
+ call printl('Cannot start slur on a rest')
+ call stop1()
+ end if
+c
+c Get slur direction
+c
+ if (btest(isdata,26)) then
+c
+c Force slur direction
+c
+ if (btest(isdata,27)) slurudq = 'u'
+ else if (nvmx(iv) .eq. 1) then
+c
+c Only one voice per line
+c
+ if (.not.beamon) then
+c
+c Separate note.
+c
+ slurudq = udfq(nolev,ncm)
+ else
+c
+c In a beam
+c
+ if (ulq .ne. 'u') slurudq = 'u'
+ end if
+ if (iscrd) then
+ if (nolevs .gt. ncm) then
+ slurudq = 'u'
+ else
+ slurudq = 'd'
+ end if
+ end if
+ else
+c
+c Two voices per line. Get default
+c
+ if (ivx .gt. nv) slurudq = 'u'
+c
+c Upper voice of the two, so up slur
+c
+ end if
+c
+c Save up/down-ness for use at termination
+c
+ if (slurudq .eq. 'u') isdata = ibset(isdata,27)
+c
+c End of section for setting slur direction, still in "Turnon" if-block.
+c
+ if (idcode.eq.1 .and. tmove) then
+ iupdn = 1
+ if (slurudq .eq. 'd') iupdn = -1
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+c
+c Must move the slur for _ or .
+c
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ ivoff = ivoff+ivoffinc
+ end if
+ end if
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You1 defined the twenty-fifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You2 defined the twenty-fifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Get index of next slur not in use, starting from ? down
+c
+ ndxslur = log2(16777215-listslur)
+c
+c Record slur index
+c
+ listslur = ibset(listslur,ndxslur)
+c
+c Save for use on termination
+c
+c call setbits(isdata,4,28,ndxslur)
+c 080531 Allow >16 slurs
+ call setbits(isdata,4,28,mod(ndxslur,16))
+ call setbits(isdata,1,18,ndxslur/16)
+c
+c Shift for stem?
+c
+ if (stemup .and. slurudq.eq.'u' .and. tno.lt.63.)
+ * ihoff = ihoff+8
+ if (btest(isdat2(isdat),3)) then
+c
+c Tie spacing, (slur start)
+c
+ if (slurudq.eq.'d') then
+ ivoff = ivoff+1
+ ihoff = ihoff+8
+ else if (slurudq.eq.'u') then
+ ivoff = ivoff-1
+ if (.not.(stemup.and.tno.lt.63.)) ihoff = ihoff+8
+c
+c (already shifted if (stemup.and.tno.gt.63.) and slurudq='u')
+c
+ end if
+ end if
+ if (iscrd) then
+c
+c Additional horiz shifts for h-shifted noteheads?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Slur start on left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+c
+c Write stuff for non-shifted start
+c
+ notexq = chax(92)//'islur'//slurudq
+ lnote = 7
+ else
+ notexq = chax(92)//'is'//slurudq
+ lnote = 4
+ end if
+ if (btest(isdat2(isdat),4)) then
+c
+c Dotted slur
+c
+ noteq = notexq
+ notexq = chax(92)//'dotted'//noteq
+ lnote = lnote+7
+ end if
+c
+c Add slur index to string
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c
+c 5/25/08 Allow 24 slurs
+c
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+c
+c Add note name to string
+c
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+c
+c Save height (for ornament and barnobox interference) if topmost slur is up
+c
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c Save height & idcode if top voice and slur start
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. islhgt.gt.is1n1) then
+ is1n1 = islhgt
+ is2n1 = idcode
+ end if
+ end if
+ if (ihoff .ne. 0.) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),'(f'//
+ * chax(48+lform)//'.1)') shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Zero out ip1 to avoid problems if slur goes to next input blk.
+c
+ call setbits(isdata,8,3,0)
+c
+c Set slur-on data for midi. Only treat null-index slurs and ps ties for now.
+c
+ if (ismidi .and. idcode.eq.32) then
+ levson(midchan(iv,kv)) = nolevs
+ if (settie) dbltie = .true.
+c
+c Only way settie=T is if we just set a tie ending. So there's also a slur
+c start here, so set a flag telling addmidi not to zero out levson
+c
+ end if
+ else
+c
+c Slur is ending. Back thru list to find starting slur
+c
+ do 3 j = isdat-1 , 1 , -1
+ if (iv.eq.igetbits(isdat1(j),5,13) .and.
+ * kv.eq.igetbits(isdat1(j),1,12)+1) then
+ if (idcode .eq. igetbits(isdat1(j),7,19)) then
+ ndxslur = igetbits(isdat1(j),4,28)
+c
+c 080531 Allow >16 slurs
+c
+ * +16*igetbits(isdat1(j),1,18)
+ if (btest(isdat1(j),27)) slurudq = 'u'
+ go to 4
+ end if
+ end if
+3 continue
+ print*,'Bad place in doslur'
+ call stop1()
+4 continue
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+c
+c Ending is on a rest, reset nolevs to default starting height
+c
+ nolevs = igetbits(isdat2(j),7,19)
+ end if
+ if (btest(isdat3(isdat),0)) then
+c
+c Deal with \curve or \midslur
+c
+ imid = igetbits(isdat3(isdat),6,2)-32
+c
+c Remember, only dealing with non-ps slurs
+c
+c Who knows where the following line came from. Removed it 6/30/02 to
+c restore behavior of non-ps slurs to old way
+c if (slurudq .eq. 'd') imid = -imid
+c 3/8/03 added the following
+c
+ if (slurudq .eq. 'd') imid = -abs(imid)
+c
+ if (btest(isdat3(isdat),1)) then
+ notexq = chax(92)//'curve'
+ lnote = 6
+ else
+ notexq = chax(92)//'midslur'
+ lnote = 8
+ end if
+ if (imid.lt.0 .or. imid.gt.9) then
+c
+c Need brackets
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (imid .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')imid
+ lnote = lnote+3
+ else if (imid.lt.0 .or. imid.gt.9) then
+ write(notexq(lnote+1:lnote+2),'(i2)')imid
+ lnote = lnote+2
+ else
+ write(notexq(lnote+1:lnote+1),'(i1)')imid
+ lnote = lnote+1
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+c
+c 1=<imid=<9, no brackets
+c
+ notexq = notexq(1:lnote)//char(48+imid)
+ lnote = lnote+1
+ end if
+ if (btest(isdat3(isdat),1)) then
+c
+c \curve; 3 args
+c
+ notexq = notexq(1:lnote)
+ * //char(48+igetbits(isdat3(isdat),3,8))
+ notexq = notexq(1:lnote+1)
+ * //char(48+igetbits(isdat3(isdat),3,11))
+ lnote = lnote+2
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Shift slur ending for stem on any note?
+c
+ if (.not.stemup .and. slurudq.eq.'d' .and. tno.lt.63.)
+ * ihoff = ihoff-8
+ if (btest(isdat2(isdat),3)) then
+c
+c Shift ending for tie spacing
+c
+ if (slurudq .eq. 'u') then
+ ihoff = ihoff-8
+ ivoff = ivoff-1
+ else if (slurudq .eq. 'd') then
+ ivoff = ivoff+1
+ if (stemup.or. tno.gt.63.) ihoff = ihoff-8
+ end if
+ end if
+ if (iscrd) then
+c
+c Shift termination for shifted notehead?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c
+c Print 23-ndxslur
+c 5/25/08 Allow 14 slurs (???????????)
+c
+ if (23-ndxslur .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ end if
+ ivoff = ivoff+ivoffinc
+ end if
+ if (idcode.eq.1 .and. tmove) then
+c
+c t-slur height adjustment
+c
+ iupdn = 1
+ if (slurudq .eq. 'd') iupdn = -1
+ end if
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c If topvoice, upslur, and idcode checks, no more need to keep hgt for barno.
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. is1n1.gt.0) then
+ if (idcode .eq. is2n1) is1n1=0
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihoff .ne. 0) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Clear the bit from list of slurs in use
+c
+ listslur = ibclr(listslur,ndxslur)
+c
+c Zero out the entire strings for start and stop
+c
+ isdata = 0
+ isdat2(isdat) = 0
+ isdat1(j) = 0
+ isdat2(j) = 0
+ isdat3(isdat) = 0
+c
+c Set midi info for slur ending
+c
+ if (ismidi .and. idcode.eq.32) then
+ icm = midchan(iv,kv)
+ if (slmon(icm)) then
+ if (nolevs.eq.levson(icm) .and. iand(7,nacc).eq.0) then
+c
+c There is a tie here. NB!!! assumed no accidental on 2nd member of tie.
+c
+ levsoff(icm) = nolevs
+ settie = .true.
+ else
+ levsoff(icm) = 0
+ levson(icm) = 0
+ slmon(icm) = .false.
+ end if
+ end if
+ end if
+ end if
+ isdat1(isdat) = isdata
+ end if
+1 continue
+c
+c Clear and collapse the slur data list
+c
+ numdrop = 0
+ do 2 isdat = 1 , nsdat
+ if (isdat1(isdat) .eq. 0) then
+ numdrop = numdrop+1
+ else if (numdrop .gt. 0) then
+ isdat1(isdat-numdrop) = isdat1(isdat)
+ isdat2(isdat-numdrop) = isdat2(isdat)
+ isdat3(isdat-numdrop) = isdat3(isdat)
+ isdat1(isdat) = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ end if
+2 continue
+ nsdat = nsdat-numdrop
+c call report(nsdat,isdat1,isdat2)
+ return
+ end
+ subroutine dotmov(updot,rtdot,soutq,lsout,iddot)
+c
+c iddot = 0 for single dot, 1 for double
+c
+ character*80 soutq,notexq
+ character*1 sq,chax
+ sq = chax(92)
+ lfmtup = lfmt1(updot)
+ lfmtrt = lfmt1(rtdot)
+ write(notexq,'(a37,f'//chax(48+lfmtup)//'.1,a2,f'//chax(48+lfmtrt)
+ * //'.1,a15)')
+ * sq//'makeatletter'//sq//'def'//sq//'C@Point#1#2{'//sq//
+ * 'PMXpt{',updot,'}{',rtdot,'}'//chax(48+iddot)//'}'//sq
+ * //'makeatother'
+c
+c Example of string just created:
+c \makeatletter\def\C@Point#1#2{\PMXpt{.5}{.5}}\makeatother\
+c
+ lnote = 54+lfmtup+lfmtrt
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+ return
+ end
+ subroutine dotrill(iv,ip,iornq,noteq,lnoten,notexq,lnote)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*1 chax
+ character*8 noteq
+ character*79 notexq
+ logical tronly,btest
+ do 1 itr = 1 , ntrill
+ if (iv.eq.ivtrill(itr) .and. ip.eq.iptrill(itr)) go to 2
+1 continue
+ print*,'Problem in dotrill. Call Dr. Don'
+ stop
+2 continue
+ tronly = xnsktr(itr) .lt. 0.01
+ if (tronly) then
+ notexq = chax(92)//'zcharnote'
+ lnote = 10
+ else if (btest(iornq,7)) then
+ notexq = chax(92)//'Trille'
+ lnote = 7
+ else
+ notexq = chax(92)//'trille'
+ lnote = 7
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+lnoten+1
+c
+c Write trill duration to nearest tenth of a noteskip
+c
+ if (tronly) then
+ notexq = notexq(1:lnote)//chax(92)//'it tr}'
+ lnote = lnote+7
+ return
+ end if
+ if (xnsktr(itr) .lt. .95) then
+ nfmt = 2
+ else if (xnsktr(itr) .lt. 9.95) then
+ nfmt = 3
+ else
+ nfmt = 4
+ end if
+ write(notexq(lnote+1:lnote+nfmt),'(f'//chax(48+nfmt)//'.1)')
+ * xnsktr(itr)
+ lnote = lnote+nfmt
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ return
+ end
+ subroutine endslur(stemup,upslur,nolev,iupdn,ndxslur,ivoff,ncm,
+ * soutq,lsout,fontslur)
+c
+c Only called to end slur started in dograce.
+c
+ logical shift,stemup,upslur,fontslur
+ character*80 soutq
+ character*79 notexq
+ character*8 noteq
+ character*1 chax
+ shift = .not.stemup .and. .not.upslur
+ if (.not.shift) then
+c
+c No shift needed
+c
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c if (ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(48+ndxslur)
+c lnote = lnote+1
+c else
+c notexq = notexq(1:lnote)//'{1'//chax(38+ndxslur)//'}'
+c lnote = lnote+4
+c end if
+c
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ call notefq(noteq,lnoten,nolev+iupdn+ivoff,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (shift) then
+ if (fontslur) then
+ notexq = notexq(1:lnote)//'{-.6}'
+ else
+ notexq = notexq(1:lnote)//'{-.8}'
+ end if
+ lnote = lnote+5
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ return
+ end
+ subroutine errmsg(lineq,iccount,ibarno,msgq)
+ parameter(nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,fbon,issegno,isheadr,isvolt
+ character*128 lineq
+ character*78 outq
+ character*(*) msgq
+ character*1 chax
+ common /truelinecount/ linewcom(20000)
+ if (iccount .le. 78) then
+ outq = lineq(1:78)
+ iposn = iccount
+ else
+ outq = '... '//lineq(55:128)
+ iposn = iccount-50
+ end if
+ print*
+ ibarnop = ibarno
+ if (linesinpmxmod.eq.0 .or.
+ * nline .gt. line1pmxmod+linesinpmxmod) then
+c
+c Error is in main .pmx file
+c
+c nlinep = nline-linesinpmxmod
+c Correct for comments not copied into buffer
+ nlinep = linewcom(nline)-linesinpmxmod
+ else
+c
+c Error is in include file
+c
+ ibarnop = 0
+ nlinep = nline-line1pmxmod+1
+ call printl(
+ * 'ERROR in include file named above, description given below')
+ end if
+ open(19,file='pmxaerr.dat')
+ write(19,'(i6)') nlinep
+ close(19)
+ ndigbn = max(1,int(log10(ibarnop+.1)+1))
+ ndignl = int(log10(nlinep+.1)+1)
+ lenmsg = index(msgq,'!')-1
+c
+c Split off msgq(..) since UNIX compilers don't allow concat substring!!!
+c
+ write(*,'(/,a15,i'//chax(48+ndignl)//',a6,i'//chax(48+ndigbn)//
+ *',$)')' ERROR in line ',nlinep,', bar ',ibarnop
+ write(*,'(1x,a)')msgq(1:lenmsg)
+ write(15,'(/,a15,i'//chax(48+ndignl)//',a6,i'//chax(48+ndigbn)//
+ *',$)')' ERROR in line ',nlinep,', bar ',ibarnop
+ write(15,'(a)')msgq(1:lenmsg)
+ i10 = iposn/10
+ i1 = iposn-10*i10
+ write(*,'('//chax(48+i10)//chax(48+i1)//'x,a)')'v'
+ write(15,'('//chax(48+i10)//chax(48+i1)//'x,a)')'v'
+ print*,outq(1:78)
+ write(15,'(a)')' '//outq(1:78)
+ write(*,'('//chax(48+i10)//chax(48+i1)//'x,a)')'^'
+ write(15,'('//chax(48+i10)//chax(48+i1)//'x,a)')'^'
+ return
+ end
+ subroutine eskb4(ip,ivx,in,ib,space,tstart,fbar,itrpt,esk)
+c
+c Get elemskips to previous note. Called only for graces, no xtups involved.
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ real*4 tstart(80),space(80)
+ common /comtol/ tol
+ itnd = nint(to(in))
+ if (ip.eq.1 .or. itnd.eq.itrpt) then
+c
+c Start of bar or after rpt.
+c
+ esk = fbar
+ return
+ else
+ esk = 0.
+ itprev = itnd-nodur(ivx,ip-1)
+ do 1 iib = ib , 1 , -1
+ if (tstart(iib) .lt. itprev+tol) then
+c
+c This is the block
+c
+ nnsk = nint(float((itnd-itprev))/space(iib))
+ esk = esk+nnsk*feon(space(iib))
+ return
+ else
+ nnsk = nint((itnd-tstart(iib))/space(iib))
+ esk = esk+nnsk*feon(space(iib))
+ itnd = nint(tstart(iib))
+ end if
+1 continue
+ end if
+ print*,'Problem in eskb4. Send files to Dr. Don'
+ stop
+ end
+ function f1eon(time)
+ f1eon = sqrt(time/2)
+ return
+ end
+ function feon(time)
+ common /comeon/ eonk,ewmxk
+ feon = sqrt(time/2)**(1.-eonk)*ewmxk
+ return
+ end
+ subroutine findbeam(ibmrep,numbms,mapfb)
+c
+c Called once per voice per bar, after setting forced beams.
+c
+ parameter (nm=24)
+ dimension mask(49,3),nummask(3),eqonly(49,3)
+c integer numbms(nm),ipr(48),nip1(0:47),nip2(0:47),mapfb(16),
+c * itr(48),nodue(48)
+c logical short(48),eqonly
+ integer numbms(nm),ipr(248),nip1(0:247),nip2(0:247),mapfb(16),
+ * itr(248),nodue(248)
+ logical short(248),eqonly
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ common /combeam/ ibmtyp
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,btest
+ data nip1,nip2 /496*0/
+ data nummask / 29 , 49 , 12 /
+ data mask
+ * / 65535, 4095, 65520, 255, 65280, 63,
+ * 252, 16128, 64512, 15, 240, 3840,
+ * 61440, 7, 14, 112, 224, 1792,
+ * 3584, 28672, 57344, 3, 12, 48,
+ * 192, 768, 3072, 12288, 49152, 20*0 ,
+ * 16777215, 65535, 16776960, 4095, 65520, 1048320,
+ * 16773120, 255, 65280, 16711680, 63, 252,
+ * 16128, 64512, 4128768, 16515072, 15, 60,
+ * 240, 3840, 15360, 61440, 983040, 3932160,
+ * 15728640, 7, 14, 112, 224, 1792,
+ * 3584, 28672, 57344, 458752, 917504, 7340032,
+ * 14680064, 3, 12, 48, 192, 768,
+ * 3072, 12288, 49152, 196608, 786432, 3145728,
+ * 12582912,
+ * 4095, 255, 4080, 15, 240, 3840,
+ * 3, 12, 48, 192, 768, 3072,
+ * 37*0 /
+ data eqonly /3*.true.,46*.false.,7*.true.,91*.false./
+ ip = 0
+ nreal = 0
+ itnow = 0
+1 continue
+ ip = ip+1
+ if (ip .gt. nn(ivx)) go to 9
+11 if (nodur(ivx,ip).eq.0) then
+c
+c Ignore all xtup notes except the last, the one with nodur > 0 .
+c Xtups are irrelevant here since they are already all in forced beams.
+c Will update itnow by nodur at the END of this loop
+c
+ ip = ip+1
+ go to 11
+ end if
+ nreal = nreal+1
+ nodue(nreal) = nodur(ivx,ip)
+ short(nreal) = nodue(nreal).lt.16 .and.
+ * .not.btest(irest(ivx,ip),0)
+c
+c Rule out notes that have 'alone'-flag set
+c
+ * .and..not.btest(islur(ivx,ip),18)
+ ipr(nreal) = ip
+ itr(nreal) = itnow
+ if (nodue(nreal) .eq. 1) then
+c
+c 64th gap
+c
+ if (mod(itnow,2) .eq. 0) then
+c
+c Start of 32nd gap, lump with following note
+c
+ ip = ip+1
+ nodue(nreal) = 1+nodur(ivx,ip)
+ itnow = itnow+nodue(nreal)
+ else
+c
+c End of 32nd gap, lump with preceeding note
+c
+ nreal = nreal-1
+ nodue(nreal) = 1+nodue(nreal)
+ itnow = itnow+1
+ end if
+ else
+ itnow = itnow+nodur(ivx,ip)
+ end if
+ go to 1
+9 continue
+ ir1 = 1
+ itseg = lenbar/ibmrep
+ do 13 irep = 1 , ibmrep
+c
+c Set bitmaps for all shorts neighbored by a short. Each bit represents a
+c span of 32nd note. maps, mapm, mape record start, full duration, and end
+c of consecutive span of beamable (<1/4) notes.
+c
+ maps = 0
+ mapm = 0
+ mape = 0
+ itend = itseg*irep
+ itoff = itend-itseg
+ do 2 ir = ir1 , nreal
+ it2 = itr(ir)+nodue(ir)-2
+ if (it2 .ge. itend) then
+ ir1 = ir
+ go to 14
+ end if
+c if (short(ir).and.((ir.gt.1.and.short(ir-1)).or.(ir.lt.nreal
+ if (short(ir).and.((ir.gt.1.and.short(max(ir-1,1))).or.
+ * (ir.lt.nreal.and.short(ir+1)))) then
+ ib1 = (itr(ir)-itoff)/2
+ ib2 = (it2-itoff)/2
+ if (max(ib1,ib2).gt.47 .or. ir.gt.48 .or.
+ * min(ib1,ib2).lt.0) return
+c
+c Must have an odd number obe beats in a long bar. Auto-beam won't work
+c
+ nip1(ib1) = ipr(ir)
+ nip2(ib2) = ipr(ir)
+c
+c nip1,2(ib) = 0 unless a real note starts,ends on bit ib; then = ip
+c
+ maps = ibset(maps,ib1)
+ mape = ibset(mape,ib2)
+ do 3 ib = ib1 , ib2
+ mapm = ibset(mapm,ib)
+3 continue
+ end if
+2 continue
+14 continue
+ if (mapm .eq. 0) go to 13
+c
+c Zero out bits from forced beams
+c
+ maps = iand(maps,not(mapfb(irep)))
+ mapm = iand(mapm,not(mapfb(irep)))
+ mape = iand(mape,not(mapfb(irep)))
+c
+c Compare map with template.
+c
+ do 4 it = 1 , nummask(ibmtyp)
+ masknow = mask(it,ibmtyp)
+ if (iand(masknow,mapm) .eq. masknow) then
+c
+c Find least significant bit in the mask to check start time
+c
+ mtemp = masknow
+ maskm = masknow
+ do 5 is1 = 0 , 47
+ if (iand(1,mtemp) .eq. 1) go to 6
+ mtemp = ishft(mtemp,-1)
+5 continue
+6 continue
+ if (iand(ishft(1,is1),maps) .eq. 0) go to 4
+c
+c is1 is the bit where the beam starts. Continue shifting to
+c find most significant bit in the mask to check ending time
+c
+ do 7 is2 = is1 , 47
+ mtemp = ishft(mtemp,-1)
+ if (iand(1,not(mtemp)) .eq. 1) go to 8
+7 continue
+8 continue
+c
+c is2 is now the bit on which the beam ends.
+c
+ if (iand(ishft(1,is2),mape) .eq. 0) go to 4
+c
+c Did we pick out a single note from the middle of a longer sequence?
+c
+ if (nip1(is1) .eq. nip2(is2)) go to 4
+c
+c We almost have a beam. Check equality of notes if needed.
+c
+ if (eqonly(it,ibmtyp)) then
+ do 10 ip = nip1(is1) , nip2(is2)
+ if (nodur(ivx,ip) .ne. 8) then
+c
+c There is a non-1/8th note in this beam. Exit if not 2 quarters
+c
+ if (is2-is1 .ne. 15) go to 4
+c
+c Beam is 2 quarters long. Check if can split in half.
+c
+ ithalf = 0
+ do 20 iip = nip1(is1) , nip2(is2)
+ ithalf = ithalf+nodur(ivx,iip)
+ if (ithalf .gt. 16) go to 4
+ if (ithalf .eq. 16) go to 21
+20 continue
+ print*,'Problem in findbeam, please call Dr. Don'
+ go to 4
+21 continue
+c
+c Otherwise, split in half by keeping only the first half. Other half will
+c be picked up later, assuming masks are listed longest first.
+c
+ is2 = is1+7
+c
+c Reset maskm (since only used part of mask), used later to zero out
+c bits that contain beams
+c
+ maskm = 0
+ do 15 is = is1 , is2
+ maskm = ibset(maskm,is)
+15 continue
+ go to 16
+ end if
+10 continue
+ end if
+16 continue
+c
+c This is a beam. If last "effective" ends on odd 64th, add 1 more
+c
+c if (abs(mod(to(iand(255,ipl(ivx,nip2(is2))))
+c * +nodur(ivx,nip2(is2)),2.)) .gt. tol) then
+ if (abs(amod(to(ipl2(ivx,nip2(is2)))
+ * +nodur(ivx,nip2(is2))+.5*tol,2.)) .gt. tol) then
+ nip2(is2) = nip2(is2)+1
+ end if
+ numbms(ivx) = numbms(ivx)+1
+ numnew = numbms(ivx)
+ call logbeam(numnew,nip1(is1),nip2(is2))
+c
+c Zero out the appropriate bits so these notes don't get used again
+c
+ mapm = iand(mapm,not(maskm))
+ if (mapm.eq.0) go to 13
+ maps = iand(maps,not(maskm))
+ mape = iand(mape,not(maskm))
+ end if
+4 continue
+13 continue
+ return
+ end
+ subroutine findeonk(nptr1,nptr2,wovera,xelsk,dtmin,dtmax,eonk0)
+ parameter (nkb=3999,maxblks=4000)
+c
+c Compute an exponent eonk for use in the "flattened" formula for elemskips
+c vs time. We must solve the eqution f = 0. Initial quess is eonk0.
+c
+ logical gotclef
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /comtol/ tol
+ common /comeon/ eonk,ewmxk
+ eonk = eonk0
+ niter = 0
+1 continue
+ ewmxk = f1eon(dtmax)**eonk
+ niter = niter+1
+ esum = 0.
+ desum = 0.
+ do 2 iptr = nptr1 , nptr2
+ targ = durb(iptr)/sqzb(iptr)
+ esum = esum+nnpd(iptr)*sqzb(iptr)*feon(targ)
+ detarg = sqrt(targ/2*(dtmax/targ)**eonk)*alog(dtmax/targ)
+ desum = desum+nnpd(iptr)*sqzb(iptr)*detarg
+2 continue
+ f = wovera*feon(dtmin)-xelsk-esum
+ fp = wovera*sqrt(dtmin/2*(dtmax/dtmin)**eonk)*alog(dtmax/dtmin)
+ * -desum
+ if (abs(fp).lt.tol .or. abs(eonk-.5).gt..5 .or. niter.gt.100) then
+ call printl(
+ * 'Error in findeonk. Please send source to Dr. Don')
+ eonk = 0.
+ ewmxk = 1.
+ return
+ end if
+ dsoln = -f/fp
+ if (abs(dsoln) .lt. .1*tol) return
+c
+c Not converged yet, try again
+c
+ eonk = eonk+dsoln
+ go to 1
+ end
+ function fnote(nodur,ivx,ip,nacc)
+c
+c This return the real duration of a note
+c
+ parameter (nm=24)
+ integer*4 nodur(nm,200),nacc(nm,200)
+ logical btest
+ ipback = ip
+ if (nodur(ivx,ip) .gt. 0) then
+ if (ip .gt. 1) then
+c
+c Check if this is last note of xtup
+c
+ if (nodur(ivx,ip-1).eq.0) then
+ ipback = ip-1
+ go to 2
+ end if
+ end if
+ fnote = nodur(ivx,ip)
+ return
+ end if
+2 continue
+c
+c Count back to prior non zero note. Start at ip to avoid neg index if ip=1.
+c Count how many doubled xtups notes there are from ip-1 to first note.
+c
+ ndoub = 0
+ do 1 ip1m1 = ipback , 1 , -1
+ if (nodur(ivx,ip1m1) .gt. 0) go to 4
+ if (ip1m1.lt.ip .and. btest(nacc(ivx,ip1m1),18)) ndoub=ndoub+1
+1 continue
+4 continue
+c
+c count forward to next non-0 nodur. Start at ip in case last note of xtup.
+c
+ do 3 iip = ip , 200
+c
+c Count doubled xtup notes from ip to end.
+c
+ if (btest(nacc(ivx,iip),18)) ndoub = ndoub+1
+ if (nodur(ivx,iip) .gt. 0) then
+c fnote = nodur(ivx,iip)/float(iip-ip1m1)
+ fnote = nodur(ivx,iip)/float(iip-ip1m1+ndoub)
+ if (btest(nacc(ivx,ip),18)) then
+ fnote = 2*fnote
+ else if (btest(nacc(ivx,ip),27)) then
+ fnote = 1.5*fnote
+ else if (ip .gt. 1) then
+ if (btest(nacc(ivx,ip-1),27)) fnote = .5*fnote
+ end if
+ return
+ end if
+3 continue
+ print*,' '
+ call printl
+ * ('Probable misplaced barline or incorrect meter, stopping')
+c call printl('Program error in fnote, send source to Dr. Don')
+ call stop1()
+ end
+ subroutine g1etchar(lineq,iccount,charq)
+ parameter(nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,issegno,isheadr,isvolt,fbon
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ character*1 charq
+ character*128 lineq,lnholdq
+c
+c Gets the next character out of lineq*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount. Ends program if no more input.
+c
+ if (iccount .eq. 128) then
+ call read10(lineq,lastchar)
+ if (lastchar) return
+ if (.not.endmac) then
+ iccount = 0
+ if (.not.mplay) nline = nline+1
+ else
+ endmac = .false.
+ iccount = icchold
+ lineq = lnholdq
+ end if
+ if (mrecord) then
+ call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ end if
+ end if
+ iccount = iccount+1
+ charq = lineq(iccount:iccount)
+ return
+ end
+ subroutine g1etnote(loop,ifig,optimize,fulltrans)
+ parameter (nm=24,nkb=3999,mv=24576,maxblks=4000)
+ character*1 chax
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * nbars,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ common /compage/ widthpt,ptheight,hoffpt,voffpt,
+ * nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idsig,isig1,
+ * mbrestsav,kchmid(18),ornrpt,shifton,barend,noinst,stickyS
+ logical lastchar,firstline,rest,loop,newmeter,fbon,issegno,barend,
+ * isheadr,fulbrp,usefig,isvolt,iskchb,kchmid,plusmin,ornrpt,
+ * stickyS
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /commus/ musize,whead20
+ logical mrecord,mplay,endmac,shifton,gotclef,optimize
+ character*128 lineq,lnholdq
+ character*1 charq,dotq,dumq,durq,charlq
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,cdot
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ logical novshrinktop,upslur,fontslur,ztrans,
+ * WrotePsslurDefaults,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ character*51 literq(3)
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ logical fulltrans
+ common /comsize/ isize(nm)
+ data literq
+ * /'Literal TeX string cannot start with 4 backslashes!',
+ * 'TeX string must have <129 char, end with backslash!',
+ * 'Type 2 or 3 TeX string can only start in column 1!'/
+ cdot = .false.
+1 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') charlq = charq
+ if (lastchar) then
+ if (index('/%',charlq) .eq. 0) then
+ print*
+ print*,'WARNING:'
+ print*,'Last non-blank character is "',charlq,'", not "/,%"'
+ print*,'ASCII code:',ichar(charlq)
+ write(15,'(/a)')'Last non-blank character is "'//charlq//
+ * '", not "/,%"'
+ write(15,'(a11,2x,i3)')'ASCII code:',ichar(charlq)
+c
+c Append " /" to last line. NB lastchar=.true. => ilbuf=nlbuf+1.
+c
+ ilbuf = ilbuf-1
+ lbuf(ilbuf) = lbuf(ilbuf)+2
+ bufq = bufq(1:ipbuf)//' /'
+ write(15,*)'appending <blank>/'
+ print*,'appending <blank>/'
+ lineq = lineq(1:iccount)//' /'
+ lastchar = .false.
+ go to 1
+ end if
+ return
+ end if
+ if (charq .eq. ' ') then
+ go to 1
+ else if (charq.eq.'%' .and. iccount.eq.1) then
+ iccount = 128
+ go to 1
+c
+c Replacement 1/22/12 since gfortran 4.7 with -O was choking here!
+c
+c else if ((ichar(charq).ge.97.and.ichar(charq).le.103) .or.
+ else if (index('abcdefg',charq).gt.0 .or.
+ * charq.eq.'r') then
+c
+c This is a note/rest. gotclef is only used for checking for clef before "/"
+c
+ if (cdot) go to 28
+ if (gotclef) gotclef=.false.
+ idotform = 0
+ numnum = 0
+ plusmin = .false.
+28 nnl(ivx) = nnl(ivx)+1
+ if (nnl(ivx) .gt. 200) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '>200 notes in line of music. Use smaller blocks!')
+ call stop1()
+ end if
+ dotq = 'x'
+c
+c Check if this is 'r ' and previous note was full-bar-pause
+c
+ fulbrp = charq.eq.'r' .and. lineq(iccount+1:iccount+1) .eq.' '
+ * .and. nnl(ivx).gt.1 .and. rest(ivx,max(1,nnl(ivx)-1)) .and.
+ * nodur(ivx,max(1,nnl(ivx)-1)) .eq. lenbar
+2 call g1etchar(lineq,iccount,durq)
+ ic = ichar(durq)
+ if (ic.le.57 .and. ic.ge.48) then
+c
+c Digit
+c
+ if (numnum .eq. 0) then
+ nnodur = ic-48
+ numnum = 1
+ go to 2
+ else if (numnum .eq. 1) then
+ if (charq .eq. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one digit allowed after rest symbol "r"!')
+ call stop1()
+ end if
+ numnum = 2
+ if (plusmin) then
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Before version 1.2, +/- was ignored if octave was!')
+ print*,
+ * 'explicitly specified. May need to edit old editions'
+ end if
+ go to 2
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '>2 digits in note symbol!')
+ call stop1()
+ end if
+ else if (durq.eq.'d') then
+ dotq = durq
+ if (lineq(iccount+1:iccount+1) .eq. 'd') then
+ iddot = 1
+ iccount = iccount+1
+c
+c Since we flow out, double dots won't work with other dot options
+c
+ end if
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, provided a number follows.
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789-.',durq) .eq. 0) then
+c
+c Backup, exit the loop normally
+c
+ iccount = iccount-2
+ go to 2
+ end if
+ call readnum(lineq,iccount,dumq,fnum)
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift also
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789-.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected number after 2nd +/- (shift dot)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (index('<>',durq) .gt. 0) then
+c
+c Accidental shift
+c
+c if (index('fsn',lineq(iccount-1:iccount-1)) .eq. 0) then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+c * 'Expected "f", "s", or "n" before "<" or ">"!')
+ * 'Expected "f", "s", "n" or "A" before "<" or ">"!')
+ call stop1()
+ end if
+ ipm = 1
+ if (durq .eq. '<') ipm=-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789.0',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected number after </> (accidental shift)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ fnum = ipm*fnum
+ if (fnum.lt.-5.35 .or. fnum.gt.1.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Horizontal accidental shift must be >-5.35 and <1.0!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 2
+ else if (index('+-',durq) .gt. 0) then
+ if (charq .ne. 'r') then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .gt. 0) then
+ ipm = 1
+ if (durq .eq. '-') ipm=-1
+ if (index('0123456789',lineq(iccount+1:iccount+1))
+ * .gt.0) then
+c
+c This may be start of accidental shift, but may be octave jump; then duration
+c
+ icsav = iccount
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (index('+-',durq) .gt. 0) then
+c
+c This is an accid shift since there's a 2nd consecutive signed number.
+c Check size of 1st number.
+c
+ if (fnum .gt. 30.5) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical accidental shift must be less than 31!')
+ call stop1()
+ end if
+ ipm = 1
+ if (durq .eq. '-') ipm = -1
+ call g1etchar(lineq,iccount,durq)
+ if (index('1234567890.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected 2nd number of accidental shift)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ fnum = ipm*fnum
+ if (fnum.lt.-5.35 .or. fnum.gt.1.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Horiz. accidental shift must be >-5.35 and <1.0!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 2
+ else
+c
+c Not accid shift, reset, then flow out
+c
+ iccount = icsav
+ end if
+ end if
+ end if
+ plusmin = .true.
+ if (numnum .eq. 2) then
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Before version 1.2, +/- was ignored if octave was!')
+ print*,
+ * 'explicitly specified. May need to edit old editions'
+ end if
+ go to 2
+c
+c It's a rest containing +|- . Must refer to a vertical shift. Read past.
+c
+ else
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,dum)
+ iccount = iccount-1
+ go to 2
+ end if
+c else if (index('ulare',durq) .gt. 0) then
+ else if (index('ularec',durq) .gt. 0) then
+ go to 2
+ else if (durq .eq. 'S') then
+c
+c Stemlength change
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('.0123456789:',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a number or colon here!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+ if (.not.stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off sticky stemshrinks without turning on!')
+ call stop1()
+ end if
+ stickyS = .false.
+ go to 2
+ end if
+ call readnum(lineq,iccount,durq,dum)
+ if (dum.lt..5 .or. dum.gt.4.) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Stemlength shortening must be from .5 to 4!')
+ call stop1()
+ end if
+ if (durq .ne. ':') then
+ iccount = iccount-1
+ else
+ if (stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on sticky stemshrinks when already on!')
+ call stop1()
+ end if
+ stickyS = .true.
+ end if
+ go to 2
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Check for midi-only accid. CANNOT coesist with accidental position tweaks, so
+c MUST come right after "f,s,n"
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 2
+ else if (durq .eq. 'p') then
+ fulbrp = charq.eq.'r'
+ if (.not. fulbrp) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'The option "p" only works with "r" (rest)!')
+ call stop1()
+ end if
+ go to 2
+ else if (durq .eq. 'b') then
+ if (charq .ne. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You entered "b"; I expected "rb"!')
+ call stop1()
+ else if (numnum .eq. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You entered "r" & "b" with two numbers!')
+ end if
+ go to 2
+ else if (durq .eq. 'x') then
+c
+c Xtuplet. Count number of doubled notes (for unequal xtups)
+c
+ if (btest(nacc(ivx,nnl(ivx)),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+c
+c Will set all durations to 0 except last one.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'First char after "x" in xtuplet must be "1"-"9"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (fnum .gt. 99) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Xtuplet cannot have more than 99 notes!')
+ call stop1()
+ else if (index(' DFnd',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only legal characters here are " ","D","F","n"!')
+ call stop1()
+ end if
+c
+c End of mandatory xtup inputs. Check for options. Note D,F,d must precede n.
+c
+ if (index('DF',durq) .gt. 0) then
+c
+c Double xtup note to make an un= xtup. Here, number already set, but may also
+c have used this before number was set.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ ndoub = 1
+ call g1etchar(lineq,iccount,durq)
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ call g1etchar(lineq,iccount,durq)
+ end if
+ if (durq .eq. 'n') then
+c
+c Number alteration stuff. After 'n', require '+-123456789fs ', no more 'DF'.
+c
+ numshft = 0
+30 call g1etchar(lineq,iccount,durq)
+ if (durq .eq. 'f') then
+ go to 30
+ else if (index('+-',durq) .gt. 0) then
+ numshft = numshft+1
+ if (numshft .eq. 3) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only 2 shifts are allowed after "n" in xtup!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character should be a digit or "."!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,snum)
+ iccount = iccount-1
+ if ((numshft.eq.1 .and. snum.gt.15.1) .or.
+ * (numshft.eq.2 .and. snum.gt.1.51)) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Shift number after "n" in xtup is out of range!')
+ call stop1()
+ end if
+ go to 30
+ else if (durq .eq. 's') then
+c
+c Slope alteration for bracket
+c
+ call getchar(lineq,iccount,durq)
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'For slope adjustment, this character must be "+" or "-"!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character should be a digit!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,snum)
+ iccount = iccount-1
+ if (nint(snum) .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slope adjustment cannot exceed 15!')
+ call stop1()
+ end if
+ go to 30
+ else if (index('123456789',durq) .gt. 0) then
+c
+c Unsigned integer => alternate printed number
+c
+ call readnum(lineq,iccount,durq,snum)
+ if (snum .gt. 15.1) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Alternate xtup number after "n" must be <16!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 30
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "n" in xtup!')
+ call stop1()
+ end if
+ end if
+ ntup = nint(fnum)
+ do 6 itup = 2 , ntup
+ nodur(ivx,nnl(ivx)) = 0
+ nnl(ivx) = nnl(ivx)+1
+110 call g1etchar(lineq,iccount,durq)
+ if (durq.eq.' ') then
+ go to 110
+ else if (durq .eq. 'o') then
+c
+c Ornament in xtup. "o" symbol must come AFTER the affected note
+c
+ call g1etchar(lineq,iccount,dumq)
+ if (index('(stmx+Tup._)e:>^bc',dumq) .eq. 0 ) then
+ if (index('fg',dumq) .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Fermata or segno not allowed in xtuplet!')
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal ornament!')
+ end if
+ call stop1()
+ end if
+ if (dumq .eq. 'T') then
+c
+c Trill. may be followed by 't' and/or number. read 'til blank
+c
+29 call g1etchar(lineq,iccount,dumq)
+ if (dumq .ne. ' ') go to 29
+ else if (dumq .eq. 'e') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('sfn?',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "e" in edit. accid. symbol!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. '?') call g1etchar(lineq,iccount,dumq)
+ else if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (.not.ornrpt) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off repeated ornaments before they were on!')
+ call stop1()
+ end if
+ ornrpt = .false.
+ else
+ call g1etchar(lineq,iccount,dumq)
+ end if
+ if (index('+- :',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in ornament symbol!')
+ call stop1()
+ end if
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on repeated ornaments but already on!')
+ call stop1()
+ end if
+ ornrpt = .true.
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ if (index('0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be an integer here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .eq. ':') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot shift AND repeat an ornament!')
+ call stop1()
+ end if
+c
+c 12/7/03 Allow horizontal shift on any ornament, not just breath and ceas.
+c
+ if (index('+-',durq) .gt. 0) then
+ if (index('.0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,
+ * ibarcnt-ibaroff+nbars+1,
+ * 'There should be a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ end if
+ go to 110
+ else if (index('st(){}',durq) .gt. 0) then
+c
+c Slur in xtup
+c
+ iposn = 0
+ numint = 0
+15 call g1etchar(lineq,iccount,dumq)
+ iposn = iposn+1
+ if (index('udlbfnht',dumq) .gt. 0) then
+ if (dumq.eq.'t' .and. durq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot use "t" as an option on a tie!')
+ call stop1()
+ end if
+ go to 15
+ else if (index('+-',dumq) .gt. 0) then
+ numint = numint+1
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (numint .eq. 1) then
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ else if (numint .eq. 2) then
+ if (abs(fnum).gt.6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in the range (-6.3,6.3)!')
+ call stop1()
+ end if
+ else
+c
+c Third signed integer, must be a midslur or curve spec.
+c
+ if (abs(fnum).gt.31) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur midheight must be in the range (-31,31)!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+c
+c Expecting curve parameters. Get two numbers
+c
+ do 40 i = 1 , 2
+ iccount = iccount+1
+ fnum = ichar(lineq(iccount:iccount))-48
+ if (abs(fnum-3.5) .gt. 3.6) then
+ call errmsg(lineq,iccount,
+ * ibarcnt-ibaroff+nbars+1,
+ * 'Slur curve parameter must be in range (0,7)!')
+ call stop1()
+ end if
+40 continue
+ iccount = iccount+1
+ end if
+ end if
+ iccount = iccount-1
+ go to 15
+
+ else if (dumq .eq. 's') then
+c
+c What follows should be one or two signed numbers for adjustment of line break
+c slur, end of 1st segment or start of second.
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not use linebreak slur options with font-based slurs!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be "+" or "-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ end if
+ iccount = iccount-1
+ go to 15
+ else if (dumq .eq. 'H' .and. iposn.gt.1) then
+ if (lineq(iccount+1:iccount+1) .eq. 'H')
+ * iccount=iccount+1
+ go to 15
+ else if (dumq .eq. 'p') then
+c
+c local change in postscript slur/tie adjustment default
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must use postscript slurs ("Ap") to use this option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" here!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('st',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "s" or "t" here!')
+ call stop1()
+ end if
+ go to 15
+ else if (dumq .ne. ' ') then
+ ic = ichar(dumq)
+ if ((ic.ge.48.and.ic.le.57) .or.
+ * (ic.ge.65.and.ic.le.90)) then
+ if (iposn .eq. 1) then
+ if (durq.eq.'t' .and. fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID not allowed on non-postscript tie!')
+ call stop1()
+ end if
+ go to 15
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID must be 2nd character in slur symbol!')
+ call stop1()
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in slur symbol!')
+ call stop1()
+ end if
+ go to 110
+ else if (index('0123456789#-nx_',durq) .gt. 0) then
+c
+c We have a figure. Only allow on 1st note of xtup
+c
+ if (itup .ne. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Figure in xtup only allowed on 1st note!')
+ call stop1()
+ else if (durq.eq.'x') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'No floating figures in xtuplets!')
+ call stop1()
+ end if
+ if (usefig .and. ivx.eq.1) ifig = 1
+26 call g1etchar(lineq,iccount,durq)
+ if (index('0123456789#-n_.:',durq) .gt. 0) then
+ go to 26
+ else if (durq .eq. 's') then
+ isligfont = .true.
+ go to 26
+ else if (durq .eq. '+') then
+c
+c vertical offset, must be integer then blank
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .ne. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer for vertical offset expected here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical offset must terminate figure!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 26
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in figure in xtuplet!')
+ call stop1()
+ end if
+ go to 110
+ else if (durq .eq. 'G') then
+ ngr = 1
+79 call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ ngr = nint(fnum)
+ iccount = iccount-1
+ go to 79
+ else if (index('AWulxs',charq) .gt. 0) then
+ go to 79
+ else if (charq .eq. 'm') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('01234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit less than 5 must follow "m" in a grace note!')
+ call stop1()
+ end if
+ go to 79
+ else if (charq .eq. 'X') then
+c
+c Space before main note
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('0123456789.',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 79
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A number must follow "X" in a grace note!')
+ call stop1()
+ end if
+ end if
+c
+c At this point, charq is first note name in rest (grace?)
+c
+ do 71 igr = 1 , ngr
+ numnum = 0
+ if (igr .gt. 1) then
+75 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 75
+ end if
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In grace, expected "a"-"g"!')
+ call stop1()
+ end if
+78 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+ if (index('1234567',charq) .gt. 0) then
+ if (numnum .eq. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one of "+-1234567" allowed here in grace!')
+ call stop1()
+ end if
+ numnum = 1
+ go to 78
+ else if (index('+-nfs',charq) .gt. 0) then
+ go to 78
+ end if
+c
+c Digits are possible octave numbers
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after note name in grace!')
+ call stop1()
+ end if
+71 continue
+ go to 110
+ else if (durq .eq. chax(92)) then
+ call chklit(lineq,iccount,literr)
+ if (literr .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * literq(literr))
+ call stop1()
+ end if
+ go to 110
+ else if (durq .eq. 'M') then
+c
+c Temporary trap until I get around putting this in pmxb
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Macros not yet allowed in xtuplets!')
+ call stop1()
+ else if (durq .eq. 'X') then
+ call g1etx(lineq,iccount,.false.,shifton,
+ * ibarcnt-ibaroff+nbars+1,udsp(ibarcnt+nbars+1),wheadpt)
+ go to 110
+ else if (durq .eq. 'z') then
+c
+c Chord note in xtup. Read past for now.
+c
+33 call g1etchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 33
+ go to 110
+ else if (durq .eq. 'D') then
+c
+c Dynamic mark
+c
+ call checkdyn(lineq,iccount,ibarcnt-ibaroff+nbars+1)
+ go to 110
+ else if (durq .eq. '%') then
+ if (iccount .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Comment must have "%" in column 1!')
+ call stop1()
+ end if
+ iccount = 128
+ go to 110
+ else if (durq .eq. '?') then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ go to 110
+ end if
+ if (durq .ne. '-') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting "-"')
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting number')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 110
+c+++
+ else if (durq.eq.']' .and. lineq(iccount+1:iccount+1).eq.'['
+ * .and. lineq(iccount+2:iccount+2).eq.' ') then
+ iccount = iccount+2
+ go to 110
+c+++
+ end if
+c
+c End of xtup options. At this point symbol can only be note or rest
+c
+ if (index('abcdefgr',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In xtup, this character is not allowed!')
+ call stop1()
+ else if (durq.eq.'r' .and. itup.eq.ntup) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry, PMX cannot end an xtuplet with a rest!')
+ call stop1()
+ end if
+7 call g1etchar(lineq,iccount,durq)
+ if (index('2345678ulcb',durq) .gt. 0) then
+ go to 7
+ else if (index('sfn',durq) .gt. 0) then
+c
+c Check for MIDI-only accidental. Cannot coexist with accid. pos'n shift.
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 7
+ else if (index('+-<>',durq) .gt. 0) then
+c
+c May have either octave jump or shifted accid. on main xtup note
+c
+ if (index('+-',durq).gt.0 .and.
+ * index('01234567890',lineq(iccount+1:iccount+1)).eq.0)
+ * go to 7
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 7
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double an xtup note to make an unequal xtup
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ ndoub = ndoub+1
+ go to 7
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ go to 7
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal option on xtuplet note!')
+ call stop1()
+ end if
+ if (itup .eq. ntup-ndoub) go to 3
+6 continue
+3 continue
+c
+c 6==End of loop for xtuplet input
+c
+ else if (durq .eq. 'm') then
+c
+c Multi-bar rest: next 1 or two digits are # of bars.
+c
+ if (mod(itsofar(iv),lenbar) .ne. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Multibar rest must start at beginning of bar!')
+ call stop1()
+ else if (iv.eq.1.and.ibarmbr.gt.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Multibar rest only OK at one time per block!')
+ call stop1()
+ end if
+c
+c For some purposes, pretend its one bar only
+c
+ nodur(iv,nnl(iv)) = lenbar
+ ibarmbr = nbars+1
+ mbrest = 0
+c20 call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer after "rm"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ mbrest = nint(fnum)
+ iccount = iccount-1
+c if (ichar(durq).ge.48.and.ichar(durq).le.57) then
+c mbrest = 10*mbrest+ichar(durq)-48
+c go to 20
+c end if
+ if (nv .gt. 1) then
+ if (iv .eq. 1) then
+ mbrestsav = mbrest
+ else
+ if (mbrest .ne. mbrestsav) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must enter same multi-bar rest in every voice!')
+ call stop1()
+ end if
+ end if
+c
+c Zero out mbrestsav so can check at end of input block whether
+c all voices have one
+c
+ if (iv .eq. nv) mbrestsav=0
+ end if
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "rm"!')
+ call stop1()
+ end if
+ else if (durq .eq. '.') then
+c
+c Dotted pattern. Close out note. Mult time by 3/4.
+c Set time for next note to 1/4. Start the note.
+c
+ idotform = 1
+ else if (durq .eq. ',') then
+ idotform = 3
+c
+c Now flow to duration setting, as if durq=' '
+c
+ else if (index('oL',durq) .gt. 0) then
+c
+c Suppress full bar rest, or look left for height
+c
+ if (charq .ne. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o","L" options only legal for rest, not note!')
+ call stop1()
+ end if
+ go to 2
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double note for xtup. Must check here in case "D" or "F" came before "x" or on
+c last note of xtup. Need to flag it in pmxa since affects horiz. spacing.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ go to 2
+ else if (durq .eq. 'A') then
+c
+c Main note accidental option
+c
+ call getchar(lineq,iccount,durq)
+ if (index('o+-<>',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o",+","-","<",">" are the only legal options here!')
+ call stop1()
+ end if
+c
+c Need more stuff here
+c
+ if (durq .ne. "o") then
+c
+c Back up 1, flow out, will get +|-|<|> next loop preceded by "A", and will
+c proceed to number input checking
+c
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character!')
+ print*,'ASCII code:',ichar(durq)
+ call stop1()
+ end if
+c
+c End of block for note options.
+c
+c Set the duration
+c
+ if (idotform .gt. 0) then
+ if (idotform .eq. 1) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)*3/2
+ else if (idotform .eq. 2) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/3
+ else if (idotform .eq. 3) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)
+ else if (idotform .eq. 4) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/2
+ end if
+ else if (ibarmbr.ne.nbars+1 .and. .not.fulbrp) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)
+c
+c Check for double dot
+c
+ if (iddot .eq. 1) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*7/6
+ iddot = 0
+ end if
+ else if (fulbrp) then
+ nodur(ivx,nnl(ivx)) = lenbar
+c
+c Use a one-line function to set nnodur. It gives inverse of ifnodur.
+c
+ nnodur = index('62514x0x37',
+ * chax(48+int(log(.1+lenbar)/.69315)))-1
+ fulbrp = .false.
+ end if
+ rest(ivx,nnl(ivx)) = charq.eq.'r'
+c
+c If inside forced beam, check if note is beamable
+c
+ if (fbon) then
+ if (nodur(ivx,nnl(ivx)) .lt. 16) go to 120
+ if (nnl(ivx) .gt. 1) then
+ if (nodur(ivx,nnl(ivx)-1) .eq. 0) go to 120
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Unbeamable thing in forced beam!')
+ call stop1()
+ end if
+120 continue
+c
+c Get number of prior bars for later check on whether note spans bar line
+c
+ nbb4 = itsofar(ivx)/lenbar
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ if (mod(itsofar(ivx),lenbar) .eq. 0) then
+ nbars = nbars+1
+ if (shifton) barend = .true.
+c
+c Will check barend when 1st note of next bar is entered.
+c
+ if (nbars .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot have more than 15 bars in an input block!')
+ call stop1()
+ end if
+ nib(ivx,nbars) = nnl(ivx)
+ if (firstline .and. lenbar.ne.lenbr1) then
+c
+c Just finished the pickup bar for this voice.
+c
+ if (itsofar(ivx) .ne. lenbr0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Pickup bar length disagrees with mtrnum0!')
+ call stop1()
+ end if
+ lenbar = lenbr1
+ itsofar(ivx) = 0
+ end if
+ else if (barend) then
+ if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ end if
+ barend = .false.
+ else if (itsofar(ivx)/lenbar .gt. nbb4) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'This note spans a bar line!')
+ call stop1()
+ end if
+ if (idotform.eq.1 .or. idotform.eq.3) then
+ call g1etchar(lineq,iccount,charq)
+ if (index('abcedfgr',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected note name or "r" here!')
+ call stop1()
+ end if
+ idotform = idotform+1
+ numnum = 1
+ go to 28
+ end if
+c
+c End of sub block for note-rest
+c
+ else if (charq .eq. 'z') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected chord note name here!')
+ call stop1()
+ end if
+25 call g1etchar(lineq,iccount,durq)
+c if (index('dre12345678',durq) .gt. 0) then
+ if (index('dre12345678c',durq) .gt. 0) then
+ go to 25
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Check for midi-only accid. CANNOT coesist with accidental position tweaks, so
+c MUST come right after "f,s,n"
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 25
+ else if (durq .eq. 'A') then
+ if (index('fsn',lineq(iccount-1:iccount-1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "f,s,n" before "A" in chord note!')
+ call stop1()
+ end if
+ go to 25
+ else if (index('<>',durq) .gt. 0) then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .eq. 0) then
+c if (index('fsncA',lineq(iccount-1:iccount-1)) .eq. 0) then ! Causes problems
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "f,s,n,A" before "<" or ">"!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('1234567890.',durq) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number to start here for accidental shift!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 25
+ else if (index('+-',durq) .gt. 0) then
+ if (index('1234567890.',lineq(iccount+1:iccount+1)) .eq. 0)
+ * go to 25
+c
+c Number or '.' (durq) follows +/- . Get it.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '.' .and. index('1234567890',
+ * lineq(iccount+1:iccount+1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * '"." here must be followed by a digit!')
+ call stop1()
+ else if (index('sfndA',lineq(iccount-2:iccount-2)).eq.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Number after +/- must follow "d,s,f,n,A"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (index('+-',durq) .eq. 0) then
+ iccount = iccount-1
+ go to 25
+ end if
+c
+c 2nd +/-
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '.') call g1etchar(lineq,iccount,durq)
+ if (index('1234567890',durq) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 25
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in chord note!')
+ call stop1()
+ end if
+ else if (charq .eq. 'G') then
+ ngr = 1
+9 call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ ngr = nint(fnum)
+ iccount = iccount-1
+ go to 9
+ else if (index('AWulxs',charq) .gt. 0) then
+ go to 9
+ else if (charq .eq. 'm') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('01234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit less than 5 must follow "m" in a grace note!')
+ call stop1()
+ end if
+ go to 9
+ else if (charq .eq. 'X') then
+c
+c Space before main note
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('0123456789.',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 9
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A number must follow "X" in a grace note!')
+ call stop1()
+ end if
+ end if
+c
+c At this point, charq is first note name in rest (grace?)
+c
+ do 19 igr = 1 , ngr
+ numnum = 0
+ if (igr .gt. 1) then
+55 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 55
+ end if
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In grace, expected "a"-"g"!')
+ call stop1()
+ end if
+18 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+ if (index('1234567',charq) .gt. 0) then
+ if (numnum .eq. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one of "+-1234567" allowed here in grace!')
+ call stop1()
+ end if
+ numnum = 1
+ go to 18
+c else if (index('nfs',charq) .gt. 0) then
+ else if (index('+-nfs',charq) .gt. 0) then
+ go to 18
+ end if
+c
+c Digits are possible octave numbers
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after note name in grace!')
+ call stop1()
+ end if
+19 continue
+ else if (charq .eq. chax(92)) then
+ call chklit(lineq,iccount,literr)
+ if (literr .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * literq(literr))
+ call stop1()
+ end if
+ else if (charq .eq. 'o') then
+c
+c Ornament on non-xtup note. "o" symbol must come AFTER the affected note
+c
+ if (nnl(ivx) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o" must be in same input block, after affected note!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('(stmgx+Tupf._)e:>^bc',dumq) .eq. 0 ) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal ornament!')
+ call stop1()
+ end if
+ if (dumq .eq. ':') then
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected blank after "o:"!')
+ call stop1()
+ else if (.not.ornrpt) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off repeated ornaments before they were on!')
+ call stop1()
+ end if
+ ornrpt = .false.
+ else if (dumq .eq. 'g') then
+ if (issegno) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry, only one "segno" per input block!')
+ call stop1()
+ else if (ivx .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'segno can only be in voice 1!')
+ call stop1()
+ end if
+ issegno = .true.
+12 call g1etchar(lineq,iccount,dumq)
+ if (dumq.eq.'-' .or.
+ * (ichar(dumq).ge.48.and.ichar(dumq).le.58)) go to 12
+ if (dumq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in segno ornament symbol!')
+ call stop1()
+ end if
+ else if (dumq .eq. 'T') then
+c
+c Trill. may be followed by 't' and/or number. read 'til blank
+c
+22 call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected blank after ":"!')
+ call stop1()
+ end if
+ go to 32
+ else if (dumq .ne. ' ') then
+ go to 22
+ end if
+ else if (dumq .eq. 'f') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index(' d+-:',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "f" in fermata ornament symbol!')
+ call stop1()
+ end if
+ if (dumq .eq. 'd') call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. ':') go to 32
+ else if (dumq .eq. 'e') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('sfn?',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "e" in edit. accid. symbol!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. '?') call g1etchar(lineq,iccount,dumq)
+ else
+ call g1etchar(lineq,iccount,dumq)
+ end if
+ if (index('+- :',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in ornament symbol!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ if (index('0123456789',lineq(iccount+1:iccount+1)).eq.0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be an integer here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .eq. ':') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot shift AND repeat an ornament!')
+ call stop1()
+ end if
+c
+c 12/7/03 Allow horizontal shift on any ornament, not just breath and caes.
+c
+ if (index('+-',durq) .gt. 0) then
+ if (index('.0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ end if
+32 continue
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on repeated ornaments but already on!')
+ call stop1()
+ end if
+ ornrpt = .true.
+ end if
+ else if (index('st(){}',charq) .gt. 0) then
+ numint = 0
+ iposn = 0
+8 call g1etchar(lineq,iccount,dumq)
+ iposn = iposn+1
+ if (charq.eq.'t' .and. dumq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot use "t" as an option on a tie!')
+ call stop1()
+ end if
+ if (index('udltb+-fnhHps ',dumq) .eq. 0) then
+c
+c Check for explicit ID code.
+c
+ ic = ichar(dumq)
+ if (ic.lt.48 .or. (ic.gt.57.and.ic.lt.65) .or.
+ * ic.gt.90) then
+c
+c Not 0-9 or A-Z, so exit
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in slur symbol!')
+ call stop1()
+ else
+c
+c It is a possible ID code. Right place?
+c
+ if (iposn .ne. 1) then
+c
+c Slur ID is not 2nd!
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID must be second character in slur symbol!')
+ call stop1()
+ else if (charq.eq.'t' .and. fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID not allowed on non-postscript tie!')
+ call stop1()
+ end if
+ end if
+c
+c Slur ID is OK. Note it cannot be "H" at this point..
+c
+ go to 8
+ else if (dumq .eq. 'H') then
+ if (iposn .eq. 1) go to 8
+c
+c "H" is NOT an ID code.
+c
+ if (.not.fontslur .and. charq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot reshape postscript ties this way!')
+ call stop1()
+ end if
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount=iccount+1
+ iposn = iposn+1
+ end if
+ go to 8
+ else if (index('fh',dumq).gt.0 .and. .not.fontslur
+ * .and. charq.eq.'t') then
+c
+c 3/9/03 Can't reshape postscript tie.
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot reshape postscript ties this way!')
+ call stop1()
+ else if (dumq .eq. 'p') then
+c
+c local change in postscript slur/tie adjustment default
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must use postscript slurs ("Ap") to use this option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" here!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('st',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "s" or "t" here!')
+ call stop1()
+ end if
+ iposn = iposn+2
+ go to 8
+ end if
+ if (index('udltbfnh',dumq) .gt. 0) then
+ go to 8
+ else if (index('+-',dumq) .gt. 0) then
+ numint = numint+1
+ if (fontslur .and. charq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"+|-" for slur height only allowed in "s"-slurs!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (numint .eq. 1) then
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ else if (numint .eq. 2) then
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ else
+c
+c Third signed integer, must be a midslur or curve spec.
+c
+ if (abs(fnum).gt.31) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur midheight must be in the range (-31,31)!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+c
+c Expecting curve parameters. Get two numbers
+c
+ do 41 i = 1 , 2
+ iccount = iccount+1
+ fnum = ichar(lineq(iccount:iccount))-48
+ if (abs(fnum-3.5) .gt. 3.6) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur curve parameter must be in range (0,7)!')
+ call stop1()
+ end if
+41 continue
+ iccount = iccount+1
+ end if
+ end if
+ iccount = iccount-1
+ go to 8
+ else if (dumq .eq. 's') then
+c
+c What follows should be one or two signed numbers for adjustment of line break
+c slur, end of 1st segment or start of second.
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not use linebreak slur options with font-based slurs!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be "+" or "-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ end if
+ iccount = iccount-1
+ go to 8
+ else if (dumq .eq. 'H' .and. iposn.gt.1) then
+ if (lineq(iccount+1:iccount+1) .eq. 'H') iccount=iccount+1
+ go to 8
+ end if
+ else if (charq .eq. '?') then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+ if (durq .ne. '-') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting "-"!')
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting number!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ end if
+ else if ((ichar(charq).ge.48.and.ichar(charq).le.57) .or.
+ * index('#-nx_',charq) .gt. 0) then
+c
+c We have a figure. Must come AFTER the note it goes under
+c
+ if (itsofar(ivx).eq.0 .and.
+ * (.not.firstline.or.lenbr0.eq.0.or.lenbar.eq.lenbr0)) then
+c
+c Figure before first note in block
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot put figure before first note in block!')
+ call stop1()
+ end if
+ if (charq.eq.'x') then
+ indxb = index(lineq(iccount:128),' ')
+ if (indxb .lt. 5) then
+ call errmsg(lineq,iccount+indxb-1,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot have a blank here in floating figure!')
+ call stop1()
+ end if
+ end if
+ if (usefig) ifig = 1
+5 call g1etchar(lineq,iccount,charq)
+ if (index(' 0123456789#-nx_.:+s',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in figure!')
+ call stop1()
+ else if (charq .eq. '+') then
+c
+c vertical offset, must be integer, then blank
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer for vertical offset expected here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,charq,fnum)
+ if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical offset must terminate figure!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 5
+ else if (charq .eq. 's') then
+ isligfont = .true.
+ end if
+ if (charq .ne. ' ') go to 5
+ else if (charq .eq. '[') then
+ if (fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Started forced beam while another was open!')
+ call stop1()
+ end if
+ fbon = .true.
+17 call g1etchar(lineq,iccount,charq)
+ if (index('uljhf:',charq) .gt. 0) then
+ go to 17
+ else if (index('+-',charq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 17
+ else if (charq .eq. 'm') then
+c
+c Forced multiplicity, next char should be 1-4
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('1234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced multiplicity for a beam must be 1, 2, 3, or 4!')
+ call stop1()
+ end if
+ go to 17
+ else if (charq .ne. ' ') then
+ if (index('0123456789',charq) .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "[", digits must now be preceeded by "+" or "-"!')
+ print*,'You will have to edit older sources to meet this rqmt,'
+ print*,'but it was needed to allow 2-digit height adjustments.'
+ print*,'Sorry for the inconvenience. --The Management'
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after [!')
+ end if
+ call stop1()
+ end if
+ else if (charq .eq. ']') then
+ if (.not.fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced beam stop with no corresponding start!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,charq)
+ if (charq .eq. '-') then
+ if (lineq(iccount+1:iccount+2) .ne. '[ ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'Only sequence allowed here is "[ "!')
+ call stop1()
+ else
+ iccount = iccount+2
+ end if
+ else if (charq .eq. '[') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be a blank!')
+ call stop1()
+ end if
+ else
+c
+c Forced beam is really ending
+c
+ fbon = .false.
+ if (charq .eq. 'j') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be a blank!')
+ call stop1()
+ end if
+ else if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"]" must be followed by blank, "j", "-", or "["!')
+ call stop1()
+ end if
+ end if
+ else if (charq .eq. 'D') then
+c
+c Dynamic mark
+c
+ if (nnl(ivx) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"D" must not come before any notes have been entered!')
+ call stop1()
+ end if
+ call checkdyn(lineq,iccount,ibarcnt-ibaroff+nbars+1)
+ else if (index('lhw',charq) .gt. 0) then
+c
+c Save position for later check
+c
+ icclhw = iccount
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789.+- ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "l", "w", or "h"!')
+ call stop1()
+ end if
+ isheadr = isheadr .or. charq .eq. 'h'
+ if (index(' +-',durq) .gt. 0) then
+c
+c There is a header (or lower string?)
+c
+ if (index('+-',durq) .gt. 0) then
+c
+c User-defined vert offset (\internote).
+c
+ if (charq .ne. 'h') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"+" or "-" not permitted here!')
+ call stop1()
+ end if
+c
+c Have "h" followed by +/- . Check for digit.
+c Can blow durq since not using fnum for now, but...
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a digit here!')
+ call stop1()
+ end if
+c
+c Have "h" followed by +/- followed by a digit. No need to get the number.
+c
+c call readnum(lineq,iccount,durq,fnum)
+ end if
+ if (charq .ne. 'w') then
+c
+c Header or lower string.
+c
+ if (icclhw .ne. 1) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * '"h" or "l" must be first character in line!')
+ call stop1()
+ end if
+c
+c Read past the next line, which has the string.
+c
+ call read10(charq,lastchar)
+ nline = nline+1
+ iccount = 128
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Symbol "w" (width) must be followed by a digit!')
+ call stop1()
+ end if
+ else
+c
+c Height or width change spec. Check if at start of piece.
+c
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Symbol must go at top of first input block!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,dimen)
+c
+c Check units. Convert to points
+c
+ if (durq .eq. ' ' .or. durq .eq. 'p') then
+ dimen = dimen+.5
+ else if (durq .eq. 'i') then
+ dimen = dimen*72+.5
+ else if (durq .eq. 'm') then
+ dimen = dimen/25.4*72+.5
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal unit; must be "p","i",or"m"!')
+ call stop1()
+ end if
+ if (charq .eq. 'h') then
+ ptheight = int(dimen)
+ else
+ widthpt = int(dimen)
+ end if
+ end if
+ else if (charq .eq. 'm') then
+c
+c Time signature change. Only allow at beginning of block.
+c mtrnuml, mtrdenl (logical) and p (printable) will be input.
+c mtrnuml=0 initially. (In common)
+c
+c Check whether at beginning of a block
+c
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Meter change only OK in voice 1, at start of block!')
+ print*,'voice number is',ivx
+ call stop1()
+ end if
+ newmeter = .true.
+ call readmeter(lineq,iccount,mtrnuml,mtrdenl)
+ if (mtrnuml .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Digit 0 not allowed here!')
+ call stop1()
+c else if (mtrdenl .eq. 1) then
+cc
+cc Kluge!!!
+cc
+c mtrdenl = 2
+c mtrnuml = 2*mtrnuml
+ end if
+ call readmeter(lineq,iccount,mtrnmp,mtrdnp)
+c
+c Read past printed time signature; not used in pmxa.
+c
+ lenbeat = i1fnodur(mtrdenl,'x')
+ lenmult = 1
+ if (mtrdenl .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbar = lenmult*mtrnuml*lenbeat
+ mtrnuml = 0
+ else if (charq .eq. 'C') then
+ call g1etchar(lineq,iccount,durq)
+ if (.not.(index('tsmanrbf',durq).gt.0 .or.
+c * (ichar(durq).ge.48 .and. ichar(durq).le.54))) then
+ * (ichar(durq).ge.48 .and. ichar(durq).le.55))) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Must have t,s,m,a,n,r,b,f or 1-6 after C!')
+ * 'Must have t,s,m,a,n,r,b,f or 1-7 after C!')
+ call stop1()
+ end if
+ gotclef = .true.
+ else if (charq .eq. 'R') then
+ if (ivx .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Repeats can only go in voice 1!')
+ call stop1()
+ end if
+10 call g1etchar(lineq,iccount,durq)
+ if (index('lrdDbz',durq) .gt. 0) go to 10
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "R" (repeat/double bar)!')
+ call stop1()
+ end if
+ else if (charq .eq. 'V') then
+c
+c Ending
+c
+ if (iv .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Voltas are only allowed in voice #1!')
+ call stop1()
+ else if (isvolt) then
+ print*
+ print*,'*******WARNING********'
+ write(15,'(/,a)')'*******WARNING********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There is more than one volta in this input block.!')
+ print*,'This may work in a score, but WILL NOT work in parts.'
+ print*,
+ *'Safest to have only 1 volta per block, at the start of the block'
+ write(15,'(a)')
+ * 'This may work in a score, but WILL NOT work in parts.'
+ write(15,'(a)')
+ *'Safest to have only 1 volta per block, at the start of the block'
+ end if
+ isvolt = .true.
+ lvoltxt = 0
+11 call g1etchar(lineq,iccount,durq)
+ if (durq .ne.' ') then
+ go to 11
+ end if
+ else if (charq .eq. 'B') then
+ continue
+ else if (charq .eq. 'P') then
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only allowed at beginning of block!')
+ call stop1()
+ end if
+16 call g1etchar(lineq,iccount,durq)
+ if (durq.eq.'l'.or.durq.eq.'r'.or.(ichar(durq).ge.48 .and.
+ * ichar(durq).le.57)) go to 16
+ if (durq .eq. 'c') then
+c
+c Expect a centered name, and it has to be last option
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '"') then
+c
+c Quoted name, go to next quote mark
+c
+ do 35 iccount = iccount+1 , 127
+ if (lineq(iccount:iccount) .eq. '"') go to 36
+35 continue
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Missing close quote after page number command (P)!')
+ call stop1()
+36 continue
+ else if (durq .ne. ' ') then
+c
+c Space-delimited name, look for next blank
+c
+ do 37 iccount = iccount+1 , 127
+ if (lineq(iccount:iccount) .eq. ' ') go to 38
+37 continue
+38 continue
+ end if
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only "l","r","c" or digit allowed after "P"!')
+ call stop1()
+ end if
+ else if (charq .eq. 'W') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('.0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number to start here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,wminnh(ibarcnt+nbars+1))
+ else if (charq .eq. 'T') then
+c
+c Titles
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('itc',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must put "i", "t", or "c" after "T"!')
+ call stop1()
+ end if
+ ihead = ihead+2**(index('itc',durq)-1)
+c
+c Maybe a number after 'Tt', but ignore here. Read past string on next line.
+c
+ call read10(charq,lastchar)
+ nline = nline+1
+ iccount = 128
+ else if (charq .eq. 'A') then
+27 call g1etchar(lineq,iccount,durq)
+ if (index('rbsdeK',durq) .gt. 0) then
+ go to 27
+ else if (durq .eq. 'v') then
+ if (ibarcnt .eq. 0) novshrinktop = .true.
+ go to 27
+ else if (durq .eq. 'a') then
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fbar)
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'i') then
+ call g1etchar(lineq,iccount,durq)
+c
+c Local interstaff correction. Set to -1. if not specifiec, or after use,
+c or anytime except at top, since pmxb handles all times except at top.
+c
+ call readnum(lineq,iccount,durq,tintstf)
+ if (ibarcnt .eq. 0) fintstf = tintstf
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'I') then
+c
+c Global interstaff correction. Use in place of fintstf if fintstf<0
+c
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,gintstf)
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'o') then
+ optimize = .true.
+ go to 27
+ else if (durq .eq. 'S') then
+ do 50 iiv = 1 , nv
+ call g1etchar(lineq,iccount,durq)
+ if (index('-0st',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "AS", need nv instances of "s,t,-,0"!')
+ call stop1()
+ end if
+ if (durq.eq.'-'.or.durq.eq.'s') then
+ isize(iiv) = 1
+ else if (durq.eq.'t') then
+ isize(iiv) = 2
+ end if
+50 continue
+ go to 27
+ else if (durq .eq. 'p') then
+ fontslur = .false.
+42 continue
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-',durq) .gt. 0) then
+c
+c Characters to change defaults for ps slurs
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('shtc',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only letters allowed here are "s","h","t","c"!')
+ call stop1()
+ end if
+c
+c Now check for another default modifier
+c
+ go to 42
+ else if (index('lh',durq) .gt. 0) then
+c
+c Flags for optional linebreak ties or header specials
+c
+ go to 42
+ else
+ iccount = iccount-1
+ end if
+ go to 27
+ else if (durq .eq. 'N') then
+c
+c Override default name for a part file. Must have part number, then
+c partname in quotes. Must be on line by itself, and start in column 1.
+c Will only be passed thru to scor2prt.
+c
+ if (iccount .ne. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"AN" must start in column 1!')
+ call stop1()
+ end if
+ ndxquote = index(lineq,'"')
+ if (ndxquote.lt.4 .or. ndxquote.gt.5 .or.
+ * index('123456789',lineq(3:3)).eq.0 .or.
+ * (ndxquote.eq.5.and.index('012',lineq(4:4)).eq.0)) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"AN" must be followed by inst. #, then quote!')
+ call stop1()
+ end if
+ ndxquote = index(lineq(ndxquote+1:128),'"')
+ if (ndxquote .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In "AN", file name must be in quotes!')
+ call stop1()
+ end if
+ iccount = 128
+ else if (durq .eq. 'T') then
+ cstuplet = .true.
+ else if (durq .eq. 'R') then
+c
+c Get full name of normal include file; must occupy remainder of line
+c
+ call getpmxmod(.false.,lineq(iccount+1:128))
+ iccount = 128
+ else if (durq .eq. 'c') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('l4',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only "l" or "4" is allowed here!')
+ call stop1()
+ end if
+ if (durq .eq. 'l' ) then
+ hoffpt = -25
+ voffpt = -45
+ else if (durq .eq. '4') then
+ ptheight = 745
+ widthpt = 499
+ hoffpt = -24
+ voffpt = -24
+ end if
+ go to 27
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "A" must follow one of the letters abcdeiINprRsST!')
+ call stop1()
+ end if
+ else if (charq .eq. 'K') then
+c
+c Rules and function of K command
+c
+c Only 1 K +/-n +/-m allowed per block if n.ne.0 (transposition). isig1 is
+c initial sig, and must be passed to pmxb because it is needed when topfile
+c is called, which is before the K+n+m command is read in pmxb. Also, we
+c compute and save ibrkch and newkey for each syst, accounting for key changes,
+c then adjust fbar to make poenom much more accurate.
+c Jan 02: Now K-0+[n] is used to transpose e.g. from f to f#.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-i',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"K" (transpose or key change) must be followed by "+,-,i"!')
+ call stop1()
+ end if
+ if (durq .ne. 'i') then
+c
+c Normal key change and/or transposition)
+c
+c iccount = iccount+1
+ num1 = 44-ichar(durq)
+c
+c num1= +1 or -1
+c
+ ztrans = num1.eq.-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st +/- must be followed by a number!')
+ call stop1()
+ end if
+c iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ num1 = nint(fnum)*num1
+ ztrans = ztrans .and. num1.eq.0
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st number after "K" must be followed by "+,-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ num2 = 44-ichar(durq)
+ call readnum(lineq,iccount,durq,fnum)
+ num2 = num2*int(fnum+.1)
+ if (num1.eq.0 .and. .not.ztrans) then
+c
+c Key change, only one per block allowed
+c
+ if (iskchb) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one key change allowed per input block!')
+ call stop1()
+ end if
+ iskchb = .true.
+ nkeys = nkeys+1
+ kchmid(nkeys) = mod(itsofar(ivx),lenbar).ne.0
+c
+c Make ibrkch = barnum-1 if at start of bar, so fsyst advances ok at linebreak.
+c
+ ibrkch(nkeys) = ibarcnt+nbars
+ if (kchmid(nkeys)) ibrkch(nkeys) = ibrkch(nkeys)+1
+ newkey(nkeys) = num2+idsig
+ else
+c
+c Transposition
+c
+ fulltrans = .true.
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Transposition must be at top of first input block!')
+ call stop1()
+ end if
+ isig1 = num2
+ idsig = isig1-newkey(1)
+c
+c idsig is the difference between sig after transposition, and sig in setup.
+c It may alter # of accid's in key changes if there is transposition.
+c
+ end if
+ else ! durq='i'
+c
+c 110522/110529
+c Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey]
+c and repeat i[...] for multiple instruments. Store info here if ibarcnt=0
+c so can pass to topfile (via comInstTrans), which is called before getnote.
+c Otherwise, will store info from getnote. Initialize EarlyTransOn and
+c LaterInstTrans to .false. in blockdata. Set EarlyTransOn from here;
+c LaterInstTrans from g1etnote. Zero both out after use. nInstTrans really
+c only needed for instrument-signatures, not transpositions. iTransAmt is
+c ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for
+c each staff.
+c
+c if (fulltrans) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Cannot yet combine full and instrument transposition!')
+c call stop1()
+c end if
+ call GetiTransInfo(.true.,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+ end if
+ else if (charq .eq. '|') then
+c
+c Optional bar symbol
+c
+ if (mod(itsofar(ivx),lenbar).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar line marker out of place!')
+ call stop1()
+ else if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ end if
+ else if (charq .eq. '/') then
+ if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'WARNING: Block ended with repeated ornament still on!')
+ ornrpt = .false.
+ end if
+ if (stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'WARNING: Block ended with sticky stemshrink still on!')
+ stickyS = .false.
+ end if
+ if (fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block ended with forced beam open!')
+ call stop1()
+ else if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ else if (gotclef) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not enter clef at end of input block!')
+ call stop1()
+ end if
+ barend = .false.
+c
+c Perform time checks
+c
+ if (mod(itsofar(ivx),lenbar).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block duration not divisible by lenbar!')
+ print*,'lenbar is ',lenbar
+ call stop1()
+ else if (ivx.gt.1 .and. itsofar(ivx).ne.itsofar(1)) then
+ print*
+ print*,'# of bars in voice 1, current voice:',
+ * itsofar(1)/lenbar,itsofar(ivx)/lenbar
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block duration not equal to voice 1!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ' ' .and. iv.eq.nv) then
+c
+c End of input block
+c
+ loop = .false.
+ else
+c
+c Start a new voice
+c
+ if (lenbr0.ne.0 .and. firstline) lenbar = lenbr0
+ nbars = 0
+ if (durq .eq. ' ') then
+c
+c New voice is on next staff
+c
+ iv = iv+1
+ ivx = iv
+ else
+c
+c New voice is on same staff. Set up for it
+c
+ ivx = nv+1
+ do 23 iiv = 1 , nv
+ if (nvmx(iiv) .eq. 2) ivx = ivx+1
+23 continue
+ if (ivx .gt. nm) then
+ write(*,'(1x,a21,i3,a23)')'Cannot have more than',nm,
+ * ' lines of music at once'
+ call stop1()
+ end if
+ nvmx(iv) = 2
+ ivmx(iv,2) = ivx
+ itsofar(ivx) = 0
+ nnl(ivx) = 0
+ do 24 j = 1 , 200
+ rest(ivx,j) = .false.
+ nacc(ivx,j) = 0
+24 continue
+c
+c For midi stuff, record that there is a 2nd line of music in this voice
+c
+ if (ismidi) twoline(iv) = .true.
+ end if
+ end if
+ iccount = 128
+ else if (charq .eq. 'S') then
+c
+c New nsyst: for use with partmaker scor2prt, for parts w/ diff # of systs.
+c
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"S" can only be in first input block!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit must follow "S"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ nsyst = nint(fnsyst)
+14 continue
+ if (durq .eq. 'P') then
+c
+c New npages for parts.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ npages = nint(fnsyst)
+ go to 14
+ else if (durq .eq. 'm') then
+c
+c Reset musize (musicsize).
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ musize = nint(fnsyst)
+ wheadpt = whead20*musize
+ go to 14
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in "S" symbol!')
+ call stop1()
+ end if
+ else if (charq .eq. 'L') then
+ nflb = nflb+1
+ ibarflb(nflb) = ibarcnt+nbars+1
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Need integer to define forced line break!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,sysflb)
+ isysflb(nflb) = nint(sysflb)
+ if (nflb .gt. 1) then
+c
+c Check if new number is > prior one
+c
+ if (isysflb(nflb) .le. isysflb(nflb-1)) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'You already forced a line break at a later line!')
+ call stop1()
+ end if
+ end if
+ if (npages .eq. 0) then
+ print*
+ print*,'WARNING! You forced a line break at line ',
+ * isysflb(nflb),' but npage = 0. Continue?'
+ read(*,'(a)') charq
+ if (index('yY',charq) .eq. 0) call stop1()
+ else if (isysflb(nflb) .gt. nsyst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced line break at line num > nsyst!')
+ call stop1()
+ else if (index(' PM',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have " ", "P", or "M" here!')
+ call stop1()
+ end if
+ if (durq .eq. 'P') then
+c
+c Forced page break here, get page number.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Need integer to define forced page break!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ nfpb = nfpb+1
+ ipagfpb(nfpb) = nint(fnum)
+ isysfpb(nfpb) = isysflb(nflb)
+ if (ipagfpb(nfpb) .gt. npages) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Forced page break at page num > npages!')
+ call stop1()
+ else if (nfpb .gt. 1) then
+ if (ipagfpb(nfpb) .le. (ipagfpb(nfpb-1))) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Forced page break numbers must increase!')
+ call stop1()
+ end if
+ end if
+ end if
+ if (index(' M',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in linebreak symbol!')
+ call stop1()
+ else if (durq .eq. 'M') then
+ nmovbrk = nmovbrk+1
+ isysmb(nmovbrk) = isysflb(nflb)
+ call g1etchar(lineq,iccount,durq)
+31 if (durq .eq. '+') then
+c
+c Vertical spacing, read past number.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer required here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ go to 31
+ else if (durq .eq. 'i') then
+c
+c Change indentation,
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('.123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Decimal number required here!')
+ call stop1()
+ end if
+c
+c fracsys was initialized in block data to all 0.'s
+c
+ call readnum(lineq,iccount,durq,fracsys(nmovbrk))
+ go to 31
+ else if (durq .eq. 'c') then
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'r') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "+" or "-" after "r" as movement break option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'n') then
+c
+c Change # of voices. Input ninow, iorig(1...ninow). Will use names,
+c staves per inst. and clefs corr. to iorig in original list of instruments.
+c
+ nv = 0
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c Signals a 2-digit number, get next two characters
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,dumq)
+ if (index('12',durq).eq.0
+ * .or.index('0123456789',dumq).eq.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal new number of instruments '//durq//dumq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ read(lineq(iccount-1:iccount),'(i2)')ninow
+ else
+c
+c durq is a single digit number for noinow
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal new number of instruments '//durq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ ninow = ichar(durq)-48
+ end if
+ if (ninow.gt.noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'New number of instruments must be <= original!')
+ call stop1()
+ end if
+ do 63 iinow = 1 , ninow
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c Signals a 2-digit number
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,dumq)
+ if (index('12',durq).eq.0
+ * .or.index('0123456789',dumq).eq.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal 2-digit instrument number '//durq//dumq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ read(lineq(iccount-1:iccount),'(i2)')iorig
+ else
+c
+c durq is a single digit number for iorig
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal instrument number '//durq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ iorig = ichar(durq)-48
+ end if
+ if (iorig .gt. noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'New instrument number must be <= original noinst!')
+ call stop1()
+ end if
+ nv = nv+nsperi(iorig)
+63 continue
+ do 61 iiv = 1 , nv
+c
+c Get clef names
+c
+ call g1etchar(lineq,iccount,durq)
+ if (.not.(index('tsmanrbf',durq).gt.0 .or.
+ * (ichar(durq).ge.48 .and. ichar(durq).le.55))) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have t,s,m,a,n,r,b,f or 1-7 as clef symbol here!')
+ call stop1()
+ end if
+c
+c Initialize new voices
+c
+ nvmx(iiv) = 1
+ ivmx(iiv,1) = iiv
+ itsofar(iiv) = 0
+ nnl(iiv) = 0
+ do 62 j = 1 , 200
+ rest(iiv,j) = .false.
+62 continue
+61 continue
+c
+c Loop back up, this might not be last option in M
+c
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after Movement break symbol!')
+ call stop1()
+ end if
+ if (fracsys(nmovbrk) .lt. 0.001) then
+c
+c Since fracsys was not explicitly set, set it to prior value.
+c
+ if (nmovbrk .eq. 1) then
+ fracsys(nmovbrk) = fracindent
+ else
+ fracsys(nmovbrk) = fracsys(nmovbrk-1)
+ end if
+ end if
+ end if
+c
+c Just before exiting if-block for forced line breaks, set counter to use when
+c dealing with vertical space calcs
+c
+ nistaff(nflb) = nv-1
+ else if (charq .eq. 'F') then
+ usefig = .false.
+ else if (charq .eq. 'X') then
+ call g1etx(lineq,iccount,.true.,shifton,ibarcnt-ibaroff+nbars+1,
+ * udsp(ibarcnt+nbars+1),wheadpt)
+ else if (charq .eq. 'I') then
+c
+c MIDI settings.
+c
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'MIDI stuff only allowed at start of block!')
+ call stop1()
+ end if
+ if (nv .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry but MIDI does not work with more than 15 voices!')
+ call stop1()
+ end if
+ ismidi = .true.
+ call getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,.true.)
+ else if (charq .eq. 'M') then
+ call setmac(lineq,iccount,ibarcnt,ibaroff,nbars,charq,durq,ivx,
+ * nline)
+ else if (index(',.',charq) .gt. 0) then
+c
+c Continued rhythmic shortcut
+c
+ idotform = index('. ,',charq)
+ if (idotform .eq. 1) then
+c
+c Change duration of prior note
+c
+ itsofar(ivx) = itsofar(ivx)-nodur(ivx,nnl(ivx))
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*3/2
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ end if
+ idotform = idotform+1
+ numnum = 1
+ cdot = .true.
+ go to 1
+ else
+ print*,'ASCII code:',ichar(charq)
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character is not allowed here!')
+ print*,'ASCII code:',ichar(charq)
+ call stop1()
+ end if
+ return
+ end
+ subroutine g1etset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,newkey,npages,nsyst,musize,bottreb)
+ parameter(nm=24,maxblks=4000)
+ character*65536 bufq
+ character*1 chax
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*128 lineq
+ logical lastchar,issegno,isheadr,isvolt,fbon,bottreb,
+ * newway
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+c
+c Get the first line
+c
+ iccount = 0
+ nline = 1
+9 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') then
+ nline = nline+1
+ go to 9
+ end if
+ if (lineq(1:3) .eq. '---') then
+c
+c Have TeX input until next line that starts with '---'
+c
+3 nline = nline+1
+ call getbuf(lineq)
+ if (ilbuf .gt. nlbuf) go to 1
+ go to 2
+1 print*,'You did not terminate type 0 TeX input with "---"'
+ call stop1()
+2 continue
+ if (lineq(1:3) .ne. '---') go to 3
+c
+c Force a new line read on first call to readin
+c
+ iccount = 128
+ end if
+c
+c Here, lineq and nline are first non-TeX lines.
+c
+ nv = nint(readin(lineq,iccount,nline))
+ if (nv .gt. nm) then
+ write(*,'(1x,a46,i3)')
+ * 'In setup data, number of voices cannot exceed',nm
+ call stop1()
+ end if
+ noinst = nint(readin(lineq,iccount,nline))
+ if (noinst .gt. nv) then
+ write(*,'(a)')
+ * 'In setup data, cannot have more instruments than staves'
+ call stop1()
+ end if
+ newway = noinst.le.0
+ if (newway) noinst = -noinst
+ do 10 iinst = 1 , noinst
+c
+c Seve # of staves per inst in case later drop some inst's.
+c
+ if (newway) then
+ nsperi(iinst) = nint(readin(lineq,iccount,nline))
+ else if (iinst .gt. 1 ) then
+ nsperi(iinst) = 1
+ else
+ nsperi(iinst) = nv-noinst+1
+ end if
+10 continue
+ mtrnuml = nint(readin(lineq,iccount,nline))
+ mtrdenl = nint(readin(lineq,iccount,nline))
+cc
+cc Kluge!!!
+cc
+c if (mtrdenl .eq. 1) then
+c mtrdenl = 2
+c mtrnuml = mtrnuml*2
+c end if
+ mtrnmp = nint(readin(lineq,iccount,nline))
+ mtrdnp = nint(readin(lineq,iccount,nline))
+ if (mtrnmp.eq.0 .and. mtrdnp .ge. 8) then
+ write(*,'(a)')'In setup data, with mtrnmp=0, mtrdnp must be <8'
+ call stop1()
+ end if
+ xmtrnum0 = readin(lineq,iccount,nline)
+ newkey = nint(readin(lineq,iccount,nline))
+ npages = nint(readin(lineq,iccount,nline))
+ nsyst = nint(readin(lineq,iccount,nline))
+ musize = nint(readin(lineq,iccount,nline))
+ fracindent = readin(lineq,iccount,nline)
+ if (fracindent .ge. 1.) then
+ write(*,'(a)')'In setup data, fracindent must be <1'
+ call stop1()
+ end if
+ if (npages .gt. nsyst) then
+ print*,'Error in input file: npages > nsyst'
+ call stop1()
+ else if((musize-16)*(musize-20)*(musize-24)*(musize-29).ne.0) then
+ call printl('Musicsize must be 16, 20, 24, or 29')
+ call stop1()
+ end if
+c
+c Next noinst non-comment lines are names of instruments.
+c
+ do 4 i = 1 , abs(noinst)
+5 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 5
+4 continue
+c
+c Mext non-comment line has nv clef names
+c
+6 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 6
+ do 7 iv = 1 , nv
+c if (index('brnamstf0123456',lineq(iv:iv)) .eq. 0) then
+ if (index('brnamstf01234567',lineq(iv:iv)) .eq. 0) then
+ call errmsg(lineq,iv,0,
+ * 'There should be a clef symbol here!')
+ call stop1()
+ end if
+7 continue
+ if (lineq(nv+1:nv+1) .ne. ' ') then
+ call errmsg(lineq,nv+1,0,
+ * 'There should be a blank here!')
+ call stop1()
+ end if
+c
+c Set flag if voice 1 is treble, since it affects vertical spacing
+c
+ bottreb = lineq(1:1).eq.'t'
+c
+c Mext non-comment line has path name
+c
+8 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 8
+ lpath = index(lineq,' ')-1
+ if (index('/:'//chax(92),lineq(lpath:lpath)) .eq. 0) then
+ call errmsg(lineq,lpath,0,
+ * 'Last character of pathname is not "/",":", or "'
+ * //chax(92)//'"!')
+ call stop1()
+ end if
+ return
+ end
+ subroutine g1etx(lineq,iccount,notxtup,shifton,ibar,udsp,wheadpt)
+c
+c Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol.
+c In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols.
+c
+ logical notxtup,shifton,number,btest
+ character*128 lineq
+ character*1 charq,dumq
+ number = .false.
+ nPBSc = 0
+1 call g1etchar(lineq,iccount,charq)
+ if (index('PBS:',charq) .gt. 0) then
+c
+c Continue checking here even if "P".
+c
+ ipbsc = index('PBS:',charq)
+ if (btest(nPBSc,ipbsc)) then
+ call errmsg(lineq,iccount,ibar,'Only one allowed per symbol!')
+ call stop1()
+c else if (.not.notxtup .and. ipbsc.gt.2) then
+c call errmsg(lineq,iccount,ibar,'Not allowed in xtuplet!')
+c call stop1()
+ end if
+ nPBSc = ibset(nPBSc,ipbsc)
+ go to 1
+ else if (index('+-.0123456789',charq) .gt. 0) then
+ number = .true.
+ if (index('+-',charq) .gt. 0) then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('.0123456789',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,'Expected a number here!')
+ call stop1()
+ end if
+ end if
+ call readnum(lineq,iccount,dumq,fnum)
+ if (charq.eq.'-') fnum = -fnum
+ if (dumq .ne. 'p') then
+ iccount = iccount-1
+ fnum = fnum*wheadpt
+ end if
+ go to 1
+ else if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibar,'Not allowed in "X" symbol!')
+ call stop1()
+ end if
+c
+c Done with parsing. Other checks
+c
+ if (iand(6,nPBSc).eq.6 .or. iand(24,nPBSc).eq.24) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Cannot have both "P" and "B" or "S" and ":"!')
+ call stop1()
+ end if
+ if (btest(nPBSc,4)) then
+ if (number) then
+ if (shifton) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Started a group shift without stopping prior one!')
+ call stop1()
+ else
+ shifton = .true.
+ end if
+ else
+ if (.not. shifton) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Ended a group shift without starting one!')
+ call stop1()
+ else
+ shifton = .false.
+ end if
+ end if
+ end if
+c
+c P off, S off, c off => normal user-defined space. Add to udsp (later fsyst)
+c
+ if (iand(nPBSc,26).eq.0) udsp = udsp+fnum
+ if (.not.number .and. .not.btest(nPBSc,4)) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Must have either a number or a colon in "X" symbol!')
+ call stop1()
+ end if
+ return
+ end
+c integer*4 function mytime()
+c CHARACTER(10) tq
+c CALL DATE_AND_TIME(TIME=tq)
+c read(tq,'(2i2,f6.3)')ih,im,ts
+c mytime = 1000*(ts+60*(im+60*ih))
+c return
+c end
+ subroutine getbuf(lineq)
+ parameter (maxblks=4000)
+ character*(*) lineq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ lineq = bufq(ipbuf+1:ipbuf+lbuf(ilbuf))
+ ipbuf = ipbuf+lbuf(ilbuf)
+ ilbuf = ilbuf+1
+ return
+ end
+ subroutine getchar(lineq,iccount,charq)
+ parameter (nm=24)
+c
+c Gets the next character out of lineq*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount. Ends program if no more input.
+c
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ logical lastchar,rptnd1,sluron,fbon,rptprev,ornrpt
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac,equalize,stickyS
+ character*1 charq,rptfq1,rptfq2
+ character*128 lineq,lnholdq
+ if (iccount .eq. 128) then
+ call read10(lineq,lastchar)
+ if (lastchar) return
+ if (.not. endmac) then
+ iccount = 0
+ else
+ endmac = .false.
+ iccount = icchold
+ lineq = lnholdq
+ end if
+ if (mrecord) then
+ call mrec1(lineq,iccount,ndxm)
+ end if
+ end if
+ iccount = iccount+1
+ charq = lineq(iccount:iccount)
+ return
+999 continue
+ lastchar = .true.
+ return
+ end
+ subroutine getdyn(ivx,ip,irest,iornq,lineq,iccount)
+ parameter (nm=24)
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical fontslur,upslur,WrotePsslurDefaults
+ character*1 durq,chax
+ character*4 dynsymq
+ character*128 lineq
+c
+c Get info for dynamic mark. Enter after getting "D", iccount sits on "D"
+c Bits in idyndat are as follows
+c 00-03 ivx
+c 04-11 ip
+c 12-15 code for type of mark
+c 0 => arbitrary text
+c 1-12 => pppp,ppp,pp,p,mp,mf,f,fp,sfz,ff,fff,ffff
+c If (.not. fontslur)
+c 13 => hairpin start, 14,15 => <,> (ending)
+c else
+c 13 < start, 14 > start, 15 ending
+c end if
+c 16 flag for vertical offset
+c 17-23 vertical offset + 64 , \internote
+c 31 Hairpin start (0), stop (1)
+c
+c idynda2
+c
+c 00 flag for horizontal offset
+c 01-09 (horizontal offset)/10 + 25.6 notehead widths
+c 10 5th bit for ivx (5/15/10)
+c
+ irest = ibset(irest,26)
+ ndyn = ndyn+1
+ idyn = ivx
+ idynda2(ndyn) = 0
+ if (ivx .ge. 16) call setbits(idynda2(ndyn),1,10,1)
+ call setbits(idyn,8,4,ip)
+ if (lineq(iccount+1:iccount+1) .eq. '"') then
+c
+c text-dynamic
+c
+ ntxtdyn = ntxtdyn+1
+ iend = iccount+index(lineq(iccount+2:128),'"')+2
+ txtdynq(ntxtdyn) = lineq(iccount+2:iend-2)
+c
+cc Store ivx, ip in bits 0-11
+c Store ivx, ip in bits 0-12
+c
+c ivxiptxt(ntxtdyn) = idyn
+ ivxiptxt(ntxtdyn) = ivx+32*ip
+ ipm = index('- +',lineq(iend:iend))
+ idno = 0
+ else
+c
+c Word-group or hairpin
+c
+ do 1 iend = iccount+2 , 128
+ ipm = index('- +',lineq(iend:iend))
+c
+c Exit the loop at first blank, "+", or "-"
+c
+ if (ipm .gt. 0) go to 2
+1 continue
+2 continue
+ read(lineq(iccount+1:iend-1),'(a'//chax(47+iend-iccount)//')')
+ * dynsymq
+ idno = (index(
+ * 'ppppppp pp p mp mf f fp sfz ff fff ffff < > ',
+ * dynsymq)+3)/4
+c
+c Save for later down
+c
+ idno1 = idno
+ end if
+c
+c Set flag to check level later if in beam
+c
+ iornq = ibset(iornq,23)
+ if (idno.ge.14) then
+c
+c Hairpin here. Check if opposite type from one that's already on
+c
+ if (idno.eq.14.and.btest(listdecresc,ivx) .or.
+ * idno.eq.15.and.btest(listcresc,ivx)) then
+ call printl(' ')
+ call printl('Started one kind of hairpin while other is on')
+ call stop1()
+ end if
+c
+c Start or stop?
+c
+ if (btest(listcresc,ivx) .or. btest(listdecresc,ivx)) then
+c
+c Cresc/decresc is on, this is an ending. If fontslur, leave idno as is.
+c
+ if (.not.fontslur) idno = 15
+ else if (fontslur) then
+c
+c Start of font slur
+c
+ idno = 13
+ else
+c
+c Start of postscript slur
+c
+ idno = idno-1
+ end if
+ end if
+c
+c Now that we used list[de]cresc, update
+c
+ if (idno .ge.13) then
+ if (idno.eq.15 .or. (fontslur.and.idno.eq.14)) then
+c
+c Something's ending
+c
+ if (btest(listcresc,ivx)) then
+c
+c It's a cresc!
+c
+ listcresc = ibclr(listcresc,ivx)
+ else
+ listdecresc = ibclr(listdecresc,ivx)
+ end if
+ else
+c
+c Something's starting
+c
+ if (idno1 .eq. 14) then
+c
+c It's a cresc!
+c
+ listcresc = ibset(listcresc,ivx)
+ else
+ listdecresc = ibset(listdecresc,ivx)
+ end if
+ end if
+ end if
+ call setbits(idyn,4,12,idno)
+ iccount = iend
+ if (ipm .ne. 2) then
+c
+c There is a vertical shift
+c
+ idyn = ibset(idyn,16)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(fnum)
+ call setbits(idyn,7,17,(ipm-2)*idno+64)
+ ipm = index('- +',durq)
+ if (ipm .ne. 2) then
+c
+c There is a horizontal shift
+c
+c idynda2(ndyn) = ibset(idyn,23)
+ idynda2(ndyn) = ibset(idynda2(ndyn),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(10*fnum)
+ call setbits(idynda2(ndyn),9,1,(ipm-2)*idno+256)
+ end if
+c
+c iccount should be on the blank at the end of the entire symbol
+c
+ end if
+ idyndat(ndyn) = idyn
+ return
+ end
+ subroutine getfig(itoff,charq,lineq,iccount,isfig,itfig,
+ * itsofar,nodur,figq,ivupfig,nfigs)
+ logical isfig
+ character*1 charq
+ character*10 figq
+ character*128 lineq
+c
+c As of 11/26/08, trapped extra figures in getnote, so no need here.
+c
+c if (ivx .gt. 2) then
+cc
+cc Read past the figure
+cc
+c6 call getchar(lineq,iccount,charq)
+c if (charq .ne. ' ') go to 6
+c return
+c end if
+ nfigs = nfigs+1
+ ivupfig = 0
+ itoff = 0
+ if (charq .eq. 'x') then
+c
+c Floating figure.
+c
+ call getchar(lineq,iccount,charq)
+ read(charq,'(i1)')noff
+ call getchar(lineq,iccount,charq)
+ read(charq,'(i1)')loff
+ itoff = noff*ifnodur(loff,'x')
+ call getchar(lineq,iccount,charq)
+ else
+c
+c Figure on a note
+c
+ isfig = .true.
+ end if
+ itfig = itsofar+itoff-nodur
+ lfig = 1
+ figq = charq
+5 call getchar(lineq,iccount,charq)
+c if (charq .ne. ' ') then
+ if (index(' +',charq) .eq. 0) then
+ figq = figq(1:lfig)//charq
+ lfig = lfig+1
+ go to 5
+ else if (charq .eq. '+') then
+c
+c Get vertical offset for figure. Next character after number has to be blank.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ ivupfig = nint(fnum)
+ end if
+ return
+ end
+ subroutine getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ parameter (nm=24)
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg
+ character*1 charq,durq
+ character*20 voltxtq
+ character*128 lineq,litq
+ integer*4 islur(nm,200),iornq(nm,0:200),ipl(nm,200),nnl(nm),
+ * ndlev(nm,2)
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c Grace, comes *before* main note:
+c UNLESS there's an 'A' or 'W' after the 'G'
+c ngrace = # of grace note groups so far in block
+c ivg(ngrace), ipg(ngrace)
+c nng(ngrace) = # of notes in this group: default = 1
+c ngstrt(ngrace) = starting position in nolevg of levels for this grace
+c multg(ngrace) = multiplicity: default = 1; input as 'm(digit)'
+c upg(ngrace) = logical for beam or stem dirn: default T, input'u,l'
+c slurg(ngrace) = logical for slur; default F, input 's'
+c slashg(ngrace) = T if slash; default is F, input 'x'
+c These data MUST precede note name of first note
+c nolevg, naccg: lists of levels and accid's, indexed as described above.
+c
+ ngrace = ngrace+1
+ ivg(ngrace) = ivx
+ ipg(ngrace) = nnl(ivx)+1
+ if (ngrace .eq. 1) then
+ ngstrt(ngrace) = 1
+ else
+ ngstrt(ngrace) = ngstrt(ngrace-1)+nng(ngrace-1)
+ end if
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),4)
+ nng(ngrace) = 1
+ multg(ngrace) = 1
+ upg(ngrace) = .true.
+ slurg(ngrace) = .false.
+ slashg(ngrace) = .false.
+18 call getchar(lineq,iccount,charq)
+ if (index('WA',charq) .gt. 0) then
+c
+c Grace is on note that was already done, so shift flags forward one note.
+c This puts flag on actual note with grace; later for W will go ahead one more.
+c
+ ipg(ngrace) = nnl(ivx)
+ islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),4)
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),4)
+ if (slurg(ngrace))
+ * iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),24)
+ if (charq .eq. 'A') then
+c
+c close After, clear way-after bit, to ensure priority of most recent A/W
+c
+ ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),31),29)
+ else
+c
+c Way after; later assign to following note, and position like normal grace.
+c
+ ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),29),31)
+ end if
+ else if (charq .eq. 'm') then
+ call getchar(lineq,iccount,charq)
+ multg(ngrace) = ichar(charq)-48
+ else if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ nng(ngrace) = nint(fnum)
+ else if (charq .eq. 'l') then
+ upg(ngrace) = .false.
+ else if (charq .eq. 's') then
+ slurg(ngrace) = .true.
+ if (nnl(ivx) .gt. 0) then
+c
+c If A- or W-grace, set signal to start slur on main note.
+c
+ if(btest(ipl(ivx,nnl(ivx)),31) .or.
+ * btest(ipl(ivx,nnl(ivx)),29))
+ * iornq(ivx,nnl(ivx))=ibset(iornq(ivx,nnl(ivx)),24)
+ end if
+ else if (charq .eq. 'x') then
+ slashg(ngrace) = .true.
+ else if (charq .eq. 'u') then
+ else if (charq .eq. 'X') then
+c
+c Space before main note of grace. Number will come next.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,graspace(ngrace))
+ iccount = iccount-1
+ end if
+ if (index('abcdefg',charq) .eq. 0) go to 18
+c
+c At this point, charq is first note name in grace
+c
+ do 19 ing = ngstrt(ngrace), ngstrt(ngrace)+nng(ngrace)-1
+ naccg(ing) = 0
+ ioct = 0
+ if (ing .gt. ngstrt(ngrace)) then
+55 call getchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 55
+ endif
+ iclastlev = 0
+9 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+ if (durq.eq.'+') then
+ lastlev = lastlev+7
+ iclastlev = iclastlev+7
+ else if (durq.eq.'-') then
+ lastlev = lastlev-7
+ iclastlev = iclastlev-7
+ else if (index('fsn',durq) .gt. 0) then
+ if (naccg(ing) .eq. 0) then
+ naccg(ing) = index('fsn',durq)
+ else
+c
+c Double accidental
+c
+ naccg(ing) = ibset(naccg(ing),2)
+ end if
+ else
+ ioct = ichar(durq)-48
+ end if
+ go to 9
+ end if
+ if (ioct .gt. 0) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ if (nnl(ivx).eq.0 .and. ing.eq.ngstrt(ngrace)) then
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ lastlev = ndlev(iv,kv)+iclastlev
+ end if
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ nolevg(ing) = lastlev
+19 continue
+c
+c Grace could come before first note of block, so reset end level.
+c
+ if (nnl(ivx).eq.0) then
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ ndlev(iv,kv) = lastlev
+ end if
+ return
+ end
+ subroutine GetiTransInfo(From1,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+cccccccccccccccccccccccc
+cc
+cc GetiTransInfo.for
+cc
+cccccccccccccccccccccccc
+c
+c Called from both g1etnote and getnote, after first 'i' in Ki[...]
+c On entry, iccount points to last char retrieved, which is 'i'
+c
+c From1: locgical, true if called from g1etnote
+c ibarcnt: tells whether to set EarlyTransOn to true.
+c EarlyTransOn set false in blkdata, true here, back to false in topfile.
+c
+c 110522/110529
+c Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey]
+c and repeat i[...] for multiple instruments. Store info in g1etnot if ibarcnt=0
+c so can pass to topfile (via comInstTrans), which is called before getnote.
+c Otherwise, will store info from getnote. Initialize EarlyTransOn and
+c LaterInstTrans to .false. in blockdata. Set EarlyTransOn from g1etnote;
+c LaterInstTrans from getnote. Zero both out after use. nInstTrans really
+c only needed for instrument-signatures, not transpositions. iTransAmt is
+c ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for
+c each staff.
+c
+c iTransAmt stored as fn of instrument #, not like iTransKey which is
+c fn. of nm, just a counter, where corr. inst num is iInstTrans(nm). This
+c simplifies use of iTransAmt for all calls to ifnolev.
+c
+ parameter (nm=24)
+ logical From1
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans,store
+ character*128 lineq
+ character*1 durq
+ durq = 'x' ! Can't initialize in declaration stmt, only works once.
+ if(.not.EarlyTransOn) EarlyTransOn = From1 .and. ibarcnt.eq.0
+ store = (EarlyTransOn.and.ibarcnt.eq.0) .or.
+ * (ibarcnt.gt.0.and..not.From1)
+ LaterInstTrans = .not.From1 .and. ibarcnt.gt.0
+ if (store) nInstTrans = 0
+1 continue
+ if (durq .eq. ' ') return
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be an instrument number here!')
+ call stop1()
+ end if
+ if (store) nInstTrans = nInstTrans+1
+ call readnum(lineq,iccount,durq,fnum)
+ instn = nint(fnum)
+ if (instn.gt.noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Instrument number out of range!')
+ call stop1()
+ end if
+ if (store) iInstTrans(nInstTrans) = instn
+c
+c durq is +/- following inst # (for iTransAmt), iccount is on it.
+c
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st character after instrument number must be "+,-"!')
+ call stop1()
+ end if
+ itramt = 44-ichar(durq) ! +1/-1 for itramt
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a transposition amount here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (store) iTransAmt(instn) = nint(fnum)*itramt
+c
+c durq is +/- following iTransAmt (for iTransKey), iccount is on it.
+c
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st character after transposition amount must be "+,-"!')
+ call stop1()
+ end if
+ ikey = 44-ichar(durq) ! +1/-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a key indicator here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (store) iTransKey(nInstTrans) = nint(fnum)*ikey
+c
+c durq is now 1st character after iTransKey, should be either 'i' or ' '
+c
+ if (durq.ne.'i'.and.durq.ne.' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be blank or "i" here!')
+ call stop1()
+ end if
+ go to 1
+ end
+ subroutine getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,first)
+c
+c Use this from both pmxa and pmxb to input and check midi data. "first" tells
+c whether pmxa or pmxb. If .not.first, then tempo and pause commands cause
+c things to be written immediately into the midi storage buffers.
+c
+ parameter (nm=24,mv=24576)
+ common /comevent/ miditime,lasttime
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+c
+c immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing
+c nmidsec section starts and stops based on PLAYING macros (not recording).
+c
+ integer*2 mmidi,midinum(26)
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ character*1 durq
+ character*2 instq
+ character*128 lineq
+ logical first
+ common /comdiag/ n69(0:nm),n34(0:nm)
+c
+c Instrument codes
+c
+ data midinum
+ * / 1, 5, 7, 13,20,25,33,41,42,43,44,57,58,59,61,65,66,67,
+c XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbXtuXfrXsoXalXteX
+c
+ * 68,69,71,72,74,75, 8,55 /
+c bsXobXbaXclXflXreXctXvo
+c
+1 call getchar(lineq,iccount,durq)
+ if (durq .eq. 't') then
+c
+c Tempo in beats ber minute
+c
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer here for the pause!')
+ call stop1()
+c else if (mmacrec) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Cannot change MIDI tempo while recording a MidiMacro!')
+c call stop1()
+ end if
+ call readnum(lineq,iccount,durq,qpm)
+ iccount = iccount-1
+ if (.not.first) then
+ call midievent('t',nint(qpm),0)
+ gottempo = .true.
+ end if
+ go to 1
+ else if (durq .eq. 'p') then
+c
+c Insert a pause. pausemid = pause in 1/4's
+c
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here for the pause!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,pausemid)
+ iccount = iccount-1
+ if (.not.first) then
+c
+c Compute a meter for the pause. This is only to keep MidiNotate on track.
+c Round pause to nearest 16th. Let denominator always be 16.
+c
+ numb16 = nint(pausemid*4)
+ call midievent('m',numb16,16)
+c
+c Put in pausemid beats of rest
+c
+ do 3 icm = 0 , numchan-1
+ call addmidi(icm,0,0,0,4.*numb16,.true.,.false.)
+3 continue
+ miditime = miditime+nint(240*pausemid)
+c
+c Restore meter
+c
+ call midievent('m',mtrdenl*lenbar/64,mtrdenl)
+ end if
+ go to 1
+ else if (durq .eq. 'i') then
+c
+c Instrument numbers or letters. Expect nv of them.
+c
+ do 2 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (ichar(durq) .gt. 96) then
+c
+c It's a lowercase letter. Get another, find corr. instrument #.
+c
+ instq(1:1) = durq
+ call getchar(lineq,iccount,durq)
+ instq = instq(1:1)//durq
+ iname = index('XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbX'//
+ * 'tuXfrXsoXalXteXbsXobXbaXclXflXreXctXvo',instq)/3
+ if (iname .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Unrecognized 2-letter midi instrument name!')
+ call stop1()
+ end if
+ midinst(ivx) = midinum(iname)-1
+ else
+c
+c Expect a number, followed by ":" if that is followed by another number.
+c I.e., if after call to readnum, durq is not ":", it must be either blank
+c or next instrument letter.
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a midi instrument number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midinst(ivx) = nint(fnum)-1
+ if (midinst(ivx).lt.0 .or. midinst(ivx).gt.255) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi instrument number must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+ end if
+2 continue
+ go to 1
+ else if (durq .eq. 'v') then
+c
+c Get volumes for each instrument. Expect nv of them.
+c Follow same pattern as for insttrument numbers above.
+c
+ do 7 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a midi velocity number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midivel(ivx) = nint(fnum)-1
+ if (midivel(ivx).lt.0 .or. midivel(ivx).gt.127) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi velocity must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+7 continue
+ go to 1
+ else if (durq .eq. 'b') then
+c
+c Get balance for each instrument. Expect nv of them.
+c Follow same pattern as for instrument numbers above.
+c
+ do 8 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a balance number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midibal(ivx) = nint(fnum)-1
+ if (midibal(ivx).lt.0 .or. midibal(ivx).gt.127) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi balance must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+8 continue
+ go to 1
+ else if (durq .eq. 'T') then
+c
+c Get transposition for each instrument. Expect nv of them.
+c Follow similar pattern as above, but separator is +|-.
+c
+ do 9 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ ipm = index('-+',durq)
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" for midi transposition here!')
+ call stop1()
+ end if
+ ipm = 2*ipm-3
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ miditran(ivx) = ipm*nint(fnum)
+c if (mod(miditran(ivx),12).ne. 0) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Midi transposition limited to multiples of 12!')
+c call stop1()
+c end if
+ iccount = iccount-1
+9 continue
+ go to 1
+ else if (durq .eq. 'g') then
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer here for the midi gap!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ mgap = nint(fnum)
+ iccount = iccount-1
+ go to 1
+ else if (durq .eq. 'M') then
+c
+c MidiMacros
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'R') then
+c
+c Start recording
+c
+ if (mmacrec) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to record a MidiMacro while already recording!')
+ call stop1()
+ end if
+ mmacrec = .true.
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected MidiMacro ID number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ if (.not.first) then
+ immac = nint(fnum)
+ if (immac .gt. 20) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'MidiMacro ID cannot exceed 20!')
+ call stop1()
+ end if
+c
+c Save the start time
+c
+ mmactime(immac) = miditime
+ do 4 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+c
+c Adjust if there's a rest at end of prior section. Insert dummy turnoff.
+c (This causes two turn-offs in a row, which testmidi sees as an error).
+c
+c Before: section1 ------rest------- section2(to be recorded)
+c After: section1 rest1 now rest2 section2(recorded)
+c
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ lasttime = miditime
+ end if
+ end if
+ mmacstrt(icm,immac) = imidi(icm)+1
+4 continue
+ end if
+ go to 1
+ else if (index('123456789P',durq) .eq. 0) then
+c
+c End recording; close the open macro. Get immac from common.
+c
+ if (.not.mmacrec) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to end a MidiMacro before starting one!')
+ call stop1()
+ end if
+ mmacrec = .false.
+ iccount = iccount-1
+ if (.not.first) then
+c
+c Save the macro duration
+c
+ mmactime(immac) = miditime-mmactime(immac)
+ do 5 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track if needed.
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ lasttime = miditime
+ end if
+ end if
+ mmacend(icm,immac) = imidi(icm)
+5 continue
+ end if
+ if (durq .ne. ' ')go to 1
+ else if (durq .eq. 'P') then
+c
+c Play Back a Macro
+c
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected MidiMacro ID number here!')
+ call stop1()
+ end if
+ if (mmacrec) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to play a MidiMacro before ending recording!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ if (.not.first) then
+ immac = nint(fnum)
+ if (mmactime(immac) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot play a MIDI macro before recording it!')
+ call stop1()
+ end if
+ do 6 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0.
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ end if
+ end if
+ msecend(icm,nmidsec) = imidi(icm)
+ msecstrt(icm,nmidsec+1) = mmacstrt(icm,immac)
+ msecend(icm,nmidsec+1) = mmacend(icm,immac)
+ msecstrt(icm,nmidsec+2) = imidi(icm)+1
+6 continue
+ nmidsec = nmidsec+2
+c
+c Update running time
+c
+ miditime = miditime+mmactime(immac)
+ lasttime = miditime
+ end if
+ go to 1
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in MidiMacro sub-command!')
+ call stop1()
+ end if
+ else if (durq .eq. 'd') then
+ debugmidi = .true.
+ go to 1
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in MIDI input data!')
+ call stop1()
+ end if
+ if (.not.gottempo .and. .not.first) then
+c
+c If no tempo is set on first call on the pmxb pass, then set it
+c
+ call midievent('t',96,0)
+ gottempo = .true.
+ end if
+ return
+ end
+ subroutine getnote(loop)
+ parameter (nm=24,mv=24576)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*10 figq
+ character*1 ulq,sepsymq,sq,rptfq1,rptfq2,clefq,chax
+ logical beamon,firstgulp,figbass,figchk,isfig
+ character*60 cheadq
+ character*120 instrq,titleq,compoq
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,autofbon
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /comnotes/ nnodur,lastlev,ndlev(nm,2),shifton,setis,notcrd,
+ * npreslur,was2(nm),ninow,nobar1,nsystp(40),ipage,
+ * OptLineBreakTies,HeaderSpecial
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,fbon,ornrpt,shifton,setis,notcrd,isbjmp,
+ * was2,nobar1,quoted,isbj2,stickyS,
+ * OptLineBreakTies,HeaderSpecial
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /combc/ bcspec
+ common /comas3/ ask(2500),iask,topmods
+c
+c nvmx is either 1 or 2. ivmx(iv,1)=iv, ; ivmx(iv,2)>nv if defined
+c ivx is current ivmx, and is the index for all notes, acc's etc.
+c
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comtrans/ cheadq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ common /comclefq/ clefq(nm)
+ common /comtol/ tol
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ character*128 txtdynq
+ logical mrecord,mplay,endmac,lowdot,rename,bar1syst,upslur,
+ * fontslur,WrotePsslurDefaults
+ character*128 lineq,lnholdq
+ character*80 headrq, lowerq
+ character*79 inameq
+ character*59 hdlndq
+ character*20 voltxtq
+ character*1 charq,dotq,durq,ulfbq,dumq
+ logical loop,lastchar,lower,rptnd1,rptprev,bcspec,moved,
+ * topmods,headlog,btest,sluron,cdot,equalize
+ character*24 tempq
+ logical novshrinktop,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idumm1,isig1,
+ * mbrestsav,kchmid(18),logdumm1,logdumm2,barend,noinst,logdumm3
+ logical barend,iskchb,kchmid,logdumm1,logdumm2,logdumm3
+ common /combibarcnt/ ibarcnt
+ cdot = .false.
+1 call getchar(lineq,iccount,charq)
+ if (lastchar) return
+ if (charq .eq. ' ') go to 1
+ if (charq .eq. '%') then
+c
+c Check for a bar number format:
+c
+ if (iccount.eq.1 .and. lineq(2:2).eq.' ' .and.
+ * index('bB1234567890',lineq(3:3)).gt.0) then
+ if (islast) write(11,'(a)')lineq(1:lenstr(lineq,128))
+ end if
+ iccount = 128
+ go to 1
+ end if
+c
+c Closing repeat iff charq='/' and the prev. char was 'R' with 'd' or 'r'
+c
+ if (rptprev) then
+ rptnd1 = charq .eq. '/'
+ rptprev = .false.
+ end if
+c
+c Repeat at end of a piece
+c
+ if ((ichar(charq).ge.97.and.ichar(charq).le.103) .or.
+ * charq.eq.'r') then
+ if (cdot) go to 28
+c
+c This is a note/rest.
+c
+ idotform = 0
+ numnum = 0
+c
+c If start of line of music, set pitch from previous
+c
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (nnl(ivx).eq.0) lastlev = ndlev(iv,kv)
+c
+c notcrd is used to tell if orn. goes on main note or chord note
+c
+c notcrd = .true. !Move dow. Was not observed if dotted shortcut.
+c
+c Increase note count, then loop 'til blank. Label 28 is for dotted shortcuts.
+c
+28 continue
+c
+c Moved this from just above, 2 Feb 02
+c
+ notcrd = .true.
+ nnl(ivx) = nnl(ivx)+1
+ if (ornrpt) then
+c
+c Replicate ornament bits, also bit 23 for beam handling if chord.
+c
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),iornq(ivx,0))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+ if (stickyS) then
+c
+c Grab stemlength shortening parameters from prior note
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),27)
+ call setbits (mult(ivx,nnl(ivx)),3,28,
+ * igetbits(mult(ivx,nnl(ivx)-1),3,28))
+ end if
+ if (autofbon .and. tautofb.gt.tol .and. .not.fbon) then
+c
+c Doing auto forced beams, and period has been set, so check if this note
+c starts a period.
+c
+c if (mod(1.*itsofar(ivx),tautofb) .lt. tol) then
+ if (mod(itsofar(ivx)-t1autofb,tautofb) .lt. tol) then
+c
+c Start a forced beam here
+c
+ nfb(ivx) = nfb(ivx)+1
+ fbon = .true.
+ ulfbq(ivx,nfb(ivx)) = 'x'
+ t1fb(ivx,nfb(ivx)) = itsofar(ivx)
+ end if
+ end if
+ if (fbon) ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),30)
+ dotq = 'x'
+ if (charq.eq.'r')
+ * irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),0)
+ if (btest(irest(ivx,nnl(ivx)),0)) then
+c
+c Rest stuff. First check if previous note was full-bar-pause
+c
+ if (lineq(iccount+1:iccount+1) .eq.' '
+ * .and. nnl(ivx).gt.1) then
+ if (btest(islur(ivx,nnl(ivx)-1),19))
+ * islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),19)
+ end if
+c
+c Set default rest level at 0 unless 2 voices/staff in which case it's -4 or 2
+c for voice a or b. Set a-types at 0 as encountered and adjust later
+c after '//'. (Override heights will be set to 100+offset)
+c
+ if (ivx .le. nv) then
+ nolev(ivx,nnl(ivx)) = 0
+ else
+ nolev(ivx,nnl(ivx)) = 2
+ end if
+ end if
+2 call getchar(lineq,iccount,durq)
+ ic = ichar(durq)
+ if (ic.le.57 .and. ic.ge.48) then
+c
+c Digit
+c
+ if (numnum .eq. 0) then
+ nnodur = ic-48
+ numnum = 1
+ go to 2
+ else if (numnum .eq. 1) then
+ ioct = ic-48
+ numnum = 2
+ go to 2
+ else
+ print*,'>2 digits in note sym., ivx,nn:',ivx,nnl(ivx)
+ call stop1()
+ end if
+ else if (durq .eq. 'd') then
+ dotq = durq
+ if (lineq(iccount+1:iccount+1) .eq. 'd') then
+c
+c Double dot.
+c
+ iccount = iccount+1
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),3)
+ end if
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, unless next char is not part of a number
+c
+ if (index('0123456789.',lineq(iccount+2:iccount+2)) .eq. 0)
+ * go to 2
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),19)
+ call getchar(lineq,iccount,durq)
+ ndotmv(ivx) = ndotmv(ivx)+1
+ iccount=iccount+1
+ call readnum(lineq,iccount,dumq,updot(ivx,ndotmv(ivx)))
+ if (durq .eq. '-')
+ * updot(ivx,ndotmv(ivx)) = -updot(ivx,ndotmv(ivx))
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift also
+c
+ iccount=iccount+1
+ call readnum(lineq,iccount,durq,rtdot(ivx,ndotmv(ivx)))
+ if (dumq .eq. '-')
+ * rtdot(ivx,ndotmv(ivx)) = -rtdot(ivx,ndotmv(ivx))
+ else
+ rtdot(ivx,ndotmv(ivx)) = 0.
+ end if
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .eq. 'p') then
+c
+c Full-bar rest as pause
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),19)
+ go to 2
+ else if (durq .eq. 'b') then
+c
+c Blank rest
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),29)
+ go to 2
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Accidental
+c
+ if (nacc(ivx,nnl(ivx)) .eq. 0) then
+c
+c No accidental has been set yet
+c
+ nacc(ivx,nnl(ivx)) = index('fsn',durq)
+ else
+c
+c Repeated accid, so must be double
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),2)
+ end if
+ go to 2
+ else if (durq .eq. 'i') then
+c
+c Set flag for MIDI-only accidental.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),17)
+ go to 2
+ else if (durq .eq. 'c') then
+c
+c Set flags for cautionary accidental
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ go to 2
+ else if (index('+-<>',durq) .gt. 0) then
+ ipm = index('- +',durq)-2
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+c
+c A note, not a rest.
+c
+ call chkpm4ac(lineq,iccount,nacc(ivx,nnl(ivx)),moved)
+ if (moved) go to 2
+c
+c Octave jump with a note
+c
+ if (numnum .lt. 2) then
+ lastlev = lastlev+ipm*7
+ else
+ ioct = ioct+ipm*1
+ end if
+ go to 2
+ else
+c
+c Override default height of a rest
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (lineq(iccount-1:iccount-1) .eq. '.') then
+c
+c Kluge in case there is a shortcut ".". It will have been sucked up by
+c readnum. (Same doesn't hold for ",")
+c
+ iccount = iccount-2
+ go to 2
+ end if
+ nolev(ivx,nnl(ivx)) = 100+ipm*nint(fnum)
+c
+c There may be more characters for this rest
+c
+ iccount = iccount-1
+ go to 2
+ end if
+ else if (durq .eq. 'x') then
+c
+c Xtuplet. Count number of doubled notes (for unequal xtups)
+c
+ if (btest(nacc(ivx,nnl(ivx)),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+c
+c Will set all durations to 0 except last one. Set flag on this note.
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),28)
+c
+c Next input will be digit
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ ntup = nint(fnum)
+ if (index('DF',durq) .gt. 0) then
+c
+c Double xtup note to make an un= xtup. Here xtup number already set but may also
+c have this command before.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ ndoub = 1
+ call getchar(lineq,iccount,durq)
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ call getchar(lineq,iccount,durq)
+ end if
+c
+c Only other possibilities here are ' ' or 'n'
+c
+ if (durq .eq. 'n') then
+c
+c Alter xtup number
+c
+ if (lineq(iccount+1:iccount+1) .eq. ' ') then
+c
+c If the only modifier is 'n', cancel the number
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),31)
+ else
+ numshft = 0
+30 call getchar(lineq,iccount,durq)
+ if (durq .eq. 'f') then
+c
+c Flip up-down-ness
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),14)
+ go to 30
+ else if (index('+-',durq) .gt. 0) then
+c
+c Vertical or horiz shift
+c
+ numshft = numshft+1
+ iofforn = 1
+ if (durq .eq. '-') iofforn = -1
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,xofforn)
+ iccount = iccount-1
+ if (numshft .eq. 1) then
+c
+c Vertical shift
+c
+ iofforn = iofforn*nint(xofforn) + 16
+c
+c Turn on bit 1; set bits 2-6 to iofforn
+c
+ irest(ivx,nnl(ivx)) =
+ * ior(irest(ivx,nnl(ivx)),2+4*iofforn)
+ else
+c
+c Horizontal shift
+c
+ iofforn = iofforn*nint(xofforn*10)+16
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),7)
+ call setbits(irest(ivx,nnl(ivx)),5,9,iofforn)
+ end if
+ go to 30
+ else if (durq .eq. 's') then
+c
+c Slope adjustment for bracket
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),4)
+ call getchar(lineq,iccount,durq)
+ iofforn = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,xofforn)
+ iccount = iccount-1
+ iofforn = nint(iofforn*xofforn+16)
+ call setbits(mult(ivx,nnl(ivx)),5,5,iofforn)
+ else if (index('123456789',durq) .gt. 0) then
+c
+c Replacement printed number
+c
+ call readnum(lineq,iccount,durq,xofforn)
+ call setbits(nacc(ivx,nnl(ivx)),5,22,nint(xofforn))
+ iccount = iccount-1
+ go to 30
+ end if
+ end if
+ end if
+c
+c Set note level of 1st note of xtup, provided not a rest
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ if (numnum .eq. 2) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ nolev(ivx,nnl(ivx)) = lastlev
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ end if
+ do 40 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on starting note of xtuplet
+c
+ call setbits(isdat2(nsdat-npreslur+1),7,19,lastlev)
+40 continue
+ numnum = 0
+ nodur(ivx,nnl(ivx)) = 0
+ do 6 itup = 2 , ntup
+ if (ornrpt) then
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),
+ * iand(iornq(ivx,nnl(ivx)-1),10026991))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+ nnl(ivx) = nnl(ivx)+1
+ if (fbon) ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),30)
+7 call getchar(lineq,iccount,charq)
+ if (charq .eq. ' ') then
+ go to 7
+ else if (charq .eq. '%') then
+ iccount = 128
+ go to 7
+ else if (charq .eq. 'o') then
+c
+c Ornament in xtuplet. "o" symbol must come AFTER the affected note
+c
+ if (notcrd) then
+ nole = nolev(ivx,nnl(ivx)-1)
+ else
+ nole = iand(127,ishft(icrdat(ncrd),-12))
+ end if
+ call getorn(lineq,iccount,iornq(ivx,nnl(ivx)-1),
+ * iornq(ivx,0),ornrpt,noffseg,
+ * nnl(ivx)-1,ivx,.false.,notcrd,nole)
+ go to 7
+ else if (index('st(){}',charq) .gt. 0) then
+ nnlivx = nnl(ivx)-1
+ if (charq.eq.'(' .or. charq.eq.'{') then
+c
+c Detected preslur in xtuplet loop, non-chord note
+c
+ nnlivx = nnlivx+1
+ npreslur = npreslur+1
+ end if
+ islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),0)
+ if (charq.eq.'t') islur(ivx,nnlivx) =
+ * ibset(islur(ivx,nnlivx),1)
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (fontslur) then
+ call sslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,
+ * isdat3,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ else
+ call spsslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,
+ * isdat3,isdat4,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ end if
+ go to 7
+ else if (charq .eq. 'G') then
+c
+c Kluge to get grace in xtup at right location
+c
+ nnl(ivx) = nnl(ivx)-1
+ call getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ nnl(ivx) = nnl(ivx)+1
+ go to 7
+ else if (charq .eq. sq) then
+ call littex(islur,nnl(ivx),ivx,topmods,lineq,iccount)
+ go to 7
+ else if (index('0123456789#-nx_',charq) .gt. 0) then
+c
+c Figure. Must come AFTER the first note of xtup
+c
+ ivf = 1
+ if (ivx .gt. 1) then
+ if (ivxfig2 .eq. 0) then
+ ivxfig2 = ivx
+ else if (ivx .ne. ivxfig2) then
+ print*
+ print*,'Figures not allowed in >1 voice above first'
+ stop
+ end if
+ ivf = 2
+ end if
+ nfig1 = nfigs(ivf)+1
+ call getfig(itoff(ivf,nfig1),charq,lineq,iccount,
+ * isfig(ivf,nnl(ivx)-1),itfig(ivf,nfig1),itsofar(ivx),
+ * 0,figq(ivf,nfig1),ivupfig(ivf,nfig1),nfigs(ivf))
+ go to 7
+ else if (charq .eq. 'X') then
+ call getx(lineq,iccount,irest(ivx,max(1,nnl(ivx)-1)),
+ * shifton,wheadpt,iornq(ivx,nnl(ivx)),ivx,
+ * irest(ivx,nnl(ivx)),itsofar(ivx),ntup,itup,nnodur,
+ * dotq,ndoub)
+ go to 7
+ else if (charq .eq. 'z') then
+c
+c Chord note in xtup. Goes with *prior* note.
+c
+ notcrd = .false.
+ ncrd = ncrd+1
+ ipl(ivx,nnl(ivx)-1) = ibset(ipl(ivx,nnl(ivx)-1),10)
+ numnum = 0
+c icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8))
+ icrdat(ncrd) = nnl(ivx)-1
+ call setbits(icrdat(ncrd),4,8,mod(ivx,16))
+ if (ivx .ge. 16) icrdat(ncrd) = ibset(icrdat(ncrd),28)
+ icrdorn(ncrd) = 0
+c
+c Get note name
+c
+ call getchar(lineq,iccount,charq)
+c
+c Get optional inputs
+c
+34 call getchar(lineq,iccount,durq)
+c
+c When chord note is done, will get ' ', making ndx=0, so go past this block
+c
+ ndx = index('fsn+-<>12345678reic',durq)
+ if (ndx .gt. 0) then
+ if (ndx .le. 3) then
+ if (.not.btest(icrdat(ncrd),19)) then
+ icrdat(ncrd) = ibset(icrdat(ncrd),19)
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(ndx,20))
+ else
+ icrdat(ncrd) = ibset(icrdat(ncrd),22)
+ end if
+ else if (ndx .eq. 19) then
+c
+c Set flags for cautionary accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),31)
+ iornq(ivx,nnl(ivx)-1) =
+ * ibset(iornq(ivx,nnl(ivx)-1),31)
+ else if (ndx .le. 7) then
+c
+c +/-/</> Check whether octave or accidental shift
+c
+ nactmp = 0
+ call chkpm4ac(lineq,iccount,nactmp,moved)
+ if (moved) then
+c
+c Transfer accidental shift values
+c
+ call setbits(icrdot(ncrd),6,14,
+ * igetbits(nactmp,6,4))
+ call setbits(icrdot(ncrd),7,20,
+ * igetbits(nactmp,7,10))
+ else
+ if (durq .eq. '+') then
+ lastlev = lastlev+7
+ else if (durq .eq. '-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (durq .eq. 'e') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),23)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),24)
+ irest(ivx,nnl(ivx)-1) =
+ * ibset(irest(ivx,nnl(ivx)-1),20)
+ else if (durq .eq. 'i') then
+c
+c Midi-only accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),27)
+ else
+c
+c must be a number, save it in ioct
+c
+ numnum = 1
+ ioct = ndx-7
+ end if
+ go to 34
+ end if
+ if (numnum .eq. 1) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(lastlev,12))
+ do 41 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on chord note in xtup
+c
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+c
+c Following lines copied from loop for non-xtup, chord note, preslur
+c Initially I assigned the slur(s) to next note, so fix.
+c
+ islur(ivx,nnl(ivx)) = ibclr(islur(ivx,nnl(ivx)),0)
+ islur(ivx,nnl(ivx)-1) = ibset(islur(ivx,nnl(ivx)-1),0)
+ isdat2(nsdat-npreslur+1) =
+ * ibset(isdat2(nsdat-npreslur+1),0)
+ call setbits(isdat1(nsdat-npreslur+1),8,3,
+ * igetbits(isdat1(nsdat-npreslur+1),8,3)-1)
+41 continue
+ go to 7
+ else if (charq .eq. '?') then
+c
+c Arpeggio
+c
+ if (btest(ipl(ivx,nnl(ivx)-1),10)) then
+c
+c This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note
+c of chord, will not set icrdat(25), but iornq(27)
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),25)
+ else
+ iornq(ivx,nnl(ivx)-1) = ibset(iornq(ivx,nnl(ivx)-1),27)
+ end if
+c
+c Check for shift
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+c
+c durq must be "-"
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+c
+c record the shift
+c
+ NumArpShift = NumArpShift+1
+ IvArpShift(NumArpShift) = ivx
+ IpArpShift(NumArpShift) = nnl(ivx)-1
+ ArpShift(NumArpShift) = fnum
+ end if
+ go to 7
+ else if (charq .eq. 'D') then
+ call getdyn(ivx,nnl(ivx)-1,irest(ivx,nnl(ivx)-1),
+ * iornq(ivx,nnl(ivx)-1),lineq,iccount)
+ go to 7
+c+++
+ else if (charq .eq. ']') then
+c
+c Multiplicity up-down, must have '][ '
+c
+ islur(ivx,nnl(ivx)-1) = ibset(islur(ivx,nnl(ivx)-1),20)
+ iccount = iccount+2
+ go to 7
+cc+++
+ end if
+c
+c End of loop for xtup options. If here, charq must be a (non-crd) note name.
+c or rest
+c
+ if (charq .eq. 'r') then
+c
+c Rest in xtup
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),0)
+ if (index('+-b',lineq(iccount+1:iccount+1)) .gt. 0) then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'b') then
+c
+c Blank rest in middle of xtup
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),29)
+ else
+c
+c Override height of embedded xtup rest
+c
+ ipm = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ nolev(ivx,nnl(ivx)) = 100+ipm*nint(fnum)
+ iccount = iccount-1
+ end if
+ else if (ivx .le. nv) then
+ nolev(ivx,nnl(ivx)) = 0
+ else
+ nolev(ivx,nnl(ivx)) = 2
+ end if
+ end if
+ notcrd = .true.
+8 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+ if (index('+-<>',durq) .gt. 0) then
+c
+c Accidental horizontal shift
+c
+ call chkpm4ac(lineq,iccount,nacc(ivx,nnl(ivx)),moved)
+ if (.not.moved) then
+ if (durq.eq.'+') then
+ lastlev = lastlev+7
+ else if (durq.eq.'-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (index('fsn',durq) .gt. 0) then
+ if (nacc(ivx,nnl(ivx)) .eq. 0) then
+c
+c No accid set yet
+c
+ nacc(ivx,nnl(ivx)) = index('fsn',durq)
+ else
+c
+c Symbol must be repeated, so it's a double
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),2)
+ end if
+ else if (durq .eq. 'i') then
+c
+c Set flag for midi-only accidental
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),17)
+
+ else if (durq .eq. 'c') then
+c
+c Set flags for cautionary accidental
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ else if (index('ul',durq) .gt. 0) then
+c
+c Force stem direction for non-beamed xtup note
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),30)
+ if (durq .eq. 'u') islur(ivx,nnl(ivx)) =
+ * ibset(islur(ivx,nnl(ivx)),17)
+ else if (durq .eq. 'e') then
+c
+c Left-shift main xtup note
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),8)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+c
+c Right-shift main xtup note
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),9)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double an xtup note to make an unequal xtup
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ ndoub = ndoub+1
+ else if (durq .eq. 'd') then
+c
+c Dotted xtup note
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ else
+c
+c Must be an octave number
+c
+ lastlev = ifnolev(charq,ichar(durq)-48
+ * ,iTransAmt(instno(iv)))
+ end if
+ go to 8
+ end if
+ if (itup .lt. ntup) then
+c
+c Last note is handled *after* flowing out of the xtup if block, but still
+c within block for a note-rest. Set note level now (rest already done).
+c Could have problem here if rests & doubled notes are combined in xtup,
+c since might exit the loop at the wrong place. Worry about it later.
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ lastlev = lastlev-3+mod(ifnolev(charq,10,
+ * iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ nodur(ivx,nnl(ivx)) = 0
+ do 42 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on internal xtup note
+c
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+42 continue
+ end if
+ if (itup .eq. ntup-ndoub) go to 12
+6 continue
+12 continue
+ if (ornrpt) then
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),
+ * iand(iornq(ivx,nnl(ivx)-1),10026991))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+c
+c End of if-block for xtuplet input
+c
+ else if (durq .eq. 'm') then
+c
+c Multi-bar rest: next 1 or two digits are # of bars.
+c For some purposes, pretend its one bar only
+c
+ nodur(ivx,nnl(ivx)) = lenbar
+ ibarmbr = nbars+1
+ mbrest = 0
+ xb4mbr = 0.
+20 call getchar(lineq,iccount,durq)
+ if (ichar(durq).ge.48.and.ichar(durq).le.57) then
+ mbrest = 10*mbrest+ichar(durq)-48
+ go to 20
+ end if
+ else if (index('ul',durq) .gt. 0) then
+c
+c Set stem flipper
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),30)
+ if (durq .eq. 'u') islur(ivx,nnl(ivx)) =
+ * ibset(islur(ivx,nnl(ivx)),17)
+ go to 2
+ else if (durq .eq. 'a') then
+c
+c "Alone", i.e., prohibit beam
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),18)
+ go to 2
+ else if (durq .eq. 'r') then
+c
+c Right offset by one notehead
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),9)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ go to 2
+ else if (durq .eq. 'e') then
+c
+c Left offset by one notehead
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),8)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ go to 2
+ else if (durq .eq. 'S') then
+c
+c Stemlength change. Get -dstemlen in \internotes. Allowable values are .5 to 4
+c Set mult(27). Map value to 0 to 7, store in mult(28-30). Later convert to
+c interbeams = internotes*2/3.
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),27)
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c End stickyS. Grab data now from prior note, since we have to shut off stickyS.
+c
+ call setbits (mult(ivx,nnl(ivx)),3,28,
+ * igetbits(mult(ivx,nnl(ivx)-1),3,28))
+ stickyS = .false.
+ go to 2
+ end if
+c
+c If durq .ne. ':' then iccount is now on the start of the number
+c
+ call readnum(lineq,iccount,durq,dum)
+ call setbits (mult(ivx,nnl(ivx)),3,28,nint((dum-.5)*2))
+ if (durq .eq. ':') then
+ stickyS = .true.
+ else
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .eq. ',') then
+c
+c 2:1 pattern
+c
+ idotform = 3
+c
+c Now flow to duration setting, as if durq=' '
+c
+ else if (durq .eq. '.') then
+c
+c Dotted pattern. Close out note. Mult time by 3/4.
+c Set time for next note to 1/4. Start the note.
+c
+ idotform = 1
+ else if (durq .eq. 'o') then
+c
+c Suppress rest centering
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),25)
+ go to 2
+ else if (durq .eq.'L') then
+c
+c With keyboard rest option, look left
+c
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),30)
+ go to 2
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double note for xtup. Must check here in case "D" came before "x" or on
+c last note of xtup. Need to flag it in pmxa since affects horiz. spacing.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ go to 2
+ else if (durq .eq. 'A') then
+c
+c Accidental option
+c
+ call getchar(lineq,iccount,durq)
+c
+ if (durq .eq. 'o') then
+c
+c Ordered accidentals in a chord. Mark the main note.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),28)
+ else
+c
+c Only other possibility is +-<> . Set tag, reduce iccount and loop to get #'s
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),29)
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .ne. ' ') then
+ print*,'Illegal character in note: ',durq,', ivx,nn:',
+ * ivx,nnl(ivx)
+ call stop1()
+ end if
+c
+c Done with note/rest options. Set level and duration.
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ if (numnum .eq. 2) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ nolev(ivx,nnl(ivx)) = lastlev
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ do 43 npreslur = npreslur , 1 , -1
+c
+c Set level for preslur on normal note, non-chord
+c
+ call setbits(isdat2(nsdat-npreslur+1),7,19,lastlev)
+43 continue
+ end if
+ if (idotform .gt. 0) then
+ if (idotform .eq. 1) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)*3/2
+ else if (idotform .eq. 2) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/3
+ else if (idotform .eq. 3) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)
+ else if (idotform .eq. 4) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/2
+ end if
+ else if (btest(islur(ivx,nnl(ivx)),19)) then
+c
+c Set duration of full-bar rest as pause
+c
+ nodur(ivx,nnl(ivx)) = lenbar
+c
+c Use a one-line function to set nnodur. It gives inverse of ifnodur.
+c
+ nnodur = index('62514x0x37',
+ * chax(48+int(log(.1+lenbar)/.69315)))-1
+ else if (ibarmbr.ne.nbars+1) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)
+ if (btest(islur(ivx,nnl(ivx)),3))
+ * nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*7/6
+ end if
+ if (shifton .and. .not.btest(irest(ivx,nnl(ivx)),16)) then
+c
+c Shift is on, and this is not first shifted note. Check for duration change
+c
+ if (nodur(ivx,nnl(ivx)) .ne. nodur(ivx,nnl(ivx)-1)) then
+c
+c Must stop and restart the offset.
+c
+ irest(ivx,nnl(ivx)-1) = ibset(irest(ivx,nnl(ivx)-1),17)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),16)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udoff(ivx,nudoff(ivx)-1)
+ end if
+ end if
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ if (autofbon .and. tautofb.gt.tol .and. fbon) then
+c
+c Check to see if need to terminate auto forced beam
+c
+ if (mod(itsofar(ivx)-t1autofb,tautofb) .lt. tol) then
+c
+c Terminate autofb
+c
+ t2fb(ivx,nfb(ivx)) = itsofar(ivx)
+ fbon = .false.
+ end if
+ end if
+ if (mod(itsofar(ivx)-lenb0,lenbar) .eq. 0) then
+c
+c Finished a bar
+c
+ nbars = nbars+1
+ nib(ivx,nbars) = nnl(ivx)
+ if (firstgulp.and.lenb0.ne.0.and.nbars.eq.1) then
+c
+c Just finished the pickup bar for this voice.
+c
+ lenbar = lenb1
+ end if
+ end if
+ if (idotform .eq. 1) then
+ call getchar(lineq,iccount,charq)
+ idotform = 2
+ numnum = 1
+ go to 28
+ else if (idotform .eq. 3) then
+ call getchar(lineq,iccount,charq)
+ idotform = 4
+ numnum = 1
+ go to 28
+ end if
+c
+c End of sub block for note-rest
+c
+ else if (charq .eq. 'z') then
+c
+c Chord note. Must have note name, may have octave#,+,-,s,f,n,d
+c Actually the 'd' is not used, since time value comes from
+c basic note. Unless dot is to be shifted!
+c Doesn't increase # of notes, so must handle separately
+c ncrd: index of crd
+c Set bit 10 of ipl on main note as flag
+c Bits in icrdat:
+c 0-7 ip within voice
+c 8-11 ivx
+c 12-18 note level
+c 19 accidental?
+c 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp)
+c 23 shift left
+c 24 shift right
+c 25 arpeggio start or stop
+c 26 flag for moved dot (here, not icrdot, since this is always reset!)
+c 27 Midi-only accidental
+c 29 Tag for accidental shift...means add to autoshifts.
+c 31 Cautionary accidental
+c
+c Bits in icrdot:
+c 0-6 10*abs(vertical dot shift in \internote) + 64
+c 7-13 10*abs(horizontal dot shift in \internote) + 64
+c 14-19 vert accidental shift-32
+c 20-26 20*(horiz accidental shift+3.2)
+c 27-29 top-down level rank of chord note w/accid. Set in crdaccs.
+c
+c Bits in icrdorn are same as in iornq, even tho most orns won't go in crds.
+c
+ ncrd = ncrd+1
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),10)
+ numnum = 0
+c icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8))
+ icrdat(ncrd) = nnl(ivx)
+ call setbits(icrdat(ncrd),4,8,mod(ivx,16))
+ if (ivx .ge. 16) icrdat(ncrd) = ibset(icrdat(ncrd),28)
+ icrdot(ncrd) = 0
+ icrdorn(ncrd) = 0
+c
+c Get note name
+c
+ call getchar(lineq,iccount,charq)
+c
+c Get optional inputs
+c
+25 call getchar(lineq,iccount,durq)
+c ndx = index('fsn+-<>12345678rediA',durq)
+ ndx = index('fsn+-<>12345678rediAc',durq)
+ if (ndx .eq. 20) then
+c
+c Expect +|-|<|> , set tag, loop
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),29)
+ go to 25
+ else if (ndx .gt. 0) then
+ if (ndx .le. 3) then
+ if (.not.btest(icrdat(ncrd),19)) then
+ icrdat(ncrd) = ibset(icrdat(ncrd),19)
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(ndx,20))
+ else
+ icrdat(ncrd) = ibset(icrdat(ncrd),22)
+ end if
+ else if (ndx .eq. 21) then
+c
+c Set flags for cautionary accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ else if (ndx .le. 7) then
+c
+c +/-/</> Check whether octave or accidental shift
+c
+ nactmp = 0
+ call chkpm4ac(lineq,iccount,nactmp,moved)
+ if (moved) then
+c
+c Transfer accidental shift values
+c
+ call setbits(icrdot(ncrd),6,14,igetbits(nactmp,6,4))
+ call setbits(icrdot(ncrd),7,20,igetbits(nactmp,7,10))
+ else
+ if (durq .eq. '+') then
+ lastlev = lastlev+7
+ else if (durq .eq. '-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (durq .eq. 'e') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),23)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),24)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ else if (durq .eq. 'i') then
+c
+c Midi-only accidental on chord note
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),27)
+ else if (durq .eq. 'd') then
+c
+c Must keep 'd' optional (backward compatibility), unless it is moved!
+c
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, unless next char is not part of a number
+c
+ if (index('0123456789.',lineq(iccount+2:iccount+2))
+ * .eq. 0) go to 25
+ icrdat(ncrd) = ibset(icrdat(ncrd),26)
+ call getchar(lineq,iccount,durq)
+ iccount=iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (durq .eq. '+') then
+ icrdot(ncrd) = ior(icrdot(ncrd),nint(fnum*10)+64)
+ else
+ icrdot(ncrd) = ior(icrdot(ncrd),-nint(fnum*10)+64)
+ end if
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift specified also
+c
+ iccount=iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (dumq .eq. '+') then
+ ifnum = nint(fnum*10)+64
+ else
+ ifnum = -nint(fnum*10)+64
+ end if
+ else
+ ifnum = 64
+ end if
+ icrdot(ncrd) = ior(icrdot(ncrd),ishft(ifnum,7))
+ iccount = iccount-1
+ end if
+ else
+c
+c must be a single digit, save it in ioct
+c
+ numnum = 1
+ ioct = ndx-7
+ end if
+ go to 25
+ end if
+ if (numnum .eq. 1) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(lastlev,12))
+ do 44 npreslur = npreslur , 1 , -1
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+c
+c Set level for chord note.
+c Initially I assigned the slur(s) to next note, so fix.
+c
+ islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),0)
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),0)
+ isdat2(nsdat-npreslur+1) = ibset(isdat2(nsdat-npreslur+1),0)
+ call setbits(isdat1(nsdat-npreslur+1),8,3,
+ * igetbits(isdat1(nsdat-npreslur+1),8,3)-1)
+44 continue
+ if (notcrd) then
+c
+c This is the first chord note in this chord.
+c
+ minlev = min(nolev(ivx,nnl(ivx)),lastlev)
+ maxlev = max(nolev(ivx,nnl(ivx)),lastlev)
+ else
+ minlev = min(minlev,lastlev)
+ maxlev = max(maxlev,lastlev)
+ end if
+ notcrd = .false.
+ else if (charq .eq. 'G') then
+ call getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ continue
+c
+c Grace, comes *before* main note:
+c UNLESS there's an 'A' or 'W' after the 'G'
+c ngrace = # of grace note groups so far in block
+c ivg(ngrace), ipg(ngrace)
+c nng(ngrace) = # of notes in this group: default = 1
+c ngstrt(ngrace) = starting position in nolevg of levels for this grace
+c multg(ngrace) = multiplicity: default = 1; input as 'm(digit)'
+c upg(ngrace) = logical for beam or stem dirn: default T, input'u,l'
+c slurg(ngrace) = logical for slur; default F, input 's'
+c slashg(ngrace) = T if slash; default is F, input 'x'
+c These data MUST precede note name of first note
+c nolevg, naccg: lists of levels and accid's, indexed as described above.
+c
+c ngrace = ngrace+1
+c ivg(ngrace) = ivx
+c ipg(ngrace) = nnl(ivx)+1
+c if (ngrace .eq. 1) then
+c ngstrt(ngrace) = 1
+c else
+c ngstrt(ngrace) = ngstrt(ngrace-1)+nng(ngrace-1)
+c end if
+c islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),4)
+c nng(ngrace) = 1
+c multg(ngrace) = 1
+c upg(ngrace) = .true.
+c slurg(ngrace) = .false.
+c slashg(ngrace) = .false.
+c18 call getchar(lineq,iccount,charq)
+c if (index('WA',charq) .gt. 0) then
+cc
+cc Grace is on note that was already done, so shift flags forward one note.
+cc This puts flag on actual note with grace; later for W will go ahead one more.
+cc
+c ipg(ngrace) = nnl(ivx)
+c islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),4)
+c islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),4)
+c if (slurg(ngrace))
+c * iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),24)
+c if (charq .eq. 'A') then
+cc
+cc close After, clear way-after bit, to ensure priority of most recent A/W
+cc
+c ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),31),29)
+c else
+cc
+cc Way after; later assign to following note, and position like normal grace.
+cc
+c ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),29),31)
+c end if
+c else if (charq .eq. 'm') then
+c call getchar(lineq,iccount,charq)
+c multg(ngrace) = ichar(charq)-48
+c else if (index('123456789',charq) .gt. 0) then
+c call readnum(lineq,iccount,durq,fnum)
+c iccount = iccount-1
+c nng(ngrace) = nint(fnum)
+c else if (charq .eq. 'l') then
+c upg(ngrace) = .false.
+c else if (charq .eq. 's') then
+c slurg(ngrace) = .true.
+c if (nnl(ivx) .gt. 0) then
+cc
+cc If A- or W-grace, set signal to start slur on main note.
+cc
+c if(btest(ipl(ivx,nnl(ivx)),31) .or.
+c * btest(ipl(ivx,nnl(ivx)),29))
+c * iornq(ivx,nnl(ivx))=ibset(iornq(ivx,nnl(ivx)),24)
+c end if
+c else if (charq .eq. 'x') then
+c slashg(ngrace) = .true.
+c else if (charq .eq. 'u') then
+c else if (charq .eq. 'X') then
+cc
+cc Space before main note of grace. Number will come next.
+cc
+c iccount = iccount+1
+c call readnum(lineq,iccount,durq,graspace(ngrace))
+c iccount = iccount-1
+c end if
+c if (index('abcdefg',charq) .eq. 0) go to 18
+cc
+cc At this point, charq is first note name in grace
+cc
+c do 19 ing = ngstrt(ngrace), ngstrt(ngrace)+nng(ngrace)-1
+c naccg(ing) = 0
+c ioct = 0
+c if (ing .gt. ngstrt(ngrace)) then
+c55 call getchar(lineq,iccount,charq)
+c if (charq .eq. ' ') go to 55
+c endif
+c iclastlev = 0
+c9 call getchar(lineq,iccount,durq)
+c if (durq .ne. ' ') then
+c if (durq.eq.'+') then
+c lastlev = lastlev+7
+c iclastlev = iclastlev+7
+c else if (durq.eq.'-') then
+c lastlev = lastlev-7
+c iclastlev = iclastlev-7
+c else if (index('fsn',durq) .gt. 0) then
+c if (naccg(ing) .eq. 0) then
+c naccg(ing) = index('fsn',durq)
+c else
+cc
+cc Double accidental
+cc
+c naccg(ing) = ibset(naccg(ing),2)
+c end if
+c else
+c ioct = ichar(durq)-48
+c end if
+c go to 9
+c end if
+c if (ioct .gt. 0) then
+c lastlev = ifnolev(charq,ioct)
+c else
+c if (nnl(ivx).eq.0 .and. ing.eq.ngstrt(ngrace)) then
+c if (ivx .le. nv) then
+c kv = 1
+c else
+c kv = 2
+c end if
+c lastlev = ndlev(iv,kv)+iclastlev
+c end if
+c lastlev = lastlev-3+mod(ifnolev(charq,10)-lastlev+3,7)
+c end if
+c nolevg(ing) = lastlev
+c19 continue
+cc
+cc Grace could come before first note of block, so reset end level.
+cc
+c if (nnl(ivx).eq.0) then
+c if (ivx .le. nv) then
+c kv = 1
+c else
+c kv = 2
+c end if
+c ndlev(iv,kv) = lastlev
+c end if
+ else if (charq .eq. sq) then
+c
+c Literal TeX string
+c
+ call littex(islur,nnl(ivx)+1,ivx,topmods,lineq,iccount)
+ else if (charq .eq. 'o') then
+c
+c Ornament on non-xtup note. Symbol must come AFTER the affected note
+c
+ if (notcrd) then
+ nole = nolev(ivx,nnl(ivx))
+ else
+ nole = iand(127,ishft(icrdat(ncrd),-12))
+ end if
+ call getorn(lineq,iccount,iornq(ivx,nnl(ivx)),
+ * iornq(ivx,0),ornrpt,noffseg,nnl(ivx),ivx,
+ * .true.,notcrd,nole)
+ else if (index('st(){}',charq) .gt. 0) then
+ nnlivx = nnl(ivx)
+ if (charq.eq.'(' .or. charq.eq.'{') then
+c
+c Detect preslur on normal non-chord note
+c
+ nnlivx = nnlivx+1
+ npreslur = npreslur+1
+ end if
+ islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),0)
+ if (charq.eq.'t')
+ * islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),1)
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (fontslur) then
+ call sslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,isdat3,
+ * nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ else
+ call spsslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,isdat3,
+ * isdat4,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ end if
+ else if (charq .eq. '?') then
+c
+c Arpeggio
+c
+ if (btest(ipl(ivx,nnl(ivx)),10)) then
+c
+c This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note
+c of chord, will not set icrdat(25), but iornq(27)
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),25)
+ else
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),27)
+ end if
+c
+c Check for shift
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+c
+c durq must be "-"
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+c
+c record the shift
+c
+ NumArpShift = NumArpShift+1
+ IvArpShift(NumArpShift) = ivx
+ IpArpShift(NumArpShift) = nnl(ivx)
+ ArpShift(NumArpShift) = fnum
+ end if
+ else if (index('0123456789#-nx_',charq) .gt. 0) then
+c
+c We have a figure. Must come AFTER the note it goes under
+c
+
+ ivf = 1
+ if (ivx .gt. 1) then
+ if (ivxfig2 .eq. 0) then
+ ivxfig2 = ivx
+ else if (ivx .ne. ivxfig2) then
+ print*
+ print*,'Figures not allowed in >1 voice above first'
+ stop
+ end if
+ ivf = 2
+ end if
+ nfig1 = nfigs(ivf)+1
+ call getfig(itoff(ivf,nfig1),charq,lineq,iccount,
+ * isfig(ivf,nnl(ivx)),itfig(ivf,nfig1),itsofar(ivx),
+ * nodur(ivx,nnl(ivx)),figq(ivf,nfig1),
+ * ivupfig(ivf,nfig1),nfigs(ivf))
+ else if (charq .eq. '[') then
+c
+c Start forced beam. Record barno & time since start of inp. blk. Set signal
+c
+ nfb(ivx) = nfb(ivx)+1
+ fbon = .true.
+ ulfbq(ivx,nfb(ivx)) = 'x'
+ t1fb(ivx,nfb(ivx)) = itsofar(ivx)
+ nadj = 0
+ if (autofbon) then
+ autofbon = .false.
+ end if
+17 call getchar(lineq,iccount,charq)
+ if (index('ulf',charq) .gt. 0) then
+ ulfbq(ivx,nfb(ivx)) = charq
+ go to 17
+ else if (charq .eq. 'j') then
+c
+c Continuing a jumped beam here
+c
+ irest(ivx,nnl(ivx)+1) = ibset(irest(ivx,nnl(ivx)+1),24)
+c
+c Set flag to watch for END of this forced beam, so can set flag rest(30) on
+c NEXT note as signal to start a new notes group there.
+c
+ isbj2 = .true.
+ go to 17
+ else if (charq .eq. 'h') then
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),2)
+ go to 17
+ else if (charq .eq. 'm') then
+c
+c Force multiplicity. Next input is digit
+c
+ call getchar(lineq,iccount,charq)
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),21)
+ call setbits(islur(ivx,nnl(ivx)+1),3,22,ichar(charq)-48)
+ go to 17
+ else if (charq .eq. ':') then
+c
+c Start auto forced beam pattern
+c
+ autofbon = .true.
+c
+c When forced later beam ends, check whether tautofv <=0; if so set it.
+c
+ tautofb = -itsofar(ivx)
+ t1autofb = itsofar(ivx)
+ go to 17
+ else if (charq .ne. ' ') then
+c
+c Must be '+/-' for height or slope shift
+c
+ nadj = nadj+1
+c
+c nadj = 1,2, or 3 for normal start level, slope, or beam-thk start level.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ iadj = nint(fnum)
+ if (charq .eq. '-') iadj = -iadj
+ if (nadj .eq. 1) then
+c
+c This is a level shift. Note if 0 was entered, iadj = 30
+c
+ call setbits(ipl(ivx,nnl(ivx)+1),6,11,iadj+30)
+ else if (nadj .eq. 2) then
+c
+c Must be a slope shift
+c
+ call setbits(ipl(ivx,nnl(ivx)+1),6,17,iadj+30)
+ else
+c
+c Beam-thk fine tune
+c
+ call setbits(islur(ivx,nnl(ivx)+1),2,27,iadj)
+ end if
+ go to 17
+ end if
+ else if (charq .eq. ']') then
+ if (autofbon .and. tautofb.lt.tol) then
+ tautofb=itsofar(ivx)+tautofb
+ end if
+ call getchar(lineq,iccount,charq)
+ if (index('j ',charq) .gt. 0) then
+c
+c Since ']' comes AFTER note, itsofar has been updated. Set ending signal.
+c
+ t2fb(ivx,nfb(ivx)) = itsofar(ivx)
+ fbon = .false.
+ if (charq .eq. 'j')
+ * irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),23)
+ if (isbj2) then
+c
+c This is the end of a fb segment of a jump beam. Set flag on NEXT note to
+c force start of new notes group, provided this is not last note in bar.
+c
+ if (mod(itsofar(ivx),lenbar) .ne. 0)
+ * irest(ivx,nnl(ivx)+1) = ibset(irest(ivx,nnl(ivx)+1),30)
+ isbj2 = .false.
+ end if
+ else if (charq .eq. '[') then
+c
+c Multiplicity down-up signal
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),20)
+ else if (charq .eq. '-') then
+c
+c Set signals for gap in single-slope beam [...]-[...]
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),20)
+ nacc(ivx,nnl(ivx)+1) = ibset(nacc(ivx,nnl(ivx)+1),21)
+c
+c Next two characters must be "[ ". Skip over them.
+c
+ iccount = iccount+2
+ end if
+ else if (charq .eq. 'D') then
+ call getdyn(ivx,nnl(ivx),irest(ivx,nnl(ivx)),
+ * iornq(ivx,nnl(ivx)),lineq,iccount)
+ else if (charq .eq. 'h') then
+c
+c Heading or height. For heading, only OK if at start of block
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "h" not at beginning of block'
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ ihdvrt = 0
+ if (index('+-',durq) .gt. 0) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ ihdvrt = fnum+.1
+ if (durq .eq. '-') ihdvrt = -ihdvrt
+ durq = charq
+ end if
+ if (durq .ne. ' ') then
+c
+c Height symbol. Read past (until next blank)
+c
+3 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 3
+ else
+c
+c Set flag for header & read it in
+c
+ ihdht = 16
+ call getbuf(headrq)
+ iccount = 128
+ end if
+ else if (charq .eq. 'L') then
+c
+c Linebreak, already handled in pmxa, but check for movement break
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fmovbrk)
+ if (durq .eq. 'P') then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ if (durq .eq. 'M') then
+ movbrk = nint(fmovbrk)
+ movgap = 0
+ parmov = -1.
+ call getchar(lineq,iccount,durq)
+31 if (durq .eq. '+') then
+c
+c Get vertical space (\internotes)
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ movgap = nint(fnum)
+ go to 31
+ else if (durq .eq. 'i') then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,parmov)
+ go to 31
+ else if (durq .eq. 'c') then
+ nobar1 = .true.
+ call getchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'r') then
+c
+c "rename" can be set on or off.
+c
+ call getchar(lineq,iccount,durq)
+ rename = durq.eq.'+'
+ call getchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'n') then
+c
+c Change # of voices. Input ninow, iiorig(1...ninow). Will use names,
+c staves per inst. and clefs corr. to iiorig in original list of instruments.
+c
+ nvold = nv
+ nv = 0
+ rename = .true.
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+ iccount = iccount+2
+ read(lineq(iccount-1:iccount),'(i2)')ninow
+ else
+ ninow = ichar(durq)-48
+ end if
+ iiv = 0
+ do 63 iinow = 1 , ninow
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+ iccount = iccount+2
+ read(lineq(iccount-1:iccount),'(i2)')iiorig(iinow)
+ else
+ iiorig(iinow) = ichar(durq)-48
+ end if
+ nspern(iinow) = nsperi(iiorig(iinow))
+ nv = nv+nspern(iinow)
+ sepsymq(iiv+nspern(iinow)) = '&'
+ if (nspern(iinow) .gt. 1) then
+ do 64 iis = 1 , nspern(iinow)-1
+ sepsymq(iiv+iis) = '|'
+64 continue
+ end if
+ iiv = iiv+nspern(iinow)
+63 continue
+ if (islast) then
+ if (ninow .lt. 10) then
+ write(11,'(a)')sq//'newnoi{'//chax(ninow+48)//'}%'
+ else
+ write(11,'(a8,i2,a2)')sq//'newnoi{',ninow,'}%'
+ end if
+ end if
+ if (nv.eq.1 .and. nvold.gt.1) then
+ if (islast) write(11,'(a)')sq//'nostartrule'
+ else if (nv.gt.1 .and. nvold.eq.1) then
+ if (islast) write(11,'(a)')sq//'startrule'
+ end if
+ iiv = 0
+ do 60 iinow = 1 , ninow
+ do 61 iis = 1 , nspern(iinow)
+ iiv = iiv+1
+c
+c May not really need to re-enter clefs, but it's easier to program since
+c clef names are not saved but are needed in newvoice to set ncmidcc.
+c
+ call getchar(lineq,iccount,clefq(iiv))
+ call newvoice(iiv,clefq(iiv),.true.)
+ if (nspern(iinow) .eq. 1) then
+ hdlndq = chax(48+numclef(clefq(iiv)))
+ lclf = 1
+ else if (iis .eq. 1) then
+ hdlndq = '{'//chax(48+numclef(clefq(iiv)))
+ lclf = 2
+ else if (iis .lt. nspern(iinow)) then
+ hdlndq = hdlndq(1:lclf)//chax(48+numclef(clefq(iiv)))
+ lclf = lclf+1
+ else
+ hdlndq =
+ * hdlndq(1:lclf)//chax(48+numclef(clefq(iiv)))//'}'
+ lclf = lclf+2
+ end if
+61 continue
+c
+c setstaffs & setclef go by instrument, not voice
+c
+ if (islast) then
+ if (iinow .lt. 10) then
+ write(11,'(a)')sq//'setstaffs'
+ * //chax(48+iinow)//chax(48+nspern(iinow))//'%'
+ write(11,'(a)')sq//'setclef'//chax(48+iinow)
+ * //hdlndq(1:lclf)//'%'
+ else
+ write(11,'(a11,i2,a)')sq//'setstaffs{',iinow,
+ * '}'//chax(48+nspern(iinow))//'%'
+ write(11,'(a9,i2,a)')sq//'setclef{',iinow,
+ * '}'//hdlndq(1:lclf)//'%'
+ end if
+ end if
+60 continue
+c
+c Loop back up, this may not be last option in M. Note flow out if durq=' '
+c
+ call getchar(lineq,iccount,durq)
+ go to 31
+ end if
+c
+c Write instrument names
+c
+ if (.not.rename) then
+ do 62 iinst = 1 , ninow
+ if (islast) then
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a3)')sq//'setname',iinst,'{}%'
+ else
+ write(11,'(a9,i2,a4)')sq//'setname{',iinst,'}{}%'
+ end if
+ end if
+62 continue
+ else
+ do 65 iinst = 1 , ninow
+ if (islast) then
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a)')sq//'setname',iinst,'{'//
+ * inameq(iiorig(iinst))(1:lnam(iiorig(iinst)))//'}%'
+ else
+ write(11,'(a9,i2,a)')sq//'setname{',iinst,'}{'//
+ * inameq(iiorig(iinst))(1:lnam(iiorig(iinst)))//'}%'
+ end if
+ end if
+65 continue
+ rename = .false.
+ end if
+ end if
+ else if (charq .eq.'|' ) then
+c
+c End of bar symbol. Check about end of bar hardspace.
+c
+ if (btest(iornq(ivx,nnl(ivx)+1),26)) then
+c
+c There was a hardspace followed by a bar line. Remove it from the hardspace
+c list, store with shifts instead, set special bit. Need to repeat this code
+c at '/'.
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),18)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udsp(nudsp)
+ nudsp = nudsp-1
+ iornq(ivx,nnl(ivx)+1) = ibclr(iornq(ivx,nnl(ivx)+1),26)
+ end if
+ else if (index('wS',charq) .gt. 0) then
+c
+c Width symbol or new nsyst. Read past (until blank)
+c
+4 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 4
+ else if (charq .eq. 'l') then
+c
+c Lower string. Only OK if at start of block
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "l" not at beginning of block'
+ call stop1()
+ end if
+c
+c Set flag for lower string & read it in
+c
+ lower = .true.
+ call getbuf(lowerq)
+ iccount = 128
+ else if (charq .eq. 'm') then
+c
+c Meter change. Only allow at beginning of block.
+c mtrnuml, mtrdenl (logical) and p (printable) will be input.
+c mtrnuml=0 initially. (In common)
+c
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "m" not at beginning of block'
+ call stop1()
+ end if
+ call readmeter(lineq,iccount,mtrnuml,mtrdenl)
+ call readmeter(lineq,iccount,mtrnmp,mtrdnp)
+ lenbeat = ifnodur(mtrdenl,'x')
+ if (mtrdenl .eq. 2) lenbeat = 16
+ lenbar = mtrnuml*lenbeat
+ if (mtrdenl .eq. 2) lenbar = lenbar*2
+ lenb1 = lenbar
+ lenb0 = 0
+ if (ismidi) call midievent('m',mtrnuml,mtrdenl)
+ else if (charq .eq. 'C') then
+c
+c Clef change on next note. Set bits 11-15. Won't allow in 2nd line of music.
+c
+ if (nnl(iv) .gt. 0) ncc(iv) = ncc(iv)+1
+ tcc(iv,ncc(iv)) = itsofar(iv)
+ isl = ibset(islur(iv,nnl(iv)+1),11)
+ call getchar(lineq,iccount,durq)
+c
+c Store clef number, or 7 if clef number = 9 (French violin clef)
+c
+ isl = ior(isl,ishft(min(numclef(durq),7),12))
+ ncmidcc(iv,ncc(iv)) = ncmidf(durq)
+c
+c Set marker on note with lowest voice # starting at same time.
+c
+ if (iv .eq. 1) then
+ isl = ibset(isl,15)
+ else
+ do 13 iiv = 1 , iv
+ nnliiv = nnl(iiv)
+ if (iiv .eq. iv) nnliiv = nnliiv+1
+ itother = 0
+ do 14 iip = 1 , nnliiv
+ if (itother .lt. itsofar(iv)) then
+ itother = itother+nodur(iiv,iip)
+ go to 14
+ else if (itother .eq. itsofar(iv)) then
+ islur(iiv,iip) = ibset(islur(iiv,iip),15)
+ go to 15
+ end if
+14 continue
+13 continue
+15 continue
+ end if
+c
+c Need 'or' since may have set bit 15 in the above loop
+c
+ islur(iv,nnl(iv)+1) = ior(isl,islur(iv,nnl(iv)+1))
+ else if (charq .eq. 'R') then
+c
+c Repeats. set bits 5, 6, and/or 8 of islur(1,ip+1)
+c
+10 call getchar(lineq,iccount,durq)
+c
+c Save designator in case it's a terminal Rr or Rd
+c
+ if (durq .eq. 'l') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),5)
+ go to 10
+ else if (index('rdDbz',durq) .gt. 0) then
+ if (durq .eq. 'r') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),6)
+ else if (durq .eq. 'd') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),8)
+ else if (durq .eq. 'D') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),26)
+ else if (durq .eq. 'b') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),25)
+ else if (durq .eq. 'z') then
+ iornq(1,nnl(1)+1) = ibset(iornq(1,nnl(1)+1),29)
+ end if
+ rptprev = .true.
+ rptfq1 = durq
+ go to 10
+ end if
+ else if (charq .eq. 'V') then
+c
+c Ending
+c
+ nnnl = nnl(1)+1
+ lvoltxt = 0
+11 call getchar(lineq,iccount,durq)
+ if (durq.eq.'b' .or. durq .eq.'x') then
+c
+c End Volta, set bit9, and bit10 on if 'b' (end w/ box)
+c
+ islur(1,nnnl) = ibset(islur(1,nnnl),9)
+ if (durq .eq. 'b') islur(1,nnnl) = ibset(islur(1,nnnl),10)
+ go to 11
+ else if (durq .ne. ' ') then
+c
+c Start volta; Get text
+c
+ if (lvoltxt .eq. 0) then
+c
+c First character for text
+c
+ lvoltxt = 1
+ islur(1,nnnl) = ibset(islur(1,nnnl),7)
+ nvolt = nvolt+1
+ voltxtq(nvolt) = durq
+ else
+ voltxtq(nvolt) = voltxtq(nvolt)(1:lvoltxt)//durq
+ lvoltxt = lvoltxt+1
+ end if
+ go to 11
+ end if
+ else if (charq .eq. 'B') then
+ bcspec = .not.bcspec
+ else if (charq .eq. 'P') then
+c
+c Page numbers. Print stuff right now.
+c
+ npg1 = 0
+c
+c Will use ltopnam to signal whether there's a centered heading
+c
+ ltopnam = 0
+ ipg1r = 0
+16 call getchar(lineq,iccount,durq)
+ if (ichar(durq).ge.48 .and. ichar(durq).le.57) then
+ npg1 = npg1*10+ichar(durq)-48
+ go to 16
+ else if (durq .eq. 'l') then
+ if (npg1.eq.0 .or. mod(npg1,2).eq.1) ipg1r = 1
+ go to 16
+ else if (durq .eq. 'r') then
+ if (npg1.gt.0 .and. mod(npg1,2).eq.0) ipg1r = 1
+ go to 16
+ else if (durq .eq. 'c') then
+c
+c Top-centered name. Assume this is last option. Read the name.
+c May surround name in double quotes (to allow blanks).
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ ltopnam = lenstr(cheadq,60)
+ else
+ namstrt = iccount
+ if (durq .eq. '"') then
+c
+c Using quote delimiters.
+c
+ quoted = .true.
+ namstrt = namstrt+1
+ else
+ quoted = .false.
+ end if
+ do 35 iccount = namstrt+1, 128
+ if ((quoted .and. lineq(iccount:iccount) .eq. '"') .or.
+ * (.not.quoted .and. lineq(iccount:iccount) .eq. ' '))
+ * go to 36
+c
+c On exit, iccount is OK, and name is in (namstrt:iccount-1)
+c
+35 continue
+ print*,'Awww, cmon, should not be here.'
+ call stop1()
+36 continue
+ ltopnam = iccount-namstrt
+ cheadq = lineq(namstrt:iccount-1)
+ end if
+ end if
+c
+c Done getting data, now assemble the command
+c
+ if (npg1.eq.0) npg1=1
+c
+c 2/23/03 Don't use \atnextline if on first page and only one system
+c
+c if (ipage.gt.1 .or. nsystp(1).gt.1) then
+ hdlndq = sq//'def'//sq//'atnextline{'//sq//'toppageno{'
+ lhead = 27
+c else
+c hdlndq = sq//'toppageno{'
+c lhead = 11
+c end if
+ if (npg1 .lt. 10) then
+c
+c Note we are overwriting the last "{"
+c
+ write(hdlndq(lhead:lhead),'(i1)')npg1
+ else if (npg1 .lt. 100) then
+ lhead = lhead+3
+ write(hdlndq(lhead-2:lhead),'(i2,a1)')npg1,'}'
+ else
+ lhead = lhead+4
+ write(hdlndq(lhead-3:lhead),'(i3,a1)')npg1,'}'
+ end if
+ hdlndq = hdlndq(1:lhead)//chax(ipg1r+48)//'{'
+ lhead = lhead+2
+c if (ipage.gt.1 .or. nsystp(1).gt.1) then
+ if (ltopnam .eq. 0) then
+ if (islast) write(11,'(a)')hdlndq(1:lhead)//'}}%'
+ else
+ if (islast)
+ * write(11,'(a)')hdlndq(1:lhead)//cheadq(1:ltopnam)//'}}%'
+ end if
+c else
+c if (ltopnam .eq. 0) then
+c if (islast) write(11,'(a)')hdlndq(1:lhead)//'}%'
+c else
+c if (islast)
+c * write(11,'(a)')hdlndq(1:lhead)//cheadq(1:ltopnam)//'}%'
+c end if
+c end if
+ else if (charq .eq. 'W') then
+c
+c Just eat the number that must follow, it was used in pmxa
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ else if (charq .eq. 'T') then
+ headlog = .true.
+ inhead = 0
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'i') then
+ call getbuf(instrq)
+c
+c A kluge for parts from separate score file for later movements.
+c
+ if (instrq(1:1) .eq. ' ') headlog = .false.
+ cheadq = instrq
+ else if (durq .eq. 't') then
+ call getchar(lineq,iccount,durq)
+c
+c Optionally can include extra vertical \internotes above inbothd
+c
+ if (index('-+0123456789',durq) .gt. 0) then
+ ipm = 1
+ if (index('+-',durq) .gt. 0) then
+c
+c Don't trust readnum to round this negative integer properly
+c
+ iccount = iccount+1
+ if (durq .eq. '-') ipm = -1
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ inhead = ipm*nint(fnum)
+ end if
+ call getbuf(titleq)
+ else
+ call getbuf(compoq)
+ end if
+ inhead = inhead+inbothd
+ iccount = 128
+ else if (charq .eq. 'A') then
+c
+c Accidental handling etc.
+c
+27 call getchar(lineq,iccount,durq)
+ if (durq .eq. 'r') then
+ if (islast) then
+ relacc = .true.
+ write(11,'(a)')sq//'relativeaccid%'
+ end if
+ else if (durq .eq. 's') then
+ bacfac = 1.e6
+ else if (durq .eq. 'b') then
+ if (islast) write(11,'(a)')sq//'bigaccid%'
+ accfac = bacfac
+ else if (durq .eq. 'a') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ else if (durq .eq. 'i') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,tintstf)
+ if (.not.firstgulp) fintstf = tintstf
+c
+c Local corrections for first page were handled by pmxa
+c
+ iccount = iccount-1
+ else if (durq .eq. 'I') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,gintstf)
+ iccount = iccount-1
+ else if (durq .eq. 'd') then
+ lowdot = .true.
+ else if (durq .eq. 'o') then
+ continue
+ else if (durq .eq. 'S') then
+ do 50 iiv = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('-s',durq) .gt. 0) then
+ fullsize(iiv) = 0.8
+ else if (durq .eq. 't') then
+ fullsize(iiv) = 0.64
+ else
+ fullsize(ivx) = 1.0
+ end if
+50 continue
+ else if (durq .eq. 'e') then
+c
+c Line-spacing equalization
+c
+ equalize = .true.
+c
+c The following redefinition of \parskip was put into pmx.tex in version 2.25 or so.
+c But it causes problems with some older scores and when excerpts are combined
+c with LaTeX. So as of 2.352 we write it here.
+c
+ write(11,'(a)')sq//'global'//sq//'parskip 0pt plus 12'//sq
+ * //'Interligne minus 99'//sq//'Interligne%'
+ tempq = sepsymq(1)
+ lentemp = 1
+ do 51 iiv = 2 , nv-1
+ tempq = tempq(1:lentemp)//sepsymq(iiv)
+ lentemp = lentemp+1
+51 continue
+ write(11,'(a)')sq//'def'//sq//'upstrut{'//sq//'znotes'
+ * //tempq(1:lentemp)//sq//'zcharnote{'//sq//'upamt}{~}'
+ * //sq//'en}%'
+ else if (durq .eq. 'v') then
+c
+c Toggle usevshrink
+c
+ usevshrink = .not.usevshrink
+ else if (durq .eq.'p') then
+c
+c Postscript slurs. fontslur is already false (set in g1etnote)
+c
+ if (.not.WrotePsslurDefaults) then
+c
+c Set postscrirpt slur adjustment defaults
+c
+ write(11,'(a)')sq//'Nosluradjust'//sq//'Notieadjust'
+ * //sq//'nohalfties'
+ WrotePsslurDefaults = .true.
+ end if
+52 continue
+ call g1etchar(lineq,iccount,durq) ! might be "+", "-", "h" or "l"
+ if (index('+-',durq) .gt. 0) then
+c
+c Characters to change defaults for ps slurs
+c
+ call g1etchar(lineq,iccount,charq) ! charq will be "s,t,h,c"
+ if (durq .eq. '+') then
+ if (charq .eq. 's') then
+ write(11,'(a)')sq//'Sluradjust'
+ else if (charq .eq. 't') then
+ write(11,'(a)')sq//'Tieadjust'
+ else if (charq .eq. 'h') then
+ write(11,'(a)')sq//'halfties'
+ else
+ SlurCurve = SlurCurve + 1
+ if (SlurCurve .gt. 3.1) then
+ call printl('WARNING!')
+ call printl
+ * ('Default slur curvature advanced past HH, resetting')
+ SlurCurve = 3
+ end if
+ end if
+ else
+ if (charq .eq. 's') then
+ write(11,'(a)')sq//'Nosluradjust'
+ else if (charq .eq. 't') then
+ write(11,'(a)')sq//'Notieadjust'
+ else if (charq .eq. 'h') then
+ write(11,'(a)')sq//'nohalfties'
+ else
+ SlurCurve = SlurCurve - 1
+ if (SlurCurve .lt. -1.1) then
+ call printl('WARNING!')
+ call printl(
+ * 'Default slur curvature decremented below f, resetting')
+ SlurCurve = -1
+ end if
+ end if
+ end if
+ go to 52 ! Check for another set of default changes
+ else if (durq .eq. 'l') then
+c
+c Set optional linebreak ties
+c
+ OptLineBreakTies = .true.
+ go to 52
+ else if (durq .eq. 'h') then
+c
+c Set flag to write header special on every page
+c
+ HeaderSpecial = .true.
+ go to 52
+ else
+ iccount = iccount-1
+ end if
+ else if (durq .eq. 'K') then
+c
+c Toggle keyboard rest placement flag
+c
+ kbdrests = .not.kbdrests
+ else if (durq .eq. 'c') then
+ call g1etchar(lineq,iccount,durq)
+c
+c Just eat the input; it was used in pmax
+c
+ go to 27
+ end if
+ if (index('NR',durq) .gt. 0) then
+c
+c Override default part names for scor2prt, or normal include file.
+c Just bypass rest of input line
+c
+ iccount = 128
+ else if (durq .ne. ' ') then
+ go to 27
+ end if
+ else if (charq .eq. 'K') then
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. 'i') then
+c
+c Normal, full-score key change and/or transposition
+c
+ num1 = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ num1 = num1*nint(fnum)
+c
+c On exit, durq='+','-'. But only need isig if after start, else done in pmxa
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ if (num1 .eq. 0) then
+c
+c Key change, not transposition.
+c
+ ipl(ivx,nnl(ivx)+1) = ibset(ipl(ivx,nnl(ivx)+1),28)
+ lastisig = isig
+ isig = nint(fnum)
+ if (durq .eq. '-') isig = -isig
+ isig = isig+idsig
+ if (ismidi) call midievent('k',isig,0)
+ else
+c
+c num1 .ne. 0, so transposition, so must be at beginning. isig came with K...
+c but was passed to pmxb through pmxtex.dat. isig0 comes from setup data
+c (signature before transposition). idsig must be added to future key changes.
+c
+ jv = 0
+ do while (jv .lt. nm)
+ jv = jv+1
+ iTransAmt(jv) = num1
+ end do
+ idsig = isig-isig0
+ end if
+ else
+c
+c Instrument specific transposition.
+
+ call GetiTransInfo(.false.,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+ end if
+ else if (charq .eq. '/') then
+ if (btest(iornq(ivx,nnl(ivx)+1),26)) then
+c
+c There was a hardspace followed by end of block. Remove it from the hardspace
+c list, store with shifts instead, set special bit. This code also at '|'
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),18)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udsp(nudsp)
+ nudsp = nudsp-1
+ iornq(ivx,nnl(ivx)+1) = ibclr(iornq(ivx,nnl(ivx)+1),26)
+ end if
+ call getchar(lineq,iccount,durq)
+c
+c Save ending note level:
+c
+ if (ivx .le. nv) then
+c
+c This is the first line of music on this staff. If previous block had only 1
+c voice, save last pitch from line 1 of prev. block to line 2, in case a
+c 2nd line is started just below
+c
+ if (.not.was2(iv)) ndlev(iv,2) = ndlev(iv,1)
+ was2(iv) = .false.
+ ndlev(iv,1) = lastlev
+ else
+c
+c This is the 2nd line of music on this staff.
+c
+ was2(iv) = .true.
+ ndlev(iv,2) = lastlev
+ end if
+ if (durq .eq. ' ' .and. iv.eq.nv) then
+c
+c End of input block
+c
+ loop = .false.
+ else
+c
+c Start a new line of music
+c
+ if (lenb0.ne.0 .and. firstgulp) lenbar = lenb0
+ nbars = 0
+ if (durq .eq. ' ') then
+c
+c New line of music is on next staff
+c
+ iv = iv+1
+ ivx = iv
+ else
+c
+c durq must be 2nd '/'. New line of music is on same staff. Set up for it
+c
+ ivx = nv+1
+ do 23 iiv = 1 , nv
+ if (nvmx(iiv) .eq. 2) ivx = ivx+1
+23 continue
+ nvmx(iv) = 2
+ ivmx(iv,2) = ivx
+ itsofar(ivx) = 0
+ nnl(ivx) = 0
+ nfb(ivx) = 0
+ nudoff(ivx) = 0
+ ndotmv(ivx) = 0
+ do 24 j = 1 , 200
+ irest(ivx,j) = 0
+ islur(ivx,j) = 0
+ nacc(ivx,j) = 0
+ iornq(ivx,j) = 0
+ ipl(ivx,j) = 0
+ mult(ivx,j) = 0
+24 continue
+c
+c Go back and lower the rests in voice "a" that don't have over-ridden heights
+c
+ do 26 j = 1 , nnl(iv)
+ if (btest(irest(iv,j),0) .and. nolev(iv,j).eq.0)
+ * nolev(iv,j) = -4
+26 continue
+ end if
+ end if
+ iccount = 128
+ else if (charq .eq. 'X') then
+c
+c 3rd arg is only for termination of group shifts. Use "max" to avoid zero index,
+c which only happens for normal X at block start, and we took special measures to
+c keep group shifts for crossing block boundaries.
+c
+ call getx(lineq,iccount,irest(ivx,max(1,nnl(ivx))),
+ * shifton,wheadpt,iornq(ivx,nnl(ivx)+1),ivx,
+ * irest(ivx,nnl(ivx)+1),itsofar(ivx),0,0,0,' ',ndoub)
+ else if (charq .eq. 'I') then
+c
+c Midi controls.
+c
+ call getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,.false.)
+ else if (charq .eq. 'M') then
+c
+c Macro action
+c
+ call getchar(lineq,iccount,charq)
+ if (index('RS',charq) .gt. 0) then
+c
+c Record or save a macro. Get the number of the macro.
+c
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ macuse = ibset(macuse,macnum)
+ if (charq .eq. 'R') then
+ call mrec1(lineq,iccount,ndxm)
+ else
+c
+c Save (Record but don't activate)
+c
+5 call mrec1(lineq,iccount,ndxm)
+ if (mrecord) then
+ call getbuf(lineq)
+ iccount = 0
+ go to 5
+ end if
+ iccount = iccount+ndxm+1
+ end if
+ else if (charq .eq. 'P') then
+c
+c Playback the macro
+c
+ call getchar(lineq,iccount,charq)
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ icchold = iccount
+ lnholdq = lineq
+ iccount = 128
+ ilmac = il1mac(macnum)
+ mplay = .true.
+ end if
+ else if (index(',.',charq) .gt. 0) then
+c
+c Continued rhythmic shortcut
+c
+ idotform = index('. ,',charq)
+ if (idotform .eq. 1) then
+c
+c Check for start of forced beam on 2nd member of dotform=1 shortcut
+c
+ if (fbon) then
+ if (t1fb(ivx,nfb(ivx)).eq.itsofar(ivx))
+ * t1fb(ivx,nfb(ivx)) =
+ * t1fb(ivx,nfb(ivx))+nodur(ivx,nnl(ivx))/2
+ end if
+c
+c Change duration of prior note
+c
+ itsofar(ivx) = itsofar(ivx)-nodur(ivx,nnl(ivx))
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*3/2
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ end if
+ idotform = idotform+1
+ numnum = 1
+ cdot = .true.
+ go to 1
+ end if
+ return
+ end
+ subroutine getorn(lineq,iccount,iornq,iornq0,ornrpt,noffseg,
+ * ip,ivx,noxtup,notcrd,nole)
+c
+c iornq: Main note. Do not alter if chord note, except turn on bit 23
+c iornq0: Store iorni + bit 23, in case of repeated ornaments
+c iorni: Internal use, 1st 21 bits of iornq or icrdorn, dep. on notcrd.
+c noffseg: horiz. offset for segno
+c nole: level of note w/ orn, used to ID the note/orn if there's a level shift.
+c
+
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comcb/ nbc,ibcdata(36)
+ character*1 charq,durq
+ character*128 lineq
+ logical ornrpt,negseg,noxtup,notcrd
+c
+c Bits 0-13: (stmgx+Tupf._), 14: Down fermata, was F, 15: Trill w/o "tr", was U
+c 16-18 Editorial sharp, flat, natural "oes,f,n"; 19-20: >^, 21 TBD
+c
+ call getchar(lineq,iccount,charq)
+ if (index('bc',charq) .gt. 0) then
+c
+c caesura or breath, handle specially and exit. Set up data in ibcdata(1...nbc)
+c ivx(0-3,28), ip(4-12),
+c vshift (vshift+32 in bits 13-18),
+c hshift (nint(10*vshift)+128 in bits 19-26)
+c bit 27 = 0 if caesura, 1 if breath
+c bit 28: 5th bit of ivx
+c
+ iornq = ibset(iornq,28)
+ nbc = nbc+1
+c ibcdata(nbc) = ivx+16*ip
+ ibcdata(nbc) = mod(ivx,16)+16*ip
+ if (ivx.ge.16) ibcdata(nbc) = ibset(ibcdata(nbc),28)
+ if (charq .eq. 'b') ibcdata(nbc) = ibset(ibcdata(nbc),27)
+ call getchar(lineq,iccount,durq)
+ if (index('+-',durq) .gt. 0) then
+c
+c We have a vertical shift, get it
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ if (durq .eq. '-') fnum=-fnum
+ call setbits(ibcdata(nbc),6,13,nint(32+fnum))
+ if (index('+-',charq) .gt. 0) then
+c
+c Horizontal shift, get it
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (charq .eq. '-') fnum=-fnum
+ call setbits(ibcdata(nbc),8,19,nint(10*fnum)+128)
+ end if
+ end if
+ return
+ end if
+c
+c Set signal on main note that some note at this time has ornament. ONLY used
+c in beamstrt to activate further tests for whether ihornb is needed.
+c
+ iornq = ibset(iornq,23)
+c
+c Isolate 21 bits defining exisiting ornaments
+c
+ if (notcrd) then
+ iorni = iand(4194303,iornq)
+ else
+ iorni = iand(4194303,icrdorn(ncrd))
+ end if
+ korn = index('stmgx+Tupf._)e:XXX>^',charq)
+ if (korn .ne. 15) iorni = ibset(iorni,korn)
+c
+c Note that korn=0 => charq='(', and we set bit 0. if "e" (14), alter later
+c as follows: korn=16-18 for sfn, and or 21 for bare ?.
+c When this if-block is done, korn will = bit# of actual ornament (unless "?").
+c
+ if (korn .eq. 15) then
+c
+cc Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-20 prev iornq
+c Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-21 prev iornq
+c
+c iorni = ior(iorni,iand(iornq0,1638383))
+ iorni = ior(iorni,iand(iornq0,3735535))
+ ornrpt = .false.
+ call getchar(lineq,iccount,durq)
+c
+c durq will be ' '
+c
+ else if (korn .eq. 14) then
+c
+c Editorial accidental
+c
+ call getchar(lineq,iccount,durq)
+c korn = 15+index('sfn',durq)
+ korn = 15+index('sfn?',durq)
+ if (korn .eq. 19) korn=21
+ iorni = ibset(ibclr(iorni,14),korn)
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. '?') then
+c
+c This is "oe[s|f|n]?". Set 21st bit also.
+c
+ iorni = ibset(iorni,21)
+ korn = korn+6
+ call getchar(lineq,iccount,durq)
+ end if
+c iorni = ibset(ibclr(iorni,14),korn)
+ else if (korn.eq.4 .and. noxtup) then
+c
+c segno. Check in pmxa for just 1/block & notcrd. Get horiz. offset in points
+c
+ noffseg = 0
+ negseg = .false.
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+c
+c Segno shift is specified
+c
+ if (durq .eq. '-') then
+ negseg = .true.
+ call getchar(lineq,iccount,durq)
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ noffseg = int(fnum)
+ if (negseg) noffseg = -noffseg
+ end if
+ else if (korn .eq. 7) then
+c
+c Trill. Check in pmxa for notcrd. Default is 1 noteskip long, with "tr"
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = ip
+ xnsktr(ntrill) = 1.
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 't') then
+c
+c Convert to new internal symbol for non-'"tr" trill
+c
+ korn = 15
+ iorni = ibset(ibclr(iorni,7),15)
+ call getchar(lineq,iccount,durq)
+ end if
+ if (index('0123456789.',durq) .gt. 0) then
+c
+c We have a number for the length
+c
+ call readnum(lineq,iccount,durq,xnsktr(ntrill))
+ end if
+ else if (korn.eq.10 .and. noxtup) then
+c
+c Fermata
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'd') then
+ korn = 14
+ iorni = ibset(ibclr(iorni,10),14)
+ call getchar(lineq,iccount,durq)
+ end if
+ else
+ call getchar(lineq,iccount,durq)
+ end if
+ if (index('+- :',durq) .eq. 0) then
+ print*,'Unexpected character at end of ornament: ',durq
+ call stop1()
+ end if
+ if (index('+-',durq) .gt. 0) then
+c
+c Shift ornament up or down
+c
+ nudorn = nudorn+1
+c
+c Set bit 25 in iorni as a signal. This may not really be necessary.
+c
+ iorni = ibset(iorni,25)
+c
+c Assemble info to put in kudorn(nudorn) Bits 0-7:ip, 8-11:ivx, 12-18:nolev,
+c 19-24: type of ornament to be shifted, 25-30: shift+32, 31:h-shft present
+c
+ xofforn = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iofforn = nint(xofforn*fnum)
+ kudorn(nudorn) = ip+ishft(mod(ivx,16),8)+ishft(nole,12)
+ * +ishft(korn,19)+ishft(iofforn+32,25)
+ ivxudorn(nudorn) = ivx
+ if (index('+-',durq) .gt. 0) then
+c
+c Horizontal shift
+c
+ kudorn(nudorn) = ibset(kudorn(nudorn),31)
+ xofforn = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ ornhshft(nudorn) = nint(xofforn*fnum)
+ end if
+ else if (durq .eq. ':') then
+c
+c Turn on repeated ornaments
+c
+ ornrpt = .true.
+c
+c Save the ornament value just set
+c
+ iornq0 = iorni
+ end if
+ if (notcrd) then
+ iornq = ior(iornq,iorni)
+ else
+ icrdorn(ncrd) = ior(icrdorn(ncrd),iorni)
+ end if
+ return
+ end
+ subroutine getpmxmod(global,includeq)
+c
+c If global=.true., checks for environment variable with path to pmx.mod.
+c Then, if variable exists and points to pmx.mod, insert lines from
+c pmx.mod into buffer
+c If global=.false., checks for existence of includeq and uses it.
+c
+c lenbuf0 = total length of bufq on entry
+c lbuf(i) = length of line (i)
+c nlbuf = number of lines stored in bufq
+c ilbuf = index of first line after setup stuff (on entry). In general, index of
+c next line to be sucked from buffer.
+c ilbufmod = counter for lines in pmx.mod as they are grabbed.
+c Starts at ilbuf. Points to position of next line after
+c pmx.mod stuff in bufq on exiting loop 1
+c ilbuff = transient counter for shifting operations
+c ipbuf = on entry, points to last character in setup stuff. In general, points
+c to last character of most recent line sucked from buffer.
+c ipbufmod = points to last character of most recent inserted line
+c from pmx.mod
+c
+ parameter (maxblks=4000,nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,fbon,issegno,isheadr,isvolt
+ character*(*)includeq
+ character*80 pmxmoddirq
+ character*128 lnholdq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ logical fexist,global
+ line1pmxmod = ilbuf
+ if (.not.global) then
+ inquire(file=includeq,EXIST=fexist)
+c
+c Transfer includeq to temporary char variable with known length
+c
+ pmxmoddirq = includeq
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ print*
+ write(15,'()')
+ if (.not.fexist) then
+ call printl('Could not find '//pmxmoddirq(1:lpmxmoddirq)
+ * //', checking further.')
+c
+c File named includeq doesn't not exist. Get directory from PMXMODDIR and
+c see if it's there
+c
+ call getenv('PMXMODDIR',pmxmoddirq)
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ if (lpmxmoddirq. gt. 0) then
+ pmxmoddirq = pmxmoddirq(1:lpmxmoddirq)//includeq
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ else
+ call printl(
+ * 'No other directory defined by PMXMODDIR, stopping')
+ call stop1()
+ end if
+ inquire(file=pmxmoddirq,EXIST=fexist)
+ if (.not.fexist) then
+ call printl('Could not find '//pmxmoddirq(1:lpmxmoddirq)
+ * //', stopping.')
+ call stop1()
+ end if
+ end if
+ call printl('Opening normal include file '
+ * //pmxmoddirq(1:lpmxmoddirq))
+ open(18,file=pmxmoddirq)
+ else
+c
+c Check for existence of pmx.mod
+c
+ call getenv('PMXMODDIR',pmxmoddirq)
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ if (lpmxmoddirq .eq. 0) return
+ pmxmoddirq = pmxmoddirq(1:lpmxmoddirq)//'pmx.mod'
+ lpmxmoddirq = lpmxmoddirq+7
+ inquire(file=pmxmoddirq,EXIST=fexist)
+ if (.not.fexist) return
+ call printl('Opening global include file '
+ * //pmxmoddirq(1:lpmxmoddirq))
+ open(18,file=pmxmoddirq(1:lpmxmoddirq))
+ end if
+ call printl('Adding include data')
+c
+c Read lines in from pmx.mod one at a time
+c
+ ipbufmod = ipbuf
+ lenbufmod = lenbuf0
+ do 1 ilbufmod = ilbuf , maxblks
+ read(18,'(a)',end=3)lnholdq
+c
+c A line was read. Slide all existing lengths from here forward ahead by 1
+c
+ do 2 ilbuff = nlbuf , ilbufmod , -1
+ lbuf(ilbuff+1) = lbuf(ilbuff)
+2 continue
+c
+c Get length of line from include file
+c
+ lenmodline = lenstr(lnholdq,128)
+ if (lenmodline .eq. 0) then
+c
+c Blank line. Make it a single blank with length 1
+c
+ lenmodline = 1
+ lnholdq = ' '
+ end if
+ lbuf(ilbufmod) = lenmodline
+ call printl(lnholdq(1:lenmodline))
+c
+c Insert new stuff into bufq
+c
+ bufq = bufq(1:ipbufmod)//lnholdq(1:lenmodline)//
+ * bufq(ipbufmod+1:lenbufmod)
+c
+c Update internal parameters
+c
+ ipbufmod = ipbufmod+lbuf(ilbufmod)
+ lenbufmod = lenbufmod+lbuf(ilbufmod)
+ nlbuf = nlbuf+1
+1 continue
+3 continue
+ call printl('Closing '//pmxmoddirq(1:lpmxmoddirq))
+ close(18)
+ linesinpmxmod = linesinpmxmod+ilbufmod-ilbuf
+ lenbuf0 = lenbufmod
+c
+c Fix Andre's error reporting problem 101211 leading to log(neg#) due
+c to nline being 2 bigger than it should be
+c
+ nline=nline-2
+c
+ return
+ end
+ subroutine getset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,npages,nsyst,musicsize,fracindent,istype0,
+ * inameq,clefq,sepsymq,pathnameq,lpath,isig0)
+ parameter (nm=24)
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ character*1 clefq(nm),sepsymq(nm)
+ character*40 pathnameq
+ character*79 inameq(nm)
+ character*128 lineq
+ logical istype0,newway,rename
+c
+c Get the first line
+c
+ iccount = 0
+9 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') go to 9
+ istype0 = lineq(1:3).eq.'---'
+ if (istype0) then
+c
+c Have TeX input until next line that starts with '---'. Save in scratch.
+c
+ open(17,status='SCRATCH')
+3 call getbuf(lineq)
+ if (lineq(1:3) .ne. '---') then
+ write(17,'(a)')lineq
+ go to 3
+ end if
+c
+c Force a new line read on first call to readin
+c
+ iccount = 128
+ end if
+c
+c Here, lineq is first line w/ numerical setup data.
+c
+ nv = nint(readin(lineq,iccount,nline))
+ noinst = nint(readin(lineq,iccount,nline))
+ newway = noinst.le.0
+ if (newway) noinst = -noinst
+ do 2 iinst = 1 , noinst
+c
+c Seve # of staves per inst in case later drop some inst's.
+c
+ if (newway) then
+c
+c Read in nvi for each instrument
+c
+ nsperi(iinst) = nint(readin(lineq,iccount,nline))
+ else if (iinst .gt. 1 ) then
+ nsperi(iinst) = 1
+ else
+ nsperi(iinst) = nv-noinst+1
+ end if
+ iiorig(iinst) = iinst
+ nspern(iinst) = nsperi(iinst)
+2 continue
+ mtrnuml = nint(readin(lineq,iccount,nline))
+ mtrdenl = nint(readin(lineq,iccount,nline))
+cc
+cc Kluge to make mtrdenl work
+cc
+c if (mtrdenl .eq. 1) then
+c mtrdenl = 2
+c mtrnuml = mtrnuml*2
+c end if
+ mtrnmp = nint(readin(lineq,iccount,nline))
+ mtrdnp = nint(readin(lineq,iccount,nline))
+ xmtrnum0 = readin(lineq,iccount,nline)
+c
+c Original key sig (before any trnasposition) in next position. Transposed
+c sig for topfile was transferred thru pmxtex.dat. Need isig0 for key
+c changes if transposed.
+c
+ isig0 = nint(readin(lineq,iccount,nline))
+ npages = nint(readin(lineq,iccount,nline))
+ nsyst = nint(readin(lineq,iccount,nline))
+ musicsize = nint(readin(lineq,iccount,nline))
+ fracindent = readin(lineq,iccount,nline)
+c
+c Next noinst non-comment lines are names of instruments.
+c
+ do 4 i = 1 , noinst
+5 call getbuf(inameq(i))
+ if (inameq(i)(1:1) .eq. '%') go to 5
+4 continue
+c
+c Mext non-comment line has nv clef names
+c
+6 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') go to 6
+ iv = 0
+ nvsofar = 0
+ do 1 jinst = 1 , noinst
+ nvsofar = nvsofar+nsperi(jinst)
+ do 10 ivi = 1 , nsperi(jinst)
+ iv = iv+1
+ clefq(iv) = lineq(iv:iv)
+ if (iv .eq. nvsofar) then
+ sepsymq(iv) = '&'
+ else
+ sepsymq(iv) = '|'
+ end if
+10 continue
+1 continue
+c
+c Mext non-comment line has path name
+c
+8 call getbuf(pathnameq)
+ if (pathnameq(1:1) .eq. '%') go to 8
+ lpath = index(pathnameq,' ')-1
+ return
+ end
+ function getsquez(n,ntot,space,tnote,to)
+ real*4 tnote(600),to(600)
+ common /comtol/ tol
+c
+c Get the squez factor by checking space against tgovern=minimum duration
+c of all notes sounding at time of n-th note in the list.
+c The starting time of base increment is to(n) and ending time is to(n)+space
+c Sounding notes are those that start at or before to(n) .and. end at or
+c after tend=to(n)+space
+c Since notes are ordered by increasing start times, as soon as we find one
+c that starts too late, we are done checking.
+c
+ tgovern = 1000.
+ tend = to(n)+space
+ do 1 in = 1 , ntot
+c
+c Since to() is ordered by start times, exit loop after first note that
+c starts later than note of interest.
+c
+
+ if (to(in) .gt. to(n)+tol) go to 2
+ if (to(in)+tnote(in) .gt. tend-tol) then
+c
+c If here, this note overlaps and must be tested.
+c
+ tgovern = min(tgovern,tnote(in))
+ end if
+1 continue
+2 continue
+ getsquez = space/tgovern
+ return
+ end
+ subroutine getx(lineq,iccount,irest,shifton,wheadpt,iornq1,ivx,
+ * irest1,itsofar,ntup,itup,nnodur,dotq,ndoub)
+ parameter(nm=24)
+c
+c Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol.
+c In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols.
+c Since during getnote phase time is integer itsofar, which is not updated
+c during xtups, we use itup and ntup to get actual time. On entry, ntup=0 if
+c not in xtup.
+c
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ logical shifton,colon,ess,number
+ character*128 lineq
+ character*1 charq,durq,dotq
+ colon = .false.
+ ess = .false.
+ number = .false.
+ nextbl = iccount+index(lineq(iccount:128),' ')-1
+ if (index(lineq(iccount:nextbl),'P') .gt. 0) then
+c
+c "Parts only", ignore entire symbol
+c
+ iccount = nextbl
+ return
+ end if
+1 call getchar(lineq,iccount,charq)
+ if (charq.eq.'B') then
+c
+c "Both parts and score," ignore character
+c
+ go to 1
+ else if (charq .eq. ':') then
+ colon = .true.
+ go to 1
+ else if (charq .eq. 'S') then
+ ess = .true.
+ go to 1
+ else if (index('+-.0123456789',charq) .gt. 0) then
+ number = .true.
+ if (charq.eq.'-') iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (charq .eq. '-') fnum = -fnum
+ if (durq .ne. 'p') then
+ fnum = fnum*wheadpt
+ iccount = iccount-1
+ end if
+ go to 1
+ end if
+c
+c charq must be blank, so done parsing
+c
+ if (.not.ess .and. .not.colon) then
+c
+c Ordinary hardspace. Goes before next note.
+c (Later, at "|" or "/", check for presence and switch to udoff if there!)
+c
+ nudsp = nudsp+1
+ iornq1 = ibset(iornq1,26)
+ udsp(nudsp) = fnum
+ tudsp(nudsp) = itsofar
+ if (ntup .gt. 0) tudsp(nudsp) = tudsp(nudsp)
+c * +float(itup-1)/ntup*ifnodur(nnodur,dotq)
+ * +float(itup-1+ndoub)/ntup*ifnodur(nnodur,dotq)
+ else if (.not.number) then
+c
+c Must be "X:" End a group offset.
+c
+ irest = ibset(irest,17)
+ shifton = .false.
+ return
+ else
+c
+c Only other possibility is start offset, "S" for single, ':' for multiple
+c
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = fnum
+ if (ess) then
+ irest1 = ibset(irest1,15)
+ else
+ irest1 = ibset(irest1,16)
+ shifton = .true.
+ end if
+ end if
+ return
+ end
+ function i1fnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ i1fnodur=1
+ else if (idur .eq. 3) then
+ i1fnodur=2
+ else if (idur .eq. 1) then
+ i1fnodur=4
+ else if (idur .eq. 8) then
+ i1fnodur=8
+ else if (idur .eq. 4) then
+ i1fnodur=16
+ else if (idur .eq. 2) then
+ i1fnodur=32
+ else if (idur .eq. 0) then
+ i1fnodur=64
+ else if (idur .eq. 16) then
+c
+c Only used for denominator of time signatures, not for notes
+c
+ i1fnodur=4
+ else if (idur .eq. 9) then
+ i1fnodur = 128
+ else
+ print*
+ print*,'You entered an invalid note-length value:',idur
+ call stop1()
+ end if
+ if (dotq .eq. 'd') i1fnodur = i1fnodur*3/2
+ return
+ end
+c integer*4 function longi(ishort)
+c integer*2 ishort
+c longi = ishort
+c return
+c end
+ function iashft(nacc)
+ integer*4 ias(6)
+ data ias /-1,1,0,0,-2,2/
+ iashft = ias(nacc)
+ return
+ end
+ function ifnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ ifnodur=1
+ else if (idur .eq. 3)then
+ ifnodur=2
+ else if(idur .eq. 1) then
+ ifnodur=4
+ else if(idur .eq. 8) then
+ ifnodur=8
+ else if(idur .eq. 4) then
+ ifnodur=16
+ else if(idur .eq. 2) then
+ ifnodur=32
+ else if(idur .eq. 0) then
+ ifnodur=64
+ else if(idur .eq. 9) then
+ ifnodur=128
+ else if (idur .eq. 16) then
+c
+c Only used for denominator of time signatures, not for notes
+c
+ ifnodur=4
+ else
+ print*,'You entered an invalid note value'
+ stop
+ end if
+ if (dotq .eq. 'd') ifnodur = ifnodur*3/2
+ return
+ end
+ function ifnolev(noq,oct,ntrans)
+ character*1 noq
+ integer oct
+ ifnolev = 7*oct+mod(ichar(noq)-92,7)+1+ntrans
+ return
+ end
+c subroutine report(nsdat,isdat1,isdat2)
+c integer*4 isdat1(202),isdat2(202)
+c write(*,'(a)')
+c * ' isd on? iv kv ip id ud1 ud2 ndx ivo iho lev crd lhd rhd'
+c do 1 isdat = 1 , nsdat
+c isdata = isdat1(isdat)
+c ionoff = igetbits(isdata,1,11)
+cc iv = iand(7,isdata)
+c iv = igetbits(isdata,5,13)
+c kv = igetbits(isdata,1,12)+1
+c ip = igetbits(isdata,8,3)
+c idcode = igetbits(isdata,7,19)
+c iud1 = igetbits(isdata,1,26)
+c iud2 = igetbits(isdata,1,27)
+c ndxslur = igetbits(isdata,4,28)
+c isdatb = isdat2(isdat)
+c ivo = igetbits(isdatb,6,6)-32
+c iho = igetbits(isdatb,7,12)-64
+c lev = igetbits(isdatb,7,19)
+c icrd = igetbits(isdatb,1,0)
+c lhd = igetbits(isdatb,1,1)
+c irhd = igetbits(isdatb,7,2)
+c write(*,'(17i4)')isdat,ionoff,iv,kv,ip,idcode,iud1,iud2,ndxslur,
+c * ivo,iho,lev,icrd,lhd,irhd
+c1 continue
+c print*
+c return
+c end
+ function igetbits(isdata,iwidbit,ishift)
+c
+c Extracts integer given by iwidbit bits of isdata, shifted by ishift, and
+c then added to ioff
+c
+ igetbits = iand(2**iwidbit-1,ishft(isdata,-ishift))
+ return
+ end
+ function igetvarlen(mmidi,icm,imidi,nbytes)
+c
+c Gets variable-length integer starting in mmidi at imidi+1. Returns nbytes.
+c
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi(0:nm,mv)
+ igetvarlen = 0
+ do 1 nbytes = 1 , 4
+ igetvarlen = 128*igetvarlen
+ * +iand(127,mmidi(icm,imidi+nbytes))
+c * +iand(127,longi(mmidi(icm,imidi+nbytes)))
+ if (.not.btest(mmidi(icm,imidi+nbytes),7)) return
+c if (.not.btest(longi(mmidi(icm,imidi+nbytes)),7)) return
+1 continue
+ print*,'Messup in igetvarlen'
+ call stop1()
+ end
+ logical function isdotted(nodur,ivx,ip)
+ parameter (nm=24)
+c
+c Function returns true if note is dotted or double-dotted.
+c Return false for any xtuplet.
+c
+ common /comtol/ tol
+ integer*4 nodur(nm,200)
+ if (nodur(ivx,ip) .eq. 0) then
+ isdotted = .false.
+ return
+ else if (ip .gt. 1) then
+ if (nodur(ivx,ip-1) .eq. 0) then
+ isdotted = .false.
+ return
+ end if
+ end if
+c
+c Ruled out all xtups, so is dotted or double-dotted if not a power of 2.
+c
+ isdotted =
+ * mod(alog(float(nodur(ivx,ip)))/.69314718+.5*tol,1.) .gt. tol
+ return
+ end
+ function isetvarlen(idur,nbytes)
+ isetvarlen = 0
+ itemp = idur
+ do 1 nbytes = 1 , 4
+ isetvarlen = isetvarlen + iand(itemp,127)*256**(nbytes-1)
+ itemp = ishft(itemp,-7)
+ if (itemp .gt. 0) then
+ isetvarlen = isetvarlen+2**(8*nbytes+7)
+ else
+ return
+ end if
+1 continue
+ print*,'Problem in function isetvarlen'
+ call stop1()
+ end
+ subroutine istring(i,string,len)
+c
+c Returns string with integer only if length is 1, otherwise enclosed in
+c brackets.
+c
+ character*(*) string
+ if (i .ne. 0) then
+ len = alog10(abs(i)*1.0001)+1
+ if (i .lt. 0) len = len+1
+ else
+ string = '0'
+ len = 1
+ return
+ end if
+ if (len .eq. 1) then
+ string = char(48+i)
+ else
+ string = '{'
+ write(string(2:1+len),'(i'//char(48+len)//')')i
+ string = string(1:len+1)//'}'
+ len = len+2
+ end if
+ return
+ end
+ function lenstr(string,n)
+ character*(*) string
+ do 1 lenstr = n , 1 , -1
+ if (string(lenstr:lenstr) .ne. ' ') return
+1 continue
+ lenstr = 0
+ return
+ end
+ function levrn(nolev,irest,iud,ncm,mult)
+c
+c Used for placing numbers in xtups. Returns note level if not a rest,
+c else level of top or bottom of rest symbol opposite beam. iud=-1 for upstm.
+c
+ logical btest
+ if (.not.btest(irest,0)) then
+ levrn = nolev
+ else
+c
+c Restlevel is -4, 0, 2 or 100+offset. First get offset from 1-voice default.
+c
+ if (mult .gt. 0) then
+ if (mult .eq. 2) then
+ ioff = -1+2*iud
+ else if (mult .ne. 4) then
+ ioff = iud*mult
+ else
+ ioff = 1+4*iud
+ end if
+ else
+c
+c May need to futz with this later for non-beamed xtups (quarter, half rests)
+c
+ ioff = iud*2
+ end if
+ levrn = mod(nolev+20,100)-20+ncm+ioff
+ endif
+ return
+ end
+ function lfmt1(x)
+c
+c Computes total length of an "f" format with one decimal place.
+c First round to nearest 0.1
+c
+ if (abs(x) .lt. .001) then
+ lfmt1 = 2
+ else
+ y = sign(.1*int(10*abs(x)+.5),x)
+ lfmt1 = int(log10(1000*abs(y)+.001))
+ if (y .lt. 0) lfmt1 = lfmt1+1
+ end if
+ return
+ end
+ subroutine LineBreakTies(isdat1,isdat2,isdat3,isdat4,nsdat,
+ * ispstie,sepsymq)
+ parameter (nm=24)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comoct/ noctup
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ logical fontslur,WrotePsslurDefaults,btest,upslur,ispstie,tie
+ character*1 udq,chax,sepsymq(nm)
+ character*8 noteq
+ character*128 notexq
+c
+c This is called twice from pmxb after having input an entire block, before
+c making a bar that starts a new system. So nsdat reflects all slur starts
+c and stops in new block, while listslur, which is only set when bars are
+c made, reflects only open slurs from the old block. So we must check
+c listslur to find open ties, not all nsdat.
+c First of two calls (ispstie=.false. on entry) terminates tie at end of line.
+c Second (ispstie=.true. on entry) restarts tie at start of new line. Only
+c need data from original tie-start for both of these. Tie/slur data from
+c closing of full tie are not used except for shape alterations.
+c
+c do 1 ndx = 0 , 11
+ do 1 ndx = 0 , 23
+ if (btest(listslur,ndx)) then
+c
+c Slur or tie with index ndx is open. Find the one with right ndxb, see if tie
+c
+ do 2 isdat = 1 , nsdat
+c if (igetbits(isdat1(isdat),4,28) .ne. ndx) go to 2 ! Wrong index
+ if (igetbits(isdat1(isdat),4,28)
+ * +16*igetbits(isdat1(isdat),1,18) .ne. ndx) go to 2 ! Wrong index
+ if (.not.btest(isdat1(isdat),11)) go to 2 ! Bypass if stop
+ if (btest(isdat2(isdat),3)) go to 3 ! "st"
+ idcode = igetbits(isdat1(isdat),7,19)
+ if (idcode.eq.1) go to 3 ! "t"
+ tie = .false.
+ go to 5
+2 continue
+ end if
+ go to 1
+3 continue
+ tie = .true.
+5 continue
+c
+c A slur or tie is open, with index ndx
+c
+ iv = igetbits(isdat1(isdat),5,13)
+ kv = igetbits(isdat1(isdat),1,12)+1
+ udq = 'd'
+ if (btest(isdat1(isdat),27)) udq='u'
+ notexq = chax(92)//'znotes'
+ lnote = 7
+ do 4 iiv = 1 , iv-1
+ notexq = notexq(1:lnote)//sepsymq(iiv)
+ lnote = lnote+1
+4 continue
+ if (kv .eq. 2) then
+ notexq = notexq(1:lnote)//chax(92)//'nextvoice'
+ lnote = lnote+10
+ end if
+c
+c Compute horiz and vert offsets
+c
+c nolev = igetbits(isdat2(isdat),7,19)
+ islhgt = igetbits(isdat3(isdat),8,14)
+ ilb12 = 0
+ if (ispstie) ilb12 = 1
+ ivoff = igetbits(isdat4(isdat),6,ilb12*16)-32
+ if (ivoff .eq. -32) ivoff = 0
+C nolev = nolev+ivoff
+ islhgt = islhgt+ivoff
+ ihoff = (igetbits(isdat4(isdat),7,ilb12*16+6)-64) ! This is 10X hoff
+ if (ihoff .eq. -64) ihoff = 0
+c
+c Add starting stuff for command
+c
+ if (.not.ispstie) then ! End 1st segment
+ notexq = notexq(1:lnote)//chax(92)//'roffset{'
+ lnote = lnote+9
+c hoff = ihoff*.1-.5
+c hoff = ihoff*.1-.8
+ hoff = ihoff*.1-.4
+ if (hoff .lt. 0) then
+ hoff = -hoff
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ call writflot(hoff,notexq,lnote)
+ notexq = notexq(1:lnote)//'}{'
+ lnote = lnote+2
+ else
+ notexq = notexq(1:lnote)//chax(92)//'off{-'
+ * //chax(92)//'afterruleskip}'
+ lnote = lnote+21
+c
+c 091025 add dotting for 2nd segment if needed
+c
+ if (btest(isdat2(isdat),4)) then
+ notexq = chax(92)//'dotted'//notexq(1:lnote)
+ lnote = lnote+7
+ end if
+ end if
+ if (ispstie .and. tie) then
+ notexq = notexq(1:lnote)//chax(92)//'tieforis'//udq
+ lnote = lnote+10
+ end if
+ if (btest(isdat3(isdat),0)) then
+c
+c Curvature tweak on termination of 1st seg
+c
+ imid = igetbits(isdat3(isdat),6,2)-32
+c
+c Invoke macro (from pmx.tex) that redefines \tslur as r'qd. mapping:
+c Abs(imid) Postscript slur type
+c 1 f
+c 4 h
+c 5 H
+c 6 HH
+c
+ notexq = notexq(1:lnote)//chax(92)//'psforts'//chax(48+imid)
+ lnote = lnote+9
+c
+c Zero out the flag in case there's a different curv on term of 2nd,
+c
+ isdat3(isdat) = ibclr(isdat3(isdat),0)
+ end if
+c
+c Add the command name
+c
+ if (ispstie) then
+ notexq = notexq(1:lnote)//chax(92)//'is'//udq
+ lnote = lnote+4
+ else if (tie) then
+ notexq = notexq(1:lnote)//chax(92)//'ttie'
+ lnote = lnote+5
+ else
+ notexq = notexq(1:lnote)//chax(92)//'tslur'
+ lnote = lnote+6
+ end if
+c
+c Add index
+c
+c if (11-ndx .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndx)
+c lnote = lnote+1
+c else
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndx)//'}'
+c lnote = lnote+4
+c end if
+ if (23-ndx .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndx)
+ lnote = lnote+1
+ else if (23-ndx .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndx)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndx)//'}'
+ lnote = lnote+4
+ end if
+ if (ispstie .or. .not.tie) then
+c
+c Add note name for slur height
+c
+ noctup = 0
+ ncm = igetbits(isdat3(isdat),8,22)
+ if (ncm .eq. 23) noctup = -2
+c call notefq(noteq,lnoten,nolev,ncm)
+ call notefq(noteq,lnoten,islhgt,ncm)
+ notexq = notexq(1:lnote)//'{'//noteq(1:lnoten)//'}'
+ lnote = lnote+1+lnoten+1
+ end if
+ if (ispstie) then
+c
+c Horizontal shift start of new thing
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+c ihoff = ihoff-13
+ if (tie) then
+ ihoff = ihoff-12
+ else
+ ihoff = ihoff-7
+ end if
+ if (ihoff .lt. 0) then
+ ihoff = -ihoff
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ call writflot(ihoff*.1,notexq,lnote)
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+c
+c Add closing stuff
+c
+ if (ispstie) then
+ notexq = notexq(1:lnote)//chax(92)//'off{'
+ * //chax(92)//'afterruleskip}'
+ lnote = lnote+20
+ else
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ notexq = notexq(1:lnote)//chax(92)//'en%'
+ lnote = lnote+4
+ write(11,'(a)')notexq(1:lnote)
+1 continue
+ ispstie = .not.ispstie
+ return
+ end
+ subroutine littex(islur,nnl,iv,topmods,lineq,iccount)
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ integer islur(nm,200)
+ logical topmods
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,merge
+ character*128 lineq,litq
+ character*20 voltxtq
+ character*1 durq,chax
+ merge = .false.
+ if (nlit .gt. 0) then
+ merge = iv.eq.ivlit(nlit) .and. nnl.eq.iplit(nlit)
+ end if
+ nlit = nlit+1
+ ivlit(nlit) = iv
+ iplit(nlit) = nnl
+ itype = 1
+17 call getchar(lineq,iccount,durq)
+ if (durq .eq. chax(92)) then
+ itype=itype+1
+ go to 17
+ end if
+ litq(nlit) = chax(92)//durq
+ lenlit(nlit) = 2
+18 call getchar(lineq,iccount,durq)
+ if (durq.eq.chax(92)) then
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+c
+c Starting a new tex command within the string
+c
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))//chax(92)//durq
+ lenlit(nlit) = lenlit(nlit)+2
+ go to 18
+ end if
+ else
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))//durq
+ lenlit(nlit) = lenlit(nlit)+1
+ go to 18
+ end if
+c
+c If here, just read backslash-blank so string is done
+c
+ if (itype .eq. 1) then
+ islur(iv,nnl) = ibset(islur(iv,nnl),16)
+ if (merge) then
+c
+c There are 2 separate strings on the same note, so merge them.
+c
+ nlit = nlit-1
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))
+ * //litq(nlit+1)(1:lenlit(nlit+1))
+ lenlit(nlit) = lenlit(nlit)+lenlit(nlit+1)
+ if (lenlit(nlit) .gt. 128) then
+ print*
+ print*,
+ * 'Merged type-1 TeX strings longer than 128 characters'
+ write(15,'(/,a)')
+ * 'Merged type-1 TeX strings longer than 128 characters'
+ call stop1()
+ end if
+ end if
+ else
+ if (itype .eq. 3) then
+c
+c Write the string NOW
+c
+ if (islast)
+ * write(11,'(a)')litq(nlit)(1:lenlit(nlit))//'%'
+ else
+c
+c Must go at top
+c
+ if (.not.topmods) then
+ topmods = .true.
+ open(16,status='SCRATCH')
+ end if
+c
+c Must write '%' here rather than later, in case string ends with blank.
+c
+ write(16,'(a)')litq(nlit)(1:lenlit(nlit))//'%'
+ end if
+ nlit = nlit-1
+ end if
+ return
+ end
+ function llen(strq,n)
+ character*129 strq
+ do 1 llen = n , 0 , -1
+ if (strq(llen:llen) .ne. ' ') return
+1 continue
+ end
+ function log2(n)
+c
+c 5/25/08 Modify to allow more slurs
+c
+c log2 = alog(1.*n)/0.6931472+.0001
+c log2 = dlog(1.d0*n)/0.693147181d0+.00000001d0
+ log2 = dlog(1.d0*n)/0.693147181d0+.00000002d0
+ return
+ end
+ subroutine logbeam(numnew,nip1,nip2)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq,ulfq,ulfbq
+ logical beamon,firstgulp,figbass,figchk,isfig,isxtup,btest,
+ * autofbon
+ ibm1(ivx,numnew) = nip1
+ ibm2(ivx,numnew) = nip2
+ numnow = numnew
+ if (numnew .gt. 1) then
+c
+c If it starts before any others, must put it in order
+c
+ do 11 ib = numnew-1 , 1 , -1
+ if (ibm1(ivx,ib) .lt. nip1) go to 12
+ ibm1(ivx,ib+1) = ibm1(ivx,ib)
+ ibm2(ivx,ib+1) = ibm2(ivx,ib)
+ ulq(ivx,ib+1) = ulq(ivx,ib)
+ ibm1(ivx,ib) = nip1
+ ibm2(ivx,ib) = nip2
+ numnow = ib
+11 continue
+12 continue
+ end if
+ sum = 0.
+c
+c Beam has non-xtup within
+c
+ nrests = 0
+ isxtup = .false.
+ do 9 iip = nip1 , nip2
+ if (btest(islur(ivx,nip1),21)) then
+c
+c Forced multiplicity
+c
+c mult(ivx,iip) = igetbits(islur(ivx,nip1),3,22)
+ call setbits(mult(ivx,iip),4,0,
+ * igetbits(islur(ivx,nip1),3,22)+8)
+ else if (.not.isxtup) then
+ if (nodur(ivx,iip) .gt. 0) then
+c mult(ivx,iip) = 4-log2(nodur(ivx,iip))
+ call setbits(mult(ivx,iip),4,0,4-log2(nodur(ivx,iip))+8)
+ else
+c
+c Start xtup within forced beam
+c
+ isxtup = .true.
+ iip1 = iip
+ end if
+ else if (isxtup .and. nodur(ivx,iip).gt.0) then
+c
+c End of xtup within forced beam. Must count doubled notes
+c
+ ndoub = 0
+ do 1 iiip = iip1 , iip
+ if (btest(nacc(ivx,iiip),18)) ndoub = ndoub+1
+1 continue
+ multx = int(10.5+2.929+(0.952*alog(1.+iip-iip1+ndoub)-
+ * alog(nodur(ivx,iip)/2.))/0.69315)-10
+ do 74 iiip = iip1 , iip
+c mult(ivx,iiip) = multx
+ call setbits(mult(ivx,iiip),4,0,multx+8)
+c
+c Note the following still works after making mult only the 1st 4 bits.
+c
+ if (btest(nacc(ivx,iiip),18))
+ * mult(ivx,iiip) = mult(ivx,iiip)-1
+ if (btest(nacc(ivx,iiip),19)) then
+ mult(ivx,iiip) = mult(ivx,iiip)+1
+ else if (iiip .gt. 1) then
+ if (btest(nacc(ivx,iiip-1),19))
+ * mult(ivx,iiip) = mult(ivx,iiip)+1
+ end if
+74 continue
+ isxtup = .false.
+ end if
+ if (btest(irest(ivx,iip),0)) then
+ nrests = nrests+1
+ else
+ sum = sum+nolev(ivx,iip)
+ end if
+9 continue
+c
+c Set beam up-down-ness
+c
+ if (ifb.gt.0 .and. ulfbq(ivx,max(1,ifb)).ne.'x') then
+ if (ulfbq(ivx,ifb) .eq. 'f') then
+c
+c Get default, then trade "l" and "u"
+c
+ ulq(ivx,numnow) = char(225-ichar(
+ * ulfq(sum/(nip2-nip1+1-nrests),ncmid(iv,nip1))))
+ else
+ ulq(ivx,ifb) = ulfbq(ivx,ifb)
+ end if
+c
+c This probably works only because forced beams are done first, so they
+c don't have to be re-sorted within each voice. ????
+c
+ else if (nvmx(iv) .eq. 2) then
+c
+c Multi-voice per staff
+c
+ if (ivx .le. nv) then
+ ulq(ivx,numnow) = 'l'
+ else
+ ulq(ivx,numnow) = 'u'
+ end if
+ else
+c
+c Defaults
+c
+ ulq(ivx,numnow) =
+ * ulfq(sum/(nip2-nip1+1-nrests),ncmid(iv,nip1))
+ end if
+ return
+ end
+ subroutine m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+c
+c This is called when (a) macro recording is just starting and
+c (b) at the start of a new line, if recording is on
+c
+ parameter (maxblks=4000)
+ character*128 lineq,lnholdq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ logical mrecord,mplay,endmac
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ lbuf(1) = lbuf(1)
+ if (.not.mrecord) then
+c
+c Starting the macro
+c
+ ip1mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount
+ il1mac(macnum) = ilbuf-1
+ ic1mac(macnum) = iccount
+ mrecord = .true.
+ end if
+ if (iccount .lt. 128) then
+ ndxm = index(lineq(iccount+1:128),'M')
+ if (ndxm .gt. 0) ndxm = ntindex(lineq(iccount+1:128),'M',
+ * 128-iccount)
+ if (ndxm .gt. 0) then
+c
+c This line ends the macro.
+c
+ if (lineq(iccount+ndxm+1:iccount+ndxm+1) .ne. ' ') then
+ call errmsg(lineq,iccount+ndxm+1,ibarcnt-ibaroff+nbars+1,
+ * 'Improper macro termination!')
+ call stop1()
+ end if
+ ip2mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount+ndxm
+ il2mac(macnum) = ilbuf-1
+ mrecord = .false.
+ end if
+ end if
+ return
+ end
+ subroutine make1bar(ibmrep,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart)
+ parameter (nm=24,mv=24576)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*10 figq
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig,bar1syst
+ common /comeskz2/ eskz2(nm,200)
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /combeam/ ibmtyp
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,autofbon
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ integer cnn(nm),istart(80),istop(80),nxtnow(nm),ifbnow(nm),
+ * numbms(nm),mapfb(16)
+ real*4 xit(nm),t1xtup(20),tstart(80),squez(80)
+ character*1 ulfbq
+ character*79 inameq
+ character*20 voltxtq
+ common /comoct/ noctup
+ character*80 headrq,lowerq
+ logical cwrferm
+ common /comcwrf/ cwrferm(nm)
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ logical lower,cwrest(nm),vxtup,flgndb,btest,upslur,
+ * infbmx(nm),lowdot,inxtup(nm),drawbm
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comstart/ facmtr
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+c
+c Above are factors for grace note, clef spacing. (fraction of wheadpt)
+c In 1.04, moved to block data subprogram
+c
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comtol/ tol
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,fontslur,
+ * WrotePsslurDefaults
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comntot/ ntot
+ if (ismidi) then
+c
+c Initialize for this bar the accidental counter for the midi file.
+c naccim(icm) = # of accidentals from earlier in the bar
+c
+ do 45 iv = 1 , nv
+ do 45 kv = 1 , nvmx(iv)
+ naccim(midchan(iv,kv)) = 0
+45 continue
+ end if
+c
+c Time from start of gulp to end of bar, used with forced beams
+c
+ tglp2 = lenb0+ibar*lenb1
+ if (lenb0 .gt. 0) tglp2 = tglp2-lenb1
+ tglp1 = tglp2-lenbar
+c
+c infbmx will only be true if in xtup that is NOT in explicit forced beam.
+c
+ do 1 iv = 1 , nv
+ do 1 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cwrest(ivx) = .false.
+ infbmx(ivx) = .false.
+ inxtup(ivx) = .false.
+ if (ibar .gt. 1) then
+ nn(ivx) = nib(ivx,ibar)-nib(ivx,ibar-1)
+ else
+ nn(ivx) = nib(ivx,ibar)
+ end if
+1 continue
+c
+c initialize list note counter, time(iv), curr. note(iv). The loop to 4
+c ONLY initializes each voice.
+c
+ in = 1
+ nxtup = 0
+ narp = 0
+ do 4 iv = 1 , nv
+ do 4 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cwrferm(ivx) = .false.
+ cnn(ivx) = 1
+ ivxo(in) = ivx
+ ipo(in) = cnn(ivx)
+ tnote(in) = fnote(nodur,ivx,1,nacc)
+ to(in) = 0.
+ xit(ivx) = tnote(in)
+c
+c Note that xit(ivx) is to END of note in voice, but it1xtup is start time.
+c
+ if (nodur(ivx,ipo(in)) .eq. 0) then
+c
+c First note of xtuplet at start of bar in voice ivx.
+c
+ nxtup = nxtup+1
+ nxtnow(ivx) = nxtup
+ inxtup(ivx) = .true.
+ t1xtup(nxtup) = 0.
+c
+c Xtup at start of bar. If no explicit forced beam, start one, set
+c signal infbmx, and save number ifbnow for use at termination.
+c
+ if (nfb(ivx) .gt. 0) then
+ do 60 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c No explicit fb here; so exit loop and insert one.
+c
+ go to 61
+ else if (t1fb(ivx,ifb) .lt. tglp1+xit(ivx)+tol .and.
+ * t2fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c IS explicit fb here; must NOT insert one
+c
+ go to 62
+ end if
+60 continue
+ end if
+61 continue
+c
+c If here, xtup isn't in explicit fb, so must insert one
+c
+ infbmx(ivx) = .true.
+ call addfb(nfb,ivx,t1xtup(nxtup)+
+ * tglp1,t1fb,t2fb,ulfbq,ifbadd)
+ ifbnow(ivx) = ifbadd
+ end if
+62 continue
+ if (abs(xit(ivx)-lenbar) .lt. tol) xit(ivx) = 1000.
+ in = in+1
+4 continue
+c
+c Build the list: This is a manual loop starting at 5
+c
+5 continue
+c
+c Determine which voice comes next from end of notes done so far.
+c tmin is the earliest ending time of notes done so far
+c
+ tmin = 1000.
+ do 6 iiv = 1 , nv
+ do 6 kv = 1 , nvmx(iiv)
+ iivx = ivmx(iiv,kv)
+ tminn = min(tmin,xit(iivx))
+ if(tminn .lt. tmin-tol) then
+ tmin = tminn
+ ivx = iivx
+ end if
+6 continue
+ if (abs(tmin-1000.) .lt. tol) go to 7
+ ivxo(in) = ivx
+ cnn(ivx) = cnn(ivx)+1
+ ipo(in) = cnn(ivx)
+ to(in) = tmin
+c
+c Check if this voice is done
+c
+ tnote(in) = fnote(nodur,ivx,cnn(ivx),nacc)
+ if (cnn(ivx) .eq. nn(ivx)) then
+ xit(ivx) = 1000.
+ else
+ xit(ivx) = xit(ivx)+tnote(in)
+ end if
+c
+c Flag xtups
+c
+ if (nodur(ivx,cnn(ivx)) .eq. 0) then
+ if (.not.inxtup(ivx)) then
+c
+c First note of xtup, not at start of bar.
+c
+ nxtup = nxtup+1
+ nxtnow(ivx) = nxtup
+ inxtup(ivx) = .true.
+ t1xtup(nxtup) = xit(ivx)-tnote(in)
+c
+c (Note: can't be on last note in voice, so xit(ivx) <> 1000)
+c Put xtuplet in a forced beam if not already in forced beam
+c
+ if (nfb(ivx) .gt. 0) then
+ do 70 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c NO explicit bm; put one in
+c
+ go to 71
+ else if (t1fb(ivx,ifb) .lt. tglp1+xit(ivx)+tol .and.
+ * t2fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c IS explicit bm. Don't put one
+c
+ go to 72
+ end if
+70 continue
+ end if
+71 continue
+c
+c If here, no explicit bm, so put one in
+c
+ infbmx(ivx) = .true.
+ call addfb(nfb,ivx,t1xtup(nxtup)+tglp1,
+ * t1fb,t2fb,ulfbq,ifbadd)
+ ifbnow(ivx) = ifbadd
+ end if
+72 continue
+ else if (inxtup(ivx)) then
+c
+c This test is sufficient because already know nodur>0
+c
+ inxtup(ivx) = .false.
+ if (infbmx(ivx)) then
+c
+c Xtup is in auto-forced beam, so end it
+c
+ t2fb(ivx,ifbnow(ivx)) =
+ * t1xtup(nxtnow(ivx))+nodur(ivx,cnn(ivx))+tglp1
+ infbmx(ivx) = .false.
+ end if
+ end if
+ if (btest(irest(ivxo(in),ipo(in)),24) .or.
+ * btest(irest(ivxo(in),ipo(in)),30)) then
+c
+c For staff jumped beam, flag the first note (lowest voice) at same time.
+c Later will start new notes group here.
+c
+ inj = in
+ if (ivxo(in) .gt. 1) then
+ do 40 iin = in-1 , 1 , -1
+ if (to(iin)+tol .lt. to(in)) go to 41
+ if (abs(to(iin)-to(in)) .lt. tol) then
+ inj = iin
+ go to 40
+ end if
+40 continue
+ end if
+41 continue
+ irest(ivxo(inj),ipo(inj)) = ibset(irest(ivxo(inj),ipo(inj)),29)
+ end if
+ in = in+1
+ go to 5
+7 continue
+ ntot = in-1
+ do 8 in = 1 , ntot-1
+ tno(in) = to(in+1)-to(in)
+8 continue
+ tno(ntot) = tnote(ntot)
+c
+c Debug writes
+c
+c write(*,'()')
+c write(*,'(a)')' Greetings from PMXB'
+c write(*,'(16i5)')(ivxo(in),in=1,ntot)
+c write(*,'(16i5)')(ipo(in),in=1,ntot)
+c write(*,'(16f5.1)')(to(in),in=1,ntot)
+c write(*,'(16f5.1)')(tno(in),in=1,ntot)
+c write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot)
+c write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot)
+c
+c Done w/ list. Loop for parsing into note blocks:
+c
+ ib = 1
+ istart(1) = 1
+ space(1) = 0.
+ in = 1
+c
+c A manual loop to set space(ib) and istop(ib)
+c
+9 continue
+
+ ivx = ivxo(min(in+1,ntot))
+ ip = ipo(min(in+1,ntot))
+ isl = islur(ivx,ip)
+ if (in.eq.ntot .or. ((ivx.eq.1 .and.
+ * (iand(isl,67109216).gt.0 .or. btest(ipl(1,ip),28)
+c * .or. ornq(1,ip).eq.'g')) .or. btest(isl,15) )) then
+c Bits 1-13: stmgx+Tupf._)
+c 14: Down fermata, was F
+c 15: Trill w/o "tr", was U
+ * .or. btest(iornq(1,ip),4))) .or. btest(isl,15) )
+c
+c Checking for start of 2nd part of jumped beam
+c
+ * .or. btest(irest(ivx,ip),29) ) then
+c
+c Bar end, segno, int. rpt or sig change, clef,end of 1st part of jumped beam;
+c flow out of if-loop and into block-wrapup
+c
+c 10/18/97: Problem with clef alignment. Got isl{15} set on lowest-numbered
+c voice, but it wasn't first in the list at the same time. So check if
+c prior notes in list have same time
+c 5/25/98: This stuff causes trouble with just "c2 Ct c", maybe when clef
+c changes on last note in the list?
+c
+ if (btest(isl,15) .and. in.lt.ntot) then
+ do 50 iin = in , 1 , -1
+ if (tno(iin) .gt. tol) then
+ in = iin
+ islur(ivx,ip) = ibclr(islur(ivx,ip),15)
+ islur(ivxo(in+1),ipo(in+1)) =
+ * ibset(islur(ivxo(in+1),ipo(in+1)),15)
+ go to 51
+ end if
+50 continue
+51 continue
+ end if
+ if (space(ib) .lt. tol) then
+ space(ib) = tno(in)
+ squez(ib) = 1.
+ end if
+ istop(ib) = in
+ else if (space(ib) .lt. tol) then
+c
+c space hasn't been set yet, so tentatively set:
+c
+ space(ib) = tno(in)
+ if (space(ib) .lt. tol) then
+ in=in+1
+ else
+ squez(ib) = getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ end if
+ go to 9
+ else if (tno(in+1) .lt. tol) then
+c
+c This is not the last note in the group, so
+c
+ in = in+1
+ go to 9
+ else if (abs(tno(in+1)-space(ib)) .lt. tol) then
+ xsquez = getsquez(in+1,ntot,space(ib),tnote,to)
+ if (abs(xsquez-squez(ib)) .lt. tol) then
+c
+c Keep spacing the same, update tentative stop point
+c
+ in = in+1
+ istop(ib) = in
+ go to 9
+ end if
+ end if
+c
+c At this point istart and istop are good, so finalize block
+c
+ tstart(ib) = to(istart(ib))
+ if (istop(ib) .eq. ntot) go to 15
+ ib = ib+1
+ istart(ib) = istop(ib-1)+1
+ in = istart(ib)
+c
+c Set tentative block space and squeeze-factor for upcoming block
+c
+ space(ib) = tno(in)
+ if (space(ib).gt.tol)
+ * squez(ib)= getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ go to 9
+15 continue
+ nb = ib
+c
+c Invert the list of places into ipl(0-7), making it easier to analyze a voice
+c
+ do 13 in = 1 , ntot
+c
+c ??? This may fix extra \loff's (bit 8 of ipl) in measures with >255 notes.
+c
+c ipl(ivxo(in),ipo(in)) = ior(ipl(ivxo(in),ipo(in)),in)
+ ipl2(ivxo(in),ipo(in)) = in
+13 continue
+c
+c Compute elemskips from start of bar to each note in the bar, for beam slopes
+c
+ eskzb = 0.
+ ib = 1
+ do 30 in = 1 , ntot
+ if (in .eq. istart(ib)) then
+ deskb = squez(ib)*feon(space(ib)/squez(ib))
+ else if (tno(in-1) .gt. tol) then
+ eskzb = eskzb+deskb
+ end if
+ eskz(ivxo(in),ipo(in)) = eskzb
+ eskz2(ivxo(in),ipo(in)) = eskzb
+ if (in .eq. istop(ib)) then
+ eskzb = eskzb+deskb
+ ib = ib+1
+ end if
+30 continue
+c
+c Debug writes
+c
+c print*
+c write(*,'(16f5.1)')(eskz(ivxo(in),ipo(in)),in=1,ntot)
+c print*,'PMXB has now got blocks'
+c write(*,'(16i5)')(istart(ib),ib=1,nb)
+c write(*,'(16i5)')(istop(ib),ib=1,nb)
+c write(*,'(16f5.1)')(space(ib),ib=1,nb)
+c write(*,'(16f5.1)')(squez(ib),ib=1,nb)
+c write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot)
+cc write(*,'(26i3)')(iand(islur(ivxo(in),ipo(in)),30720)/2048,
+c * in=1,ntot)
+c write(*,'(1x,26a3)')(ornq(ivxo(in),ipo(in)),in=1,ntot)
+c
+c
+c Analyze for beams.
+c
+ do 20 iv = 1 , nv
+ do 20 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ numbms(ivx) = 0
+ mapfb(1) = 0
+ mapfb(2) = 0
+ mapfb(3) = 0
+ mapfb(4) = 0
+c
+c First forced beams.
+c
+ if (nfb(ivx) .gt. 0) then
+c
+c tglp2 is time from start of gulp to end of current bar.
+c
+ nfbbar = 0
+ do 80 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb).gt.tglp2-tol) go to 81
+ nfbbar = nfbbar+1
+ numbms(ivx) = numbms(ivx)+1
+ numnew = numbms(ivx)
+c
+c Times from beginning of bar
+c
+ itbb1 = int(t1fb(ivx,ifb)-tglp1+tol)
+ itbb2 = int(t2fb(ivx,ifb)-tglp1+tol)
+ do 83 ip = 1 , nn(ivx)
+ if (int(to(ipl2(ivx,ip))+tol) .eq. itbb1) then
+ nip1fb = ip
+ do 84 ip1 = ip , nn(ivx)
+ inip1 = ipl2(ivx,ip1)
+ if (abs(to(inip1)+tnote(inip1)-itbb2) .lt. tol) then
+ nip2fb = ip1
+ itbb3 = itbb2-2
+ go to 85
+ end if
+84 continue
+ end if
+83 continue
+ print*
+ print*,'Timing problem w/ forced beams'
+ write(15,'(/a)')'Timing problem w/ forced beams'
+85 continue
+ call logbeam(numnew,nip1fb,nip2fb)
+c
+c Set up mapfb for forced beam just logged:
+c
+ ib1 = itbb1/2
+ ib2 = itbb3/2
+ ibrep = lenbar/ibmrep/2
+ do 86 irep = 1 , ibmrep
+ ib1now = max(0,ib1-(irep-1)*ibrep)
+ ib2now = min(irep*ibrep-1,ib2-(irep-1)*ibrep)
+ mapnow = 0
+ do 87 ib = ib1now , ib2now
+ mapnow = ibset(mapnow,ib)
+87 continue
+ mapfb(irep) = ior(mapfb(irep),mapnow)
+86 continue
+c
+c Since we are cycling thru forced beams, for those that start with a rest and
+c have height & slope adjustments, move adjustments to next note.
+c 060924: Copy to ALL later notes in fb, in case there's more than 1 rest at
+c start of beam
+c
+ if (btest(irest(ivx,nip1fb),0)) then
+c call setbits(ipl(ivx,nip1fb+1),6,11,
+c * igetbits(ipl(ivx,nip1fb),6,11))
+c call setbits(ipl(ivx,nip1fb+1),6,17,
+c * igetbits(ipl(ivx,nip1fb),6,17))
+c call setbits(islur(ivx,nip1fb+1),2,27,
+c * igetbits(islur(ivx,nip1fb),2,27))
+ do 88 kp = nip1fb+1 , nip2fb
+ call setbits(ipl(ivx,kp),6,11,
+ * igetbits(ipl(ivx,nip1fb),6,11))
+ call setbits(ipl(ivx,kp),6,17,
+ * igetbits(ipl(ivx,nip1fb),6,17))
+ call setbits(islur(ivx,kp),2,27,
+ * igetbits(islur(ivx,nip1fb),2,27))
+88 continue
+ end if
+80 continue
+81 continue
+c
+c Slide down, reduce nfb(ivx). This lets us count up from 1 for each new bar.
+c Remember, makeabar is called 1/bar, and it calls findbeam once per voice.
+c
+ if (nfbbar .gt. 0) then
+ nfb(ivx) = nfb(ivx)-nfbbar
+ do 82 ifb = 1 , nfb(ivx)
+ t1fb(ivx,ifb) = t1fb(ivx,ifb+nfbbar)
+ t2fb(ivx,ifb) = t2fb(ivx,ifb+nfbbar)
+ ulfbq(ivx,ifb) = ulfbq(ivx,ifb+nfbbar)
+82 continue
+ end if
+ end if
+ ifb = 0
+c
+c Done with forced beam masks for this bar and voice. Now get normal beams.
+c
+ call findbeam(ibmrep,numbms,mapfb)
+20 continue
+ return
+ end
+ subroutine make2bar(ninow,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart,clefq)
+ parameter (nm=24,mv=24576)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*10 figq
+ character*1 ulq,sepsymq,sq,chax
+ logical beamon,firstgulp,figbass,figchk,isfig,bar1syst,isbjmp,
+ * isbj2
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /combeam/ ibmtyp
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,issig,rpndot,autofbon
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ integer istart(80),istop(80),iaskb(nm),numbms(nm),
+ * nornb(nm),ihornb(nm,24),lcwr(nm),ibmcnt1(nm),ifig(2)
+ character*1 ulfbq,udqq,clefq(nm),slurudq
+ character*8 noteq
+ character*79 cwrq(nm),notexq,inameq
+ character*20 voltxtq
+ common /comoct/ noctup
+ character*80 soutq,headrq,lowerq
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ logical bspend,lower,cwrest(nm),vxtup,
+ * isgrace,isclef,nofirst,iscln,isdot,isflag,
+ * isacc,isfirst,flgndb,btest,stemup,upslur,
+ * isgaft,isarp,isrshft,isaccs,iscacc,
+ * lowdot,flipend,iscwr,isdotted,beamon1(nm)
+ real*4 ptgr(37),ptclef(nm),ptsndg(nm),eskndg(nm),tstart(80),
+ * squez(80)
+ logical cwrferm,drawbm
+ common /comcwrf/ cwrferm(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comstart/ facmtr
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+c
+c Factors for grace note, clef spacing. (fraction of wheadpt)
+c In 1.04, moved to block data subprogram
+c
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comtol/ tol
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,fontslur
+ * ,WrotePsslurDefaults
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ common /comevent/ miditime,lasttime
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ logical secondgrace
+c
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c
+c Set up main ib loop within which a block (notes group) is written
+c
+ do 25 iv = 1 , nv
+ do 25 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ibmcnt(ivx) = 1
+ ibmcnt1(ivx) = 1
+ beamon(ivx) = .false.
+ beamon1(ivx) = .false.
+ nornb(ivx) = 0
+ iaskb(ivx) = 1
+ vxtup(ivx) = .false.
+ drawbm(ivx) = .true.
+25 continue
+ naskb = 0
+ ifig(1) = 1
+ ifig(2) = 1
+ ixtup = 0
+ bspend = .false.
+ iscwr = .false.
+ rpndot = .false.
+ do 16 ib = 1 , nb
+c
+c Check for segno
+c
+ if (btest(iornq(1,ipo(istart(ib))),4) .and.
+ * ivxo(istart(ib)).eq.1) then
+ if (noffseg.le.-10) then
+ write(noteq(1:5),'(1H{,i3,1H})')noffseg
+ lnoten = 5
+ else if (noffseg.lt.0 .or. noffseg.ge.10) then
+ write(noteq(1:4),'(1H{,i2,1H})')noffseg
+ lnoten = 4
+ else
+ write(noteq(1:1),'(i1)')noffseg
+ lnoten = 1
+ end if
+ notexq = sq//'znotes'//sq//'segnoo'//noteq(1:lnoten)//'9'
+ lnote = 15+lnoten
+ do 130 iv = 2 , nv
+ if (lnote .gt. 60) then
+ if (islast) write(11,'(a)')notexq(1:lnote)//'%'
+ notexq = sepsymq(iv-1)//sq//'segnoo'
+ * //noteq(1:lnoten)//'9'
+ lnote = lnoten+9
+ else
+ notexq = notexq(1:lnote)//sepsymq(iv-1)//sq//'segnoo'
+ * //noteq(1:lnoten)//'9'
+ lnote = lnote+lnoten+9
+ end if
+130 continue
+ if (islast) write(11,'(a)')notexq(1:lnote)//sq//'en'
+ lnote = 0
+ end if
+c
+c Check for new clefs
+c
+ isclef = .false.
+ if (btest(islur(ivxo(istart(ib)),ipo(istart(ib))),15))
+ * then
+c
+c In preceding line, fl32 gave wrong result for ... .gt.0 !!!
+c
+ do 140 in = istart(ib) , istop(ib)
+ if (btest(islur(ivxo(in),ipo(in)),11)) then
+ call wsclef(ivxo(in),ninow,clefq,
+ * iand(ishft(islur(ivxo(in),ipo(in)),-12),7))
+ end if
+140 continue
+ if (islast) write(11,'(a)')sq//'pmxnewclefs'
+ isclef = .true.
+ end if
+c
+c Start a notes group. We're just gonna define every one using pnotes{n},
+c where \def\pnotes#1{\vnotes#1\elemskip}
+c
+ soutq = sq//'pnotes{'
+ eonsqz = squez(ib)*feon(space(ib)/squez(ib))
+ if (eonsqz .gt. 9.995) then
+ write(soutq(9:12),'(f4.1)')eonsqz
+ else if (eonsqz .gt. 0.995) then
+ write(soutq(9:12),'(f4.2)')eonsqz
+ else if (eonsqz .gt. 0.095) then
+ soutq = soutq(1:8)//'0.'
+ write(soutq(11:12),'(i2)')nint(100*eonsqz)
+ else
+ soutq = soutq(1:8)//'0.0'
+ write(soutq(12:12),'(i1)')nint(100*eonsqz)
+ end if
+ soutq = soutq(1:12)//'}'
+ lsout = 13
+c
+c Check whole block, flag accidentals etc that are too close, one per *time*.
+c Note about bar starts and after rpt's/boublebars: There is an afterruleskip
+c (fbar*wheadpt) following, but rpts seem to occupy some of that gap, so
+c (dotsfac*wheadpt) is presumed to be filled up.
+c
+ in = istart(ib)-1
+ itrpt = -1
+ itsig = -1
+c
+c Begin big manual loop over notes in this block; ends at 112
+c
+111 in = in+1
+ if (in .gt. istop(ib)) go to 112
+ ip = ipo(in)
+ ivx = ivxo(in)
+ if (ivx .le. nv) then
+ iv = ivx
+ else
+ do 128 iv = 1 , nv
+ if (nvmx(iv) .eq. 2 .and. ivmx(iv,2).eq. ivx) go to 129
+128 continue
+ print*,'Trouble finding iv!, ivx,nvmx,ivmx:',ivx,nvmx(1),nvmx(2)
+ print*,ivmx(1,1),ivmx(1,2),ivmx(2,1),ivmx(2,2)
+ stop
+ end if
+129 continue
+c
+c Call precrd here so we know how much space to add for accid's in chords
+c After calling precrd, icashft>0 means there is a shifted chordal accid (incl.
+c main note.
+c
+c To call precrd, need up-downness, so must track if in beam.
+c
+c Deal w/ staff-jumping beams later
+c if ((numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+c * .and. ibm1(ivx,ibmcnt(ivx)) .eq. ip) .or.
+c * btest(nacc(ivx,ip),21)) then
+c if (.not.btest(irest(ivx,ip),24)) then
+ if ((numbms(ivx).gt.0 .and. ibmcnt1(ivx).le.numbms(ivx)
+ * .and. ibm1(ivx,ibmcnt1(ivx)) .eq. ip)) then
+ beamon1(ivx)=.true.
+ end if
+ icashft = 0
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord on this note. Need up-down-ness in precrd to auto shift for 2nds.
+c
+ if (beamon1(ivx)) then
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),ulq(ivx,ibmcnt1(ivx)),
+ * .false.,icashft)
+ else
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),udqq(nolev(ivx,ip),
+ * ncmid(iv,ip),islur(ivx,ip),nvmx(iv),ivx,nv),
+ * .false.,icashft)
+ end if
+ end if
+c
+c Turn beam off?
+c
+ if (beamon1(ivx) .and. ibm2(ivx,ibmcnt1(ivx)).eq.ip) then
+ beamon1(ivx) = .false.
+ ibmcnt1(ivx) = ibmcnt1(ivx)+1
+ end if
+c
+c Remember, rpts & internal sigs can only come at start of (internal) block
+c
+ isacc = iand(nacc(ivx,ip),3).gt.0
+ * .and. .not.btest(nacc(ivx,ip),17)
+ * .and. .not.btest(ipl(ivx,ip),10)
+c
+c i.e., do not set for chord. Now check for "(" as ornament on main note,
+c
+c!!! Need to do this for chord notes too. Maybe in chkarp?
+c
+ isaccs = isacc .or. btest(iornq(ivx,ip),0)
+c
+c 5/15/02 Add check for ) ornament of prior note.
+c 5/16 Nope...fails when grace intervenes.
+c if (ip .gt. 1) then
+c isaccs = isaccs .or. btest(iornq(ivx,ip-1),13)
+c end if
+ isarp = btest(iornq(ivx,ip),27)
+ iscacc = .false.
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord here; check for arpeggios and accidentals. Note accid shifts are
+c not of concern here, only whether there's an accid, whick causes iscacc=.true.
+c
+ iscacc = igetbits(nacc(ivx,ip),3,0).gt.0 .and.
+ * .not.btest(nacc(ivx,ip),17)
+ call chkarp(ncrd,icrdat,ivx,ip,iscacc,isarp)
+ end if
+c
+c When we get motivated, will do spacing for arpeggios here.
+c
+ if (ivx.eq.1 .and. iand(islur(ivx,ip),96).gt.0)
+ * itrpt = nint(to(in))
+ issig = btest(ipl(ivx,ip),28)
+ if (ivx.eq.1 .and. issig) itsig = nint(to(in))
+ isgrace = btest(islur(ivx,ip),4) .and.
+ * .not.btest(ipl(ivx,ip),29) .and. .not.btest(ipl(ivx,ip),31)
+ isgaft = .false.
+ if (ip .gt. 1) then
+ xnd = tnote(ipl2(ivx,ip-1))
+ isgaft = btest(ipl(ivx,ip-1),29) .or. btest(ipl(ivx,ip-1),31)
+ isgrace = isgrace .or. isgaft
+ end if
+ iscln = isclef .and. btest(islur(ivx,ip),11)
+c
+c Is prev. note non-beamed, up-stemmed, & flagged? Recall if ip>1, have nd
+c
+ isflag = ip.gt.1 .and. xnd.gt.tol .and. xnd.lt.16.-tol
+ if (isflag)
+ * isflag = .not.btest(irest(ivx,ip-1),0)
+ * .and. udqq(nolev(ivx,ip-1),
+ * ncmid(iv,ip-1),islur(ivx,ip-1),nvmx(iv),ivx,nv).eq.'u'
+ if (isflag) then
+ do 116 ibmchk = 1 , numbms(ivx)
+ if (ip-1 .lt. ibm1(ivx,ibmchk)) then
+ go to 117
+c
+c Add check for non-beamed xtuplets. May be problem with stem direction.
+c
+c else if (ip-1.le.ibm2(ivx,ibmchk)) then
+ else if (ip-1.le.ibm2(ivx,ibmchk) .and.
+ * .not.btest(islur(ivx,ibm1(ivx,ibmchk)),18)) then
+ isflag = .false.
+ go to 117
+ end if
+116 continue
+ end if
+117 continue
+c
+c If isflag, then won't need to check for dot on prev. note.
+c
+c 5/16/02 ??? Try using this for ) ornament.
+c
+ isflag = isflag .or. btest(iornq(ivx,ip-1),13)
+ isdot = ip.gt.1
+ if (isdot) isdot = isdotted(nodur,ivx,ip-1)
+ isrshft = ip .gt. 1
+ if (isrshft) isrshft = btest(irest(ivx,ip-1),20)
+ if (.not.(isaccs.or.isgrace.or.iscln.or.isflag.or.isrshft.or.
+ * isdot.or.btest(iornq(ivx,ip),26).or.
+ * btest(irest(ivx,ip),21).or.isarp.or.
+ * btest(irest(ivx,ip),27).or.iscacc)) go to 111
+c
+c Here is an accid,grace,clef,flag,rtshft,dot,udsp,arpeg,left-shift.
+c Compute pts, the total occupied space including prior notehead.
+c
+ wheadpt1 = wheadpt*fullsize(iv)
+ pts = wheadpt1
+c
+c Set up for possible cautionary accidental here
+c
+ if (isaccs .or. iscacc) then
+ if (.not.btest(iornq(ivx,ip),31)) then
+ taccfac = accfac
+ else
+ taccfac = 1.4*accfac
+ end if
+ end if
+ if (isgrace) then
+ secondgrace = .false.
+ do 122 ig = 1 , ngrace
+ if (.not. isgaft) then
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 123
+ else if (ip .gt. 1) then
+ if (ipg(ig).eq.ip-1 .and. ivg(ig).eq.ivx) go to 123
+ end if
+122 continue
+ print*,'Problem finding grace index in makeabar'
+ stop
+123 continue
+c
+c wgr = distance to backspace (in headwidths), less main acc.
+c ptgr = same in pts,+ main acc. Not used for after-grace. Distance to backspace.
+c spgr = total space needed (w/o main acc).
+c Also, spgr is same for b4 or after, but xb4fac-space will be in diff. place.
+c
+ if (nng(ig) .eq. 1) then
+ wgr = grafac
+ if (multg(ig) .eq. 0) wgr = wgr-.4
+ else
+ wgr = nng(ig)*emgfac
+ do 126 ing = 2 , nng(ig)
+ if (naccg(ngstrt(ig)-1+ing) .gt. 0) wgr = wgr+acgfac
+126 continue
+ end if
+ if (graspace(ig) .gt. 0.) then
+c
+c User-defined space before grace
+c
+ wgr = wgr+graspace(ig)
+ end if
+ ptgr(ig) = wgr*wheadpt1
+ spgr = ptgr(ig)+xb4fac*wheadpt1
+c
+c!!! May need to mod for chord accid's
+c
+ if (isaccs .or. iscacc) ptgr(ig) = ptgr(ig) + taccfac*wheadpt1
+ if (naccg(ngstrt(ig)) .gt. 0) spgr = spgr+wheadpt1*agc1fac
+ pts = pts+spgr
+c
+c Special check for after-grace on ip-1 and normal on ip. Must go back thru
+c loop again for the normal grace.
+c
+ if (isgaft .and. ig.lt.ngrace .and. .not.secondgrace) then
+ if (ipg(ig+1).eq.ip) then
+ secondgrace = .true.
+ ig = ig+1
+ go to 123
+ end if
+ end if
+ end if
+ if (iscln) then
+ pts = pts+clefac*wheadpt1
+c
+c How far to backspace when printing the clef
+c
+ ptclef(ivx) = 0.
+c
+c!!! May need to mod for chord accid's
+c
+ if (isaccs .or. iscacc)
+ * ptclef(ivx) = ptclef(ivx)+taccfac*wheadpt1
+ if (isgrace) ptclef(ivx) = ptclef(ivx)+spgr
+ end if
+ if (isrshft) then
+ pts = pts+rtshfac*wheadpt1
+ else if (isflag) then
+ pts = pts+flagfac*wheadpt1
+ else if (isdot) then
+ pts = pts+dotfac*wheadpt1
+ end if
+ if (abs(to(in)-itrpt) .lt. tol) then
+c
+c Repeat, need a little extra space
+c
+ pts = pts+dotsfac*wheadpt1
+ end if
+ if (isarp) then
+ pts = pts+arpfac*wheadpt1
+ end if
+c
+c Add in padding space
+c
+ pts = pts+xspfac*wheadpt1
+c
+c Now done with all items needing space except accidentals,
+c accidental shifts, and left-notehead-shifts, and will later
+c subtract a notehead if at start of bar.
+c
+c Get available space in elemskips (esk)
+c
+c isfirst = ip.eq.1 .or. to(in).eq.itrpt .or.
+c * to(in) .eq. itsig
+ isfirst = ip.eq.1 .or. abs(to(in)-itrpt).lt.tol .or.
+ * abs(to(in)-itsig).lt.tol
+ if (isfirst) then
+c
+c At start of bar or after repeat sign or new signature
+c
+c if (to(in) .eq. itsig) then
+ if (abs(to(in)-itsig).lt.tol) then
+ esk = 0.
+ else
+ esk = fbar
+ end if
+ else
+c
+c Not 1st note of bar
+c
+ esk = eskz(ivx,ip)-eskz(ivx,ip-1)
+ end if
+ if (isgrace) then
+c
+c Since graces can be very long, cannot assume no interference if prior
+c note uses >1 noteskip. So must get elsk's back to prior note, whether or
+c not it used only one noteskip.
+c <<But if it was xtup. don't need to call eskb4.>>????
+c
+c 10/8/05 Kluge to not zero out esk if in xtup
+c
+ esksav = esk
+ if ((ip.le.2 .or. nodur(ivx,max(1,ip-2)).gt.0) .and.
+c * to(in).ne.itsig)
+ * abs(to(in)-itsig).gt.tol)
+ * call eskb4(ip,ivx,in,ib,space,tstart,fbar,itrpt,esk)
+ if (abs(esk) .lt. tol) esk = esksav
+ end if
+c
+c Done getting available elemskips. Remove headwidth if first. Must do here
+c rather than earlier since check uses isfirst
+c
+ if (isfirst) pts = pts-wheadpt1
+c
+c Deal with accidental shifts and left-notehead shifts
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c In a chord
+c
+ ptsl = 0.
+ if (btest(irest(ivx,ip),27)) ptsl = wheadpt1
+ ptsadd = max(ptsl,icashft*.05*wheadpt1)
+c
+c Note: may have icashft=-20000 (if shftmin=-1000 in crdacc) but that's OK
+c
+ else
+c
+c Not in a chord
+c
+ ihshft = 0
+ if (isaccs) then
+ ihshft = igetbits(nacc(ivx,ip),7,10)
+c if (ihshft .ne. 0) ihshft = max(0,64-ihshft)
+ if (ihshft .ne. 0) ihshft = max(0,107-ihshft)
+ end if
+c
+c Check for left-shifted main note
+c
+ if (btest(ipl(ivx,ip),8)) ihshft = max(20,ihshft)
+ ptsadd = ihshft*.05*wheadpt1
+ end if
+ pts = pts+ptsadd
+ if (isgrace) ptgr(ig) = ptgr(ig)+ptsadd
+ if (iscln) ptclef(ivx) = ptclef(ivx)+ptsadd
+c
+c Left-shifted, non-chord note before?
+c
+ if (ip .gt. 1) then
+ if (.not.btest(ipl(ivx,ip-1),10) .and.
+ * btest(irest(ivx,ip-1),27)) pts = pts-wheadpt1
+ end if
+c
+c Try big accidentals first
+c
+ ptbneed = pts
+ if (isaccs .or. iscacc) then
+ ptbneed = ptbneed+wheadpt1*bacfac
+ end if
+ if (poenom*esk .gt. ptbneed) then
+c
+c Set flag for big accidental
+c
+ if (isacc) nacc(ivx,ip) = ibset(nacc(ivx,ip),3)
+ go to 99
+ end if
+c
+c Cannot use big, so try small
+c
+ ptsneed = pts
+ if (isaccs .or. iscacc) then
+ ptsneed = ptsneed+taccfac*wheadpt1
+ end if
+ if (poenom*esk .lt. ptsneed) call addask(to(in),ptsneed,
+ * esk,fixednew,scaldold,0.,.false.)
+99 continue
+ if (btest(iornq(ivx,ip),26)) then
+c
+c User-defined space. Warning, "zero" may change value in addask!
+c
+ zero = 0.
+ call addask(to(in),ptsneed,zero,
+ * fixednew,scaldold,tglp1,.true.)
+ end if
+c
+c End of big manual loop over "in" for accidental checking
+c
+ go to 111
+112 continue
+c
+c End of ask analysis for this block.
+c
+c Adjust eskz if there are added spaces. Corrects length of xtup brackets.
+c
+ if (naskb.gt.0) call adjusteskz(ib,squez,istart,istop,poenom)
+c
+c Check for internal repeat or sig change.
+c
+ if (ib.gt.1 .and. ivxo(istart(ib)).eq.1) then
+ iirpt = iand(islur(1,ipo(istart(ib))),67109216)
+ if (iirpt .gt. 0) then
+c
+c Internal repeat
+c
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1%'
+ if (iirpt .eq. 96) then
+ if (islast) write(11,'(a)')sq//'leftrightrepeat'
+ fixednew = fixednew+lrrptfac*wheadpt
+ else if (btest(iirpt,5)) then
+ if (islast) write(11,'(a)')sq//'leftrepeat'
+ fixednew = fixednew+rptfac*wheadpt
+ else if (btest(iirpt,6)) then
+ if (islast) write(11,'(a)')sq//'rightrepeat'
+ fixednew = fixednew+rptfac*wheadpt
+ else if (btest(iirpt,8)) then
+ if (islast) write(11,'(a)')sq//'doublebar'
+ else
+ print*,'Unexpected mid-bar repeat command R*'
+ call stop1()
+ end if
+ scaldold = scaldold-fbar
+ end if
+ if (btest(ipl(1,ipo(istart(ib))),28)) then
+c
+c Internal signature change.
+c
+ notexq = sq//'generalsignature{'
+ lnote = 18
+ if (isig .lt. 0) then
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ if (islast) write(11,'(a)')notexq(1:lnote)
+ * //chax(48+abs(isig))//'}%'
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-.5'//sq//'afterruleskip}%'
+ lnote = 0
+ end if
+ end if
+ flgndb = .false.
+c
+c Done with start-of-block stuff. Begin main loop over voices.
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ icm = midchan(iv,kv)
+c
+c A rather klugey way to set flag for figure in this voice
+c Must always check figbass before figchk.
+c
+ if (figbass) then
+ ivf = 0
+ if (ivx .eq. 1) then
+ ivf = 1
+ else if (ivx .eq. ivxfig2) then
+ ivf = 2
+ end if
+ if (ivf.gt.0) figchk(ivf) = nfigs(ivf).gt.0
+ end if
+ if (ivx .gt. 1) then
+ if (ivx .le. nv) then
+ call addstr(sepsymq(iv-1),1,soutq,lsout)
+ else
+ call addstr(sq//'nextvoice',10,soutq,lsout)
+ end if
+ end if
+ if (ihdht.gt.0 .and. ivx.eq.nv) then
+c
+c Write header. First adjust height if needed to miss barno.
+c
+ if (bar1syst .and. iline.ne.1) then
+ ihdht = 15+irzbnd+isnx
+ end if
+c
+c Add user-defined vertical shift
+c
+ ihdht = ihdht+ihdvrt
+ lchead = lenstr(headrq,80)
+ notexq = sq//'zcharnote{'
+ write(notexq(12:13),'(i2)')ihdht
+ notexq = notexq(1:13)//'}{'//sq//'bigfont'//sq//'kern-30pt '
+ call addstr(notexq,34,soutq,lsout)
+ call addstr(headrq(1:lchead)//'}',1+lchead,soutq,lsout)
+ ihdht = 0
+ end if
+ if (lower .and. ivx.eq.nv) then
+ lclow = lenstr(lowerq,80)
+ call addstr(sq//'zcharnote{-6}{'//
+ * sq//'tempo'//sq//'kern-10pt '//
+ * lowerq(1:lclow)//'}',33+lclow,soutq,lsout)
+ lower=.false.
+ end if
+ tnow = tstart(ib)
+ nofirst = .true.
+c
+c Done setting up voice ivx for start of block ib. Loop over notes in voice.
+c
+ do 10 jn = istart(ib), istop(ib)
+ if (ivxo(jn) .ne. ivx) go to 10
+ ip = ipo(jn)
+c
+c May have problem with not initializing islhgt, so do it here
+c
+ islhgt = 0
+c
+ if (nofirst) then
+ noctup = 0
+ if (ncmid(iv,ip) .eq. 23) noctup = -2
+ nofirst = .false.
+ end if
+c
+c Check for internal floating figure (before last note of group).
+c
+12 if (figbass) then
+ if (ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+ if (figchk(ivf) .and. itfig(ivf,ifig(ivf)).lt.tnow-tol)
+ * then
+c
+c Bypassed figure location. Backup, place fig, return.
+c
+ offnsk = (tnow-itfig(ivf,ifig(ivf)))/space(ib)
+ call putfig(ivf,ifig(ivf),offnsk,figchk(ivf),soutq,
+ * lsout)
+ go to 12
+ end if
+ end if
+ end if
+c
+c Put in \sk if needed
+c
+ if (to(jn) .gt. tnow+tol) then
+ call addstr(sq//'sk',3,soutq,lsout)
+ tnow = tnow+space(ib)
+ go to 12
+ end if
+c
+c Check for user-defined shifts
+c
+ if (btest(irest(ivx,ip),15).or.btest(irest(ivx,ip),16))
+ * call putshft(ivx,.true.,soutq,lsout)
+21 if (iaskb(ivx).le.naskb .and.
+ * tnow.gt.task(iaskb(ivx))-tol) then
+ if (task(iaskb(ivx)) .gt. tstart(ib)-tol) then
+c
+c Insert placeholder for accidental skip
+c
+ call addstr(sq//'ask ',9,soutq,lsout)
+ nasksys = nasksys+1
+ wasksys(nasksys) = wask(iaskb(ivx))
+ if (wask(iaskb(ivx)) .gt. 0.) then
+ elasksys(nasksys) = elask(iaskb(ivx))
+ else
+c
+c This is a signal to permit negative ask's. Should really have elask>=0.
+c
+ elasksys(nasksys) = -elask(iaskb(ivx))
+ end if
+ end if
+c
+c May have skipped some task's in earlier blocks (due to void voice)
+c
+ iaskb(ivx) = iaskb(ivx)+1
+ go to 21
+ end if
+ if (figbass) then
+ if (ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+ if (figchk(ivf) .and.
+ * abs(itfig(ivf,ifig(ivf))-tnow).lt.tol) then
+c
+c Figure on a note. NB: later special check for late figs.
+c
+ call putfig(ivf,ifig(ivf),0.,figchk(ivf),soutq,lsout)
+ end if
+ end if
+ end if
+c
+c Check for new clef here.
+c
+ if (isclef .and. btest(islur(ivx,ip),11)) then
+c print*,'At clef insertion, ptclef:',ptclef(iv)
+ if (ptclef(iv) .gt. 0.) then
+ notexq = sq//'off{-'
+ if (ptclef(iv) .lt. 9.95) then
+ write(notexq(7:9),'(f3.1)')ptclef(iv)
+ lnote = 9
+ else
+ write(notexq(7:10),'(f4.1)')ptclef(iv)
+ lnote = 10
+ end if
+ notexq = notexq(1:lnote)//'pt}'
+ lnote = lnote+3
+ call addstr(notexq,lnote,soutq,lsout)
+c print*,'Just added: ',notexq(1:lnote)
+ end if
+ call clefsym(islur(iv,ip),notexq,lnote,nclef)
+ call addstr(notexq,lnote,soutq,lsout)
+ if (ptclef(iv) .gt. 0.) then
+ notexq = sq//'off{'
+ if (ptclef(iv) .lt. 9.95) then
+ write(notexq(6:8),'(f3.1)')ptclef(iv)
+ lnote = 8
+ else
+ write(notexq(6:9),'(f4.1)')ptclef(iv)
+ lnote = 9
+ end if
+ notexq = notexq(1:lnote)//'pt}'
+ lnote = lnote+3
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+ end if
+c
+c Checking for literal TeX string BEFORE starting beams!!
+c
+ if (btest(islur(ivx,ip),16)) then
+ do 124 il = 1 , nlit
+ if (iplit(il).eq.ip .and. ivlit(il).eq.ivx) go to 125
+124 continue
+ print*,'Problem finding index for literal string'
+ call stop1()
+125 continue
+c
+c Write a type 1 tex string.
+c
+ if (lenlit(il) .lt. 71) then
+c
+c Add normally
+c
+ call addstr(litq(il),lenlit(il),soutq,lsout)
+ else
+c
+c Longer than 71. Write souq, Write string, start new soutq.
+c
+ if (islast) write(11,'(a)')soutq(1:lsout)//'%'
+ if (islast) write(11,'(a)')litq(il)(1:lenlit(il))//'%'
+ lsout = 0
+ end if
+ end if
+c
+c Arpeggio on a main (non-chordal) note?
+c
+ if (btest(iornq(ivx,ip),27)) then
+c call putarp(tnow,iv,ip,nolev(ivx,ip),ncmid(iv,ip),
+ call putarp(tnow,ivx,ip,nolev(ivx,ip),ncmid(iv,ip),
+ * soutq,lsout)
+ end if
+c
+c See if a beam starts here
+c
+ if ((numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+ * .and. ibm1(ivx,ibmcnt(ivx)) .eq. ip) .or.
+ * btest(nacc(ivx,ip),21)) then
+ if (.not.btest(irest(ivx,ip),24)) then
+c
+c Not a jump start
+c
+ call beamstrt(notexq,lnote,nornb,ihornb,space,squez,ib)
+c
+c Shift beam start if notehead was shifted
+c
+ if (btest(ipl(ivx,ip),8)) then
+ call addstr(sq//'loff{',6,soutq,lsout)
+ else if (btest(ipl(ivx,ip),9)) then
+ call addstr(sq//'roff{',6,soutq,lsout)
+ end if
+ if (lnote .gt. 0) call addstr(notexq,lnote,soutq,lsout)
+ if (btest(ipl(ivx,ip),8) .or.
+ * btest(ipl(ivx,ip),9)) call addstr('}',1,soutq,lsout)
+ else
+c
+c Jump start. Set marker for second part of a jump beam. Note ivbj2 was set
+c to 0 at end of first part of jump beam
+c
+ ivbj2 = ivx
+c
+c Check for xtup since we bypassed beamstrt wherein vxtup is normally set
+c
+ if (btest(irest(ivx,ip),28) .and. ixrest(ivx).ne.2)
+ * vxtup(ivx) = .true.
+c
+c Since beamstrt is not called, and drawbm is normally set there, need to set
+c it here. This could cause problems if someone tries a staff-jumping,
+c unbarred beam, which I'll deal with when it comes up.
+c
+ drawbm(ivx) = .true.
+ end if
+ if (ixrest(ivx) .eq. 0) then
+ beamon(ivx) = .true.
+ bspend = .true.
+ if (.not.btest(irest(ivx,ip),24))bspend = .true.
+ end if
+ end if
+c
+c Setup for chords and possible slurs in chords
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord on this note. Just rerun precrd. Klunky, but saves
+c me from tracking down errors instroduced when I moved 1st call
+c forward for accidental spacing analysis.
+c
+ if (beamon(ivx)) then
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),ulq(ivx,ibmcnt(ivx)),
+ * .true.,icashft)
+ else
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),udqq(nolev(ivx,ip),
+ * ncmid(iv,ip),islur(ivx,ip),nvmx(iv),ivx,nv),
+ * .true.,icashft)
+ end if
+ end if
+c
+c Is there slur or grace activity?
+c
+ isgrace = btest(islur(ivx,ip),4)
+ if (ip .gt. 1) isgrace = isgrace.or.btest(ipl(ivx,ip-1),31)
+c
+c isgrace if not 1st note in bar and previous note has Way-after grace.
+c
+ if (btest(islur(ivx,ip),0) .or. isgrace) then
+ if (btest(islur(ivx,ip),0)) then
+ if (fontslur) then
+c
+c Call routine for non-postscript slurs
+c
+ call doslur(nolev(ivx,ip),isdat1,isdat2,isdat3,nsdat,
+ * ip,iv,kv,nv,beamon(ivx),ncmid(iv,ip),soutq,lsout,
+ * ulq(ivx,ibmcnt(ivx)),islur(ivx,ip),ipl(ivx,ip),
+ * iornq(ivx,ip),islhgt,tnote(ipl2(ivx,ip)),
+ * nacc(ivx,ip))
+ else
+c
+c Postscript slurs
+c
+ call dopsslur(nolev(ivx,ip),isdat1,isdat2,isdat3,
+ * isdat4,nsdat,
+ * ip,iv,kv,nv,beamon(ivx),ncmid(iv,ip),soutq,lsout,
+ * ulq(ivx,ibmcnt(ivx)),islur(ivx,ip),ipl(ivx,ip),
+ * iornq(ivx,ip),islhgt,tnote(ipl2(ivx,ip)),
+ * nacc(ivx,ip))
+ end if
+ end if
+ if (isgrace) then
+c
+c Grace note.
+c
+ iphold = ip
+ isgrace = .false.
+ if (ip .gt. 1) isgrace = btest(ipl(ivx,ip-1),31)
+ if (isgrace) iphold = iphold-1
+ isgrace = isgrace .or. (.not.btest(ipl(ivx,ip),31)
+ * .and..not.btest(ipl(ivx,ip),29))
+c
+c Place grace now if (a) Way-after from prev note and ip>1 or (b) Pre-grace
+c on current note. Do A-grace on current note, and W-grace at barend, later.
+c
+ if (isgrace) then
+ call dograce(ivx,iphold,ptgr,soutq,lsout,ncmid(iv,ip),
+ * nacc(ivx,ip),ig,ipl(ivx,iphold),.false.,
+ * beamon(ivx),nolev(ivx,ip),ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),nv,ibmcnt(ivx),
+ * tnote(ipl2(ivx,ip)),ulq)
+ if (slurg(ig)) then
+c
+c Terminate slur started in dograce. Get direction of main note stem
+c
+ if (.not.beamon(ivx)) then
+c
+c Separate note. Get stem direction.
+c
+ stemup = udqq(nolev(ivx,ip),ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),ivx,nv) .eq. 'u'
+ else
+c
+c In a beam
+c
+ stemup = ulq(ivx,ibmcnt(ivx)) .eq. 'u'
+ end if
+c
+c Stop the shift if whole note
+c
+ stemup = stemup .or.
+ * tnote(ipl2(ivx,ip)).gt.63
+ call endslur(stemup,.not.upg(ig),nolev(ivx,ip),0,
+ * ndxslur,0,ncmid(iv,ip),soutq,lsout,fontslur)
+ end if
+ end if
+ end if
+ if (btest(iornq(ivx,ip),24)) then
+c
+c Start slur on main note for After- or Way-after-grace.
+c
+c???? ndxslur = log2(33554431-listslur)
+ ndxslur = log2(16777215-listslur)
+c
+c Get note name
+c
+ call notefq(noteq,lnoten,nolev(ivx,ip),ncmid(iv,ip))
+c
+c Get slur direction
+c
+ slurudq = 'u'
+ if (.not.beamon(ivx)) then
+ if (udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv) .eq. 'u') slurudq = 'd'
+ else
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') slurudq = 'd'
+ end if
+c
+cc Replace ndxslur by 11-ndxslur when printing only.
+c Replace ndxslur by 23-ndxslur when printing only.
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c notexq = sq//'islur'//slurudq//chax(59-ndxslur)
+ notexq = sq//'islur'//slurudq//chax(71-ndxslur)
+ * //noteq(1:lnoten)
+ call addstr(notexq,8+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ notexq = sq//'islur'//slurudq//'{1'//chax(61-ndxslur)
+ * //'}'//noteq(1:lnoten)
+ call addstr(notexq,11+lnoten,soutq,lsout)
+ else
+ notexq = sq//'islur'//slurudq//'{2'//chax(51-ndxslur)
+ * //'}'//noteq(1:lnoten)
+ call addstr(notexq,11+lnoten,soutq,lsout)
+ end if
+c call setbits(ipl(ivx,ip),4,23,ndxslur)
+ call setbits(ipl(ivx,ip),5,23,ndxslur)
+ if (btest(ipl(ivx,ip),31))
+c
+c Starting slur on W-grace on THIS note. Record ndxslur.
+c
+ * listslur = ibset(listslur,ndxslur)
+ end if
+ end if
+c
+c Process dynamic marks
+c
+ if (btest(irest(ivx,ip),26)) then
+ call dodyn(ivx,ip,
+ * nolev(ivx,ip),ncmid(iv,ip),ipl(ivx,ip),islur(ivx,ip),
+ * irest(ivx,ip),nvmx(iv),nv,beamon(ivx),ihornb,nornb,ulq,
+ * ibmcnt(ivx),nodur(ivx,ip).ge.64,soutq,lsout)
+ end if
+c
+c Check for chord notes. Moved up from below, 10/27/96 so chord orns done 1st.
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c Need a duration to set type of note head
+c
+c if (.not. vxtup(ivx)) then
+c
+c Clumsy test, but vxtup is not set until main note is processed.
+c
+ if (.not.(vxtup(ivx).or.btest(irest(ivx,ip),28))) then
+ nodu = nodur(ivx,ip)
+c else if (mult(ivx,ip) .lt. 0) then
+ else if (iand(mult(ivx,ip),15)-8 .lt. 0) then
+ nodu = 32
+ else
+ nodu = 16
+ end if
+ call docrd(ivx,ip,nodu,ncmid(iv,ip),iv,tnow,soutq,lsout,
+ * ulq,ibmcnt(ivx),islur(ivx,ip),nvmx(iv),nv,
+ * beamon(ivx),nolev(ivx,ip),ihornb,nornb,stemlen,
+ * btest(nacc(ivx,ip),27),nacc(ivx,ip))
+ end if
+c
+c Now that chords are done, add stuff to midi file
+c
+c if (ismidi) call addmidi(icm,nolev(ivx,ip),
+ if (ismidi) call addmidi(icm,
+ * nolev(ivx,ip)-iTransAmt(instno(iv)),
+c
+ * iand(nacc(ivx,ip),7),isig,tnote(ipl2(ivx,ip)),
+ * btest(irest(ivx,ip),0),.false.)
+c
+c Check for breath or caesura
+c
+ if (btest(iornq(ivx,ip),28)) then
+ call putcb(ivx,ip,notexq,lnote)
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Check for main-note ornaments. ')' on dotted notes go in with note, not here.
+c Bits 0-13: (stmgx+Tupf._) ; 14: Down fermata, was F
+c 15: Trill w/o "tr", was U , 16-18 edit. accid., 19-21 TBD
+c
+ isacc = iand(iornq(ivx,ip),4194287) .gt. 0
+c
+c isacc=.true. if any ornament except segno
+c
+ if (btest(iornq(ivx,ip),13) .and. nodur(ivx,ip).gt.0) then
+c
+c If ). is only ornament, bypass. If with others, temporarirly zero the bit.
+c
+ if (2**log2(nodur(ivx,ip)) .ne. nodur(ivx,ip)) then
+ if (iand(iornq(ivx,ip),516079) .eq. 0) then
+c
+c ). is the only non-segno ornament
+c
+ isacc = .false.
+ else
+c
+c There are other ornaments in addition
+c
+ rpndot = .true.
+ iornq(ivx,ip) = ibclr(iornq(ivx,ip),13)
+ end if
+ end if
+ end if
+ if (isacc .and. .not.cwrferm(ivx)) then
+c
+c Check for centered whole-bar rest with fermata (bits 10 or 14).
+c
+ if (iand(iornq(ivx,ip),17408).gt.0
+ * .and. btest(irest(ivx,ip),0) .and.
+ * nodur(ivx,ip).eq.lenbar .and.
+ * .not.(firstgulp.and.ibar.eq.1.and.lenb0.gt.0)) then
+ cwrferm(ivx) = .true.
+ go to 30
+ end if
+ call putorn(iornq(ivx,ip),nolev(ivx,ip),nolev(ivx,ip),
+ * nodur(ivx,ip),nornb,ulq,ibmcnt(ivx),ivx,ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),nv,ihornb,stemlen,
+ * notexq,lnote,ip,islhgt,beamon(ivx),
+ * btest(ipl(ivx,ip),10))
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+ if (rpndot) then
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),13)
+ rpndot = .false.
+ end if
+30 continue
+c
+c Check for main note accidental
+c
+ if (iand(nacc(ivx,ip),3).gt.0 .and.
+ * .not.btest(nacc(ivx,ip),17)) then
+ ihshft = igetbits(nacc(ivx,ip),7,10)
+ if (ihshft .ne. 0) ihshft=ihshft-107
+ if (.not.btest(ipl(ivx,ip),10) .and. btest(ipl(ivx,ip),8))
+c
+c Not a chord, and left-shifted main note, so left-shift accid
+c
+ * ihshft = ihshft-20
+ call doacc(ihshft,igetbits(nacc(ivx,ip),6,4),
+ * notexq,lnote,nacc(ivx,ip),nolev(ivx,ip),ncmid(iv,ip),
+ * btest(irest(ivx,ip),31))
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Lower dot for lower-voice notes. Conditions are:
+c 1. Dotted time value
+c 2. Lower voice of two
+c 3. Note is on a line
+c 4. Not a rest
+c. 5. Flag (lowdot) is set to true
+c 6. Not in an xtuplet
+c
+ if (lowdot .and. nvmx(iv).eq.2 .and. ivx.le.nv
+ * .and. nodur(ivx,ip).ne.0) then
+ if (.not.btest(irest(ivx,ip),0) .and.
+ * 2**log2(nodur(ivx,ip)).ne.nodur(ivx,ip) .and.
+ * mod(nolev(ivx,ip)-ncmid(ivx,ip),2).eq.0) then
+ if (btest(irest(ivx,ip),19)) then
+c
+c Note already in movdot list. Drop by 2.
+c
+ updot(ivx,ndotmv(ivx)+1) =
+ * updot(ivx,ndotmv(ivx)+1)-2.
+ else
+c
+c Not in list so just move it right now
+c
+ call dotmov(-2.,0.,soutq,lsout,
+ * igetbits(islur(ivx,ip),1,3))
+ end if
+ end if
+ end if
+c
+c Check for dotted notes with moved dots
+c
+ if (btest(irest(ivx,ip),19)) then
+ ndotmv(ivx) = ndotmv(ivx)+1
+ call dotmov(updot(ivx,ndotmv(ivx)),rtdot(ivx,ndotmv(ivx)),
+ * soutq,lsout,igetbits(islur(ivx,ip),1,3))
+ end if
+c
+c Stemlength shortening?
+c
+ if (btest(mult(ivx,ip),27)) then
+ stemshort = 4.66-.667*(igetbits(mult(ivx,ip),3,28)+1)*.5
+ call addstr(sq//'stemlength{',12,soutq,lsout)
+ write(notexq,'(f4.2)')stemshort
+ call addstr(notexq(1:4)//'}',5,soutq,lsout)
+ else if (ip .gt. 1) then
+ if (btest(mult(ivx,ip-1),27))
+c
+c Cancel shortening. Looks like it gets automatically restored if new inst. or
+c new line, so no need to worry about affecting other lines
+c
+ * call addstr(sq//'stemlength{4.66}',17,soutq,lsout)
+ end if
+c
+c Zero out slur-height marker for raising ornaments
+c
+ islhgt = 0
+c
+c Now start with spacing notes. Is a beam start pending?
+c
+ if (bspend .and.
+ * ibm2(ivx,ibmcnt(ivx)).gt.ibm1(ivx,ibmcnt(ivx))) then
+ if (ixrest(ivx) .eq. 4) then
+c
+c Special path for single note at end of otherwise beamed xtup
+c
+ ixrest(ivx) = 0
+ else
+ call beamn1(notexq,lnote)
+ end if
+ bspend = .false.
+c
+c Is a beam ending?
+c
+ else if (numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+c * .and. ibm2(ivx,ibmcnt(ivx)) .eq. ip) then
+ * .and. (ibm2(ivx,ibmcnt(ivx)).eq.ip .or.
+ * btest(nacc(ivx,ip),20))) then
+ if (bspend) then
+c
+c Must be a single-note ending of a jump-beam
+c
+ bspend = .false.
+ end if
+ call beamend(notexq,lnote)
+ if (.not.btest(nacc(ivx,ip),20)) then
+ vxtup(ivx) = .false.
+ nornb(ivx) = 0
+ ibmcnt(ivx) = ibmcnt(ivx)+1
+ beamon(ivx) = .false.
+ end if
+c
+c Or if we're in the middle of a beam
+c
+ else if (numbms(ivx).gt.0 .and. beamon(ivx)) then
+ call beamid(notexq,lnote)
+c
+c Or whole-bar rest
+c
+ else if (btest(irest(ivx,ip),0)
+ * .and. nodur(ivx,ip).eq.lenbar
+ * .and..not.(firstgulp.and.ibar.eq.1.and.lenb0.gt.0)
+ * .and..not.btest(irest(ivx,ip),25)
+ * .and..not.btest(islur(ivx,ip),29)) then
+c
+c Rule out pickup bar, blank rests, non-centered. Remember islur b19=> rp
+c
+ cwrest(ivx) = .true.
+ iscwr = .true.
+ call notex(cwrq(ivx),lcwr(ivx))
+ tnow = tnow+lenbar
+ go to 10
+ else if (ixrest(ivx) .eq. 0) then
+c
+c Before writing note or rest, check for keyboard rest height adjustment.
+c Conditions are 0. This is a non-blank rest
+c 1. kbdrests = .true.
+c 2. There are two voices on the staff
+c 3. No user-def height adjustments have been applied (nolev<50)
+cc 4. Not last note in bar
+cc 5. Followed by note (add better test later)
+c
+ if (kbdrests .and. btest(irest(ivx,ip),0) .and.
+ * .not.btest(islur(ivx,ip),29).and. nvmx(iv).eq.2 .and.
+c * nolev(ivx,ip).le.50 .and. ip.ne.nn(ivx)
+c * .and. .not.(btest(irest(ivx,ip+1),0))) then
+ * nolev(ivx,ip).le.50) then
+c
+c Get reference level: next following note if no intervening blank rests,
+c otherwise next prior note.
+c
+c levnext = nolev(ivx,ip+1)-ncmid(iv,ip)+4 ! Relative to bottom line
+ if (ip.ne.nn(ivx).and..not.btest(iornq(ivx,ip),30)) then
+c
+c Not the last note and not "look-left" for level
+c
+ do 8 kkp = ip+1 , nn(ivx)
+ if (btest(islur(ivx,kkp),29)) go to 4
+ if (.not.btest(irest(ivx,kkp),0)) then
+ levnext = nolev(ivx,kkp)-ncmid(iv,kkp)+4 ! Relative to bottom line
+ go to 9
+ end if
+8 continue
+ end if
+4 continue
+c
+c If here, there were no following notes or came to a blank rest, or
+c "look-left" option set. So look before
+c
+ if (ip .eq. 1) go to 2 ! Get out if this is the first note.
+ do 3 kkp = ip-1, 1, -1
+ if (.not.btest(irest(ivx,kkp),0)) then
+ levnext = nolev(ivx,kkp)-ncmid(iv,kkp)+4 ! Relative to bottom line
+ go to 9
+ end if
+3 continue
+ go to 2 ! Pretty odd, should never be here, but get out if so.
+9 continue
+c
+c Find note in other voice at same time
+c
+ iupdown = sign(1,ivx-nv-1)
+ ivother = ivmx(iv,(3-iupdown)/2)
+ tother = 0.
+ do 5 kkp = 1 , nib(ivother,ibar)
+ if (abs(tother-tnow) .lt. tol) go to 6
+ tother = tother+nodur(ivother,kkp)
+5 continue
+c
+c If here, then no note starts in other voice at same time, so set default
+c
+ levother = -iupdown*50
+ go to 7
+6 continue
+c
+c If here, have just identified a simultaneous note or rest in other voice
+c
+ if (.not.btest(irest(ivother,kkp),0)) then ! Not a rest, use it
+ levother = nolev(ivother,kkp)-ncmid(iv,ip)+4
+ else
+ if (nodur(ivother,kkp) .eq. nodur(ivx,ip)) then
+c
+c Rest in other voice has same duration, get out (so defualt spacing is used)
+c
+ go to 2
+ end if
+ levother = -iupdown*50
+ end if
+7 continue
+ indxr = log2(nodur(ivx,ip))+1
+ if (iupdown .lt. 0) then
+ levtop = levtopr(indxr)
+ iraise1 = levother-levtop-3 ! Based on other note
+ iraise2 = levnext-levtop ! Based on following note
+ if (indxr.eq.5 .and. levnext.lt.1) iraise2=iraise2+2
+ iraise = min(iraise1,iraise2)
+ if (mod(iraise+50,2).eq.1 .and.
+ * iraise+levtop.gt.-1) iraise = iraise-1
+ else
+ levbot = levbotr(indxr)
+ iraise1 = levother-levbot+3
+ iraise2 = levnext-levbot
+ if (indxr.eq.5 .and. levnext.gt.8) iraise2=iraise2-1
+ iraise = max(iraise1,iraise2)
+ if (mod(iraise+50,2).eq.1 .and.
+ * iraise+levbot.le.9) iraise = iraise-1
+ end if
+ nolev(ivx,ip) = 100+iraise
+ end if
+2 continue
+c
+c Write a separate note or rest
+c
+ call notex(notexq,lnote)
+ end if
+c
+c Right offset? This may cause trouble
+c
+ if (btest(ipl(ivx,ip),8)) then
+ call addstr(sq//'loff{',6,soutq,lsout)
+ else if (btest(ipl(ivx,ip),9)) then
+ call addstr(sq//'roff{',6,soutq,lsout)
+ end if
+ if (ixrest(ivx).eq.0 .and. lnote.gt. 0)
+ * call addstr(notexq,lnote,soutq,lsout)
+ if (btest(ipl(ivx,ip),8) .or.
+ * btest(ipl(ivx,ip),9)) call addstr('}',1,soutq,lsout)
+c
+c Terminate user-defined offsets. Fix format
+c
+ if (btest(irest(ivx,ip),15) .or. btest(irest(ivx,ip),17))
+ * call putshft(ivx,.false.,soutq,lsout)
+c
+c Deal with After- and Way-after-graces. First, if end of bar, compute space
+c needed since it wasn't done during general ask-checks. If extra space is
+c rq'd, convert GW to GA. Therefore GW at end of bar never needs extra sp.
+c But will still need to add extra space as hardspace.
+c
+ if (ip.eq.nn(ivx) .and. (btest(ipl(ivx,ip),31).or.
+ * btest(ipl(ivx,ip),29))) then
+ do 77 ig = 1 , ngrace
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 78
+77 continue
+ print*,'Problem finding grace index at "do 77"'
+ call stop1()
+78 continue
+c
+c Get elemskip to end of bar. WON'T WORK IF XTUPS !!
+c
+ esk = 0.
+ do 40 iib = ib , nb
+ if (iib .eq. ib) then
+ itleft = nint(to(ipl2(ivx,ip)))
+ else
+ itleft = nint(tstart(ib))
+ end if
+ if (iib .lt. nb) then
+ itright = nint(tstart(iib+1))
+ else
+ itright = lenbar
+ end if
+ esk = esk+feon(space(ib))*
+ * (itright-itleft)/space(ib)
+40 continue
+ ptsavail = poenom*esk-wheadpt
+ if (nng(ig) .eq. 1) then
+ wgr = grafac
+ else
+ wgr = nng(ig)*emgfac
+ do 41 ing = 1 , nng(ig)
+ if (naccg(ngstrt(ig)-1+ing) .gt. 0) wgr = wgr+acgfac
+41 continue
+ end if
+ ptgr(ig) = wgr*wheadpt
+ ptsneed = (wgr+0.5)*wheadpt
+ ptsndg(ivx) = 0.
+ if (ptsavail .lt. ptsneed) then
+ ptsndg(ivx) = ptsneed
+ eskndg(ivx) = esk
+ if (btest(ipl(ivx,ip),31)) then
+c
+c Convert GW to GA
+c
+ ipl(ivx,ip) = ibset(ibclr(ipl(ivx,ip),31),29)
+ end if
+ end if
+ end if
+c
+c Check for GA
+c
+ if (btest(ipl(ivx,ip),29))
+ * call dograce(ivx,ip,ptgr,soutq,lsout,ncmid(iv,ip),
+ * nacc(ivx,ip),ig,ipl(ivx,ip),.false.,
+ * .false.,0,0,0,0,0,0,0.,ulq)
+c
+c Update running time
+c
+ tnow = tnow+space(ib)
+10 continue
+c
+c Have finished last note in this voice and block
+c
+ itendb = nint(to(istop(ib))+space(ib))
+ if (figbass .and. ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+17 if (figchk(ivf) .and. itfig(ivf,ifig(ivf)).lt.itendb) then
+c
+c There's at least one figure left. offnsk could be <0
+c
+ offnsk = (tnow-itfig(ivf,ifig(ivf)))/space(ib)
+ call putfig(ivf,ifig(ivf),offnsk,figchk(ivf),soutq,lsout)
+ go to 17
+ end if
+ end if
+c
+c Check for flag, dot, or upstem on last note of bar.
+c
+ if (ib .eq. nb) then
+ ip = ipo(ipl2(ivx,nn(ivx)))
+ flgndv(ivx) = 0.
+ if (abs(tnote(ipl2(ivx,ip))-space(ib)).lt.tol) then
+ if (space(ib) .lt. 16.-tol) then
+c
+c Note in last space, smaller than a quarter note.
+c
+ if ((.not.btest(irest(ivx,ip),0) .and.
+ * udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv).eq.'u')
+ * .or. isdotted(nodur,ivx,ip)) then
+c
+c Upstem non-rest, or dotted
+c
+ if (numbms(ivx).gt.0
+ * .and. ip.eq.ibm2(ivx,max(1,numbms(ivx)))
+ * .and. .not.isdotted(nodur,ivx,ip))
+ * then
+c
+c In beam and not dotted, so use smaller space
+c
+ flgndv(ivx) = upstmfac
+ else
+ flgndv(ivx) = flagfac
+ end if
+ end if
+ else
+c
+c Last space, nonflagged (no beam) only worry dot or up
+c
+ if (isdotted(nodur,ivx,ip)) then
+ flgndv(ivx) = flagfac
+ else if (tnote(ipl2(ivx,ip)).lt.64 .and.
+ * udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv).eq.'u') then
+c
+c Upstem on last note , non-flagged
+c
+ flgndv(ivx) = upstmfac
+ end if
+ end if
+ end if
+c
+c Check for right-shifted chordal note
+c
+ if (btest(irest(ivx,ip),20)) flgndv(ivx) = rtshfac
+ flgndb = flgndb .or. flgndv(ivx).gt.0.
+ if (ismidi) then
+c
+c For midi, set flags for accidentals on last note of bar. Assume they affect
+c first note of next bar whether or not tied.
+c Note has already been done, so next entry into addmidi is 1st in new bar.
+c First do main note, then chord notes
+c
+c Gyrations needed to account for multi-bar tied full-bar notes?
+cc Old old lbacc(icm) = iand(nacc(ivx,ip),7)
+c New old if (lbacc(icm).eq.0) lbacc(icm) = iand(nacc(ivx,ip),7)
+c
+ if (iand(nacc(ivx,ip),7) .gt. 0) then
+c
+c Explicit accidental on last main note in bar
+c
+ do 55 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolev(ivx,ip)) go to 56
+55 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = nolev(ivx,ip)
+ jaccbl(icm,naccbl(icm)) = iashft(iand(nacc(ivx,ip),7))
+ end if
+56 continue
+ if (btest(ipl(ivx,ip),10) .and. crdacc) then
+ do 57 icrd = icrd1 , icrd2
+ iacc = igetbits(icrdat(icrd),3,20)
+ if (iacc .gt. 0) then
+c
+c Explicit accidental on chord note at end of bar
+c
+ nolevc = igetbits(icrdat(icrd),7,12)
+ do 58 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolevc) go to 59
+58 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = nolevc
+ jaccbl(icm,naccbl(icm)) = iashft(iacc)
+ end if
+59 continue
+57 continue
+ end if
+c if (lbacc(icm).eq.0 .and. accb4(icm)) then
+ do 65 kacc = 1 , naccim(icm)
+c
+c If naccim(icm)>0,
+c possible implicit accidental from earlier in the bar. Check for prior accid
+c in this bar at relevant note levels, main and chord notes. Only act if no
+c explicit action from just above. Assuming any accid on last note in bar,
+c either explicit or implicit, has same effect on 1st note of next bar.
+c
+ if (nolev(ivx,ip) .eq. laccim(icm,kacc)) go to 66
+ if (btest(ipl(ivx,ip),10)) then
+ do 67 icrd = icrd1 , icrd2
+ if (iand(ishft(icrdat(icrd),-12),127) .eq.
+ * laccim(icm,kacc)) go to 66
+67 continue
+ end if
+ go to 65
+66 continue
+c
+c So far we know there is a main or chord note at level laccim(icm,kacc). So
+c it will get a bl-accid if it didn't just already get one.
+c
+ do 68 macc = 1 , naccbl(icm)
+ if (laccbl(icm,macc) .eq. laccim(icm,kacc)) go to 65
+68 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = laccim(icm,kacc)
+ jaccbl(icm,naccbl(icm)) = jaccim(icm,kacc)
+65 continue
+ end if
+ end if
+11 continue
+c
+c Close out the notes group
+c
+ call addstr(sq//'en',3,soutq,lsout)
+ if (islast.and.lsout .gt. 0) write(11,'(a)')soutq(1:lsout)//'%'
+16 continue
+c
+c Check for way-after graces at end of bar. We could not link these to notes
+c as in midbar since there is no note following grace! Also, set flag if
+c hardspace is needed. Also, save nvmx, ivmx for use in space checks on reloop.
+c
+ isgrace = .false.
+ do 75 iv = 1 , nv
+ nvmxsav(iv) = nvmx(iv)
+ do 75 kv = 1 , nvmx(iv)
+ ivmxsav(iv,kv) = ivmx(iv,kv)
+ ivx = ivmx(iv,kv)
+ ptsgnd = 0.
+ if ((btest(ipl(ivx,nn(ivx)),29).or.btest(ipl(ivx,nn(ivx)),31))
+ * .and. ptsndg(ivx).gt.0.) then
+ flgndb = .true.
+ if (ptsndg(ivx) .gt. ptsgnd) then
+ ptsgnd = ptsndg(ivx)
+ eskgnd = eskndg(ivx)
+ end if
+ end if
+ if (btest(ipl(ivx,nn(ivx)),31)) then
+c
+c This voice has a way-after grace here at end of bar
+c
+ if (.not.isgrace) then
+c
+c This is the first one, so set up the string
+c
+ isgrace = .true.
+ ivlast = 1
+ soutq = sq//'znotes'
+ lsout = 7
+ end if
+ do 76 iiv = ivlast , iv-1
+ call addstr(sepsymq(iiv),1,soutq,lsout)
+76 continue
+ ivlast = iv
+c
+c No need to put in 'nextvoice', even if 2 lines/staff
+c
+ call dograce(ivx,nn(ivx),ptgr,soutq,lsout,ncmid(iv,nn(ivx)),
+ * nacc(ivx,nn(ivx)),ig,ipl(ivx,nn(ivx)),.true.,
+ * .false.,0,0,0,0,0,0,0.,ulq)
+ end if
+75 continue
+ if (isgrace) then
+ call addstr(sq//'en%',4,soutq,lsout)
+ if (islast .and. lsout .gt. 0) write(11,'(a)')soutq(1:lsout)
+ end if
+ lsout = 0
+c
+c Write multibar rest. Assuming nv = 1 and do not worry about cwbrest
+c This has to be the only use of atnextbar
+c
+c if (ibar .eq. ibarmbr) then
+ if (ibar.eq.ibarmbr .and. islast) then
+c call addstr(sq//'def'//sq//'atnextbar{'//sq//'znotes'//sq//
+c * 'mbrest{',30,soutq,lsout)
+c ndig = int(alog10(mbrest+.01))+1
+c write(soutq(31:33),'(i'//chax(48+ndig)//')')mbrest
+c lsout = lsout+ndig
+c call addstr('}{',2,soutq,lsout)
+c mtrspc = .5+xb4mbr
+c xb4mbr = 0.
+c if (mtrspc .eq. 0) then
+c ndig = 1
+c else
+c ndig = int(alog10(mtrspc+.01))+1
+c end if
+c write(soutq(lsout+1:lsout+2),'(i'//chax(48+ndig)//')')mtrspc
+c lsout = lsout+ndig
+c call addstr('}0'//sq//'en}%',7,soutq,lsout)
+c if (islast) write(11,'(a)')soutq(1:lsout)
+c lsout = 0
+c ndig = int(alog10(mbrest-1+.01))+1
+c if (mbrest.eq.1) ndig=1
+c if (islast) write(11,'(a14,i'//chax(48+ndig)//',a1)')
+c * sq//'advance'//sq//'barno',mbrest-1,'%'
+c++
+ soutq = sq//'def'//sq//'atnextbar{'//sq//'znotes'
+ lsout = 22
+ notexq = sq//'mbrest'
+ lnote = 7
+ call istring(mbrest,noteq,len)
+ notexq = notexq(1:lnote)//noteq(1:len)
+ lnote = lnote+len
+ mtrspc = .5+xb4mbr
+ xb4mbr = 0.
+ call istring(mtrspc,noteq,len)
+ notexq = notexq(1:lnote)//noteq(1:len)//'0'
+ lnote = lnote+len+1
+ do 62 iv = 1 , nv
+ call addstr(notexq,lnote,soutq,lsout)
+ if (iv .lt. nv) call addstr(sepsymq(iv),1,soutq,lsout)
+62 continue
+ call addstr(sq//'en}%',5,soutq,lsout)
+ write(11,'(a)')soutq(1:lsout)
+ lsout = 0
+ if (mbrest .gt. 1) then
+ ndig = int(alog10(mbrest-1+.01))+1
+ write(11,'(a14,i'//chax(48+ndig)//',a1)')
+ * sq//'advance'//sq//'barno',mbrest-1,'%'
+ end if
+ else if (iscwr) then
+c
+c Centered whole-bar rests
+c
+ call addstr(sq//'def'//sq//'atnextbar{'//sq//'znotes',22,
+ * soutq,lsout)
+ do 60 iv = 1 , nv
+ lnote = 0
+ do 61 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (cwrest(ivx)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'centerbar{'
+ lnote = 11
+ end if
+ if (.not.cwrferm(ivx)) then
+ if (lcwr(ivx).ge.11 .and. cwrq(ivx)(11:11).ne.'p') then
+c
+c Kluge to use new definitions for centered, stacked rests
+c
+ if (cwrq(ivx)(2:10).eq.'liftpause' .or.
+ * cwrq(ivx)(2:10).eq.'liftPAuse')
+ * cwrq(ivx)(10:10) = 'c'
+ end if
+ notexq = notexq(1:lnote)//cwrq(ivx)(1:lcwr(ivx))
+ lnote = lnote+lcwr(ivx)
+ else
+c
+c Fermata on centered rest. Will need to fix up level.
+c 12/6/07 shift it left so it's centered over rest
+c
+c notexq = notexq(1:lnote)
+c * //sq//'fermataup7'//cwrq(ivx)(1:lcwr(ivx))
+c lnote = lnote+11+lcwr(ivx)
+c
+ notexq = notexq(1:lnote)//sq//'loffset{.39}{'
+ * //sq//'fermataup7}'//cwrq(ivx)(1:lcwr(ivx))
+ lnote = lnote+26+lcwr(ivx)
+ cwrferm(ivx) = .false.
+ end if
+ end if
+61 continue
+ if (lnote .gt. 0) call addstr(notexq(1:lnote)//'}',lnote+1,
+ * soutq,lsout)
+ if (iv .ne. nv) call addstr(sepsymq(iv),1,soutq,lsout)
+60 continue
+ call addstr(sq//'en}',4,soutq,lsout)
+ if (islast.and.lsout .gt. 0) write(11,'(a)')soutq(1:lsout)//'%'
+ end if
+c
+c End of block for centered whole-bar rests and multi-bar rests
+c
+c If at end of block, save durations of last notes in bar, for possible use
+c if clef changes at start of next bar
+c
+ if (ibar .eq. nbars) then
+ do 63 iv = 1 , nv
+ do 63 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+c prevtn(ivx) = tnote(iand(ipl(ivx,nn(ivx)),255))
+ prevtn(ivx) = tnote(ipl2(ivx,nn(ivx)))
+63 continue
+ end if
+c
+c Update time for midi. This is only used for the event track
+c
+ if (ismidi) then
+ miditime = miditime+15*lenbar
+c
+c If pickup, write the real time signature to the event track. Cannot use
+c mtrnuml since it was reset to 0, have to recompute it
+c
+ if (lenb0 .eq. lenbar)
+ * call midievent('m',mtrdenl*lenb1/64,mtrdenl)
+ end if
+ return
+ end
+ subroutine makeabar()
+c
+c On input, have pseudo-durations in nodur(ivx,ip). Not real durations for
+c xtups, since only last note of xtup gets non-zero nodur, which
+c corresponds to single note of full length of xtup.
+c In this subroutine we make an ordered list of all notes in all voices.
+c ilnc = list note counter
+c ivxo(ilnc), ipo(ilnc) = voice# and position in voice of ilnc-th note.
+c to(ilnc) = real start time of note in PMX-units (64=whole note)
+c tno(ilnc) = time to next event in the bar.
+c tnote(ilnc) = actual duration of note
+c Then run thru list, grouping consecutive notes into \notes groups ib.
+c space(ib) = real time unit for the \notes group
+c squez(ib) = factor on space to get effective space. This will be 1 if
+c there is a note exactly spanning each interval of space, and
+c <1 if not.
+c Details: let eon = elemskips per noteskip (like length). Basic formula is
+c eon = sqrt(space/2.)
+c If tgovern >= space, then
+c eon = sqrt(tgovern/2)*(space/tgovern) = space/sqrt(2*tgovern).
+c Time needed to give this eon using basic formula is
+c teq = space**2/tgovern
+c Factor on space to get teq is
+c squez(ib) = space/tgovern
+c The eon for each ib can then be computed based on time of space*squez.
+c Iff squez = 1, there is a note spanning every increment in the \notes group.
+c
+c tnminb = minimum time span in the bar for increments spanned by notes,
+c i.e., with squez=1. Use after parsing into line to decide if
+c spacing needs to be "flattened" among notes groups.
+c
+ common /comtol/ tol
+ parameter (nm=24,nkb=3999,maxblks=4000)
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * nbars,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ common /linecom/ elskb,tnminb(nkb)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ logical rest,firstline,newmeter,gotclef
+ integer cnn(nm),istart(80),istop(80)
+ real*4 xit(nm),space(80),tstart(80),squez(80),tnote(600)
+ elskb = 0.
+ tnminb(ibarcnt) = 1000.
+ do 1 iv = 1 , nv
+ do 1 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (ibar .gt. 1) then
+ nn(ivx) = nib(ivx,ibar)-nib(ivx,ibar-1)
+ else
+ nn(ivx) = nib(ivx,ibar)
+ end if
+1 continue
+c
+c initialize list note counter, time(iv), curr. note(iv)
+c
+ ilnc = 1
+ do 4 iv = 1 , nv
+ do 4 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cnn(ivx) = 1
+ ivxo(ilnc) = ivx
+ ipo(ilnc) = 1
+ to(ilnc) = 0.
+ tnote(ilnc) = fnote(nodur,ivx,1,nacc)
+ xit(ivx) = tnote(ilnc)
+ if (abs(xit(ivx)-lenbar).lt.tol) xit(ivx) = 1000.
+ ilnc = ilnc+1
+4 continue
+c
+c Build the list
+c
+5 continue
+c
+c Determine which voice comes next from end of notes done so far.
+c tmin is the earliest ending time of notes done so far
+c
+ tmin = 1000.
+ do 6 iv = 1 , nv
+ do 6 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ tminn = min(tmin,xit(ivx))
+ if(tminn .lt. tmin) then
+ tmin = tminn
+ ivnext = ivx
+ end if
+6 continue
+ if (tmin .gt. 999.) go to 7
+ ivxo(ilnc) = ivnext
+ cnn(ivnext) = cnn(ivnext)+1
+ ipo(ilnc) = cnn(ivnext)
+ to(ilnc) = tmin
+c
+c Check if this voice is done
+c
+ tnote(ilnc) = fnote(nodur,ivnext,cnn(ivnext),nacc)
+ if (cnn(ivnext) .eq. nn(ivnext)) then
+ xit(ivnext) = 1000.
+ else
+ xit(ivnext) = xit(ivnext)+tnote(ilnc)
+ end if
+ ilnc = ilnc+1
+ go to 5
+7 continue
+ ntot = ilnc-1
+ if (ntot .gt. 600) then
+ call printl(' ')
+ call printl('Cannot have more than 600 notes per bar, stopping')
+ call stop1()
+ end if
+ do 8 in = 1 , ntot-1
+ tno(in) = to(in+1)-to(in)
+8 continue
+ tno(ntot) = fnote(nodur,ivxo(ntot),ipo(ntot),nacc)
+ tnote(ntot) = tno(ntot)
+c
+c Debug writes
+c
+c write(*,'()')
+c write(*,'(16i5)')(ivxo(in),in=1,ntot)
+c write(*,'(16i5)')(ipo(in),in=1,ntot)
+c write(*,'(16f5.1)')(to(in),in=1,ntot)
+c write(*,'(16f5.1)')(tno(in),in=1,ntot)
+c write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot)
+c write(*,'(16f5.1)')(tnote(in),in=1,ntot)
+c
+c Done w/ list. Initialize loop for building note blocks:
+c
+ ib = 1
+ istart(1) = 1
+ space(1) = 0.
+ in = 1
+c
+c Start the loop
+c
+9 continue
+ if (in .eq. ntot) then
+ if (space(ib) .lt. tol) then
+ space(ib) = tno(in)
+c
+c Last gap in bar is spanned by a note, so cannot need a squeeze.
+c
+ squez(ib) = 1.
+ end if
+ istop(ib) = ntot
+c
+c From here flow out of this if block and into block-setup
+c
+ else if (space(ib) .lt. tol) then
+c
+c space hasn't been set yet, so tentatively set:
+c
+ space(ib) = tno(in)
+ if (space(ib) .lt. tol) then
+ in=in+1
+ else
+c
+c Tentative space tno(in) is non-zero. Set squez, which will be kept (since
+c it is a unique property of the particular increment starting here) :
+c
+ squez(ib) = getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ end if
+ go to 9
+ else if (tno(in+1) .lt. tol) then
+c
+c This is not the last note in the space, so
+c
+ in = in+1
+ go to 9
+ else if (abs(tno(in+1)-space(ib)) .lt. tol) then
+c
+c Next increment has same space. Does it have same squez?
+c
+ xsquez = getsquez(in+1,ntot,space(ib),tnote,to)
+c
+c If it does have the same squez, loop, otherwise flow out
+c
+ if (abs(xsquez-squez(ib)) .lt. tol) then
+c
+c Keep spacing the same, update tentative stop point
+c
+ in = in+1
+ istop(ib) = in
+ go to 9
+ end if
+ end if
+c
+c At this point istart, istop, space, and squez are good, so close out block
+c
+ tstart(ib) = to(istart(ib))
+c
+c Compute elemskips assuming no flattening to increase min space. The formula
+c is only correct if f1eon(t) = sqrt(t/2); more generally (after possible
+c flattening in pmxb), elsperns = squez*feon(space/squez)
+c
+ elsperns = f1eon(space(ib)*squez(ib))
+ if (istop(ib) .eq. ntot) then
+ nnsk = nint((lenbar-tstart(ib))/space(ib))
+ else
+ nnsk = nint((to(istop(ib)+1)-tstart(ib))/space(ib))
+ end if
+ elskb = elskb+elsperns*nnsk
+ if (nptr(ibarcnt+1) .gt. nptr(ibarcnt)) then
+ call catspace(space(ib),squez(ib),nnsk)
+ else
+c
+c This is the first entry for this bar
+c
+ nnpd(nptr(ibarcnt)) = nnsk
+ durb(nptr(ibarcnt)) = space(ib)
+ sqzb(nptr(ibarcnt)) = squez(ib)
+ nptr(ibarcnt+1) = nptr(ibarcnt+1)+1
+ end if
+c
+c Update minimum space spanned by a note
+c
+ if (abs(squez(ib)-1) .lt. tol)
+ * tnminb(ibarcnt) = min(tnminb(ibarcnt),space(ib))
+ if (istop(ib) .eq. ntot) go to 15
+c
+c End of spatial accounting for now
+c
+ ib = ib+1
+ istart(ib) = istop(ib-1)+1
+ in = istart(ib)
+c
+c Set tentative block space for new block
+c
+ space(ib) = tno(in)
+ if (space(ib).gt.tol)
+ * squez(ib)= getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ go to 9
+15 continue
+c nb = ib
+c
+c Debug writes
+c
+c write(*,'(16i5)')(istart(ib),ib=1,nb)
+c write(*,'(16i5)')(istop(ib),ib=1,nb)
+c write(*,'(16f5.1)')(space(ib),ib=1,nb)
+c write(*,'(16f5.1)')(squez(ib),ib=1,nb)
+c
+ return
+ end
+ subroutine midievent(typeq,in1,in2)
+c
+c We now store "conductor" events in mmidi(numchan,.), and count bytes
+c with imidi(numchan)
+c
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comevent/ miditime,lasttime
+ character*1 typeq
+ idur = isetvarlen(miditime-lasttime,nbytes)
+ imidi(numchan) = imidi(numchan)+nbytes+1
+ do 1 i = 1 , nbytes
+ mmidi(numchan,imidi(numchan)-i) = mod(idur,256)
+ idur = ishft(idur,-8)
+1 continue
+ mmidi(numchan,imidi(numchan)) = 255
+ if (typeq .eq. 't') then
+c
+c Tempo event. in1 = quarters per minute (integer)
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+1
+ mmidi(numchan,imidi(numchan)+2) = 3
+ misperq = nint(60000000./in1)
+ do 2 i = 1 , 3
+ mmidi(numchan,imidi(numchan)+6-i) = mod(misperq,256)
+ misperq = ishft(misperq,-8)
+2 continue
+ imidi(numchan) = imidi(numchan)+5
+ else if (typeq .eq. 'm') then
+c
+c Meter event. in1=numerator, in2=denom (power of 2)
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+8
+ mmidi(numchan,imidi(numchan)+2) = 4
+ mmidi(numchan,imidi(numchan)+3) = in1
+ if (in2 .gt. 0) then
+ mmidi(numchan,imidi(numchan)+4) = log2(in2)
+ else
+ mmidi(numchan,imidi(numchan)+4) = 0
+ end if
+ mmidi(numchan,imidi(numchan)+5) = 24
+ mmidi(numchan,imidi(numchan)+6) = 8
+ imidi(numchan) = imidi(numchan)+6
+ else if (typeq .eq. 'k') then
+c
+c Keychange event. in1 = isig
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+9
+ mmidi(numchan,imidi(numchan)+2) = 2
+ mmidi(numchan,imidi(numchan)+3) = mod(256+in1,256)
+ mmidi(numchan,imidi(numchan)+4) = 0
+ imidi(numchan) = imidi(numchan)+4
+ else
+ print*,'Program flameout in midievent'
+ call stop1()
+ end if
+ lasttime = miditime
+ return
+ end
+ subroutine moveln(iuin,iuout,done)
+ logical done
+ character*129 outq
+ done = .false.
+ read(iuin,'(a)',end=1) outq
+ lenout = llen(outq,129)
+ write(iuout,'(a)') outq(1:lenout)
+ return
+1 done = .true.
+ return
+ end
+ subroutine mrec1(lineq,iccount,ndxm)
+c
+c This is called when (a) macro recording is just starting and
+c (b) at the start of a new line, if recording is on
+c
+ parameter (maxblks=4000)
+ character*128 lineq,lnholdq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ if (.not.mrecord) then
+c
+c Starting the macro
+c
+ ip1mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount
+ il1mac(macnum) = ilbuf-1
+ ic1mac(macnum) = iccount
+ mrecord = .true.
+ end if
+ if (iccount .lt. 128) then
+ ndxm = index(lineq(iccount+1:128),'M')
+ if (ndxm .gt. 0) ndxm = ntindex(lineq(iccount+1:128),'M',
+ * 128-iccount)
+ if (ndxm .gt. 0) then
+c
+c This line ends the macro.
+c
+ ip2mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount+ndxm
+ il2mac(macnum) = ilbuf-1
+ mrecord = .false.
+ end if
+ end if
+ return
+ end
+ function ncmid(iv,ip)
+ parameter (nm=24)
+ common /all/ mult(nm,200),jv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ if (ncc(iv) .eq. 1) then
+ ncmid = ncmidcc(iv,1)
+ else
+ xtime = to(ipl2(ivx,ip))
+ do 1 icc = ncc(iv) , 1 , -1
+ if (xtime .gt. tcc(iv,icc)-tol) then
+ ncmid = ncmidcc(iv,icc)
+ return
+ end if
+1 continue
+ print*,'Problem in ncmid()'
+ stop
+ end if
+ end
+ function ncmidf(clefq)
+c
+c Return middle line of a clef
+c
+ character*1 clefq
+c if (clefq.eq.'t' .or. clefq.eq.'0') then
+c ncmidf = 35
+c else if (clefq.eq.'s' .or. clefq.eq.'1') then
+c ncmidf = 33
+c else if (clefq.eq.'m' .or. clefq.eq.'2') then
+c ncmidf = 31
+c else if (clefq.eq.'a' .or. clefq.eq.'3') then
+c ncmidf = 29
+c else if (clefq.eq.'n' .or. clefq.eq.'4') then
+c ncmidf = 27
+c else if (clefq.eq.'r' .or. clefq.eq.'5') then
+c ncmidf = 25
+c else if (clefq.eq.'f' .or. clefq.eq.'7') then
+c ncmidf = 37
+c else
+c ncmidf = 23
+c end if
+ ncmidf = 21+index(' b6r5n4a3m2s1t0f7',clefq)/2*2
+ return
+ end
+ subroutine newvoice(jv,clefq,change)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ character*1 ulfbq,clefq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ logical change,autofbon
+ nvmx(jv) = 1
+ ivmx(jv,1) = jv
+ itsofar(jv) = 0
+ nnl(jv) = 0
+ nfb(jv) = 0
+ if (firstgulp .or. change) then
+ ncmidcc(jv,1) = ncmidf(clefq)
+ else
+ ncmidcc(jv,1) = ncmidcc(jv,ncc(jv))
+ end if
+ tcc(jv,1) = 0.
+ ncc(jv) = 1
+ nudoff(jv) = 0
+ ndotmv(jv) = 0
+ do 5 j = 1 , 200
+ irest(jv,j) = 0
+ islur(jv,j) = 0
+ ipl(jv,j) = 0
+ nacc(jv,j) = 0
+ iornq(jv,j) = 0
+ mult(jv,j) = 0
+ if (jv.le.2) isfig(jv,j) = .false.
+5 continue
+ return
+ end
+ subroutine notefq(noteq,lnote,nolev,ncmid)
+c
+c Returns name of note level with octave transpositions, updates noctup.
+c
+ common /comoct/ noctup
+ character*8 noteq
+ character*1 upcaseq,noteqt,chax
+ nupfroma = mod(nolev+1,7)
+ iname = 97+nupfroma
+ ioctup = (nolev+1)/7-4
+ noteqt = chax(iname)
+ if (ncmid .eq. 23) noteqt = upcaseq(noteqt)
+ if (ioctup .eq. noctup) then
+ noteq = noteqt
+ lnote = 1
+c
+c Must ALWAYS check if lnote=1 for use with functions requiring a blank
+c
+ else if (ioctup .gt. noctup) then
+c
+c Raise octave. Encase in {}
+c
+ write(noteq,'(8a1)')'{',(chax(39),i=noctup,ioctup-1),
+ * noteqt,'}'
+ lnote = 3+ioctup-noctup
+ noctup = ioctup
+ else
+c
+c Lower octave
+c
+ write(noteq,'(8a1)')'{',(chax(96),i=ioctup,noctup-1),
+ * noteqt,'}'
+ lnote = 3+noctup-ioctup
+ noctup = ioctup
+ end if
+ return
+ end
+ subroutine notex(notexq,lnote)
+c
+c Returns non-beamed full note name
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,ispoi,btest,even
+ character*1 udq,udqq,chax
+ character*4 dotq
+ character*2 numq
+ character*79 notexq
+ character*8 noteq
+ character*40 restq
+ common /compoi/ ispoi
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figq
+ ip = ipo(jn)
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ nodu = nodur(ivx,ip)
+ if (.not.btest(irest(ivx,ip),0)) then
+ udq = udqq(nole,ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),ivx,nv)
+ end if
+c
+c Check figure level
+c
+c if (figbass .and. isfig(ivx,ip)
+c * .and. .not.btest(irest(ivx,ip),0)) then
+ if (figbass .and. .not.btest(irest(ivx,ip),0) .and.
+ * ((ivx.eq.1.and.isfig(1,ip))
+ * .or.(ivx.eq.ivxfig2.and.isfig(2,ip)))) then
+ if (udq .eq. 'u' .or. nodu.ge.64) then
+c
+c Upper or no stem, fnole (in noleunits) set by notehead
+c
+ fnole = nole
+ else
+c
+c Lower stem, fnole set by bottom of stem
+c
+ fnole = nole-stemlen
+ end if
+ zmin = fnole-ncmid(ivx,ip)+4
+ if (ivx .eq. 1) then
+ ifigdr(1,iline) = max(ifigdr(1,iline),nint(4-zmin))
+ else
+ ifigdr(2,iline) = max(ifigdr(2,iline),nint(4-zmin))
+ end if
+ end if
+ if (.not.btest(irest(ivx,ip),0)) then
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ if (nodu .eq. 1) then
+ notexq =sq//'cccc'//udq//noteq(1:lnoten)
+ lnote = lnoten+6
+ else if (nodu .eq. 2) then
+ notexq =sq//'ccc'//udq//noteq(1:lnoten)
+ lnote = lnoten+5
+ else if (nodu .eq. 4) then
+ notexq =sq//'cc'//udq//noteq(1:lnoten)
+ lnote = lnoten+4
+ else if (nodu .eq. 8) then
+ notexq =sq//'c'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 16) then
+ notexq =sq//'q'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 32) then
+ notexq =sq//'h'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 64) then
+ notexq =sq//'wh'//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 128) then
+c notexq =sq//'zbreve'//noteq(1:lnoten)//sq//'sk'
+c lnote = lnoten+10
+ notexq =sq//'breve'//noteq(1:lnoten)
+ lnote = lnoten+6
+ else
+ dotq = 'p'
+ ldot = 1
+ if (btest(iornq(ivx,ip),13)) then
+c
+c Dotted note with ')' ornament
+c
+ dotq='m'
+ else if (btest(islur(ivx,ip),3)) then
+c
+c Double dot
+c
+ dotq = 'pp'
+ ldot = 2
+ end if
+ if (nodu .ge. 192) then
+ notexq =sq//'breve'//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+6+ldot
+ else if (nodu .ge. 96) then
+ notexq =sq//'wh'//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 48) then
+ notexq =sq//'h'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 24) then
+ notexq =sq//'q'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 12) then
+ notexq =sq//'c'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 6) then
+ notexq =sq//'cc'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+4+ldot
+ ispoi = .true.
+ else
+ notexq =sq//'ccc'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+5+ldot
+ ispoi = .true.
+ end if
+ if (dotq(1:1) .eq. 'm') then
+c
+c Need another call to the note, in case the first one has octave shifts
+c
+ if (lnoten .eq. 2) then
+ notexq = notexq(1:lnote)//'{'//noteq(2:2)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ end if
+ else if (btest(islur(ivx,ip),29)) then
+c
+c Blank rest
+c
+ notexq = sq//'sk'
+ lnote = 3
+ else
+c
+c Non-blank rest
+c
+ lnote = 0
+ nole = mod(nole+20,100)-20
+c
+c Kluge to get pause symbol for rp:
+c
+ if (btest(islur(ivx,ip),19)) nodu = 64
+ if (nodu .le. 28) then
+c
+c Normal rest < or = double-dotted quarter
+c
+ lrest = 3
+ if (nodu .gt. 14) then
+ restq =sq//'qp'
+ else if (nodu .gt. 7) then
+ restq =sq//'ds'
+ else if (nodu .gt. 3) then
+ restq =sq//'qs'
+ else if (nodu .gt. 1) then
+ restq =sq//'hs'
+ else
+ restq =sq//'qqs'
+ lrest = 4
+ end if
+c if (2**log2(nodu) .ne. nodu) then
+cc
+cc One or two dots on rest
+cc
+c restq = restq(1:3)//'p'
+c lrest = 4
+c if (2*nodu .gt. 3*2**log2(nodu)) then
+cc
+cc Double dotted rest
+cc
+c restq = restq(1:4)//'p'
+c lrest = 5
+c end if
+c end if
+ notexq = restq
+ lnote = lrest
+c
+c At this point notexq=restq,lnote=lrest are name of rest. Now raise if necc.
+c
+ if (nole .ne. 0) then
+ if (abs(nole) .lt. 10) then
+ noteq = chax(48+abs(nole))
+ lnoten = 1
+ else
+ write(noteq(1:2),'(i2)')abs(nole)
+ lnoten = 2
+ end if
+ if (nole .gt. 0) then
+ notexq = sq//'raise'//noteq(1:lnoten)//sq//'internote'
+ else
+ notexq = sq//'lower'//noteq(1:lnoten)//sq//'internote'
+ end if
+ lnote = 16+lnoten
+c if (2**log2(nodu) .ne. nodu) then
+cc
+cc Have dot in raised rest. must put in hbox!
+cc
+c notexq = notexq(1:lnote)//sq//'hbox{'
+c lnote = lnote+6
+c end if
+ notexq = notexq(1:lnote)//restq(1:lrest)
+ lnote = lnote+lrest
+c if (2**log2(nodu) .ne. nodu) then
+c notexq = notexq(1:lnote)//'}'
+c lnote = lnote+1
+c end if
+ end if
+ if (2**log2(nodu) .ne. nodu) then
+c
+c Deal with dots (on rests shorter than half rest)
+c
+ restq = sq//'pt'
+ lrest = 3
+ if (2*nodu .gt. 3*2**log2(nodu)) then
+ restq = sq//'ppt'
+ lrest = 4
+ end if
+ nole = nole+4
+ raisedot = 0
+c
+c Tweak dot positions for special cases
+c
+ even = (mod(100+nole,2).eq.0)
+c if (.not.even.and.nodu.gt.8.and.
+c * (nole.lt.0.or.nole.gt.8)) then
+ if (.not.even .and. (nole.lt.0.or.nole.gt.8)) then
+ raisedot = 1
+ end if
+ if (nole.ge.10 .or. nole.le.-1) then
+ write(numq,'(i2)')nole
+ restq = restq(1:lrest)//'{'//numq//'}'
+ lrest = lrest+4
+ else
+ restq = restq(1:lrest)//chax(nole+48)
+ lrest = lrest+1
+ end if
+ if (raisedot.gt.0) then
+ restq = sq//'raise'//sq//'internote'//
+ * sq//'hbox{'//restq(1:lrest)//'}'
+ lrest = lrest+23
+ end if
+
+
+
+ notexq = restq(1:lrest)//notexq(1:lnote)
+ lnote = lnote+lrest
+ end if
+ else
+c
+c Half rest or longer
+c
+ if (nole .eq. 0) then
+c
+c Half or longer rest is not raised or lowered
+c
+ if (nodu .le. 56) then
+ notexq =sq//'hpause'
+ lnote = 7
+ else if (nodu .le. 112) then
+ if (.not.btest(islur(ivx,ip),19) .or.
+ * btest(irest(ivx,ip),25)) then
+ notexq = sq//'pause'
+ else
+ notexq = sq//'pausc'
+ end if
+ lnote = 6
+ else
+ notexq =sq//'PAuse'
+ lnote = 6
+ end if
+ if (2**log2(nodu) .ne. nodu) then
+c
+c Dotted rest, hpause or longer
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ if (2*nodu .gt. 3*2**log2(nodu)) then
+c
+c Double dotted long rest
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+ end if
+ else
+c
+c Raised or lowered half or whole rest
+c
+ if (nodu .eq. 32) then
+ notexq = sq//'lifthpause'
+ lnote = 11
+ else if (nodu .eq. 48) then
+ notexq = sq//'lifthpausep'
+ lnote = 12
+ else if (nodu .eq. 56) then
+ notexq = sq//'lifthpausepp'
+ lnote = 13
+ else if (nodu .eq. 64) then
+ notexq = sq//'liftpause'
+ lnote = 10
+ else if (nodu .eq. 96) then
+ notexq = sq//'liftpausep'
+ lnote = 11
+ else if (nodu .eq. 112) then
+ notexq = sq//'liftpausepp'
+ lnote = 12
+ else if (nodu .eq. 128) then
+ notexq = sq//'liftPAuse'
+ lnote = 10
+ else
+c
+c Assume dotted double whole rest
+c
+ notexq = sq//'liftPAusep'
+ lnote = 11
+ end if
+c
+c Set up height spec
+c
+ nole = sign(abs(nole)/2,nole)
+ if (nole.le.9 .and. nole.ge.0) then
+ noteq = chax(48+nole)
+ lnoten = 1
+ else
+ noteq = '{'
+ if (nole .ge. -9) then
+ write(noteq(2:3),'(i2)')nole
+ lnoten = 3
+ else
+ write(noteq(2:4),'(i3)')nole
+ lnoten = 4
+ end if
+ noteq = noteq(1:lnoten)//'}'
+ lnoten = lnoten+1
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ end if
+ end if
+ end if
+ return
+ end
+ function ntindex(line,s2q,lenline)
+c
+c Returns index(line,s2q) if NOT in TeX string, 0 otherwise
+c
+ character*(*) s2q,line
+ character*1 chax
+ logical intex
+ ndxs2 = index(line,s2q)
+ ndxbs = index(line,chax(92))
+ if (ndxbs.eq.0 .or. ndxs2.lt.ndxbs) then
+ ntindex = ndxs2
+ else
+c
+c There are both bs and s2q, and bs is to the left of sq2. So check bs's to
+c right of first: End is '\ ', start is ' \'
+c
+ len = lenstr(line,lenline)
+ intex = .true.
+ do 1 ic = ndxbs+1 , len
+ if (ic .eq. ndxs2) then
+ if (intex) then
+ ntindex = 0
+ ndxs2 = index(line(ic+1:len),s2q)+ic
+ else
+ ntindex = ndxs2
+ return
+ end if
+ else if (intex .and. line(ic+1:ic+2).eq.chax(92)//' ') then
+ intex = .false.
+ else if (.not.intex .and. line(ic+1:ic+2).eq.' '//chax(92))
+ * then
+ intex = .true.
+ end if
+1 continue
+ end if
+ return
+ end
+ subroutine ntrbbb(n,char1q,ulqq,iv,notexq,lnote)
+c
+c This appends to notexq e.g. '\ibbbu1'
+c
+ common /combbm/ isbbm
+ logical isbbm
+ character*79 notexq
+ character*1 char1q,ulqq,chax
+ character*4 tempq
+ if (n .ge. 5) isbbm = .true.
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//chax(92)//char1q
+ else
+ notexq = chax(92)//char1q
+ end if
+ lnote = lnote+2
+ do 3 im = 1 , n
+ notexq = notexq(1:lnote)//'b'
+ lnote = lnote+1
+3 continue
+c
+c add the number, 0 if 12
+c
+c 5/25/08 Allow >12
+c
+c call istring(mod(iv,12),tempq,len)
+ if (iv .lt. 24) then
+ call istring(iv,tempq,len)
+ else if (iv .eq. 24) then
+ tempq(1:1) = '0'
+ len = 1
+ else
+ call printl('Sorry, too man open beams')
+ call stop1()
+ end if
+ notexq = notexq(1:lnote)//ulqq//tempq(1:len)
+ lnote = lnote+1+len
+ return
+ end
+ function numclef(clefq)
+c
+c Returns the number to be used as argument of \setclef (for MusiXTeX only)
+ character*1 clefq
+c if (ichar(clefq) .lt. 55) then
+ if (ichar(clefq) .le. 55) then
+ numclef = ichar(clefq)-48
+ if (numclef .eq. 7) numclef = 9
+ else
+ numclef = index('tsmanrbxxf',clefq)-1
+ end if
+ return
+ end
+ subroutine outbar(i,jlast)
+ character*1 chax
+ nfmt = log10(i+.5)+2
+ if (jlast+5+nfmt .lt. 80) then
+ write(*,'(a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ write(15,'(a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ jlast = jlast+5+nfmt
+ else
+ write(*,'(/,a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ write(15,'(/,a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ jlast = 5+nfmt
+ end if
+ return
+ end
+ subroutine pmxa(basenameq,lbase,isfirst,nsyout,nbarss,optimize)
+cccccccccccccccccccccccccccccccccccccccccccccccc
+cc cc
+cc Subroutine, combine with pmxb.for
+cc
+cccccccccccccccccccccccccccccccccccccccccccccccc
+cc
+cc Need to consider X spaces in xtuplets when getting poenom, and
+cc maybe fbar?
+cc mx06a
+cc ID numbers for voices when number of voices is reduced.
+cc
+cc mx03a
+cc account for new fracindent for new movements.
+cc
+cc Known changes since pmxa. Version 1.1b (see pmxb for longer list)
+cc
+cc Check ID codes for slurs.
+cc Version 1.24 still does not have details for spacing/positioning
+cc arpeggios if there are accidentals or shifted notes or crowded scores.
+cc Fix problem in 1.22 with arpeggios across multi-line staves
+cc Fix problem in 1.22 with flat key signatures
+cc Read setup data as strings
+cc Warning for octave designation plus +/-
+cc Don't pause for volta warning,
+cc Macros
+cc Correct fsyst to account for transposition and key changes.
+cc Check for nbars > nsyst
+cc
+ccccccccccccccccccccccccccccccccccc
+ parameter (nm=24,nkb=3999,nks=125,maxblks=4000)
+ logical loop,usefig,isfirst,optimize
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ integer nn(nm),nodur(nm,200),ivxo(600),ipo(600),
+ * nnl(nm),itsofar(nm),nib(nm,15),lastbar(0:nks),nbarss(nks)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /compage/ widthpt,ptheight,hoffpt,voffpt,
+ * nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idsig,isig1,
+ * mbrestsav,kchmid(18),ornrpt,shifton,barend,noinst,stickyS
+ real*4 elsk(nkb),celsk(0:nkb),elss(nks),to(600),tno(600)
+ character*128 lnholdq
+ character*44 basenameq
+ logical rest(nm,200),firstline,fbon,isvolt,iskchb,kchmid,ornrpt,
+ * stickyS
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,newmeter,newmb(nkb),issegno,bottreb,isheadr,
+ * shifton,barend
+ common /a1ll/ iv,ivxo,ipo,to,tno,nnl,nv,ibar,mtrnuml,
+ * nodur,lenbar,iccount,nbars,itsofar,nib,nn,
+ * rest,lenbr0,lenbr1,firstline,newmeter
+ common /linecom/ elskb,tnminb(nkb)
+ common /cblock/
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inhnoh
+ common /cominbot/ inbothd
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /commus/ musize,whead20
+ common /comeon/ eonk,ewmxk
+ logical mrecord,mplay,endmac,gotclef,cstuplet
+ logical novshrinktop,upslur,fontslur,WrotePsslurDefaults
+ common /comnvst/ novshrinktop,cstuplte
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ logical fulltrans
+ data wtimesig,wclef,wkeysig
+ * / 0.72 , 0.8 , 0.28 /
+ whead20 = 0.3
+ if (.not.optimize) then
+ print*
+ print*,'Starting first PMX pass'
+ write(15,'(a)') ' Starting first PMX pass'
+ end if
+ if (isfirst) then
+ open(19,file='pmxaerr.dat')
+ write(19,'(i6)') 0
+ close(19)
+ end if
+ if (.not.optimize) jprntb = 81
+ macuse = 0
+ ornrpt = .false.
+ stickyS = .false.
+ mrecord = .false.
+ mplay = .false.
+ lastchar = .false.
+ novshrinktop = .false.
+ cstuplet = .false.
+ fontslur = .true.
+ isligfont = .false.
+ fulltrans = .false.
+ do 42 ibarcnt = 1 , nkb
+ udsp(ibarcnt) = 0.
+ wminnh(ibarcnt) = -1.
+42 continue
+c
+c Initialize input buffer
+c
+ lenbuf0 = ipbuf
+ ipbuf = 0
+ ilbuf = 1
+ call g1etset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,newkey(1),npages,nsyst,musize,bottreb)
+c
+c Set up list of instrument numbers (iv)
+c
+ ivnow = 0
+ do 13 instnow = 1 , noinst
+ do 14 iscount = 1 , nsperi(instnow)
+ ivnow = ivnow+1
+ instno(ivnow) = instnow
+14 continue
+13 continue
+c
+c Save initial meter for midi
+c
+ if (.not.isfirst .and. npages.eq.0) then
+ print*,'Sorry, must have npages>0 for optimization.'
+ call stop1()
+ end if
+ nsyout = nsyst
+c
+c isig1 will be changed in getnote if there is a transposition
+c
+ isig1 = newkey(1)
+ if (npages .gt. nsyst) then
+ call printl('npages > nsyst in input. Please fix the input.')
+ call stop1()
+ end if
+c
+c fbar = afterruleskip/elemskip
+c apt = width of small accidental + space in points (= 6 at 20pt) =wheadpt
+c
+ fbar = 1.
+ wheadpt = whead20*musize
+ ifig = 0
+ usefig = .true.
+ lenbeat = i1fnodur(mtrdenl,'x')
+ lenmult = 1
+ if (mtrdenl .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbr1 = lenmult*mtrnuml*lenbeat
+ lenbr0 = nint(lenmult*xmtrnum0*lenbeat)
+ mtrnuml = 0
+ if (lenbr0 .ne. 0) then
+ ibaroff = 1
+ lenbar = lenbr0
+ else
+ ibaroff = 0
+ lenbar = lenbr1
+ end if
+ ibarcnt = 0
+ nptr(1) = 1
+ iccount = 128
+ nmovbrk = 0
+ nflb = 0
+ nfpb = 0
+ ipagfpb(0) = 1
+ isysfpb(0) = 1
+ ibarflb(0) = 1
+ isysflb(0) = 1
+ nistaff(0) = nv-1
+c
+c Check for pmx.mod
+c
+ linesinpmxmod = 0
+c line1pmxmod = ilbuf
+ call getpmxmod(.true.,' ')
+ if (.not.isfirst .and. linesinpmxmod .gt. 0) then
+ print*,'Sorry, cannot optimize if there is a pmx.mod file'
+ call stop1()
+ end if
+c
+c Initialize for loop over lines
+c
+ nkeys = 1
+ ibrkch(1) = 1
+ mbrestsav = 0
+ shifton = .false.
+ firstline = .true.
+ newmeter = .false.
+ ihead = 0
+ isheadr = .false.
+ gotclef = .false.
+ idsig = 0
+ iddot = 0
+ fintstf = -1.
+ gintstf = 1.0
+ listcresc = 0
+ listdecresc = 0
+30 loop = .true.
+ iskchb = .false.
+ issegno = .false.
+ nbars = 0
+ ibarmbr = 0
+3 do 4 iv = 1 , nv
+ nvmx(iv) = 1
+ ivmx(iv,1) = iv
+ itsofar(iv) = 0
+ nnl(iv) = 0
+ do 5 j = 1 , 200
+ rest(iv,j) = .false.
+ nacc(iv,j) = 0.
+5 continue
+4 continue
+ iv = 1
+ ivx = 1
+ fbon = .false.
+ barend = .false.
+ isvolt = .false.
+2 if (loop) then
+c
+c Within this short loop, nv voices are filled up for the duration of a block.
+c On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv)
+c nodur(..),rest(..). nnl will later be
+c increased and things slid around as accidental skips are added.
+c
+ call g1etnote(loop,ifig,optimize,fulltrans)
+ if (lastchar) go to 20
+ go to 2
+ end if
+ if (mbrestsav .gt. 0) then
+ call printl(' ')
+ call printl(
+ * 'You must enter the same multibar rest in ALL parts')
+ call stop1()
+ end if
+ do 10 ibar = 1 , nbars
+ ibarcnt = ibarcnt+1
+c
+c The following is just a signal to start a new bar when cataloging spaces
+c for catspace(...)
+c
+ nptr(ibarcnt+1) = nptr(ibarcnt)
+ newmb(ibarcnt) = .false.
+ if (newmeter.and.ibar.eq.1) newmb(ibarcnt) = .true.
+c
+c Above is only for spacing calcs later on. Remember new meter can only occur
+c at START of a new input line (ibar = 1)
+c
+ if (ibar .ne. ibarmbr) then
+ if (.not.optimize) call outbar(ibarcnt-ibaroff,jprntb)
+ else
+ if (.not.optimize) then
+ write(15,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt-ibaroff,'-',ibarcnt-ibaroff+mbrest-1
+ write(*,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt-ibaroff,'-',ibarcnt-ibaroff+mbrest-1
+ jprntb = 0
+ end if
+ ibaroff = ibaroff-mbrest+1
+ end if
+ if (firstline .and. lenbr0.ne.0) then
+ if (ibar .eq. 1) then
+ lenbar = lenbr0
+ else
+ lenbar = lenbr1
+ end if
+ end if
+ if (ibar .gt. 1) then
+c
+c For bars after first, slide all stuff down to beginning of arrays
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ioff = nib(ivx,ibar-1)
+ do 12 ip = 1 , nib(ivx,ibar)-ioff
+ nodur(ivx,ip) = nodur(ivx,ip+ioff)
+ rest(ivx,ip) = rest(ivx,ip+ioff)
+ nacc(ivx,ip) = nacc(ivx,ip+ioff)
+12 continue
+11 continue
+ end if
+ do 67 iv = 1 , nv
+ do 67 kv = 1 , nvmx(iv)
+ ioff= 0
+ if(ibar.gt.1)ioff = nib(ivmx(iv,kv),ibar-1)
+67 continue
+ call makeabar()
+ elsk(ibarcnt) = elskb+fbar
+10 continue
+ newmeter = .false.
+ firstline = .false.
+ go to 30
+20 continue
+c
+c Vertical analysis.
+c
+ if (npages .eq. 0) then
+ if (nsyst .eq. 0) then
+ print*,'When npages=0, must set nsyst=bars/syst, not 0'
+ call stop1()
+ end if
+ nsyst = (ibarcnt-1)/nsyst+1
+ if (nv .eq. 1) then
+ nsystpp = 12
+ else if (nv .eq. 2) then
+ nsystpp = 7
+ else if (nv .eq. 3) then
+ nsystpp = 5
+ else if (nv .eq. 4) then
+ nsystpp = 3
+ else if (nv .le. 7) then
+ nsystpp = 2
+ else
+ nsystpp = 1
+ end if
+ npages = (nsyst-1)/nsystpp+1
+ end if
+c
+c Check nsyst vs ibarcnt
+c
+ if (nsyst .gt. ibarcnt) then
+ print*
+ print*,'nsyst,ibarcnt:',nsyst,ibarcnt
+ print*,'There are more systems than bars.'
+ write(15,'(a,2i5)')' nsyst,ibarcnt:',nsyst,ibarcnt
+ write(15,'(a)')' There are more systems than bars.'
+ call stop1()
+ end if
+c
+c Set up dummy forced line & page breaks after last real one
+c
+ nflb = nflb+1
+ ibarflb(nflb) = ibarcnt+1
+ isysflb(nflb) = nsyst+1
+ nfpb = nfpb+1
+ ipagfpb(nfpb) = npages+1
+ isysfpb(nfpb) = nsyst+1
+ heightil = ptheight*4./musize
+ open(12,status='SCRATCH')
+ write(12,'(a)')basenameq(1:lbase)
+ write(12,*)lbase
+c
+c Pass to pmxb the initial signature, including effect of transposition.
+c
+ write(12,'(6f10.5/f10.5,3i5)')fbar,wheadpt,etait,
+ * etatc,etacs1,etatop,etabot,inbothd,inhnoh,isig1
+ write(12,*)npages,widthpt,ptheight,hoffpt,voffpt,nsyst
+ iflbnow = -1
+ isysb4 = 0
+ do 8 ifpb = 1 , nfpb
+c
+c Each time thru this loop is like a single score with several pages
+c
+ npages = ipagfpb(ifpb)-ipagfpb(ifpb-1)
+ nsyst = isysfpb(ifpb)-isysfpb(ifpb-1)
+ nomnsystp = (nsyst-1)/npages+1
+ nshort = nomnsystp*npages-nsyst
+ do 7 ipage = 1 , npages
+ nsystp = nomnsystp
+ if (ipage .le. nshort) nsystp = nsystp-1
+c
+c Last system number on this page:
+ isysendpg = isysb4+nsystp
+ nintpg = 0
+ do 15 isy = isysb4+1, isysendpg
+ if (isysflb(iflbnow+1) .eq. isy) iflbnow = iflbnow+1
+ nintpg = nintpg+nistaff(iflbnow)
+15 continue
+ xilfrac = 0.
+ xiltxt = 0.
+ if (ipage.eq.1 .and. ihead.gt.0) then
+c
+c Needn't zero out ihead after printing titles if we only allow titles at top?
+c
+ if (iand(ihead,1) .eq. 1) then
+ xiltxt = xiltxt+hgtin*4/musize
+ xilfrac = xilfrac+etait
+ end if
+ if (iand(ihead,2) .eq. 2) then
+ xiltxt = xiltxt+hgtti*4/musize
+ xilfrac = xilfrac+etatc
+ end if
+ if (iand(ihead,4) .eq. 4) then
+ xiltxt = xiltxt+hgtco*4/musize
+ xilfrac = xilfrac+etacs1
+ else
+c
+c Use double the title-composer space if there is no composer
+c
+ xilfrac = xilfrac+etatc
+ end if
+ end if
+ D = xilfrac+nsystp-1+etatop+etabot
+c C = nsystp*(nv-1)
+ C = nintpg
+c xN = heightil - xiltxt - 4*nsystp*nv - (nsystp-1)*xilbn
+ xN = heightil - xiltxt - 4*(nintpg+nsystp) - (nsystp-1)*xilbn
+ if (bottreb) xN = xN-(nsystp-1)*xilbtc
+ if (ihead.eq.0 .and. isheadr) xN = xN - xilhdr
+ if (ifig .eq. 1) then
+ xN = xN - nsystp*xilfig
+ end if
+ glueil = (xN-b*C)/(D+a*C)
+ omegaG = (b*D+a*xN)/(D+a*C)
+c
+c G = \interlines between systems
+c omega*G = \interlines between staves of the same system
+c \interstaff = 4+omega*G
+c C = total number of interstaff spaces in the page
+c D = omega-indep factors for scalable height = nsy-1 (intersystem glue)
+c + etatop + etabot + etatxt +
+c N = scaleable height (\interlignes) = height - htext - staff heights - xil
+c xil = extra interliges = (nsy-1)*xilbn + 10 if header and no titles
+c + (nsy-1)*xiltcb for treble clef bottoms
+c + nsy*xilfig for figures
+c G = N/(D + omega * C) = glueil, (1)
+c But (empirically) omega*G = a*G + b (2)
+c with a=1.071 and b=2.714
+c Solving (1) and (2) gives
+c G = (N-b*C)/(D+a*C) , omega*G = (b*D+a*N)/(D+a*C)
+c Pass to pmxb omega*G (=\interstaff-4)
+c (etatop,bot,it,tc,cx)*G as inputs to \titles
+c
+c glueil = (heightil-xiltxt-nsystp*(xil+4*nv))
+c * /(nsystp*(1+gfact*(nv-1))-1+etatop+etabot+xilfrac)
+c xnsttop = glueil*etatop
+c xintstaff = 4+gfact*glueil
+c
+c Only the first page will get local adjustment now if needed, others in pmxb
+c
+ if (ifpb.eq.1 .and. ipage.eq.1 .and. fintstf.gt.0.) then
+ facins = fintstf
+ fintstf = -1.
+ else
+c
+c gintstf = 1.0 by default, but may be changed with AI<x>
+c
+ facins = gintstf
+ end if
+ write(12,*)nsystp,max(0.,etatop*glueil),facins*(omegaG+4)
+ ihead = 0
+ isheadr = .false.
+ isysb4 = isysendpg
+7 continue
+8 continue
+c
+c Done with vertical, now do horizontals
+c
+ celsk(1) = elsk(1)
+ do 21 ibar = 2 , ibarcnt
+ celsk(ibar) = celsk(ibar-1)+elsk(ibar)
+21 continue
+ lastbar(0) = 0
+ ibar1 = 1
+ wmins = -1.
+ iflb = 1
+ imovbrk = 0
+ ikey = 1
+c
+c Return nsyst to its *total* value
+c
+ nsyst = isysfpb(nfpb)-1
+ do 22 isyst = 1 , nsyst
+ if (isyst .eq. isysflb(iflb)) iflb = iflb+1
+ if (nmovbrk.gt.0 .and. imovbrk.lt.nmovbrk) then
+ if (isyst .eq. isysmb(imovbrk+1)) imovbrk = imovbrk+1
+ end if
+ ibarb4 = lastbar(isyst-1)
+ if (isyst .eq. 1) then
+ if (isfirst) elsstarg = celsk(ibarflb(1)-1)/
+ * (isysflb(1)-1-fracindent)*(1-fracindent)
+ celskb4 = 0.
+ else
+ celskb4 = celsk(ibarb4)
+c
+c Must dimension isysmb(0:*) just so I can execute this test!
+c
+ if (isfirst) then
+ if (nmovbrk.gt.0 .and. isyst.eq.isysmb(imovbrk)) then
+c
+c First syst after forced line break. There may be indentation.
+c
+ elsstarg = (celsk(ibarflb(iflb)-1)-celskb4)
+ * /(isysflb(iflb)-isyst-fracsys(imovbrk))
+ * *(1-fracsys(imovbrk))
+ else
+c
+c There is no indentation to deal with
+c
+ elsstarg = (celsk(ibarflb(iflb)-1)-celskb4)
+ * /(isysflb(iflb)-isyst)
+ end if
+ end if
+ end if
+ if (isfirst) then
+ diff1 = abs(elsstarg-elsk(ibarb4+1))
+ do 23 ibar = ibarb4+2 , ibarcnt
+ diff = elsstarg-(celsk(ibar)-celskb4)
+ if (abs(diff) .ge. diff1) go to 24
+ diff1 = abs(diff)
+23 continue
+24 ibar = ibar-1
+ lastbar(isyst) = ibar
+ nbarss(isyst) = ibar-ibarb4
+ else
+c
+c nbarss is given as an input, must compute lastbar and ibar
+c
+ lastbar(isyst) = nbarss(isyst)+ibarb4
+ ibar = lastbar(isyst)
+ end if
+c
+c elss is # of elemskip in the syst. from notes & ars's, not ruleskips, ask's.
+c
+ elss(isyst) = celsk(ibar)-celskb4
+ write(12,'(i5)')lastbar(isyst-1)+1
+c
+c Transposed sigs are isig1, newkey(2,3,...).
+c
+ if (ikey .eq. 1) then
+ key1 = isig1
+ else
+ key1 = newkey(ikey)
+ end if
+ fsyst = wclef+abs(key1)*wkeysig+2./musize
+ xelsk = 0.
+1 if (ikey.lt.nkeys) then
+ if (ibrkch(ikey+1).le.lastbar(isyst)) then
+c
+c Add space for all key changes
+c
+ ikey = ikey+1
+ key2 = newkey(ikey)
+ naccs = max(abs(key2-key1),max(abs(key1),abs(key2)))
+ fsyst = fsyst+naccs*wkeysig
+c
+c Account for afterruleskips (fbar)
+c
+ xelsk = xelsk+fbar/2
+ if (ibrkch(ikey).lt.lastbar(isyst) .and. .not.kchmid(ikey))
+ * xelsk = xelsk-1.
+ key1 = key2
+ go to 1
+ end if
+ end if
+c
+c Add extra fixed space for double bar
+c
+ if (isyst .eq. nsyst) then
+ fsyst = fsyst+4.5/musize
+ end if
+c
+c Add extra fixed space for initial time signature
+c
+ if (isyst .eq. 1) then
+ fsyst = fsyst+wtimesig
+ end if
+c
+c Add extra fixed space for time signature changes & user-defined spaces
+c
+ do 26 ibars = ibarb4+1 , lastbar(isyst)
+ if (newmb(ibars)) fsyst = fsyst+wtimesig
+ fsyst = fsyst+udsp(ibars)/musize
+26 continue
+ if (isyst .eq. 1) then
+ wdpt = widthpt*(1-fracindent)
+ else
+ if (nmovbrk.gt.0 .and. imovbrk.gt.0 .and.
+ * isyst.eq.isysmb(imovbrk)) then
+ wdpt = widthpt*(1-fracsys(imovbrk))
+ else
+ wdpt = widthpt
+ end if
+ end if
+ wsyspt = wdpt-fsyst*musize-0.4*nbarss(isyst)
+c
+c Checks for min spacing
+c Get min allowable space
+c
+ dtmin = 1000.
+ do 45 ibar = ibar1 , ibar1+nbarss(isyst)-1
+ dtmin = min(dtmin,tnminb(ibar))
+ if (wminnh(ibar).ge.0.) wmins = wminnh(ibar)
+45 continue
+ if (wmins .lt. 0) wmins = 0.3
+ wminpt = (1+wmins)*0.3*musize
+c
+c Find max duration & # of notes for this system
+c
+ dtmax = 0.
+ nns = 0
+ do 43 iptr = nptr(ibar1) , nptr(ibar1+nbarss(isyst))-1
+ dtmax = max(dtmax,durb(iptr))
+ nns = nns + nnpd(iptr)
+43 continue
+ elmin0 = wsyspt*f1eon(dtmin)/(elss(isyst)+xelsk)
+ if (elmin0 .ge. wminpt) then
+c
+c Subtract out fbar stuff to keep old way of passing sumelsk to pmxb;
+c there is no need to "flatten"
+c
+ sumelsk = elss(isyst)-fbar*nbarss(isyst)
+ eonk = 0.
+ ewmxk = 1.
+ else
+ elmin1 = wsyspt/((fbar*nbarss(isyst)+xelsk)/f1eon(dtmax)+nns)
+ if (elmin1 .le. wminpt) then
+c print*
+c print*,'In system #',isyst,' cannot meet min. space rqmt'
+c write(15,'(/a,i5,a)')
+c * 'In system #',isyst,' cannot meet min. space rqmt'
+ eonk = 0.9
+ else
+c
+c Find eonk by Newton method
+c
+c eonk = min(.9,(wminpt-elmin0)/(elmin1-elmin0))
+ call findeonk(nptr(ibar1),nptr(ibar1+nbarss(isyst))-1,
+ * wsyspt/wminpt,fbar*nbarss(isyst)+xelsk,dtmin,dtmax,
+ * (wminpt-elmin0)/(elmin1-elmin0))
+ eonk = min(.9,eonk)
+ end if
+ ewmxk = f1eon(dtmax)**eonk
+c
+c Recompute poenom!
+c
+ sumelsk = 0
+ do 44 iptr = nptr(ibar1) , nptr(ibar1+nbarss(isyst))-1
+ sumelsk = sumelsk
+ * + nnpd(iptr)*sqzb(iptr)*feon(durb(iptr)/sqzb(iptr))
+44 continue
+ end if
+ poenom = wsyspt/(sumelsk+fbar*nbarss(isyst)+xelsk)
+c
+c Set fracindent for output: orig if isyst=1, fracsys(imovbrk) if movbrk, else 0
+c
+ if (isyst .gt. 0) then
+ if (nmovbrk.gt.0 .and. imovbrk.gt.0 .and.
+ * isyst.eq.isysmb(imovbrk)) then
+ fracindent = fracsys(imovbrk)
+ else
+ fracindent = 0.
+ end if
+ end if
+ write(12,'(1pe12.5/i5,5e12.3)') poenom,nbarss(isyst),
+ * sumelsk,fsyst,fracindent,eonk,ewmxk
+ ibar1 = ibar1+nbarss(isyst)
+22 continue
+ rewind(12)
+ open(13,status='SCRATCH')
+ write(13,'(i5)')ifig
+ rewind(13)
+ ilbuf = 1
+ ipbuf = 0
+ if (.not.optimize) then
+ write(*,'(/,a)')' Done with first pass'
+ print*
+ write(15,'(/,a)')' Done with first pass'
+ write(15,'()')
+ end if
+c
+c Following syntax is needed since pmxa is called with literal argument .false.
+c
+ if (isfirst) isfirst = .false.
+ return
+ end
+ subroutine pmxb(inlast,poevec,ncalls,optimize)
+cccccccccccccccccccccccccc
+cc
+cc To Do
+cc
+cc Resolve disagreement in final poe for 1st system, compared with *.mx2
+cc Shift slurs on right- or left-shifted main notes (2/7/99)
+cc Various end-of-input-block repeat problems (ick142.pmx).
+cc Force multiplicity for un-beamed xtups.
+cc Clef change at end of piece
+cc Global "A" option to maximize "X" at a given time tick.
+cc Tighten test for end-of-bar hardspace, flgndv(ivx) due to right-shifted
+cc note. See trubl18.pmx
+cc Tab character as space.
+cc Clef interference with second line of music.
+cc Add space for interferences between *different* lines of music?
+cc Shift arpeggios, both automatic and manual.
+cc Different musicsize for different instruments.
+cc Spacing checks for accid's on left-shifted chord notes
+cc Spacing checks for double dots
+cc Allow forced line breaks w/o setting nsyst.
+cc Cresc-Decresc. (Enhance MusiXTeX first?)
+cc Dynamic Marks.
+cc Bug with Voltas at line end (MusiXTeX problem?).
+cc Subtle bug w/ slur hgt over line brk, see trubl15.pmx
+cc Stem-end slurs.
+cc Allow units in indentation.
+cc Make inline TeX more context sensitive.
+cc Werner's 4/2/98 problem with "o?"
+cc Scor2prt converts e.g. "r0+0" into "r0 0", which seems to be wrong.
+cc converts e.g. "r2db" into "r2d", which might be wrong.
+cc Werner's generalsignature problem with Key change and new transposition.
+cc (wibug8.pmx)
+cc Unequal xtuplets
+cc Print both sets of bar #'s in tex file.
+cc Make barlines invisible \def\xbar{\empty} , fix fbar.
+cc Auto-tie slurs 'At'
+cc Forced line break anywhere (e.g. at a mid-bar repeat).
+cc Clef change at very start of file.
+cc Tighten test for M as macro terminator.
+cc Fix title so not separate limit on author length + composer length.
+cc Arpeggios in xtups.
+cc
+cc mx10b
+cc Option for instrument name at top center. Last item in P command:
+cc P[n]c text is instrument name (use in parts)
+cc P[n]cstuff text is stuff (up to 1st blank)
+cc P[n]c"stuff with spaces" text is stuff with spaces
+cc
+cc Post version 1.43
+cc Reduced space rqmt for multiplicity-0 graces (no flag)
+cc Removed last sepsym in centered whole-bar rests, fixes volta height bug.
+cc
+cc Version 1.43
+cc Fix spacing for end-of-line signature change.
+cc Adjust left-shift of grace group for shifted accidentals.
+cc Put in extra space for left-shifted accidentals.
+cc Fix bug with dot-shift before accid-shift on chord note.
+cc Space-check for right-shifted main notes.
+cc Enable forcing stem direction of single notes in non-beamed xtups.
+cc Disallow clef change after last note before end of input block (pmxa)
+cc Print meter change before page break
+cc increase length of strings for \titles macro
+cc version 1.42
+cc Loosen up input syntax for "X" commands. Subroutine getx()
+cc "B" and "P" in "X" commands
+cc mx09b
+cc Allow multiple rests at start of xtup
+cc Add 64th rest
+cc Fix xtup numbers over rests. (subroutine levrn)
+cc Initialize notcrd=.false. every gulp. Avoids undefined state with e.g.
+cc c za / ( c a ...
+cc Allow double dots to be shifted.
+cc Fix spacing with double dotted notes; permit splitting small note.
+cc Fix \dotted printout so it works with old compiler
+cc mx08b
+cc Automatic spaces if needed for shifted accidentals.
+cc Some Dynamics
+cc Increase accid. horiz. shift resolution to .o5 (use one more bit in nacc)
+cc version 1.41
+cc Allow ":" as last char of path name
+cc Dotted slurs "sb"
+cc Continue bar numbering at movement break "L[integer]Mc"
+cc mx07b
+cc Whole-bar rests with double lines of music. Fixed all options ?
+cc Shift accidentals, either [+|-][integer][+|-][number] or [<|>][number].
+cc Option to suppress centering full-bar rests. "o"
+cc mx06b
+cc Shift accid on left-shifted chord note.
+cc Rest as first note of xtup.
+cc Wrong slopes with small widths. Scale slfac1 by widthpt_default/widthpt
+cc Allow Rb for single bar at movemnet break or end of piece. (islur(25))
+cc Change # of inst at a movement break. noinst is total # and must be used
+cc in 1st movement. ninow is current. nspern(1,...,ninow) is current
+cc staves/inst, nsperi(1,...,noinst) is original. rename tells whether to
+cc reprint names in parindent at a movement break. Default is .false.
+cc unless ninow changes, then .true. But can force either with r+/- as
+cc option in 'M'
+cc mx04b
+cc Double-dotted notes, separate+beamed, main+chord, still no extra space.
+cc ??? Don't shift slur ends on whole notes.
+cc (pmxa) Write line number of error in pmxaerr.dat
+cc mx02b
+cc Admit "RD" before "/" (search for "rptfq2:" )
+cc In doslur, for multi-line staves, single notes, check forced stem dir'n
+cc before setting stemup (used to set horiz offset).
+ccccccccccccccccccccccccccccccc
+ parameter (nm=24,nks=125,mv=24576,maxblks=4000)
+c
+c FYI /all/ differs in appearance in function ncmid
+c
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ccccccccccccc
+cc islur cc
+ccccccccccccc
+c bit meaning
+c 0 slur activity on this note
+c 1 t-slur here.
+c 2 force 0-slope beam starting on this note
+c 3 Double dotted note!
+c 4 grace before main note
+c 5 left repeat
+c 6 right repeat
+c 7 start Volta
+c 8 doublebar
+c 9 end Volta
+c 10 on=>endvoltabox
+c 11 on=>clefchange
+c 12-14 0=>treble, ... , 6=>bass
+c 15 on=> start new block for clef change (maybe diff. voice)
+c 16 literal TeX string
+c 17 1=up, 0=down stem for single note (override) See bit 30!
+c 18 if on, prohibit beaming
+c 19 if on, full bar rest as pause
+c 20 Beam multiplicity down-up
+c 21 Forced multiplicity for any beam including xtups
+c 22-24 Value of forced multiplicity
+c 25 single barline at movement break
+c 26 doubleBAR (see bits 5,6,8)
+c 27-28 Forced beam fine-tune height (1 to 3)
+c 29 Blank rest
+c 30 If on, get stem dir'n from bit 17
+c 31 If on, suppress printing number with xtuplet starting here
+ccccccccccccc
+cc ipl cc
+ccccccccccccc
+cc 0-7 Location in list [0,200]
+c 0-7 Unused
+c 8 left offset main note one headwidth
+c 9 right offset main note one headwidth
+c 10 chord present?
+c 11-16 Forced beam height adjustment (-30 to +30)
+c 17-22 Forced beam slope adjustment (-30 to +30)
+c 23-26 Slur index for Way-after grace. Inserted when slur is started.
+cc 27 Unused?
+c 27 5th bit for slur index for Way-after grace (100712)
+c 28 key change: only in voice 1
+c 29 Grace after main note. (Type A)
+c 30 In forced beam. Signals need to check beam heights
+c 31 Grace way after main note. (stretch to next note, type W)
+ccccccccccccc
+cc iornq cc
+ccccccccccccc
+c 0 Ornament "(". Was user-defined horizontal slur shift on this note
+c until 9/24/97; changed that to irest(21)
+c 1-13 stmgx+Tupf._)
+c 14 Down fermata, was F
+c 15 Trill w/o "tr", was U
+c 16-18 Editorial s,f,n
+c 19-20 >^
+c 21 "?" for editorial accid, w/ or w/o s,f,n
+c 22 Set if ihornb governs ornament height. Same in icrdorn.
+c 23 Set in getorn if ANY note at time of this main note has ornament.
+c This is ONLY used in beamstrt to signal whether to do more
+c tests for whether ihornb is needed. (ihornb is only needed
+c if nonchord+upbm, chord+upbm+top_note, chord+dnbm+bot_note)
+c (7/1/00)Also set if any dynamic, as ihornb will be needed when dnbm.
+c 24 Slur on after or way-after grace. Use as signal to START slur.
+c 25 Tweak orn ht. Same in icrdorn for chord note
+c 26 Insert user-defined space before this note (was 22)
+c 27 Arpeggio stop or start (if 2 at same time), or all-in-this-chord
+c 28 caesura or breath
+c 29 blank barline (must be iv=1) (would have used islur but no room)
+c 30 "Look-left" option for keyboard rest
+c 31 Set if any note (main or chord) has cautionary accid, for space checks
+ccccccccccccc
+cc irest cc
+ccccccccccccc
+c 0 rest=1, no rest = 0
+c 1 There will be a vertical shift for number of this xtup
+c 2-6 Height shift, 1 => -15, 31 => +15 Indicate by +/- [n] after 'n'
+c 7 There is a horizontal shift for xtup number
+c 9-13 Horiz shift, 1=>-1.5, ... , 31=>+1.5
+c 14 Flip up/down-ness of xtup number
+c 15 Single-voice, single note shift X(...)[p]S
+c 16 Start single-voice, multinote shift with this note X(...)[p]:
+c 17 End single-voice, multinote shift after this note. Enter symbol
+c after note. X:
+c 18 User-defined hardspace after last note of bar, *after* this note.
+c Value still stored in udoff(ivx,nudoff(ivx)), not with other
+c hardspaces in udsp, to avoid confusion with time checks.
+c 19 Move the dot. Data stored in ndotmv,updot,rtdot
+c 20 Set if right-shifted main or chord note here. Use for space checks.
+c 21 User-defined hardspace in xtup
+c 22 User-defined slur shift horizontal slur shift.
+c 23 Set on last note before staff-jumping a beam.
+c 24 Set on first note after staff-jumping a beam
+c 25 Suppress rest centering. "ro"
+c 26 Dynamic on this note
+c 27 Set if left-shifted main or chord note here. Use for space checks.
+c 28 Set if xtup starts on this note.
+c 29 Set on lowest-voice note at same time as 1st note after jump-beam.
+c 30 Set on note after end of jump-beam segment, to force new note group
+c 31 Flag for cautionary accidental
+ccccccccccccc
+cc nacc cc
+ccccccccccccc
+c 0-1 0=no accid, 1=fl, 2=sh, 3=na
+c 2 double
+c 3 big
+c 4-9 vertshift-32
+c 10-16 20*(horiz. shift + 5.35) (Recentered ver 2.32)
+c 17 Midi-only accidental
+c 18 2:1 xtup
+c 19 Together with nacc(18), increase multiplicity by 1 and dot 1st note.
+c 20 Set on last note of each seg except last seg of single-slope beam.
+c 21 Set on 1st note of each seg except 1st seg of single-slope beam.
+c 22-26 If .ne.0, printed xtup number for xtup starting on this note.
+c 27 Set for dotted xtup note. Mult dur by 1.5, mult next by .5 & increase
+c multiplicity by 1
+c 28 Set on main note of chord if accidentals are ordered.
+c 29 Tag for chordal accidental shift...means add to autoshifts.
+c 30-31 Set 30|31 if main note in a chord is part of a 2nd and needs to be shifted.
+c If upstem|downstem, main is upper|lower member of 2nd
+c Action is to interchange pitches only when notes are placed.
+ccccccccccccc
+cc mult cc
+ccccccccccccc
+c 0-3 Multiplicity+8 (mult= # of flags)
+c 4 Set if slope adjustment for xtup bracket
+c 5-9 16+slope adjustment
+c 27 Stemlength override
+c 28-30 New stem length.
+ccccccccccccc
+cc isdat1 cc
+ccccccccccccc
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 ndxslur, set in doslur when beam is started, used on term.
+ccccccccccccc
+cc isdat2 cc
+ccccccccccccc
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted slur
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+ccccccccccccc
+cc isdat3 cc
+ccccccccccccc
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c 14-21 tie level for use in LineBreakTies
+c 22-29 ncm for use in LineBreakTies
+ccccccccccccc
+cc isdat4 cc Set these all at turn-on using s option
+ccccccccccccc
+c 0-5 Linebreak seg 1 voff 1-63 => -31...+31
+c 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3
+c 16-21 Linebreak seg 2 voff 1-63 => -31...+31
+c 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3
+ccccccccccccc
+c icrdat c
+ccccccccccccc
+c 0-7 ip within voice
+c 8-11 ivx (together with 28th bit)
+c 12-18 note level
+c 19 accidental?
+c 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp)
+c 23 shift left
+c 24 shift right
+c 25 arpeggio start or stop
+c 26 flag for moved dot (here, not icrdot, since this is always reset!)
+c 27 Midi-only accidental
+c 28 (6/27/10) 5th bit for ivx, to allow up to 24 voices
+c 29 Tag for accidental shift...means add to autoshifts.
+c 31 Flag for cautionary accidental on chord note
+ccccccccccccc
+c icrdot c:
+ccccccccccccc
+c 0-6 10*abs(vertical dot shift in \internote) + 64
+c 7-13 10*abs(horizontal dot shift in \internote) + 64
+c 14-19 vert accidental shift-32
+c 20-26 20*(horiz accidental shift+3.2)
+c 27-29 top-down level rank of chord note w/accid. Set in crdaccs.
+c
+c Bits in icrdorn are same as in iornq, even tho most orns won't go in crds.
+c
+cccccccccccccccccccccccccccccccc
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*10 figq
+ character*1 ulq,sepsymq,sq,chax
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,rptnd1,rptprev
+ logical loop,lastchar,slint,svolta,evolta,onvolt,
+ * cwrest(nm),islast,inlast,optimize
+ integer istop(80),numbms(nm),istart(80)
+ real*4 xnsttop(40),xintstaff(40),hesk(23),hpts(23),poevec(nks),
+ * tstart(80),squez(80)
+ character*1 clefq(nm),ulfbq,rptfq1,rptfq2,charq
+ character*79 notexq,inameq
+ character*40 pathnameq
+ character*44 basenameq
+ character*24 fmtq
+ character*20 voltxtq
+ character*120 instrq,titleq,compoq
+ common /comlast/ islast,usevshrink
+ logical usevshrink,stickyS,OptLineBreakTies,autofbon
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ common /comstart/ facmtr
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ common /combeam/ ibmtyp
+ common /comnotes/ nnodur,lastlev,ndlev(nm,2),shifton,setis,notcrd,
+ * npreslur,was2(nm),ninow,nobar1,nsystp(40),ipage,
+ * OptLineBreakTies,HeaderSpecial
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comas3/ ask(2500),iask,topmods
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,fbon,ornrpt,shifton,isbjmp,notcrd,was2,
+ * isbj2,fontslur,WrotePsslurDefaults,HeaderSpecial
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*128 litq,lnholdq
+ logical upslur,bar1syst,vshrink,lrpt,rrpt,lrptpend,
+ * ispoi,bcspec,topmods,headlog,clchb,clchv(nm),flgndb,
+ * btest,sluron,setis,nobar1
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /compoi/ ispoi
+ common /combc/ bcspec
+ common /comeon/ eonk,ewmxk
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comhsp/ hpttot(176)
+ common /combmh/ bmhgt,clefend
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ common /commus/ musize,whead20
+ common /comtol/ tol
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ logical mrecord,mplay,endmac,flipend,istype0,lowdot,rename,ispstie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,equalize,
+ * ismbr,putmbr
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comcb/ nbc,ibcdata(36)
+ common /comclefq/ clefq
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /combibarcnt/ ibarcnt
+ if (.not.optimize) then
+ print*
+ print*,'Starting second PMX pass'
+ print*
+ write(15,'(a)')'Starting second PMX pass'
+ end if
+ ncalls = ncalls+1
+ islast = inlast
+ macuse = 0
+ isyscnt = 0
+ stemmax = 8.2
+ stemmin = 3.9
+ stemlen = 6.0
+ sq = chax(92)
+ bcspec = .true.
+ topmods = .false.
+ ismbr = .false.
+ read(12,'(a)')basenameq
+ read(12,*)lbase
+ read(12,*)fbar,wheadpt,etait,etatc,etacs1,etatop,
+ * etabot,inbothd,inhnoh,isig
+ ilbuf = 1
+ ipbuf = 0
+ call getset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,xmtrnum0,
+ * npages,nsyst,musicsize,fracindent,istype0,inameq,
+ * clefq,sepsymq,pathnameq,lpath,isig0)
+ if (ismidi) then
+c
+c Initial key signature and meter for pickup bar
+c
+ call midievent('k',isig,0)
+ if (xmtrnum0 .gt. tol) then
+c
+c We have a pickup. Some tricky stuff to get a meter:
+c
+ xntrial = xmtrnum0
+ do 5 ip2 = 0 , 5
+ if (abs(mod(xntrial,1.)) .lt. tol) go to 6
+ xntrial = xntrial*2
+5 continue
+ print*,'Problem finding meter for pickup bar'
+ xntrial = 1.
+ ip2 = 0
+6 continue
+ call midievent('m',nint(xntrial),2**ip2*mtrdenl)
+ else
+c
+c No pickup, enter the starting meter
+c
+ call midievent('m',mtrnuml,mtrdenl)
+ end if
+ end if
+c
+c Set musicsize from value passed in common, due to possible reset by S[n]m16
+c
+ musicsize = musize
+ read(12,*)npages,widthpt,height,hoffpt,voffpt,nsyst,
+ * (nsystp(ipa),xnsttop(ipa),xintstaff(ipa),ipa=1,npages),iauto
+c
+c If default width ever changes, must adjust this stmt.
+c
+ slfac1 = 0.00569*524./widthpt
+ figbass = .false.
+ read(13,*)ifig
+ if (ifig .eq. 1) then
+ figbass = .true.
+ open(14,status='SCRATCH')
+ write(14,'(a)')sq//'def'//sq//'fixdrop{'//sq//'advance'//sq//
+ * 'sysno by 1'//sq//'ifcase'//sq//'sysno%'
+ end if
+ lastchar = .false.
+ ibcoff = 0
+ if (xmtrnum0 .gt. 0.) ibcoff = -1
+ open(11,status='SCRATCH')
+c
+c vshrink for the first page is calculated in topfile,
+c and if true set interstaff=10. vshrink affects Titles.
+c Must also save vshrink for page ending.
+c
+ call topfile(basenameq,lbase,nv,clefq,noinst,musicsize,
+ * xintstaff(1),mtrnmp,mtrdnp,vshrink,fbar,fontslur)
+c
+c ninow is working value of # of instruments. noinst is max #, and # at start.
+c
+ ninow = noinst
+c
+c Save original printed meter in case movement breaks
+c
+ movnmp = mtrnmp
+ movdnp = mtrdnp
+c
+ if (islast .and. figbass .and. musicsize.eq.16)
+ * write(11,'(a)')sq//'def'//sq//'figfont{'//sq//'eightrm}%'
+c
+ if (islast .and. isligfont) then
+ if (musicsize .eq. 16) then
+ write(11,'(a)')sq//'font'//sq//'ligfont=cmrj at 8pt%'
+ else
+ write(11,'(a)')sq//'font'//sq//'ligfont=cmrj at 10pt%'
+ end if
+ end if
+ lenbeat = ifnodur(mtrdenl,'x')
+ if (mtrdenl .eq. 2) lenbeat = 16
+ lenb1 = mtrnuml*lenbeat
+ if (mtrdenl .eq. 2) lenb1 = lenb1*2
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ lenb0 = nint(xmtrnum0*lenbeat)
+ if (mtrdenl .eq. 2) lenb0 = lenb0*2
+ if (lenb0 .ne. 0) then
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno by -1'
+ lenbar = lenb0
+ else
+ lenbar = lenb1
+ end if
+c
+c Initialize full-program variables
+c
+ fixednew = 0.
+ scaldold = 0.
+ fintstf = -1.
+ gintstf = 1.
+ nasksys = 0
+ ibarcnt = 0
+ iline = 0
+ movbrk = 0
+ isystpg = 0
+ ipage = 1
+ iccount = 128
+ iask = 0
+ nhstot = 0
+ nb = 1
+ if (.not.optimize) jprntb = 81
+ idsig = 0
+c
+c Next 5 are raise-barno parameters. irzbnd is integer part of default level.
+c
+ irzbnd = 3
+ if (isig.eq.3 .and. clefq(nv).eq.'t') irzbnd = 4
+ is1n1 = 0
+ isnx = 0
+ SlurCurve = 0.
+c
+c 111109 Made global rather than per gulp
+c
+ ndyn = 0
+ ispoi = .false.
+ slint = .false.
+ lrptpend = .false.
+ rptnd1 = .false.
+ rptfq2 = 'E'
+ rptprev = .false.
+ onvolt = .false.
+ flgndb = .false.
+ fbon = .false.
+ shifton = .false.
+ ornrpt = .false.
+ setis = .false.
+ lowdot = .false.
+ rename = .false.
+ nobar1 = .false.
+ equalize = .false.
+ usevshrink = .true.
+ WrotePsslurDefaults = .false.
+ OptLineBreakTies = .false.
+ HeaderSpecial = .false.
+c
+c vshrink is initialized in topfile
+c
+ stickyS = .false.
+c
+c ixrest = 1 or 2 if xtup has started with a rest
+c
+ do 1 ivx = 1 , nm
+ ixrest(ivx) = 0
+ fullsize(ivx) = 1.
+c
+c Set legacy note level to middle c as default
+c
+ ndlev(ivx,1) = 29
+ ndlev(ivx,2) = 29
+1 continue
+ npreslur = 0
+ nhssys = 0
+ listslur = 0
+ do 31 i = 1 , 202
+ isdat1(i) = 0
+ isdat2(i) = 0
+31 continue
+ nsdat = 0
+c
+c Initialize flag for figures in any other voice than 1
+c
+ ivxfig2 = 0
+c
+c Initialize for loop over gulps
+c
+ firstgulp = .true.
+c
+c Start a gulp
+c
+30 loop = .true.
+ notcrd = .true.
+ isbjmp = .false.
+ isbj2 = .false.
+ autofbon = .false.
+ tautofb = 0.
+ nbars = 0
+ nfigs(1) = 0
+ nfigs(2) = 0
+ ngrace = 0
+ ntrill = 0
+ ncrd = 0
+ nudorn = 0
+ nlit = 0
+ nvolt = 0
+ ibarmbr = 0
+ nudsp = 0
+c ndyn = 0 ! 111109
+ ntxtdyn = 0
+ nbc = 0
+ NumArpShift = 0
+ do 3 i = 1 , 37
+ graspace(i) = 0.
+3 continue
+c
+c Now initialize up to nv. Do it in getnote as r'qd for 2nd voices per syst.
+c and also if nv increases in an 'M' directive.
+c
+ do 4 iv = 1 , nv
+ call newvoice(iv,clefq(iv),.false.)
+4 continue
+c
+c Check if endsymbol was set earlier
+c
+ if (rptnd1) then
+ rptnd1 = .false.
+ rptfq2 = rptfq1
+ else
+c
+c Only use if movbrk>0, to signal default ('RD')
+c
+ rptfq2 = 'E'
+ end if
+ iv = 1
+ ivx = 1
+2 if (loop) then
+c
+c Within this loop, nv voices are filled up for the duration of the block.
+c On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv)
+c nolev(nv,nnl(nv)),nodur(..),accq(..),irest(..).
+c nbars is for this input block.
+c Only at the beginning of an input block will there be a possible mtr change,
+c signalled by a nonzero mtrnuml. (which will be re-zeroed right after change)
+c
+ call getnote(loop)
+ if (lastchar) go to 40
+ go to 2
+ end if
+c
+c Finished an input block (gulp).
+c
+ if (ismidi) then
+c
+c Put rests into midi array for 2nd lines that were not used in this gulp.
+c
+ do 60 iv = 1 , nv
+ if (twoline(iv) .and. nvmx(iv).eq.1) then
+ if (firstgulp .and. lenb0.ne.0) then
+ call addmidi(midchan(iv,2),0,0,0,
+ * (nbars-1.)*lenbar+lenb0,.true.,.false.)
+ else
+ call addmidi(midchan(iv,2),0,0,0,1.*nbars*lenbar,.true.,
+ * .false.)
+ end if
+ end if
+60 continue
+ end if
+ nvolt = 0
+ do 28 iv = 1 , nm
+ nudoff(iv) = 0
+ ndotmv(iv) = 0
+28 continue
+c
+c Put stuff at top of p.1. Must wait until now to have read title info.
+c
+ if (ibarcnt .eq. 0) then
+ call puttitle(inhnoh,xnsttop(ipage),
+ * etatop,sq,etait,etatc,etacs1,nv,vshrink,sepsymq)
+ if (HeaderSpecial)
+c
+c Write special header for first page
+c
+ * write(11,'(a)')chax(92)//'special{header=psslurs.pro}%'
+ end if
+ do 10 ibar = 1 , nbars
+ ibarcnt = ibarcnt+1
+ bar1syst = ibarcnt .eq. iauto
+ ndig = max(0,int(log10(.001+ibarcnt+ibcoff)))
+ if (islast)
+ * write(11,'(a11,i'//chax(50+ndig)//')')
+ * '% Bar count',ibarcnt+ibcoff
+ if (ibar .ne. ibarmbr) then
+ if (.not.optimize) call outbar(ibarcnt+ibcoff,jprntb)
+ else
+ if (.not.optimize) then
+ write(*,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt+ibcoff,'-',ibarcnt+ibcoff+mbrest-1
+ write(15,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt+ibcoff,'-',ibarcnt+ibcoff+mbrest-1
+ jprntb = 0
+ end if
+ ibcoff = ibcoff+mbrest-1
+ if (ibar.eq.1 .and. firstgulp .and.
+ * .not.btest(islur(1,1),5)) xb4mbr = facmtr*musicsize
+c
+c The above may be he only case where the space-before option is used in \mbrest
+c
+ end if
+c
+c Move the read to after end-of-bar hardspace checks, so we get right poenom
+c at end of a line.
+c if (bar1syst) read(12,*) poenom
+c
+c Check for clef at start of bar. No slide yet. Also flags at end of prev.
+c bar. This block is run at the start of every bar. May fail for flag at
+c end of last bar. To account for necc. hardspaces, compute and store
+c nhssys = # of hard spaces for this system
+c hesk(nhssys) = elemskips avialable
+c hpts(nhssys) = hard points needed, including notehead
+c Here, merely insert placeholder into output. Later, when poe is computed,
+c compute additional pts and store them in hpttot(1...nhstot). Finally in
+c subroutine askfig, write true pts where placeholders are.
+c
+ ioff = 0
+ if (ibar .gt. 1) ioff = nib(1,ibar-1)
+ clchb = btest(islur(1,ioff+1),15)
+ putmbr = .false.
+ if (ismbr) then
+ if (clchb) then
+c
+c Clef change and multi-bar rest coming up. Kluge to get space at end of rest.
+c
+ write(11,'(a)')sq//'let'//sq//'mbrt'//sq//'mbrest'
+ * //sq//'def'//sq//'mbrest#1#2#3{%'
+ write(11,'(a14,f4.1,a)')sq//'mbrt{#1}{#2}{',musicsize*.55,
+ * '}'//sq//'global'//sq//'let'//sq//'mbrest'//sq//'mbrt}%'
+ end if
+ ismbr = .false.
+ putmbr = .true.
+ end if
+ if (ibar .eq. ibarmbr) ismbr = .true.
+c
+c Set flag here so at start of next bar, if there's a clef change, can add space
+c after the mbr with the above kluge
+c
+ if (.not.(clchb .or. flgndb)) go to 23
+c
+c Must check available space
+c
+ ptsndb = 0.
+c
+c Zero out block signal
+c
+ if (clchb) islur(1,ioff+1) = ibclr(islur(1,ioff+1),15)
+c
+c In this loop, we determine how much hardspace is needed (if any)
+c 9/7/97 Note that for last bar in input block, if number of lines of
+c music decreases in new block, highest numbered ones won't be checked
+c since the loop below covers the new nvmx(iv), not necessarily the old
+c one.
+c 4/18/98 Apparently nmxsav was a solution to the above problem
+c
+ do 16 iv = 1 , nv
+ do 16 kv = 1 , nvmxsav(iv)
+ ivx = ivmxsav(iv,kv)
+ ptsndv = flgndv(ivx)*wheadpt
+ ioff = 0
+ if (ibar .gt. 1) then
+ ioff = nib(ivx,ibar-1)
+ ip = ioff
+ if (ibar.gt.2) ip = ioff-nib(ivx,ibar-2)
+c prevtn(ivx) = tnote(iand(ipl(ivx,ip),255))
+ prevtn(ivx) = tnote(ipl2(ivx,ip))
+c
+c If ibar=1 (1st bar in input block), prevtn(ivx) was set at end of makeabar.
+c
+ end if
+c
+c Only allow clef changes when ivx <= nv
+c
+ if (ivx .le. nv) then
+ clchv(iv) = clchb .and. btest(islur(iv,ioff+1),11)
+ if (clchv(iv)) then
+c
+c Clef change in this voice. Turn off signal. Get space avail.
+c
+ islur(iv,ioff+1) = ibclr(islur(iv,ioff+1),11)
+ if (abs(prevtn(iv)-space(nb)).lt.tol) ptsndv =
+ * ptsndv+clefend*wheadpt
+ end if
+ end if
+ ptsndb = max(ptsndb,ptsndv+wheadpt*xspfac)
+16 continue
+c
+c ???? where is nb set??? nb probably in left over from makeabar
+c
+ esk = feon(space(nb)*squez(nb))
+ ptsdflt = esk*poenom-wheadpt
+c if ((ptsndb.gt.ptsdflt.or.ptsgnd.gt.0.) .and. movbrk.eq.0) then
+ if ((ptsndb.gt.ptsdflt.or.ptsgnd.gt.0.) .and. movbrk.eq.0
+ * .and. .not.putmbr) then
+c
+c Must ADD hardspace! So put in a placeholder, and store params for later.
+c
+ if (islast) write(11,'(a)')sq//'xardspace{ pt}%'
+ nhssys = nhssys+1
+ if (ptsndb-ptsdflt .gt. ptsgnd-poenom*eskgnd) then
+ hesk(nhssys) = esk
+ hpts(nhssys) = ptsndb+wheadpt
+ else
+ hesk(nhssys) = eskgnd
+ hpts(nhssys) = ptsgnd+wheadpt
+ end if
+ fixednew = fixednew+hpts(nhssys)
+ scaldold = scaldold+hesk(nhssys)
+ end if
+ if (clchb) then
+ do 17 iv = 1 , nv
+ if (clchv(iv)) then
+ notexq = sq//'znotes'
+ lnote = 7
+ do 24 iiv = 2 , iv
+ notexq = notexq(1:lnote)//sepsymq(iiv-1)
+ lnote = lnote+1
+24 continue
+c
+c Recompute ioff since it will vary from voice to voice
+c
+ if (ibar .eq. 1) then
+ ioff = 0
+ else
+ ioff = nib(iv,ibar-1)
+ end if
+c
+c Must call clefsym to get nclef, even if there is a movement break
+c
+ call clefsym(islur(iv,ioff+1),fmtq,lclef,nclef)
+ if (movbrk.eq.0 .and.
+ * islast)
+ * write(11,'(a)')notexq(1:lnote)//fmtq(1:lclef)//sq//'en%'
+ call wsclef(iv,ninow,clefq,nclef)
+ end if
+17 continue
+ if (islast) write(11,'(a)')sq//'pmxnewclefs'
+ end if
+23 continue
+c
+c End of loop for end-of-bar hardspaces and non-movbrk clef symbol.
+c
+ if (bar1syst) then
+ read(12,*) poenom
+ end if
+c
+c Repeat symbols. Haven't slid down yet, so use islur(1,nib(1,ibar-1)+1)
+c
+ if (ibar .eq. 1) then
+ islnow = islur(1,1)
+ iornqnow = iornq(1,1)
+ else
+ islnow = islur(1,nib(1,ibar-1)+1)
+ iornqnow = iornq(1,nib(1,ibar-1)+1)
+ end if
+c
+c Check for R-symbols set at end of prior input block
+c
+ if (movbrk.eq.0 .and. rptfq2.ne.'E') then
+ if (rptfq2 .eq. 'D') then
+ islnow = ibset(islnow,26)
+ else if (rptfq2 .eq. 'r') then
+ islnow = ibset(islnow,6)
+ else if (rptfq2 .eq. 'd') then
+ islnow = ibset(islnow,8)
+ else if (rptfq2 .eq. 'b') then
+ islnow = ibset(islnow,25)
+ else
+ print*
+ print*,'Illegal symbol with "R" at end of input block:',
+ * rptfq2
+ call stop1()
+ end if
+ rptfq2 = 'E'
+ end if
+ if (iand(islnow,352) .ne. 0) then
+c
+c Bit 5(lrpt), 6(rrpt), or 8(doublebar) has been set
+c
+ lrpt = btest(islnow,5)
+ rrpt = btest(islnow,6)
+ lrptpend = lrpt.and.bar1syst
+ if (lrpt .and. .not.lrptpend) then
+ if (rrpt) then
+ if (islast) write(11,'(a)')sq//'setleftrightrepeat'
+ fixednew = fixednew+wheadpt*lrrptfac-0.4
+ else
+ if (islast) write(11,'(a)')sq//'setleftrepeat'
+ fixednew = fixednew+wheadpt*rptfac-0.4
+ end if
+ else if (rrpt) then
+ if (islast) write(11,'(a)')sq//'setrightrepeat'
+ fixednew = fixednew+wheadpt*rptfac-0.4
+ else if (btest(islnow,8)) then
+ if (islast) write(11,'(a)')sq//'setdoublebar'
+ fixednew = fixednew+wheadpt*dbarfac-0.4
+ end if
+ else if (btest(islnow,26)) then
+c
+c doubleBAR
+c
+ if (islast) write(11,'(a)')sq//'setdoubleBAR'
+ fixednew = fixednew+wheadpt*ddbarfac-0.4
+ else if (btest(iornqnow,29)) then
+c
+c no bar line
+c
+c-- if (islast) write(11,'(a)')sq//'setzalaligne'
+c++
+ if (islast) then
+ if (movbrk .eq. 0) then
+ write(11,'(a)')sq//'setzalaligne'
+ else
+c
+c Encountered "Rz" at start of input block at start of new movement, Must
+c use newmovement macro with arg 4 rather than setzalaligne, since former
+c already redefines stoppiece.
+c
+ rptfq2 = 'z'
+ end if
+ end if
+c++
+ fixednew = fixednew-0.4
+ end if
+c
+c 1st and 2nd endings
+c
+ svolta = btest(islnow,7)
+ evolta = btest(islnow,9)
+ if (evolta) then
+ if (btest(islnow,10)) then
+ if (islast) write(11,'(a)')sq//'endvoltabox'
+ else
+ if (islast) write(11,'(a)')sq//'endvolta'
+ end if
+ onvolt = .false.
+ end if
+ if (svolta) then
+ nvolt = nvolt+1
+ lvoltxt = index(voltxtq(nvolt),' ')-1
+ if (lvoltxt .eq. 1) then
+ if (islast) write(11,'(a)')sq//'Setvolta'
+ * //voltxtq(nvolt)(1:1)//'%'
+ else
+ if (islast) write(11,'(a)')sq//'Setvolta'//'{'//
+ * voltxtq(nvolt)(1:lvoltxt)//'}%'
+ end if
+ onvolt = .true.
+ end if
+ if (ibar .gt. 1) then
+ ipnow = nib(1,ibar-1)+1
+ else
+ ipnow = 1
+ end if
+ iplnow = ipl(1,ipnow)
+ if (bar1syst) then
+c
+c If listslur>0, then there is at least one slur or tie carried over the break
+c
+ ispstie = .false.
+ if (OptLineBreakTies .and. .not.fontslur .and. listslur.ne.0
+ * .and. islast)
+ * call LineBreakTies(isdat1,isdat2,isdat3,isdat4, nsdat,
+ * ispstie,sepsymq)
+ iline = iline+1
+c
+c End an old system, Start a new system
+c
+ if (iline .ne. 1) then
+c
+c Not first line.
+c Get corrected poe = points/elemskip for *previous* system
+c
+ wdpt = widthpt*(1-fracindent)
+ poe = (wdpt-fsyst*musicsize-0.4*nbarss-fixednew)/
+ * (elsktot+fbar*nbarss-scaldold)
+ isyscnt = isyscnt+1
+ poevec(isyscnt) = poe
+c
+c Transfer data for system into global arrays to hold until very end
+c
+ do 9 ia = 1 , nasksys
+ iask = iask+1
+ ask(iask) = wasksys(ia)/poe-abs(elasksys(ia))
+c
+c Only admit negative ask if it was user-defined space, signalled by elask<=0.
+c
+ if (elasksys(ia).gt.0) ask(iask)=dim(ask(iask),0.)
+9 continue
+ do 25 ia = 1 , nhssys
+ nhstot = nhstot+1
+ hpttot(nhstot) = max(hpts(ia)-hesk(ia)*poe,0.)
+25 continue
+c
+c Reset counters for new system
+c
+ scaldold = 0.
+ fixednew = 0.
+ nasksys = 0
+ nhssys = 0
+ end if
+c
+c End of if block for first bar of non-first system. Still 1st bar, any system
+c
+ if (islast.and.figbass) write(11,'(a)')sq//'fixdrop%'
+ isystpg = isystpg+1
+c
+c Try moving the next stmt way down, to fix a bug and get \eject printed at
+c end of single-system page.
+c if (isystpg .eq. nsystp(ipage)) isystpg = 0
+ read(12,*)nbarss,elsktot,fsyst,frac,eonk,ewmxk
+ if (iline .gt. 1) fracindent=frac
+ if (figbass) then
+ ifigdr(1,iline) = 4
+ ifigdr(2,iline) = 4
+ end if
+ slfac = slfac1*musicsize*elsktot
+ if (iline .ne. 1) then
+c
+c For the line just _finished_, put figdrop in separate file.
+c
+ if (figbass) write(14,'(a9,i2,a10,i2,1x,a4)')
+ * sq//'figdrop=',ifigdr(1,iline-1),
+ * ' '//sq//'figdtwo=',ifigdr(2,iline-1),sq//'or%'
+c
+c Check slurs in top staff for interference w/ barno. Only check when
+c # if digits in barno >= |isig| But to keep on/off phasing, must ALWAYS
+c keep track of ons and offs when |isig|<=3.
+c
+ ndigbn = int(alog10(ibarcnt+ibcoff+.01))+1
+ isnx = 0
+ if (ndigbn.ge.iabs(isig) .and. is1n1.gt.0) then
+c
+c There's a slur in top voice over the line break, hgt=is1n1, idcode=is2n1
+c Look for termination in remainder of this input block. If not found,
+c just use is1n1. Remember, haven't slid down yet.
+c
+ ioff = 0
+ if (ibar .gt. 1) ioff = nib(ivmx(nv,nvmx(nv)),ibar-1)
+ do 50 isdat = 1 , nsdat
+ if (igetbits(isdat1(isdat),5,13).eq.ivmx(nv,nvmx(nv))
+ * .and. .not.btest(isdat1(isdat),11)
+ * .and. igetbits(isdat1(isdat),7,19).eq.is2n1) then
+c
+c Found slur ending. Just check note height, can't do fine adjustments.
+c
+c is1n1 = max(is1n1,igetbits(isdat2(nsdat),7,19))
+ is1n1 = max(is1n1,igetbits(isdat2(isdat),7,19))
+ go to 51
+ end if
+50 continue
+c
+c If exiting loop normally, did not find end of slur. c'est la vie.
+c
+51 continue
+ isnx = idim(is1n1,ncmid(nv,1)+1+irzbnd)
+ if (isnx .gt. 0) then
+c
+c AHA! Slur likely to interfere with barno.
+c
+c Modified 090525 to use \bnrs
+c
+ slint = .true.
+ fmtq = '(a16,i1,a14)'
+ if (irzbnd+isnx .gt. 9) fmtq = '(a16,i2,a14)'
+ if (islast) write(11,fmtq)sq//'def'//sq//'raisebarno{',
+ * irzbnd+isnx,'.5'//sq//'internote}%'
+c if (islast) then
+c if (isnx .le. 9) then
+c write(11,'(a5,i1,a2)')sq//'bnrs',isnx,'0%'
+c else
+c write(11,'(a6,i2,a3)')sq//'bnrs{',isnx,'}0%'
+c end if
+c end if
+c
+ end if
+ end if
+ if (movbrk .gt. 0) then
+c
+c movbrk = 0
+c Move the reset down, so can use movbrk>0 to stop extra meter prints.
+c
+c New movement. Redefine stoppiece, contpiece. These will be called either
+c explicitly or as part of alaligne.
+c indsym = 0,1,2 for doubleBAR , doublebar, rightrepeat.
+c This is passed to \newmovement.
+c
+ if (rptfq2 .eq. 'E') rptfq2 = 'D'
+ indsym = index('Ddrbz',rptfq2)-1
+ rptfq2 = 'E'
+c
+c Also check for Rd or Rr set the normal way
+c
+ if (btest(islnow,8)) then
+ indsym = 1
+ else if (btest(islnow,6)) then
+ indsym = 2
+ end if
+ if (indsym .lt. 0) then
+ print*
+ print*,'Illegal end symbol before "/"'
+ call stop1()
+ end if
+c
+c Check for continuation (no bar number reset)
+c
+ if (islast.and.
+ * nobar1) write(11,'(a)')sq//'advance'//sq//'barno1'
+ * //sq//'startbarno'//sq//'barno%'
+ if (movgap .lt. 10) then
+ if (islast) write(11,'(a12,2i1,a1)')
+ * sq//'newmovement',movgap,indsym,'%'
+ else
+ if (islast) write(11,'(a13,i2,a1,i1,a1)')
+ * sq//'newmovement{',movgap,'}',indsym,'%'
+ end if
+c
+c Change generalmeter if necessary
+c
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+c
+c (Moved all name-writing to getnote, right when 'M' is detected)
+c
+ if (btest(iplnow,28)) then
+c
+c Key signature at movement break
+c
+ iplnow = ibclr(iplnow,28)
+ if (isig .gt. 0) then
+ if (islast) write(11,'(a18,i1,a2)')
+ * sq//'generalsignature{',isig,'}%'
+ else
+ if (islast) write(11,'(a18,i2,a2)')
+ * sq//'generalsignature{',isig,'}%'
+ end if
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ end if
+ if (parmov .ge. -.1) then
+c
+c Resent paragraph indentation
+c
+ ipi = parmov*widthpt+.1
+ if (ipi .lt. 10) then
+ if (islast) write(11,'(a11,i1,a2)')
+ * sq//'parindent ',ipi,'pt'
+ else if (ipi .lt. 100) then
+ if (islast)
+ * write(11,'(a11,i2,a2)')sq//'parindent ',ipi,'pt'
+ else
+ if (islast)
+ * write(11,'(a11,i3,a2)')sq//'parindent ',ipi,'pt'
+ end if
+ end if
+ end if
+ if (isystpg .eq. 1) then
+c
+c First line on a page (not 1st page, still first bar). Tidy up old page
+c then eject.
+c
+c Removed this 5/13/01 as it was causing double endvoltas. This probably
+c is only needed at the end in case there is no endvolta specified.
+c if (onvolt) then
+cc if (islast) write(11,'(a)')sq//'endvoltabox%'
+cc onvolt = .false.
+c end if
+c
+c
+c Check for meter change at start of a new PAGE
+c
+ if (mtrnuml .gt. 0) then
+c
+c Meter change at start of a new page. Ugly repeated coding here.
+c
+ mtrnms = mtrnuml
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ mtrnuml = mtrnms
+ if (movbrk .eq. 0 .and. islast)
+ * call wgmeter(mtrnmp,mtrdnp)
+ end if
+c
+c Key signature change?
+c
+ if (btest(iplnow,28) .and. movbrk.eq.0) then
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast) write(11,'(a)')
+ * notexq(1:lnote)//chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-'//sq//'afterruleskip}'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue%'
+ else if (mtrnuml.gt.0 .and. movbrk.eq.0) then
+c
+c Meter change but no signature change
+c
+ if (islast)
+ * write(11,'(a)')sq//'xchangecontext'//sq//'addspace{-'//
+ * sq//'afterruleskip}'//sq//'let'//sq//'bnat'//sq//
+ * 'barnoadd%'
+ if (islast)
+ * write(11,'(a)')sq//'def'//sq//'barnoadd{'//sq//'let'//
+ * sq//'barnoadd'//sq//'bnat}'//sq//'zstoppiece%'
+ else
+ if (islast) write(11,'(a)')sq//'stoppiece%'
+ end if
+c
+c This is the key spot when vshrink is used. Value of vshrink here comes from
+c just after the prior pagebreak, i.e., it is not affected by "Av"
+c that may have been entered at this pagebreak, since that only affects usevshrink.
+c So choose page *ending* (with or without \vfill) depending on old vshrink. Then
+c check value of usevshrink to reset vshrink if necessary for the new page, where
+c we have to set \interstaff and later call puttitle.
+c Top of first page needs special treatment. For this we use
+c novshrinktop, which was set in g1etnote on the first pass, since on
+c second pass, vshrink at top of page one is dealt with in topfile, which is called
+c *before* any reading in any "Av" at the top of the first input block.
+c
+ if (.not.vshrink) then
+ xnstbot = xnsttop(ipage)*etabot/etatop
+ if (xnstbot .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ if (islast) write(11,fmtq)sq//'vskip',xnstbot,
+ * sq//'Interligne'//sq//'eject%'
+ else
+ if (islast) write(11,'(a)') sq//'vfill'//sq//'eject%'
+ end if
+ ipage = ipage+1
+c
+c Now that page is ejected, compute new vshrink
+c
+ vshrink = xintstaff(ipage).gt.20 .and. usevshrink
+ if (vshrink) then
+ xinsnow = 10
+ else
+ xinsnow = xintstaff(ipage)
+ end if
+ if (fintstf.gt.0 .and. ipage.gt.1) then
+ xinsnow = xinsnow*fintstf/gintstf
+ fintstf = -1.
+ end if
+ if (xinsnow .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else if (xinsnow .lt. 99.95) then
+ fmtq = '(a,f4.1,a)'
+ else
+ fmtq = '(a,f5.1,a)'
+ end if
+c
+c Vertical spacing parameters, then restart
+c
+ if (islast) write(11,fmtq)sq//'interstaff{',xinsnow,
+ * '}'//sq//'contpiece'
+c
+c Check for meter change at start of a new PAGE
+c
+ if (mtrnuml .gt. 0) then
+c
+c Meter change at start of a new page
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) write(11,'(a)')sq//'newtimes2%'
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ end if
+ end if
+ end if
+c
+c If no real titles here, which there probably will never be, make vertical
+c space at page top with \titles{...}. headlog=.false.<=>no real titles
+c
+ call puttitle(inhnoh,xnsttop(ipage),etatop,
+ * sq,etait,etatc,etacs1,nv,vshrink,sepsymq)
+ if (HeaderSpecial)
+c
+c Write special header for first page
+c
+ * write(11,'(a)')chax(92)//'special{header=psslurs.pro}%'
+ else
+c
+c First bar of system, not a new page, force line break
+c
+ if (btest(iplnow,28)) then
+c
+c Signature change
+c
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast) write(11,'(a)')notexq(1:lnote)
+ * //chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1%'
+ if (mtrnuml .ne. 0) then
+c
+c Meter+sig change, new line, may need mods if movement break here.
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (islast) then
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'xchangecontext'//sq//
+c * 'addspace{-'//sq//'afterruleskip}'//sq//'def'
+ * 'addspace{-'//sq//'afterruleskip}'
+c * //sq//'writezbarno{}'//sq//'zalaligne%'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue'//sq//'contpiece%'
+ write(11,'(a)')sq//'addspace{-'//sq
+ * //'afterruleskip}%'
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'zchangecontext'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'xchangecontext'//sq//
+c * 'addspace{-'//sq//'afterruleskip}'//sq//'def'//
+ * 'addspace{-'//sq//'afterruleskip}'
+c * sq//'writezbarno{}'//sq//'zalaligne%'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue'//sq//'contpiece%'
+ end if
+ else if (mtrnuml .eq. 0) then
+c
+c No meter change
+c
+ if (islast) write(11,'(a)')sq//'alaligne'
+ else
+c
+c New meter, no new sig, end of line, not new page.
+c
+c \generalmeter{\meterfrac{3}{4}}%
+c \xchangecontext\addspace{-\afterruleskip}%
+c \zalaligne\generalmeter{\meterfrac{3}{4}}\addspace{-\afterruleskip}%
+c \zchangecontext
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) then
+ write(11,'(a)')
+ * sq//'let'//sq//'bnat'//sq//'barnoadd'
+ * //sq//'def'//sq//'barnoadd{'//sq//'empty}%'
+ write(11,'(a)')sq//'xchangecontext'//sq//
+ * 'addspace{-'//sq//'afterruleskip}'//sq//
+ * 'zalaligne'//sq//'let'//sq//'barnoadd'//sq//'bnat'
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'zchangecontext'
+ end if
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ else
+ if (islast) write(11,'(a)')sq//'alaligne'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'alaligne'
+ end if
+ end if
+ end if
+c
+c Modified 090525 to use \bnrs
+c
+ if (slint) then
+ slint = .false.
+ if (islast) write(11,'(a16,i1,a14)')sq//'def'//sq//
+ * 'raisebarno{',irzbnd,'.5'//sq//'internote}%'
+ end if
+ movbrk = 0
+ end if
+c
+c Clean up if we squelched bar number reset at movement break
+c
+ if (nobar1) then
+ if (islast) write(11,'(a)')sq//'startbarno1'
+ nobar1 = .false.
+ end if
+ read(12,*,end=14)iauto
+14 continue
+c
+c We come thru here for the 1st bar of every system, so initialize is1n1
+c
+ is1n1 = 0
+c
+c Brought down from above
+c
+ if (isystpg .eq. nsystp(ipage)) isystpg = 0
+c
+c Check for linebreak ties
+c
+ if (ispstie)
+ * call LineBreakTies(isdat1,isdat2,isdat3,isdat4,nsdat,
+ * ispstie,sepsymq)
+ else
+c
+c Not first bar of system
+c
+ if (btest(iplnow,28)) then
+c
+c Signature change
+c
+ if (mtrnuml .ne. 0) then
+c
+c Meter+signature change mid line, assume no movement break
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ notexq = sq//'generalsignature{'
+ lnote = 18
+ if (isig .lt. 0) then
+ notexq = notexq(1:18)//'-'
+ lnote = 19
+ end if
+ if (islast) then
+ iptemp = 48+abs(isig)
+ charq = chax(iptemp)
+ notexq = notexq(1:lnote)//charq//'}%'
+ lnote = lnote+3
+ write(11,'(a)')notexq(1:lnote)
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ write(11,'(a)')sq//'xchangecontext%'
+ end if
+ if (ibar .eq. ibarmbr) then
+c
+c Compute space for multibar rest
+c
+ if (lastisig*isig .ge. 0) then
+ naccs = max(abs(lastisig),abs(isig))
+ else
+ naccs = abs(lastisig-isig)
+ end if
+ xb4mbr = (facmtr+naccs*.24)*musicsize
+ end if
+ else
+c
+c Signature change only
+c
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast)
+ * write(11,'(a)')notexq(1:lnote)//chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-.5'// sq//'afterruleskip}%'
+ if (ibar .eq. ibarmbr) then
+c
+c Compute space for multibar rest
+c
+ if (lastisig*isig .ge. 0) then
+ naccs = max(abs(lastisig),abs(isig))
+ else
+ naccs = abs(lastisig-isig)
+ end if
+ xb4mbr = naccs*.24*musicsize
+ end if
+ end if
+ else if (mtrnuml .eq. 0) then
+c
+c No meter change
+c
+ if (islast) write(11,'(a)')sq//'xbar'
+ else
+c
+c Change meter midline
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) write(11,'(a,2i1,a)')sq//'newtimes0%'
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ else
+ if (islast) write(11,'(a)')sq//'xbar'
+ end if
+ end if
+ end if
+ end if
+c
+c Now that xbar's are written, can put in left-repeats at line beginnings
+c
+ if (lrptpend) then
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1'
+ * //sq//'leftrepeat'
+ lrptpend = .false.
+ end if
+ if (ibar .gt. 1) then
+c
+c For bars after first, slide all stuff down to beginning of arrays
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ioff = nib(ivx,ibar-1)
+ do 12 ip = 1 , nib(ivx,ibar)-ioff
+ nolev(ivx,ip) = nolev(ivx,ip+ioff)
+ nodur(ivx,ip) = nodur(ivx,ip+ioff)
+ nacc(ivx,ip) = nacc(ivx,ip+ioff)
+ irest(ivx,ip) = irest(ivx,ip+ioff)
+ islur(ivx,ip) = islur(ivx,ip+ioff)
+ ipl(ivx,ip) = ipl(ivx,ip+ioff)
+ iornq(ivx,ip) = iornq(ivx,ip+ioff)
+ mult(ivx,ip) = mult(ivx,ip+ioff)
+c if (ivx.le.2 .and. figbass)
+c * isfig(ivx,ip) = isfig(ivx,ip+ioff)
+ if (figbass .and. ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ if (ivx.eq.1) then
+ isfig(1,ip) = isfig(1,ip+ioff)
+ else
+ isfig(2,ip) = isfig(2,ip+ioff)
+ end if
+ end if
+12 continue
+ if (ivx.le.nv .and. ncc(iv).gt.1) then
+ islide = 0
+ do 13 icc = 1 , ncc(iv)
+ if (tcc(iv,icc) .le. lenbar) then
+c
+c This time will drop <=0 when slid.
+c
+ islide = icc-1
+ ncmidcc(iv,1) = ncmidcc(iv,icc)
+ else
+ tcc(iv,icc-islide) = tcc(iv,icc)-lenbar
+ ncmidcc(iv,icc-islide) = ncmidcc(iv,icc)
+ end if
+13 continue
+ ncc(iv) = ncc(iv)-islide
+ tcc(iv,1) = 0.
+ end if
+11 continue
+ do 15 ig = 1 , ngrace
+ ipg(ig) = ipg(ig)-nib(ivg(ig),ibar-1)
+ if (ibar .gt. 2) ipg(ig) = ipg(ig)+nib(ivg(ig),ibar-2)
+15 continue
+ do 21 il = 1 , nlit
+ iplit(il) = iplit(il)-nib(ivlit(il),ibar-1)
+ if (ibar .gt. 2) iplit(il) = iplit(il)+nib(ivlit(il),ibar-2)
+21 continue
+ do 22 it = 1 , ntrill
+ iptrill(it) = iptrill(it)-nib(ivtrill(it),ibar-1)
+ if (ibar .gt. 2) iptrill(it) =
+ * iptrill(it)+nib(ivtrill(it),ibar-2)
+22 continue
+ do 27 icrd = 1 , ncrd
+c ivx = iand(15,ishft(icrdat(icrd),-8))
+ ivx = iand(15,ishft(icrdat(icrd),-8))
+ * +16*igetbits(icrdat(icrd),1,28)
+ ipnew = iand(255,icrdat(icrd))-nib(ivx,ibar-1)
+ if (ibar .gt. 2) ipnew = ipnew+nib(ivx,ibar-2)
+ icrdat(icrd) = iand(not(255),icrdat(icrd))
+ icrdat(icrd) = ior(max(0,ipnew),icrdat(icrd))
+27 continue
+ do 29 iudorn = 1 , nudorn
+c ivx = iand(15,ishft(kudorn(iudorn),-8))
+ ivx = ivxudorn(iudorn)
+ ipnew = iand(255,kudorn(iudorn))-nib(ivx,ibar-1)
+ if (ibar .gt. 2) ipnew = ipnew+nib(ivx,ibar-2)
+ kudorn(iudorn) = iand(not(255),kudorn(iudorn))
+ kudorn(iudorn) = ior(max(0,ipnew),kudorn(iudorn))
+29 continue
+ do 42 idyn = 1 , ndyn
+ idynd = idyndat(idyn)
+c ivx = iand(15,idynd)
+ ivx = iand(15,idynd)+16*igetbits(idynda2(idyn),1,10)
+ ipnew = igetbits(idynd,8,4)-nib(ivx,ibar-1)
+c
+c The following construction avoids array bound errors in some compilers
+c
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(idynd,8,4,ipnew)
+ idyndat(idyn) = idynd
+42 continue
+ do 43 itxtdyn = 1 , ntxtdyn
+ idynd = ivxiptxt(itxtdyn)
+c ivx = iand(15,idynd)
+ ivx = iand(31,idynd)
+c ipnew = igetbits(idynd,8,4)-nib(ivx,ibar-1)
+ ipnew = igetbits(idynd,8,5)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+c call setbits(idynd,8,4,ipnew)
+ call setbits(idynd,8,5,ipnew)
+ ivxiptxt(itxtdyn) = idynd
+43 continue
+ do 41 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ ivx = ivmx(igetbits(isdata,5,13),igetbits(isdata,1,12)+1)
+ ipnew = igetbits(isdata,8,3)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(isdata,8,3,ipnew)
+ isdat1(isdat) = isdata
+41 continue
+ do 44 ibc = 1 , nbc
+c ivx = iand(15,ibcdata(ibc))
+ ivx = iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+ ipnew = igetbits(ibcdata(ibc),8,4)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(ibcdata(ibc),8,4,ipnew)
+44 continue
+ do 45 iarps = 1 , NumArpShift
+ IpArpShift(iarps) =
+ * IpArpShift(iarps)-nib(IvArpShift(iarps),ibar-1)
+ if (ibar .gt. 2) then
+ IpArpShift(iarps) =
+ * IpArpShift(iarps)+nib(IvArpShift(iarps),ibar-2)
+ end if
+45 continue
+c
+c Bookkeeping for figures. This will set nfigs = 0 if there are no figs left.
+c If there are figs left, it will reset all times relative to start of
+c current bar.
+c
+ do 46 ivx = 1 , 2
+ if (figbass) then
+ islide = 0
+ do 20 jfig = 1 , nfigs(ivx)
+ if (itfig(ivx,jfig) .lt. lenbar) then
+c
+c This figure was already used
+c
+ islide = jfig
+ else
+ itfig(ivx,jfig-islide) = itfig(ivx,jfig)-lenbar
+ figq(ivx,jfig-islide) = figq(ivx,jfig)
+ itoff(ivx,jfig-islide) = itoff(ivx,jfig)
+ ivupfig(ivx,jfig-islide) = ivupfig(ivx,jfig)
+ end if
+20 continue
+ nfigs(ivx) = nfigs(ivx)-islide
+ end if
+ if (nfigs(2) .eq. 0) go to 47
+46 continue
+47 continue
+ end if
+c
+c End of sliding down for bars after first in gulp.
+c
+c The following may not be needed by makeabar, but just in case...
+c
+ if (firstgulp .and. lenb0.ne.0) then
+ if (ibar .eq. 1) then
+ lenbar = lenb0
+ else
+ lenbar = lenb1
+ end if
+ end if
+c
+c Equal line spacing stuff
+c
+ if (equalize .and. bar1syst) then
+ if (isystpg .eq. 1) then
+ write(11,'(a)')sq//'starteq%'
+ else if (isystpg .eq. nsystp(ipage)-1) then
+ write(11,'(a)')sq//'endeq%'
+ end if
+ end if
+ call make1bar(ibmrep,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart)
+ call make2bar(ninow,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart,clefq)
+c
+c Hardspace before barline?
+c
+ hardb4 = 0.
+ do 35 iv = 1 , nv
+ do 35 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (btest(irest(ivx,nn(ivx)),18)) then
+ nudoff(ivx) = nudoff(ivx)+1
+ hardb4 = max(hardb4,udoff(ivx,nudoff(ivx)))
+ end if
+35 continue
+ if (hardb4 .gt. 0.) then
+ if (islast) write(11,'(a11,f5.1,a4)')sq
+ * //'hardspace{',hardb4,'pt}%'
+ fixednew = fixednew-hardb4
+ end if
+10 continue
+ firstgulp = .false.
+ lenb0 = 0
+ go to 30
+40 close(12)
+ close(13)
+ ilbuf = 1
+ ipbuf = 0
+ wdpt = widthpt
+ if (iline .eq. 1) wdpt = widthpt*(1-fracindent)
+ poe = (wdpt-fsyst*musicsize-0.4*nbarss-fixednew)/
+ * (elsktot+fbar*nbarss-scaldold)
+ poevec(nsyst) = poe
+ if (.not.islast) then
+ close(11)
+ close(16)
+ if (figbass) close(14)
+ return
+ end if
+ do 19 ia = 1 , nasksys
+ iask = iask+1
+ ask(iask) = wasksys(ia)/poe-abs(elasksys(ia))
+ if (elasksys(ia).gt.0) ask(iask)=dim(ask(iask),0.)
+19 continue
+ do 26 ia = 1 , nhssys
+ nhstot = nhstot+1
+ hpttot(nhstot) = max(hpts(ia)-hesk(ia)*poe,0.)
+26 continue
+ if (islast .and.
+ * onvolt) write(11,'(a)')sq//'endvoltabox'
+ if (rptfq2 .ne. 'E') then
+c
+c Terminal repeat. Right or double?
+c
+ if (rptfq2 .eq. 'r') then
+ if (islast) write(11,'(a)')sq//'setrightrepeat'
+ * //sq//'endpiece'
+ else if (rptfq2 .eq. 'd') then
+ if (islast) write(11,'(a)')sq//'setdoublebar'//sq//'endpiece'
+ else if (rptfq2 .eq. 'b') then
+ if (islast) write(11,'(a)')sq//'endpiece'
+ else if (rptfq2 .eq. 'z') then
+ if (islast) write(11,'(a)')sq//'setzalaligne'//sq//'Endpiece'
+ else
+c else if (rptfq2 .ne. 'D') then
+ print*
+ print*,'R? , ? not "d","r",or"b","z"; rptfq2:',rptfq2
+ write(15,*)'R? , ? not "d","r",or"b","z"; rptfq2:',rptfq2
+ if (islast) write(11,'(a)')sq//'Endpiece'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'Endpiece'
+ end if
+ if (.not.vshrink) then
+ xnstbot = xnsttop(ipage)*etabot/etatop
+ if (xnstbot .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ if (islast) write(11,fmtq)sq//'vskip',xnstbot,
+ * sq//'Interligne'//sq//'eject'//sq//'endmuflex'
+ if (islast) write(11,'(a)')sq//'bye'
+ else
+ if (islast) write(11,'(a)')
+ * sq//'vfill'//sq//'eject'//sq//'endmuflex'
+ if (islast) write(11,'(a)')sq//'bye'
+ end if
+ rewind(11)
+ if (figbass) then
+ write(14,'(a9,i2,a10,i2,1x,a5)')
+ * sq//'figdrop=',ifigdr(1,iline),
+ * ' '//sq//'figdtwo=',ifigdr(2,iline),sq//'fi}%'
+ rewind(14)
+ end if
+ call askfig(pathnameq,lpath,basenameq,lbase,figbass,istype0)
+ if (.not.optimize) then
+ print*
+ print*,'Writing '
+ * //pathnameq(1:lpath)//basenameq(1:lbase)//'.tex'
+ print*,'Done with second PMX pass.'
+ write(15,'(/,a)')'Writing '
+ * //pathnameq(1:lpath)//basenameq(1:lbase)//'.tex'
+ write(15,'(a)')' Done with second PMX pass. Now run TeX'
+ end if
+ return
+ end
+ subroutine poestats(nsyst,poe,poebar,devnorm)
+ parameter (nks=125)
+c
+c Compute avg. & norm. std. dev. of poe.
+c
+ real*4 poe(nks)
+ sumx = 0.
+ sumxx = 0.
+ do 1 isyst = 1 , nsyst
+ sumx = sumx+poe(isyst)
+ sumxx = sumxx+poe(isyst)**2
+1 continue
+2 continue
+ devnorm = sqrt(nsyst*sumxx/sumx**2-1)
+ poebar = sumx/nsyst
+ return
+ end
+ subroutine precrd(ivx,ip,nolevm,nacc,ipl,irest,udq,
+ * twooftwo,icashft)
+c
+c Analyzes chords, data to be used with slurs on chords and plain chords.
+c Check for 2nds, shift notes if neccesary.
+c ipl(10) chord present
+c irest(20) set if any note is right shifted
+c irest(27) set if any note is left shifted
+c ipl(8|9) left|right shift main note
+c icrdat(23|24) ditto chord note
+c udq is updown-ness, needed to analyze 2nds.
+c levtabl(i)=0 if no note at this level, -1 if main note, icrd if chord note.
+c icrdot(icrd)(27-29) sequence order of chord note if accid, top down
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ logical btest,is2nd,twooftwo
+ integer*4 kicrd(10),levtabl(88)
+ character*1 udq
+ do 11 i = 1 , 88
+ levtabl(i) = 0
+11 continue
+ do 1 icrd1 = 1 , ncrd
+ ivx1 = iand(15,ishft(icrdat(icrd1),-8))
+ * +16*igetbits(icrdat(icrd1),1,28)
+ ip1 = iand(255,icrdat(icrd1))
+ if (ip1.eq.ip .and. ivx1.eq.ivx) go to 2
+1 continue
+ print*
+ print*,
+ * 'Cannot find first chord note in precrd. Send source to Dr. Don!'
+ call stop1()
+2 continue
+ maxlev = nolevm
+ minlev = nolevm
+ levtabl(nolevm) = -1
+ is2nd = .false.
+ naccid = 0
+ levmaxacc = -100
+ levminacc = 1000
+c
+c Check 1st 3 bits of nacc for accid on main note of chord.
+c
+ if (iand(7,nacc) .gt. 0) then
+ naccid = 1
+c
+c Start list of notes with accid's. There will be naccid of them. kicrd=0 if main,
+c otherwise icrd value for note with accidental.
+c
+ kicrd(1) = 0
+ levmaxacc = nolevm
+ levminacc = nolevm
+c
+c Start the level-ranking
+c
+ icrdot0 = 1
+ end if
+ do 3 icrd2 = icrd1 , ncrd
+ nolev = igetbits(icrdat(icrd2),7,12)
+ levtabl(nolev) = icrd2
+ maxlev = max(maxlev,nolev)
+ minlev = min(minlev,nolev)
+c
+c Check for accidental
+c
+ if (btest(icrdat(icrd2),19)) then
+ naccid = naccid+1
+ levmaxacc = max(levmaxacc,nolev)
+ levminacc = min(levminacc,nolev)
+c
+c Add this icrd to list of values for notes with accid's.
+c
+ kicrd(naccid) = icrd2
+ if (.not.btest(nacc,28)) then
+c
+c Order not forced, so get the level-ranking, top down
+c
+ iorder = 1
+ do 12 iaccid = 1 , naccid-1
+ if (kicrd(iaccid) .eq. 0) then
+ if (nolevm .gt. nolev) then
+ iorder = iorder+1
+ else
+ icrdot0 = icrdot0+1
+ end if
+ else
+ if (igetbits(icrdat(kicrd(iaccid)),7,12)
+ * .gt. nolev) then
+ iorder = iorder+1
+ else
+ iold = igetbits(icrdot(kicrd(iaccid)),3,27)
+ call setbits(icrdot(kicrd(iaccid)),3,27,iold+1)
+ end if
+ end if
+12 continue
+ call setbits(icrdot(icrd2),3,27,iorder)
+ end if
+ end if
+c
+c Exit loop if last note in this chord
+c
+ if (icrd2 .eq. ncrd) go to 4
+ if (igetbits(icrdat(icrd2+1),8,0) .ne. ip .or.
+c * igetbits(icrdat(icrd2+1),4,8) .ne. ivx) go to 4
+ * igetbits(icrdat(icrd2+1),4,8)
+ * +16*igetbits(icrdat(icrd2+1),1,28) .ne. ivx) go to 4
+3 continue
+ print*
+ print*,'Failed to find last chord note. Send source to Dr. Don!'
+ call stop1()
+4 continue
+c
+c Now icrd1, icrd2 define range of icrd for this chord.
+c
+c Bypass autos-shifting if any manual shifts are present
+c
+ if (btest(irest,20) .or. btest(irest,27)) go to 10
+c
+c Check for 2nds
+c
+ do 5 ilev = 1 , 87
+ if (levtabl(ilev).ne.0 .and. levtabl(ilev+1).ne.0) then
+c
+c There is at least one 2nd..
+c
+ if (udq .eq. 'u') then
+c
+c Upstem. Start with 2nd just found and go up, rt-shifting upper
+c member of each pair
+c
+ ile = ilev
+c
+c Set main-note flag for ANY right-shift
+c
+ irest = ibset(irest,20)
+7 continue
+ if (levtabl(ile+1) .lt. 0) then
+c
+c Upstem, & upper member is main so must be rt-shifted. This would move
+c stem too, so we rt-shift the OTHER note, and set flag that signals
+c to interchange pitches just when these two notes are placed.
+c
+ nacc = ibset(nacc,30)
+ icrdat(levtabl(ile)) = ibset(icrdat(levtabl(ile)),24)
+ else
+c
+c Upper member is chord note, must be rt-shifted
+c
+ icrdat(levtabl(ile+1)) = ibset(icrdat(levtabl(ile+1)),24)
+ end if
+ ile = ile+1
+8 continue
+ ile = ile+1
+ if (ile .lt. 87) then
+ if (levtabl(ile).ne.0 .and. levtabl(ile+1).ne.0) then
+ go to 7
+ else
+ go to 8
+ end if
+ end if
+ go to 10
+ else
+c
+c Downstem. Start at top and work down, left-shifting lower member of each pair.
+c We know that lowest pair is at (ilev,ilev+1).
+c
+ ile = 88
+c
+c Set main-note flag for ANY right-shift
+c
+ irest = ibset(irest,27)
+9 continue
+ if (levtabl(ile).ne.0 .and. levtabl(ile-1).ne.0) then
+ if (levtabl(ile-1) .lt. 0) then
+c ipl = ibset(ipl,8)
+c
+c Dnstem, & lower member is main so must be left-shifted. This would move
+c stem too, so we left-shift the OTHER note, and set flag that signals
+c to interchange pitches just when these two notes are placed.
+c
+ nacc = ibset(nacc,31)
+ icrdat(levtabl(ile)) = ibset(icrdat(levtabl(ile)),23)
+ else
+c
+c Lower member is chord note, must be shifted
+c
+ icrdat(levtabl(ile-1)) =
+ * ibset(icrdat(levtabl(ile-1)),23)
+ end if
+ ile = ile-1
+ end if
+ ile = ile-1
+ if (ile .ge. ilev+1) go to 9
+ go to 10
+ end if
+ end if
+5 continue
+10 continue
+c
+c Done with 2nds, now do accid's. Call even if just one, in case left shifts.
+c
+c if (naccid .gt. 1) call crdaccs(nacc,ipl,irest,naccid,
+ if (naccid .ge. 1) call crdaccs(nacc,ipl,irest,naccid,
+ * kicrd,nolevm,levmaxacc,levminacc,icrdot0,twooftwo,icashft)
+ return
+ end
+ subroutine printl(string)
+ character*(*) string
+c
+c Send string to console and to log file
+c
+ print*,string
+ write(15,'(a)')string
+ return
+ end
+ subroutine putarp(tnow,iv,ip,nolev,ncm,soutq,lsout)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtol/ tol
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ logical lowdot,IsArpShift
+ character*80 soutq
+ character*79 notexq
+ character*8 symq(2)
+ character*1 chax
+ data symq /'raisearp','arpeggio'/
+
+c
+c Find which iarp, if any
+c
+ do 1 iarp = 1 , narp
+ if (abs(tnow-tar(iarp)).lt.tol) go to 2
+1 continue
+c
+c If here, this is the *first* call for this arp.
+c
+ narp = narp+1
+ tar(narp) = tnow+tol*.5
+ ivar1(narp) = iv
+ ipar1(narp) = ip
+ levar1(narp) = nolev
+ ncmar1(narp) = ncm
+ return
+2 continue
+c
+c If here, this is *second* call at this time, iarp points to values from 1st.
+c
+c Check for shift. Set IsArpShift and iarps
+c
+ do 3 iarps = 1 , NumArpShift
+ if (IvArpShift(iarps) .eq. ivar1(iarp) .and.
+ * IpArpShift(iarps) .eq. ipar1(iarp)) then
+ IsArpShift = .true.
+ notexq = chax(92)//'loffset{'
+ write(notexq(10:14),'(f3.1,a2)') Arpshift(iarps),'}{'
+ lnote = 14
+ go to 4
+ end if
+3 continue
+ IsArpShift = .false.
+ lnote = 0
+4 continue
+ if (iv .eq. ivar1(iarp)) then
+c
+c Arp is in a single staff.
+c
+ levbot = min(levar1(iarp),nolev)-ncm+3
+ invert = abs(levar1(iarp)-nolev)+1
+ else
+c
+c Arp covers >1 staff. Lower staff has to be the first, upper is current and
+c is where the symbol will be written.
+c
+ levbot = -nint(2*xinsnow)+3+levar1(iarp)-ncmar1(iarp)
+ invert = -levbot+4+nolev-ncm
+c print*,'xinsnow,levar1,ncmar1,levbot,nolev,ncm:'
+c write(*,'(f5.1,5i5)')xinsnow,levar1(iarp),ncmar1(iarp),
+c *levbot,nolev,ncm
+ end if
+c
+c isym will be (1,2) if invert is (even,odd). If even, raise .5\internote
+c
+ isym = mod(invert,2)+1
+ ilvert = (invert+1)/2
+ if (levbot .ge. 0 .and. levbot .le. 9) then
+c
+c Single digit
+c
+ if (.not.IsArpShift) then
+ notexq = chax(92)//symq(isym)//chax(48+levbot)
+ else
+ notexq = notexq(1:lnote)//
+ * chax(92)//symq(isym)//chax(48+levbot)
+ end if
+ lnote = lnote+10
+ else
+ if (.not.IsArpShift) then
+ notexq = chax(92)//symq(isym)//'{'
+ else
+ notexq = notexq(1:lnote)//chax(92)//symq(isym)//'{'
+ end if
+ lnote = lnote+10
+ if (levbot .ge. -9) then
+c
+c Need two spaces for number
+c
+ write(notexq(lnote+1:lnote+3),'(i2,a1)')levbot,'}'
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+4),'(i3,a1)')levbot,'}'
+ lnote = lnote+4
+ end if
+ end if
+c if (ilvert .le. 9) then
+c call addstr(notexq(1:lnote)//chax(48+ilvert),lnote+1,
+c * soutq,lsout)
+c else
+c write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')'{',ilvert,'}'
+c call addstr(notexq(1:lnote+4),lnote+4,soutq,lsout)
+c end if
+
+ if (ilvert .gt. 9) then
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')'{',ilvert,'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//chax(48+ilvert)
+ lnote = lnote+1
+ end if
+ if (IsArpShift) then
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+c
+c cancel out the stored time, to permit two arps at same time!
+c
+ tar(iarp) = -1.
+ return
+ end
+ subroutine putast(elask,indxask,outq)
+ character*129 outq,tag
+ character*9 fmtq
+ if (elask .ge. 0.) then
+ if (elask.lt.0.995) then
+ lp = 3
+ else if (elask .lt. 9.995) then
+ lp = 4
+ else
+ lp = 5
+ end if
+ write(fmtq,'(a5,i1,a3)')'(a2,f',lp,'.2)'
+ else
+ lp = 5
+ fmtq = '(a2,f5.1)'
+ end if
+c
+c Overwrite as follows: ...xyz*ask *lmnop... ->
+c ...xyz*ast{.nn}*lmnop...
+c ...xyz*ast{n.nn}*lmnop...
+c ...xyz*ast{nn.nn}*lmnop...
+c or for negative, ...xyz*ast{-nn.n}*lmnop...
+ tag = outq(indxask+9:)
+ write(outq(indxask+3:),fmtq)'t{',elask
+ outq = outq(1:indxask+4+lp)//'}'//tag
+ return
+ end
+ subroutine putcb(ivx,ip,notexq,lnote)
+ common /comcb/ nbc,ibcdata(36)
+ character*79 notexq
+ logical btest
+c ivxip = ivx+16*ip
+ do 1 ibc = 1 , nbc
+c if (ivxip .eq. iand(1023,ibcdata(ibc))) go to 2
+c if (ivx.eq.iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+c * .and. ip.eq.iand(1008,ibcdata(ibc))) go to 2
+ ivxbc = iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+ ipbc = igetbits(ibcdata(ibc),8,4)
+ if (ivx .eq. ivxbc .and. ip .eq.ipbc) go to 2
+1 continue
+ call printl('Error in putbc, Call Dr. Don')
+ stop
+2 continue
+ if (btest(ibcdata(ibc),27)) then
+ lnote = 8
+ notexq = char(92)//'pbreath'
+ else
+ lnote = 9
+ notexq = char(92)//'pcaesura'
+ end if
+ ivshft = igetbits(ibcdata(ibc),6,13)
+c?? ivshft = igetbits(ibcdata(ibc),6,13)-32
+ if (ivshft .gt. 0) ivshft = ivshft-32
+ if (ivshft.lt.0 .or. ivshft.gt.9) then
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (ivshft .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')ivshft
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+2),'(i2)')ivshft
+ lnote = lnote+2
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+ notexq = notexq(1:lnote)//char(48+ivshft)
+ lnote = lnote+1
+ end if
+ ihshft = igetbits(ibcdata(ibc),8,19)
+ if (ihshft .eq. 0) then
+ notexq = notexq(1:lnote)//'0'
+ lnote = lnote+1
+ else
+ hshft = .1*(ihshft-128)
+c
+c -12.8<hshft<12.8
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (hshft .lt. -9.95) then
+ write(notexq(lnote+1:lnote+5),'(f5.1)')hshft
+ lnote = lnote+5
+ else if (hshft.lt.-0.05 .or. hshft.gt.9.95) then
+ write(notexq(lnote+1:lnote+4),'(f4.1)')hshft
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+3),'(f3.1)')hshft
+ lnote = lnote+3
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ return
+ end
+ subroutine putfig(ivx,ifig,offnsk,figcheck,soutq,lsout)
+ parameter (nm=24)
+ common /comfig/ itfig(2,74),figqq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figqq,figq
+ character*80 soutq,notexq
+ character*1 ch1q,ch2q,sq,chax
+ character*5 nofq,nofaq
+ character*4 Figutq,Conttq
+ logical figcheck
+ if (ivx .eq. 1) then
+ Figutq = 'Figu'
+ Conttq = 'Cont'
+ else
+ Figutq = 'Figt'
+ Conttq = 'Cott'
+ end if
+ sq = chax(92)
+ if (abs(offnsk) .gt. .0001) then
+c
+c Write offset for floating figure, to two decimal places
+c
+ notexq = sq//'off{'
+ if (-offnsk .lt. -9.995) then
+ write(notexq(6:11),'(f6.2)')-offnsk
+ lnote = 11
+ else if (-offnsk.lt.-.995 .or. -offnsk.gt.9.995) then
+ write(notexq(6:10),'(f5.2)')-offnsk
+ lnote = 10
+ else if (-offnsk.lt.-.0001 .or. -offnsk.gt..995) then
+ write(notexq(6:9),'(f4.2)')-offnsk
+ lnote = 9
+ else
+ write(notexq(6:8),'(f3.2)')-offnsk
+ lnote = 8
+ end if
+ notexq = notexq(1:lnote)//sq//'noteskip}'
+ call addstr(notexq,lnote+10,soutq,lsout)
+ end if
+ figq = figqq(ivx,ifig)
+ ic = 1
+c nof = 0
+c nofa = -1
+ nof = -ivupfig(ivx,ifig)
+ nofa = -ivupfig(ivx,ifig)-1
+c
+c Beginning of manual loop
+c
+1 ch1q = figq(ic:ic)
+c
+c Exit when first blank is encountered
+c
+ if (ch1q .eq. ' ') go to 2
+c
+c Starting a level. Set up vertical offset.
+c
+c lnof = 1
+c nofq = chax(nof+48)
+c if (nof .gt. 9) then
+c lnof = 2
+c nofq = '1'//chax(nof-10+48)
+c end if
+c if (nofa .eq.-1) then
+c lnofa = 2
+c nofaq = '-1'
+c else if (nofa .lt. 10) then
+c lnofa = 1
+c nofaq = chax(nofa+48)
+c else
+c lnofa = 2
+c nofaq = '1'//chax(nofa+38)
+c end if
+ call istring(nof,nofq,lnof)
+ call istring(nofa,nofaq,lnofa)
+ if (ch1q .eq. '0') then
+c
+c Continuation figure. Next number is length (in noteskips). The number will
+c end at the first blank or char that is not digit or decimal point. If
+c colon, it is a separator and must be skipped
+c
+ icnum = ic+1
+3 continue
+ ic = ic+1
+ if (index('0123456789.',figq(ic:ic)) .gt. 0) go to 3
+ lnum = ic-icnum
+ call addstr(sq//Conttq//nofq(1:lnof)//'{'
+ * //figq(icnum:ic-1)//'}',7+ic-icnum+lnof,soutq,lsout)
+ if (figq(ic:ic) .ne. ':') ic=ic-1
+ else if (ch1q.eq.'#'.or.ch1q.eq.'-'.or.ch1q.eq.'n') then
+ ic = ic+1
+ ch2q = figq(ic:ic)
+ if (ch2q .eq. ' ') then
+c
+c Figure is a stand-alone accidental, so must be centered
+c
+ if (ch1q .eq. '#') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'sharpfig}',16+lnofa,soutq,lsout)
+ else if (ch1q .eq. '-') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'flatfig}',15+lnofa,soutq,lsout)
+ else if (ch1q .eq. 'n') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'natfig}',14+lnofa,soutq,lsout)
+ end if
+ go to 2
+ else
+c
+c Figure is an accidental followed by a number
+c First put the accidental (offset to the left)
+c
+ if (ch1q .eq. '#') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmsh}',
+ * 13+lnofa,soutq,lsout)
+ else if (ch1q .eq. '-') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmfl}',
+ * 13+lnofa,soutq,lsout)
+ else if (ch1q .eq. 'n') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmna}',
+ * 13+lnofa,soutq,lsout)
+ end if
+c
+c Now put the number
+c
+ call addstr(sq//Figutq//nofq(1:lnof)//'{'//ch2q//'}',
+ * 8+lnof,soutq,lsout)
+ endif
+ else if (ch1q .eq. '_') then
+c
+c Placeholder only (for lowering a figure). Don't do anything!
+c
+ continue
+ else
+c
+c Figure is a single number, maybe with s after
+c
+ call addstr(sq//Figutq//nofq(1:lnof)//'{',
+ * 6+lnof,soutq,lsout)
+ ch2q = figq(ic+1:ic+1)
+ if (ch2q .eq. 's') then
+c
+c Use a special character. Insert font call
+c
+ ic = ic+1
+ call addstr(sq//'ligfont',8,soutq,lsout)
+ end if
+ call addstr(ch1q//'}',2,soutq,lsout)
+c call addstr(sq//Figutq//nofq(1:lnof)//'{'//ch1q//'}',
+c * 8+lnof,soutq,lsout)
+ end if
+ if (ic .ge. 10) go to 2
+ ic = ic+1
+ nof = nof+4
+ nofa = nofa+4
+ go to 1
+2 continue
+ if (abs(offnsk) .gt. .0001) then
+ notexq = sq//'off{'
+ if (offnsk .lt. -9.995) then
+ write(notexq(6:11),'(f6.2)')offnsk
+ lnote = 11
+ else if (offnsk.lt.-.995 .or. offnsk.gt.9.995) then
+ write(notexq(6:10),'(f5.2)')offnsk
+ lnote = 10
+ else if (offnsk.lt.-.0001 .or. offnsk.gt..995) then
+ write(notexq(6:9),'(f4.2)')offnsk
+ lnote = 9
+ else
+ write(notexq(6:8),'(f3.2)')offnsk
+ lnote = 8
+ end if
+ notexq = notexq(1:lnote)//sq//'noteskip}'
+ call addstr(notexq,lnote+10,soutq,lsout)
+ end if
+ if (ifig .lt. nfigs(ivx)) then
+ ifig = ifig+1
+ else
+ nfigs(ivx) = 0
+ figcheck = .false.
+ end if
+ return
+ end
+ subroutine putorn(iornq,nolev,nolevm,nodur,nornb,ulq,ibmcnt,ivx,
+ * ncm,islur,nvmx,nv,ihornb,stemlin,outq,lout,ip,islhgt,
+ * beamon,iscrd)
+c
+c All args are individual array element *values* except nornb,ihornb,ulq.
+c notcrd = .true. if ornament is on main note.
+c nolevm is level of main note (for chords)
+c
+ parameter (nm=24)
+ character*1 ulpzq,ulq(nm,9),udqq,sq,chax
+ character*8 noteq
+ character*79 notexq,outq
+ integer*4 ihornb(nm,24),nornb(nm)
+ logical btest,iscrd,usehornb,beamon
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ sq = chax(92)
+ lout = 0
+ usehornb = .false.
+ if (nodur .lt. 64) then
+ stemlen = stemlin
+ else
+ stemlen = 0.
+ end if
+c
+c Get up-downness. ulpzq is opposite from stem direction for both beams and
+c non beams. Can use in name of ornament [ . or _ ]
+c
+ if (beamon) then
+ if (ulq(ivx,ibmcnt) .eq. 'u') then
+ ulpzq = 'l'
+ else
+ ulpzq = 'u'
+ end if
+ else
+ if (udqq(nolevm,ncm,islur,nvmx,ivx,nv).eq.'l' ) then
+ ulpzq = 'u'
+ else
+ ulpzq = 'l'
+ end if
+ end if
+c
+c To enable >1 ornament on a note, next line is top of manual loop.
+c
+2 continue
+c
+c Bit # of last ornament (last of bits 0-21)
+cc Bit # of last ornament (last of bits 0-24)
+ ibit = log2(iand(iornq,4194303))
+c ibit = log2(iand(iornq,33554431))
+ iornt = 2**ibit
+c
+c Begin routine to set height. Bits 0-13: (stmgx+Tupf._)
+c 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n
+c 19-20: >^, 21: ? (with or w/o 16-18)
+c
+c Do not use beam height for . or _
+c
+ if (btest(iornq,22) .and. iand(iornt,6144).eq.0) then
+c
+c Height is set by special beam stuff.
+c Do not leave ihorn set, do separately for every ornament
+c
+ ihorn = ihornb(ivx,nornb(ivx))
+ if (ulpzq .eq. 'u') ihorn = ihorn-2
+c
+c Following flag tells whether to increment nornb when exiting the subroutine.
+c
+ usehornb = .true.
+ else if (ibit .eq. 14) then
+c
+c Down fermata. Don't worry about upper chord notes.
+c
+ if (ulpzq .eq. 'l') then
+ ihorn = min(nolev,ncm-3)
+ else
+ ihorn = min(nolev-stemlen,ncm-3.)
+ end if
+ else if (btest(iornt,13) .or. btest(iornt,0)) then
+c
+c ( or )
+c
+ ihorn = nolev
+ else if (iand(iornt,6144) .gt. 0) then
+c
+cc Staccato . or tenuto _ , but not special beam stuff. Need up-down info
+c NOTE: removed .&_ from special beam treatment.
+c Staccato . or tenuto _ Need up-down info
+c
+ if (.not.iscrd .or. (maxlev.ne.nolev.and.ulpzq.eq.'l') .or.
+ * (minlev.ne.nolev.and.ulpzq.eq.'u')) then
+ ihorn = nolev
+ else if (maxlev .eq. nolev) then
+ ulpzq = 'u'
+ ihorn = max(nolev+stemlen,ncm+3.)
+ else
+ ulpzq = 'l'
+ ihorn = min(nolev-stemlen,ncm-3.)
+ end if
+ else if (iscrd .and. nolev .eq. minlev) then
+ if (ulpzq .eq. 'l') then
+ ihorn = min(nolev-3,ncm-6)
+ else
+ ihorn = min(nolev-nint(stemlen)-3,ncm-6)
+ end if
+ else if (ibit.eq.10 .and. nolev.gt.90) then
+c
+c Special treatment for fermata on a shifted rest
+c
+ ihorn = ncm+5
+ else if (ulpzq.eq.'l') then
+c
+c (iscrd and nolev=maxlev) or (.not.iscrd)
+c
+ ihorn = max(nolev+stemlen+2,ncm+5.)
+ else
+ ihorn = max(nolev+2,ncm+5)
+ end if
+ ioff = 0
+ iclracc = 0
+c
+c Begin routine to set name. Bits 0-13: (stmgx+Tupf._)
+c 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n
+c
+ if (btest(iornt,2)) then
+ notexq = sq//'shake'
+ lnote = 6
+ else if (btest(iornt,3)) then
+ notexq = sq//'mordent'
+ lnote = 8
+ else if (btest(iornt,1)) then
+ notexq = sq//'mtr'
+ lnote = 4
+ else if (btest(iornt,5)) then
+ notexq = sq//'xtr'
+ lnote = 4
+ else if (btest(iornt,6)) then
+ notexq = sq//'ptr'
+ lnote = 4
+ else if (btest(iornt,13)) then
+ notexq = sq//'rpn'
+ lnote = 4
+ else if (btest(iornt,0)) then
+ notexq = sq//'lpn'
+ lnote = 4
+ else if (btest(iornt,12)) then
+ notexq = sq//ulpzq//'st'
+ lnote = 4
+ else if (btest(iornt,11)) then
+ notexq = sq//ulpzq//'pz'
+ lnote = 4
+ else if (btest(iornt,8)) then
+ notexq = sq//'upz'
+ lnote = 4
+ ioff = -2
+ else if (btest(iornt,9)) then
+ notexq = sq//'uppz'
+ lnote = 5
+ ioff = -2
+ else if (btest(iornt,10)) then
+ if (nodur .lt. 48) then
+ notexq = sq//'fermataup'
+ else
+ notexq = sq//'Fermataup'
+ end if
+ lnote = 10
+ ioff = -2
+ else if (btest(iornt,14)) then
+ if (nodur .lt. 48) then
+ notexq = sq//'fermatadown'
+ else
+ notexq = sq//'Fermatadown'
+ end if
+ lnote = 12
+ else if (btest(iornt,21)) then
+c
+c "?" in editorial ornament. Clear bit 16-18 after use, since ibit=21
+c
+ if (btest(iornq,16)) then
+ notexq = sq//'qsharp'
+ lnote = 7
+ ioff = 2
+ iornq = ibclr(iornq,16)
+ iclracc = 16
+ else if (btest(iornq,17)) then
+ notexq = sq//'qflat'
+ lnote = 6
+ ioff = 1
+ iornq = ibclr(iornq,17)
+ iclracc = 17
+ else if (btest(iornq,18)) then
+ notexq = sq//'qnat'
+ lnote = 5
+ ioff = 2
+ iornq = ibclr(iornq,18)
+ iclracc = 18
+ else
+ notexq = sq//'qedit'
+ lnote = 6
+ ioff = 0
+ end if
+ else if (btest(iornt,16)) then
+ notexq = sq//'esharp'
+ lnote = 7
+ ioff = 2
+ else if (btest(iornt,17)) then
+ notexq = sq//'eflat'
+ lnote = 6
+ ioff = 1
+ else if (btest(iornt,18)) then
+ notexq = sq//'enat'
+ lnote = 5
+ ioff = 2
+ else if (btest(iornt,19)) then
+ notexq = sq//'usf'
+ lnote = 4
+ ioff = -2
+ else if (btest(iornt,20)) then
+ notexq = sq//'usfz'
+ lnote = 5
+ ioff = -2
+ end if
+ iudorn = 0
+c
+c User-defined level shift of ornament from default?
+c
+ if (btest(iornq,25)) then
+c
+c Find which (if any) element of kudorn has the shift.
+c
+ do 3 iudorn = 1 , nudorn
+ if (ibit .lt. 21) then
+ ibitt = ibit
+c
+c Could have oes, but not oe? or oes?
+c
+ else if (iclracc .gt. 0) then
+c
+c Earlier cleared edit. accid, meaning it was oes?
+c
+ ibitt = iclracc+6
+ else
+ ibitt = 21
+ end if
+ ibitt=ip+ishft(mod(ivx,16),8)+ishft(nolev,12)+ishft(ibitt,19)
+c if (ibitt .eq. iand(33554431,kudorn(iudorn))) go to 4
+ if (ibitt .eq. iand(33554431,kudorn(iudorn))
+ * .and. ivx.eq.ivxudorn(iudorn)) go to 4
+3 continue
+c
+c Nothing shifted on this note; exit this if block
+c
+ iudorn = 0
+ go to 5
+4 continue
+ ioffinc = iand(63,ishft(kudorn(iudorn),-25))-32
+ if (ibit.eq.19 .and. ioffinc .lt. -7) then
+c
+c Convert usf to lsf. The reason has to do with positioning being impossile
+c for some mysterious reason when you drop \usf below the staff
+c
+ notexq = sq//'lsf'
+ ioffinc = ioffinc+6
+ end if
+ ioff = ioff+ioffinc
+ end if
+5 continue
+c
+c Shift level to avoid slur. Conditions are
+c 1. There is a slur
+c 2. No user-defined orn height shift (btest(iornq,25))
+c 3. upslur (islhgt>0)
+c 4. ornament is not segno(4), ._)(11-13), down ferm(14) or "(" (0) Bin=30737
+c 5. islhgt+3 >= height already computed.
+c
+ if (.not.btest(iornq,25) .and.
+ * islhgt.gt.0 .and. iand(iornt,30737).eq.0)
+ * ioff = ioff+dim(islhgt+3,ihorn )
+ call notefq(noteq,lnoten,ihorn+ioff,ncm)
+ if (lnoten.eq.1) call addblank(noteq,lnoten)
+ if (iand(iornt,32896) .gt. 0) then
+c
+c T-trill or trill w/o "tr"
+c
+ call dotrill(ivx,ip,iornt,noteq,lnoten,notexq,lnote)
+ else
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ end if
+ if (iudorn .gt. 0) then
+ if (btest(kudorn(iudorn),31)) then
+c
+c Horizontal shift
+c
+ lform = lfmt1(ornhshft(iudorn))
+ write(noteq(1:lform),'(f'//chax(48+lform)//'.1)')
+ * ornhshft(iudorn)
+ notexq = sq//'roffset{'//noteq(1:lform)//'}{'
+ * //notexq(1:lnote)//'}'
+ lnote = lnote+lform+12
+ ornhshft(iudorn) = 0.
+ kudorn(iudorn) = ibclr(kudorn(iudorn),31)
+ end if
+ end if
+c
+c Zero out the bit for ornament just dealt with.
+c
+ iornq = ibclr(iornq,ibit)
+ if (lout .eq. 0) then
+ outq = notexq(1:lnote)
+ else
+ outq = outq(1:lout)//notexq(1:lnote)
+ end if
+ lout = lout+lnote
+c
+c Check bits 0-21, go back if any are still set
+c
+ if (iand(iornq,4194303) .gt. 0) go to 2
+ if (usehornb) nornb(ivx) = nornb(ivx)+1
+ return
+ end
+ subroutine putshft(ivx,onoff,soutq,lsout)
+ parameter (nm=24)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ character*80 soutq,notexq
+ character*1 sq,chax
+ logical onoff
+ sq = chax(92)
+c
+c Start user-defined offsets X(...): or X(...)S
+c
+ if (onoff) nudoff(ivx) = nudoff(ivx)+1
+c
+c Xoff is in pts. Round off to nearest .1. Will use at end of shift.
+c
+ xoff = udoff(ivx,nudoff(ivx))
+ xoff = sign(int(10.*abs(xoff)+.5)/10.,xoff)
+ if (.not.onoff) xoff = -xoff
+ if (xoff .lt. -9.95) then
+ ifmt = 5
+ else if (xoff.lt.-.95 .or. xoff.gt.9.95) then
+ ifmt = 4
+ else
+ ifmt = 3
+ end if
+ write(notexq,'(f'//chax(48+ifmt)//'.1)')xoff
+ call addstr(sq//'off{'//notexq(1:ifmt)//'pt}',8+ifmt,
+ * soutq,lsout)
+ return
+ end
+ subroutine puttitle(inhnoh,xnsttop,etatop,sq,etait,etatc,
+ * etacs1,nv,vshrink,sepsymq)
+c
+c Called once per page, at top of page! If vshrink, only called for p.1.
+c Actual titles only allowed on p.1. (set by headlog).
+c 3/18/01: The above comment is probably bogus...can use Tt on later pages.
+c
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ character*127 notexq
+ character*120 instrq,titleq,compoq
+ parameter (nm=24)
+ character*1 sq,sepsymq(nm),chax
+ logical headlog,vshrink
+ notexq = sq//'znotes'
+ lenline = 7
+ do 22 iv = 1 , nv-1
+ notexq = notexq(1:lenline)//sepsymq(iv)
+ lenline = lenline+1
+22 continue
+ notexq = notexq(1:lenline)//sq//'zcharnote{'
+ lenline = lenline+11
+ if (.not.headlog) then
+ inhead = inhnoh
+ end if
+ if (vshrink .and. usevshrink) then
+ inhead = 16
+ end if
+ ndig = int(alog10(inhead+.01))+1
+ write(notexq(lenline+1:lenline+ndig+10),'(i'//chax(48+ndig)//
+ * ',a10)')inhead,'}{'//sq//'titles{'
+ lenline = lenline+ndig+10
+c
+c Vertical skip at top of page (\Il) = etatop*glueil. Needed whether
+c headers are present or not.
+c
+ glueil = xnsttop/etatop
+ vskil = etatop*glueil
+ if (vshrink .and. usevshrink) vskil = 2
+ call writflot(vskil,notexq,lenline)
+ if (.not.headlog) then
+ if (islast) write(11,'(a)')notexq(1:lenline)
+ * //'}{}{0}{}{0}{}{0}}'//sq//'en%'
+ else
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ lcq = lenstr(instrq,120)
+ if (lcq .gt. 0) then
+ xitil = etait*glueil
+ if (vshrink .and. usevshrink) xitil = 2
+ notexq = notexq(1:lenline)//instrq(1:lcq)//'}{'
+c
+c Null out instrument once used
+c
+ instrq = ' '
+ lenline = lenline+lcq+2
+ call writflot(xitil,notexq,lenline)
+ else
+ notexq = notexq(1:lenline)//'}{0'
+ lenline = lenline+3
+ end if
+ if (islast) write(11,'(a)')notexq(1:lenline)//'}%'
+ notexq = '{'
+ lenline = 1
+ lcq = lenstr(titleq,120)
+ if (lcq .gt. 0) then
+ notexq = notexq(1:lenline)//titleq(1:lcq)
+ lenline = lenline+lcq
+ else
+ call printl(' ')
+ call printl('WARNING')
+ call printl(
+ * ' In a title block, you have specified instrument and/or')
+ call printl(
+ * ' composer but no title for the piece.')
+ end if
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ xtcil = etatc*glueil
+ lcq = lenstr(compoq,120)
+ if (lcq .eq. 0) xtcil = 2*xtcil
+ if (vshrink .and. usevshrink) xtcil = 2
+ call writflot(xtcil,notexq,lenline)
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ if (lcq .gt. 0) then
+ notexq = notexq(1:lenline)//compoq(1:lcq)//'}{'
+ lenline = lenline+2+lcq
+c
+c Null out compoq so it does not get written later
+c
+ compoq = ' '
+ xcsil = etacs1*glueil
+ if (vshrink .and. usevshrink) xcsil = 2
+ call writflot(xcsil,notexq,lenline)
+ else
+ notexq = notexq(1:lenline)//'}{0'
+ lenline = lenline+3
+ end if
+ if (islast) write(11,'(a)')notexq(1:lenline)//'}}'//sq//'en%'
+ headlog = .false.
+ end if
+ return
+ end
+ subroutine putxtn(ntupv,iflop,multb,iud,wheadpt,poenom,
+ * nolev1,islope,slfac,xnlmid,islur,lnote,notexq,ncmid,nlnum,
+ * eloff,iup,irest,usexnumt)
+c
+c Places digit for xtuplet.
+c
+ character*1 chax
+ character*8 noteq
+ character*79 notexq
+ logical btest,usexnumt
+ if (iflop.ne.0 .and. multb.gt.0) then
+c
+c Number goes on beam side, move R/L by .5 wheadpt for upper/lower
+c
+ eloff = eloff-0.5*iud*wheadpt/poenom
+c
+c Number goes on beam side, must use beam parameters to set pos'n
+c
+ nlnum = nolev1+islope/slfac*eloff+iup*(multb+8)
+ if (multb .ge. 2) nlnum = nlnum+iup
+ else
+ nlnum = nint(xnlmid-1+3*iud+iflop*11)
+ end if
+ if (.not.btest(islur,31)) then
+c
+c Only print number when wanted. First check vert, horiz offset
+c
+ if (btest(irest,1)) nlnum = nlnum+iand(31,ishft(irest,-2))-16
+ if (btest(irest,7)) eloff = eloff+
+ * (.1*iand(31,ishft(irest,-9))-1.6)*wheadpt/poenom
+ if (.not.usexnumt) then
+ notexq = chax(92)//'xnum{'
+ lnote = 10
+ istrtn = 7
+ else
+ notexq = chax(92)//'xnumt{'
+ lnote = 11
+ istrtn = 8
+ end if
+ if (eloff .lt. 0.995) then
+ write(notexq(istrtn:istrtn+3),'(i1,f3.2)')0,eloff
+ else if (eloff .lt. 9.995) then
+ write(notexq(istrtn:istrtn+3),'(f4.2)')eloff
+ else
+ write(notexq(istrtn:istrtn+4),'(f5.2)')eloff
+ lnote = lnote+1
+ end if
+ call notefq(noteq,lnoten,nlnum,ncmid)
+ notexq = notexq(1:lnote)//'}'//noteq(1:lnoten)
+ lnote = lnote+1+lnoten
+ if (ntupv .lt. 10) then
+ write(notexq(lnote+1:lnote+1),'(i1)')ntupv
+ lnote = lnote+1
+ else
+ notexq = notexq(1:lnote)//'{'
+ write(notexq(lnote+2:lnote+3),'(i2)')ntupv
+ notexq = notexq(1:lnote+3)//'}'
+ lnote = lnote+4
+ end if
+ end if
+ return
+ end
+ subroutine read10(string,lastchar)
+ parameter (maxblks=4000)
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*(*) string
+ character*128 lnholdq
+ logical lastchar
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ if (.not.mplay) then
+ if (ilbuf .gt. nlbuf) go to 999
+ call getbuf(string)
+ return
+999 lastchar = .true.
+ return
+ else
+c
+c Play a macro. Set pointer to first character needed in buffer
+c
+ if (ilmac .eq. il1mac(macnum)) then
+c
+c Getting first line of macro
+c
+ ip1 = ip1mac(macnum)
+ iplmac = ip1-ic1mac(macnum)
+ else if (ilmac .le. il2mac(macnum)) then
+c
+c Beyond first line of macro. Advance line-start pointer.
+c
+ iplmac = iplmac+lbuf(ilmac-1)
+ ip1 = iplmac+1
+ else
+c
+c Beyond last line of macro. Terminate it!
+c
+ mplay = .false.
+ endmac = .true.
+ return
+ end if
+ if (ilmac .eq. il2mac(macnum)) then
+c
+c Getting last line of macro.
+c
+ ip2 = ip2mac(macnum)
+ else
+c
+c Getting line before last line of macro.
+c
+ ip2 = iplmac+lbuf(ilmac)
+ end if
+ if (ip2 .ge. ip1) then
+ string = bufq(ip1:ip2)
+ else
+c
+c Kluge for when macro start is on a line by itself
+c
+ string = ' '
+ end if
+ ilmac = ilmac+1
+ return
+ end if
+ end
+ function readin(lineq,iccount,nline)
+c
+c Reads a piece of setup data from file lineq, gets a new lineq from
+c file 10 (jobname.pmx) and increments nline if needed, passes over
+c comment lines
+c
+ character*128 lineq
+ character*1 durq,chax
+4 if (iccount .eq. 128) then
+1 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 1
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 2 iccount = iccount , 127
+ if (lineq(iccount:iccount) .ne. ' ') go to 3
+2 continue
+c
+c If here, need to get a new line
+c
+ iccount = 128
+ go to 4
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(lineq,iccount,durq)
+c
+c Remember that getchar increments iccount, then reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ call stop1()
+ end if
+ icf = i2-i1+49
+ read(lineq(i1:i2),'(f'//chax(icf)//'.0)')readin
+ return
+ end
+ subroutine readmeter(lineq,iccount,mtrnum,mtrden)
+ character*128 lineq
+ character*1 durq,chax
+ if (index(lineq(iccount+1:iccount+3),'/') .eq. 0) then
+c
+c No slashes, so use old method
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. '-') then
+c
+c Negative numerator is used only to printed; signals vertical slash
+c
+ call getchar(lineq,iccount,durq)
+ mtrnum = -(ichar(durq)-48)
+ else if (durq .eq. 'o') then
+c
+c Numerator is EXACTLY 1
+c
+ mtrnum = 1
+ else
+ mtrnum = ichar(durq)-48
+ if (mtrnum .eq. 1) then
+c
+c Numerator is >9
+c
+ call getchar(lineq,iccount,durq)
+ mtrnum = 10+ichar(durq)-48
+ end if
+ end if
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'o') then
+ mtrden = 1
+ else
+ mtrden = ichar(durq)-48
+ if (mtrden .eq. 1) then
+ call getchar(lineq,iccount,durq)
+ mtrden = 10+ichar(durq)-48
+ end if
+ end if
+ else
+c
+c Expect the form m[n1]/[n2]/[n3]/[n4] . Advance iccount by one from '/' or 'm'
+c
+ iccount = iccount+1
+ ns = index(lineq(iccount:128),'/')
+ read(lineq(iccount:iccount+ns-2),'(i'//chax(47+ns)//')')mtrnum
+c
+c Reset iccount to start of second integer
+c
+ iccount = iccount+ns
+c
+c There must be either a slash or a blank at pos'n 2 or 3
+c
+ ns = index(lineq(iccount:iccount+2),'/')
+ if (ns .eq. 0) ns = index(lineq(iccount:iccount+2),' ')
+ read(lineq(iccount:iccount+ns-2),'(i'//chax(47+ns)//')')mtrden
+c
+c Set iccount to last character used
+c
+ iccount = iccount+ns-1
+ end if
+ return
+ end
+ subroutine readnum(lineq,iccount,durq,fnum)
+c
+c This reads a number starting at position iccount. Remember that on exit,
+c getchar leaves iccount at the last character retrieved. So must only
+c call this routine *after* detecting a number or decimal.
+c On exit, durq is next character after end of number.
+c
+ character*128 lineq
+ character*1 durq,chax
+ i1 = iccount
+1 call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .gt. 0) go to 1
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ call stop1()
+ else if (lineq(i1:i1).eq.'.'.and.lineq(i2:i2).eq.'.') then
+ i2 = i2-1
+ iccount = iccount-1
+ end if
+ icf = i2-i1+49
+ read(lineq(i1:i2),'(f'//chax(icf)//'.0)')fnum
+ return
+ end
+ subroutine setbits(isdata,iwidbit,ishift,ivalue)
+c
+c Sets iwidbits of isdata, shifted by ishift, to ivalue
+c
+ ibase = 2**iwidbit-1
+ if (ivalue.gt.ibase) then
+ print*
+ print*,'WARNING in setbits: ivalue > ibase'
+ write(15,'(/,a)')'WARNING in setbits: ivalue > ibase'
+ end if
+ isdata = iand(not(ishft(ibase,ishift)),isdata)
+ isdata = ior(isdata,ishft(ivalue,ishift))
+ return
+ end
+ subroutine setbm2(xelsk,nnb,sumx,sumy,ipb,islope,nolev1)
+c
+c The MEAN SQUARE slope algorithm
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig
+ real*4 xelsk(24)
+ integer ipb(24)
+ ibc = ibmcnt(ivx)
+ sumxx = 0.
+ sumxy = 0.
+ do 2 inb = 1 , nnb
+ sumxx = sumxx+xelsk(inb)**2
+ sumxy = sumxy+xelsk(inb)*nolev(ivx,ipb(inb))
+2 continue
+ delta = nnb*sumxx-sumx*sumx
+ em = (nnb*sumxy-sumx*sumy)/delta
+ islope = nint(0.5*em*slfac)
+ if (iabs(islope) .gt. 9) islope = isign(9,islope)
+ beta = (sumy-islope/slfac*sumx)/nnb
+ nolev1 = nint(beta)
+c
+c Check if any stems are too short
+c
+ smin = 100.
+ iul = -1
+ if (ulq(ivx,ibc) .eq. 'u') iul = 1
+ do 4 inb = 1 , nnb
+ ybeam = nolev1+iul*stemlen+islope*xelsk(inb)/slfac
+ ynote = nolev(ivx,ipb(inb))
+ smin = min(smin,iul*(ybeam-ynote))
+4 continue
+ if (smin .lt. stemmin) then
+ deficit = stemmin-smin
+ nolev1 = nint(nolev1+iul*deficit)
+ end if
+ return
+ end
+ subroutine setmac(lineq,iccount,ibarcnt,ibaroff,nbars,charq,durq,
+ * ivx,nline)
+ character*1 charq,durq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac,btest
+ character*128 lnholdq,lineq
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+c
+c Macro action
+c
+ call g1etchar(lineq,iccount,charq)
+ if (charq.eq.'S' .and. ivx.ne.1) then
+ print*
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"MS..." only put in parts by scor2prt if in voice #1!')
+ end if
+ if (index('RSP ',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "M" (macro)!')
+ call stop1()
+ else if (charq .ne. ' ') then
+c
+c Record or playback a macro. Get the number of the macro.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must input number after "MR","MP", or "MS"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Macro number must be followed by a blank!')
+ call stop1()
+ end if
+ if (index('RS',charq ).gt. 0) then
+c
+c Record or save a macro
+c
+ if (macnum.lt.1 .or. macnum.gt.20) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Macro number not in range 1-20!')
+ call stop1()
+c else if (btest(macuse,macnum)) then
+c print*
+c print*,'WARNING: Redefining macro # ',macnum
+ end if
+ macuse = ibset(macuse,macnum)
+ if (charq .eq. 'R') then
+ call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ else if (charq .eq. 'S') then
+c
+c Save (Record but don't activate)
+c
+1 call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ if (mrecord) then
+ call getbuf(lineq)
+ nline = nline+1
+ iccount = 0
+ go to 1
+ end if
+ iccount = iccount+ndxm+1
+ end if
+ else
+c
+c Playback the macro
+c
+ if (.not.btest(macuse,macnum)) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot play a macro that has not been recorded!')
+ call stop1()
+ end if
+ icchold = iccount
+ lnholdq = lineq
+ iccount = 128
+ mplay = .true.
+ ilmac = il1mac(macnum)
+ end if
+ end if
+ return
+ end
+ subroutine setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+c
+c Sets last 2 args depending on 1st 2, (logical) num, denom.
+c ibmtyp = 1, 2, or 3 defines set of masks for beam groupings.
+c 1: all duple meters
+c 2: triple w/ denom=4, subdivide in groups of 2 8ths
+c 3: triple w/ denom=8, subdivide in groups of 3 8ths
+c Note that lenbar is set at top or when 'm' symbol is read in getnote
+c
+ if (mtrdenl .eq. 4) then
+ if (mod(mtrnuml,3) .eq. 0) then
+ ibmtyp = 2
+ ibmrep = mtrnuml/3
+ else
+ ibmtyp = 1
+ ibmrep = mtrnuml/2
+ end if
+ else if (mtrdenl .eq. 2) then
+ ibmtyp = 1
+ if (mtrnuml .eq. 3) then
+ ibmrep = 3
+ else
+ ibmrep = 2*mtrnuml/mtrdenl
+ end if
+ else
+c
+c Assumes mtrdenl=8 and 3/8, 6/8, 9/8, or 12/8
+c
+ ibmtyp = 3
+ ibmrep = mtrnuml/3
+ end if
+c
+c Reset so we don't keep writing new meters
+c
+ mtrnuml = 0
+c
+c Prevent ibmrep=0. Needed for odd bars, e.g. 1/8, where beams don't matter
+c
+ ibmrep = max(ibmrep,1)
+ return
+ end
+ subroutine SetupB(xelsk,nnb,sumx,sumy,ipb,smed,ixrest)
+c
+c The outer combo algorithm
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,l1ng,l2ng,bar1syst,drawbm
+ common /comeskz2/ eskz2(nm,200)
+ real*4 slope(800),xelsk(24)
+ integer ipb(24)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xels11(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /combmh/ bmhgt,clefend
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ ibc = ibmcnt(ivx)
+ nxtinbm(ivx) = 0
+ n1 = ipl2(ivx,ibm1(ivx,ibc))
+c
+c Initialize counters used in this subroutine, and then later during actual
+c beam drawing, to count later segments of single-slope beam groups
+c
+ nssb(ivx) = 0
+ issb(ivx) = 0
+c
+c Set flag for xtup beam starting with rest (no others can start with rest)
+c
+ if (btest(irest(ivx,ipo(n1)),0)) ixrest = 1
+c
+c Figure how many elemskips to each note. Use the list, counting only non-rests.
+c
+ eskz0 = eskz(ivx,ibm1(ivx,ibc))
+ nnb = 0
+ sumx = 0.
+ sumy = 0.
+ ipxt1 = 0
+ iplast = ibm2(ivx,ibc)
+ do 2 ip = ibm1(ivx,ibc) , iplast
+ if (.not.btest(irest(ivx,ip),0)) then
+ nnb = nnb+1
+ ipb(nnb) = ip
+ xelsk(nnb) = eskz(ivx,ip)-eskz0
+ sumx = sumx+xelsk(nnb)
+ sumy = sumy+nolev(ivx,ipb(nnb))
+ if (btest(nacc(ivx,ip),21)) then
+c
+c This is the starting note of later segment of single-slope beam group
+c Temporarily store ip here.
+c
+ nssb(ivx) = nssb(ivx)+1
+ lev1ssb(ivx,nssb(ivx)) = nnb
+ end if
+ end if
+c
+c New xtup stuff here. Final object is to get distance from start of xtup
+c to number. xtinbm counts xtups in this beam only. mtupv is the printed
+c number. ntupv is number of notes in xtup, and is only used to get
+c eloff, the distance from start of xtup to the number.
+c
+ if (btest(nacc(ivx,ip),18)) ndoub = ndoub+1
+ if (ipxt1.eq.0 .and. nodur(ivx,ip).eq.0) then
+c
+c Xtup is starting here
+c
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+ ipxt1 = ip
+ if (btest(nacc(ivx,ip),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+ else if (ipxt1.gt.0 .and. nodur(ivx,ip).gt.0) then
+c
+c Xtup ends here. Set total number of notes in xtup.
+c
+ ntupv(ivx,nxtinbm(ivx)) = ip+1-ipxt1
+c
+c Set printed number for embedded xtup.
+c
+ mtupv(ivx,nxtinbm(ivx)) = ntupv(ivx,nxtinbm(ivx))+ndoub
+c
+c Middle note of xtup if ntupv odd, note to left of gap if even.
+c
+ ipxtmid = (ip+ipxt1)/2
+ eloff(ivx,nxtinbm(ivx)) = eskz2(ivx,ipxtmid)-eskz2(ivx,ipxt1)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2) .eq. 0)
+ * eloff(ivx,nxtinbm(ivx)) = eloff(ivx,nxtinbm(ivx))+
+ * .5*(eskz2(ivx,ipxtmid+1)-eskz2(ivx,ipxtmid))
+ ipxt1 = 0
+ end if
+2 continue
+c
+c Reset nxtinbm for use as counter as #'s are posted by putxtn(..)
+c
+ nxtinbm(ivx) = 0
+ smed = 0.
+ if (.not.btest(islur(ivx,ipb(1)),2)) then
+c
+c No forced 0 slope
+c
+ if (nnb .eq. 1) go to 6
+ nsc = 0
+ do 5 inb = 1 , nnb-1
+ do 5 jnb = inb+1 , nnb
+ nsc = nsc+1
+ slope(nsc) = (nolev(ivx,ipb(jnb))-nolev(ivx,ipb(inb)))/
+ * (xelsk(jnb)-xelsk(inb))
+ if (abs(slope(nsc)) .lt. 1.e-4) then
+ nsc = nsc+1
+ slope(nsc) = slope(nsc-1)
+ nsc = nsc+1
+ slope(nsc) = slope(nsc-1)
+ end if
+5 continue
+ if (nsc .eq. 1) then
+ smed = slope(1)
+ go to 6
+ end if
+ nscmid = nsc/2+1
+ do 7 i = 1 , nscmid
+ do 7 j = i+1 , nsc
+ if (slope(j) .lt. slope(i)) then
+ t = slope(j)
+ slope(j) = slope(i)
+ slope(i) = t
+ end if
+7 continue
+ smed = slope(nscmid)
+ if (nsc .eq. 2*(nsc/2)) then
+c
+c Even number of slopes in the list, so median is ambiguous
+c
+ if (abs(slope(nscmid-1)) .lt. abs(slope(nscmid))-tol) then
+c
+c Lower-numbered one is truly less in absolute value, so use it
+c
+ smed=slope(nscmid-1)
+ else if (abs(slope(nscmid-1)+slope(nscmid)) .lt. tol) then
+c
+c Two slopes are effectively equal. Take the one with sign of the average
+c
+ sum = 0.
+ do 1 i = 1 , nsc
+ sum = sum+slope(i)
+1 continue
+ smed = sign(smed,sum)
+ end if
+ end if
+6 continue
+ islope(ivx) = nint(0.5*smed*slfac)
+ if (iabs(islope(ivx)) .gt. 9)
+ * islope(ivx) = isign(9,islope(ivx))
+ else
+c
+c Forced horizontal beam
+c
+ islope(ivx) = 0
+ end if
+ beta = (sumy-islope(ivx)/slfac*sumx)/nnb
+c
+c If ixrest>0, this is a virtual nolev1 at location of rest. Will first use
+c as is for placing xtup number and/or bracket, then reset it for start of
+c actual beam
+c
+ nolev1(ivx) = nint(beta)
+c
+c Check if any stems are too short
+c
+ smin = 100.
+ iul = -1
+ if (ulq(ivx,ibc) .eq. 'u') iul = 1
+ ssq = 0.
+ syb = 0.
+c yb1 = nolev1(ivx)+iul*(stemlen+bmhgt*(mult(ivx,ipb(1))-1))
+ yb1 = nolev1(ivx)
+ * +iul*(stemlen+bmhgt*(iand(15,mult(ivx,ipb(1)))-8-1))
+ do 4 inb = 1 , nnb
+ ybeam = yb1+islope(ivx)*xelsk(inb)/slfac
+c * -iul*bmhgt*(mult(ivx,ipb(inb))-1)
+ * -iul*bmhgt*(iand(15,mult(ivx,ipb(inb)))-8-1)
+ syb = syb+ybeam
+ ynote = nolev(ivx,ipb(inb))
+ off = ybeam-ynote
+ if (inb .eq. 1) then
+ off1 = off
+ else if (inb .eq. nnb) then
+ off2 = off
+ end if
+ ssq = ssq+off*off
+ smin = min(smin,iul*off)
+4 continue
+ dnolev = 0.
+ if (smin .lt. stemmin) then
+ deficit = stemmin-smin
+ nolevo = nolev1(ivx)
+ nolev1(ivx) = nint(nolev1(ivx)+iul*deficit)
+ dnolev = nolev1(ivx)-nolevo
+ off1 = off1+dnolev
+ off2 = off2+dnolev
+ end if
+ ssq = ssq+2*dnolev*(syb-sumy)+dnolev**2
+ if (.not.vxtup(ivx) .and. sqrt(ssq/nnb) .gt. stemmax .and.
+ * (abs(off1).lt.stemmax .or. abs(off2).lt.stemmax)
+ * .and. .not.btest(islur(ivx,ipb(1)),2)) then
+c
+c The first check is to save trouble of putting xtup's in setbm2.
+c The penultimate check is that first and last stems aren't both excessive.
+c The last check is that a 0 slope has not been forced
+c
+ call setbm2(xelsk,nnb,sumx,sumy,ipb,islope(ivx),nolev1(ivx))
+ end if
+c
+c Check if beam starts or ends too high or low.
+c
+c xboff = bmhgt*(mult(ivx,ipb(1))-1)
+ xboff = bmhgt*(iand(15,mult(ivx,ipb(1)))-8-1)
+ l1ng = iul*(nolev1(ivx)-ncmid(iv,ipb(1)))+xboff+7 .lt. 0.
+ xnolev2 = nolev1(ivx)+islope(ivx)/slfac*xelsk(nnb)
+ l2ng = iul*(xnolev2-ncmid(iv,ipb(nnb)))+xboff+7 .lt. 0
+ if (l1ng .or. l2ng) then
+c
+c Need to correct start or stop, also slope
+c
+ if (l1ng) then
+ nolev1(ivx) = nint(ncmid(iv,ipb(1))-(7.+xboff)*iul)
+ end if
+ if (l2ng) then
+ xnolev2 = nint(ncmid(iv,ipb(nnb))-(7.+xboff)*iul)
+ end if
+c
+c Since one or the other end has changed, need to change slope
+c
+ if (.not.btest(islur(ivx,ipb(1)),2))
+ * islope(ivx) = nint(slfac*(xnolev2-nolev1(ivx))/xelsk(nnb))
+ end if
+ if (nssb(ivx) .gt. 0) then
+c
+c This is a single-slope beam group. Store start heights for later segs.
+c
+ do 3 issbs = 1 , nssb(ivx)
+ lev1ssb(ivx,issbs) = nolev1(ivx)+islope(ivx)/slfac*
+ * xelsk(lev1ssb(ivx,issbs))
+3 continue
+ end if
+ return
+ end
+ subroutine sortpoe(nsyst,poe,ipoe)
+ parameter (nks=125)
+ real*4 poe(nks)
+ integer*4 ipoe(nks)
+c
+c Initialize ipoe:
+c
+ do 3 iord = 1 , nsyst
+ ipoe(iord) = iord
+3 continue
+c
+c Construct ipoe vector with pairwise interchanges. When done, ipoe(1) will
+c be index of smallest poe, and ipoe(nsyst) will be index of biggest poe.
+c
+ do 4 io1 = 1 , nsyst-1
+ do 5 io2 = io1+1 , nsyst
+ if (poe(ipoe(io1)) .gt. poe(ipoe(io2))) then
+c
+c Interchange the indices
+c
+ itemp = ipoe(io1)
+ ipoe(io1) = ipoe(io2)
+ ipoe(io2) = itemp
+ end if
+5 continue
+4 continue
+ return
+ end
+ subroutine spsslur(lineq,iccount,iv,kv,ip,isdat1,isdat2,isdat3,
+ * isdat4,nsdat,notcrd,nolev,starter)
+ parameter (nm=24)
+c
+c Reads in slur data. Record all h/v-shifts for non-chords, user-specified
+c ones for chords.
+c 5/26/02 This subr is called ONLY for postscript slurs.
+c
+c See subroutine doslur for bit values in isdat1,2,3
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ logical notcrd,btest
+ character*128 lineq
+ character*1 durq,dumq,starter
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical upslur,fontslur,WrotePsslurDefaults
+c
+c Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve
+c
+ numint = 0
+ ivoff = 0
+ ihoff = 0
+ nsdat = nsdat+1
+ if (starter.eq.'{' .or. starter.eq.'}')
+ * isdat2(nsdat)=ibset(isdat2(nsdat),3)
+ call setbits(isdat1(nsdat),5,13,iv)
+ call setbits(isdat1(nsdat),1,12,kv-1)
+ call setbits(isdat1(nsdat),8,3,ip)
+ isdat3(nsdat) = 0
+ isdat4(nsdat) = 0
+ ilb12 = 0 ! flag for tweaks of 1st or 2nd (0|1) seg of linebreak slur
+c
+c Get ID code
+c
+ call getchar(lineq,iccount,durq)
+ if (index('uldtb+-hfnHps ',durq) .gt. 0) then
+c
+c Null id. Note for ps slurs, 'H' cannot be an ID
+c
+ iccount = iccount-1
+ if (lineq(iccount:iccount) .eq. 't') then
+ idcode = 1
+ else
+ idcode = 32
+ end if
+ else
+c
+c Set explicit idcode
+c
+ idcode = ichar(durq)
+ if (lineq(iccount-1:iccount-1) .eq. 't') then
+c
+c Make t[ID] look like s[ID]t
+c
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ end if
+ end if
+ call setbits(isdat1(nsdat),7,19,idcode)
+c
+c Set start/stop: look thru list from end for same idcode,iv,kv
+c
+ do 2 isdat = nsdat-1 , 1 , -1
+ if (idcode .eq. igetbits(isdat1(isdat),7,19) .and.
+ * iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * kv-1 .eq. igetbits(isdat1(isdat),1,12)) then
+c
+c Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0.
+c
+ if (btest(isdat1(isdat),11)) go to 3
+c
+c Found slur is a turnoff, so new one is a turnon. Jump down to set bit
+c
+ go to 4
+ end if
+2 continue
+c
+c If here, this is turnon.
+c
+4 continue
+ isdat1(nsdat) = ibset(isdat1(nsdat),11)
+3 continue
+c
+c Now done with initial turnon- or turnoff-specifics.
+c
+ if (nint(SlurCurve).ne.0 .and. btest(isdat1(nsdat),11)) then
+c
+c There's a default curvature tweak
+c
+ icurv1 = nint(SlurCurve)+3
+ if (icurv1 .eq. 2) icurv1 = 1
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ end if
+c
+c Loop for rest of input
+c
+1 call getchar(lineq,iccount,durq)
+ if (index('uld',durq) .gt. 0) then
+c
+c Force direction
+c
+ isdat1(nsdat) = ibset(isdat1(nsdat),26)
+ if (durq .eq. 'u') isdat1(nsdat) = ibset(isdat1(nsdat),27)
+ go to 1
+ else if (index('+-',durq) .gt. 0) then
+ numint = numint+1
+ if (numint .eq. 1) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+ ivoff = nint(fnum)
+ if (durq .eq. '-') ivoff = -ivoff
+ else if (numint .eq. 2) then
+c
+c Horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+c
+c fnum is abs(hshift), must be 0 to 6.3
+c
+ ihoff = fnum*10 + .5
+ if (durq .eq. '-') ihoff = -ihoff
+c
+c Later will set bits to 1...127 to represent -6.3,...+6.3
+c
+ else
+c
+c Must be the 3rd signed integer, so it's a curve specification
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ icurv1 = nint(fnum)
+ if (durq .eq. '-') icurv1 = -icurv1
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ if (dumq .ne. ':') then
+c
+c Back up the pointer and loop for more input
+c
+ iccount = iccount-1
+ else
+c
+c Expect two single digits as parameters for curve
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),1)
+ call setbits(isdat3(nsdat),3,8,
+ * ichar(lineq(iccount+1:iccount+1))-48)
+ call setbits(isdat3(nsdat),3,11,
+ * ichar(lineq(iccount+2:iccount+2))-48)
+ iccount = iccount+2
+ end if
+ end if
+ go to 1
+ else if (durq .eq. 't') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ go to 1
+ else if (durq .eq. 'b') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),4)
+ go to 1
+ else if (durq .eq. 's') then
+c
+c Endpoint tweaks for linebreak slurs.
+c
+ call getchar(lineq,iccount,durq) ! Must be +|-
+c
+c Next is vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (durq .eq. '-') fnum=-fnum
+ call setbits(isdat4(nsdat),6,ilb12*16,nint(fnum)+32)
+ if (index('+-',dumq) .gt. 0) then
+c
+c Also a horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (dumq .eq. '-') fnum=-fnum
+ call setbits(isdat4(nsdat),7,ilb12*16+6,nint(10*fnum)+64)
+ end if
+ iccount = iccount-1
+ ilb12 = 1
+ go to 1
+ else if (index('fnhH',durq).gt.0) then
+c
+c Special ps slur curvatures.
+c Translate to old \midslur args (1,4,5,6)
+c
+ icurv1 = index('fnxhH',durq)
+ if (icurv1 .eq. 5) then
+c
+c check for 2nd H
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount = iccount+1
+ icurv1 = 6
+ end if
+ end if
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ go to 1
+ else if (durq .eq. 'p') then ! Local adjustment
+ call getchar(lineq,iccount,durq) ! +|-
+ call getchar(lineq,iccount,dumq) ! s|t
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+ if (durq .eq. '+') then
+ if (dumq .eq. 's') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),26)
+ else
+ isdat2(nsdat) = ibset(isdat2(nsdat),28)
+ end if
+ else
+ if (dumq .eq. 's') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),27)
+ else
+ isdat2(nsdat) = ibset(isdat2(nsdat),29)
+ end if
+ end if
+ go to 1
+ end if
+c
+c Record shifts
+c
+ call setbits(isdat2(nsdat),6, 6,ivoff+32)
+ call setbits(isdat2(nsdat),7,12,ihoff+64)
+c
+c Record chord flag, note level, notehead shift
+c
+ if (notcrd) then
+ call setbits(isdat2(nsdat),7,19,nolev)
+ else
+ nolevc = igetbits(icrdat(ncrd),7,12)
+ call setbits(isdat2(nsdat),7,19,nolevc)
+ isdat2(nsdat) = ibset(isdat2(nsdat),0)
+ call setbits(isdat2(nsdat),2,1,igetbits(icrdat(ncrd),2,23))
+ end if
+ return
+ end
+ subroutine sslur(lineq,iccount,iv,kv,ip,isdat1,isdat2,isdat3,
+ * nsdat,notcrd,nolev,starter)
+ parameter (nm=24)
+c
+c Reads in slur data. Record all h/v-shifts for non-chords, user-specified
+c ones for chords.
+c 5/26/02 now only for non-postscript slurs, use spsslur() for postscript
+c
+c See subroutine doslur for bit values in isdat1,2,3
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ integer*4 isdat1(202),isdat2(202),isdat3(202)
+ logical notcrd,btest
+ character*128 lineq
+ character*1 durq,dumq,starter
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical upslur,fontslur,WrotePsslurDefaults
+c
+c Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve
+c
+ numint = 0
+ ivoff = 0
+ ihoff = 0
+ nsdat = nsdat+1
+ if (starter.eq.'{' .or. starter.eq.'}')
+ * isdat2(nsdat)=ibset(isdat2(nsdat),3)
+ call setbits(isdat1(nsdat),5,13,iv)
+ call setbits(isdat1(nsdat),1,12,kv-1)
+ call setbits(isdat1(nsdat),8,3,ip)
+ isdat3(nsdat) = 0
+c
+c Get id letter
+c
+ if (lineq(iccount:iccount) .eq. 't') then
+c
+c Old-style t-slur. Use special idcode = 1
+c
+ idcode = 1
+ else
+ call getchar(lineq,iccount,durq)
+ if (index('uldtb+-hf ',durq) .gt. 0) then
+c
+c Null id
+c
+ idcode = 32
+ iccount = iccount-1
+ else if (durq.eq.'H') then
+c
+c Postscript slur, cannot use 'H' as code, must check for 2nd 'H'
+c
+ idcode = 32
+ iccount = iccount-1
+c
+c There may be another "H", but no need to deal with it yet
+c
+ else
+c
+c Set explicit idcode
+c
+ idcode = ichar(durq)
+ end if
+ end if
+ call setbits(isdat1(nsdat),7,19,idcode)
+c
+c Set start/stop: look thru list from end for same idcode,iv,kv
+c
+ do 2 isdat = nsdat-1 , 1 , -1
+ if (idcode .eq. igetbits(isdat1(isdat),7,19) .and.
+ * iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * kv-1 .eq. igetbits(isdat1(isdat),1,12)) then
+c
+c Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0.
+c
+ if (btest(isdat1(isdat),11)) go to 3
+c
+c Found slur is a turnoff, so new one is a turnon. Jump down to set bit
+c
+ go to 4
+ end if
+2 continue
+c
+c If here, this is turnon.
+c
+4 continue
+ isdat1(nsdat) = ibset(isdat1(nsdat),11)
+3 continue
+c
+c Now done with initial turnon- or turnoff-specifics. Loop for rest of input
+c
+1 call getchar(lineq,iccount,durq)
+ if (index('uld',durq) .gt. 0) then
+c
+c Force direction
+c
+ isdat1(nsdat) = ibset(isdat1(nsdat),26)
+ if (durq .eq. 'u') isdat1(nsdat) = ibset(isdat1(nsdat),27)
+ go to 1
+ else if (index('+-',durq) .gt. 0) then
+ numint = numint+1
+ if (numint .eq. 1) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+ ivoff = nint(fnum)
+ if (durq .eq. '-') ivoff = -ivoff
+ else if (numint .eq. 2) then
+c
+c Horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+c
+c fnum is abs(hshift), must be 0 to 6.3
+c
+ ihoff = fnum*10 + .5
+ if (durq .eq. '-') ihoff = -ihoff
+c
+c Later will set bits to 1...127 to represent -6.3,...+6.3
+c
+ else
+c
+c Must be the 3rd signed integer, so it's a curve specification
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ icurv1 = nint(fnum)
+ if (durq .eq. '-') icurv1 = -icurv1
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ if (dumq .ne. ':') then
+c
+c Back up the pointer and loop for more input
+c
+ iccount = iccount-1
+ else
+c
+c Expect two single digits as parameters for curve
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),1)
+ call setbits(isdat3(nsdat),3,8,
+ * ichar(lineq(iccount+1:iccount+1))-48)
+ call setbits(isdat3(nsdat),3,11,
+ * ichar(lineq(iccount+2:iccount+2))-48)
+ iccount = iccount+2
+ end if
+ end if
+ go to 1
+ else if (durq .eq. 't') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ go to 1
+ else if (durq .eq. 'b') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),4)
+ go to 1
+ else if (index('fhH',durq) .gt. 0) then
+c
+c Special ps slur curvatures. Translate to old \midslur args (1,4,5,6)
+c
+ icurv1 = 2+index('fhH',durq)
+ if (icurv1 .eq. 3) then
+ icurv1 = 1
+ else if (icurv1 .eq. 5) then
+c
+c check for 2nd H
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount = iccount+1
+ icurv1 = 6
+ end if
+ end if
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+c
+c Must change sign if downslur, but cannot do it now since we don't know
+c slur direction for sure.
+c
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ go to 1
+ end if
+c
+c Record shifts
+c
+ call setbits(isdat2(nsdat),6, 6,ivoff+32)
+ call setbits(isdat2(nsdat),7,12,ihoff+64)
+c
+c Record chord flag, note level, notehead shift
+c
+ if (notcrd) then
+ call setbits(isdat2(nsdat),7,19,nolev)
+ else
+ nolevc = igetbits(icrdat(ncrd),7,12)
+ call setbits(isdat2(nsdat),7,19,nolevc)
+ isdat2(nsdat) = ibset(isdat2(nsdat),0)
+ call setbits(isdat2(nsdat),2,1,igetbits(icrdat(ncrd),2,23))
+ end if
+ return
+ end
+ subroutine stop1()
+ call exit(1)
+ end
+ subroutine topfile(basenameq,lbase,nv,clefq,noinst,musicsize,
+ * xinstf1,mtrnmp,mtrdnp,vshrink,fbar,fontslur)
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink,fontslur
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ character*79 inameq
+ character*44 basenameq
+ character*24 fmtq
+ character*5 fbarq
+ character*1 clefq(nm),sq,chax
+ common /comstart/ facmtr
+ logical vshrink,lowdot,rename
+ logical novshrinktop,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /comsize/ isize(nm)
+ sq = chax(92)
+ vshrink = xinstf1.gt.20. .and. .not.novshrinktop
+ if (vshrink) then
+ xinsnow = 10.
+ else
+ xinsnow = xinstf1
+ end if
+ if (.not.islast) return
+ write(11,'(a)')'%%%%%%%%%%%%%%%%%'
+ write(11,'(a)')'%'
+ write(11,'(a)')'% '//basenameq(1:lbase)//'.tex'
+ write(11,'(a)')'%'
+ write(11,'(a)')'%%%%%%%%%%%%%%%%'
+ write(11,'(a)')sq//'input musixtex'
+ write(11,'(a)')sq//'input pmx'
+c write(11,'(a)')sq//'input musixmad'
+c write(11,'(a)')sq//'input musixxad'
+ write(11,'(a)')
+ * sq//'setmaxslurs{24}'//sq//'setmaxinstruments{24}%'
+ if (.not.fontslur) write(11,'(a)')sq//'input musixps'
+c
+c Need to input musixmad to permit more slurs.
+c
+ if (musicsize .eq. 20) then
+ write(11,'(a)')sq//'normalmusicsize%'
+ else if (musicsize .eq. 16) then
+ write(11,'(a)')sq//'smallmusicsize%'
+ else if (musicsize .eq. 24) then
+ write(11,'(a)')sq//'largemusicsize%'
+ write(11,'(a)')sq//'def'//sq//'meterfont{'//sq//
+ * 'meterlargefont}%'
+ else if (musicsize .eq. 29) then
+ write(11,'(a)')sq//'Largemusicsize%'
+ write(11,'(a)')sq//'def'//sq//'meterfont{'//sq//
+ * 'meterLargefont}%'
+ end if
+c
+c Set sizes. Have sizes per staff in isize(.) and noinst per staff in
+c nsperi(.)
+c
+ iiv = 1
+ do 5 iinst = 1 , noinst
+ if (isize(iiv) .eq. 1) then
+ if(iinst.le.9) then
+ write(11,'(a8,i1,a)')
+ * sq//'setsize',iinst,sq//'smallvalue%'
+ else
+ write(11,'(a9,i2,a)')
+ * sq//'setsize{',iinst,'}'//sq//'smallvalue%'
+ end if
+ else if (isize(iiv) .eq. 2) then
+ if(iinst.le.9) then
+ write(11,'(a8,i1,a)')
+ * sq//'setsize',iinst,sq//'tinyvalue%'
+ else
+ write(11,'(a9,i2,a)')
+ * sq//'setsize{',iinst,'}'//sq//'tinyvalue%'
+ end if
+ end if
+ iiv = iiv+nsperi(iinst)
+5 continue
+c
+c do 5 iiv = 1 , nv
+c if (isize(iiv) .eq. 1) then
+c if(iiv.le.9) then
+c write(11,'(a8,i1,a)')
+c * sq//'setsize',iiv,sq//'smallvalue%'
+c else
+c write(11,'(a9,i2,a)')
+c * sq//'setsize{',iiv,'}'//sq//'smallvalue%'
+c end if
+c else if (isize(iiv) .eq. 2) then
+c if(iiv.le.9) then
+c write(11,'(a8,i1,a)')
+c * sq//'setsize',iiv,sq//'tinyvalue%'
+c else
+c write(11,'(a9,i2,a)')
+c * sq//'setsize{',iiv,'}'//sq//'tinyvalue%'
+c end if
+c end if
+c5 continue
+c
+ write(fbarq,'(f5.3)')fbar
+ write(11,'(a)')sq//'nopagenumbers'
+ write(11,'(a)')sq//'tracingstats=2'//sq//'relax'
+ write(11,'(a7,i3,a2)')sq//'hsize=',nint(widthpt),'pt'
+ write(11,'(a6,i'//chax(49+int(log10(height+.1)))//',a2)')
+ * sq//'vsize',int(height+.1),'pt'
+ if (abs(hoffpt) .gt. 0.1) then
+ if (hoffpt .le. -10.) then
+ write(11,'(a8,i3,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ else if (hoffpt .lt. 0.) then
+ write(11,'(a8,i2,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ else if (hoffpt .lt. 10.) then
+ write(11,'(a8,i1,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ else
+ write(11,'(a8,i2,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ end if
+ end if
+ if (abs(voffpt) .gt. 0.1) then
+ if (voffpt .le. -10.) then
+ write(11,'(a8,i3,a2)')sq//'voffset',nint(voffpt),'pt'
+ else if (voffpt .lt. 0.) then
+ write(11,'(a8,i2,a2)')sq//'voffset',nint(voffpt),'pt'
+ else if (voffpt .lt. 10.) then
+ write(11,'(a8,i1,a2)')sq//'voffset',nint(voffpt),'pt'
+ else
+ write(11,'(a8,i2,a2)')sq//'voffset',nint(voffpt),'pt'
+ end if
+ end if
+c
+c The default raisebarno=3.5 internote, set in pmx.tex. Increase to 4.5 if
+c 3 sharps and treble clef, to avoid vertical clash with top space g#
+c
+ if (isig.eq.3 .and. clefq(nv).eq.'t') write(11,'(a)')
+ * sq//'def'//sq//'raisebarno{4.5'//sq//'internote}'
+ if (noinst .lt. 10) then
+ write(11,'(a19,i1,a1)')sq//'def'//sq//'nbinstruments{',
+ * noinst,'}'
+ else
+ write(11,'(a19,i2,a1)')sq//'def'//sq//'nbinstruments{',
+ * noinst,'}'
+ end if
+ iv = 0
+ do 1 iinst = 1 , noinst
+ nstaves = nsperi(iinst)
+ if (iinst .lt. 10) then
+ write(11,'(a)')sq//'setstaffs'//chax(48+iinst)
+ * //chax(48+nstaves)
+ else
+ write(11,'(a11,i2,a)')sq//'setstaffs{',iinst,'}'
+ * //chax(48+nstaves)
+ end if
+ iv = iv+1
+ if (nstaves .eq. 1) then
+ fmtq = chax(48+numclef(clefq(iv)))
+ lfmtq = 1
+ else
+ fmtq = '{'//chax(48+numclef(clefq(iv)))
+ lfmtq = 2
+ do 2 k = 2 , nstaves
+ iv = iv+1
+ fmtq = fmtq(1:lfmtq)//chax(48+numclef(clefq(iv)))
+ lfmtq = lfmtq+1
+2 continue
+ fmtq = fmtq(1:lfmtq)//'}'
+ lfmtq = lfmtq+1
+ end if
+ if (iinst .lt. 10) then
+ write(11,'(a)')sq//'setclef'//chax(48+iinst)//fmtq(1:lfmtq)
+ else
+ write(11,'(a9,i2,a)')sq//'setclef{',iinst,'}'//fmtq(1:lfmtq)
+ end if
+ do 3 lname = 79 , 2 , -1
+ if (inameq(iinst)(lname:lname) .ne. ' ') go to 4
+3 continue
+4 continue
+ lnam(iinst) = lname
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a)')sq//'setname',iinst,
+ * '{'//inameq(iinst)(1:lname)//'}'
+ else
+ write(11,'(a9,i2,a)')sq//'setname{',iinst,
+ * '}{'//inameq(iinst)(1:lname)//'}'
+ end if
+1 continue
+ write(11,'(a18,i2,a2)')sq//'generalsignature{',isig,'}%'
+ if (EarlyTransOn)
+ * call Writesetsign(nInstTrans,iInstTrans,iTransKey,EarlyTransOn)
+ call wgmeter(mtrnmp,mtrdnp)
+ ipi = nint(fracindent*widthpt)
+ if (ipi .lt. 10) then
+ write(11,'(a11,i1,a2)')sq//'parindent ',ipi,'pt'
+ else if (ipi .lt. 100) then
+ write(11,'(a11,i2,a2)')sq//'parindent ',ipi,'pt'
+ else
+ write(11,'(a11,i3,a2)')sq//'parindent ',ipi,'pt'
+ end if
+ write(11,'(a)')sq//'elemskip1pt'//sq//'afterruleskip'
+ * //fbarq//'pt'//sq//'beforeruleskip0pt'//sq//'relax'
+ if (.not.vshrink) then
+ if (xinstf1 .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ write(11,fmtq)sq//'stafftopmarg0pt'//sq//'staffbotmarg0pt'
+ * //sq//'interstaff{',xinstf1,'}'//sq//'relax'
+ else
+ write(11,'(a)')sq//'stafftopmarg0pt'//
+ * sq//'staffbotmarg5'//sq//'Interligne'//sq//
+ * 'interstaff{10}'//sq//'relax'
+ end if
+ if (nv.eq.1) write(11,'(a)')sq//'nostartrule'
+ write(11,'(a)')sq//'readmod{'//basenameq(1:lbase)//'}'
+ if (cstuplet) then
+ write(11,'(a)')sq//'input tuplet'
+ * //sq//'def'//sq//'xnumt#1#2#3{'//sq//'zcharnote{#2}{~}'
+ * //sq//'def'//sq//'tuplettxt{'//sq//'smalltype'//sq//'it{#3}'
+ * //sq//'/'//sq//'/}}%'
+ write(11,'(a)')sq//'let'//sq//'ovbkt'//sq//'uptuplet'
+ * //sq//'let'//sq//'unbkt'//sq//'downtuplet%'
+ end if
+ write(11,'(a)')sq//'startmuflex'//sq//'startpiece'//sq//
+ * 'addspace'//sq//'afterruleskip%'
+ return
+ end
+ character*1 function udfq(nolev,ncm)
+c
+c Slur directions
+c
+ common /combc/ bcspec
+ logical bcspec
+ ntest = nolev-ncm
+ if (ntest.lt.0 .or.
+ * (ntest.eq.0 .and. bcspec .and. ncm.eq.23) ) then
+ udfq = 'd'
+ else
+ udfq = 'u'
+ end if
+ return
+ end
+ character*1 function udqq(nole,ncm,isl,nvmx,ivx,nv)
+c
+c Stem direction for single notes
+c
+ character*1 ulfq
+ character*1 udqqq
+ logical btest
+ if (btest(isl,30)) then
+c
+c Absolute override
+c
+ if (btest(isl,17)) then
+ udqqq = 'u'
+ else
+ udqqq = 'l'
+ end if
+ else if (nvmx .eq. 1) then
+c
+c Single voice per staff, default
+c
+ udqqq = ulfq(1.*nole,ncm)
+ else
+c
+c Multi-voice per staff, 1st is lower, 2nd upper
+c
+ if (ivx .le. nv) then
+ udqqq = 'l'
+ else
+ udqqq = 'u'
+ end if
+ end if
+ udqq = udqqq
+ return
+ end
+ character*1 function ulfq(xnolev,ncm)
+c
+c Stem directions
+c
+ common /combc/ bcspec
+ logical bcspec
+ test = xnolev-ncm
+ if (test.lt.-.001 .or.
+ * (test.lt..001.and.bcspec.and.ncm.eq.23) ) then
+ ulfq = 'u'
+ else
+ ulfq = 'l'
+ end if
+ return
+ end
+ function upcaseq(chq)
+ character*1 chq,upcaseq,chax
+ if (ichar(chq).ge.61.and.ichar(chq).lt.122) then
+ upcaseq = chax(ichar(chq)-32)
+ else
+ upcaseq = chq
+ print*,'Warning, upcaseq was called with improper argument: '
+ * //chq
+ stop
+ end if
+ return
+ end
+ subroutine wgmeter(mtrnmp,mtrdnp)
+c
+c Writes meter stuff to file 11, so only called if islast=.true.
+c
+ character*1 sq,chax
+ if (mtrdnp .eq. 0) return
+ sq=chax(92)
+ if (mtrnmp.gt.0 .and. mtrnmp.le.9) then
+ if (mtrdnp .lt. 10) then
+ write(11,'(a25,i1,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ else
+ write(11,'(a25,i1,a2,i2,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ end if
+ else if (mtrnmp .ge. 10) then
+ if (mtrdnp .lt. 10) then
+ write(11,'(a25,i2,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ else
+ write(11,'(a25,i2,a2,i2,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ end if
+ else if (mtrnmp .lt. 0) then
+ write(11,'(a26,i1,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfracS{',
+ * -mtrnmp,'}{',mtrdnp,'}}%'
+ else if (mtrdnp .le. 4) then
+ write(11,'(a21,i1,a2)')
+ * sq//'generalmeter{'//sq//'meterN',mtrdnp,'}%'
+ else if (mtrdnp .eq. 5) then
+ write(11,'(a)')sq//'generalmeter'//sq//'allabreve%'
+ else if (mtrdnp .eq. 6) then
+ write(11,'(a)')sq//'generalmeter'//sq//'meterC%'
+ else if (mtrdnp .eq. 7) then
+ write(11,'(a)')sq//'generalmeter'//sq//'meterIIIS%'
+ end if
+ return
+ end
+ subroutine writemidi(jobname,ljob)
+ parameter(nm=24,mv=24576)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ character*1 byteq(4),char,chax
+ character*10 tempoq,instq
+ character*44 jobname
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ common /comevent/ miditime,lasttime
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+ character*79 inameq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ logical rename
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+c
+c Used to be icmm(0:nm); did midi fail when nv>16?
+c
+ integer*2 iinsiv(nm),icmm(0:15)
+ character*5 versionc
+ common /comver/ versionc
+c data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/
+ data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16/
+c Can't remember why these were not consecutive.
+c data icmm /0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15/
+c
+c Write Header
+c
+ write(51,'(a,$)')'MThd'//char(0)//char(0)//char(0)//char(6)
+ * //char(0)//char(1)//char(0)//char(numchan+1)//char(0)//char(240)
+ if (debugmidi)
+ * write(52,'(a6,10Z4)')'"MThd"',0,0,0,6,
+ * 0,1,0,numchan+1,0,240
+c
+c Write the "conductor" track, for keys, meter, and tempos
+c Get the number of bytes in the conductor event stream
+c
+ ndata = 1+imidi(numchan)-msecstrt(numchan,nmidsec)
+ do 15 isec = 1 , nmidsec-1
+ ndata = ndata+1+msecend(numchan,isec)-msecstrt(numchan,isec)
+15 continue
+c ib1 = (4+ljob+26+ndata+4)/256
+c ib0 = 4+ljob+26+ndata+4-256*ib1
+ ib1 = (4+ljob+27+ndata+4)/256
+ ib0 = 4+ljob+27+ndata+4-256*ib1
+ write(51,'(a,$)')'MTrk'//char(0)//char(0)//char(ib1)//char(ib0)
+c
+c Text header
+c
+c * //char(0)//char(255)//char(1)//char(ljob+26)
+ * //char(0)//char(255)//char(1)//char(ljob+27)
+ if (debugmidi)
+ * write(52,'(a6,8z4)')'"MTrk"',0,0,ib1,ib0,
+ * 0,255,1,ljob+27
+ write(51,'(a,$)')jobname(1:ljob)
+ if (debugmidi) write(52,'(a)')'"'//jobname(1:ljob)//'"'
+c
+c (separate writes are needed to defeat compiler BUG!!!)
+c
+c write(51,'(a,$)')'.mid, produced by PMX 2.30'
+ write(51,'(a,$)')'.mid, produced by PMX '//versionc
+ if (debugmidi) write(52,'(a)')
+ * '".mid, produced by PMX '//versionc//'"'
+c
+c Conductor event data: Loop over sections.
+c
+ do 16 isec = 1 , nmidsec
+ if (isec .lt. nmidsec) then
+ mend = msecend(numchan,isec)
+ else
+ mend = imidi(numchan)
+ end if
+ do 17 i = msecstrt(numchan,isec) , mend
+ write(51,'(a,$)')char(mmidi(numchan,i))
+ if (debugmidi) write(52,'(z4)')mmidi(numchan,i)
+17 continue
+16 continue
+c
+c And close out the time sig / tempo track.
+c
+ write(51,'(a,$)')char(0)//char(255)//char(2*16+15)//char(0)
+ if (debugmidi) write(52,'(4z4)')0,255,2*16+15,0
+c
+c Loop over track for each voice: The following sets up iv.
+c
+ iv = nv
+ if (twoline(nv)) then
+ kv = 2
+ else
+ kv = 1
+ end if
+c
+c Count up staves(iv,nv) vs instruments. Store instr# for iv in iinsiv(iv)
+c
+ nstaves = 0
+ ivt = 0
+ do 12 iinst = 1 , nm
+ nstaves = nstaves+nsperi(iinst)
+ do 13 ivtt = 1 , nsperi(iinst)
+ ivt = ivt+1
+ iinsiv(ivt) = iinst
+13 continue
+ if (nstaves .eq. nv) go to 14
+12 continue
+ print*,'Screwup!'
+ call stop1()
+14 continue
+c
+ do 5 icm = 0 , numchan-1
+c
+c Get the number of bytes in the data stream
+c
+ ndata = 1+imidi(icm)-msecstrt(icm,nmidsec)
+ do 11 isec = 1 , nmidsec-1
+ ndata = ndata+1+msecend(icm,isec)-msecstrt(icm,isec)
+11 continue
+c
+cc Add 3 (for instrum) plus 4 (for closing) to byte count,
+c Add 3 for instrum, 4 for bal, plus 4 (for closing) to byte count,
+c
+c ndata = ndata+7
+ ndata = ndata+11
+c
+c Add 4+lnam(iinsiv(iv)) if lnam>0 ,
+c
+ if (lnam(iinsiv(iv)).gt.0) ndata = ndata+4+lnam(iinsiv(iv))
+c
+c Separate total byte counts into 4 bytes
+c
+ do 2 ibyte = 1 , 4
+ if (ndata .gt. 0) then
+ byteq(ibyte) = char(mod(ndata,256))
+ ndata = ishft(ndata,-8)
+ else
+ byteq(ibyte) = char(0)
+ end if
+2 continue
+c
+c Now write front stuff for this track
+c
+ write(51,'(a,$)')'MTrk'//byteq(4)//byteq(3)//byteq(2)//byteq(1)
+ * //char(0)//char(12*16+icmm(icm))//char(midinst(iv))
+ * //char(0)//char(11*16+icmm(icm))//char(10)//char(midbc(icm))
+ if (debugmidi) write(52,'(a4,z2,a7,11z4)')'icm=',icm,
+ * ' "MTrk"',ichar(byteq(4)),ichar(byteq(3)),ichar(byteq(2)),
+ * ichar(byteq(1)),0,12*16+icmm(icm),midinst(iv),
+ * 0,11*16+icmm(icm),10,midbc(icm)
+ if (lnam(iinsiv(iv)) .gt. 0) then
+c
+c Add instrument name as sequence name
+c
+ write(51,'(a,$)')char(0)//char(255)//char(3)
+ * //char(lnam(iinsiv(iv)))
+ if (debugmidi) write(52,'(4z4)')0,255,3,lnam(iinsiv(iv))
+ write(51,'(a,$)')
+ * inameq(iinsiv(iv))(1:lnam(iinsiv(iv)))
+ if (debugmidi) write(52,'(a)')
+ * '"'//inameq(iinsiv(iv))(1:lnam(iinsiv(iv)))//'"'
+ end if
+ write(tempoq,'(i2)')icm
+ write(instq,'(i3)')midinst(iv)
+ call printl('MIDI instrument '//tempoq(1:2)//' is '//instq(1:3))
+c
+c Notes: Loop over sections.
+c
+ do 9 isec = 1 , nmidsec
+ if (isec .lt. nmidsec) then
+ mend = msecend(icm,isec)
+ else
+ mend = imidi(icm)
+ end if
+ do 10 i = msecstrt(icm,isec) , mend
+ write(51,'(a,$)')char(mmidi(icm,i))
+ if (debugmidi) write(52,'(z4)')mmidi(icm,i)
+10 continue
+9 continue
+c
+c Closing 4 bytes
+c
+ write(51,'(a,$)')chax(0)//char(255)//char(2*16+15)//char(0)
+ if (debugmidi) write(52,'(4z4)')0,255,2*16+15,0
+ if (kv .eq. 2) then
+ kv = 1
+ else if (iv .eq. 1) then
+ go to 5
+ else
+ iv = iv-1
+ if (twoline(iv)) kv=2
+ end if
+5 continue
+ write(*,'(1x,a12,(10i6))')'Bytes used:',(imidi(icm),icm=0,numchan)
+ write(15,'(1x,a12,(10i6))')
+ * 'Bytes used:',(imidi(icm),icm=0,numchan)
+ close(51)
+ if (debugmidi) close(52)
+ return
+ end
+ subroutine Writesetsign(nInstTrans,iInstTrans,iTransKey,flag)
+ parameter(nm=24)
+ integer*4 iInstTrans(nm),iTransKey(nm)
+ character*79 notexq
+ character*1 chax
+ logical flag
+c
+c Assumes notexq is blank
+c
+ do 1 i = 1 , nInstTrans
+ notexq = chax(92)//'setsign'
+ lnote = 8
+ if (iInstTrans(i) .lt. 10) then
+ notexq = notexq(1:lnote)//chax(48+iInstTrans(i))
+ lnote = lnote+1
+ else
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')
+ * '{',iInstTrans(i),'}'
+ lnote = lnote+4
+ end if
+ if (iTransKey(i) .lt. 0) then
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')
+ * '{',iTransKey(i),'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//chax(48+iTransKey(i))
+ lnote = lnote+1
+ end if
+ write(11,'(a)')notexq(1:lnote)//'%'
+1 continue
+ flag = .false.
+ return
+ end
+ subroutine writflot(x,notexq,lenline)
+ character*(*) notexq
+ if (x .lt. 0.95) then
+ write(notexq(lenline+1:lenline+2),'(f2.1)')x
+ lenline = lenline+2
+ else if (x .lt. 9.95) then
+ write(notexq(lenline+1:lenline+3),'(f3.1)')x
+ lenline = lenline+3
+ else
+ write(notexq(lenline+1:lenline+4),'(f4.1)')x
+ lenline = lenline+4
+ end if
+ return
+ end
+ subroutine wsclef(iv,ninow,clefq,nclef)
+c
+c Writes \setclef for instrument containing voice iv
+c
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ logical rename
+ character*1 clefq(nm),chax
+ character*20 temq
+ if (nclef .lt. 7) then
+ clefq(iv) = chax(48+nclef)
+ else
+ clefq(iv)='9'
+ end if
+ if (.not.islast) return
+ iv1 = 1
+ do 1 iinst = 1 , ninow
+ if (iv .lt. iv1+nspern(iinst)) go to 2
+ iv1 = iv1+nspern(iinst)
+1 continue
+ print*
+ print*,'Should not be here in wsclef!'
+ call stop1()
+2 continue
+ iv2 = iv1+nspern(iinst)-1
+ if (iinst .lt. 10) then
+ temq = chax(92)//'setclef'//chax(48+iinst)
+ ltem = 9
+ else
+ write(temq,'(a9,i2,a1)') chax(92)//'setclef{',iinst,'}'
+ ltem = 12
+ end if
+ if (iv1 .eq. iv2) then
+ write(11,'(a)')temq(1:ltem)//clefq(iv)//'%'
+ else
+ temq = temq(1:ltem)//'{'
+ ltem = ltem+1
+ do 3 iiv = iv1 , iv2
+ temq = temq(1:ltem)//chax(48+numclef(clefq(iiv)))
+ ltem = ltem+1
+3 continue
+ write(11,'(a)')temq(1:ltem)//'}%'
+ end if
+ return
+ end
diff --git a/Build/source/utils/pmx/pmx-2.6.18/pmx2618.for.orig b/Build/source/utils/pmx/pmx-2.6.18/pmx2618.for.orig
new file mode 100644
index 00000000000..f310e70a83c
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/pmx2618.for.orig
@@ -0,0 +1,23646 @@
+ program pmxab
+c
+c This program, PMX, developed by Don Simons
+c (dsimons@roadrunner.com), is a preprocessor for MusiXTeX. In concert with
+c MusiXTeX and TeX, its purpose is to allow the user to create high-quality
+c typeset musical scores by including a sequence of PMX commands in an ASCII
+c input file.
+c
+c This program is free software: you can redistribute it and/or modify
+c it under the terms of the GNU General Public License as published by
+c the Free Software Foundation, either version 3 of the License, or
+c (at your option) any later version.
+c
+c This program is distributed in the hope that it will be useful,
+c but WITHOUT ANY WARRANTY; without even the implied warranty of
+c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+c GNU General Public License for more details.
+c
+c You should have received a copy of the GNU General Public License
+c along with this program. If not, see <http://www.gnu.org/licenses/>.
+c
+c
+ character*9 date
+ character*5 version,versionc
+ common /comver/ versionc
+c
+c To compile with gfortran:
+c 1. Merge all files using copy *.for epmx[nnnn].for
+c 2. Search and replace all character*65536 with character*131072
+c 3. Comment/uncomment getarg lines
+c 4. gfortran -O pmx[nnnn].for -o pmxab.exe
+c
+c To do
+c Correct Rainer's email address in manual
+c Linesplit (\\) in h
+c Tt at start of a movement.
+c Toggle midi on or off; allow midi only.
+c Page number printed on 1st page even if 1 system.
+c Still need inserted space for chordal accidentals
+c Voicewise transposition.
+c better segno
+c coda
+c duevolte
+c Fix xtup bracket direction in 2-line staves?? (maybe leave as is)
+c Sticky ornaments with shifts.
+c Deal with Werner's vertical spacing thing associated with title.
+c Multiple ties in midi
+c Werner's missing c in MIDI due to start/stop ties on same note.
+c Beams with single 64ths
+c 128ths and/or dotted 64ths
+c Close out MIDI with integral # of beats?
+c Increase ast dimensions or redo logic.
+c Does slur direction get set for user-defined single-note stem dir'ns?
+c Transpose by sections.
+c Optimization loop over sections only
+c Command-line option to read nbarss in. Write out nbarss when optimizing.
+c (or just read from .plg?)
+c Beams over bar lines.
+c 2-digit figures
+c A real coule (slanted line between notes in a chord)
+c Dotted slurs for grace notes.
+c Undotted chord notes with dotted main note.
+c Forced line break without line number
+c Fix dot moving when 2nds in chord get flipped
+c To do: increase length on notexq in dodyn
+c 2.618
+c Add option Ac[l,4] to set vert and horiz size and offsets to properly
+c center page for letter or a4 paper.
+c 2.617
+c In g1etnote, change if-check for note to use index(...) instead
+c of ichar(charq) since it was messing up gfortran optimizer
+c After pmxa, search for and remove penultimate line <blank><blank>/
+c because it was screwing up linux-compiled versions
+c Bugfix: Increase dimension of kicrd from 7 to 10 in crdaccs(...)
+c 2.616 (111110)
+c Allow hairpins to span multiple notes groups (gulps).
+c 2.615+ (110810)
+c Fix midi when some instruments are transposed, by subtracting
+c iTransAmt(instno(iv)) from pitch values sent to via addmidi in
+c make2bar.for (for main notes) and docrd (for chord notes)
+c 2.615 (110725)
+c Fig bug with size-setting (in topfile) when instrument has >1 staves
+c 2.615 (110724)
+c Make AS[0|-|s|t]... really set sizes
+c 2.614
+c Mod notex.for to fix Terry's bug with raised dotted rests (caused
+c by double-hboxing).
+c 2.613
+c Bugfix: In pmxa, change "do while" limit to keep from overwriting instno.
+c 2.612
+c Enhance AS to allow s or t for smallsize or tinysize
+c 2.611
+c Error trap for "D" before any notes in a block.
+c 2.610
+c Instrument-wise key changes and transposition (incomplete)
+c 2.603
+c 101211 In getpmxmod.for, decreased nline by 2 to fix locating errors
+c following reading in an include file.
+c 101121 Added some error messages in g1etset.for setup data
+c 2.602
+c Correct slur indexing in linebreakslurs.
+c Account for comment lines in line count for error messages
+c 2.601
+c Bug fix: allow 24 slurs with graces
+c 2.60 Changes made make it really big
+c increase mv (size of midi) ? Note: MIDI can't have >16 voices w/o
+c major reprogramming, and 16 may also be a problem (icmm)
+c nm=24 (voices) done
+c 24 slurs done
+c 24 simultaneous beams (Replace index 24 by 0, so get 0-23)
+c bufq*131072 (gfortran only)
+c getarg syntax (gfortran only)
+c 2.523+
+c Fix voice numbering for normal dynamics and text dynamics
+c 2.523
+c Version of bigpmx first posted to Hiroaki's web site.
+c 2.522
+c 5/26/10 Replace ipl bits 0-7 with ipl2, add new common for it.
+c With 2.521+ as starting version, incorporate bigpmx mods to allow 24 voices.
+c 5/13/10 Fix log2 function
+c 5/15/10 Fix bitwise storage for dynamics, fix segnoo string length.
+c 2.521+
+c 091025 Enable dotting 2nd part of linebreak slur or tie.
+c To adjust barno height due to linebreak slur, use \bnrs instead of
+c explicitly redefining \raisebarno (pmxb)
+c 2.521
+c Bugfix
+c 2.520
+c 090519 Enable ligfonts (special figured bass characters)
+c 2.519
+c Fix another bug which kept \sk from being output so misaligned some notes.
+c 2.518
+c Fix bugs: referencing fig data, char declaration for member of
+c common/comfig/
+c 2.517
+c Allow figures in voice 1 + any one other.
+c 2.516
+c Allow figures in voice #2
+c 2.515+ to do: Change manual and activate rule against clef change in voice #2.
+c 2.515
+c 071222 Changes in getnote to allow auto forced beams to start anywhere.
+c 071206 In make2bar, shift fermataup7 to left over centered pause.
+c 070901 In doslur, check for nolev <=2 in case slur ends on rest in 2-line
+c staff (it was screwing up vertical justification).
+c n34 for tweaks to midi durations of quarter note septuplets.
+c To do: In ref250.tex, the tables where 's,t,)' is explained, the line
+c [+,- i] ... Vertical adjustment of the start of second segment
+c should it be replaced by
+c [s +,- i] ... Vertical adjustment of the start of second segment
+c 2.514
+c Changes in make2bar to get horizontal spacing right when normal grace
+c follows after grace
+c Changes in dograce to get octaves right for any material entered inside
+c \gaft, which shields transpose register changes from the outside world.
+c 2.513
+c In make1bar, near end, for forced beams starting with a rest, copy hgt and
+c slope tweaks to ALL notes after first, not just the second one, so if
+c there's more than one rest at start the tweaks are still observed.
+c In beamid and beamend, add stand-alone triply-flagged notes for xtups.
+c 2.512
+c Near end of pmxb, fix error trap to allow redundant 'RD'
+c Enable multiplicity down-up '][' within xtup.
+c 2.511
+c Introduce eskz2 for xtup #'s and bracket lengths, to remove bug caused by
+c adjusteskz as in bar 7 of barsant.
+c 2.510a
+c Test: remove restriction on tempo changes in MIDI macros
+c Send to CM for beta testing.
+c 2.509+
+c To do: Correct manual on AS. "-" is for smaller staves.
+c 2.510
+c Forgot to declare litq, voltxtq as character in subroutine getgrace
+c 2.509
+c Corrected small bug in arpeggio shifting (ivx <= iv in call putarp)
+c 2.508
+c Allow graces in xtups. New subroutine getgrace.
+c 2.507
+c To do: Raise/lower figures.
+c To do: Add 24, 29 to list of musicsizes in manual
+c New sub adjusteskz to account for ask's when computing lengths of
+c brackets for unbeamed xtups, slopes and horizontal posn's of number
+c Bug fix: in beamn1, beamid, and beamend, allow unbeamed xtups w/ 2 flags
+c Add look-left option for keyboard rests, "L" in rest command, set iornq(30)
+c 2.506
+c Fix bug with AK, when simultaneous rests have same duration, use defaults.
+c 2.505
+c Keyboard rests AK
+c 2.504
+c Space after normal grace: option X[n]
+c Fixed og when nv .ne. noinst, by using sepsymq instead of '&'
+c (To do) length of xtup bracket when there is added non-collision space.
+c Trap musicsize if .ne. 16,20,24,29.
+c 2.503
+c Enable arpeggio left shift with ?-x
+c To do: In manual, arpeggio over 2 staves.
+c Allow musicsize of 24 and 29. Had to define meter font size explicitly,
+c also change font size for text dynamics, but not much else so far.
+c Bugfix in beamstrt, introduced in 2415, ip was changed before putxtn
+c was called, causing error in printing replacement number.
+c 2.502
+c Incorporate Dirk Laurie's patch to use { , } , for ties.
+c Figure height adjustment: append +[n]
+c Change ec font stuff in pmx.tex per Olivier Vogel's comment (CM email?)
+c 2.501
+c Readjust horizontal offset back to .8 in LineBreakTies
+c Fix zero-subscript (iudorn) in putorn
+c 2.50
+c Increase number of text-dynamics (dimension of txtdynq) per block
+c from 12 to 41.
+c Slur option n to override altered default curvature.
+c Allow default ps slur curvature tweaks with Ap+/-c
+c 2.416
+c Increase length of textdynq from 24 to 128
+c (Todo) Add comment in manual about blank lines at end.
+c Configuration file: Define subroutine getpmxmod, check path in environment
+c variable pmxmoddir, check existence, read lines into bufq after setup.
+c Increase dimension on idynn in dodyn from 4 to 10 for max number
+c of marks in a bar
+c Increase allowable # of lines from 2000 to 4000.
+c (To do) Replace definition of \liftpausc per Olivier.
+c (To do) Fix extraneous error message if RD is placed at very end.
+c 2.415
+c Fix "AT" option: replace putxtn,topfile,beamstrt,beamid to use \xnumt
+c instead of redefining \xnum. Change font used to \smallfont (as for
+c normal xtups,
+c Allow slur to start on rest.
+c 2.414
+c Correct bug in crdacc when adding accidental to boundary causes number of
+c segments to decrease
+c Special rule for 3-accidental chords: If no 2nds, place them in order
+c top, bottom, middle.
+c 2.413
+c Correct bugs in chordal accidentals, related to left-shifted noteheads
+c (a) Special problems with downstem when main note needs shifting
+c (b) Assign 0 rank to boundary segs due to left-shifted noteheads
+c 2.412
+c Change default horiz shift of start of seg 2 of linebreak slurs:
+c -.7 for slurs, -1.2 for ties,
+c Use height of start of seg 1 slur itself for end of 1 and start of 2.
+c 2.411
+c "Apl" activates special treatment of linebreak slur/tie's; breaks all in 2.
+c "s" option in start of slur/tie as precursor to vert/horiz tweaks for end
+c of seg 1. of linebreak slur/tie, 2nd "s" for start of seg2.
+c With "Apl", curvature adjustments on starting slur command apply to seg 1,
+c those on ending command to seg 2.
+c 2.410
+c "AT" to allow Col. S.'s tuplet option. Simply input tuplet.tex and redefine
+c \xnum, \unbkt, \ovbkt.
+c "s" option in main xtup input after "x": slope tweak for bracket. mult(4) is
+c flag, mult(5-9) is tweak value+16
+c 2.409
+c Bugfix in docrd for MIDI: Use original pitch in case main/chord were
+c switched due to 2nds.
+c Remove "o" from error message for "A" command.
+c New syntax: optional instrument number separator ":" in movement
+c break command to precede a 2-digit instrument.
+c Conditional output formats for \setname at movement break to allow
+c instrument numbers >9.
+c Bugfix in coding to raise barno due to slur over line break (pmxb)
+c Move date/version data statement in pmxab to a better place.
+c 2.408
+c Allow pnotes{x} when x>9.995 (mod is only to format stmt in make2bar).
+c Bug fix in \liftPAusep in notex.for and in pmx.tex
+c Character variables for version and date
+c For up-stem single graces slurred to down-stem, shift slur start left by
+c 0.8 so slur doesn't get too short.
+c Initialize and slide mult, same as other full-program variables in /all/.
+c 2.407
+c Allow AN[n]"[partname]" to be parsed by scor2prt as filename for part n,
+c 2.406
+c Alter PMX: put \dnstrut into \znotes in \starteq (for system spacing
+c equalization).
+c Put dimensions of double sharps and flats in crdacc (for chords).
+c Bugfix: Use sepsymq in LineBreakTies(..) instead of '&'
+c Use only first 4 bits of mult for multiplicity+8, so rest can be used
+c for other stuff.
+c Move stemlength stuff in nacc(27-30) to mult(27-30) to remove conflict.
+c 2.405: Not published but saved for safety.
+c Option Aph to write \special{header=psslurs.pro} top of each page, so
+c dviselec will work OK.
+c 2.404
+c Allow slur to end on rest, but not start on a rest. Efaults height
+c of ending is default height of start (before any automatic or user-
+c defined djustments). User may adjust height as normal from default.
+c 2.403
+c Bugfix: turn off repeated beaming patterns.at end of non-last voice.
+c 2.402
+c Automatic repeated forced beams. Start with "[:" End with next explicit
+c forced beam or end of input block.
+c Increase # of forced beams per line of music per input block from 20 to 40
+c 2.401
+c Optional K-Postscript Linebreak Ties, Apl. New subroutine LineBreakTies.
+c Makes 1st part normal shape, and starts 2nd part a little further left.
+c Enable arpeggios in xtuplets. Had to make time itar(narp) a real.
+c 2.40
+c Set up WrotePsslurDefaults (logical) so only write defaults on 1st Ap.
+c Fix non-ps-slur input to \midslur (third signed integer). Do not reverse
+c sign for down-slurs.
+c 2.359
+c Add error exit subroutine stop1 to make exit status g77-compatible..
+c Absolute octave on xtup chord note was 2 octave too high, fixed in getnote
+c Fermata on vertically shifted rest: special trap in putorn() to set height.
+c Correct multiple grace note spacing for small staves (in dograce,
+c define wheadpt1 depending on staff size)
+c 2.358
+c Allow curvature corrections at start of postscript slur, in dopsslur()
+c Local slur options p[+|-][s|t] for [nos|s]luradjust,[not|t]ieadjust
+c Options for [Nos|S]luradjust,[Not|T]ieadjust,[noh|h]alfties: Ap[+|-][s|t|h]
+c Make t[ID] act like s[ID]t, most mods in spsslur().
+c Add spsslur() to read in data for ps slurs, call from getnote.
+c In beamstrt, save args for SetupB in common comipb to save them for
+c 2nd call when xtup starts with rest
+c Add spacing for ornament ")" as if it were accidental, in make2bar().
+c Horiz shift start and end of ps ties, dep. on stem dir'n, in dopsslur()
+c Horiz. shift start of ps grace slur, 2 places in dograce().
+c Horiz shift end of grace slur in endslur()
+c Make st slurs into postscript ties. Separate subroutine dopsslur(),
+c Non-beamed xtup: "a" in 1st note or rest, before "x" (sets drawbm=.false.)
+c Allow two D"x" on same note. Introduced jtxtdyn1 in dodyn.
+c 2.357a
+c Fix missing "end" in backfill.com, too-long lines in g1etnote, getnote
+c 2.357
+c Increase dimension for # of lit TeX strings from 52 to 83.
+c Allow blank rest in middle of xtuplet. Only mods in g*etnote().
+c 2.356
+c Increased some dimensions from 30 to 40 to allow up to 40 pages.
+c In unbeamed xtups, "n" did not suppress bracket. Fixed in beamstrt().
+c Fix parsing of "f,h,H,HH" in sslur.
+c Fix bug with cdot, note-level for slur termination (in getnote)
+c 2.355
+c Midi transposition: IT[+|-][n1][+|-][n2]...[+|-][n(noinst)],
+c n=# of half-steps. Restrict to mult. of 12 now, to avoid key-sig issues
+c Make midi recognize ps ties in doslur.
+c Correct ttieforsl so that it eats 2nd argument properly, using \zcharnote
+c to get octave right.
+c 2.354
+c With postscript slurs, make t-slurs real ties by inserting replacement
+c macros \tieforisu, etc, defined in pmx.tex
+c Check for open cresc or decresc at end of input block, using list[de]cresc
+c Hairpin syntax conditional on postscript slurs. Backup to fill in start
+c level, using new backfill(...). Separate height tweaks for
+c start and finish.
+c 2.353
+c K-0+n to transpose by half step (rather than just change key)
+c Allow "rm[n]" when nv>1. Require it in all parts. Just write a stack of
+c \mbrest's
+c Enable "Rz"; define \setzalaligne in pmx.tex. Special treatment at end
+c of input block before movement break, and at start of block after
+c movement break, using \newmovement rather than \setzalaligne, since
+c former already redefines \stoppiece. In second case, set rptfg2='z'.
+c Make clefq(nm) common between pmxb and getnote; change references in
+c getnote at 'M' to array elements, setting all new clefs as you go.
+c 2.352
+c Remove \parskip redefinition from pmx.tex; write it into TeX file when
+c "Ae" is invoked.
+c Ap to activate postscript slurs. Add macro \psforts to pmx.tex to redefine
+c \tslur in case \midslur was used. Allow slur inputs 'f','h','H','HH',
+c translate them thru mapping to (1,4,5,6) as \midslur params, then let
+c \psforts translate them back to ps slur macors.
+c 2.351
+c Number slurs from 0 up instead of 11 down, anticipating postscript slurs.
+c Write "\eightrm" instead of "\cmr8" for \figfont with small baseline size.
+c Increase length of basenameq to 44 characters everywhere.
+c Increase dimension of mcpitch (midi-chord-pitch) to 20.
+c Set default systems per page to 1 if nv>7
+c In pmxb, move place where isystpg is reset to 0, so that \eject gets
+c written when there is just one system per page.
+c 2.35
+c Cautionary accidentals with 'c' anywhere in note symbol.
+c NEW pmx.tex with \resetsize to set size to normal or small depending on
+c current \internote. Used with new coding in dograce() to get right
+c new size in case user has \setsize'ed some lines to \smallvalue. For
+c \smallvalue-sized staves, redefine \tinynotesize to give 11-pt font.
+c Affects pmx.tex.
+c Continuation figure with fractional length. May now mix with other figures.
+c If another figure follow Cont-fig, separate with colon.
+c 2.342
+c Bugfix in getnote to recognize relative octave shift in grace at start of
+c input block.
+c In make2bar, initialize islhgt=0 earlier than before (possible solution
+c to Suse g77 compile problem that I could not reproduce)..
+c Bugfix in beamstrt & beamn1 for r2x6 c4D d d d
+c 2.341
+c Syntax check: Forced page break page number must be > than previous.
+c Bugfix: Define ivx when "sliding down" breath/caesure data in pmxb.
+c 2.34
+c New pmx.tex with redefined liftpausc
+c Bug fix with dotted, non-beamed xtups.
+c 2.332
+c Fix bugs in horizonal shifts, spacing, for accid's, graces, noteheads.
+c Allow arbitrary pos. input to W in g1etnote and getnote.
+c 2.331
+c Bug-fix in dodyn(..): typo on length of arg of txtdyn
+c 2.33
+c Caesura (oc), breath (ob). Set iornq(28), store rest of data in ibcdata()
+c 2.321
+c Rescale accidental shifts. Still use 7 bits but now map (0,127)
+c onto (-1.,5.35)
+c Fix ihornb bug in dodyn, seen with dynamics on lower-voice non-beamed xtups
+c 2.32 (Noticed after posting)
+c Prohibit "/" as figure.
+c 2.32 (Posted)
+c Tidied up accidentals in chords, do spacing.
+c Still to do:
+c check for "(" on chord notes in spacing algo
+c small accids
+c double accids
+c autoshift slurs
+c 2.310
+c Extra call to precrd ahead of spacing chk, and single-note crd/acc
+c shifts seem OK, but not multiple. crd/acc shifts not recorded 1st time.
+c 2.309
+c Alternate algo for accid shifts in chords.
+c 2.308
+c Auto horiz. notehead shifting added to precrd.
+c 2.307
+c Auto shifting of multiple accidentals in chords.
+c "Ao" in main chord note to keep accidentals in order. Set nacc(28).
+c If there are any manual main or chord note shifts, then
+c If any manual shift is preceded by "A" then
+c 1. Auto-shifting proceeds
+c 2. "A"-shifts add to autoshifts
+c 3. non-"A" shifts are ignored!
+c Else (>0 man shifts, none has "A")
+c No auto-ordering, No autoshifts,
+c End if
+c End if
+c 2.306
+c Initialize legacy note level to middle C in case user forgets to set
+c octave.
+c Shift xtup note?
+c Shift in elemskips rather than noteheads?
+c 2.305
+c Stop pmxb from multiple endvolta's at start of new page.
+c 2.304
+c "Sx" in a note means shorten stemlength by x \internotes. "Sx:" turn on
+c for multiple notes in the voice, "S:" last shortened note.
+c 2.303
+c vshrink stuff all OK? Description is in pmxb.
+c 2.302
+c Toggle vshrink with "Av". vshrink normally kicks in when \interstaff
+c hits 20. This still needs work.
+c Add " /" to last line if last char is not % or /.
+c 2.301
+c Check in beamn1 for single note before multiplicity down-up.
+c allow '.PMX' as well as '.pmx'
+c 2.299
+c Correct typo in pmxb involving PMXbarnotrue.
+c Replacement printed number for xtup: Unsigned integer after 'n' after 'x'
+c Minor upgrade parsing xtuplet options 'x...'
+c Correct dimension of nxtinbm in make2bar.
+c 2.298
+c Account for doubled xtup notes in subroutine getx (user-defined spaces),
+c by adding ndoub as an argument..
+c 2.297
+c Created and solved compiler problem. Put drawbm(NM) in its own common.
+c Add new def'ns [\a|PA]usc, \lift[pa|PA]usc to pmx.tex, use them in make2bar
+c when \centerbar is used.
+c Modify \mbrest & \CenterBar in pmx.tex to use \volta@endcor etc. Have PMX
+c use right 2nd and 3rd args for \mbrest when key, meter, or clef changes.
+c 2.296
+c Correct printed numbers for forced beams with multiple xtups. For each beam
+c make list in setupb by voice of eloff (h-offset) and mtupv (printed #)
+c Increase lengths of jobname and infileq by 20 characters
+c Enable whole notes and breves as 1st or last note of xtup in beamn1 and
+c beamend, and wholes in beamid.
+c 2.295
+c Midi balance Ib[n1]:[n2]:...[nn]
+c Single-slope beam groups [...]-[...]
+c Trap "i" unless after accidental (main notes, xtups, chord notes)
+c 2.294
+c Unequal xtups with "D" to double a note in an xtup.
+c As above, "F" will (a) increase multiplicity by 1 for marked note and next
+c one and (b) add a dot to the first one.
+c Fix bug with e.g. c84 [ .d e.f ] by checking whether forced beam is on
+c when "." is encountered, then correcting beam start time.(end of getnote)
+c MIDI velocity (volume) set: Iv[n1]:[n2]:[n3]...
+c 2.293
+c Check for single notes spanning bar lines.
+c Correct various bugs with staff-jumping beams. (1) for 2nd segment, vxtup
+c must be set in make2bar since beamstrt is not called, fixing problem with
+c dot at end. (2) add ivjb2 to flag which voice has 2nd segment and fix
+c problem when >2 staves.
+c Add nodur to args of dodyn, so can check if stemless and avoid height tweak
+c Correct bug in getdyn setting flag in idynda2(0) for manual horiz. tweak
+c 2.292a
+c Undo syntax check for Type 2 or 3 TeX string starting in column 1.
+c Meanwhile, Werner's problem with a mid-line Type 3 string has gone away?!
+c 2.292
+c Allow comments in xtuplets
+c Enable multiple octave jumps in grace notes.
+c Allow dynamics in xtuplets.
+c Fix bug in getdyn searching for end of text string (correct length of lineq
+c to 128)
+c Fix bug in dodyn, must ignore horiz. interaction tweak for
+c user-text (idno = 0)
+c Syntax check for Type 2 or 3 TeX string starting in column 1
+c (NOTE: later undone!)
+c Syntax check for page number > npages at forced line break.
+c 2.291
+c Fix error in AS command (accid spacing for small systems), making only
+c one spec per staff, nv total.
+c Stop using MIDI channel 10
+c 2.29
+c Fix error in console output format for # of bytes used in MIDI file.
+c Fix bug in dograce so no space is added between grace and main note when
+c there is a MIDI-only accidental.
+c Fix bug so oes?+4 works. It was too ugly to explain.
+c ...Different ways of storing accidental specs on input and output.
+c No longer zap \writezbarno in special situations.
+c Fix bug in dyntxt level on rest
+c Line spacing equalization. Add macros \starteq, \endeq, \spread, etc.
+c Activate with Ae. (Maybe later could input alternate values for
+c \upamt, \dnamt, \parskip). Put \starteq on 1st note in voice 1
+c in the page, and \endeq on 1st note of next-to-last line in page.
+c 2.28
+c Flip direction of forced beam "[f..."
+c Fix beam numbering for staff jumping beams. Uses irest(23,24,29,30)
+c Fix bug in sliding ip's for txtdyn's
+c In dyn's allow vert. offsets +/-64, horiz +/-25.6 (store in idnyda2(1-99)
+c 2.27
+c Comment out lines in dodyn checking number of dynamic marks found. Voice
+c order may not be monotonic if two lines on a staff.
+c Literal dynamic: D"[text]"
+c 2.26
+c Allow hairpin start-stop on same note by disabling auto-tweaks in dodyn,
+c increasing dimension of idynn to 4 to allow 4 symbols on same note.
+c Increase voltxtq length from 10 to 20.
+c AS[-/0][-/0]... to inform PMX that "-" voices are small, and rough
+c accounting for ast's is done by defining effective headwidth
+c whead1 in makebar2 to be 0.8*whead.
+c 2.25
+c Fix logic bug with sepsym's when # of instruments changes.
+c Slight increases in default offsets for hairpin starts after "p"
+c 2.24
+c Hairpins D< or D> as toggle.
+c Many automatic position tweaks for letter-group dynamics and hairpins.
+c 2.23
+c Continued rhythmic shortcuts: space followed by "." or ","
+c 2.22
+c In call to doslur, change tno(...) to tnote(...). This was only
+c used when checking to slurs per stem directions, and should have been
+c the note duration all along.
+c MIDI-only accidental, bit 17 in nacc, or 27 in icrdat.
+c Use "i" anywhere in note symbol.
+c 2.21
+c Increase from 20 to 30 dimensions for movement breaks and midi sections.
+c Fix out-of-order declarations per mutex comments
+c Add "Bad error" and "Kluging" messages to log file.
+c 2.197
+c add /comips/ to save tie-check midi variables
+c For spacing of clef changes at start of input block, changed integer time
+c lastnodur to prevtn, so it works with xtups. Possible incompatibility!
+c 2.196
+c Fix Ickbug with time check in ncmid()
+c Interchange \fermataup7 and \pausec to get proper alignment
+c Enable French violin clef "f", number 7 in PMX, but 9 in MusiXTeX.
+c Add defn's of \hsp, \hspp to pmx.tex
+c Fix pre-slurs on xtup chord notes.
+c Fixed raised PAuse, define \liftPAuse
+c Replace \zbreve\sk with \breve.
+c Made "1" work as mtrdenl by doubling it and mtrnuml. BUT WAIT...what
+c about "o" and 1 as shorthand for 16???? Search for "Kluge"
+c Added "vo" (voice) as MIDI instrument 55
+c Allow 3-digit page numbers (search for "toppageno")
+c Fix bug caused by prior fix (cancelling accid after bar line was ignored).
+c Fix double accids in chords
+c 2.194
+c Fix bug with accid/tie/barline/chord in addmidi by restructuring accid if
+c block.
+c Add meter to MIDI file with every pause
+c Purify FORTRAN?
+c 2.193
+c Increased # of in-line TeX strings from 36 to 52.
+c Fix entry of # of bytes in header of tempo/meter/key track to allow >255.
+c 2.191
+c Event track: Tempos, meters, keys all together. Data in comevent
+c 2.15
+c Pretty good midi capability. Still no attention to slurs on chord notes.
+c 2.11
+c 11 Dec 99 c rm1
+c 11 Dec 99 "oes?", "oe?"
+c 11 Dec 99 Cancel slur horizontal tweaks with non-stemmed notes
+c 11 Dec 99 Error message for shifted, repeated ornaments.
+c 2.10 (Version 2.1)
+c Fix bug with lowdot and xtuplets
+c 2.09
+c Fix bug with multiple ornament heights over beams, when one is . or _
+c Error message from pmxa if rest on last note of xtup.
+c Enable 12 slurs.
+c Reinstate multiple rests at start of xtup.
+c 2.07
+c Combine consecutive type-1 TeX strings.
+c \midslur and \curve as 3rd signed digit in slur termination, + 2 opt.int's.
+c Fixed breve chord notes in docrd
+c Check irest(28) as well as vxtup when setting nodur for chord notes, since
+c vxtup isn't set until 1st *main* note in xtup
+c Vectorize nolev1, slope, ixrest. Klug fix for xtups with variable spacing.
+c 2.06+
+c Make deterministic the beam slope calculation when there are an even # of
+c slopes in list and middle two are equal magnitude but opposite sign.
+c pmxa Trap for "o:" before 1st note in block
+c Partial bug fix for 64th notes in xtuplets.
+c Make ixrest a vector, since with new time scheme may not finish xtup in
+c same notes block.
+c Increase max # of pages from 20 to 30 (dimensions of nsystp,..., in pmxb)
+c 2.06
+c Account for changes in nv when computing \interstaff. Add a counter
+c nistaff(iflb) = # of interstaff spaces per system = nv-1. Set whenever
+c setting isysflb(iflb). Note nv can only change at a forced line break.
+c Note also, iflb starts at 0!
+c 2.05
+c Automatic start of new notes group with part 2 of staff-jump beam
+c In make1bar, set irest bit 29 of lowest-voice note at same time,
+c use as flag when making notes groups.
+c For now, remove dummy blank line at end...it zaps terminal repeats.
+c 2.02
+c Fixed slur-counting bug for multiple, slurred, aftergraces.
+c 2.01
+c Increase to ask(1400)
+c Increase max forced page breaks to 18
+c Define pausc for centered pause
+c 2.0a
+c Insert dummy blank line at very end to handle input files w/o terminal CR-LF
+c pmx03r
+c Option m[n] in S symbol to change musicsize (for parts)
+c Double dotted rests now work.
+c Write file name to log file
+c Check existence of input file
+c Allow 24-char jobname, may end with ".pmx"
+c Comment out time stuff
+c Replace 3-argument getarg with 2-argument + iargc
+c Fix bug with negative noinst due to nint<=int replacement
+c move lovation of iv in isdat1 to allow iv>7.
+c Set nm=12
+c pmx03q
+c replace int(x+.001) with nint(x)
+c Write TeX file name to screen and to pml.
+c Replace char(...) with chax(...) to sovle msdev bug.
+c Bug fix: macro terminations when M is on a line by itself.
+c Bug fix: don't accumulate space for XS in pmxa.
+c Streamline Macros: use pointers to bufq instead of scratch files
+c pmx03p
+c Store input file in single character array bufq.
+c lbuf(i)*2 is length of line i
+c ipbuf is position just before next line to be read.
+c pmx03
+c Optimize read/writes
+c pmx02
+c Fix line count (for errors) when there are saved macros
+c pmx01
+c In optimize mode, open/close macros (Watch out for residual zz files!)
+c Command line input
+c Option Ao to optimize, otherwise normal processing
+c
+ccccccc
+ parameter (nks=125,nm=24,mv=24576,maxblks=4000)
+ character*128 lnholdq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /comevent/ miditime,lasttime
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ common /commus/ musize,whead20
+ integer*4 nbars0(nks),nbars(nks),ipoe(nks),nbari(nks)
+ real*4 poe0(nks),poe(nks)
+ logical isfirst,optimize
+ logical*4 fexist
+ character*44 jobname
+ character*47 infileq
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * idum,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ logical rest,firstline,newmeter
+ common /comdiag/ n69(0:nm),n34(0:nm)
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+ common /truelinecount/ linewcom(20000)
+c
+c immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing
+c nmidsec section starts and stops based on PLAYING macros (not recording).
+c
+ccccccccccccccccccccccccc
+c
+ data date /'19 Mar 12'/
+ data version /'2618'/
+c
+ccccccccccccccccccccccccc
+ data maxit,ncalls /200,0/
+ data isfirst /.true./
+c itstart = mytime()
+ versionc = version
+c
+c Initialize midi parameters
+c
+ gottempo = .false.
+ ismidi = .false.
+ debugmidi = .false.
+ relacc = .false.
+ mmacrec = .false.
+ nmidsec = 1
+ mgap = 10
+ miditime = 0
+ lasttime = 0
+ nmidcrd = 0
+ nusebl = 0
+ notmain = .false.
+ do 3 ivx = 1 , nm
+ twoline(ivx) = .false.
+ midinst(ivx) = 6
+ midivel(ivx) = 127
+ midibal(ivx) = 64
+ miditran(ivx) = 0
+3 continue
+ do 12 icm = 0 , nm
+ imidi(icm) = 0
+ restpend(icm) = .false.
+ trest(icm) = 0.
+ levson(icm) = 0
+ levsoff(icm) = 0
+ slmon(icm) = .false.
+ naccbl(icm) = 0
+ n69(icm) = 0
+ n34(icm) = 0
+ msecstrt(icm,1) = 1
+12 continue
+c
+c End of midi parameter initialization
+c
+ musize = 0
+ optimize = .false.
+ numargs = iargc()
+ if (numargs .eq. 0) then
+ print*,'You could have entered a jobname on the command line,'
+ print*,' but you may enter one now:'
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+ call getarg(1,jobname,idum) ! May need to replace this w/ next line
+c call getarg(1,jobname)
+ end if
+10 ljob = lenstr(jobname,44)
+ if (ljob .gt. 44) then
+ print*,'Jobname is too long. Try again.'
+ call stop1()
+ else if (ljob .eq. 0) then
+ print*,'No was jobname entered. Try again.'
+ call stop1()
+ else if (numargs .eq. 2) then
+ if (ljob.eq.2 .and. jobname(1:2).eq.'-o') then
+ optimize = .true.
+ call getarg(2,jobname,idum) ! May need to replace this w/ next line
+c call getarg(2,jobname)
+ numargs = 1
+ go to 10
+ else
+ print*,'Illegal option on command line'
+ call stop1()
+ end if
+ end if
+c
+c Strip ".pmx" if necessary
+c
+ ndxpmx = max(index(jobname,'.pmx'),index(jobname,'.PMX'))
+ if (ndxpmx .gt. 0) then
+ jobname = jobname(1:ndxpmx-1)
+ ljob = ljob-4
+ end if
+c
+c Check for existence of input file
+c
+ infileq = jobname(1:ljob)//'.pmx'
+ inquire(file=infileq,EXIST=fexist)
+ if (.not.fexist) then
+ inquire(file=jobname(1:ljob)//'.PMX',EXIST=fexist)
+ if (.not.fexist) then
+ print*,'Cannot find file '//infileq
+ call stop1()
+ else
+ infileq = jobname(1:ljob)//'.PMX'
+ end if
+ end if
+c
+c Open a log file
+c
+ open(15,file=jobname(1:ljob)//'.pml')
+ call printl('This is PMX, Version '//version//', '//date)
+ ljob4 = ljob
+ call printl('Opening '//infileq)
+ open(18,file=infileq)
+c
+c Copy input file into common buffer
+c
+ ipbuf = 0
+ linewcom(1) = 1
+ do 8 ilbuf = 1 , maxblks
+ ncomments = 0
+14 read(18,'(a)',end=9)lnholdq
+ lbuf(ilbuf) = lenstr(lnholdq,128)
+ if (lbuf(ilbuf) .eq. 0) then
+c
+c Blank line. Make it a single blank with length 1
+c
+ lbuf(ilbuf) = 1
+ lnholdq = ' '
+ end if
+c
+c Now line has at least one non blank character. Check for comment
+c As of Version 260, do not copy comments into bufq
+c But need to count %'s for error messaging
+c if (lnholdq(1:1).eq.'%') go to 14
+ if (lnholdq(1:1).eq.'%') then
+ ncomments = ncomments+1
+ go to 14
+ end if
+c
+c When here, have counted all preceding comments and have a real line
+c
+ if (ilbuf .gt. 1) then
+ linewcom(ilbuf) = linewcom(ilbuf-1)+1+ncomments
+ else
+ linewcom(1) = 1+ncomments
+ end if
+ if (ipbuf+lbuf(ilbuf).gt.65536) then
+ print*,'Too many characters in file, stopping'
+ call stop1()
+ end if
+ bufq(ipbuf+1:ipbuf+lbuf(ilbuf)) = lnholdq
+ ipbuf = ipbuf+lbuf(ilbuf)
+8 continue
+ call printl('Too many lines in input file')
+ call stop1()
+9 continue
+c
+c Insert dummy line to handle input files w/o CR-LF at end.
+c
+ nlbuf = ilbuf-1
+c nlbuf = ilbuf
+c bufq(ipbuf+1:ipbuf+3) = ' / '
+c lbuf(nlbuf) = 3
+ close(18)
+ do 6 numit = 1 , maxit
+ if (optimize) call printl('Starting an iteration')
+c
+c When isfirst=.true., pmxa() generates linebreaks normally, output in nbars0.
+c Otherwise, nbars0 is the input
+c When islast=.false., pmxb only returns poe's, otherwise does whole job
+c
+ call pmxa(jobname,ljob4,isfirst,nsyst,nbars0,optimize)
+ if (.not.optimize) then
+ if (ismidi) then
+c
+c Set up channel numbers for midi.
+c
+ numchan = 0
+ do 11 iv = nv , 1 , -1
+ if (twoline(iv)) then
+ midchan(iv,2) = numchan
+ numchan = numchan+1
+ end if
+ midchan(iv,1) = numchan
+ numchan = numchan+1
+11 continue
+c
+c numchan will now be the number of channels, but max channel # is numchan-1
+c
+c Set up velocities, balances, and midi-transpositions
+c
+ do 13 iv = nv , 1 , -1
+ if (twoline(iv)) then
+ midvelc(midchan(iv,2)) = midivel(iv)
+ midbc(midchan(iv,2)) = midibal(iv)
+ midtc(midchan(iv,2)) = miditran(iv)
+ end if
+ midvelc(midchan(iv,1)) = midivel(iv)
+ midbc(midchan(iv,1)) = midibal(iv)
+ midtc(midchan(iv,1)) = miditran(iv)
+13 continue
+ end if
+c
+c TEMPORARY!!!
+c
+ write(15,*)'nlbuf: ',nlbuf
+ ip1 = 1
+ do 10000 ilb = 1 , nlbuf
+c write(15,'(2i5,a40,3i5)')ilb,lbuf(ilb),
+c * bufq(ip1:ip1+lbuf(ilb)-1),
+c * (ichar(bufq(ip1+lbuf(ilb)-k:ip1+lbuf(ilb)-k)),
+c * k=min(3,lbuf(ilb)),1,-1)
+ ip1 = ip1+lbuf(ilb)
+10000 continue
+ iplast = ip1-1
+c
+c Check to see if (1) last line is "<blank><blank>/" and (2) next to last
+c line is "/"
+c
+c print*,'iplast:',iplast
+c print*,'Last line:'
+c print*,bufq(iplast+1-lbuf(nlbuf):iplast)
+c print*,'Last char of next to last line:'
+c print*,bufq(iplast-lbuf(nlbuf):iplast-lbuf(nlbuf))
+ if (bufq(iplast+1-lbuf(nlbuf):iplast) .eq. ' /') then
+ if (bufq(iplast-lbuf(nlbuf):iplast-lbuf(nlbuf)).eq.'/') then
+ print*,'Removing last line of "<blank><blank>/"'
+ write(15,*)'Removing last line of "<blank><blank>/"'
+ nlbuf = nlbuf-1
+ end if
+ end if
+c
+ call pmxb(.true.,poe0,ncalls,optimize)
+ if (ismidi) then
+c
+c Write midi file
+c
+ open(51,file=jobname(1:ljob)//'.mid')
+ if (debugmidi) open(52,file=jobname(1:ljob)//'.dbm')
+ call printl(' ')
+ call printl('Writing '//jobname(1:ljob)//'.mid')
+ call writemidi(jobname,ljob)
+ end if
+ close(15)
+ stop
+ end if
+ write(15,*)'nlbuf: ',nlbuf
+ ip1 = 1
+ call pmxb(.false.,poe0,ncalls,optimize)
+ call poestats(nsyst,poe0,poebar0,devnorm0)
+c
+c Save initial deviation and line breaks for later comparison
+c
+ if (numit .eq. 1) then
+ devpmx = devnorm0
+ do 20 isys = 1 , nsyst
+ nbari(isys) = nbars0(isys)
+20 continue
+ end if
+ call sortpoe(nsyst,poe0,ipoe)
+ do 1 iupord = nsyst , 1 , -1
+ isysu = ipoe(iupord)
+ print*,'isysu=',isysu
+ write(15,*)'isysu=',isysu
+c
+c Skip if system isysu has poe0 < avg or isysd has poe0 > avg
+c
+ if (poe0(isysu).lt.poebar0) go to 1
+ do 5 idnord = 1 , nsyst
+ isysd = ipoe(idnord)
+ if (isysu.eq.isysd .or. nbars0(isysd).eq.1
+ * .or. poe0(isysd).gt.poebar0) go to 5
+ do 2 isyst = 1 , nsyst
+ nbars(isyst) = nbars0(isyst)
+ if (isyst .eq. isysu) then
+ nbars(isyst) = nbars(isyst)+1
+ else if (isyst .eq. isysd) then
+ nbars(isyst) = nbars(isyst)-1
+ end if
+2 continue
+ call pmxa(jobname,ljob4,isfirst,nsyst,nbars,optimize)
+ call pmxb(.false.,poe,ncalls,optimize)
+ call poestats(nsyst,poe,poebar,devnorm)
+ if (devnorm .lt. devnorm0) then
+ devnorm0 = devnorm
+ poebar0 = poebar
+ do 4 isys = 1 , nsyst
+ nbars0(isys) = nbars(isys)
+ poe0(isys) = poe(isys)
+4 continue
+ print*,'Improved with iup,idown,devnorm:',
+ * isysu,isysd,devnorm0
+ write(15,*)'Improved with iup,idown,devnorm:',
+ * isysu,isysd,devnorm0
+ write(*,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ call sortpoe(nsyst,poe0,ipoe)
+ go to 6
+ end if
+5 continue
+1 continue
+c
+c If we get here, must have gone thru all switches and found nothing better,
+c so done!
+c
+ go to 7
+6 continue
+7 continue
+ print*,'Optimum located, numit:',numit,', ncalls:',ncalls
+ write(15,*)'Optimum located, numit:',numit,', ncalls:',ncalls
+ print*,'Final error:',devnorm0,', initial error:',devpmx
+ write(15,*)'Final error:',devnorm0,', initial error:',devpmx
+ print*,'Percentage improvement:',100.*(1-devnorm0/devpmx)
+ write(15,*)'Percentage improvement:',100.*(1-devnorm0/devpmx)
+ call printl('Initial bars/system:')
+ write(*,'(5x,20i3)')(nbari(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbari(isys),isys=1,nsyst)
+ call printl('Final bars/system:')
+ write(*,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ write(15,'(5x,20i3)')(nbars0(isys),isys=1,nsyst)
+ call pmxa(jobname,ljob4,.false.,nsyst,nbars0,optimize)
+ call pmxb(.true.,poe0,ncalls,optimize)
+c itend = mytime()
+c print*,'Elapsed time in ms:',itend-itstart
+c write(15,*)'Elapsed time in ms:',itend-itstart
+ close(15)
+ end
+ subroutine accsym(nacc,acsymq,lacc)
+ character*3 acsymq
+ iacc = iand(nacc,7)
+ if (iacc .eq. 1) then
+ acsymq = 'fl'
+ lacc = 2
+ else if (iacc .eq. 2) then
+ acsymq = 'sh'
+ lacc = 2
+ else if (iacc .eq. 3) then
+ acsymq = 'na'
+ lacc = 2
+ else if (iacc .eq. 5) then
+ acsymq = 'dfl'
+ lacc = 3
+ else if (iacc .eq. 6) then
+ acsymq = 'dsh'
+ lacc = 3
+ else
+ print*,'bad accidental: ',iacc
+ end if
+ return
+ end
+ subroutine addask(taskn,waskn,elaskn,
+ * fixednew,scaldold,tglp1,isudsp)
+ parameter (nm=24)
+ logical isudsp
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comtol/ tol
+ if (isudsp) then
+c
+c Find which udsp we're dealing with
+c
+ do 1 iudsp = 1 , nudsp
+ if (abs(taskn+tglp1-tudsp(iudsp)) .lt. tol) go to 2
+1 continue
+ print*,'You should note BEEE here in addask!'
+ call stop1()
+2 continue
+c
+c Fixednew and scaldold must not be changed, since udsp's are already included
+c in fsyst from pmxa, and udsp don't involve scaled space..
+c
+ if (naskb.gt.0 .and. abs(taskn-task(max(1,naskb))).lt.tol) then
+c
+c Must add user-defined space to what's there already.
+c
+ wask(naskb) = wask(naskb)+udsp(iudsp)
+ else
+c
+c This place has no other space.
+c
+ naskb = naskb+1
+ task(naskb) = taskn
+ wask(naskb) = udsp(iudsp)
+ elask(naskb) = 0.
+ end if
+ else
+c
+c This is a normal space, no effect if smaller than existing space
+c
+ if (naskb.gt.0 .and. abs(taskn-task(max(1,naskb))).lt.tol) then
+c
+c We already put in some space at this time
+c Check if new one needs more space than old one at same time
+c
+ if (waskn .gt. wask(naskb)) then
+ naskb = naskb-1
+ else
+ return
+ end if
+ end if
+ naskb = naskb+1
+ task(naskb) = taskn
+ wask(naskb) = waskn
+ elask(naskb) = elaskn
+ fixednew = fixednew+waskn
+ scaldold = scaldold+elaskn
+ end if
+ return
+ end
+ subroutine addblank(noteq,lnoten)
+ character*8 noteq
+ character*1 tchar
+ tchar = noteq
+ noteq = ' '//tchar
+ lnoten = 2
+ return
+ end
+ subroutine addfb(nfb,iv,tnew,t1fb,t2fb,ulfbq,ifbadd)
+ parameter (nm=24)
+ integer nfb(nm)
+ common /comtol/ tol
+ real*4 t1fb(nm,20),t2fb(nm,20)
+ character*1 ulfbq(nm,20)
+ ifbadd = 1
+ nfb(iv) = nfb(iv)+1
+ do 1 ifb = nfb(iv)-1 , 1 , -1
+ if (tnew .lt. t1fb(iv,ifb)-tol) then
+ t1fb(iv,ifb+1) = t1fb(iv,ifb)
+ t2fb(iv,ifb+1) = t2fb(iv,ifb)
+ ulfbq(iv,ifb+1) = ulfbq(iv,ifb)
+ else
+ ifbadd = ifb+1
+ go to 2
+ end if
+1 continue
+2 continue
+ t1fb(iv,ifbadd) = tnew
+ ulfbq(iv,ifbadd) = 'x'
+ return
+ end
+c
+c
+ subroutine addmidi(icm,nolev,iacc,isig,time,rest,endrest)
+ parameter(nm=24,mv=24576)
+ integer*2 mmidi,itk(25)
+ integer*4 itiesav(5,100)
+ character*1 notenumq
+ logical endrest,eximacc,it1found
+ logical rest
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ common /comevent/ miditime,lasttime
+ common /comdiag/ n69(0:nm),n34(0:nm)
+c
+c Following variables are local but must be saved. I hope they are.
+c (3/18/00) With g77 they are not, so add a common block here.
+c
+c integer*2 ipslon(0:nm),lusebl(10),jusebl(10),icmm(0:12)
+ integer*2 ipslon(0:nm),lusebl(10),jusebl(10),icmm(0:15)
+ common /comips/ ipslon,lusebl,jusebl
+c data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/
+ data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16/
+c
+c Cancel out barline accidentals if there's a rest.
+c
+ if (rest) naccbl(icm) = 0
+c
+c Special path to insert dummy rest at end of a section
+c
+ if (endrest) go to 20
+c
+ do 7 ion = 0 , nmidcrd
+c
+c check if this is only to get pitch of a chord note
+c
+ if (notmain) go to 6
+c
+c check for rest
+c
+ if (rest) then
+c
+c Will not put in a note, but must update timing
+c
+ if (.not.restpend(icm)) then
+c
+c First rest in sequence, save the time
+c
+ restpend(icm) = .true.
+ trest(icm) = time
+ else
+ trest(icm) = trest(icm)+time
+ end if
+c
+c Note: code checkers don't like the above due to calling addmidi(trest(icm))
+c but this only happens if rest at end of section (endrest=.true.) (called
+c from getmidi(), in which case these above lines are bypassed.
+c
+ call chkimidi(icm)
+ return
+ end if
+c
+c time tics
+c
+ if (imidi(icm).gt.0 .and. ion.eq.0) then
+ idur = mgap
+ else
+ idur = 0
+ end if
+ if (restpend(icm)) then
+ restpend(icm) = .false.
+ idur = idur+nint(15*trest(icm))
+ end if
+c
+c time to start of note
+c
+ idurvar = isetvarlen(idur,nby2on)
+ if (nby2on .gt. 4) then
+ print*,'You got >4 bytes, something is bogus.'
+ call stop1()
+ end if
+ imidi(icm) = imidi(icm)+1
+ do 2 i = 1 , nby2on
+c
+c imidi points to cell before highest (leftmost) byte. Start with lowest byte
+c at far right, fill in backwards
+c
+ mmidi(icm,imidi(icm)+nby2on-i) = mod(idurvar,256)
+ if (nby2on .gt. 1) idurvar = idurvar/256
+2 continue
+ imidi(icm) = imidi(icm)+nby2on-1
+c
+c Note-on signal
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 9*16+icm
+ mmidi(icm,imidi(icm)) = 9*16+icmm(icm)
+c
+c Entry point for chord note pitch determination
+c
+6 continue
+c
+c Get midi pitch. On chord iteration, only do this first time (main note),
+c since pitch was already computed for nonmain chord notes.
+c
+ if (ion .eq. 0) then
+ ipsav = nolev*12./7+11
+ ipsav0 = ipsav
+ if (isig .ne. 0) then
+c
+c Adjust for signature
+c
+ notenumq = char(48+mod(nolev,7))
+ if (isig.ge.index('4152630',notenumq)) then
+ ipsav = ipsav+1
+ else if (-isig.ge.index('0362514',notenumq)) then
+ ipsav = ipsav-1
+ end if
+ end if
+c
+c Deal with accidentals.
+c
+c iacc 0 1 2 3 4 5 6 7
+c effect X fl sh na X dfl dsh X
+c iashft X -1 1 0 X -2 2 X
+c
+ jacc = 0
+ eximacc = .false.
+ if (iacc .gt. 0) then
+c
+c Adjust key-sig-adjusted pitch for explicit accidental (and exit)
+c
+ jacc = iashft(iacc)
+ eximacc = .true.
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+c
+c (Above) Shift applies to diatonic pitch but will be added to adjusted one
+c
+ else if (naccim(icm) .gt. 0) then
+c
+c Possible implicit accidental from earlier in the bar
+c Check for prior accid in this bar at this note level
+c
+ do 3 kacc = 1 , naccim(icm)
+ if (laccim(icm,kacc) .eq. nolev) then
+ jacc = jaccim(icm,kacc)
+ eximacc = .true.
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+ go to 4
+ end if
+3 continue
+4 continue
+ end if
+c
+c Must split off the following if block from those above because chord
+c notes can cause naccim>0, forcing us to miss other chord note's
+c accross-bar-line accidental
+c
+ if (naccbl(icm).gt.0 .and. .not.eximacc) then
+c
+c Possible carryover accid from prior bar (or prior same-pitch note).
+c
+ do 21 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolev) then
+ jacc = jaccbl(icm,kacc)
+c
+c Since we are *using* the bar-line accid, must flag it to be saved for next.
+c
+ nusebl = nusebl+1
+ jusebl(nusebl) = jacc
+ lusebl(nusebl) = nolev
+ if (.not.relacc) jacc = jacc+ipsav0-ipsav
+ go to 22
+ end if
+21 continue
+22 continue
+ end if
+ ipsav = ipsav+jacc
+c
+c Midi transpositions
+c
+ ipsav = ipsav+midtc(icm)
+ end if
+ if (notmain) then
+ mcpitch(nmidcrd) = ipsav
+c
+c Save pitch for tie checks
+c
+ if (levson(icm).eq.nolev.and..not.slmon(icm))
+ * ipslon(icm) = ipsav
+ else
+ imidi(icm) = imidi(icm)+1
+ if (ion.eq.0) then
+ mmidi(icm,imidi(icm)) = ipsav
+ if (levson(icm).eq.nolev.and..not.slmon(icm))
+ * ipslon(icm) = ipsav
+ else
+ mmidi(icm,imidi(icm)) = mcpitch(ion)
+ end if
+ end if
+ if (ion .eq. 0) then
+c
+c Only record accids for non-chords, main chord note during chord iteration
+c and chordnotes on first call but not during iteration
+c
+ if (iacc.gt.0) then
+c
+c Set marker for accidental for possible continuations later this bar
+c but first check and clear earlier ones on same note.
+c
+ do 23 kacc = 1 , naccim(icm)
+ if (laccim(icm,kacc) .eq. nolev) then
+ do 24 macc = kacc , naccim(icm)-1
+ laccim(icm,macc) = laccim(icm,macc+1)
+ jaccim(icm,macc) = jaccim(icm,macc+1)
+24 continue
+ go to 25
+ end if
+23 continue
+ go to 26
+25 continue
+ naccim(icm) = naccim(icm)-1
+26 continue
+c
+c Flag new accidental
+c
+ naccim(icm) = naccim(icm)+1
+ laccim(icm,naccim(icm)) = nolev
+ jaccim(icm,naccim(icm)) = iashft(iacc)
+ end if
+c
+c Bail if this is a chord note on the first call (from docrd)
+c
+ if (notmain) then
+ call chkimidi(icm)
+ return
+ end if
+ end if
+c
+c Vel
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 127
+ mmidi(icm,imidi(icm)) = midvelc(icm)
+ call chkimidi(icm)
+7 continue
+c
+c For tie checks
+c
+ if (levson(icm).gt.0.and..not.slmon(icm)) imidso(icm) = imidi(icm)
+c
+c Entry point for special rests at section ends (endrest=T)
+c
+20 continue
+c
+c Now insert all the ends
+c
+ do 8 ioff = 0 , nmidcrd
+ if (ioff .eq. 0) then
+c
+c time to end
+c
+ idur1 = nint(15*time)
+ if (.not.endrest .or. miditime.eq.nint(15*trest(icm))) then
+ idur = idur1-mgap
+ else
+ idur = idur1
+ end if
+c
+c Deal with roundoff problems with 7-tuplets on half or quarters
+c
+ if (idur1 .eq. 69) then
+ n69(icm) = n69(icm)+1
+c if (mod(n69(icm)+6,7) .gt. 3) idur = 58
+ if (mod(n69(icm)+6,7) .gt. 3) idur = idur1-mgap-1
+ else if (idur1 .eq. 34) then
+ n34(icm) = n34(icm)+1
+ if (mod(n34(icm)+6,7) .gt. 4) idur = idur1-mgap+1
+ end if
+ idurvar = isetvarlen(idur,nby2off)
+ if (nby2off .gt. 4) then
+ print*,'You got >4 bytes, something is bogus.'
+ call stop1()
+ end if
+ imidi(icm) = imidi(icm)+1
+ call chkimidi(icm)
+ do 1 i = 1 , nby2off
+ mmidi(icm,imidi(icm)+nby2off-i) = mod(idurvar,256)
+ if (nby2off .gt. 1) idurvar = idurvar/256
+1 continue
+ imidi(icm) = imidi(icm)+nby2off-1
+ else
+c
+c Inserting end of chord note, delta time is 0
+c
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = 0
+ end if
+c
+c Note off
+c
+ imidi(icm) = imidi(icm)+1
+c mmidi(icm,imidi(icm)) = 8*16+icm
+ mmidi(icm,imidi(icm)) = 8*16+icmm(icm)
+c
+c Pitch
+c
+ imidi(icm) = imidi(icm)+1
+ if (ioff .eq. 0) then
+ mmidi(icm,imidi(icm)) = ipsav
+ else
+ mmidi(icm,imidi(icm)) = mcpitch(ioff)
+ end if
+c
+c Vel
+c
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = 0
+ call chkimidi(icm)
+ if (endrest) then
+ return
+ end if
+c
+c print*,'Off, icm,imidi,ipsav,idur:',icm,imidi(icm),ipsav,time
+c
+8 continue
+ naccbl(icm) = nusebl
+ if (nusebl .gt. 0) then
+c
+c Fix tables of "bar-line" accids that are saved due to consecutive notes.
+c
+ do 30 kacc = 1 , nusebl
+ laccbl(icm,kacc) = lusebl(kacc)
+ jaccbl(icm,kacc) = jusebl(kacc)
+30 continue
+ nusebl = 0
+ end if
+c
+c Begin tie checks
+c
+ if (slmon(icm)) then
+c
+c Prior note had a slur start
+c
+ if (levson(icm).eq.levsoff(icm) .and. iacc.eq.0) then
+c
+c We have a tie! (Assumed there would be no accidental on tie-ending note)
+c Make a list of times of all events back to the one starting at imidso+1,
+c which is at or before where the tie started. Ident tie start and stop by
+c comparing pitches. Save the 4 pieces of data in itiesav(1...4,nsav4tie)
+c Store actual time in itiesav(5,nsav4tie), using itiesav(1,1) as initial
+c time.
+ nsav4tie = 0
+ imidt = imidso(icm)
+10 nsav4tie = nsav4tie+1
+ itiesav(1,nsav4tie) = igetvarlen(mmidi,icm,imidt,nbytes)
+ imidt = imidt+nbytes
+ do 11 j = 1 , 3
+ itiesav(j+1,nsav4tie) = mmidi(icm,imidt+j)
+11 continue
+ imidt = imidt+3
+ if (nsav4tie .eq. 1) then
+ itiesav(5,1) = itiesav(1,1)
+ else
+ itiesav(5,nsav4tie) = itiesav(1,nsav4tie)+
+ * itiesav(5,nsav4tie-1)
+ end if
+ if (imidt .ne. imidi(icm)) go to 10
+c
+c Find which two pitches agree with saved slur pitch.
+c
+ it1found = .false.
+ do 12 it2 = 1 , nsav4tie
+ if (itiesav(3,it2) .eq. ipslon(icm)) then
+ if (it1found) go to 13
+ it1 = it2
+ it1found = .true.
+ end if
+12 continue
+ call printl(
+ * 'Program error, tied notes, send source to Dr. Don')
+ it1 = nsav4tie+1
+ it2 = nsav4tie+1
+13 continue
+c
+c List the positions we want to keep
+c
+ jsav = 0
+ do 14 isav = 1 , nsav4tie
+ if (isav.eq.it1 .or. isav.eq.it2) go to 14
+ jsav = jsav+1
+ itk(jsav) = isav
+14 continue
+ nsav4tie = nsav4tie-2
+c
+c Now dump events it1 & it2, recompute times, restack mmidi.
+c
+ imidi(icm) = imidso(icm)
+ do 15 isav = 1 ,nsav4tie
+ if (isav .eq. 1) then
+ idurvar = isetvarlen(itiesav(5,itk(isav)),nbytes)
+ else
+ idurvar = isetvarlen(itiesav(5,itk(isav))-
+ * itiesav(5,itk(isav-1)),nbytes)
+ end if
+ imidi(icm) = imidi(icm)+1
+ do 16 i = 1 , nbytes
+ mmidi(icm,imidi(icm)+nbytes-i) = mod(idurvar,256)
+ if (nbytes .gt. 1) idurvar = idurvar/256
+16 continue
+ imidi(icm) = imidi(icm)+nbytes-1
+ do 17 i = 2 , 4
+ imidi(icm) = imidi(icm)+1
+ mmidi(icm,imidi(icm)) = itiesav(i,itk(isav))
+17 continue
+15 continue
+ end if
+ slmon(icm) = .false.
+ levsoff(icm) = 0
+ if (.not.dbltie) levson(icm) = 0
+ end if
+ if (levson(icm).gt.0) slmon(icm) = .true.
+ if (nmidcrd .gt. 0) nmidcrd = 0
+ call chkimidi(icm)
+ return
+ end
+ subroutine addstr(notexq,lnote,soutq,lsout)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ character*(*) notexq
+ character*80 soutq
+ if (lsout+lnote .gt. 72) then
+ if (islast) write(11,'(a)')soutq(1:lsout)//'%'
+ lsout = 0
+ end if
+ if (lsout .gt. 0) then
+ soutq = soutq(1:lsout)//notexq(1:lnote)
+ else
+ soutq = notexq(1:lnote)
+ end if
+ lsout = lsout+lnote
+ return
+ end
+ subroutine adjusteskz(ib,squez,istart,istop,poenom)
+c
+c For block ib, this adds accidental spaces to eskz, for use in getting
+c length of xtup bracket and slopes of brackets and beams.
+c
+ parameter (nm=24)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ real*4 squez(80)
+ integer*4 istart(80),istop(80)
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /comeskz2/ eskz2(nm,200)
+ common /comtol/ tol
+ common /comntot/ ntot
+ inmin = istart(ib)+1
+ do 10 iaskb = 1 , naskb
+ if (task(iaskb) .lt. to(istart(ib))-tol) go to 10
+ eskadd = wask(iaskb)/poenom-elask(iaskb)
+ do 11 in = inmin , ntot
+ if (to(in) .gt. task(iaskb)-tol) then
+ eskz2(ivxo(in),ipo(in)) = eskz2(ivxo(in),ipo(in))+eskadd
+ if (abs(to(in)-task(iaskb)).lt. tol) inmin=inmin-1
+ else
+ inmin = inmin+1
+ end if
+11 continue
+10 continue
+ return
+ end
+ subroutine askfig(pathnameq,lpath,basenameq,lbase,figbass,istype0)
+ logical figbass,ispoi,topmods,istype0,done,isbbm
+ common /comhsp/ hpttot(176)
+ common /compoi/ ispoi
+ common /combbm/ isbbm
+ common /comas3/ ask(2500),iask,topmods
+ character*40 pathnameq
+ character*44 basenameq
+ character*1 sq,chax
+ character*129 outq
+ sq = chax(92)
+ open(12,file=pathnameq(1:lpath)//basenameq(1:lbase)//'.tex')
+c
+c Transfer first 5 lines of main internal TeX file
+c
+ do 11 il = 1 , 5
+ call moveln(11,12,done)
+11 continue
+ if (istype0) then
+c
+c Transfer literal TeX stuff from special scratch file
+c
+ rewind(17)
+10 call moveln(17,12,done)
+ if (.not.done) go to 10
+ close(17)
+ end if
+c
+c Transfer next 2 lines from main scratch file
+c
+ do 3 il = 1 , 2
+ call moveln(11,12,done)
+3 continue
+ if (ispoi) write(12,'(a)')sq//'input musixpoi'
+ if (isbbm) write(12,'(a)')sq//'input musixbbm'
+ if (figbass) then
+c
+c Transfer .fig data from scratch (unit 14) into external .tex (unit 12)
+c
+4 call moveln(14,12,done)
+ if (.not.done) go to 4
+ close(14)
+ end if
+ iask = 0
+ ihs = 0
+1 read(11,'(a129)',end=999)outq
+c
+c Hardspaces.
+c
+ if (outq(1:5) .eq. sq//'xard') then
+ ihs = ihs+1
+ outq(2:2) = 'h'
+ write(outq(12:15),'(f4.1)')hpttot(ihs)
+ lenout = 19
+ go to 9
+ end if
+c
+c This part hard-wires ask's into new .tex file as ast's
+c
+2 indxask = index(outq,sq//'ask')
+ if (indxask .ne. 0) then
+ iask = iask+1
+ call putast(ask(iask),indxask,outq)
+ go to 2
+ end if
+ lenout = llen(outq,129)
+9 continue
+ write(12,'(a)')outq(1:lenout)
+c
+c If this is the line with "readmod", check for topmods.
+c
+ if (topmods .and. outq(2:8).eq.'readmod') then
+ topmods = .false.
+ rewind(16)
+ do 7 il = 1 , 1000
+ read(16,'(a129)',end=8)outq
+ lenout = llen(outq,129)
+c
+c We inserted the '%' in subroutine littex, to guarantee including blank.
+c
+ write(12,'(a)')outq(1:lenout)
+7 continue
+8 continue
+ close(16)
+ end if
+ go to 1
+999 close(11)
+ close(12)
+ return
+ end
+ subroutine backfill(iunit,oldq,lenold,newq,lennew)
+c
+c In iunit, looks backward for oldq, overwrites newq
+c Safest if both are same length!
+c
+ character*128 lineq(200),nowq
+ character*(*) oldq,newq
+ linesback = 0
+1 continue
+ backspace(iunit)
+ read(iunit,'(a)')nowq
+ ndx = index(nowq,oldq(1:lenold))
+c
+c Save the line just read
+c
+ linesback = linesback+1
+ lineq(linesback) = nowq
+ if (ndx .eq. 0) then
+ backspace(iunit)
+ go to 1
+ end if
+c
+c If here, it's replacement time.
+c
+ lineq(linesback) = nowq(1:ndx-1)//newq(1:lennew)
+ * //nowq(ndx+lenold:128)
+ backspace(iunit)
+ do 2 line = linesback , 1 , -1
+ write(iunit,'(a128)')lineq(line)
+2 continue
+ return
+ end
+ subroutine beamend(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq,ulqq,chax
+ logical beamon,firstgulp,figbass,figchk,flipend,btest,
+ * isfig,vxtup,isdotm,isbjmp,isbj2,drawbm
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comoct/ noctup
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ character*4 tempq
+ character*8 noteq
+ character*79 notexq
+ ip = ipo(jn)
+ multip = iand(mult(ivx,ip),15)-8
+ if (ixrest(ivx) .eq. 4) then
+c
+c This is the LAST note in the xtup (i.e., all rests before). Make single.
+c
+ nodur(ivx,ip) = 2**(4-multip)
+ call notex(notexq,lnote)
+ ixrest(ivx) = 0
+ return
+ end if
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip)
+ nodur(ivx,ip) = 2**(4-multip)
+ if (btest(nacc(ivx,ip-1),27))
+ * nodur(ivx,ip)=nodur(ivx,ip)/2
+ call notex(notexq,lnote)
+ nodur(ivx,ip) = ndsav
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = lnoten+3
+ if (.not.btest(nacc(ivx,ip-1),27)) then
+c
+c Prior note is not regular-dotted
+c
+
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))//noteq
+ lnote = lnote+1
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))//noteq
+ lnote = lnote+2
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'//noteq
+ else if (multip .eq. -3) then
+ notexq = sq//'breve'//noteq
+ lnote = lnote+3
+ else
+ print*
+ print*,'(Error in beamend, send source to Dr. Don)'
+ call stop1()
+ end if
+ else
+c
+c Prior note is regular-dotted so this one is halved
+c
+ if (multip .eq. 0) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -1) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))//noteq
+ else if (multip .eq. -2) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))//noteq
+ end if
+ end if
+ end if
+ return
+ end if
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ lnote = 0
+c
+c New way, with flipend, which was computed in beamstrt.
+c
+ if (flipend(ivx) .and. btest(ipl(ivx,ip),30))
+ * ulq(ivx,ibmcnt(ivx)) = chax(225-ichar(ulq(ivx,ibmcnt(ivx))))
+ if (ip .gt. ibm1(ivx,ibmcnt(ivx))) then
+c
+c This is not a one-noter from beam-jump. Check if multiplicity has increased
+c
+ if (btest(irest(ivx,ip-1),0)) then
+c
+c Prior note is a rest, check one before that
+c
+ mp = iand(mult(ivx,ip-2),15)-8
+ else
+ mp = iand(mult(ivx,ip-1),15)-8
+ end if
+ if (multip .gt. mp) then
+c
+c Assume 1-3, 2-3, or 1-2
+c
+ do 2 imp = multip , mp+1 , -1
+ call ntrbbb(imp,'t',ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+2 continue
+ else if (btest(nacc(ivx,ip-1),27)) then
+c
+c 2nd member of dotted xtup
+c
+ call ntrbbb(multip+1,'t',
+ * ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+ end if
+ end if
+c
+c Beam termination and direction analysis
+c
+ if (btest(irest(ivx,ip),23) .and. .not.isbjmp) then
+c
+c This is the end of the first segment in a jump-beam. ivbj1=ivx will be number
+c of the jump-beam. ivbj2 will be tested along with isbjmp to see if in the
+c voice of the 2nd part of jumped beam. (May need special treatment for
+c multi-segment jump-beams
+c
+ isbjmp = .true.
+ ivbj1 = ivx
+ ivbj2 = 0
+ end if
+ if (.not.btest(irest(ivx,ip),23)) then
+c
+c This is either a normal beamend or end of a sequence of jump-beam segments,
+c so some sort of termination is required
+c
+ ulqq = ulq(ivx,ibmcnt(ivx))
+ if (.not.isbjmp .or. ivx.ne.ivbj2) then
+c
+c Normal termination
+c
+ call ntrbbb(1,'t',ulqq,mod(ivx,24),notexq,lnote)
+ else
+c
+c Terminate a sequence of jump-beam segments.
+c
+ ulqq = chax(225-ichar(ulqq))
+ call ntrbbb(1,'t',ulqq,mod(ivbj1,24),notexq,lnote)
+ end if
+ end if
+c
+c And now the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+ isdotm = .false.
+ if (.not.vxtup(ivx)) then
+ if (2**log2(nodur(ivx,ip)) .ne. nodur(ivx,ip)) then
+ if (.not.btest(iornq(ivx,ip),13)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ end if
+ end if
+c
+c 5/25/08 Allow >12
+c 5/9/10 Up to 24; replace 24 with 0
+c
+ if (.not.(isbjmp.and.ivx.eq.ivbj2)) then
+c call istring(mod(ivx,12),tempq,len)
+ call istring(mod(ivx,24),tempq,len)
+ else
+c call istring(mod(ivbj1,12),tempq,len)
+ call istring(mod(ivbj1,24),tempq,len)
+ end if
+ if (isbjmp .and. ivx.eq.ivbj2
+ * .and..not.btest(irest(ivx,ip),23)) isbjmp=.false.
+ notexq = notexq(1:lnote)//tempq(1:len)
+ lnote = lnote+len
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 1) then
+ notexq = notexq(1:lnote)//'{'//noteq(1:1)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamid(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq,ulqq,chax
+ logical beamon,firstgulp,figbass,figchk,flipend,btest,
+ * isfig,vxtup,isdotm,isbjmp,bar1syst,isdotted,isbj2,drawbm
+ character*79 notexq
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comoct/ noctup
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ character*8 noteq
+ character*4 tempq
+ lnote = 0
+ ip = ipo(jn)
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ if (.not.btest(irest(ivx,ip),0)) then
+ multip = iand(mult(ivx,ip),15)-8
+c if (btest(islur(ivx,ip-1),3)) multip = multip+1
+c
+c (Above test OK since must have ip>1). Double dotted note preceding
+c
+c Move the following, because can't ask for note until after checking for
+c embedded xtup with number, due to ordering/octave feature.
+c
+c call notefq(noteq,lnoten,nolev(ivx,ip),ncmid(iv,ip))
+ end if
+ if (btest(irest(ivx,ip),28)) vxtup(ivx) = .true.
+ if (vxtup(ivx)) then
+c
+c In an xtup
+c
+ if (btest(irest(ivx,ip),0)) then
+c
+c Intermediate rest in xtup, put in the rest. Reset nodur so notex works OK
+c
+ nodur(ivx,ip) = 2**(4-(iand(mult(ivx,ip),15)-8))
+ call notex(notexq,lnote)
+c
+c Re-zero so next note does not get confused
+c
+ nodur(ivx,ip) = 0
+ return
+ end if
+c if (multip.le.0) then
+c if (multip.le.0 .or.
+c * (multip.eq.1.and.btest(nacc(ivx,ip-1),18))) then
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip)
+ nodur(ivx,ip) = 2**(4-multip)
+ if (btest(nacc(ivx,ip),19) .or.
+ * btest(nacc(ivx,ip),27)) then
+ nodur(ivx,ip)=3*nodur(ivx,ip)/2
+ else if (btest(nacc(ivx,ip-1),27)) then
+ nodur(ivx,ip)=nodur(ivx,ip)/2
+ end if
+ call notex(notexq,lnote)
+ nodur(ivx,ip) = ndsav
+ else
+c
+c Use ulq for stem direction
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = 3
+ if (.not.btest(nacc(ivx,ip-1),27)) then
+c
+c Prior note is not regular-dotted
+c
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 4
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 5
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'
+ end if
+ if (btest(nacc(ivx,ip),27)) then
+c
+c This note is regular dotted non-beamed xtup
+c
+ notexq = notexq(1:3)//'p'
+ lnote = 4
+ end if
+ else
+c
+c Prior note is regular-dotted so this one is halved
+c
+ if (multip .eq. 0) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -2) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ end if
+ return
+ else if (nodur(ivx,ip).eq.0) then
+c
+c In the beamed xtup but not the last note
+c
+ if (nodur(ivx,ip-1).gt.0) then
+c
+c Embedded Xtup, mult>0, starts here. Put in number if needed
+c
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+ iud = 1
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') iud = -1
+c
+c Get ip#, notelevel of middle note (or gap) in xtup
+c
+ ipmid = ip+ntupv(ivx,nxtinbm(ivx))/2
+ xnlmid = levrn(nolev(ivx,ipmid),irest(ivx,ipmid),iud,
+ * ncmid(iv,ipmid),iand(15,mult(ivx,ipmid))-8)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2).eq.0) xnlmid = (xnlmid+
+ * levrn(nolev(ivx,ipmid-1),irest(ivx,ipmid-1),iud,
+ * ncmid(iv,ipmid-1),iand(15,mult(ivx,ipmid-1))-8))/2
+ iflop = 0
+ if (abs(xnlmid-ncmid(iv,ip)).lt.3.) iflop = -iud
+ iup = iud+2*iflop
+ if (btest(irest(ivx,ip),14)) then
+ iup = -iup
+ iflop = 0
+ if (iud*iup .lt. 0) iflop = iup
+ end if
+c
+c Place number if needed
+c
+ if (.not.btest(islur(ivx,ip),31)) then
+ mprint = igetbits(nacc(ivx,ip),5,22)
+ if (mprint.eq.0) mprint=mtupv(ivx,nxtinbm(ivx))
+ call putxtn(mprint,iflop,multip,iud,wheadpt,poenom,
+ * nolev1(ivx),islope(ivx),slfac,
+ * xnlmid,islur(ivx,ip),lnote,notexq,ncmid(iv,ip),nlnum,
+ * eloff(ivx,nxtinbm(ivx)),iup,irest(ivx,ip),.false.)
+ end if
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ else
+c
+c Intermediate note of xtup
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+ else
+c
+c Last note of xtup (but not last note of beam!)
+c
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+ else if (btest(irest(ivx,ip),0)) then
+ call notex(notexq,lnote)
+ return
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ end if
+c
+c Check if multiplicity changes in a way requiring action
+c
+ ipleft = ip-1
+ if (btest(irest(ivx,ipleft),0)) ipleft = ipleft-1
+ if (.not.btest(islur(ivx,ipleft),20)) then
+ multl = iand(15,mult(ivx,ipleft))-8
+ else
+ multl = 1
+ end if
+ mub = multip - multl
+ ipright = ip+1
+ if (btest(irest(ivx,ipright),0)) ipright = ipright+1
+ if (.not.btest(islur(ivx,ip),20)) then
+ multr = iand(15,mult(ivx,ipright))-8
+ else
+ multr = 1
+ end if
+ mua = multr-multip
+ if (mub.gt.0 .or. mua .lt. 0) then
+c
+c Multiplicity has increased from left or will decrease to right. Need action.
+c
+ if (isbjmp .and. ivx.eq.ivbj2) then
+ ivb = ivbj1
+ ulqq = chax(225-ichar(ulq(ivx,ibmcnt(ivx))))
+ else
+ ivb = ivx
+ ulqq = ulq(ivx,ibmcnt(ivx))
+ end if
+ if (mua .ge. 0) then
+ call ntrbbb(multip,'n',ulqq,ivb,notexq,lnote)
+ else if (multl .ge. multr) then
+ do 1 im = multip , 1+multr, -1
+ call ntrbbb(im,'t',ulqq,ivb,notexq,lnote)
+1 continue
+ else
+ do 2 im = 1+multr, multip
+ call ntrbbb(im,'r',ulqq,ivb,notexq,lnote)
+2 continue
+ call ntrbbb(multr,'n',ulqq,ivb,notexq,lnote)
+ end if
+ else if (ip .gt. 1) then
+c
+c Check for 2nd member of dotted xtup
+c
+ if (btest(nacc(ivx,ip-1),27)) call ntrbbb(multip+1,'t',
+ * ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+ end if
+c
+c Now put in the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+ isdotm = .false.
+ if (isdotted(nodur,ivx,ip)) then
+c
+c rule out ')'
+c
+ if (.not.btest(iornq(ivx,ip),13)) then
+ if (.not.btest(islur(ivx,ip),3)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+c
+c Double dot
+c
+ notexq = notexq(1:lnote)//'pp'
+ lnote = lnote+1
+ end if
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ else if (btest(nacc(ivx,ip),19)
+ * .or. btest(nacc(ivx,ip),27)) then
+c
+c Special dotted notation for 2:1 xtup, or normal dot in xtup
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+c
+c 5/25/08 Allow >12
+c
+ if (.not.(isbjmp.and.ivx.eq.ivbj2)) then
+c call istring(mod(ivx,12),tempq,len)
+ call istring(mod(ivx,24),tempq,len)
+ else
+c call istring(mod(ivbj1,12),tempq,len)
+ call istring(mod(ivbj1,24),tempq,len)
+ end if
+ notexq = notexq(1:lnote)//tempq(1:len)
+ lnote = lnote+len
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 2) then
+ notexq = notexq(1:lnote)//'{'//noteq(2:2)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamn1(notexq,lnote)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,isdotm,isbjmp,isbj2,drawbm
+ common /comoct/ noctup
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*8 noteq
+ character*79 notexq
+ ip1 = ipo(jn)
+ multip = iand(15,mult(ivx,ip1))-8
+c if (multip.le.0 .and. btest(irest(ivx,ip1),0)) then
+ if (.not.drawbm(ivx) .and. btest(irest(ivx,ip1),0)) then
+ lnote = 0
+c
+c The rest was already written in beamstrt, so just get out of here
+c
+ return
+ end if
+ nole = nolev(ivx,ipo(jn))
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ipo(jn)),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ipo(jn)),31)) then
+ nole = nole + 1
+ end if
+ if (vxtup(ivx) .and. .not.drawbm(ivx)) then
+c
+c Xtuplet with no beam, just put in the right kind of note
+c
+ if (btest(islur(ivx,ip1),30)) then
+c
+c Forced stem direction
+c
+ ndsav = nodur(ivx,ip1)
+ nodur(ivx,ip1) = 2**(4-multip)
+ if (btest(nacc(ivx,ip1),19) .or.
+ * btest(nacc(ivx,ip1),27)) nodur(ivx,ip1)=3*nodur(ivx,ip1)/2
+ call notex(notexq,lnote)
+ nodur(ivx,ip1) = ndsav
+ else
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip1))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ lnote = 3
+ if (multip .eq. 0) then
+ notexq = sq//'q'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. -1) then
+ notexq = sq//'h'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 1) then
+ notexq = sq//'c'//ulq(ivx,ibmcnt(ivx))
+ else if (multip .eq. 2) then
+ notexq = sq//'cc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 4
+ else if (multip .eq. 3) then
+ notexq = sq//'ccc'//ulq(ivx,ibmcnt(ivx))
+ lnote = 5
+ else if (multip .eq. -2) then
+ notexq = sq//'wh'
+ else if (multip .eq. -3) then
+ notexq = sq//'breve'
+ lnote = 6
+ else
+ print*
+ print*,'(Error in beamn1, send source to Dr. Don)'
+ call stop1()
+ end if
+ if (btest(nacc(ivx,ip1),19) .or. btest(nacc(ivx,ip1),27)) then
+ notexq = notexq(1:3)//'p'
+ lnote = 4
+ end if
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ end if
+ return
+ end if
+c
+c Check if mult. decreases from 1st note to 2nd
+c
+ if (ibm2(ivx,ibmcnt(ivx)).gt.ip1
+ * .or. btest(islur(ivx,ip1),20)) then
+c
+c More than one note or single-note before a multiplicity-down-up "]["
+c
+ if (btest(islur(ivx,ip1),20)) then
+ multr = 1
+ else if (.not.btest(irest(ivx,ip1+1),0)) then
+ multr = iand(15,mult(ivx,ip1+1))-8
+ else
+ multr = iand(15,mult(ivx,ip1+2))-8
+ end if
+ lnote = 0
+ if (multr .lt. multip) then
+ do 1 im = multip , multr+1 , -1
+ call ntrbbb(im,'r',ulq(ivx,ibmcnt(ivx)),ivx,notexq,lnote)
+1 continue
+ end if
+ end if
+c
+c Put in the note
+c
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'qb'
+ else
+ notexq = sq//'qb'
+ end if
+ lnote = lnote+3
+c
+c Check for dot
+c
+ isdotm = .false.
+ if (.not.vxtup(ivx)) then
+ nd = nodur(ivx,ipo(jn))
+ if (nd.ne.0) then
+ if (2**log2(nd).ne.nd) then
+ if (.not.btest(iornq(ivx,ip1),13)) then
+ if (.not.btest(islur(ivx,ip1),3)) then
+ notexq = notexq(1:lnote)//'p'
+ else
+c
+c Double dot
+c
+ notexq = notexq(1:lnote)//'pp'
+ lnote = lnote+1
+ end if
+ else
+ notexq = notexq(1:lnote)//'m'
+ isdotm = .true.
+ end if
+ lnote = lnote+1
+ end if
+ end if
+ else if (btest(nacc(ivx,ip1),19) .or.
+ * btest(nacc(ivx,ip1),27)) then
+c
+c In an xtup with special 2:1 notation with a dot on 1st note, or normal dot
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+c
+c Do the number; 0 if 12
+c
+c 5/25/08 allow >12
+c
+ if (.not.btest(irest(ivx,ip1),24)) then
+c call istring(mod(ivx,12),noteq,len)
+ call istring(mod(ivx,24),noteq,len)
+ else
+c call istring(mod(ivbj1,12),noteq,len)
+ call istring(mod(ivbj1,24),noteq,len)
+ end if
+ notexq = notexq(1:lnote)//noteq(1:len)
+ lnote = lnote+len
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip1))
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (isdotm) then
+ if (lnoten .eq. 1) then
+ notexq = notexq(1:lnote)//'{'//noteq(1:1)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ return
+ end
+ subroutine beamstrt(notexq,lnote,nornb,ihornb,space,squez,ib)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ character*79 inameq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,bar1syst,addbrack,flipend,xto,drawbm
+ common /comeskz2/ eskz2(nm,200)
+ common /comoct/ noctup
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+c
+c The following is just to save the outputs from SetupB for the case of
+c xtups starting with a rest, where beamstrt is called twice.
+c
+ common /comipb/ nnb,sumx,sumy,ipb(24),smed
+ character*8 noteq
+ character*79 notexq,tempq
+ integer nornb(nm),ihornb(nm,24)
+ real*4 space(80),squez(80)
+ logical novshrinktop,cstuplet,usexnumt
+ common /comnvst/ novshrinktop,cstuplet
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figq
+ ibc = ibmcnt(ivx)
+ ipb1 = ibm1(ivx,ibc)
+ multb = iand(15,mult(ivx,ipb1))-8
+ ip = ipo(jn)
+c
+c Compute slopes and note offsets from start of beam. Inside SetupB, for each
+c xtup in the beam, set eloff,mtupv (in comxtup) for printed number.
+c
+ if (ixrest(ivx).eq.0 .and. .not.btest(nacc(ivx,ip),21))
+ * call SetupB(xelsk,nnb,sumx,sumy,ipb,smed,ixrest(ivx))
+ if (btest(nacc(ivx,ip),21)) then
+c
+c This is start of later segment of single-slope beam group so use slope and
+c height from prior beam. Slope is already OK.
+c
+ issb(ivx) = issb(ivx)+1
+ nolev1(ivx) = lev1ssb(ivx,issb(ivx))
+ end if
+ lnote = 0
+ drawbm(ivx) = .true.
+ if (btest(irest(ivx,ipb1),28) .and. ixrest(ivx).ne.2) then
+ vxtup(ivx) = .true.
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+c
+c irest(28)=>Xtup starts on this note. Set up for xtuplet.
+c Number goes on notehead side at middle note (or gap) of xtup, unless that
+c puts it in staff, then it flops to stem (or beam) side.
+c __ __
+c | | | O | |
+c O | | O
+c |___| O |__| |
+c
+c iud -1 -1 1 1 ...stem direction
+c iflop 0 1 -1 0 ...direction of flop
+c iup -1 1 -1 1 ...direction of number and bracket
+c
+ iud = 1
+ if (ulq(ivx,ibc) .eq. 'u') iud = -1
+c
+c Get ip#, note level of middle note (or gap) in xtup
+c
+ ipmid = ipb1+ntupv(ivx,nxtinbm(ivx))/2
+ xnlmid = levrn(nolev(ivx,ipmid),irest(ivx,ipmid),iud,
+ * ncmid(iv,ipmid),iand(15,mult(ivx,ipmid))-8)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2) .eq. 0) xnlmid = (xnlmid+
+ * levrn(nolev(ivx,ipmid-1),irest(ivx,ipmid-1),iud,
+ * ncmid(iv,ipmid-1),iand(15,mult(ivx,ipmid-1))-8))/2
+ iflop = 0
+ if (abs(xnlmid-ncmid(iv,ipb1)).lt.3.) iflop = -iud
+ iup = iud+2*iflop
+ if (btest(irest(ivx,ipb1),14)) then
+c
+c Alter iud, iflop, iup to flip number/bracket. (Stare at above pic)
+c
+ iup = -iup
+ iflop = 0
+ if (iud*iup .lt. 0) iflop = iup
+ end if
+c
+c Determine if a beam is to be drawn
+c
+ do 5 ipp = ibm1(ivx,ibc),ibm2(ivx,ibc)
+ if (iand(15,mult(ivx,ipp))-8 .le. 0) then
+ drawbm(ivx) = .false.
+ go to 6
+ end if
+5 continue
+ drawbm(ivx) = .not.btest(islur(ivx,ibm1(ivx,ibc)),18)
+6 continue
+c
+c Are we using tuplet.tex?
+c
+ usexnumt = cstuplet .and. .not.drawbm(ivx)
+c
+c Place xtup number if needed
+c
+ if (.not.btest(islur(ivx,ipb1),31) .or. multb.le.0) then
+ mprint = igetbits(nacc(ivx,ip),5,22)
+ if (mprint.eq.0) mprint=mtupv(ivx,nxtinbm(ivx))
+ call putxtn(mprint,iflop,multb,iud,wheadpt,
+ * poenom,nolev1(ivx),islope(ivx),slfac,xnlmid,islur(ivx,ipb1),
+ * lnote,notexq,ncmid(iv,ipb1),nlnum,eloff(ivx,nxtinbm(ivx)),
+ * iup,irest(ivx,ipb1),usexnumt)
+ end if
+ if (.not.drawbm(ivx)) then
+c
+c Xtuplet with no beam
+c
+ if (.not.btest(islur(ivx,ipb1),31)) then
+c
+c Number printing has not been suppressed, so put in the bracket.
+c scale = stretch factor for bracket if there are asx's
+c xnsk = length of the bracket in \noteskips = (\elemskips)/(eon)
+c
+ xnsk = (eskz2(ivx,ipb1+ntupv(ivx,nxtinbm(ivx))-1)
+ * -eskz2(ivx,ipb1))/squez(ib)/feon(space(ib)/squez(ib))
+ if (iup .eq. 1) then
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'ovbkt'
+ else
+ notexq = sq//'ovbkt'
+ end if
+ else
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//sq//'unbkt'
+ else
+c
+c Introduced 12/5/98, req'd due to possible presence of in-line TeX
+c
+ notexq = sq//'unbkt'
+ end if
+ end if
+ lnote = lnote+6
+ if (iline.eq.1) then
+ smed = smed/(1.-fracindent)
+ end if
+ xslope = 1.8*smed*slfac
+ islope(ivx) = nint(xslope)
+ nolev1(ivx) = nlnum - nint(smed*eloff(ivx,1))
+ if (islope(ivx) .eq. 0) nolev1(ivx) = nolev1(ivx)-1
+ if (iup .eq. 1) nolev1(ivx) = nolev1(ivx)+4
+ levbracket = nolev1(ivx)
+ if (iup.eq.1 .and. cstuplet) levbracket = levbracket-1
+ call notefq(noteq,lnoten,levbracket,ncmid(iv,ipb1))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+lnoten+1
+ if (xnsk .lt. 0.995) then
+ write(notexq(lnote+1:lnote+4),'(i1,f3.2)')0,xnsk
+ lnote = lnote+4
+ else if (xnsk .lt. 9.995) then
+ write(notexq(lnote+1:lnote+4),'(f4.2)')xnsk
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+5),'(f5.2)')xnsk
+ lnote = lnote+5
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ if (btest(mult(ivx,ipb1),4)) then
+c
+c Tweak slope of bracket
+c
+ islope(ivx) = islope(ivx)+igetbits(mult(ivx,ipb1),5,5)-16
+ end if
+ if (islope(ivx).lt.0 .or. islope(ivx).ge.10) then
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (islope(ivx) .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')islope(ivx)
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+2),'(i2)')islope(ivx)
+ lnote = lnote+2
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+ write(notexq(lnote+1:lnote+1),'(i1)')islope(ivx)
+ lnote = lnote+1
+ end if
+c
+c Done with bracket
+c
+ end if
+ if (ixrest(ivx) .eq. 1) then
+c
+c Put in the rest. Possible problem: Rest is a spacing char, but between
+c beamstrt and beamn1 some non-spacing chars. are inserted.
+c
+ if (multb .eq. 0) then
+ notexq = notexq(1:lnote)//sq//'qp'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.1) then
+ notexq = notexq(1:lnote)//sq//'ds'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.2) then
+ notexq = notexq(1:lnote)//sq//'qs'
+ lnote = lnote+3
+ else if (.not.drawbm(ivx).and.multb.eq.3) then
+ notexq = notexq(1:lnote)//sq//'hs'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//sq//'hpause'
+ lnote = lnote+7
+ end if
+c
+c No need to come back through this subroutine (as would if rest starts bar
+c & multb>0), so do not advance ibm1. But must check in beamn1 and do nothing.
+c
+ ixrest(ivx) = 0
+ end if
+ return
+ end if
+c
+c End if block for non-beamed xtup start...note we returned
+c
+ if (ixrest(ivx) .eq. 1) then
+c
+c Insert rest at start of beamed xtup. See above note for possible problem.
+c
+ nodur(ivx,ipb1) = 2**(4-multb)
+ call notex(tempq,ltemp)
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//tempq(1:ltemp)
+ else
+ notexq = tempq(1:ltemp)
+ end if
+ lnote = lnote+ltemp
+c
+c Re-zero just in case!
+c
+ nodur(ivx,ipb1) = 0
+ ibm1(ivx,ibc) = ibm1(ivx,ibc)+1
+c
+c See if next note is a non-rest
+c
+ if (.not.btest(irest(ivx,ipb1+1),0)) then
+ ixrest(ivx) = 2
+ else
+c
+c Suppress reprinting xtup number next time through beamstrt
+c
+ islur(ivx,ipb1+1) = ibset(islur(ivx,ipb1+1),31)
+c
+c Set new xtup start flag
+c
+ irest(ivx,ipb1+1) = ibset(irest(ivx,ipb1+1),28)
+ end if
+ return
+ end if
+ end if
+c
+c Just ended if block for xtups
+c
+ if (vxtup(ivx) .and. ipb1.eq.ibm2(ivx,ibc)) then
+c
+c Move actual note writing to beamend
+c
+ ixrest(ivx) = 4
+ return
+ end if
+ if (issb(ivx) .eq. 0) then
+c
+c 1st bmstrt in single-slope bm grp, Adjust start level(s) and slope if needed
+c
+ iadj = igetbits(ipl(ivx,ipb1),6,11)-30
+ if (iadj .ne. -30) then
+ nolev1(ivx) = nolev1(ivx)+iadj
+ do 2 isssb = 1 , nssb(ivx)
+ lev1ssb(ivx,isssb) = lev1ssb(ivx,isssb)+iadj
+2 continue
+ end if
+ iadj = igetbits(ipl(ivx,ipb1),6,17)-30
+ if (iadj .ne. -30) then
+ islope(ivx) = islope(ivx)+iadj
+ if (abs(islope(ivx)) .gt. 9) islope(ivx) = sign(9,islope(ivx))
+ if (nssb(ivx) .gt. 0) then
+c
+c Cycle thru non-rest notes in SSBG, looking for bmstrts.
+c
+ isssb = 0
+ do 4 inb = 2, nnb
+ if (btest(nacc(ivx,ipb(inb)),21)) then
+c
+c Beam segment start. New start level
+ isssb = isssb+1
+ lev1ssb(ivx,isssb) =
+ * lev1ssb(ivx,isssb)+islope(ivx)*xelsk(inb)/slfac
+ end if
+4 continue
+ end if
+ end if
+ end if
+ iadj = igetbits(islur(ivx,ipb1),2,27)
+ addbrack = .false.
+ if (btest(ipl(ivx,ipb1),30)) then
+c
+c Check for altered starting polarity. Only in forced beams. Nominal start
+c level is nolev1. So beam level is nolev1 +/- 6, to be compared w/ nolev(.,.).
+c
+ if (ulq(ivx,ibc).eq.'u' .and.
+ * nolev1(ivx)+6.lt.nolev(ivx,ipb1)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'loff{'
+ else
+ notexq = notexq(1:lnote)//sq//'loff{'
+ end if
+ lnote = lnote+6
+ addbrack = .true.
+ else if (ulq(ivx,ibc).eq.'l' .and.
+ * nolev1(ivx)-6.gt.nolev(ivx,ipb1)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'roff{'
+ else
+ notexq = notexq(1:lnote)//sq//'roff{'
+ end if
+ lnote = lnote+6
+ addbrack = .true.
+ end if
+c
+c Check end level for possible flipping in forced beam. Have to do it
+c here since with multiple voices, xelsk will not be preserved.
+c
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') then
+ bmlev = nolev1(ivx)+6+islope(ivx)*xelsk(nnb)/slfac
+ flipend(ivx) = bmlev.lt.nolev(ivx,ibm2(ivx,ibc))
+ else if (ulq(ivx,ibmcnt(ivx)) .eq. 'l') then
+ bmlev = nolev1(ivx)-6+islope(ivx)*xelsk(nnb)/slfac
+ flipend(ivx) = bmlev.gt.nolev(ivx,ibm2(ivx,ibc))
+ end if
+ end if
+ call ntrbbb(multb+iadj,'i',ulq(ivx,ibc),ivx,notexq,lnote)
+c
+c Put in name of start level and slope, after correcting nolev1 if xtup
+c started with a rest.
+c
+ if (ixrest(ivx).eq.2) nolev1(ivx) =
+ * nint(nolev1(ivx)+xelsk(1)*islope(ivx)/slfac)
+ call notefq(noteq,lnoten,nolev1(ivx),ncmid(iv,ipb1))
+ if (islope(ivx) .lt. 0) then
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+4+lnoten
+ write(notexq(lnote-2:lnote),'(i2,a1)')islope(ivx),'}'
+ else
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+1+lnoten
+ write(notexq(lnote:lnote),'(i1)')islope(ivx)
+ end if
+c
+c Check for beam-thk fine-tuning
+c
+ if (iadj .gt. 0) then
+ do 1 imp = multb+iadj , multb+1 , -1
+ call ntrbbb(imp,'t',ulq(ivx,ibc),ivx,notexq,lnote)
+1 continue
+ end if
+c
+c If we shifted, must close with right bracket
+c
+ if (addbrack) then
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+c
+c Get 'floor' zmin for figures
+c Note: Will not come thru here on 1st note of unbeamed xtup, so figure height
+c won't be adjusted. If anyone ever needs that, need to duplicate this
+c functionality up above, before exiting.
+c
+ if (figbass .and. (ivx.eq.1 .or. ivx.eq.ivxfig2)) then
+ if (ivx .eq. 1) then
+ ivf = 1
+ else
+ ivf = ivxfig2
+ end if
+ zmult = 1.2*(multb-1)
+ ymin = 100.
+ do 3 inb = 1, nnb
+ if (isfig(ivf,ipb(inb))) then
+ if (ulq(iv,ibc) .eq. 'u') then
+ ybot = nolev(iv,ipb(inb))
+ else
+ ybot = islope(ivx)/slfac*xelsk(inb)+nolev1(ivx)
+ * -stemlen-zmult
+ end if
+ ymin = min(ymin,ybot)
+ end if
+3 continue
+ maxdrop = ncmid(iv,ipb1)-4-ymin+5.01
+ ifigdr(ivf,iline) = max(ifigdr(ivf,iline),maxdrop)
+ end if
+c
+c Compute ornament levels if needed
+c
+ NomOrnLev = ncmid(iv,ipb1)+5
+ iorn = 0
+ do 8 inb = 1 , nnb
+ ip = ipb(inb)
+ if (.not.btest(iornq(ivx,ip),23)) go to 8
+ if (btest(irest(ivx,ip),26) .and. ulq(ivx,ibc).eq.'l') then
+c
+c letter-dynamic or hairpin ending under down-beamed
+c
+ iorn = iorn+1
+ ybeam = nolev1(ivx)-stemlen+islope(ivx)*xelsk(inb)/slfac+1
+ * -1.2*(multb-1)
+ ihornb(ivx,iorn) = min(nint(ybeam-3.),NomOrnLev-10)
+ else if (.not.btest(ipl(ivx,ip),10)) then
+c
+c Bits 0-13: (stmgx+Tupf._) , 14: Down fermata, was F
+c 15: Trill w/o "tr", was U , 16-18 Editorial s,f,n , 19-21 TBD
+c
+c Non-chord. There IS an ornament. Need ihornb only if upbeam, and if
+c ornament is 1,2,3,5,6,7,8,9,10,15-21 (up- but not domn ferm.)
+c
+ if (ulq(ivx,ibc).eq.'u' .and.
+ * iand(iornq(ivx,ipb(inb)),4163566).gt.0) then
+ iorn = iorn+1
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),22)
+ ybeam = nolev1(ivx)+stemlen+islope(ivx)*xelsk(inb)/slfac-1
+ * +1.2*(multb-1)
+ ihornb(ivx,iorn) = max(nint(ybeam+3.),NomOrnLev)
+ end if
+ else
+c
+c In a chord. Orn may be on main note or non-main or both. Set ihornb if
+c upbeam and highest note has orn, or down beam and lowest. Find 1st chord note
+c
+ do 10 icrd1 = 1 , ncrd
+ if (iand(255,icrdat(icrd1)) .eq. ip .and.
+ * iand(15,ishft(icrdat(icrd1),-8)) .eq. ivx) go to 11
+10 continue
+11 continue
+c
+c Find outermost note, min or max depending on beam direction ulq. xto is true
+c if there's an ornament on that note. Expand orn list to include ._, since if
+c on extreme chord note in beam, will move.
+c So ornaments are all except 0,4,13 (,g,)
+c
+ levx = nolev(ivx,ip)
+ xto = iand(iornq(ivx,ipb(inb)),4186094).gt.0
+ icrdx = 0
+ do 12 icrd = icrd1 , ncrd
+ if (iand(255,icrdat(icrd)) .ne. ip .or.
+ * iand(15,ishft(icrdat(icrd),-8)) .ne. ivx) go to 13
+ levc = iand(127,ishft(icrdat(icrd),-12))
+ if ((ulq(ivx,ibc).eq.'u'.and.levc.gt.levx) .or.
+ * (ulq(ivx,ibc).eq.'l'.and.levc.lt.levx)) then
+ levx = levc
+ icrdx = icrd
+ xto = iand(icrdorn(icrd),4186094).gt.0
+ end if
+12 continue
+13 continue
+c
+c If there's orn on extreme note, do stuff
+c
+ if (xto) then
+ iorn = iorn+1
+ if (ulq(ivx,ibc) .eq. 'u') then
+ ybeam = nolev1(ivx)+stemlen+islope(ivx)*xelsk(inb)/slfac-1
+ * +1.2*(multb-1)
+ ihornb(ivx,iorn) = max(nint(ybeam+3.),NomOrnLev)
+ else
+ ybeam = nolev1(ivx)-stemlen+islope(ivx)*xelsk(inb)/slfac+1
+ * -1.2*(multb-1)
+ ihornb(ivx,iorn) = min(nint(ybeam-3.),NomOrnLev-10)
+ end if
+ if (icrdx .eq. 0) then
+c
+c Affected ornament is on main note
+c
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),22)
+ else
+ icrdorn(icrdx) = ibset(icrdorn(icrdx),22)
+ end if
+ end if
+ end if
+8 continue
+c
+c Henceforth nornb will be a counter.
+c
+ if (iorn .gt. 0) nornb(ivx)=1
+ if (ixrest(ivx) .eq. 2) ixrest(ivx) = 0
+ return
+ end
+ block data
+ parameter (nm=24)
+ common /comtol/ tol
+ common /comtrans/ cheadq
+ common /compage/ widthpt,ptheight,hoffpt,voffpt,
+ * nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /cblock/
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inhnoh
+ common /cominbot/ inbothd
+ logical usefig
+ common /comstart/ facmtr
+ character*60 cheadq
+ character*120 instrq,titleq,compoq
+ logical headlog
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /combmh/ bmhgt,clefend
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /comsize/ isize(nm)
+c
+ data tol /.001/
+ data cheadq
+ * /' '/
+ data gslfac /9./
+ data instrq,titleq,compoq,headlog /3*' ',.false./
+c
+c meter space (pts) = xb4mbr = musicsize*facmtr
+c
+ data facmtr /0.55/
+ data grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,clefend,bmhgt
+ * / 1.3333,.4 , .7 , .3 , 0.2 , 2.0 , 1.0 ,
+ * .7,.7 ,.9 ,.5 ,2.3 ,1.1 /
+ data rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,arpfac
+ * / 1.32 , 2.25 , 0.47 , 0.83 , 0.17 , 0.5 , 1.7 /
+ data rtshfac / 1.0 /
+ data isize /nm*0/
+c
+c From other
+c
+ data ptheight,widthpt,hoffpt,voffpt,
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inbothd,inhnoh
+ * / 740. , 524. , 0., 0.,
+ * .50 , .25 , 0.4 , 0.4 , 0.2 , 12. ,21. , 12.,
+ * 4 , 1.6 ,5.,5.7,1.071,2.714,16 ,16 /
+ data fracsys /30*0./
+ data ivowg,hoh1,hoh2,hoh2h1 /0,0,0,0,0,1,1,1,1,1,1,1,
+c * 2.0,1.5,1.0,0.5,1.3,1.3,0.4,0.8,1.2,0.8,1.2,1.6,
+ * 2.2,1.7,1.2,0.7,1.3,1.3,0.4,0.8,1.2,0.8,1.2,1.6,
+ * -2.7,-2.2,-1.7,-1.2,-2.3,-2.1,-1.0,-1.7,-2.1,-1.6,-1.9,-2.3,
+ * -0.3,0.3 /
+ data kbdrests /.false./,
+ * levtopr /9,7,5,5,7,5,6,6/, levbotr /0,0,0,2,1,4,5,4/
+ data EarlyTransOn, LaterInstTrans /2*.false./
+ data iInstTrans /nm*0/
+ end
+ subroutine catspace(space,squez,nnsk)
+ parameter (nkb=3999,maxblks=4000)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /comtol/ tol
+ logical gotclef
+ do 16 iptr = nptr(ibarcnt) , nptr(ibarcnt+1)-1
+ if (abs(space-durb(iptr)) .lt. tol) then
+ if (abs(squez-sqzb(iptr)) .lt. tol) then
+c
+c Increment pre-existing entry
+c
+ nnpd(iptr) = nnpd(iptr)+nnsk
+ return
+ end if
+ end if
+16 continue
+c
+c Didn't find current duration & squez, so add a new entry.
+c No particular reason to keep in order, so add at the end.
+c
+ nnpd(nptr(ibarcnt+1)) = nnsk
+ durb(nptr(ibarcnt+1)) = space
+ sqzb(nptr(ibarcnt+1)) = squez
+ nptr(ibarcnt+1) = nptr(ibarcnt+1)+1
+ return
+ end
+ character*1 function chax(n)
+c
+c The only reason for this seemingly do-nothing function is to get around an
+c apparent bug in the Visual Fortran Standard Edition 5.0.A compiler!
+c
+ chax = char(n)
+ return
+ end
+ subroutine checkdyn(lineq,iccount,ibar)
+ character*128 lineq
+ character*1 durq,chax
+ character*4 dynsymq
+ logical txtdyn
+ txtdyn = .false.
+c
+c On entry, iccount is on "D"
+c
+ if (lineq(iccount+1:iccount+1) .eq. '"') then
+c
+c Dynamic text
+c
+ iend = index(lineq(iccount+2:128),'"')
+ if (iend .eq. 0) then
+ call errmsg(lineq,iccount+1,ibar,
+ * 'Dynamic text must be terminated with double quote!')
+ call stop1()
+ end if
+c
+c Set iccount to character after 2nd ", and set ipm
+c
+ iccount = iccount+iend+2
+ ipm = index('- +',lineq(iccount:iccount))
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected "-", "+", or blank here!')
+ call stop1()
+ end if
+ else
+c
+c Expect ordinary dynamic
+c
+ do 1 iend = iccount+2 , 128
+ ipm = index('- +',lineq(iend:iend))
+ if (ipm .gt. 0) go to 2
+1 continue
+2 continue
+ if (iend-iccount.gt.5 .or. iend-iccount.lt.2) then
+ call errmsg(lineq,iend-1,ibar,
+ * 'Wrong length for dynamic mark!')
+ call stop1()
+ end if
+ read(lineq(iccount+1:iend-1),'(a'//chax(47+iend-iccount)//')')
+ * dynsymq
+ idno = (index(
+ * 'ppppppp pp p mp mf f fp sfz ff fff ffff< > ',
+ * dynsymq)+3)/4
+ if (idno .eq. 0) then
+ call errmsg(lineq,iccount+1,ibar,'Illegal dynamic mark!')
+ call stop1()
+ end if
+ iccount = iend
+ end if
+ if (ipm .ne. 2) then
+c
+c There is a vertical shift, have "+" or "-"
+c
+ iccount = iccount+1
+ if (index('0123456789',lineq(iccount:iccount)) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected integer here for vertical offset!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(fnum)
+ if (idno .gt. 63) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Vertical offset for dynamic mark must be (-63,63)!')
+ call stop1()
+ end if
+ ipm = index('- +',durq)
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected "+", "-", or blank here!')
+ call stop1()
+ end if
+ if (ipm .ne. 2) then
+c
+c There is a horizontal shift
+c
+ iccount = iccount+1
+ if (index('.0123456789',lineq(iccount:iccount)) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,
+ * 'Expected number here for horizontal offset!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(10*fnum)
+ if (idno .gt. 255) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Horizontal offset for dynamic mark must be (-25.5,25.5)!')
+ call stop1()
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibar,
+ * 'There should be a blank here!')
+ call stop1()
+ end if
+ end if
+c
+c iccount should be on the blank at the end of the entire symbol
+c
+ end if
+ return
+ end
+ subroutine chkarp(ncrd,icrdat,ivx,ip,iscacc,isarp)
+c subroutine chkarp(found1,ncrd,icrdat,icrdot,ivx,ip,isacc,isarp,
+c * icashft)
+ logical found1,iscacc,isarp,btest
+ integer icrdat(193)
+ found1 = .false.
+c
+c icashft will be max left shift of accid's in chord notes.
+c Used only for spacing checks.
+c Will include left shift of chord note itself.
+c Rezero after use.
+c
+ do 18 icrd = 1 , ncrd
+c
+c This if block cycles thru all chord notes on ivx,ip; then returns.
+c
+ if (iand(255,icrdat(icrd)) .eq. ip .and.
+ * iand(15,ishft(icrdat(icrd),-8)) .eq. ivx) then
+ found1 = .true.
+ iscacc = iscacc .or.
+ * (btest(icrdat(icrd),19).and..not.btest(icrdat(icrd),27))
+c
+c Accid on this chord note, and it's not midi-only.
+c
+c irshft = igetbits(icrdot(icrd),7,20)
+cc
+cc Include increment for notehead shift
+cc
+c if (btest(icrdat(icrd),23)) then
+c if (irshft .eq. 0) then
+c irshft = 44
+c else
+c irshft=irshft-20
+c end if
+c end if
+c if (irshft .ne. 0) then
+cc
+cc Accid on chord note is shifted. Include only left shift, in 20ths.
+cc
+c if (irshft .lt. 64) icashft = max(icashft,64-irshft)
+c end if
+c end if
+ isarp = isarp .or. btest(icrdat(icrd),25)
+ else if (found1) then
+ return
+ end if
+18 continue
+ return
+ end
+ subroutine chkimidi(icm)
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ if (imidi(icm) .ge. mv) then
+ print*
+ print*,'Midi file is too long! It will be corrupted or worse'
+ write(*,'(a6,2x,4i8)')
+ * 'imidi:',imidi(0),imidi(1),imidi(2),imidi(3)
+ end if
+ return
+ end
+ subroutine chklit(lineq,iccount,literr)
+ character*128 lineq
+ character*1 charq,chax
+ literr = 0
+ itype = 1
+17 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. chax(92)) then
+ itype = itype+1
+c if (itype .eq. 2) then
+c if (iccount .ne. 2 ) then
+cc
+cc type 2 or 3 tex string not starting in column 1
+cc
+c literr = 3
+c return
+c end if
+c else if (itype .gt. 3) then
+ if (itype .gt. 3) then
+ literr = 1
+ return
+ end if
+ go to 17
+ end if
+ lenlit = itype
+18 call g1etchar(lineq,iccount,charq)
+ if (charq.eq.chax(92)) then
+ call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+c
+c Starting a new tex command withing the string
+c
+ lenlit = lenlit+2
+ if (lenlit .gt. 128) then
+ literr = 2
+ return
+ end if
+ go to 18
+ end if
+ else
+ lenlit = lenlit+1
+ if (lenlit .gt. 128) then
+ literr = 2
+ return
+ end if
+ go to 18
+ end if
+ return
+ end
+ subroutine chkpm4ac(lineq,iccount,nacc,moved)
+c
+c Called after getting +/-/</> in a note (not rest). iccount is on the +-<>.
+c Sets moved=.true. and sets move parameters in nacc if necc: horiz only (bits
+c 10-16) if < or >, horiz and vert (bits 4-9) if two consecutive signed
+c numbers. If moved=.true., iccount on exit is on end of last number.
+c If moved=.false., iccount still on +/-
+c
+ logical moved,ishorz
+ character*128 lineq
+ character*1 durq
+ if (index('sfnA',lineq(iccount-1:iccount-1)).gt.0 .and.
+ * index('0123456789.',lineq(iccount+1:iccount+1)).gt.0) then
+c
+c Prior char was accid & next is #; this may be start of accidental shift.
+c Must test for "." above in case we get "<" or ">"
+c
+ ipm = index('- +< >',lineq(iccount:iccount))-2
+ if (lineq(iccount+1:iccount+1).eq.'.' .and.
+ * index('0123456789',lineq(iccount+2:iccount+2)).eq.0) then
+c
+c Rare case of [accid][+/-].[letter]. Bail out
+c
+ moved = .false.
+ return
+ end if
+ ishorz = ipm .gt. 1
+c
+c Save iccount in case it's not accid shift and we have to reset.
+c
+ icsav = iccount
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (ishorz .or. index('+-',durq).gt.0) then
+c
+c This has to be accidental shift. Set vert. shift.
+c
+ if (.not.ishorz) then
+c
+c +/- syntax, both shifts set, vertical first
+c
+ call setbits(nacc,6,4,int(ipm*fnum+32.5))
+ ipm = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ else
+c
+c </> syntax, only horiz set
+c
+ ipm = ipm-3
+ end if
+c
+c Set horiz. shift
+c
+ call setbits(nacc,7,10,nint(20*(ipm*fnum+5.35)))
+ iccount = iccount-1
+ moved = .true.
+ else
+c
+c False alarm. Reset everything and flow onward
+c
+ moved = .false.
+ iccount = icsav
+ end if
+ else
+c
+c Either prior char was not 'sfn' or next was not digit, so take no action
+c
+ moved = .false.
+ end if
+ return
+ end
+ subroutine clefsym(isl,notexq,lnote,nclef)
+c
+c Returns string calling Don's TeX macro \pmxclef, for drawing small clefs.
+c
+ character*(*) notexq
+ character*1 chax
+ nclef = iand(ishft(isl,-12),7)
+ if (nclef .eq. 0) then
+c
+c treble
+c
+ nlev = 2
+ else if (nclef .gt. 6) then
+c
+c French violin
+c
+ nlev = 0
+ else if (nclef .lt. 5) then
+c
+c C-clef
+c
+ nlev = 2*nclef-2
+ else
+c
+c F-clef
+c
+ nlev = 2*nclef-6
+ end if
+ notexq = chax(92)//'pmxclef'//chax(48+min(nclef,7))
+ * //chax(48+nlev)
+ lnote = 10
+ return
+ end
+ subroutine crdacc(nacc,naccid,micrd,nolevm,rmsshift,lasttime,
+ * levmaxacc,icrdot0,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+c
+c nacc = accidental bitmap for main note
+c naccid = # of accid's in chord
+c micrd = array with icrd #'s for notes w/ acc's, 0=>main note
+c nolevm = level of main note
+c segrb(1|2,.) x|y-coord of right-bdry segment
+c ksegrb(.) internal use; tells what defined this segment
+c -2: Left-shifted notehead
+c -1: Original right boundary
+c 0: Main note accidental
+c icrd: Chord-note accidental
+c isetshft(i),i=1,naccid: what set shift for this accid, same codes
+c icrdot0 = top-down level-rank of main note among accid-notes
+c icrdot(icrd)(27-29) = level rank of chord-note among accid-notes
+c twooftwo will be true 2nd time thru; signal to store shifts w/ notes
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ real*4 segar(5,2,6),segal(5,2,6),segrb(2,50),segrb0(2,50)
+ integer*4 nsegar(5),nsegal(5),micrd(10),iacctbl(6),ksegrb(50),
+ * isetshft(10),ksegrb0(50)
+ logical lasttime,mainnote,twooftwo
+ data nsegar / 3,4,3,3,2 /, nsegal / 2,4,3,3,2 /
+ data segar /
+c
+c Fancy sharp boundary. fl,sh,na,dfl,dsh
+c
+ * -0.05,-0.38,-0.34,-.05, -.15,-1.4,-2.9,-3.0, -1.4, -1.2,
+c * -0.75,-0.20,-0.80, 0. , 0. , .96,-1.04,1.6, 0. , 0. ,
+c meas value for y, natural is 1.6
+ * -0.75,-0.20,-0.80,-.75, 0. , .96,-1.04,1.48, .96, 1.2,
+ * 0.00,-0.38, 0.00, 0. , 0. ,3.15, 1.64,3.0, 3.15, 0. ,
+ * 0. , 0.00, 0. , 0. , 0. , 0. , 2.90, 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. /
+ data segal /
+c * 0.00, 0.00,-1.04, 0. , 0. ,3.15, 2.9,-1.6, 0. , 0. ,
+cc (meas. value is 3.08) ^^^^
+cc Raise top of flat so it interferes with bottom of sharp
+ * -1.00,-1.02,-0.60,-1.65, -1.2,-1.4,-2.9, -3.0, -1.4, -1.2,
+ * 0.00,-1.20,-1.04, 0. , 0. ,3.15,-1.64,-1.48,3.15, 1.2,
+ * 0. ,-1.02, 0.00, 0. , 0. , 0. , 1.04, 3.0, 0. , 0. ,
+ * 0. , 0.00, 0. , 0. , 0. , 0. , 2.9 , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,
+ * 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. /
+c
+c iacctbl(i) = internal accid # (1-5) when i=extern accid # (1,2,3,5,6)
+c
+ data iacctbl / 1 , 2 , 3 , 0 , 4 , 5 /
+c
+c Set up barrier segrb(iseg,ipoint) to define coords of corner points
+c on stem+notes
+c
+ do 11 iseg = 1 , nsegrb0
+ segrb(1,iseg) = segrb0(1,iseg)
+ segrb(2,iseg) = segrb0(2,iseg)
+ ksegrb(iseg) = ksegrb0(iseg)
+11 continue
+ nsegrb = nsegrb0
+ rmsshift = 0.
+ shiftmin = 1000.
+ do 1 iwa = 1 , naccid
+c
+c Initialize shift for this note
+c
+ shift = 0.
+ mainnote = micrd(iwa).eq.0
+ isetshft(iwa) = -1
+c
+c Get note level and accidental type
+c
+ if (mainnote) then
+ nolev = nolevm
+ iacctype = iacctbl(igetbits(nacc,3,0))
+ else
+ nolev = igetbits(icrdat(micrd(iwa)),7,12)
+ iacctype = iacctbl(igetbits(icrdat(micrd(iwa)),3,20))
+ end if
+c
+c Cycle thru segments on right edge of this accidental
+c
+ do 2 isega = 1 , nsegar(iacctype)-1
+ ybotaseg = nolev+segar(iacctype,2,isega)
+ ytopaseg = nolev+segar(iacctype,2,isega+1)
+c
+c Cycle thru segments of right-hand barrier
+c
+ do 3 isegrb = 1 , nsegrb-1
+c
+c Must find all barrier segments that start below ytopseg & end above ybotseg
+c
+ if (segrb(2,isegrb) .lt. ytopaseg) then
+c
+c Barrier seg starts below top of accid
+c Check if barrier seg ends above bottom of accid
+c
+ if (segrb(2,isegrb+1) .gt. ybotaseg) then
+ if (shift .gt.
+ * segrb(1,isegrb)-segar(iacctype,1,isega)) then
+ shift = segrb(1,isegrb)-segar(iacctype,1,isega)
+c
+c Record the cause of the shift
+c
+ isetshft(iwa) = ksegrb(isegrb)
+ end if
+ end if
+c
+c Does barrier segment end above top of accid seg?
+c
+ if (segrb(2,isegrb+1) .gt. ytopaseg) go to 4
+ end if
+3 continue
+4 continue
+2 continue
+ if (.not.btest(nacc,28) .and. abs(shift).gt.0.0001
+ * .and. .not.lasttime) then
+c if (nolev .eq. levmaxacc) then
+ if (nolev.eq.levmaxacc .and. isetshft(iwa).eq.-1) then
+ rmsshift = 1000.
+ return
+ end if
+c
+c Does the following properly account for left-shifted noteheads?
+c
+c Top-down rank of this note we just shifted
+c
+ if (mainnote) then
+ irank = icrdot0
+ else
+ irank = igetbits(icrdot(micrd(iwa)),3,27)
+ end if
+c
+c Compare level-rank of this note vs. that of note that caused the shift.
+c This has effect of checking for basic interferences from top down.
+c
+c ksegrb(.) internal use; tells what defined this segment
+c -2: Left-shifted notehead
+c -1: Original right boundary
+c 0: Main note accidental
+c icrd: Chord-note accidental
+c isetshft(i),i=1,naccid: what set shift for this accid, same codes
+c
+ if (isetshft(iwa) .lt. 0) then
+ iranksetter = 0
+ else if (isetshft(iwa) .eq. 0) then
+ iranksetter = icrdot0
+ else
+ iranksetter = igetbits(icrdot(isetshft(iwa)),3,27)
+ end if
+ if (iranksetter.ne.0 .and. irank.ne.iranksetter+1) then
+ rmsshift = 1000.
+ return
+ end if
+ end if
+ rmsshift = rmsshift+shift**2
+ if (lasttime .and. abs(shift).gt..0001) then
+ if (mainnote) then
+ if (.not.btest(nacc,29)) go to 10
+ else
+ if (.not.btest(icrdat(micrd(iwa)),29)) go to 10
+ end if
+c
+c If here, "A" was set on a manual shift, so must cumulate the shift. Note that if there
+c was a manual shift but auto-shift was zero, will not come thru here, but shift value
+c will be left intact.
+c
+ if (mainnote) then
+ shift = shift+.05*(igetbits(nacc,7,10)-107)
+ else
+ shift = shift+.05*(igetbits(icrdot(micrd(iwa)),7,20)-107)
+ end if
+10 continue
+ if (twooftwo) then
+c
+c Record the shift for this accidental
+c
+ if (shift .lt. -5.35) then
+ call printl(' ')
+ call printl('WARNING: auto-generated accidental '//
+ * 'shift too big for PMX, ignoring')
+ else
+ ishift = nint(20*(shift+5.35))
+ if (mainnote) then
+ call setbits(nacc,7,10,ishift)
+ else
+ call setbits(icrdot(micrd(iwa)),7,20,ishift)
+ end if
+ end if
+ else
+c
+c This is the earlier call to precrd, so need minimum shift
+c
+ shiftmin = min(shiftmin,shift)
+ end if
+ end if
+c
+c Bail out if this is the last accidental to check
+c
+ if (iwa .eq. naccid) go to 1
+c
+c Add this accidental to the right barrier! Count down from highest barrier segment,
+c find 1st one starting below top of accid, and first one starting below bot.
+c
+ do 5 ibelowtop = nsegrb , 1 , -1
+ if (segrb(2,ibelowtop) .lt.
+ * nolev+segal(iacctype,2,nsegal(iacctype))) then
+ do 9 ibelowbot = ibelowtop , 1 , -1
+ if (segrb(2,ibelowbot) .lt.
+ * nolev+segal(iacctype,2,1)) go to 6
+9 continue
+ print*,'Oops2!'
+ call stop1()
+ end if
+5 continue
+ print*,'Ugh0! in crdaccs'
+ call stop1()
+6 continue
+ netgain = nsegal(iacctype)-ibelowtop+ibelowbot
+c
+c Shift high segments up
+c
+ if (netgain .ge. 0) then
+ do 7 isegrb = nsegrb , ibelowtop+1 , -1
+ segrb(1,isegrb+netgain) = segrb(1,isegrb)
+ segrb(2,isegrb+netgain) = segrb(2,isegrb)
+ ksegrb(isegrb+netgain) = ksegrb(isegrb)
+7 continue
+c
+c Set up 1st segment above accid
+c
+ segrb(1,ibelowtop+netgain) = segrb(1,ibelowtop)
+ segrb(2,ibelowtop+netgain) =
+ * nolev+segal(iacctype,2,nsegal(iacctype))
+ ksegrb(ibelowtop+netgain) = ksegrb(ibelowtop)
+ else
+c
+c netgain<0, must remove segments. Use same coding but reverse order,
+c work from bottom up
+c
+ segrb(1,ibelowtop+netgain) = segrb(1,ibelowtop)
+ segrb(2,ibelowtop+netgain) =
+ * nolev+segal(iacctype,2,nsegal(iacctype))
+ ksegrb(ibelowtop+netgain) = ksegrb(ibelowtop)
+ do 12 isegrb = ibelowtop+1 , nsegrb
+ segrb(1,isegrb+netgain) = segrb(1,isegrb)
+ segrb(2,isegrb+netgain) = segrb(2,isegrb)
+ ksegrb(isegrb+netgain) = ksegrb(isegrb)
+12 continue
+ end if
+c
+c Insert new segments
+c
+ do 8 isega = 1 , nsegal(iacctype)-1
+ segrb(1,ibelowbot+isega) = shift+segal(iacctype,1,isega)
+ segrb(2,ibelowbot+isega) = nolev+segal(iacctype,2,isega)
+ if (mainnote) then
+ ksegrb(ibelowbot+isega) = 0
+ else
+ ksegrb(ibelowbot+isega) = micrd(iwa)
+ end if
+8 continue
+c
+c Update number of barrier segments
+c
+ nsegrb = nsegrb+netgain
+cc
+cc Temporary printout for boundary segments as built up
+cc
+c write(15,'()')
+c write(15,'(a/(2f8.2,i5))')' y x kseg',
+c * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb)
+c write(15,'(a/(2i5))')' micrd isetshft',
+c * (micrd(iwa1),isetshft(iwa1),iwa1=1,iwa)
+cc
+1 continue ! next accidental
+ if (lasttime .and. .not.twooftwo) then
+c
+c This is the final call on the pre-ask pass, so compute left-shift rqmt.
+c
+ icashft = nint(-20*shiftmin)
+ end if
+cc
+cc Temporary printout for boundary segments
+cc
+c if (twooftwo) then
+c write(15,'()')
+c write(15,'(a/(2f8.2,i5))')' y x kseg',
+c * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb)
+c write(15,'(a/(2i5))')' micrd isetshft',
+c * (micrd(iwa),isetshft(iwa),iwa=1,naccid)
+c end if
+cc
+ return
+ end
+ subroutine crdaccs(nacc,ipl,irest,naccid,kicrd,nolevm,
+ * levmaxacc,levminacc,icrdot0,twooftwo,icashft)
+c
+c nacc = accidental bitmap for main note
+c naccid = # of accid's in chord
+c kicrd = array with icrd #'s for notes w/ acc's, 0=>main note
+c nolevm = level of main note
+c
+c This is called once per multi-accidental chord. In here, loop over all
+c permutations of the order of accidental as stored in kicrd. Each time thru
+c loop, call crdacc once, get rms shift. Only save permutation and rms value
+c if it is less than old value.
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+c
+c Make consistent? 120106
+c integer*4 kicrd(7),iperm(7),micrd(10),ipermsav(7),ksegrb0(50)
+ integer*4 kicrd(10),iperm(7),micrd(10),ipermsav(7),ksegrb0(50)
+ real*4 segrb0(2,50)
+ logical btest,tagged,manual,lshift,twooftwo
+cc
+cc Temporary printout of level-rankings
+cc
+c write(15,'()')
+c do 98 iacc = 1 , naccid
+c if (kicrd(iacc) .eq. 0) then
+c write(15,'(3i5)')nolevm,icrdot0
+c else
+c write(15,'(2i5)')igetbits(icrdat(kicrd(iacc)),7,12),
+c * igetbits(icrdot(kicrd(iacc)),3,27)
+c end if
+c98 continue
+cc
+c
+c Initialize right-barrier
+c
+ segrb0(1,1) = 0.
+ segrb0(2,1) = -1000.
+ segrb0(1,2) = 0.
+ segrb0(2,2) = 1000.
+ nsegrb0 = 2
+ ksegrb0(1) = -1
+ ksegrb0(2) = -1
+c
+c Search for left-shifted notes, Make up the initial right-barrier, which
+c will be good for all permutations.
+c irest()(27) is set if any notes are left-shifted
+c Must use ALL chord notes, not just ones w/ accid's.
+c
+ if (btest(irest,27)) then
+ do 15 icrd = icrd1-1, icrd2
+ if (icrd .eq. icrd1-1) then
+c
+c Main note
+c
+c lshift = btest(ipl,8)
+ lshift = btest(ipl,8) .or. btest(nacc,31)
+ if (lshift) nolev = nolevm
+ else
+c
+c Chord note
+c
+ lshift = btest(icrdat(icrd),23)
+c if (lshift) nolev = igetbits(icrdat(icrd),7,12)
+ if (lshift) then
+ nolev = igetbits(icrdat(icrd),7,12)
+ if (btest(nacc,31) .and. nolev.eq.nolevm+1) then
+c
+c This note is not really shifted, It is the upper of a 2nd with the main
+c note on an upstem, and Main note must be shifted.
+c nacc(31) signals the real truth.
+c
+ lshift = .false.
+ end if
+ end if
+ end if
+ if (lshift) then
+ do 16 isegrb = 1 , nsegrb0-1
+ if (segrb0(2,isegrb+1) .gt. nolev-1) then
+c
+c Add this notehead to the right boundary here. Move all higher segs up 2.
+c
+ do 17 iiseg = nsegrb0 , isegrb+1 , -1
+ segrb0(1,iiseg+2) = segrb0(1,iiseg)
+ segrb0(2,iiseg+2) = segrb0(2,iiseg)
+ ksegrb0(iiseg+2) = ksegrb0(iiseg)
+17 continue
+ go to 18
+ end if
+16 continue
+18 continue
+c
+c Insert notehead into list. Set kseg=-2 to signal notehead shift.
+c
+ iiseg = isegrb+1
+ segrb0(1,iiseg) = -1.2
+ segrb0(2,iiseg) = nolev-1.
+ ksegrb0(iiseg) = -2
+ segrb0(1,iiseg+1) = 0.
+ segrb0(2,iiseg+1) = nolev+1.
+ ksegrb0(iiseg+1) = -1
+ nsegrb0 = nsegrb0+2
+ end if
+15 continue
+ end if
+c
+c Done setting right barrier for left-shifted noteheads
+c
+ tagged = .false.
+ manual = .false.
+c
+c Preprocess to check for manual shifts.
+c If are manual main [nacc(10-16)] or chord note [icrdot(20-26)]shifts, then
+c If any manual shift is preceded by "A" [nacc(29), icrdat(29)] then
+c 1. Auto-shifting proceeds
+c 2. "A"-shifts add to autoshifts
+c 3. non-"A" shifts are ignored!
+c Else (>0 man shifts, none has "A")
+c No auto-ordering, No autoshifts, Observe all manual shifts.
+c End if
+c End if
+c
+ maxmanshft = 0
+ do 13 i = 1 , naccid
+ if (kicrd(i) .eq. 0) then
+c
+c Main note
+c
+ manshft = igetbits(nacc,7,10)
+ if (manshft .ne. 0) then
+ manual = .true.
+ if (btest(nacc,29)) then
+ tagged = .true.
+ else
+c maxmanshft = max(maxmanshft,64-manshft)
+ maxmanshft = max(maxmanshft,107-manshft)
+ end if
+ end if
+ else
+c
+c Chord note
+c
+ manshft = igetbits(icrdot(kicrd(i)),7,20)
+ if (manshft .ne. 0) then
+ manual = .true.
+ if (btest(icrdat(kicrd(i)),29)) then
+ tagged = .true.
+ else
+c maxmanshft = max(maxmanshft,64-manshft)
+ maxmanshft = max(maxmanshft,107-manshft)
+ end if
+ end if
+ end if
+13 continue
+ if (manual) then
+ if (tagged) then
+c
+c zero out all untagged shifts
+c
+ do 14 i = 1 , naccid
+ if (kicrd(i) .eq. 0) then
+ if (.not.btest(nacc,29)) call setbits (nacc,7,10,0)
+ else
+ if (.not.btest(icrdat(kicrd(i)),29))
+ * call setbits (icrdot(kicrd(i)),7,20,0)
+ end if
+14 continue
+ else
+c
+c There are manual shifts but none tagged. Only proceed if "Ao" was entered
+c
+ if (.not.btest(nacc,28)) then
+ icashft = maxmanshft
+ return
+ end if
+ end if
+ end if
+ if (btest(nacc,28)) then
+c
+c Take the accidentals in order as originally input, then exit.
+c
+ call crdacc(nacc,naccid,kicrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+c end if
+ else if (naccid .eq. 3) then
+c
+c Special treatment if 3 accidentals in chord. If there aren't accids on a 2nd
+c then place in order top, bottom, middle.
+c
+ do 20 i = 1 , 3
+ if (kicrd(i) .eq. 0) then
+ irank = icrdot0
+ nolev = nolevm
+ else
+ irank = igetbits(icrdot(kicrd(i)),3,27)
+ nolev = igetbits(icrdat(kicrd(i)),7,12)
+ end if
+ if (irank .eq. 1 ) then
+ micrd(1) = kicrd(i)
+ else
+ micrd(5-irank) = kicrd(i)
+ end if
+ if (irank .eq. 2) then
+ levmidacc = nolev
+ end if
+20 continue
+ if (levmaxacc.ne.levmidacc+1 .and.
+ * levmidacc.ne.levminacc+1) then
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+ end if
+ end if
+ rmsmin = 100000.
+c
+c Initialize permutation array
+c
+ do 7 i = 1 , naccid
+ iperm(i) = i
+7 continue
+c
+c Start looping over permutations
+c
+ do 8 ip = 1 , 5041
+ if (ip .ne. 1) then
+c
+c Work the magic algorithm to get the next permutation
+c
+ do 1 k = naccid-1 , 1 , -1
+ if (iperm(k) .le. iperm(k+1)) go to 2
+1 continue
+c
+c If here, we just got the last permutation, so exit the loop over permutations
+c
+ go to 10
+2 continue
+ do 3 j = naccid , 1 , -1
+ if (iperm(k) .le. iperm(j)) go to 4
+3 continue
+4 continue
+ it = iperm(j)
+ iperm(j) = iperm(k)
+ iperm(k) = it
+ is = k+1
+ do 5 ir = naccid , 1 , -1
+ if (ir .le. is) go to 6
+ it = iperm(ir)
+ iperm(ir) = iperm(is)
+ iperm(is) = it
+ is = is+1
+5 continue
+6 continue
+ end if
+c
+c New we have a permutation. Take icrd values out of kicrd and put them into
+c micrd in the order of the permutation
+c
+ do 9 i = 1 , naccid
+ micrd(i) = kicrd(iperm(i))
+9 continue
+cc
+cc Temporary printout
+cc
+c write(15,'(/a6,10i3)')'perm:',(iperm(i),i=1,naccid)
+cc
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.false.,
+ * levmaxacc,icrdot0,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+cc
+cc Temporary printout
+cc
+c write(15,*)'perm done, rmsshift:',rmsshift
+cc
+ if (rmsshift .lt. rmsmin) then
+c
+c Save this permutation, reset minrms
+c
+ do 11 i = 1 , naccid
+ ipermsav(i) = iperm(i)
+ rmsmin = rmsshift
+11 continue
+ end if
+8 continue
+ print*,'Should not BEEEEEE here!'
+ call stop1()
+10 continue
+c
+c Done looping, get info for the final choice
+c
+ do 12 i = 1 , naccid
+ micrd(i) = kicrd(ipermsav(i))
+12 continue
+cc
+cc Temporary printout
+cc
+c write(15,'(/a6,10i3)')'Final perm:',(ipermsav(i),i=1,naccid)
+cc
+ call crdacc(nacc,naccid,micrd,nolevm,rmsshift,.true.,
+ * idummy,idummy,segrb0,ksegrb0,nsegrb0,twooftwo,icashft)
+ return
+ end
+ subroutine doacc(ihshft,ivshft,notexq,lnote,nacc,nolev,ncm,caut)
+ character*1 sq,chax
+ character*3 acsymq
+ character*8 noteq
+ character*79 notexq
+ logical btest,caut
+ sq = chax(92)
+ if (ihshft .eq. -107) ihshft=0
+cc
+cc If main note shifted left, so shift accid. Terminate below, when acc. is done.
+cc
+ if (ihshft .ne. 0) then
+c
+c Accid must be shifted horizontally
+c
+ if (ihshft .lt. 0) then
+ notexq = sq//'loffset{'
+ ihshft = -ihshft
+ else
+ notexq = sq//'roffset{'
+ end if
+ hshft = .05*ihshft
+ if (hshft .lt. 1.) then
+ write(notexq(10:12),'(f3.2)')hshft
+ lnote = 12
+ else
+ write(notexq(10:13),'(f4.2)')hshft
+ lnote = 13
+ end if
+ notexq = notexq(1:lnote)//'}{'//sq
+ lnote = lnote+3
+ else
+ notexq = sq
+ lnote = 1
+ end if
+ if (btest(nacc,3)) then
+ notexq = notexq(1:lnote)//'big'
+ lnote = lnote+3
+ end if
+ if (caut) then
+c
+c Cautionary accidental. Need to define bigcna,... in pmx.tex
+c
+ notexq = notexq(1:lnote)//'c'
+ lnote = lnote+1
+ end if
+ call accsym(nacc,acsymq,lacc)
+ notexq = notexq(1:lnote)//acsymq(1:lacc)
+ lnote = lnote+lacc
+ noleva = nolev
+ if (ivshft .ne. 0) noleva = noleva+ivshft-32
+ call notefq(noteq,lnoten,noleva,ncm)
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihshft .ne. 0) then
+c
+c Terminate horizontal shift
+c
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ return
+ end
+ subroutine docrd(ivx,ip,nodu,ncm,iv,tnow,soutq,lsout,ulq,ibmcnt,
+ * islur,nvmx,nv,beamon,nolevm,ihornb,nornb,stemlen,
+ * dotxtup,nacc)
+ parameter (nm=24,mv=24576)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ logical lowdot,dotxtup
+ integer*4 ihornb(nm,24),nornb(nm)
+ character*1 ulq(nm,9),chax
+ character*7 nosymq
+ character*8 noteq
+ character*79 notexq,outq
+ character*80 soutq
+ logical btest,isleft,isright,beamon
+ character*79 inameq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+c
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c
+c This subr. once produced notexq for entire chord. 10/18/97 altered to write
+c chord notes as we go. 10/22/97 find range of icrd first.
+c 2/25/98 moved rangefinding to precrd so done before slurs, so now
+c on entry, icrd1, icrd2 define range of icrd for this chord.
+c
+c Set counter (for this note) for chord notes present. Set notmain=T.
+c Will test for notmain=.true. in addmidi to tell whether to save pitch.
+c
+ nmidcrd = 0
+ notmain = .true.
+ crdacc = .false.
+ do 5 icrd = icrd1 , icrd2
+ lnote = 0
+ nolev = igetbits(icrdat(icrd),7,12)
+c
+c 3/8/03 save original pitch to use in midi, in case 2nds alter things.
+c
+ nolevo = nolev
+c
+c Check for special situations with 2nds (see precrd).
+c
+ if (btest(nacc,30)) then
+ if (nolev .eq. nolevm-1) nolev = nolevm
+ else if (btest(nacc,31)) then
+ if (nolev .eq. nolevm+1) nolev = nolevm
+ end if
+c
+c Lower dot for lower-voice notes?. Conditions are:
+c 1. Dotted time value
+c 2. Lower voice of two
+c 3. Note is on a line
+c 4. Not a rest (cannot be a rest in a chord!)
+c. 5. Flag (lowdot) is set to true
+c
+ if (lowdot .and. nvmx.eq.2 .and. ivx.le.nv) then
+ if (2**log2(nodu).ne.nodu .and. mod(nolev-ncm,2).eq.0) then
+ if (btest(icrdat(icrd),26)) then
+c
+c Note already in movdot list. Drop by 2.
+c
+ call setbits(icrdot(icrd),7,0,
+ * igetbits(icrdot(icrd),7,0)-20)
+ else
+c
+c Not in list so just move it right now
+c
+ call dotmov(-2.,0.,soutq,lsout,igetbits(islur,1,3))
+ end if
+ end if
+ end if
+ if (btest(icrdat(icrd),26)) then
+c
+c Move the dot.
+c
+ updotc = 0.1*(iand(127,icrdot(icrd))-64)
+ rtdotc = 0.1*(iand(127,ishft(icrdot(icrd),-7))-64)
+ call dotmov(updotc,rtdotc,soutq,lsout,igetbits(islur,1,3))
+ end if
+ isleft = btest(icrdat(icrd),23)
+ isright = btest(icrdat(icrd),24)
+c
+c Check for ornament in chord.
+c
+ if (icrdorn(icrd) .gt. 0) then
+ call putorn(icrdorn(icrd),nolev,nolevm,nodu,nornb,ulq,
+ * ibmcnt,ivx,ncm,islur,nvmx,nv,ihornb,stemlen,outq,lout,
+ * ip,0,beamon,.true.)
+c
+c subroutin putorn(iornq,nolev,nolevm,nodur,nornb,ulq,ibmcnt,ivx,
+c * ncm,islur,nvmx,nv,ihornb,stemlen,outq,lout,ip,islhgt,
+c * notcrd,beamon,iscrd)
+c
+ call addstr(outq,lout,soutq,lsout)
+ end if
+c
+c Chord-note symbol. First check for breve
+c
+ if (nodu .eq. 128) then
+ nosymq = chax(92)//'zbreve'
+ lsym = 7
+ else
+c
+c Not a breve chord. Get first letters in chord-note symbol
+c
+ if (isleft) then
+ nosymq = chax(92)//'l'
+ else if (isright) then
+ nosymq = chax(92)//'r'
+ else
+ nosymq = chax(92)//'z'
+ end if
+ if (nodu .ge. 64) then
+ nosymq = nosymq(1:2)//'w'
+ else if (nodu .ge. 32) then
+ nosymq = nosymq(1:2)//'h'
+ else
+ nosymq = nosymq(1:2)//'q'
+ end if
+ if (2**log2(nodu).eq.nodu .and. .not.dotxtup) then
+ lsym = 3
+ else if (.not.btest(islur,3) .or. dotxtup) then
+c
+c Single dot
+c
+ nosymq = nosymq(1:3)//'p'
+ lsym = 4
+ else
+c
+c Double dot
+c
+ nosymq = nosymq(1:3)//'pp'
+ lsym = 5
+ end if
+ end if
+ if (btest(icrdat(icrd),19).and..not.btest(icrdat(icrd),27)) then
+c
+c Accidental and not MIDI-only. Build up bits 0-3 of nacc
+c
+ nactmp = igetbits(icrdat(icrd),3,20)
+c
+c Kluge for bigness. Only means 'As' has not been issued
+c
+ if (bacfac .ne. 1.e6) nactmp = nactmp+8
+ call doacc(igetbits(icrdot(icrd),7,20)-107,
+ * igetbits(icrdot(icrd),6,14),
+c * notexq,lnote,nactmp,nolev,ncmid(iv,ip))
+c Get original nolev, not altered to deal with 2nds
+ * notexq,lnote,nactmp,igetbits(icrdat(icrd),7,12),
+c * ncmid(iv,ip))
+ * ncmid(iv,ip),btest(icrdat(icrd),31))
+ notexq = notexq(1:lnote)//nosymq
+ crdacc = .true.
+ else
+ notexq = nosymq
+ end if
+ lnote = lnote+lsym
+c
+c Get note name (again if accid, due to possible octave jump)
+c
+ call notefq(noteq,lnoten,nolev,ncm)
+ if (lnoten.eq.1) call addblank(noteq,lnoten)
+c
+c Put in note name
+c
+ notexq = notexq(1:lnote)//noteq
+ lnote = lnote+lnoten
+ if (btest(icrdat(icrd),25)) then
+c
+c Arpeggio signal
+c
+c call putarp(tnow,iv,ip,nolev,ncm,soutq,lsout)
+ call putarp(tnow,ivx,ip,nolev,ncm,soutq,lsout)
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ if (ismidi) then
+c
+c Here is where we collect MIDI pitch info for the chord note. By checking
+c notmain, addmidi(...) knows to just compute the
+c pitch number and store it in mcpitch(nmidcrd). Then on call to addmidi()
+c for MAIN note, will put in note codes for all chord notes + main note.
+c
+ kv = 1
+ if (ivx .gt. iv) kv=2
+ nmidcrd = nmidcrd+1
+ if (nmidcrd .gt. 20) then
+ print*
+ print*,'21 chord notes is too many for midi processor'
+ call stop1()
+ end if
+c
+c Use original saved pitch level, unaltered by 2nds logic.
+c
+c call addmidi(midchan(iv,kv),nolevo,
+ call addmidi(midchan(iv,kv),nolevo-iTransAmt(instno(iv)),
+ * igetbits(icrdat(icrd),3,20),isig,1.,.false.,.false.)
+ end if
+5 continue
+ notmain = .false.
+ return
+ end
+ subroutine dodyn(ivx,ip,nolev,ncm,ipl,islur,irest,nvmx,nv,
+ * beamon,ihornb,nornb,ulq,ibmcnt,nostem,soutq,lsout)
+ parameter (nm=24)
+c
+c Inputs are array *elements* except ihornb,nornb,ulq
+c
+ common /commus/ musize,whead20
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ logical btest,beamon,upstem,nostem
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical fontslur,upslur,WrotePsslurDefaults
+ character*1 udqq,chax,ulq(nm,9)
+ character*4 dynstrq
+ character*5 numpq
+ character*48 dyntablq,tempq
+ character*79 notexq
+ character*80 soutq
+ integer*4 ihornb(nm,24),nornb(nm),idynn(10)
+ data dyntablq /'ppppppp pp p mp mf f fp sfz ff fff ffff'/
+ numdyn = 0
+c
+c Find dynamics for (ivx,ip) in list. May be as many as 4. Store idyn values
+c in idynn(1...4)
+c
+ do 1 idyn = 1 , ndyn
+c ivxtent = iand(idyndat(idyn),15)
+ ivxtent = iand(idyndat(idyn),15)
+ * +16*igetbits(idynda2(idyn),1,10)
+ if (ivxtent .eq. ivx) then
+ iptent = igetbits(idyndat(idyn),8,4)
+ if (iptent .eq. ip) then
+ numdyn = numdyn+1
+ idynn(numdyn) = idyn
+ else if (iptent .gt. ip) then
+c
+c I don't think there are any more possible for this ivx,ip, so exit loop
+c
+ go to 2
+ end if
+c else if (ivxtent .gt. ivx) then
+c go to 2
+ end if
+1 continue
+2 continue
+c
+c At this point there is a list of idyn's in idynn(1...numdyn)
+c Compute level, and stem-dir'n-based horizontal tweaks
+c
+ hoffsd = 0.
+c
+c Set upstem to false as default
+c
+ upstem = .false.
+ if (btest(irest,0)) then
+c
+c It's a rest. Assume it doesn't go below the staff
+c
+ lbot = ncm-4
+ else if (.not.beamon) then
+ if (udqq(nolev,ncm,islur,nvmx,ivx,nv).eq.'u' .or. nostem) then
+ upstem = .true.
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-1,ncm-4)
+ else
+ lbot = min(minlev-1,ncm-4)
+ end if
+ else
+ hoffsd = -.5
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-7,ncm-4)
+ else
+ lbot = min(minlev-7,ncm-4)
+ end if
+ end if
+ else
+ if (ulq(ivx,ibmcnt) .eq. 'u') then
+ upstem = .true.
+ if (.not.btest(ipl,10)) then
+ lbot = min(nolev-1,ncm-4)
+ else
+ lbot = min(minlev-1,ncm-4)
+ end if
+ else
+ hoffsd = -.5
+ lbot = ihornb(ivx,nornb(ivx))+1
+ if (lbot .eq. 1) then
+c
+c Kluge for non-beamed, down xtup, for which ihorb was never set.
+c Assumes stem is shortened.
+c
+ lbot = nolev-5
+ end if
+ nornb(ivx) = nornb(ivx)+1
+ end if
+ end if
+ lbot = lbot-5
+ jtxtdyn1 = 1
+c
+c Now ready to loop over current dyn's
+c
+ do 3 icntdyn = 1 , numdyn
+ idynd = idyndat(idynn(icntdyn))
+ idynd2 = idynda2(idynn(icntdyn))
+ idno = igetbits(idynd,4,12)
+c ivx = iand(15,idynd)
+ ivx = iand(15,idynd)+16*igetbits(idynd2,1,10)
+c
+c Build the command into notex in stages. Insert name & rq'd args in order:
+c
+c Command name
+c hpstrt, hpcend, hpdend, pmxdyn
+c ivx
+c X X X
+c level
+c X X X
+c hoff
+c X X X X
+c d-mark
+c X
+c
+ if (idno .eq. 0) then
+c
+c Text-dynamic
+c
+ notexq = chax(92)//'txtdyn'
+ lnote = 7
+ else if (idno .le. 12) then
+c
+c Letter-group
+c
+ notexq = chax(92)//'pmxdyn'
+ lnote = 7
+ else if (fontslur) then
+ lnote = 7
+ if (idno .eq. 13) then
+c
+c Start a hairpin
+c
+ notexq = chax(92)//'hpstrt'
+ else if (idno .eq. 14) then
+c
+c End crescendo
+c
+ notexq = chax(92)//'hpcend'
+ else
+c
+c End decrescendo
+c
+ notexq = chax(92)//'hpdend'
+ end if
+ else
+c
+c Postscript hairpins
+c
+ lnote = 7
+ if (idno .eq. 13) then
+ notexq = chax(92)//'Icresc'
+ else if (idno .eq.14) then
+ notexq = chax(92)//'Idecresc'
+ lnote = 9
+ else
+ notexq = chax(92)//'Tcresc'
+ end if
+ end if
+ if (idno .ge. 13) then
+c
+c Put in voice number
+c
+ if (ivx .le. 9) then
+ notexq = notexq(1:lnote)//char(48+ivx)
+ lnote = lnote+1
+ else if (ivx .le. 19) then
+ notexq = notexq(1:lnote)//'{1'//char(38+ivx)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//char(28+ivx)//'}'
+ lnote = lnote+4
+ end if
+ end if
+c
+c Begin setting level
+c
+ lbot1 = lbot
+ if (idno.gt.0 .and. idno.le.5) then
+c
+c All letters are short so raise a bit.
+c
+ lbot1 = lbot1+1
+ else if (idno .ge. 13) then
+ lbot1 = lbot1+2
+ end if
+c
+c Convert so reference is bottom line
+c
+ lbot1 = lbot1-ncm+4
+ if ((fontslur.and.idno.eq.13) .or.
+ * ((.not.fontslur).and.(idno.eq.13.or.idno.eq.14))) then
+c
+c Hairpin start. Save level and user-tweak before applying user tweak.
+c
+ levdsav(ivx) = lbot1
+ levhssav(ivx) = 0
+ if (btest(idynd,16)) levhssav(ivx) = -64+igetbits(idynd,7,17)
+ else if ((fontslur.and.idno.ge.14) .or. idno.eq.15) then
+c
+c Hairpin end; Compare level with saved start level before user-tweaks
+c
+ lbot1 = min(lbot1,levdsav(ivx))
+c
+c Save pre-tweak level
+c
+ lpretweak = lbot1
+ end if
+c
+c Check for user-defined vertical tweak
+c
+ if (btest(idynd,16)) lbot1 = lbot1-64+igetbits(idynd,7,17)
+c
+c Now horizontal stuff
+c
+ hoff = hoffsd
+c
+c Some special horizontal tweaks
+c
+ if (upstem .and. idno.gt.0 .and.
+ * (idno.le.4 .or. idno.eq.8 .or. idno.eq.9)) hoff = hoff+.4
+c
+c User-defined tweaks
+c
+ if (btest(idynd2,0))
+ * hoff = hoff+(igetbits(idynd2,9,1)-256)*.1
+ if (numdyn .gt. 1) then
+c
+c Horizontal-interaction-based tweaks.
+c
+c Cases:
+c numdyn type1 type2 type3 data used
+c 2 wrd-grp hrpnstrt - ivowg(1...12),hoh1(1...12)
+c 2 hrpnend wrd-grp - ivowg,hoh2
+c 2 hrpnend hrpnstrt - hoh2h1(1...2)
+c 3 hrpnend wrd-grp hrpnstrt ivowg,hoh2,hoh1
+c
+ if (idno.gt.0 .and. idno.le.12) then
+c
+c Word-group, may need vertical tweak to line up.
+c
+ lbot1 = lbot1+ivowg(idno)
+c
+c Protecting against hp start-stop on same note
+c
+ else if (((fontslur.and.idno.ge.14).or.idno.eq.15)
+ * .and. icntdyn.lt.numdyn) then
+c
+c Hairpin ending, check next type
+c
+ if ((fontslur .and.
+ * igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.13)
+ * .or. (.not.fontslur .and.
+ * ((igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.13)
+ * .or.
+ * (igetbits(idyndat(idynn(icntdyn+1)),4,12).eq.14))))
+ * then
+c
+c Hairpin end then hairpin start, no words, (remember dealing with end now)
+c
+ hoff = hoff+hoh2h1(1)
+ else
+c
+c Hairpin end then word-group, need idno for w-g to set hp offset
+c
+ hoff = hoff +
+ * hoh2(igetbits(idyndat(idynn(icntdyn+1)),4,12))
+ end if
+c
+c Protecting against hp start-stop on same note
+c
+ else if (icntdyn.gt.1 .and. idno.gt.0 .and.
+ * ((fontslur.and.idno.lt.14).or.
+ * (.not.fontslur.and.idno.lt.15))) then
+c
+c Hairpin start, check prior type
+c
+ if ((fontslur.and.
+ * igetbits(idyndat(idynn(icntdyn-1)),4,12).ge.14)
+ * .or.
+ * (.not.fontslur.and.
+ * igetbits(idyndat(idynn(icntdyn-1)),4,12).eq.15))
+ * then
+c
+c Hairpin end then hairpin start, (remember dealing with start now)
+c
+ hoff = hoff+hoh2h1(2)
+ else
+c
+c Hairpin start after word-group, need idno for w-g to set hp offset
+c
+ hoff = hoff+
+ * hoh1(igetbits(idyndat(idynn(icntdyn-1)),4,12))
+ end if
+ end if
+ end if
+c
+c End of if-block for 2- or 3-way interactions.
+c
+ if ((.not.fontslur) .and. idno.ge.13)
+c
+c Slur font and hairpin. Add hoff, and change from \interneote to \qn@width
+c
+ * hoff = (hoff+.5)*6./2.5
+c
+c Position corrections all done now. Put in the level.
+c
+ if ((fontslur.and.idno.eq.13) .or.
+ * ((.not.fontslur).and.(idno.eq.13.or.idno.eq.14))) then
+c
+c Hairpin start.
+c
+ if (.not.fontslur) then
+c
+c Postscript hairpin start...inset placeholder for start level.
+
+ notexq = notexq(1:lnote)//'{ }'
+ lnote = lnote+5
+ end if
+ else
+c
+c Insert actual level in all cases except hairpin start
+c Create string with level in it
+c
+ if (lbot1 .gt. 9) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else if (lbot1 .gt. -1) then
+ numpq = char(48+lbot1)
+ lnumpq = 1
+ else if (lbot1 .gt. -10) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else
+ numpq = '{'
+ write(numpq(2:4),'(i3)')lbot1
+ numpq = numpq(1:4)//'}'
+ lnumpq = 5
+ end if
+c
+c Level has now been computed and stored in numpq
+c Append the level
+c
+ notexq = notexq(1:lnote)//numpq(1:lnumpq)
+ lnote = lnote+lnumpq
+ end if
+ if (abs(hoff) .lt. .001) then
+c
+c No horiz offset
+c
+ notexq = notexq(1:lnote)//'0'
+ lnote = lnote+1
+ else
+c
+c Horizontal tweak
+c
+ lform = lfmt1(hoff)
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')hoff
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ if (idno .eq. 0) then
+c
+c text-dynamic. Find the string and append it
+c
+ do 4 jtxtdyn = jtxtdyn1 , ntxtdyn
+c ivxip = ivx+16*ip
+ ivxip = ivx+32*ip
+ if (ivxip .eq. ivxiptxt(jtxtdyn)) go to 5
+4 continue
+ call printl('Abnormal stop in putdyn')
+ call stop1()
+5 continue
+ ltxtdyn = lenstr(txtdynq(jtxtdyn),128)
+c
+c Font size based on musicsize
+c
+ if (musize .eq. 20) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'medtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ else if (musize .eq. 16) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'normtype'
+ * //char(92)//'it '
+ lnote = lnote+14
+ else if (musize .eq. 24) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'bigtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ else if (musize .eq. 29) then
+ notexq = notexq(1:lnote)//'{'//char(92)//'Bigtype'
+ * //char(92)//'it '
+ lnote = lnote+13
+ end if
+ notexq = notexq(1:lnote)//txtdynq(jtxtdyn)(1:ltxtdyn)
+ * //'}'
+ lnote = lnote+ltxtdyn+1
+c
+c Reset jtxtdyn1 just in case >1 txtdyn on same note.
+c
+ jtxtdyn1 = jtxtdyn+1
+ else if (idno .le. 12) then
+c
+c Letter-group dynamic. Append the letter-group command
+c
+ id = 4*idno
+ dynstrq = dyntablq(id-3:id)
+ id = lenstr(dynstrq,4)
+ notexq = notexq(1:lnote)//chax(92)//dynstrq(1:id)
+ lnote = lnote+1+id
+ end if
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+ if ((.not.fontslur).and.idno.eq.15) then
+c
+c PS slurs on, hairpin is ending. Go back and set height at beginning.
+c Add user-defined tweak to default level
+c
+ lbot1 = lpretweak+levhssav(ivx)
+ if (lbot1 .gt. 9) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else if (lbot1 .gt. -1) then
+ numpq = char(48+lbot1)
+ lnumpq = 1
+ else if (lbot1 .gt. -10) then
+ numpq = '{'
+ write(numpq(2:3),'(i2)')lbot1
+ numpq = numpq(1:3)//'}'
+ lnumpq = 4
+ else
+ numpq = '{'
+ write(numpq(2:4),'(i3)')lbot1
+ numpq = numpq(1:4)//'}'
+ lnumpq = 5
+ end if
+c
+c Construct string to search backwards for placeholder
+c
+ if (ivx .le. 9) then
+ tempq = 'cresc'//char(48+ivx)//'{ }'
+ ltemp = 11
+ else if (ivx .le. 19) then
+ tempq = 'cresc'//'{1'//char(38+ivx)//'}{ }'
+ ltemp = 14
+ else
+ tempq = 'cresc'//'{2'//char(28+ivx)//'}{ }'
+ ltemp = 14
+ end if
+ write(11,'(a)')soutq(1:lsout)//'%'
+ lsout = 0
+ call backfill(11,tempq,ltemp,
+ * tempq(1:ltemp-5)//numpq(1:lnumpq),ltemp-5+lnumpq)
+ end if
+3 continue
+c
+c Shrink arrays, decrease ndyn 111109
+c
+ do 6 icntdyn = numdyn, 1 , -1
+ do 7 jdyn = idynn(icntdyn) , ndyn-1
+ idyndat(jdyn) = idyndat(jdyn+1)
+ idynda2(jdyn) = idynda2(jdyn+1)
+7 continue
+ ndyn = ndyn-1
+6 continue
+ end
+ subroutine dograce(ivx,ip,ptgr,soutq,lsout,ncm,nacc,ig,ipl,
+ * farend,
+ * beamon,nolev,ncmidx,islur,nvmx,nv,ibmcnt,tnote,ulq)
+c
+c ip will be one LESS than current note, for way-after's before bar-end,
+c It is only used to find ig.
+c ig is returned to makeabar in case there's a slur that needs to be ended
+c
+ parameter (nm=24)
+ logical beamon,stemup
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comoct/ noctup
+ logical upg,slurg,slashg,bar1syst,upslur,btest,isgaft,iswaft,
+ * normsp,farend,fontslur,WrotePsslurDefaults
+ real*4 ptgr(37)
+ character*80 soutq
+ character*128 litq
+ character*79 notexq
+ character*20 voltxtq
+ character*10 figq
+ character*8 noteq,noteqGA
+ character*3 acsymq
+ character*1 sq,chax,udqq,ulq(nm,9)
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ sq = chax(92)
+ isgaft = btest(ipl,29)
+ iswaft = btest(ipl,31)
+ normsp = .not. isgaft
+c
+c Find ig.
+c
+ do 120 ig = 1 , ngrace
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 121
+120 continue
+ print*,'Problem finding grace index in dograce'
+ stop
+121 continue
+ ngs = ngstrt(ig)
+ mg = multg(ig)
+ wheadpt1 = wheadpt*fullsize(ivx)
+c
+c For way-after-graces at end of bar, must set the octave.
+c
+ if (farend) then
+ noctup = 0
+ if (ncm .eq.23) noctup = -2
+ end if
+ if (slurg(ig) .and. .not.iswaft .and..not.isgaft) then
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You defined the twentyfifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You defined the twentyfifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Slur on fore-grace. Get index of next slur not in use, from 23 down.
+c
+ ndxslur = log2(16777215-listslur)
+
+ end if
+ if (nng(ig) .eq. 1) then
+c
+c Single grace.
+c
+ if (normsp) then
+c
+c Anything but GA
+c
+ call addstr(sq//'shlft',6,soutq,lsout)
+ niptgr = nint(ptgr(ig))
+c
+c Empirical tweak for postscript.
+c
+C if (.not.fontslur) niptgr = niptgr+nint(wheadpt*.3)
+c++
+ if (niptgr .lt. 10) then
+ call addstr(chax(48+niptgr)//'{',2,soutq,lsout)
+ else if (niptgr .lt. 100) then
+ write(notexq(1:2),'(i2)')niptgr
+ call addstr('{'//notexq(1:2)//'}{',5,soutq,lsout)
+ else
+ print*,
+ * 'Call Dr. Don if you really want grace note group > 99 pt'
+ stop
+ end if
+ else
+ call addstr(sq//'gaft{1.5}{',11,soutq,lsout)
+c
+c GA. Compute aftshft, for later use.
+c
+ aftshft = grafac
+ if (naccg(ngstrt(ig)).gt.0) aftshft = aftshft+agc1fac
+ aftshft = aftshft*wheadpt
+ end if
+ if (slurg(ig) .and. .not.isgaft .and..not.iswaft) then
+c
+c Start slur on pre-grace. No accounting needed since will be ended very soon.
+c
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (fontslur) then
+ if (upg(ig)) then
+ call addstr(sq//'islurd',7,soutq,lsout)
+ else
+ call addstr(sq//'isluru',7,soutq,lsout)
+ end if
+ else
+c
+c Start Postscript slur.
+c
+ if (upg(ig)) then
+ call addstr(sq//'isd',4,soutq,lsout)
+ else
+ call addstr(sq//'isu',4,soutq,lsout)
+ end if
+ end if
+c
+c Print slur number, 23-ndxslur
+c
+ lnote = 0
+ if (23-ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = chax(71-ndxslur)
+ lnote = 1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = '{1'//chax(61-ndxslur)//'}'
+ lnote = 4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = 4
+ end if
+c if (11-ndxslur .lt. 10) then
+c call addstr(chax(59-ndxslur)//noteq(1:lnoten),1+lnoten,
+c * soutq,lsout)
+c else
+c call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten),
+c * 4+lnoten,soutq,lsout)
+c end if
+ call addstr(notexq(1:lnote)//noteq(1:lnoten),
+ * lnote+lnoten,soutq,lsout)
+ if (.not.fontslur) then
+c
+c Horizontal tweaks for postscript slur on single grace
+c
+ stemup = .true.
+ if (upg(ig)) then
+c
+c Check for up-grace + down stem. Get stem direction
+c
+ if (.not.beamon) then
+c
+c Separate note. Get stem direction.
+c
+ stemup = udqq(nolev,ncmidx,
+ * islur,nvmx,ivx,nv) .eq. 'u'
+ else
+c
+c In a beam
+c
+ stemup = ulq(ivx,ibmcnt) .eq. 'u'
+ end if
+c
+c Stop the shift if whole note
+c
+ stemup = stemup .or. tnote.gt.63
+ end if
+ if (stemup) then
+ call addstr('{-.3}',5,soutq,lsout)
+ else
+ call addstr('{-.8}',5,soutq,lsout)
+ end if
+ end if
+ end if
+ if (naccg(ngs) .gt. 0) then
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+c
+c Save for checking octave shifts in GA
+c
+ if (isgaft) then
+ lnotenGA = lnoten
+ noteqGA = noteq
+ end if
+c
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ngs),acsymq,lacc)
+ call addstr(sq//'big'//acsymq(1:lacc)//
+ * noteq(1:lnoten),4+lacc+lnoten,soutq,lsout)
+ end if
+ if (slashg(ig)) then
+ notexq = sq//'grc'
+ lnote = 4
+ else if (mg .eq. 0) then
+ notexq = sq//'zq'
+ lnote = 3
+ else
+ notexq = sq//'zc'
+ do 61 i = 2 , mg
+ notexq = notexq(1:i+1)//'c'
+61 continue
+ lnote = mg+2
+ end if
+ if (upg(ig)) then
+ notexq = notexq(1:lnote)//'u'
+ else
+ notexq = notexq(1:lnote)//'l'
+ end if
+ call addstr(notexq,lnote+1,soutq,lsout)
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+c
+ if (isgaft .and. naccg(ngs).eq.0) then
+ lnotenGA = lnoten
+ noteqGA = noteq
+ end if
+c
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call addstr(noteq,lnoten,soutq,lsout)
+ if (slashg(ig)) call addstr(sq//'off{-'//sq//
+ * 'noteskip}',16,soutq,lsout)
+c
+c Above code needed since slashg causes spacing
+c
+ if (slurg(ig) .and. (iswaft.or.isgaft)) then
+c
+c Terminate slur on single after-grace
+c
+c ndxslur = igetbits(ipl,4,23)
+ ndxslur = igetbits(ipl,5,23)
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ call addstr(sq//'tslur',6,soutq,lsout)
+c
+cc Print 11-ndxslur
+c Print 24-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c call addstr(chax(59-ndxslur)//noteq(1:lnoten),
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),
+ * 1+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ call addstr('{2'//chax(61-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ else
+c call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten),
+ call addstr('{1'//chax(51-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ end if
+ slurg(ig) = .false.
+ listslur = ibclr(listslur,ndxslur)
+ end if
+ call addstr('}',1,soutq,lsout)
+c
+c+++ Try to fix loss of octave with single gaft
+c
+c if (isgaft) call addstr(sq//'zcharnote'//noteq(1:lnoten)//'{~}',
+c * 13+lnoten,soutq,lsout)
+ if (isgaft) then
+ itrans = 0
+ do 1 i = 1 , lnotenGA
+ if (noteqGA(i:i) .eq. chax(39)) then
+ itrans = itrans+7
+ else if (noteqGA(i:i) .eq. chax(96)) then
+ itrans = itrans-7
+ end if
+1 continue
+ if (itrans. eq. -14) then
+ call addstr(sq//'advance'//sq//'transpose-14',21,
+ * soutq,lsout)
+ else if (itrans .eq. -7) then
+ call addstr(sq//'advance'//sq//'transpose-7',20,
+ * soutq,lsout)
+ else if (itrans .eq. 7) then
+ call addstr(sq//'advance'//sq//'transpose7',19,
+ * soutq,lsout)
+ else if (itrans .eq. 14) then
+ call addstr(sq//'advance'//sq//'transpose14',20,
+ * soutq,lsout)
+ end if
+ end if
+ else
+c
+c Multiple grace. Put in literally. Compute beam stuff
+c
+ sumx = 0.
+ sumy = 0.
+ sumxy = 0.
+ sumxx = 0.
+ sumyy = 0.
+ x = 0.
+ do 118 ing = ngs , ngs+nng(ig)-1
+ if (ing.gt.ngs .and. naccg(ing).gt.0) x = x+acgfac
+ y = nolevg(ing)
+ sumx = sumx + x
+ sumy = sumy + y
+ sumxy = sumxy + x*y
+ sumxx = sumxx + x*x
+ sumyy = sumyy + y*y
+ x = x+emgfac
+118 continue
+ delta = nng(ig)*sumxx-sumx*sumx
+ em = (nng(ig)*sumxy-sumx*sumy)/delta
+ islope = nint(0.5*em*gslfac)
+ if (iabs(islope) .gt. 9) islope = isign(9,islope)
+ beta = (sumy-islope/gslfac*sumx)/nng(ig)
+ nolev1 = nint(beta)
+c
+c Back up
+c
+ notexq = sq//'settiny'//sq//'off{'
+ if (normsp) then
+ write(notexq(14:18),'(a1,f4.1)')'-',ptgr(ig)
+ call addstr(notexq(1:18)//'pt}',21,soutq,lsout)
+ finalshift = ptgr(ig)
+ else
+ aftshft = wheadpt*1.33
+ if (naccg(ngstrt(ig)).gt.0) aftshft = aftshft+wheadpt*0.5
+ write(notexq(14:17),'(f4.1)')aftshft
+ call addstr(notexq(1:17)//'pt}'//sq//'bsk',24,soutq,lsout)
+ end if
+c
+c Start the beam
+c
+ notexq = sq//'ib'
+ do 119 ing = 2 , mg
+ notexq = notexq(1:ing+1)//'b'
+119 continue
+ if (upg(ig)) then
+ notexq = notexq(1:mg+2)//'u'
+ else
+ notexq = notexq(1:mg+2)//'l'
+ end if
+ notexq = notexq(1:mg+3)//'0'
+c
+c Get starting note for beam
+c
+ call notefq(noteq,lnoten,nolev1,ncm)
+ call addstr(notexq(1:mg+4)//noteq(1:lnoten),
+ * mg+4+lnoten,soutq,lsout)
+c
+c Put in the slope
+c
+ if (islope .ge. 0) then
+ call addstr(chax(48+islope),1,soutq,lsout)
+ else
+ call addstr('{-'//chax(48-islope)//'}',4,soutq,lsout)
+ end if
+c
+c Start a slur on multiple fore-grace
+c
+ if (slurg(ig) .and. .not.isgaft .and. .not.iswaft) then
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (fontslur) then
+ if (upg(ig)) then
+ call addstr(sq//'islurd',7,soutq,lsout)
+ else
+ call addstr(sq//'isluru',7,soutq,lsout)
+ end if
+ else
+c
+c Need a tweak for postscript slur
+c
+ if (upg(ig)) then
+ call addstr(sq//'isd',4,soutq,lsout)
+ else
+ call addstr(sq//'isu',4,soutq,lsout)
+ end if
+ end if
+c
+c Print 11-ndxslur
+c
+ if (23-ndxslur .lt. 10) then
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),1+lnoten,
+ * soutq,lsout)
+ else if (23-ndxslur .lt. 2) then
+ call addstr('{1'//chax(61-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ else
+ call addstr('{1'//chax(51-ndxslur)//'}'//noteq(1:lnoten),
+ * 4+lnoten,soutq,lsout)
+ end if
+c
+c Put in tweak for postscript slur
+c
+ if (.not.fontslur) call addstr('{-.3}',5,soutq,lsout)
+ end if
+c
+c Put in first note. Call notefq again in case octave changed
+c
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ if (naccg(ngs) .eq. 0) then
+ notexq = sq//'zqb0'//noteq(1:lnoten)
+ lnote = 5+lnoten
+ else
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ngs),acsymq,lacc)
+ notexq = sq//'big'//acsymq(1:lacc)//noteq(1:lnoten)
+ lnote = 4+lacc+lnoten
+ call notefq(noteq,lnoten,nolevg(ngs),ncm)
+ notexq =notexq(1:lnote)//sq//'zqb0'//noteq(1:lnoten)
+ lnote = lnote+5+lnoten
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ do 127 ing = ngs+1 , ngs+nng(ig)-1
+c
+c Skip
+c
+ ptoff = wheadpt1*emgfac
+ if (naccg(ing).gt.0) ptoff = ptoff+wheadpt1*acgfac
+ if (isgaft .and. .not.iswaft) aftshft = aftshft+ptoff
+ notexq = sq//'off{'
+ write(notexq(6:8),'(f3.1)')ptoff
+ if (normsp) finalshift = finalshift-ptoff
+ call addstr(notexq(1:8)//'pt}',11,soutq,lsout)
+ if (ing .eq. ngs+nng(ig)-1) then
+c
+c Terminate beam if needed
+c
+ if (upg(ig)) then
+ call addstr(sq//'tbu0',5,soutq,lsout)
+ else
+ call addstr(sq//'tbl0',5,soutq,lsout)
+ end if
+c
+c Terminate after slur if needed
+c
+ if ((isgaft.or.iswaft) .and. slurg(ig)) then
+c if (iswaft) ndxslur = igetbits(ipl,4,23)
+ if (iswaft) ndxslur = igetbits(ipl,5,23)
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ call addstr(sq//'tslur',6,soutq,lsout)
+c
+c Print 11-ndxslur
+cc Print 23-ndxslur
+c
+ if (23-ndxslur .lt. 10) then
+ call addstr(chax(71-ndxslur)//noteq(1:lnoten),
+ * 1+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ call addstr('{2'//chax(61-ndxslur)//'}'
+ * //noteq(1:lnoten),4+lnoten,soutq,lsout)
+ else
+ call addstr('{1'//chax(51-ndxslur)//'}'
+ * //noteq(1:lnoten),4+lnoten,soutq,lsout)
+ end if
+c
+c Stop slur terminator after exit from this subroutine
+c
+ listslur = ibclr(listslur,ndxslur)
+ slurg(ig) = .false.
+ end if
+ end if
+c
+c Accidental if needed
+c
+ if (naccg(ing).gt.0) then
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ call accsym(naccg(ing),acsymq,lacc)
+ call addstr(sq//'big'//acsymq(1:lacc)
+ * //noteq(1:lnoten),4+lacc+lnoten,soutq,lsout)
+ end if
+c
+c Put in the (beamed) grace note
+c
+ call notefq(noteq,lnoten,nolevg(ing),ncm)
+ call addstr(sq//'zqb0'//noteq(1:lnoten),5+lnoten,
+ * soutq,lsout)
+127 continue
+c
+c Terminate the grace
+c
+c notexq = sq//'normalnotesize'//sq//'off{'
+c lnote = 20
+c notexq = '}'//sq//'off{'
+c lnote = 6
+ notexq = sq//'off{'
+ lnote = 5
+ ptoff = wheadpt*emgfac
+ if (iand(nacc,3).gt.0 .and. .not.btest(nacc,17))
+ * ptoff = ptoff+wheadpt*accfac
+ if (isgaft .and. .not.iswaft) then
+ notexq = notexq(1:5)//'-'
+ lnote = 6
+ ptoff = aftshft
+ end if
+ if (normsp) ptoff = finalshift
+ if (ptoff .lt. 9.95) then
+ write(notexq(lnote+1:lnote+3),'(f3.1)')ptoff
+ lnote = lnote+3
+ else if (ptoff .lt. 99.95) then
+ write(notexq(lnote+1:lnote+4),'(f4.1)')ptoff
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+5),'(f5.1)')ptoff
+ lnote = lnote+5
+ end if
+ call addstr(notexq(1:lnote)//'pt}',lnote+3,soutq,lsout)
+ if (isgaft.and..not.iswaft) call addstr(sq//'sk',3,soutq,lsout)
+ call addstr(sq//'resetsize',10,soutq,lsout)
+ end if
+ return
+ end
+ subroutine dopsslur(nolev,isdat1,isdat2,isdat3,isdat4,nsdat,ip,
+ * iv,kv,nv,beamon,ncm,soutq,lsout,ulq,islur,
+ * ipl,iornq,islhgt,tno,nacc)
+c
+c Called once per main note.
+c 12 May 2002 Create this subroutine to isolate postscript slurs/ties.
+c Always set \Nosluradjust\Notieadjust
+c
+ parameter (nm=24,mv=24576)
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ character*1 ulq,slurudq,udfq,udqq,chax
+ character*79 notexq
+ character*8 noteq
+ character*80 soutq
+ logical upslur,beamon,btest,stemup,iscrd,
+ * settie,fontslur,pstie,WrotePsslurDefaults
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+c
+c Bits in isdat1:
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 mod(ndxslur,16), set in doslur when slur is started, used on term.
+c 18 int(ndxslur/16), ditto. So this allows ndxslur>15.
+c
+c Bits in isdat2
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted flag
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+c
+c Bits in isdat3: Only used for slur endings
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c 14-21 tie level for use in LineBreakTies
+c 22-29 ncm for use in LineBreakTies
+c
+c Bits in isdat4 Only used for linebreak slurs
+c 0-5 Linebreak seg 1 voff 1-63 => -31...+31
+c 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3
+c 16-21 Linebreak seg 2 voff 1-63 => -31...+31
+c 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3
+c
+c In listslur bit ib is on if slur index ib is in use, ib=0-13.
+c ndxslur = slur index
+c Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note,
+c s-slur is blank (idcode=32), t-slur is idcode=1.
+c ivoff is user-defined shift or shift due to . or _ , or chord adjustment.
+c Ivoff will be set for ./_ only if no user-defined shift is specified.
+c If highest note has upslur, save slur height in islhgt in case
+c ornament must be moved.
+c
+ islhgt = 0
+ if (beamon) then
+ stemup = ulq .eq. 'u'
+ else if (nvmx(iv) .eq. 2) then
+ if (.not.btest(islur,30)) then
+c
+c Single note, 2 lines of music, stem direction not forced
+c
+ stemup = ivx .gt. nv
+ else
+ stemup = btest(islur,17)
+ end if
+ else
+ stemup = udqq(nolev,ncm,islur,nvmx(iv),ivx,nv) .eq. 'u'
+ end if
+ iscrd = btest(ipl,10)
+ if (ismidi) then
+ settie = .false.
+ dbltie = .false.
+ end if
+ do 1 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ if (iv .eq. igetbits(isdata,5,13) .and.
+ * ip .eq. igetbits(isdata,8,3) .and.
+ * kv .eq. igetbits(isdata,1,12)+1) then
+c
+c Since iv and kv match, ivx will be correct
+c
+ idcode = igetbits(isdata,7,19)
+ ivoff = igetbits(isdat2(isdat),6,6)-32
+ ihoff = igetbits(isdat2(isdat),7,12)-64
+ iupdn = 0
+ slurudq = 'd'
+ nolevs = igetbits(isdat2(isdat),7,19)
+ pstie = btest(isdat2(isdat),3) .or. idcode.eq.1
+ if (btest(isdata,11)) then
+c
+c Turnon
+c
+c if (nolevs.eq.0 .or. nolevs.gt.60) then
+cc
+cc Note was a rest, cannot start slur on rest.
+cc
+c print*
+c call printl('Cannot start slur on a rest')
+c call stop1()
+c nolevs = ncm+5
+c end if
+c
+c Get slur direction
+c
+ if (btest(isdata,26)) then
+c
+c Force slur direction
+c
+ if (btest(isdata,27)) slurudq = 'u'
+ else if (nvmx(iv) .eq. 1) then
+c
+c Only one voice per line
+c
+ if (.not.beamon) then
+c
+c Separate note.
+c
+ slurudq = udfq(nolev,ncm)
+ else
+c
+c In a beam
+c
+ if (ulq .ne. 'u') slurudq = 'u'
+ end if
+ if (iscrd) then
+ if (nolevs .gt. ncm) then
+ slurudq = 'u'
+ else
+ slurudq = 'd'
+ end if
+ end if
+ else
+c
+c Two voices per line. Get default
+c
+ if (ivx .gt. nv) slurudq = 'u'
+c
+c Upper voice of the two, so up slur
+c
+ end if
+c
+c Set level for slur starting on rest
+c
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+ if (slurudq .eq. 'u') then
+ nolevs = ncm+2
+ else
+ nolevs = ncm-2
+ end if
+ end if
+c
+c Save up/down-ness for use at termination
+c
+ if (slurudq .eq. 'u') isdata = ibset(isdata,27)
+c
+c End of section for setting slur direction, still in "Turnon" if-block.
+c
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+c
+c Must move the slur for _ or .
+c
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ ivoff = ivoff+ivoffinc
+ end if
+ end if
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You1 defined the twentyfifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You defined the twentyfifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Get index of next slur not in use, starting from 12 down
+c
+ ndxslur = log2(16777215-listslur)
+c write(*,'()')
+c write(*,'(2i4,2x,B24)')ivx,ndxslur,listslur
+c
+c Record slur index
+c
+ listslur = ibset(listslur,ndxslur)
+c write(*,'(10x,B24)')listslur
+c
+c Save for use on termination
+c
+c call setbits(isdata,4,28,ndxslur)
+c 080531 Allow >16 slurs
+ call setbits(isdata,4,28,mod(ndxslur,16))
+ call setbits(isdata,1,18,ndxslur/16)
+c
+c Shift for stem?
+c
+ if (stemup .and. slurudq.eq.'u' .and. tno.lt.63.) then
+ if (.not.pstie) then
+ ihoff = ihoff+8
+ else
+ ihoff = ihoff+2
+ end if
+ end if
+ if (iscrd) then
+c
+c Additional horiz shifts for h-shifted noteheads?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Slur start on left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ notexq = chax(92)
+ lnote = 1
+c
+c Check for local adjustment default changes
+c
+ if (btest(isdat2(isdat),26)) then
+ notexq = chax(92)//'sluradjust'//chax(92)
+ lnote = 12
+ else if (btest(isdat2(isdat),27)) then
+ notexq = chax(92)//'nosluradjust'//chax(92)
+ lnote = 14
+ else if (btest(isdat2(isdat),28)) then
+ notexq = chax(92)//'tieadjust'//chax(92)
+ lnote = 11
+ else if (btest(isdat2(isdat),29)) then
+ notexq = chax(92)//'notieadjust'//chax(92)
+ lnote = 13
+ end if
+ if (ihoff .eq. 0) then
+c
+c Write stuff for non-shifted start
+c
+ notexq = notexq(1:lnote)//'islur'//slurudq
+ lnote = lnote+6
+ else
+ notexq = notexq(1:lnote)//'is'//slurudq
+ lnote = lnote+3
+ end if
+c
+c Prepend postscript tie switch
+c
+ if (pstie) then
+ notexq = chax(92)//'tieforis'//slurudq//notexq(1:lnote)
+ lnote = lnote+10
+ end if
+ if (btest(isdat2(isdat),4)) then
+c
+c Dotted slur
+c
+c noteq = notexq
+c notexq = chax(92)//'dotted'//noteq
+ notexq = chax(92)//'dotted'//notexq(1:lnote)
+ lnote = lnote+7
+ end if
+c
+c Add slur index to string
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c
+c 5/25/08 Allow 24 slurs
+c
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+c
+c Add note name to string
+c
+c call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ islhgt = nolevs+iupdn+ivoff
+ call notefq(noteq,lnoten,islhgt,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+c
+c Store height and staff mid level for use with LineBreakTies
+c
+ call setbits(isdat3(isdat),8,14,islhgt)
+ call setbits(isdat3(isdat),8,22,ncm)
+c
+c Save height (for ornament and barnobox interference) if topmost slur is up
+c
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c Save height & idcode if top voice and slur start
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. islhgt.gt.is1n1) then
+ is1n1 = islhgt
+ is2n1 = idcode
+ end if
+ end if
+ if (ihoff .ne. 0.) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),'(f'//
+ * chax(48+lform)//'.1)') shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Zero out ip1 to avoid problems if slur goes to next input blk.
+c
+ call setbits(isdata,8,3,0)
+c
+c Set slur-on data for midi. Only treat null-index slurs and ps ties for now.
+c
+ if (ismidi .and. (idcode.eq.32 .or. idcode.eq.1)) then
+c levson(midchan(iv,kv)) = nolev
+ levson(midchan(iv,kv)) = nolevs
+ if (settie) dbltie = .true.
+c
+c Only way settie=T is if we just set a tie ending. So there's also a slur
+c start here, so set a flag telling addmidi not to zero out levson
+c
+ end if
+ else
+c
+c Slur is ending. Back thru list to find starting slur
+c
+ do 3 j = isdat-1 , 1 , -1
+ if (iv.eq.igetbits(isdat1(j),5,13) .and.
+ * kv.eq.igetbits(isdat1(j),1,12)+1) then
+ if (idcode .eq. igetbits(isdat1(j),7,19)) then
+ ndxslur = igetbits(isdat1(j),4,28)
+c
+c 080531 Allow >16 slurs
+c
+ * +16*igetbits(isdat1(j),1,18)
+ if (btest(isdat1(j),27)) slurudq = 'u'
+ go to 4
+ end if
+ end if
+3 continue
+ print*,'Bad place in doslur'
+ call stop1()
+4 continue
+c
+c Bugfix 070901 for slur ending on rest in 2-voice staff
+c
+c if (nolevs.eq.0 .or. nolevs.gt.60) then
+ if (nolevs.le.2 .or. nolevs.gt.60) then
+c
+c Ending is on a rest, reset nolevs to default starting height
+c
+ nolevs = igetbits(isdat2(j),7,19)
+ end if
+ if (btest(isdat3(isdat),0) .or. btest(isdat3(j),0)) then
+c
+c Deal with \curve or \midslur. isdat is ending, j is start.
+c
+ if (btest(isdat3(isdat),0)) then
+ imid = igetbits(isdat3(isdat),6,2)-32
+ else
+ imid = igetbits(isdat3(j),6,2)-32
+ end if
+c
+c Postscript slurs, and \midslur adjustment is needed. Invoke macro
+c (from pmx.tex) that redefines \tslur as r'qd. Tentative mapping:
+c Abs(imid) Postscript slur type
+c 1 f
+c 2-3 default
+c 4 h
+c 5 H
+c 6+ HH
+c
+ call addstr(chax(92)//'psforts'//
+ * chax(48+min(abs(imid),6)),9,soutq,lsout)
+ end if
+c
+c Shift slur ending for stem on any note?
+c
+ if (.not.stemup .and. slurudq.eq.'d' .and. tno.lt.63.) then
+ if (.not.pstie) then
+ ihoff = ihoff-8
+ else
+ ihoff = ihoff-3
+ end if
+ end if
+ if (iscrd) then
+c
+c Shift termination for shifted notehead?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c
+c Switch to postscript tie
+c
+ if (pstie) then
+ notexq = chax(92)//'tieforts'//notexq(1:lnote)
+ lnote = lnote+9
+ end if
+c
+c Print 13-ndxslur
+c 5/25/08 Allow 14 slurs
+c
+ if (23-ndxslur .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ end if
+ ivoff = ivoff+ivoffinc
+ end if
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c If topvoice, upslur, and idcode checks, no more need to keep hgt for barno.
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. is1n1.gt.0) then
+ if (idcode .eq. is2n1) is1n1=0
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihoff .ne. 0) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Clear the bit from list of slurs in use
+c
+ listslur = ibclr(listslur,ndxslur)
+c
+c Zero out the entire strings for start and stop
+c
+ isdata = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ isdat4(isdat) = 0
+ isdat1(j) = 0
+ isdat2(j) = 0
+ isdat3(j) = 0
+ isdat4(j) = 0
+c
+c Set midi info for slur ending
+c
+ if (ismidi .and. (idcode.eq.32 .or. idcode.eq.1)) then
+ icm = midchan(iv,kv)
+ if (slmon(icm)) then
+ if (nolevs.eq.levson(icm) .and. iand(7,nacc).eq.0) then
+c
+c There is a tie here. NB!!! assumed no accidental on 2nd member of tie.
+c
+ levsoff(icm) = nolevs
+ settie = .true.
+ else
+ levsoff(icm) = 0
+ levson(icm) = 0
+ slmon(icm) = .false.
+ end if
+ end if
+ end if
+ end if
+ isdat1(isdat) = isdata
+ end if
+1 continue
+c
+c Clear and collapse the slur data list
+c
+ numdrop = 0
+ do 2 isdat = 1 , nsdat
+ if (isdat1(isdat) .eq. 0) then
+ numdrop = numdrop+1
+ else if (numdrop .gt. 0) then
+ isdat1(isdat-numdrop) = isdat1(isdat)
+ isdat2(isdat-numdrop) = isdat2(isdat)
+ isdat3(isdat-numdrop) = isdat3(isdat)
+ isdat4(isdat-numdrop) = isdat4(isdat)
+ isdat1(isdat) = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ isdat4(isdat) = 0
+ end if
+2 continue
+ nsdat = nsdat-numdrop
+c call report(nsdat,isdat1,isdat2)
+ return
+ end
+ subroutine doslur(nolev,isdat1,isdat2,isdat3,nsdat,ip,iv,kv,nv,
+ * beamon,ncm,soutq,lsout,ulq,islur,ipl,iornq,islhgt,tno,nacc)
+c
+c Called once per main note. (5/26/02) for non-ps slurs only
+c
+ parameter (nm=24,mv=24576)
+ integer*4 isdat1(202),isdat2(202),isdat3(202)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ character*1 ulq,slurudq,udfq,udqq,chax
+ character*79 notexq
+ character*8 noteq
+ character*80 soutq
+ logical upslur,beamon,btest,stemup,iscrd,sfound,tfound,tmove,
+ * settie,fontslur,WrotePsslurDefaults
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+c
+c Bits in isdat1:
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 ndxslur, set in doslur when beam is started, used on term.
+c
+c Bits in isdat2
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted flag
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c
+c Bits in isdat3: Only used for slur endings
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c
+c In listslur bit ib is on if slur index ib is in use, ib=0-23.
+c ndxslur = slur index
+c Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note,
+c s-slur is blank (idcode=32), t-slur is idcode=1.
+c ivoff is user-defined shift or shift due to . or _ , or chord adjustment.
+c Ivoff will be set for ./_ only if no user-defined shift is specified.
+c If highest note has upslur, save slur height in islhgt in case
+c ornament must be moved.
+c
+ islhgt = 0
+ if (beamon) then
+ stemup = ulq .eq. 'u'
+ else if (nvmx(iv) .eq. 2) then
+ if (.not.btest(islur,30)) then
+c
+c Single note, 2 lines of music, stem direction not forced
+c
+ stemup = ivx .gt. nv
+ else
+ stemup = btest(islur,17)
+ end if
+ else
+ stemup = udqq(nolev,ncm,islur,nvmx(iv),ivx,nv) .eq. 'u'
+ end if
+ iscrd = btest(ipl,10)
+ if (btest(islur,1)) then
+c
+c 't'-slur (idcode=1) somewhere on this note. Find it, check height against
+c 's'-slur (idcode=32)
+c
+ sfound = .false.
+ tfound = .false.
+ tmove = .false.
+ do 5 isdat = 1 , nsdat
+ if (iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * ip .eq. igetbits(isdat1(isdat),8,3) .and.
+ * kv .eq. igetbits(isdat1(isdat),1,12)+1) then
+ if (.not.tfound) then
+ tfound = igetbits(isdat1(isdat),7,19).eq.1
+ if (tfound) then
+ nolevt = igetbits(isdat2(isdat),7,19)
+ isdatt = isdat
+ if (sfound) go to 6
+ end if
+ end if
+ if (.not.sfound) then
+ sfound = igetbits(isdat1(isdat),7,19).eq.32
+ if (sfound) then
+ nolevs = igetbits(isdat2(isdat),7,19)
+ isdats = isdat
+ if (tfound) go to 6
+ end if
+ end if
+ end if
+5 continue
+c
+c Will come thru here if there is a t with no s, so comment out the following
+c print*,'Did not find s+t-slurs in doslur'
+c
+6 continue
+ if (sfound .and. tfound)
+ * tmove = nolevs.eq.nolevt .and.
+c
+c Check if 2 starts or two stops
+c
+ * ((btest(isdat1(isdats),11).and.btest(isdat1(isdatt),11)) .or.
+ * (.not.btest(isdat1(isdats),11).and.
+ * .not.btest(isdat1(isdatt),11)) )
+c
+c This is a flag for later changing slur level, after we know slur dir'n.
+c
+ end if
+ if (ismidi) then
+ settie = .false.
+ dbltie = .false.
+ end if
+ do 1 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ if (iv .eq. igetbits(isdata,5,13) .and.
+ * ip .eq. igetbits(isdata,8,3) .and.
+ * kv .eq. igetbits(isdata,1,12)+1) then
+c
+c Since iv and kv match, ivx will be correct
+c
+ idcode = igetbits(isdata,7,19)
+ ivoff = igetbits(isdat2(isdat),6,6)-32
+ ihoff = igetbits(isdat2(isdat),7,12)-64
+ iupdn = 0
+ slurudq = 'd'
+ nolevs = igetbits(isdat2(isdat),7,19)
+ if (btest(isdata,11)) then
+c
+c Turnon,
+c
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+c
+c Note was a rest, cannot start slur on rest.
+c
+ print*
+ call printl('Cannot start slur on a rest')
+ call stop1()
+ end if
+c
+c Get slur direction
+c
+ if (btest(isdata,26)) then
+c
+c Force slur direction
+c
+ if (btest(isdata,27)) slurudq = 'u'
+ else if (nvmx(iv) .eq. 1) then
+c
+c Only one voice per line
+c
+ if (.not.beamon) then
+c
+c Separate note.
+c
+ slurudq = udfq(nolev,ncm)
+ else
+c
+c In a beam
+c
+ if (ulq .ne. 'u') slurudq = 'u'
+ end if
+ if (iscrd) then
+ if (nolevs .gt. ncm) then
+ slurudq = 'u'
+ else
+ slurudq = 'd'
+ end if
+ end if
+ else
+c
+c Two voices per line. Get default
+c
+ if (ivx .gt. nv) slurudq = 'u'
+c
+c Upper voice of the two, so up slur
+c
+ end if
+c
+c Save up/down-ness for use at termination
+c
+ if (slurudq .eq. 'u') isdata = ibset(isdata,27)
+c
+c End of section for setting slur direction, still in "Turnon" if-block.
+c
+ if (idcode.eq.1 .and. tmove) then
+ iupdn = 1
+ if (slurudq .eq. 'd') iupdn = -1
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+c
+c Must move the slur for _ or .
+c
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ ivoff = ivoff+ivoffinc
+ end if
+ end if
+ if (listslur .eq. 16777215) then
+ print*
+ print*,'You1 defined the twenty-fifth slur, one too many!'
+ write(15,'(/,a)')
+ * 'You2 defined the twenty-fifth slur, one too many!'
+ call stop1()
+ end if
+c
+c Get index of next slur not in use, starting from ? down
+c
+ ndxslur = log2(16777215-listslur)
+c
+c Record slur index
+c
+ listslur = ibset(listslur,ndxslur)
+c
+c Save for use on termination
+c
+c call setbits(isdata,4,28,ndxslur)
+c 080531 Allow >16 slurs
+ call setbits(isdata,4,28,mod(ndxslur,16))
+ call setbits(isdata,1,18,ndxslur/16)
+c
+c Shift for stem?
+c
+ if (stemup .and. slurudq.eq.'u' .and. tno.lt.63.)
+ * ihoff = ihoff+8
+ if (btest(isdat2(isdat),3)) then
+c
+c Tie spacing, (slur start)
+c
+ if (slurudq.eq.'d') then
+ ivoff = ivoff+1
+ ihoff = ihoff+8
+ else if (slurudq.eq.'u') then
+ ivoff = ivoff-1
+ if (.not.(stemup.and.tno.lt.63.)) ihoff = ihoff+8
+c
+c (already shifted if (stemup.and.tno.gt.63.) and slurudq='u')
+c
+ end if
+ end if
+ if (iscrd) then
+c
+c Additional horiz shifts for h-shifted noteheads?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Slur start on left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+c
+c Write stuff for non-shifted start
+c
+ notexq = chax(92)//'islur'//slurudq
+ lnote = 7
+ else
+ notexq = chax(92)//'is'//slurudq
+ lnote = 4
+ end if
+ if (btest(isdat2(isdat),4)) then
+c
+c Dotted slur
+c
+ noteq = notexq
+ notexq = chax(92)//'dotted'//noteq
+ lnote = lnote+7
+ end if
+c
+c Add slur index to string
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c
+c 5/25/08 Allow 24 slurs
+c
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+c
+c Add note name to string
+c
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+c
+c Save height (for ornament and barnobox interference) if topmost slur is up
+c
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c Save height & idcode if top voice and slur start
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. islhgt.gt.is1n1) then
+ is1n1 = islhgt
+ is2n1 = idcode
+ end if
+ end if
+ if (ihoff .ne. 0.) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),'(f'//
+ * chax(48+lform)//'.1)') shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Zero out ip1 to avoid problems if slur goes to next input blk.
+c
+ call setbits(isdata,8,3,0)
+c
+c Set slur-on data for midi. Only treat null-index slurs and ps ties for now.
+c
+ if (ismidi .and. idcode.eq.32) then
+ levson(midchan(iv,kv)) = nolevs
+ if (settie) dbltie = .true.
+c
+c Only way settie=T is if we just set a tie ending. So there's also a slur
+c start here, so set a flag telling addmidi not to zero out levson
+c
+ end if
+ else
+c
+c Slur is ending. Back thru list to find starting slur
+c
+ do 3 j = isdat-1 , 1 , -1
+ if (iv.eq.igetbits(isdat1(j),5,13) .and.
+ * kv.eq.igetbits(isdat1(j),1,12)+1) then
+ if (idcode .eq. igetbits(isdat1(j),7,19)) then
+ ndxslur = igetbits(isdat1(j),4,28)
+c
+c 080531 Allow >16 slurs
+c
+ * +16*igetbits(isdat1(j),1,18)
+ if (btest(isdat1(j),27)) slurudq = 'u'
+ go to 4
+ end if
+ end if
+3 continue
+ print*,'Bad place in doslur'
+ call stop1()
+4 continue
+ if (nolevs.eq.0 .or. nolevs.gt.60) then
+c
+c Ending is on a rest, reset nolevs to default starting height
+c
+ nolevs = igetbits(isdat2(j),7,19)
+ end if
+ if (btest(isdat3(isdat),0)) then
+c
+c Deal with \curve or \midslur
+c
+ imid = igetbits(isdat3(isdat),6,2)-32
+c
+c Remember, only dealing with non-ps slurs
+c
+c Who knows where the following line came from. Removed it 6/30/02 to
+c restore behavior of non-ps slurs to old way
+c if (slurudq .eq. 'd') imid = -imid
+c 3/8/03 added the following
+c
+ if (slurudq .eq. 'd') imid = -abs(imid)
+c
+ if (btest(isdat3(isdat),1)) then
+ notexq = chax(92)//'curve'
+ lnote = 6
+ else
+ notexq = chax(92)//'midslur'
+ lnote = 8
+ end if
+ if (imid.lt.0 .or. imid.gt.9) then
+c
+c Need brackets
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (imid .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')imid
+ lnote = lnote+3
+ else if (imid.lt.0 .or. imid.gt.9) then
+ write(notexq(lnote+1:lnote+2),'(i2)')imid
+ lnote = lnote+2
+ else
+ write(notexq(lnote+1:lnote+1),'(i1)')imid
+ lnote = lnote+1
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+c
+c 1=<imid=<9, no brackets
+c
+ notexq = notexq(1:lnote)//char(48+imid)
+ lnote = lnote+1
+ end if
+ if (btest(isdat3(isdat),1)) then
+c
+c \curve; 3 args
+c
+ notexq = notexq(1:lnote)
+ * //char(48+igetbits(isdat3(isdat),3,8))
+ notexq = notexq(1:lnote+1)
+ * //char(48+igetbits(isdat3(isdat),3,11))
+ lnote = lnote+2
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Shift slur ending for stem on any note?
+c
+ if (.not.stemup .and. slurudq.eq.'d' .and. tno.lt.63.)
+ * ihoff = ihoff-8
+ if (btest(isdat2(isdat),3)) then
+c
+c Shift ending for tie spacing
+c
+ if (slurudq .eq. 'u') then
+ ihoff = ihoff-8
+ ivoff = ivoff-1
+ else if (slurudq .eq. 'd') then
+ ivoff = ivoff+1
+ if (stemup.or. tno.gt.63.) ihoff = ihoff-8
+ end if
+ end if
+ if (iscrd) then
+c
+c Shift termination for shifted notehead?
+c
+ if (btest(isdat2(isdat),1)) then
+c
+c Left-shifted chord notehead. ASSUME downstem.
+c
+ if (nolevs.eq.minlev .and. slurudq.eq.'d') then
+ ihoff = ihoff-2
+ else
+ ihoff = ihoff-10
+ end if
+ else if (btest(isdat2(isdat),2)) then
+c
+c Right shifted chord notehead. ASSUME upstem.
+c
+ if (nolevs.eq.maxlev .and. slurudq.eq.'u') then
+ ihoff = ihoff+2
+ else
+ ihoff = ihoff+10
+ end if
+ end if
+ end if
+ if (ihoff .eq. 0) then
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c
+c Print 23-ndxslur
+c 5/25/08 Allow 14 slurs (???????????)
+c
+ if (23-ndxslur .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ if (btest(iornq,11).or.btest(iornq,12)) then
+c
+c Raise or lower slur by one unit provided . or _ is on same side as slur
+c
+ ivoffinc = 0
+ if ((stemup .and. slurudq.eq.'d') .or.
+ * (.not.stemup .and. slurudq.eq.'u')) then
+ if (stemup) then
+ ivoffinc = -1
+ else
+ ivoffinc = 1
+ end if
+ if (((stemup .and. nolev.ge.ncm-2) .or.
+ * (.not.stemup .and. nolev.le.ncm+2)) .and.
+ * mod(abs(ncm-nolev),2).eq.0) ivoffinc = 2*ivoffinc
+ end if
+ ivoff = ivoff+ivoffinc
+ end if
+ if (idcode.eq.1 .and. tmove) then
+c
+c t-slur height adjustment
+c
+ iupdn = 1
+ if (slurudq .eq. 'd') iupdn = -1
+ end if
+ call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm)
+ if (slurudq.eq.'u' .and.
+ * (.not.btest(isdat2(isdat),0).or.nolevs.eq.maxlev)) then
+ islhgt = nolevs+iupdn+ivoff
+c
+c If topvoice, upslur, and idcode checks, no more need to keep hgt for barno.
+c
+ if (ivx.eq.ivmx(nv,nvmx(nv)) .and. is1n1.gt.0) then
+ if (idcode .eq. is2n1) is1n1=0
+ end if
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (ihoff .ne. 0) then
+ shift = ihoff*0.1
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ lform = lfmt1(shift)
+ write(notexq(lnote+1:lnote+lform),
+ * '(f'//chax(48+lform)//'.1)')shift
+ lnote = lnote+lform
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+c
+c Clear the bit from list of slurs in use
+c
+ listslur = ibclr(listslur,ndxslur)
+c
+c Zero out the entire strings for start and stop
+c
+ isdata = 0
+ isdat2(isdat) = 0
+ isdat1(j) = 0
+ isdat2(j) = 0
+ isdat3(isdat) = 0
+c
+c Set midi info for slur ending
+c
+ if (ismidi .and. idcode.eq.32) then
+ icm = midchan(iv,kv)
+ if (slmon(icm)) then
+ if (nolevs.eq.levson(icm) .and. iand(7,nacc).eq.0) then
+c
+c There is a tie here. NB!!! assumed no accidental on 2nd member of tie.
+c
+ levsoff(icm) = nolevs
+ settie = .true.
+ else
+ levsoff(icm) = 0
+ levson(icm) = 0
+ slmon(icm) = .false.
+ end if
+ end if
+ end if
+ end if
+ isdat1(isdat) = isdata
+ end if
+1 continue
+c
+c Clear and collapse the slur data list
+c
+ numdrop = 0
+ do 2 isdat = 1 , nsdat
+ if (isdat1(isdat) .eq. 0) then
+ numdrop = numdrop+1
+ else if (numdrop .gt. 0) then
+ isdat1(isdat-numdrop) = isdat1(isdat)
+ isdat2(isdat-numdrop) = isdat2(isdat)
+ isdat3(isdat-numdrop) = isdat3(isdat)
+ isdat1(isdat) = 0
+ isdat2(isdat) = 0
+ isdat3(isdat) = 0
+ end if
+2 continue
+ nsdat = nsdat-numdrop
+c call report(nsdat,isdat1,isdat2)
+ return
+ end
+ subroutine dotmov(updot,rtdot,soutq,lsout,iddot)
+c
+c iddot = 0 for single dot, 1 for double
+c
+ character*80 soutq,notexq
+ character*1 sq,chax
+ sq = chax(92)
+ lfmtup = lfmt1(updot)
+ lfmtrt = lfmt1(rtdot)
+ write(notexq,'(a37,f'//chax(48+lfmtup)//'.1,a2,f'//chax(48+lfmtrt)
+ * //'.1,a15)')
+ * sq//'makeatletter'//sq//'def'//sq//'C@Point#1#2{'//sq//
+ * 'PMXpt{',updot,'}{',rtdot,'}'//chax(48+iddot)//'}'//sq
+ * //'makeatother'
+c
+c Example of string just created:
+c \makeatletter\def\C@Point#1#2{\PMXpt{.5}{.5}}\makeatother\
+c
+ lnote = 54+lfmtup+lfmtrt
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+ return
+ end
+ subroutine dotrill(iv,ip,iornq,noteq,lnoten,notexq,lnote)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*1 chax
+ character*8 noteq
+ character*79 notexq
+ logical tronly,btest
+ do 1 itr = 1 , ntrill
+ if (iv.eq.ivtrill(itr) .and. ip.eq.iptrill(itr)) go to 2
+1 continue
+ print*,'Problem in dotrill. Call Dr. Don'
+ stop
+2 continue
+ tronly = xnsktr(itr) .lt. 0.01
+ if (tronly) then
+ notexq = chax(92)//'zcharnote'
+ lnote = 10
+ else if (btest(iornq,7)) then
+ notexq = chax(92)//'Trille'
+ lnote = 7
+ else
+ notexq = chax(92)//'trille'
+ lnote = 7
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)//'{'
+ lnote = lnote+lnoten+1
+c
+c Write trill duration to nearest tenth of a noteskip
+c
+ if (tronly) then
+ notexq = notexq(1:lnote)//chax(92)//'it tr}'
+ lnote = lnote+7
+ return
+ end if
+ if (xnsktr(itr) .lt. .95) then
+ nfmt = 2
+ else if (xnsktr(itr) .lt. 9.95) then
+ nfmt = 3
+ else
+ nfmt = 4
+ end if
+ write(notexq(lnote+1:lnote+nfmt),'(f'//chax(48+nfmt)//'.1)')
+ * xnsktr(itr)
+ lnote = lnote+nfmt
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ return
+ end
+ subroutine endslur(stemup,upslur,nolev,iupdn,ndxslur,ivoff,ncm,
+ * soutq,lsout,fontslur)
+c
+c Only called to end slur started in dograce.
+c
+ logical shift,stemup,upslur,fontslur
+ character*80 soutq
+ character*79 notexq
+ character*8 noteq
+ character*1 chax
+ shift = .not.stemup .and. .not.upslur
+ if (.not.shift) then
+c
+c No shift needed
+c
+ notexq = chax(92)//'tslur'
+ lnote = 6
+ else
+c
+c Shift needed
+c
+ notexq = chax(92)//'ts'
+ lnote = 3
+ end if
+c if (ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(48+ndxslur)
+c lnote = lnote+1
+c else
+c notexq = notexq(1:lnote)//'{1'//chax(38+ndxslur)//'}'
+c lnote = lnote+4
+c end if
+c
+cc Print 11-ndxslur
+c Print 23-ndxslur
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndxslur)
+ notexq = notexq(1:lnote)//chax(71-ndxslur)
+ lnote = lnote+1
+ else if (23-ndxslur .lt. 20) then
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}'
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndxslur)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndxslur)//'}'
+ lnote = lnote+4
+ end if
+ call notefq(noteq,lnoten,nolev+iupdn+ivoff,ncm)
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ if (shift) then
+ if (fontslur) then
+ notexq = notexq(1:lnote)//'{-.6}'
+ else
+ notexq = notexq(1:lnote)//'{-.8}'
+ end if
+ lnote = lnote+5
+ end if
+ call addstr(notexq,lnote,soutq,lsout)
+ return
+ end
+ subroutine errmsg(lineq,iccount,ibarno,msgq)
+ parameter(nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,fbon,issegno,isheadr,isvolt
+ character*128 lineq
+ character*78 outq
+ character*(*) msgq
+ character*1 chax
+ common /truelinecount/ linewcom(20000)
+ if (iccount .le. 78) then
+ outq = lineq(1:78)
+ iposn = iccount
+ else
+ outq = '... '//lineq(55:128)
+ iposn = iccount-50
+ end if
+ print*
+ ibarnop = ibarno
+ if (linesinpmxmod.eq.0 .or.
+ * nline .gt. line1pmxmod+linesinpmxmod) then
+c
+c Error is in main .pmx file
+c
+c nlinep = nline-linesinpmxmod
+c Correct for comments not copied into buffer
+ nlinep = linewcom(nline)-linesinpmxmod
+ else
+c
+c Error is in include file
+c
+ ibarnop = 0
+ nlinep = nline-line1pmxmod+1
+ call printl(
+ * 'ERROR in include file named above, description given below')
+ end if
+ open(19,file='pmxaerr.dat')
+ write(19,'(i6)') nlinep
+ close(19)
+ ndigbn = max(1,int(log10(ibarnop+.1)+1))
+ ndignl = int(log10(nlinep+.1)+1)
+ lenmsg = index(msgq,'!')-1
+c
+c Split off msgq(..) since UNIX compilers don't allow concat substring!!!
+c
+ write(*,'(/,a15,i'//chax(48+ndignl)//',a6,i'//chax(48+ndigbn)//
+ *',$)')' ERROR in line ',nlinep,', bar ',ibarnop
+ write(*,'(1x,a)')msgq(1:lenmsg)
+ write(15,'(/,a15,i'//chax(48+ndignl)//',a6,i'//chax(48+ndigbn)//
+ *',$)')' ERROR in line ',nlinep,', bar ',ibarnop
+ write(15,'(a)')msgq(1:lenmsg)
+ i10 = iposn/10
+ i1 = iposn-10*i10
+ write(*,'('//chax(48+i10)//chax(48+i1)//'x,a)')'v'
+ write(15,'('//chax(48+i10)//chax(48+i1)//'x,a)')'v'
+ print*,outq(1:78)
+ write(15,'(a)')' '//outq(1:78)
+ write(*,'('//chax(48+i10)//chax(48+i1)//'x,a)')'^'
+ write(15,'('//chax(48+i10)//chax(48+i1)//'x,a)')'^'
+ return
+ end
+ subroutine eskb4(ip,ivx,in,ib,space,tstart,fbar,itrpt,esk)
+c
+c Get elemskips to previous note. Called only for graces, no xtups involved.
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ real*4 tstart(80),space(80)
+ common /comtol/ tol
+ itnd = nint(to(in))
+ if (ip.eq.1 .or. itnd.eq.itrpt) then
+c
+c Start of bar or after rpt.
+c
+ esk = fbar
+ return
+ else
+ esk = 0.
+ itprev = itnd-nodur(ivx,ip-1)
+ do 1 iib = ib , 1 , -1
+ if (tstart(iib) .lt. itprev+tol) then
+c
+c This is the block
+c
+ nnsk = nint(float((itnd-itprev))/space(iib))
+ esk = esk+nnsk*feon(space(iib))
+ return
+ else
+ nnsk = nint((itnd-tstart(iib))/space(iib))
+ esk = esk+nnsk*feon(space(iib))
+ itnd = nint(tstart(iib))
+ end if
+1 continue
+ end if
+ print*,'Problem in eskb4. Send files to Dr. Don'
+ stop
+ end
+ function f1eon(time)
+ f1eon = sqrt(time/2)
+ return
+ end
+ function feon(time)
+ common /comeon/ eonk,ewmxk
+ feon = sqrt(time/2)**(1.-eonk)*ewmxk
+ return
+ end
+ subroutine findbeam(ibmrep,numbms,mapfb)
+c
+c Called once per voice per bar, after setting forced beams.
+c
+ parameter (nm=24)
+ dimension mask(49,3),nummask(3),eqonly(49,3)
+c integer numbms(nm),ipr(48),nip1(0:47),nip2(0:47),mapfb(16),
+c * itr(48),nodue(48)
+c logical short(48),eqonly
+ integer numbms(nm),ipr(248),nip1(0:247),nip2(0:247),mapfb(16),
+ * itr(248),nodue(248)
+ logical short(248),eqonly
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ common /combeam/ ibmtyp
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,btest
+ data nip1,nip2 /496*0/
+ data nummask / 29 , 49 , 12 /
+ data mask
+ * / 65535, 4095, 65520, 255, 65280, 63,
+ * 252, 16128, 64512, 15, 240, 3840,
+ * 61440, 7, 14, 112, 224, 1792,
+ * 3584, 28672, 57344, 3, 12, 48,
+ * 192, 768, 3072, 12288, 49152, 20*0 ,
+ * 16777215, 65535, 16776960, 4095, 65520, 1048320,
+ * 16773120, 255, 65280, 16711680, 63, 252,
+ * 16128, 64512, 4128768, 16515072, 15, 60,
+ * 240, 3840, 15360, 61440, 983040, 3932160,
+ * 15728640, 7, 14, 112, 224, 1792,
+ * 3584, 28672, 57344, 458752, 917504, 7340032,
+ * 14680064, 3, 12, 48, 192, 768,
+ * 3072, 12288, 49152, 196608, 786432, 3145728,
+ * 12582912,
+ * 4095, 255, 4080, 15, 240, 3840,
+ * 3, 12, 48, 192, 768, 3072,
+ * 37*0 /
+ data eqonly /3*.true.,46*.false.,7*.true.,91*.false./
+ ip = 0
+ nreal = 0
+ itnow = 0
+1 continue
+ ip = ip+1
+ if (ip .gt. nn(ivx)) go to 9
+11 if (nodur(ivx,ip).eq.0) then
+c
+c Ignore all xtup notes except the last, the one with nodur > 0 .
+c Xtups are irrelevant here since they are already all in forced beams.
+c Will update itnow by nodur at the END of this loop
+c
+ ip = ip+1
+ go to 11
+ end if
+ nreal = nreal+1
+ nodue(nreal) = nodur(ivx,ip)
+ short(nreal) = nodue(nreal).lt.16 .and.
+ * .not.btest(irest(ivx,ip),0)
+c
+c Rule out notes that have 'alone'-flag set
+c
+ * .and..not.btest(islur(ivx,ip),18)
+ ipr(nreal) = ip
+ itr(nreal) = itnow
+ if (nodue(nreal) .eq. 1) then
+c
+c 64th gap
+c
+ if (mod(itnow,2) .eq. 0) then
+c
+c Start of 32nd gap, lump with following note
+c
+ ip = ip+1
+ nodue(nreal) = 1+nodur(ivx,ip)
+ itnow = itnow+nodue(nreal)
+ else
+c
+c End of 32nd gap, lump with preceeding note
+c
+ nreal = nreal-1
+ nodue(nreal) = 1+nodue(nreal)
+ itnow = itnow+1
+ end if
+ else
+ itnow = itnow+nodur(ivx,ip)
+ end if
+ go to 1
+9 continue
+ ir1 = 1
+ itseg = lenbar/ibmrep
+ do 13 irep = 1 , ibmrep
+c
+c Set bitmaps for all shorts neighbored by a short. Each bit represents a
+c span of 32nd note. maps, mapm, mape record start, full duration, and end
+c of consecutive span of beamable (<1/4) notes.
+c
+ maps = 0
+ mapm = 0
+ mape = 0
+ itend = itseg*irep
+ itoff = itend-itseg
+ do 2 ir = ir1 , nreal
+ it2 = itr(ir)+nodue(ir)-2
+ if (it2 .ge. itend) then
+ ir1 = ir
+ go to 14
+ end if
+c if (short(ir).and.((ir.gt.1.and.short(ir-1)).or.(ir.lt.nreal
+ if (short(ir).and.((ir.gt.1.and.short(max(ir-1,1))).or.
+ * (ir.lt.nreal.and.short(ir+1)))) then
+ ib1 = (itr(ir)-itoff)/2
+ ib2 = (it2-itoff)/2
+ if (max(ib1,ib2).gt.47 .or. ir.gt.48 .or.
+ * min(ib1,ib2).lt.0) return
+c
+c Must have an odd number obe beats in a long bar. Auto-beam won't work
+c
+ nip1(ib1) = ipr(ir)
+ nip2(ib2) = ipr(ir)
+c
+c nip1,2(ib) = 0 unless a real note starts,ends on bit ib; then = ip
+c
+ maps = ibset(maps,ib1)
+ mape = ibset(mape,ib2)
+ do 3 ib = ib1 , ib2
+ mapm = ibset(mapm,ib)
+3 continue
+ end if
+2 continue
+14 continue
+ if (mapm .eq. 0) go to 13
+c
+c Zero out bits from forced beams
+c
+ maps = iand(maps,not(mapfb(irep)))
+ mapm = iand(mapm,not(mapfb(irep)))
+ mape = iand(mape,not(mapfb(irep)))
+c
+c Compare map with template.
+c
+ do 4 it = 1 , nummask(ibmtyp)
+ masknow = mask(it,ibmtyp)
+ if (iand(masknow,mapm) .eq. masknow) then
+c
+c Find least significant bit in the mask to check start time
+c
+ mtemp = masknow
+ maskm = masknow
+ do 5 is1 = 0 , 47
+ if (iand(1,mtemp) .eq. 1) go to 6
+ mtemp = ishft(mtemp,-1)
+5 continue
+6 continue
+ if (iand(ishft(1,is1),maps) .eq. 0) go to 4
+c
+c is1 is the bit where the beam starts. Continue shifting to
+c find most significant bit in the mask to check ending time
+c
+ do 7 is2 = is1 , 47
+ mtemp = ishft(mtemp,-1)
+ if (iand(1,not(mtemp)) .eq. 1) go to 8
+7 continue
+8 continue
+c
+c is2 is now the bit on which the beam ends.
+c
+ if (iand(ishft(1,is2),mape) .eq. 0) go to 4
+c
+c Did we pick out a single note from the middle of a longer sequence?
+c
+ if (nip1(is1) .eq. nip2(is2)) go to 4
+c
+c We almost have a beam. Check equality of notes if needed.
+c
+ if (eqonly(it,ibmtyp)) then
+ do 10 ip = nip1(is1) , nip2(is2)
+ if (nodur(ivx,ip) .ne. 8) then
+c
+c There is a non-1/8th note in this beam. Exit if not 2 quarters
+c
+ if (is2-is1 .ne. 15) go to 4
+c
+c Beam is 2 quarters long. Check if can split in half.
+c
+ ithalf = 0
+ do 20 iip = nip1(is1) , nip2(is2)
+ ithalf = ithalf+nodur(ivx,iip)
+ if (ithalf .gt. 16) go to 4
+ if (ithalf .eq. 16) go to 21
+20 continue
+ print*,'Problem in findbeam, please call Dr. Don'
+ go to 4
+21 continue
+c
+c Otherwise, split in half by keeping only the first half. Other half will
+c be picked up later, assuming masks are listed longest first.
+c
+ is2 = is1+7
+c
+c Reset maskm (since only used part of mask), used later to zero out
+c bits that contain beams
+c
+ maskm = 0
+ do 15 is = is1 , is2
+ maskm = ibset(maskm,is)
+15 continue
+ go to 16
+ end if
+10 continue
+ end if
+16 continue
+c
+c This is a beam. If last "effective" ends on odd 64th, add 1 more
+c
+c if (abs(mod(to(iand(255,ipl(ivx,nip2(is2))))
+c * +nodur(ivx,nip2(is2)),2.)) .gt. tol) then
+ if (abs(amod(to(ipl2(ivx,nip2(is2)))
+ * +nodur(ivx,nip2(is2))+.5*tol,2.)) .gt. tol) then
+ nip2(is2) = nip2(is2)+1
+ end if
+ numbms(ivx) = numbms(ivx)+1
+ numnew = numbms(ivx)
+ call logbeam(numnew,nip1(is1),nip2(is2))
+c
+c Zero out the appropriate bits so these notes don't get used again
+c
+ mapm = iand(mapm,not(maskm))
+ if (mapm.eq.0) go to 13
+ maps = iand(maps,not(maskm))
+ mape = iand(mape,not(maskm))
+ end if
+4 continue
+13 continue
+ return
+ end
+ subroutine findeonk(nptr1,nptr2,wovera,xelsk,dtmin,dtmax,eonk0)
+ parameter (nkb=3999,maxblks=4000)
+c
+c Compute an exponent eonk for use in the "flattened" formula for elemskips
+c vs time. We must solve the eqution f = 0. Initial quess is eonk0.
+c
+ logical gotclef
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /comtol/ tol
+ common /comeon/ eonk,ewmxk
+ eonk = eonk0
+ niter = 0
+1 continue
+ ewmxk = f1eon(dtmax)**eonk
+ niter = niter+1
+ esum = 0.
+ desum = 0.
+ do 2 iptr = nptr1 , nptr2
+ targ = durb(iptr)/sqzb(iptr)
+ esum = esum+nnpd(iptr)*sqzb(iptr)*feon(targ)
+ detarg = sqrt(targ/2*(dtmax/targ)**eonk)*alog(dtmax/targ)
+ desum = desum+nnpd(iptr)*sqzb(iptr)*detarg
+2 continue
+ f = wovera*feon(dtmin)-xelsk-esum
+ fp = wovera*sqrt(dtmin/2*(dtmax/dtmin)**eonk)*alog(dtmax/dtmin)
+ * -desum
+ if (abs(fp).lt.tol .or. abs(eonk-.5).gt..5 .or. niter.gt.100) then
+ call printl(
+ * 'Error in findeonk. Please send source to Dr. Don')
+ eonk = 0.
+ ewmxk = 1.
+ return
+ end if
+ dsoln = -f/fp
+ if (abs(dsoln) .lt. .1*tol) return
+c
+c Not converged yet, try again
+c
+ eonk = eonk+dsoln
+ go to 1
+ end
+ function fnote(nodur,ivx,ip,nacc)
+c
+c This return the real duration of a note
+c
+ parameter (nm=24)
+ integer*4 nodur(nm,200),nacc(nm,200)
+ logical btest
+ ipback = ip
+ if (nodur(ivx,ip) .gt. 0) then
+ if (ip .gt. 1) then
+c
+c Check if this is last note of xtup
+c
+ if (nodur(ivx,ip-1).eq.0) then
+ ipback = ip-1
+ go to 2
+ end if
+ end if
+ fnote = nodur(ivx,ip)
+ return
+ end if
+2 continue
+c
+c Count back to prior non zero note. Start at ip to avoid neg index if ip=1.
+c Count how many doubled xtups notes there are from ip-1 to first note.
+c
+ ndoub = 0
+ do 1 ip1m1 = ipback , 1 , -1
+ if (nodur(ivx,ip1m1) .gt. 0) go to 4
+ if (ip1m1.lt.ip .and. btest(nacc(ivx,ip1m1),18)) ndoub=ndoub+1
+1 continue
+4 continue
+c
+c count forward to next non-0 nodur. Start at ip in case last note of xtup.
+c
+ do 3 iip = ip , 200
+c
+c Count doubled xtup notes from ip to end.
+c
+ if (btest(nacc(ivx,iip),18)) ndoub = ndoub+1
+ if (nodur(ivx,iip) .gt. 0) then
+c fnote = nodur(ivx,iip)/float(iip-ip1m1)
+ fnote = nodur(ivx,iip)/float(iip-ip1m1+ndoub)
+ if (btest(nacc(ivx,ip),18)) then
+ fnote = 2*fnote
+ else if (btest(nacc(ivx,ip),27)) then
+ fnote = 1.5*fnote
+ else if (ip .gt. 1) then
+ if (btest(nacc(ivx,ip-1),27)) fnote = .5*fnote
+ end if
+ return
+ end if
+3 continue
+ print*,' '
+ call printl
+ * ('Probable misplaced barline or incorrect meter, stopping')
+c call printl('Program error in fnote, send source to Dr. Don')
+ call stop1()
+ end
+ subroutine g1etchar(lineq,iccount,charq)
+ parameter(nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,issegno,isheadr,isvolt,fbon
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ character*1 charq
+ character*128 lineq,lnholdq
+c
+c Gets the next character out of lineq*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount. Ends program if no more input.
+c
+ if (iccount .eq. 128) then
+ call read10(lineq,lastchar)
+ if (lastchar) return
+ if (.not.endmac) then
+ iccount = 0
+ if (.not.mplay) nline = nline+1
+ else
+ endmac = .false.
+ iccount = icchold
+ lineq = lnholdq
+ end if
+ if (mrecord) then
+ call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ end if
+ end if
+ iccount = iccount+1
+ charq = lineq(iccount:iccount)
+ return
+ end
+ subroutine g1etnote(loop,ifig,optimize,fulltrans)
+ parameter (nm=24,nkb=3999,mv=24576,maxblks=4000)
+ character*1 chax
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * nbars,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ common /compage/ widthpt,ptheight,hoffpt,voffpt,
+ * nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idsig,isig1,
+ * mbrestsav,kchmid(18),ornrpt,shifton,barend,noinst,stickyS
+ logical lastchar,firstline,rest,loop,newmeter,fbon,issegno,barend,
+ * isheadr,fulbrp,usefig,isvolt,iskchb,kchmid,plusmin,ornrpt,
+ * stickyS
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /commus/ musize,whead20
+ logical mrecord,mplay,endmac,shifton,gotclef,optimize
+ character*128 lineq,lnholdq
+ character*1 charq,dotq,dumq,durq,charlq
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,cdot
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ logical novshrinktop,upslur,fontslur,ztrans,
+ * WrotePsslurDefaults,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ character*51 literq(3)
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ logical fulltrans
+ common /comsize/ isize(nm)
+ data literq
+ * /'Literal TeX string cannot start with 4 backslashes!',
+ * 'TeX string must have <129 char, end with backslash!',
+ * 'Type 2 or 3 TeX string can only start in column 1!'/
+ cdot = .false.
+1 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') charlq = charq
+ if (lastchar) then
+ if (index('/%',charlq) .eq. 0) then
+ print*
+ print*,'WARNING:'
+ print*,'Last non-blank character is "',charlq,'", not "/,%"'
+ print*,'ASCII code:',ichar(charlq)
+ write(15,'(/a)')'Last non-blank character is "'//charlq//
+ * '", not "/,%"'
+ write(15,'(a11,2x,i3)')'ASCII code:',ichar(charlq)
+c
+c Append " /" to last line. NB lastchar=.true. => ilbuf=nlbuf+1.
+c
+ ilbuf = ilbuf-1
+ lbuf(ilbuf) = lbuf(ilbuf)+2
+ bufq = bufq(1:ipbuf)//' /'
+ write(15,*)'appending <blank>/'
+ print*,'appending <blank>/'
+ lineq = lineq(1:iccount)//' /'
+ lastchar = .false.
+ go to 1
+ end if
+ return
+ end if
+ if (charq .eq. ' ') then
+ go to 1
+ else if (charq.eq.'%' .and. iccount.eq.1) then
+ iccount = 128
+ go to 1
+c
+c Replacement 1/22/12 since gfortran 4.7 with -O was choking here!
+c
+c else if ((ichar(charq).ge.97.and.ichar(charq).le.103) .or.
+ else if (index('abcdefg',charq).gt.0 .or.
+ * charq.eq.'r') then
+c
+c This is a note/rest. gotclef is only used for checking for clef before "/"
+c
+ if (cdot) go to 28
+ if (gotclef) gotclef=.false.
+ idotform = 0
+ numnum = 0
+ plusmin = .false.
+28 nnl(ivx) = nnl(ivx)+1
+ if (nnl(ivx) .gt. 200) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '>200 notes in line of music. Use smaller blocks!')
+ call stop1()
+ end if
+ dotq = 'x'
+c
+c Check if this is 'r ' and previous note was full-bar-pause
+c
+ fulbrp = charq.eq.'r' .and. lineq(iccount+1:iccount+1) .eq.' '
+ * .and. nnl(ivx).gt.1 .and. rest(ivx,max(1,nnl(ivx)-1)) .and.
+ * nodur(ivx,max(1,nnl(ivx)-1)) .eq. lenbar
+2 call g1etchar(lineq,iccount,durq)
+ ic = ichar(durq)
+ if (ic.le.57 .and. ic.ge.48) then
+c
+c Digit
+c
+ if (numnum .eq. 0) then
+ nnodur = ic-48
+ numnum = 1
+ go to 2
+ else if (numnum .eq. 1) then
+ if (charq .eq. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one digit allowed after rest symbol "r"!')
+ call stop1()
+ end if
+ numnum = 2
+ if (plusmin) then
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Before version 1.2, +/- was ignored if octave was!')
+ print*,
+ * 'explicitly specified. May need to edit old editions'
+ end if
+ go to 2
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '>2 digits in note symbol!')
+ call stop1()
+ end if
+ else if (durq.eq.'d') then
+ dotq = durq
+ if (lineq(iccount+1:iccount+1) .eq. 'd') then
+ iddot = 1
+ iccount = iccount+1
+c
+c Since we flow out, double dots won't work with other dot options
+c
+ end if
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, provided a number follows.
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789-.',durq) .eq. 0) then
+c
+c Backup, exit the loop normally
+c
+ iccount = iccount-2
+ go to 2
+ end if
+ call readnum(lineq,iccount,dumq,fnum)
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift also
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789-.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected number after 2nd +/- (shift dot)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (index('<>',durq) .gt. 0) then
+c
+c Accidental shift
+c
+c if (index('fsn',lineq(iccount-1:iccount-1)) .eq. 0) then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+c * 'Expected "f", "s", or "n" before "<" or ">"!')
+ * 'Expected "f", "s", "n" or "A" before "<" or ">"!')
+ call stop1()
+ end if
+ ipm = 1
+ if (durq .eq. '<') ipm=-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789.0',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected number after </> (accidental shift)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ fnum = ipm*fnum
+ if (fnum.lt.-5.35 .or. fnum.gt.1.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Horizontal accidental shift must be >-5.35 and <1.0!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 2
+ else if (index('+-',durq) .gt. 0) then
+ if (charq .ne. 'r') then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .gt. 0) then
+ ipm = 1
+ if (durq .eq. '-') ipm=-1
+ if (index('0123456789',lineq(iccount+1:iccount+1))
+ * .gt.0) then
+c
+c This may be start of accidental shift, but may be octave jump; then duration
+c
+ icsav = iccount
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (index('+-',durq) .gt. 0) then
+c
+c This is an accid shift since there's a 2nd consecutive signed number.
+c Check size of 1st number.
+c
+ if (fnum .gt. 30.5) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical accidental shift must be less than 31!')
+ call stop1()
+ end if
+ ipm = 1
+ if (durq .eq. '-') ipm = -1
+ call g1etchar(lineq,iccount,durq)
+ if (index('1234567890.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected 2nd number of accidental shift)!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ fnum = ipm*fnum
+ if (fnum.lt.-5.35 .or. fnum.gt.1.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Horiz. accidental shift must be >-5.35 and <1.0!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 2
+ else
+c
+c Not accid shift, reset, then flow out
+c
+ iccount = icsav
+ end if
+ end if
+ end if
+ plusmin = .true.
+ if (numnum .eq. 2) then
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Before version 1.2, +/- was ignored if octave was!')
+ print*,
+ * 'explicitly specified. May need to edit old editions'
+ end if
+ go to 2
+c
+c It's a rest containing +|- . Must refer to a vertical shift. Read past.
+c
+ else
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,dum)
+ iccount = iccount-1
+ go to 2
+ end if
+c else if (index('ulare',durq) .gt. 0) then
+ else if (index('ularec',durq) .gt. 0) then
+ go to 2
+ else if (durq .eq. 'S') then
+c
+c Stemlength change
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('.0123456789:',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a number or colon here!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+ if (.not.stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off sticky stemshrinks without turning on!')
+ call stop1()
+ end if
+ stickyS = .false.
+ go to 2
+ end if
+ call readnum(lineq,iccount,durq,dum)
+ if (dum.lt..5 .or. dum.gt.4.) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Stemlength shortening must be from .5 to 4!')
+ call stop1()
+ end if
+ if (durq .ne. ':') then
+ iccount = iccount-1
+ else
+ if (stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on sticky stemshrinks when already on!')
+ call stop1()
+ end if
+ stickyS = .true.
+ end if
+ go to 2
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Check for midi-only accid. CANNOT coesist with accidental position tweaks, so
+c MUST come right after "f,s,n"
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 2
+ else if (durq .eq. 'p') then
+ fulbrp = charq.eq.'r'
+ if (.not. fulbrp) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'The option "p" only works with "r" (rest)!')
+ call stop1()
+ end if
+ go to 2
+ else if (durq .eq. 'b') then
+ if (charq .ne. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You entered "b"; I expected "rb"!')
+ call stop1()
+ else if (numnum .eq. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You entered "r" & "b" with two numbers!')
+ end if
+ go to 2
+ else if (durq .eq. 'x') then
+c
+c Xtuplet. Count number of doubled notes (for unequal xtups)
+c
+ if (btest(nacc(ivx,nnl(ivx)),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+c
+c Will set all durations to 0 except last one.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'First char after "x" in xtuplet must be "1"-"9"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (fnum .gt. 99) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Xtuplet cannot have more than 99 notes!')
+ call stop1()
+ else if (index(' DFnd',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only legal characters here are " ","D","F","n"!')
+ call stop1()
+ end if
+c
+c End of mandatory xtup inputs. Check for options. Note D,F,d must precede n.
+c
+ if (index('DF',durq) .gt. 0) then
+c
+c Double xtup note to make an un= xtup. Here, number already set, but may also
+c have used this before number was set.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ ndoub = 1
+ call g1etchar(lineq,iccount,durq)
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ call g1etchar(lineq,iccount,durq)
+ end if
+ if (durq .eq. 'n') then
+c
+c Number alteration stuff. After 'n', require '+-123456789fs ', no more 'DF'.
+c
+ numshft = 0
+30 call g1etchar(lineq,iccount,durq)
+ if (durq .eq. 'f') then
+ go to 30
+ else if (index('+-',durq) .gt. 0) then
+ numshft = numshft+1
+ if (numshft .eq. 3) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only 2 shifts are allowed after "n" in xtup!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character should be a digit or "."!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,snum)
+ iccount = iccount-1
+ if ((numshft.eq.1 .and. snum.gt.15.1) .or.
+ * (numshft.eq.2 .and. snum.gt.1.51)) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Shift number after "n" in xtup is out of range!')
+ call stop1()
+ end if
+ go to 30
+ else if (durq .eq. 's') then
+c
+c Slope alteration for bracket
+c
+ call getchar(lineq,iccount,durq)
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'For slope adjustment, this character must be "+" or "-"!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character should be a digit!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,snum)
+ iccount = iccount-1
+ if (nint(snum) .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slope adjustment cannot exceed 15!')
+ call stop1()
+ end if
+ go to 30
+ else if (index('123456789',durq) .gt. 0) then
+c
+c Unsigned integer => alternate printed number
+c
+ call readnum(lineq,iccount,durq,snum)
+ if (snum .gt. 15.1) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Alternate xtup number after "n" must be <16!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 30
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "n" in xtup!')
+ call stop1()
+ end if
+ end if
+ ntup = nint(fnum)
+ do 6 itup = 2 , ntup
+ nodur(ivx,nnl(ivx)) = 0
+ nnl(ivx) = nnl(ivx)+1
+110 call g1etchar(lineq,iccount,durq)
+ if (durq.eq.' ') then
+ go to 110
+ else if (durq .eq. 'o') then
+c
+c Ornament in xtup. "o" symbol must come AFTER the affected note
+c
+ call g1etchar(lineq,iccount,dumq)
+ if (index('(stmx+Tup._)e:>^bc',dumq) .eq. 0 ) then
+ if (index('fg',dumq) .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Fermata or segno not allowed in xtuplet!')
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal ornament!')
+ end if
+ call stop1()
+ end if
+ if (dumq .eq. 'T') then
+c
+c Trill. may be followed by 't' and/or number. read 'til blank
+c
+29 call g1etchar(lineq,iccount,dumq)
+ if (dumq .ne. ' ') go to 29
+ else if (dumq .eq. 'e') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('sfn?',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "e" in edit. accid. symbol!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. '?') call g1etchar(lineq,iccount,dumq)
+ else if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (.not.ornrpt) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off repeated ornaments before they were on!')
+ call stop1()
+ end if
+ ornrpt = .false.
+ else
+ call g1etchar(lineq,iccount,dumq)
+ end if
+ if (index('+- :',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in ornament symbol!')
+ call stop1()
+ end if
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on repeated ornaments but already on!')
+ call stop1()
+ end if
+ ornrpt = .true.
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ if (index('0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be an integer here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .eq. ':') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot shift AND repeat an ornament!')
+ call stop1()
+ end if
+c
+c 12/7/03 Allow horizontal shift on any ornament, not just breath and ceas.
+c
+ if (index('+-',durq) .gt. 0) then
+ if (index('.0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,
+ * ibarcnt-ibaroff+nbars+1,
+ * 'There should be a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ end if
+ go to 110
+ else if (index('st(){}',durq) .gt. 0) then
+c
+c Slur in xtup
+c
+ iposn = 0
+ numint = 0
+15 call g1etchar(lineq,iccount,dumq)
+ iposn = iposn+1
+ if (index('udlbfnht',dumq) .gt. 0) then
+ if (dumq.eq.'t' .and. durq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot use "t" as an option on a tie!')
+ call stop1()
+ end if
+ go to 15
+ else if (index('+-',dumq) .gt. 0) then
+ numint = numint+1
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (numint .eq. 1) then
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ else if (numint .eq. 2) then
+ if (abs(fnum).gt.6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in the range (-6.3,6.3)!')
+ call stop1()
+ end if
+ else
+c
+c Third signed integer, must be a midslur or curve spec.
+c
+ if (abs(fnum).gt.31) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur midheight must be in the range (-31,31)!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+c
+c Expecting curve parameters. Get two numbers
+c
+ do 40 i = 1 , 2
+ iccount = iccount+1
+ fnum = ichar(lineq(iccount:iccount))-48
+ if (abs(fnum-3.5) .gt. 3.6) then
+ call errmsg(lineq,iccount,
+ * ibarcnt-ibaroff+nbars+1,
+ * 'Slur curve parameter must be in range (0,7)!')
+ call stop1()
+ end if
+40 continue
+ iccount = iccount+1
+ end if
+ end if
+ iccount = iccount-1
+ go to 15
+
+ else if (dumq .eq. 's') then
+c
+c What follows should be one or two signed numbers for adjustment of line break
+c slur, end of 1st segment or start of second.
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not use linebreak slur options with font-based slurs!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be "+" or "-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ end if
+ iccount = iccount-1
+ go to 15
+ else if (dumq .eq. 'H' .and. iposn.gt.1) then
+ if (lineq(iccount+1:iccount+1) .eq. 'H')
+ * iccount=iccount+1
+ go to 15
+ else if (dumq .eq. 'p') then
+c
+c local change in postscript slur/tie adjustment default
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must use postscript slurs ("Ap") to use this option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" here!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('st',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "s" or "t" here!')
+ call stop1()
+ end if
+ go to 15
+ else if (dumq .ne. ' ') then
+ ic = ichar(dumq)
+ if ((ic.ge.48.and.ic.le.57) .or.
+ * (ic.ge.65.and.ic.le.90)) then
+ if (iposn .eq. 1) then
+ if (durq.eq.'t' .and. fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID not allowed on non-postscript tie!')
+ call stop1()
+ end if
+ go to 15
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID must be 2nd character in slur symbol!')
+ call stop1()
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in slur symbol!')
+ call stop1()
+ end if
+ go to 110
+ else if (index('0123456789#-nx_',durq) .gt. 0) then
+c
+c We have a figure. Only allow on 1st note of xtup
+c
+ if (itup .ne. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Figure in xtup only allowed on 1st note!')
+ call stop1()
+ else if (durq.eq.'x') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'No floating figures in xtuplets!')
+ call stop1()
+ end if
+ if (usefig .and. ivx.eq.1) ifig = 1
+26 call g1etchar(lineq,iccount,durq)
+ if (index('0123456789#-n_.:',durq) .gt. 0) then
+ go to 26
+ else if (durq .eq. 's') then
+ isligfont = .true.
+ go to 26
+ else if (durq .eq. '+') then
+c
+c vertical offset, must be integer then blank
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .ne. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer for vertical offset expected here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical offset must terminate figure!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 26
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in figure in xtuplet!')
+ call stop1()
+ end if
+ go to 110
+ else if (durq .eq. 'G') then
+ ngr = 1
+79 call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ ngr = nint(fnum)
+ iccount = iccount-1
+ go to 79
+ else if (index('AWulxs',charq) .gt. 0) then
+ go to 79
+ else if (charq .eq. 'm') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('01234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit less than 5 must follow "m" in a grace note!')
+ call stop1()
+ end if
+ go to 79
+ else if (charq .eq. 'X') then
+c
+c Space before main note
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('0123456789.',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 79
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A number must follow "X" in a grace note!')
+ call stop1()
+ end if
+ end if
+c
+c At this point, charq is first note name in rest (grace?)
+c
+ do 71 igr = 1 , ngr
+ numnum = 0
+ if (igr .gt. 1) then
+75 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 75
+ end if
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In grace, expected "a"-"g"!')
+ call stop1()
+ end if
+78 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+ if (index('1234567',charq) .gt. 0) then
+ if (numnum .eq. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one of "+-1234567" allowed here in grace!')
+ call stop1()
+ end if
+ numnum = 1
+ go to 78
+ else if (index('+-nfs',charq) .gt. 0) then
+ go to 78
+ end if
+c
+c Digits are possible octave numbers
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after note name in grace!')
+ call stop1()
+ end if
+71 continue
+ go to 110
+ else if (durq .eq. chax(92)) then
+ call chklit(lineq,iccount,literr)
+ if (literr .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * literq(literr))
+ call stop1()
+ end if
+ go to 110
+ else if (durq .eq. 'M') then
+c
+c Temporary trap until I get around putting this in pmxb
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Macros not yet allowed in xtuplets!')
+ call stop1()
+ else if (durq .eq. 'X') then
+ call g1etx(lineq,iccount,.false.,shifton,
+ * ibarcnt-ibaroff+nbars+1,udsp(ibarcnt+nbars+1),wheadpt)
+ go to 110
+ else if (durq .eq. 'z') then
+c
+c Chord note in xtup. Read past for now.
+c
+33 call g1etchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 33
+ go to 110
+ else if (durq .eq. 'D') then
+c
+c Dynamic mark
+c
+ call checkdyn(lineq,iccount,ibarcnt-ibaroff+nbars+1)
+ go to 110
+ else if (durq .eq. '%') then
+ if (iccount .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Comment must have "%" in column 1!')
+ call stop1()
+ end if
+ iccount = 128
+ go to 110
+ else if (durq .eq. '?') then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ go to 110
+ end if
+ if (durq .ne. '-') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting "-"')
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting number')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 110
+c+++
+ else if (durq.eq.']' .and. lineq(iccount+1:iccount+1).eq.'['
+ * .and. lineq(iccount+2:iccount+2).eq.' ') then
+ iccount = iccount+2
+ go to 110
+c+++
+ end if
+c
+c End of xtup options. At this point symbol can only be note or rest
+c
+ if (index('abcdefgr',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In xtup, this character is not allowed!')
+ call stop1()
+ else if (durq.eq.'r' .and. itup.eq.ntup) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry, PMX cannot end an xtuplet with a rest!')
+ call stop1()
+ end if
+7 call g1etchar(lineq,iccount,durq)
+ if (index('2345678ulcb',durq) .gt. 0) then
+ go to 7
+ else if (index('sfn',durq) .gt. 0) then
+c
+c Check for MIDI-only accidental. Cannot coexist with accid. pos'n shift.
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 7
+ else if (index('+-<>',durq) .gt. 0) then
+c
+c May have either octave jump or shifted accid. on main xtup note
+c
+ if (index('+-',durq).gt.0 .and.
+ * index('01234567890',lineq(iccount+1:iccount+1)).eq.0)
+ * go to 7
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 7
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double an xtup note to make an unequal xtup
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ ndoub = ndoub+1
+ go to 7
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ go to 7
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal option on xtuplet note!')
+ call stop1()
+ end if
+ if (itup .eq. ntup-ndoub) go to 3
+6 continue
+3 continue
+c
+c 6==End of loop for xtuplet input
+c
+ else if (durq .eq. 'm') then
+c
+c Multi-bar rest: next 1 or two digits are # of bars.
+c
+ if (mod(itsofar(iv),lenbar) .ne. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Multibar rest must start at beginning of bar!')
+ call stop1()
+ else if (iv.eq.1.and.ibarmbr.gt.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Multibar rest only OK at one time per block!')
+ call stop1()
+ end if
+c
+c For some purposes, pretend its one bar only
+c
+ nodur(iv,nnl(iv)) = lenbar
+ ibarmbr = nbars+1
+ mbrest = 0
+c20 call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer after "rm"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ mbrest = nint(fnum)
+ iccount = iccount-1
+c if (ichar(durq).ge.48.and.ichar(durq).le.57) then
+c mbrest = 10*mbrest+ichar(durq)-48
+c go to 20
+c end if
+ if (nv .gt. 1) then
+ if (iv .eq. 1) then
+ mbrestsav = mbrest
+ else
+ if (mbrest .ne. mbrestsav) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must enter same multi-bar rest in every voice!')
+ call stop1()
+ end if
+ end if
+c
+c Zero out mbrestsav so can check at end of input block whether
+c all voices have one
+c
+ if (iv .eq. nv) mbrestsav=0
+ end if
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "rm"!')
+ call stop1()
+ end if
+ else if (durq .eq. '.') then
+c
+c Dotted pattern. Close out note. Mult time by 3/4.
+c Set time for next note to 1/4. Start the note.
+c
+ idotform = 1
+ else if (durq .eq. ',') then
+ idotform = 3
+c
+c Now flow to duration setting, as if durq=' '
+c
+ else if (index('oL',durq) .gt. 0) then
+c
+c Suppress full bar rest, or look left for height
+c
+ if (charq .ne. 'r') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o","L" options only legal for rest, not note!')
+ call stop1()
+ end if
+ go to 2
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double note for xtup. Must check here in case "D" or "F" came before "x" or on
+c last note of xtup. Need to flag it in pmxa since affects horiz. spacing.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ go to 2
+ else if (durq .eq. 'A') then
+c
+c Main note accidental option
+c
+ call getchar(lineq,iccount,durq)
+ if (index('o+-<>',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o",+","-","<",">" are the only legal options here!')
+ call stop1()
+ end if
+c
+c Need more stuff here
+c
+ if (durq .ne. "o") then
+c
+c Back up 1, flow out, will get +|-|<|> next loop preceded by "A", and will
+c proceed to number input checking
+c
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character!')
+ print*,'ASCII code:',ichar(durq)
+ call stop1()
+ end if
+c
+c End of block for note options.
+c
+c Set the duration
+c
+ if (idotform .gt. 0) then
+ if (idotform .eq. 1) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)*3/2
+ else if (idotform .eq. 2) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/3
+ else if (idotform .eq. 3) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)
+ else if (idotform .eq. 4) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/2
+ end if
+ else if (ibarmbr.ne.nbars+1 .and. .not.fulbrp) then
+ nodur(ivx,nnl(ivx)) = i1fnodur(nnodur,dotq)
+c
+c Check for double dot
+c
+ if (iddot .eq. 1) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*7/6
+ iddot = 0
+ end if
+ else if (fulbrp) then
+ nodur(ivx,nnl(ivx)) = lenbar
+c
+c Use a one-line function to set nnodur. It gives inverse of ifnodur.
+c
+ nnodur = index('62514x0x37',
+ * chax(48+int(log(.1+lenbar)/.69315)))-1
+ fulbrp = .false.
+ end if
+ rest(ivx,nnl(ivx)) = charq.eq.'r'
+c
+c If inside forced beam, check if note is beamable
+c
+ if (fbon) then
+ if (nodur(ivx,nnl(ivx)) .lt. 16) go to 120
+ if (nnl(ivx) .gt. 1) then
+ if (nodur(ivx,nnl(ivx)-1) .eq. 0) go to 120
+ end if
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Unbeamable thing in forced beam!')
+ call stop1()
+ end if
+120 continue
+c
+c Get number of prior bars for later check on whether note spans bar line
+c
+ nbb4 = itsofar(ivx)/lenbar
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ if (mod(itsofar(ivx),lenbar) .eq. 0) then
+ nbars = nbars+1
+ if (shifton) barend = .true.
+c
+c Will check barend when 1st note of next bar is entered.
+c
+ if (nbars .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot have more than 15 bars in an input block!')
+ call stop1()
+ end if
+ nib(ivx,nbars) = nnl(ivx)
+ if (firstline .and. lenbar.ne.lenbr1) then
+c
+c Just finished the pickup bar for this voice.
+c
+ if (itsofar(ivx) .ne. lenbr0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Pickup bar length disagrees with mtrnum0!')
+ call stop1()
+ end if
+ lenbar = lenbr1
+ itsofar(ivx) = 0
+ end if
+ else if (barend) then
+ if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ end if
+ barend = .false.
+ else if (itsofar(ivx)/lenbar .gt. nbb4) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'This note spans a bar line!')
+ call stop1()
+ end if
+ if (idotform.eq.1 .or. idotform.eq.3) then
+ call g1etchar(lineq,iccount,charq)
+ if (index('abcedfgr',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected note name or "r" here!')
+ call stop1()
+ end if
+ idotform = idotform+1
+ numnum = 1
+ go to 28
+ end if
+c
+c End of sub block for note-rest
+c
+ else if (charq .eq. 'z') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected chord note name here!')
+ call stop1()
+ end if
+25 call g1etchar(lineq,iccount,durq)
+c if (index('dre12345678',durq) .gt. 0) then
+ if (index('dre12345678c',durq) .gt. 0) then
+ go to 25
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Check for midi-only accid. CANNOT coesist with accidental position tweaks, so
+c MUST come right after "f,s,n"
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'i') iccount=iccount+1
+ go to 25
+ else if (durq .eq. 'A') then
+ if (index('fsn',lineq(iccount-1:iccount-1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "f,s,n" before "A" in chord note!')
+ call stop1()
+ end if
+ go to 25
+ else if (index('<>',durq) .gt. 0) then
+ if (index('fsnA',lineq(iccount-1:iccount-1)) .eq. 0) then
+c if (index('fsncA',lineq(iccount-1:iccount-1)) .eq. 0) then ! Causes problems
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "f,s,n,A" before "<" or ">"!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('1234567890.',durq) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number to start here for accidental shift!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 25
+ else if (index('+-',durq) .gt. 0) then
+ if (index('1234567890.',lineq(iccount+1:iccount+1)) .eq. 0)
+ * go to 25
+c
+c Number or '.' (durq) follows +/- . Get it.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '.' .and. index('1234567890',
+ * lineq(iccount+1:iccount+1)) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * '"." here must be followed by a digit!')
+ call stop1()
+ else if (index('sfndA',lineq(iccount-2:iccount-2)).eq.0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Number after +/- must follow "d,s,f,n,A"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (index('+-',durq) .eq. 0) then
+ iccount = iccount-1
+ go to 25
+ end if
+c
+c 2nd +/-
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '.') call g1etchar(lineq,iccount,durq)
+ if (index('1234567890',durq) .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 25
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in chord note!')
+ call stop1()
+ end if
+ else if (charq .eq. 'G') then
+ ngr = 1
+9 call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ ngr = nint(fnum)
+ iccount = iccount-1
+ go to 9
+ else if (index('AWulxs',charq) .gt. 0) then
+ go to 9
+ else if (charq .eq. 'm') then
+ call g1etchar(lineq,iccount,charq)
+ if (index('01234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit less than 5 must follow "m" in a grace note!')
+ call stop1()
+ end if
+ go to 9
+ else if (charq .eq. 'X') then
+c
+c Space before main note
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('0123456789.',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 9
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A number must follow "X" in a grace note!')
+ call stop1()
+ end if
+ end if
+c
+c At this point, charq is first note name in rest (grace?)
+c
+ do 19 igr = 1 , ngr
+ numnum = 0
+ if (igr .gt. 1) then
+55 call g1etchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 55
+ end if
+ if (index('abcdefg',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In grace, expected "a"-"g"!')
+ call stop1()
+ end if
+18 call g1etchar(lineq,iccount,charq)
+ if (charq .ne. ' ') then
+ if (index('1234567',charq) .gt. 0) then
+ if (numnum .eq. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one of "+-1234567" allowed here in grace!')
+ call stop1()
+ end if
+ numnum = 1
+ go to 18
+c else if (index('nfs',charq) .gt. 0) then
+ else if (index('+-nfs',charq) .gt. 0) then
+ go to 18
+ end if
+c
+c Digits are possible octave numbers
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after note name in grace!')
+ call stop1()
+ end if
+19 continue
+ else if (charq .eq. chax(92)) then
+ call chklit(lineq,iccount,literr)
+ if (literr .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * literq(literr))
+ call stop1()
+ end if
+ else if (charq .eq. 'o') then
+c
+c Ornament on non-xtup note. "o" symbol must come AFTER the affected note
+c
+ if (nnl(ivx) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"o" must be in same input block, after affected note!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('(stmgx+Tupf._)e:>^bc',dumq) .eq. 0 ) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal ornament!')
+ call stop1()
+ end if
+ if (dumq .eq. ':') then
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected blank after "o:"!')
+ call stop1()
+ else if (.not.ornrpt) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Turned off repeated ornaments before they were on!')
+ call stop1()
+ end if
+ ornrpt = .false.
+ else if (dumq .eq. 'g') then
+ if (issegno) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry, only one "segno" per input block!')
+ call stop1()
+ else if (ivx .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'segno can only be in voice 1!')
+ call stop1()
+ end if
+ issegno = .true.
+12 call g1etchar(lineq,iccount,dumq)
+ if (dumq.eq.'-' .or.
+ * (ichar(dumq).ge.48.and.ichar(dumq).le.58)) go to 12
+ if (dumq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in segno ornament symbol!')
+ call stop1()
+ end if
+ else if (dumq .eq. 'T') then
+c
+c Trill. may be followed by 't' and/or number. read 'til blank
+c
+22 call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected blank after ":"!')
+ call stop1()
+ end if
+ go to 32
+ else if (dumq .ne. ' ') then
+ go to 22
+ end if
+ else if (dumq .eq. 'f') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index(' d+-:',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "f" in fermata ornament symbol!')
+ call stop1()
+ end if
+ if (dumq .eq. 'd') call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. ':') go to 32
+ else if (dumq .eq. 'e') then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('sfn?',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "e" in edit. accid. symbol!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (dumq .eq. '?') call g1etchar(lineq,iccount,dumq)
+ else
+ call g1etchar(lineq,iccount,dumq)
+ end if
+ if (index('+- :',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in ornament symbol!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ if (index('0123456789',lineq(iccount+1:iccount+1)).eq.0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be an integer here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (durq .eq. ':') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot shift AND repeat an ornament!')
+ call stop1()
+ end if
+c
+c 12/7/03 Allow horizontal shift on any ornament, not just breath and caes.
+c
+ if (index('+-',durq) .gt. 0) then
+ if (index('.0123456789',lineq(iccount+1:iccount+1))
+ * .eq. 0) then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'There should be a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ end if
+32 continue
+ if (dumq .eq. ':') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '":" must be followed by blank in "o: "!')
+ call stop1()
+ else if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Turned on repeated ornaments but already on!')
+ call stop1()
+ end if
+ ornrpt = .true.
+ end if
+ else if (index('st(){}',charq) .gt. 0) then
+ numint = 0
+ iposn = 0
+8 call g1etchar(lineq,iccount,dumq)
+ iposn = iposn+1
+ if (charq.eq.'t' .and. dumq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot use "t" as an option on a tie!')
+ call stop1()
+ end if
+ if (index('udltb+-fnhHps ',dumq) .eq. 0) then
+c
+c Check for explicit ID code.
+c
+ ic = ichar(dumq)
+ if (ic.lt.48 .or. (ic.gt.57.and.ic.lt.65) .or.
+ * ic.gt.90) then
+c
+c Not 0-9 or A-Z, so exit
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in slur symbol!')
+ call stop1()
+ else
+c
+c It is a possible ID code. Right place?
+c
+ if (iposn .ne. 1) then
+c
+c Slur ID is not 2nd!
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID must be second character in slur symbol!')
+ call stop1()
+ else if (charq.eq.'t' .and. fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur ID not allowed on non-postscript tie!')
+ call stop1()
+ end if
+ end if
+c
+c Slur ID is OK. Note it cannot be "H" at this point..
+c
+ go to 8
+ else if (dumq .eq. 'H') then
+ if (iposn .eq. 1) go to 8
+c
+c "H" is NOT an ID code.
+c
+ if (.not.fontslur .and. charq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot reshape postscript ties this way!')
+ call stop1()
+ end if
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount=iccount+1
+ iposn = iposn+1
+ end if
+ go to 8
+ else if (index('fh',dumq).gt.0 .and. .not.fontslur
+ * .and. charq.eq.'t') then
+c
+c 3/9/03 Can't reshape postscript tie.
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot reshape postscript ties this way!')
+ call stop1()
+ else if (dumq .eq. 'p') then
+c
+c local change in postscript slur/tie adjustment default
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must use postscript slurs ("Ap") to use this option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" here!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('st',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "s" or "t" here!')
+ call stop1()
+ end if
+ iposn = iposn+2
+ go to 8
+ end if
+ if (index('udltbfnh',dumq) .gt. 0) then
+ go to 8
+ else if (index('+-',dumq) .gt. 0) then
+ numint = numint+1
+ if (fontslur .and. charq.eq.'t') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"+|-" for slur height only allowed in "s"-slurs!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (numint .eq. 1) then
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ else if (numint .eq. 2) then
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ else
+c
+c Third signed integer, must be a midslur or curve spec.
+c
+ if (abs(fnum).gt.31) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur midheight must be in the range (-31,31)!')
+ call stop1()
+ end if
+ if (durq .eq. ':') then
+c
+c Expecting curve parameters. Get two numbers
+c
+ do 41 i = 1 , 2
+ iccount = iccount+1
+ fnum = ichar(lineq(iccount:iccount))-48
+ if (abs(fnum-3.5) .gt. 3.6) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Slur curve parameter must be in range (0,7)!')
+ call stop1()
+ end if
+41 continue
+ iccount = iccount+1
+ end if
+ end if
+ iccount = iccount-1
+ go to 8
+ else if (dumq .eq. 's') then
+c
+c What follows should be one or two signed numbers for adjustment of line break
+c slur, end of 1st segment or start of second.
+c
+ if (fontslur) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not use linebreak slur options with font-based slurs!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,dumq)
+ if (index('+-',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be "+" or "-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (nint(fnum) .gt. 30) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Magnitude of slur height adjustment cannot exceed 30!')
+ call stop1()
+ end if
+ if (index('+-',dumq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (abs(fnum) .gt. 6.3) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Slur horiz shift must be in range (-6.3,6.3)!')
+ call stop1()
+ end if
+ end if
+ iccount = iccount-1
+ go to 8
+ else if (dumq .eq. 'H' .and. iposn.gt.1) then
+ if (lineq(iccount+1:iccount+1) .eq. 'H') iccount=iccount+1
+ go to 8
+ end if
+ else if (charq .eq. '?') then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+ if (durq .ne. '-') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting "-"!')
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expecting number!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ end if
+ else if ((ichar(charq).ge.48.and.ichar(charq).le.57) .or.
+ * index('#-nx_',charq) .gt. 0) then
+c
+c We have a figure. Must come AFTER the note it goes under
+c
+ if (itsofar(ivx).eq.0 .and.
+ * (.not.firstline.or.lenbr0.eq.0.or.lenbar.eq.lenbr0)) then
+c
+c Figure before first note in block
+c
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot put figure before first note in block!')
+ call stop1()
+ end if
+ if (charq.eq.'x') then
+ indxb = index(lineq(iccount:128),' ')
+ if (indxb .lt. 5) then
+ call errmsg(lineq,iccount+indxb-1,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot have a blank here in floating figure!')
+ call stop1()
+ end if
+ end if
+ if (usefig) ifig = 1
+5 call g1etchar(lineq,iccount,charq)
+ if (index(' 0123456789#-nx_.:+s',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in figure!')
+ call stop1()
+ else if (charq .eq. '+') then
+c
+c vertical offset, must be integer, then blank
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('123456789',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer for vertical offset expected here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,charq,fnum)
+ if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Vertical offset must terminate figure!')
+ call stop1()
+ end if
+ iccount = iccount-1
+ go to 5
+ else if (charq .eq. 's') then
+ isligfont = .true.
+ end if
+ if (charq .ne. ' ') go to 5
+ else if (charq .eq. '[') then
+ if (fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Started forced beam while another was open!')
+ call stop1()
+ end if
+ fbon = .true.
+17 call g1etchar(lineq,iccount,charq)
+ if (index('uljhf:',charq) .gt. 0) then
+ go to 17
+ else if (index('+-',charq) .gt. 0) then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ go to 17
+ else if (charq .eq. 'm') then
+c
+c Forced multiplicity, next char should be 1-4
+c
+ call g1etchar(lineq,iccount,charq)
+ if (index('1234',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced multiplicity for a beam must be 1, 2, 3, or 4!')
+ call stop1()
+ end if
+ go to 17
+ else if (charq .ne. ' ') then
+ if (index('0123456789',charq) .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "[", digits must now be preceeded by "+" or "-"!')
+ print*,'You will have to edit older sources to meet this rqmt,'
+ print*,'but it was needed to allow 2-digit height adjustments.'
+ print*,'Sorry for the inconvenience. --The Management'
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after [!')
+ end if
+ call stop1()
+ end if
+ else if (charq .eq. ']') then
+ if (.not.fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced beam stop with no corresponding start!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,charq)
+ if (charq .eq. '-') then
+ if (lineq(iccount+1:iccount+2) .ne. '[ ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'Only sequence allowed here is "[ "!')
+ call stop1()
+ else
+ iccount = iccount+2
+ end if
+ else if (charq .eq. '[') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be a blank!')
+ call stop1()
+ end if
+ else
+c
+c Forced beam is really ending
+c
+ fbon = .false.
+ if (charq .eq. 'j') then
+ if (lineq(iccount+1:iccount+1) .ne. ' ') then
+ call errmsg(lineq,iccount+1,ibarcnt-ibaroff+nbars+1,
+ * 'This character must be a blank!')
+ call stop1()
+ end if
+ else if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"]" must be followed by blank, "j", "-", or "["!')
+ call stop1()
+ end if
+ end if
+ else if (charq .eq. 'D') then
+c
+c Dynamic mark
+c
+ if (nnl(ivx) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"D" must not come before any notes have been entered!')
+ call stop1()
+ end if
+ call checkdyn(lineq,iccount,ibarcnt-ibaroff+nbars+1)
+ else if (index('lhw',charq) .gt. 0) then
+c
+c Save position for later check
+c
+ icclhw = iccount
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789.+- ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "l", "w", or "h"!')
+ call stop1()
+ end if
+ isheadr = isheadr .or. charq .eq. 'h'
+ if (index(' +-',durq) .gt. 0) then
+c
+c There is a header (or lower string?)
+c
+ if (index('+-',durq) .gt. 0) then
+c
+c User-defined vert offset (\internote).
+c
+ if (charq .ne. 'h') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"+" or "-" not permitted here!')
+ call stop1()
+ end if
+c
+c Have "h" followed by +/- . Check for digit.
+c Can blow durq since not using fnum for now, but...
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a digit here!')
+ call stop1()
+ end if
+c
+c Have "h" followed by +/- followed by a digit. No need to get the number.
+c
+c call readnum(lineq,iccount,durq,fnum)
+ end if
+ if (charq .ne. 'w') then
+c
+c Header or lower string.
+c
+ if (icclhw .ne. 1) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * '"h" or "l" must be first character in line!')
+ call stop1()
+ end if
+c
+c Read past the next line, which has the string.
+c
+ call read10(charq,lastchar)
+ nline = nline+1
+ iccount = 128
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Symbol "w" (width) must be followed by a digit!')
+ call stop1()
+ end if
+ else
+c
+c Height or width change spec. Check if at start of piece.
+c
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Symbol must go at top of first input block!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,dimen)
+c
+c Check units. Convert to points
+c
+ if (durq .eq. ' ' .or. durq .eq. 'p') then
+ dimen = dimen+.5
+ else if (durq .eq. 'i') then
+ dimen = dimen*72+.5
+ else if (durq .eq. 'm') then
+ dimen = dimen/25.4*72+.5
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal unit; must be "p","i",or"m"!')
+ call stop1()
+ end if
+ if (charq .eq. 'h') then
+ ptheight = int(dimen)
+ else
+ widthpt = int(dimen)
+ end if
+ end if
+ else if (charq .eq. 'm') then
+c
+c Time signature change. Only allow at beginning of block.
+c mtrnuml, mtrdenl (logical) and p (printable) will be input.
+c mtrnuml=0 initially. (In common)
+c
+c Check whether at beginning of a block
+c
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Meter change only OK in voice 1, at start of block!')
+ print*,'voice number is',ivx
+ call stop1()
+ end if
+ newmeter = .true.
+ call readmeter(lineq,iccount,mtrnuml,mtrdenl)
+ if (mtrnuml .eq. 0) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Digit 0 not allowed here!')
+ call stop1()
+c else if (mtrdenl .eq. 1) then
+cc
+cc Kluge!!!
+cc
+c mtrdenl = 2
+c mtrnuml = 2*mtrnuml
+ end if
+ call readmeter(lineq,iccount,mtrnmp,mtrdnp)
+c
+c Read past printed time signature; not used in pmxa.
+c
+ lenbeat = i1fnodur(mtrdenl,'x')
+ lenmult = 1
+ if (mtrdenl .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbar = lenmult*mtrnuml*lenbeat
+ mtrnuml = 0
+ else if (charq .eq. 'C') then
+ call g1etchar(lineq,iccount,durq)
+ if (.not.(index('tsmanrbf',durq).gt.0 .or.
+c * (ichar(durq).ge.48 .and. ichar(durq).le.54))) then
+ * (ichar(durq).ge.48 .and. ichar(durq).le.55))) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Must have t,s,m,a,n,r,b,f or 1-6 after C!')
+ * 'Must have t,s,m,a,n,r,b,f or 1-7 after C!')
+ call stop1()
+ end if
+ gotclef = .true.
+ else if (charq .eq. 'R') then
+ if (ivx .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Repeats can only go in voice 1!')
+ call stop1()
+ end if
+10 call g1etchar(lineq,iccount,durq)
+ if (index('lrdDbz',durq) .gt. 0) go to 10
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "R" (repeat/double bar)!')
+ call stop1()
+ end if
+ else if (charq .eq. 'V') then
+c
+c Ending
+c
+ if (iv .ne. 1) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Voltas are only allowed in voice #1!')
+ call stop1()
+ else if (isvolt) then
+ print*
+ print*,'*******WARNING********'
+ write(15,'(/,a)')'*******WARNING********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There is more than one volta in this input block.!')
+ print*,'This may work in a score, but WILL NOT work in parts.'
+ print*,
+ *'Safest to have only 1 volta per block, at the start of the block'
+ write(15,'(a)')
+ * 'This may work in a score, but WILL NOT work in parts.'
+ write(15,'(a)')
+ *'Safest to have only 1 volta per block, at the start of the block'
+ end if
+ isvolt = .true.
+ lvoltxt = 0
+11 call g1etchar(lineq,iccount,durq)
+ if (durq .ne.' ') then
+ go to 11
+ end if
+ else if (charq .eq. 'B') then
+ continue
+ else if (charq .eq. 'P') then
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only allowed at beginning of block!')
+ call stop1()
+ end if
+16 call g1etchar(lineq,iccount,durq)
+ if (durq.eq.'l'.or.durq.eq.'r'.or.(ichar(durq).ge.48 .and.
+ * ichar(durq).le.57)) go to 16
+ if (durq .eq. 'c') then
+c
+c Expect a centered name, and it has to be last option
+c
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. '"') then
+c
+c Quoted name, go to next quote mark
+c
+ do 35 iccount = iccount+1 , 127
+ if (lineq(iccount:iccount) .eq. '"') go to 36
+35 continue
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Missing close quote after page number command (P)!')
+ call stop1()
+36 continue
+ else if (durq .ne. ' ') then
+c
+c Space-delimited name, look for next blank
+c
+ do 37 iccount = iccount+1 , 127
+ if (lineq(iccount:iccount) .eq. ' ') go to 38
+37 continue
+38 continue
+ end if
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only "l","r","c" or digit allowed after "P"!')
+ call stop1()
+ end if
+ else if (charq .eq. 'W') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('.0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number to start here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,wminnh(ibarcnt+nbars+1))
+ else if (charq .eq. 'T') then
+c
+c Titles
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('itc',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must put "i", "t", or "c" after "T"!')
+ call stop1()
+ end if
+ ihead = ihead+2**(index('itc',durq)-1)
+c
+c Maybe a number after 'Tt', but ignore here. Read past string on next line.
+c
+ call read10(charq,lastchar)
+ nline = nline+1
+ iccount = 128
+ else if (charq .eq. 'A') then
+27 call g1etchar(lineq,iccount,durq)
+ if (index('rbsdeK',durq) .gt. 0) then
+ go to 27
+ else if (durq .eq. 'v') then
+ if (ibarcnt .eq. 0) novshrinktop = .true.
+ go to 27
+ else if (durq .eq. 'a') then
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fbar)
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'i') then
+ call g1etchar(lineq,iccount,durq)
+c
+c Local interstaff correction. Set to -1. if not specifiec, or after use,
+c or anytime except at top, since pmxb handles all times except at top.
+c
+ call readnum(lineq,iccount,durq,tintstf)
+ if (ibarcnt .eq. 0) fintstf = tintstf
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'I') then
+c
+c Global interstaff correction. Use in place of fintstf if fintstf<0
+c
+ call g1etchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,gintstf)
+ iccount = iccount-1
+ go to 27
+ else if (durq .eq. 'o') then
+ optimize = .true.
+ go to 27
+ else if (durq .eq. 'S') then
+ do 50 iiv = 1 , nv
+ call g1etchar(lineq,iccount,durq)
+ if (index('-0st',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "AS", need nv instances of "s,t,-,0"!')
+ call stop1()
+ end if
+ if (durq.eq.'-'.or.durq.eq.'s') then
+ isize(iiv) = 1
+ else if (durq.eq.'t') then
+ isize(iiv) = 2
+ end if
+50 continue
+ go to 27
+ else if (durq .eq. 'p') then
+ fontslur = .false.
+42 continue
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-',durq) .gt. 0) then
+c
+c Characters to change defaults for ps slurs
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('shtc',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only letters allowed here are "s","h","t","c"!')
+ call stop1()
+ end if
+c
+c Now check for another default modifier
+c
+ go to 42
+ else if (index('lh',durq) .gt. 0) then
+c
+c Flags for optional linebreak ties or header specials
+c
+ go to 42
+ else
+ iccount = iccount-1
+ end if
+ go to 27
+ else if (durq .eq. 'N') then
+c
+c Override default name for a part file. Must have part number, then
+c partname in quotes. Must be on line by itself, and start in column 1.
+c Will only be passed thru to scor2prt.
+c
+ if (iccount .ne. 2) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"AN" must start in column 1!')
+ call stop1()
+ end if
+ ndxquote = index(lineq,'"')
+ if (ndxquote.lt.4 .or. ndxquote.gt.5 .or.
+ * index('123456789',lineq(3:3)).eq.0 .or.
+ * (ndxquote.eq.5.and.index('012',lineq(4:4)).eq.0)) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"AN" must be followed by inst. #, then quote!')
+ call stop1()
+ end if
+ ndxquote = index(lineq(ndxquote+1:128),'"')
+ if (ndxquote .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'In "AN", file name must be in quotes!')
+ call stop1()
+ end if
+ iccount = 128
+ else if (durq .eq. 'T') then
+ cstuplet = .true.
+ else if (durq .eq. 'R') then
+c
+c Get full name of normal include file; must occupy remainder of line
+c
+ call getpmxmod(.false.,lineq(iccount+1:128))
+ iccount = 128
+ else if (durq .eq. 'c') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('l4',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only "l" or "4" is allowed here!')
+ call stop1()
+ end if
+ if (durq .eq. 'l' ) then
+ hoffpt = -25
+ voffpt = -45
+ else if (durq .eq. '4') then
+ ptheight = 745
+ widthpt = 499
+ hoffpt = -24
+ voffpt = -24
+ end if
+ go to 27
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'After "A" must follow one of the letters abcdeiINprRsST!')
+ call stop1()
+ end if
+ else if (charq .eq. 'K') then
+c
+c Rules and function of K command
+c
+c Only 1 K +/-n +/-m allowed per block if n.ne.0 (transposition). isig1 is
+c initial sig, and must be passed to pmxb because it is needed when topfile
+c is called, which is before the K+n+m command is read in pmxb. Also, we
+c compute and save ibrkch and newkey for each syst, accounting for key changes,
+c then adjust fbar to make poenom much more accurate.
+c Jan 02: Now K-0+[n] is used to transpose e.g. from f to f#.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-i',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"K" (transpose or key change) must be followed by "+,-,i"!')
+ call stop1()
+ end if
+ if (durq .ne. 'i') then
+c
+c Normal key change and/or transposition)
+c
+c iccount = iccount+1
+ num1 = 44-ichar(durq)
+c
+c num1= +1 or -1
+c
+ ztrans = num1.eq.-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st +/- must be followed by a number!')
+ call stop1()
+ end if
+c iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ num1 = nint(fnum)*num1
+ ztrans = ztrans .and. num1.eq.0
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st number after "K" must be followed by "+,-"!')
+ call stop1()
+ end if
+ iccount = iccount+1
+ num2 = 44-ichar(durq)
+ call readnum(lineq,iccount,durq,fnum)
+ num2 = num2*int(fnum+.1)
+ if (num1.eq.0 .and. .not.ztrans) then
+c
+c Key change, only one per block allowed
+c
+ if (iskchb) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Only one key change allowed per input block!')
+ call stop1()
+ end if
+ iskchb = .true.
+ nkeys = nkeys+1
+ kchmid(nkeys) = mod(itsofar(ivx),lenbar).ne.0
+c
+c Make ibrkch = barnum-1 if at start of bar, so fsyst advances ok at linebreak.
+c
+ ibrkch(nkeys) = ibarcnt+nbars
+ if (kchmid(nkeys)) ibrkch(nkeys) = ibrkch(nkeys)+1
+ newkey(nkeys) = num2+idsig
+ else
+c
+c Transposition
+c
+ fulltrans = .true.
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Transposition must be at top of first input block!')
+ call stop1()
+ end if
+ isig1 = num2
+ idsig = isig1-newkey(1)
+c
+c idsig is the difference between sig after transposition, and sig in setup.
+c It may alter # of accid's in key changes if there is transposition.
+c
+ end if
+ else ! durq='i'
+c
+c 110522/110529
+c Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey]
+c and repeat i[...] for multiple instruments. Store info here if ibarcnt=0
+c so can pass to topfile (via comInstTrans), which is called before getnote.
+c Otherwise, will store info from getnote. Initialize EarlyTransOn and
+c LaterInstTrans to .false. in blockdata. Set EarlyTransOn from here;
+c LaterInstTrans from g1etnote. Zero both out after use. nInstTrans really
+c only needed for instrument-signatures, not transpositions. iTransAmt is
+c ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for
+c each staff.
+c
+c if (fulltrans) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Cannot yet combine full and instrument transposition!')
+c call stop1()
+c end if
+ call GetiTransInfo(.true.,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+ end if
+ else if (charq .eq. '|') then
+c
+c Optional bar symbol
+c
+ if (mod(itsofar(ivx),lenbar).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar line marker out of place!')
+ call stop1()
+ else if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ end if
+ else if (charq .eq. '/') then
+ if (ornrpt) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'WARNING: Block ended with repeated ornament still on!')
+ ornrpt = .false.
+ end if
+ if (stickyS) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'WARNING: Block ended with sticky stemshrink still on!')
+ stickyS = .false.
+ end if
+ if (fbon) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block ended with forced beam open!')
+ call stop1()
+ else if (shifton) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Bar ended with user-defined shift still on!')
+ call stop1()
+ else if (gotclef) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'May not enter clef at end of input block!')
+ call stop1()
+ end if
+ barend = .false.
+c
+c Perform time checks
+c
+ if (mod(itsofar(ivx),lenbar).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block duration not divisible by lenbar!')
+ print*,'lenbar is ',lenbar
+ call stop1()
+ else if (ivx.gt.1 .and. itsofar(ivx).ne.itsofar(1)) then
+ print*
+ print*,'# of bars in voice 1, current voice:',
+ * itsofar(1)/lenbar,itsofar(ivx)/lenbar
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Block duration not equal to voice 1!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ' ' .and. iv.eq.nv) then
+c
+c End of input block
+c
+ loop = .false.
+ else
+c
+c Start a new voice
+c
+ if (lenbr0.ne.0 .and. firstline) lenbar = lenbr0
+ nbars = 0
+ if (durq .eq. ' ') then
+c
+c New voice is on next staff
+c
+ iv = iv+1
+ ivx = iv
+ else
+c
+c New voice is on same staff. Set up for it
+c
+ ivx = nv+1
+ do 23 iiv = 1 , nv
+ if (nvmx(iiv) .eq. 2) ivx = ivx+1
+23 continue
+ if (ivx .gt. nm) then
+ write(*,'(1x,a21,i3,a23)')'Cannot have more than',nm,
+ * ' lines of music at once'
+ call stop1()
+ end if
+ nvmx(iv) = 2
+ ivmx(iv,2) = ivx
+ itsofar(ivx) = 0
+ nnl(ivx) = 0
+ do 24 j = 1 , 200
+ rest(ivx,j) = .false.
+ nacc(ivx,j) = 0
+24 continue
+c
+c For midi stuff, record that there is a 2nd line of music in this voice
+c
+ if (ismidi) twoline(iv) = .true.
+ end if
+ end if
+ iccount = 128
+ else if (charq .eq. 'S') then
+c
+c New nsyst: for use with partmaker scor2prt, for parts w/ diff # of systs.
+c
+ if (ibarcnt .gt. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"S" can only be in first input block!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'A digit must follow "S"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ nsyst = nint(fnsyst)
+14 continue
+ if (durq .eq. 'P') then
+c
+c New npages for parts.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ npages = nint(fnsyst)
+ go to 14
+ else if (durq .eq. 'm') then
+c
+c Reset musize (musicsize).
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789 ',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnsyst)
+ musize = nint(fnsyst)
+ wheadpt = whead20*musize
+ go to 14
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in "S" symbol!')
+ call stop1()
+ end if
+ else if (charq .eq. 'L') then
+ nflb = nflb+1
+ ibarflb(nflb) = ibarcnt+nbars+1
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Need integer to define forced line break!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,sysflb)
+ isysflb(nflb) = nint(sysflb)
+ if (nflb .gt. 1) then
+c
+c Check if new number is > prior one
+c
+ if (isysflb(nflb) .le. isysflb(nflb-1)) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'You already forced a line break at a later line!')
+ call stop1()
+ end if
+ end if
+ if (npages .eq. 0) then
+ print*
+ print*,'WARNING! You forced a line break at line ',
+ * isysflb(nflb),' but npage = 0. Continue?'
+ read(*,'(a)') charq
+ if (index('yY',charq) .eq. 0) call stop1()
+ else if (isysflb(nflb) .gt. nsyst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Forced line break at line num > nsyst!')
+ call stop1()
+ else if (index(' PM',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have " ", "P", or "M" here!')
+ call stop1()
+ end if
+ if (durq .eq. 'P') then
+c
+c Forced page break here, get page number.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Need integer to define forced page break!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ nfpb = nfpb+1
+ ipagfpb(nfpb) = nint(fnum)
+ isysfpb(nfpb) = isysflb(nflb)
+ if (ipagfpb(nfpb) .gt. npages) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Forced page break at page num > npages!')
+ call stop1()
+ else if (nfpb .gt. 1) then
+ if (ipagfpb(nfpb) .le. (ipagfpb(nfpb-1))) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Forced page break numbers must increase!')
+ call stop1()
+ end if
+ end if
+ end if
+ if (index(' M',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in linebreak symbol!')
+ call stop1()
+ else if (durq .eq. 'M') then
+ nmovbrk = nmovbrk+1
+ isysmb(nmovbrk) = isysflb(nflb)
+ call g1etchar(lineq,iccount,durq)
+31 if (durq .eq. '+') then
+c
+c Vertical spacing, read past number.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Integer required here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ go to 31
+ else if (durq .eq. 'i') then
+c
+c Change indentation,
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('.123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Decimal number required here!')
+ call stop1()
+ end if
+c
+c fracsys was initialized in block data to all 0.'s
+c
+ call readnum(lineq,iccount,durq,fracsys(nmovbrk))
+ go to 31
+ else if (durq .eq. 'c') then
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'r') then
+ call g1etchar(lineq,iccount,durq)
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have "+" or "-" after "r" as movement break option!')
+ call stop1()
+ end if
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'n') then
+c
+c Change # of voices. Input ninow, iorig(1...ninow). Will use names,
+c staves per inst. and clefs corr. to iorig in original list of instruments.
+c
+ nv = 0
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c Signals a 2-digit number, get next two characters
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,dumq)
+ if (index('12',durq).eq.0
+ * .or.index('0123456789',dumq).eq.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal new number of instruments '//durq//dumq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ read(lineq(iccount-1:iccount),'(i2)')ninow
+ else
+c
+c durq is a single digit number for noinow
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal new number of instruments '//durq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ ninow = ichar(durq)-48
+ end if
+ if (ninow.gt.noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'New number of instruments must be <= original!')
+ call stop1()
+ end if
+ do 63 iinow = 1 , ninow
+ call g1etchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c Signals a 2-digit number
+c
+ call g1etchar(lineq,iccount,durq)
+ call g1etchar(lineq,iccount,dumq)
+ if (index('12',durq).eq.0
+ * .or.index('0123456789',dumq).eq.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal 2-digit instrument number '//durq//dumq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ read(lineq(iccount-1:iccount),'(i2)')iorig
+ else
+c
+c durq is a single digit number for iorig
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal instrument number '//durq//
+ * ' at movement break!')
+ call stop1()
+ end if
+ iorig = ichar(durq)-48
+ end if
+ if (iorig .gt. noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'New instrument number must be <= original noinst!')
+ call stop1()
+ end if
+ nv = nv+nsperi(iorig)
+63 continue
+ do 61 iiv = 1 , nv
+c
+c Get clef names
+c
+ call g1etchar(lineq,iccount,durq)
+ if (.not.(index('tsmanrbf',durq).gt.0 .or.
+ * (ichar(durq).ge.48 .and. ichar(durq).le.55))) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must have t,s,m,a,n,r,b,f or 1-7 as clef symbol here!')
+ call stop1()
+ end if
+c
+c Initialize new voices
+c
+ nvmx(iiv) = 1
+ ivmx(iiv,1) = iiv
+ itsofar(iiv) = 0
+ nnl(iiv) = 0
+ do 62 j = 1 , 200
+ rest(iiv,j) = .false.
+62 continue
+61 continue
+c
+c Loop back up, this might not be last option in M
+c
+ call g1etchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after Movement break symbol!')
+ call stop1()
+ end if
+ if (fracsys(nmovbrk) .lt. 0.001) then
+c
+c Since fracsys was not explicitly set, set it to prior value.
+c
+ if (nmovbrk .eq. 1) then
+ fracsys(nmovbrk) = fracindent
+ else
+ fracsys(nmovbrk) = fracsys(nmovbrk-1)
+ end if
+ end if
+ end if
+c
+c Just before exiting if-block for forced line breaks, set counter to use when
+c dealing with vertical space calcs
+c
+ nistaff(nflb) = nv-1
+ else if (charq .eq. 'F') then
+ usefig = .false.
+ else if (charq .eq. 'X') then
+ call g1etx(lineq,iccount,.true.,shifton,ibarcnt-ibaroff+nbars+1,
+ * udsp(ibarcnt+nbars+1),wheadpt)
+ else if (charq .eq. 'I') then
+c
+c MIDI settings.
+c
+ if (ivx.ne.1 .or. nnl(1).ne.0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'MIDI stuff only allowed at start of block!')
+ call stop1()
+ end if
+ if (nv .gt. 15) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Sorry but MIDI does not work with more than 15 voices!')
+ call stop1()
+ end if
+ ismidi = .true.
+ call getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,.true.)
+ else if (charq .eq. 'M') then
+ call setmac(lineq,iccount,ibarcnt,ibaroff,nbars,charq,durq,ivx,
+ * nline)
+ else if (index(',.',charq) .gt. 0) then
+c
+c Continued rhythmic shortcut
+c
+ idotform = index('. ,',charq)
+ if (idotform .eq. 1) then
+c
+c Change duration of prior note
+c
+ itsofar(ivx) = itsofar(ivx)-nodur(ivx,nnl(ivx))
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*3/2
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ end if
+ idotform = idotform+1
+ numnum = 1
+ cdot = .true.
+ go to 1
+ else
+ print*,'ASCII code:',ichar(charq)
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'This character is not allowed here!')
+ print*,'ASCII code:',ichar(charq)
+ call stop1()
+ end if
+ return
+ end
+ subroutine g1etset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,newkey,npages,nsyst,musize,bottreb)
+ parameter(nm=24,maxblks=4000)
+ character*65536 bufq
+ character*1 chax
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*128 lineq
+ logical lastchar,issegno,isheadr,isvolt,fbon,bottreb,
+ * newway
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+c
+c Get the first line
+c
+ iccount = 0
+ nline = 1
+9 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') then
+ nline = nline+1
+ go to 9
+ end if
+ if (lineq(1:3) .eq. '---') then
+c
+c Have TeX input until next line that starts with '---'
+c
+3 nline = nline+1
+ call getbuf(lineq)
+ if (ilbuf .gt. nlbuf) go to 1
+ go to 2
+1 print*,'You did not terminate type 0 TeX input with "---"'
+ call stop1()
+2 continue
+ if (lineq(1:3) .ne. '---') go to 3
+c
+c Force a new line read on first call to readin
+c
+ iccount = 128
+ end if
+c
+c Here, lineq and nline are first non-TeX lines.
+c
+ nv = nint(readin(lineq,iccount,nline))
+ if (nv .gt. nm) then
+ write(*,'(1x,a46,i3)')
+ * 'In setup data, number of voices cannot exceed',nm
+ call stop1()
+ end if
+ noinst = nint(readin(lineq,iccount,nline))
+ if (noinst .gt. nv) then
+ write(*,'(a)')
+ * 'In setup data, cannot have more instruments than staves'
+ call stop1()
+ end if
+ newway = noinst.le.0
+ if (newway) noinst = -noinst
+ do 10 iinst = 1 , noinst
+c
+c Seve # of staves per inst in case later drop some inst's.
+c
+ if (newway) then
+ nsperi(iinst) = nint(readin(lineq,iccount,nline))
+ else if (iinst .gt. 1 ) then
+ nsperi(iinst) = 1
+ else
+ nsperi(iinst) = nv-noinst+1
+ end if
+10 continue
+ mtrnuml = nint(readin(lineq,iccount,nline))
+ mtrdenl = nint(readin(lineq,iccount,nline))
+cc
+cc Kluge!!!
+cc
+c if (mtrdenl .eq. 1) then
+c mtrdenl = 2
+c mtrnuml = mtrnuml*2
+c end if
+ mtrnmp = nint(readin(lineq,iccount,nline))
+ mtrdnp = nint(readin(lineq,iccount,nline))
+ if (mtrnmp.eq.0 .and. mtrdnp .ge. 8) then
+ write(*,'(a)')'In setup data, with mtrnmp=0, mtrdnp must be <8'
+ call stop1()
+ end if
+ xmtrnum0 = readin(lineq,iccount,nline)
+ newkey = nint(readin(lineq,iccount,nline))
+ npages = nint(readin(lineq,iccount,nline))
+ nsyst = nint(readin(lineq,iccount,nline))
+ musize = nint(readin(lineq,iccount,nline))
+ fracindent = readin(lineq,iccount,nline)
+ if (fracindent .ge. 1.) then
+ write(*,'(a)')'In setup data, fracindent must be <1'
+ call stop1()
+ end if
+ if (npages .gt. nsyst) then
+ print*,'Error in input file: npages > nsyst'
+ call stop1()
+ else if((musize-16)*(musize-20)*(musize-24)*(musize-29).ne.0) then
+ call printl('Musicsize must be 16, 20, 24, or 29')
+ call stop1()
+ end if
+c
+c Next noinst non-comment lines are names of instruments.
+c
+ do 4 i = 1 , abs(noinst)
+5 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 5
+4 continue
+c
+c Mext non-comment line has nv clef names
+c
+6 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 6
+ do 7 iv = 1 , nv
+c if (index('brnamstf0123456',lineq(iv:iv)) .eq. 0) then
+ if (index('brnamstf01234567',lineq(iv:iv)) .eq. 0) then
+ call errmsg(lineq,iv,0,
+ * 'There should be a clef symbol here!')
+ call stop1()
+ end if
+7 continue
+ if (lineq(nv+1:nv+1) .ne. ' ') then
+ call errmsg(lineq,nv+1,0,
+ * 'There should be a blank here!')
+ call stop1()
+ end if
+c
+c Set flag if voice 1 is treble, since it affects vertical spacing
+c
+ bottreb = lineq(1:1).eq.'t'
+c
+c Mext non-comment line has path name
+c
+8 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 8
+ lpath = index(lineq,' ')-1
+ if (index('/:'//chax(92),lineq(lpath:lpath)) .eq. 0) then
+ call errmsg(lineq,lpath,0,
+ * 'Last character of pathname is not "/",":", or "'
+ * //chax(92)//'"!')
+ call stop1()
+ end if
+ return
+ end
+ subroutine g1etx(lineq,iccount,notxtup,shifton,ibar,udsp,wheadpt)
+c
+c Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol.
+c In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols.
+c
+ logical notxtup,shifton,number,btest
+ character*128 lineq
+ character*1 charq,dumq
+ number = .false.
+ nPBSc = 0
+1 call g1etchar(lineq,iccount,charq)
+ if (index('PBS:',charq) .gt. 0) then
+c
+c Continue checking here even if "P".
+c
+ ipbsc = index('PBS:',charq)
+ if (btest(nPBSc,ipbsc)) then
+ call errmsg(lineq,iccount,ibar,'Only one allowed per symbol!')
+ call stop1()
+c else if (.not.notxtup .and. ipbsc.gt.2) then
+c call errmsg(lineq,iccount,ibar,'Not allowed in xtuplet!')
+c call stop1()
+ end if
+ nPBSc = ibset(nPBSc,ipbsc)
+ go to 1
+ else if (index('+-.0123456789',charq) .gt. 0) then
+ number = .true.
+ if (index('+-',charq) .gt. 0) then
+ call g1etchar(lineq,iccount,dumq)
+ if (index('.0123456789',dumq) .eq. 0) then
+ call errmsg(lineq,iccount,ibar,'Expected a number here!')
+ call stop1()
+ end if
+ end if
+ call readnum(lineq,iccount,dumq,fnum)
+ if (charq.eq.'-') fnum = -fnum
+ if (dumq .ne. 'p') then
+ iccount = iccount-1
+ fnum = fnum*wheadpt
+ end if
+ go to 1
+ else if (charq .ne. ' ') then
+ call errmsg(lineq,iccount,ibar,'Not allowed in "X" symbol!')
+ call stop1()
+ end if
+c
+c Done with parsing. Other checks
+c
+ if (iand(6,nPBSc).eq.6 .or. iand(24,nPBSc).eq.24) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Cannot have both "P" and "B" or "S" and ":"!')
+ call stop1()
+ end if
+ if (btest(nPBSc,4)) then
+ if (number) then
+ if (shifton) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Started a group shift without stopping prior one!')
+ call stop1()
+ else
+ shifton = .true.
+ end if
+ else
+ if (.not. shifton) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Ended a group shift without starting one!')
+ call stop1()
+ else
+ shifton = .false.
+ end if
+ end if
+ end if
+c
+c P off, S off, c off => normal user-defined space. Add to udsp (later fsyst)
+c
+ if (iand(nPBSc,26).eq.0) udsp = udsp+fnum
+ if (.not.number .and. .not.btest(nPBSc,4)) then
+ call errmsg(lineq,iccount-1,ibar,
+ * 'Must have either a number or a colon in "X" symbol!')
+ call stop1()
+ end if
+ return
+ end
+c integer*4 function mytime()
+c CHARACTER(10) tq
+c CALL DATE_AND_TIME(TIME=tq)
+c read(tq,'(2i2,f6.3)')ih,im,ts
+c mytime = 1000*(ts+60*(im+60*ih))
+c return
+c end
+ subroutine getbuf(lineq)
+ parameter (maxblks=4000)
+ character*(*) lineq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ lineq = bufq(ipbuf+1:ipbuf+lbuf(ilbuf))
+ ipbuf = ipbuf+lbuf(ilbuf)
+ ilbuf = ilbuf+1
+ return
+ end
+ subroutine getchar(lineq,iccount,charq)
+ parameter (nm=24)
+c
+c Gets the next character out of lineq*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount. Ends program if no more input.
+c
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ logical lastchar,rptnd1,sluron,fbon,rptprev,ornrpt
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac,equalize,stickyS
+ character*1 charq,rptfq1,rptfq2
+ character*128 lineq,lnholdq
+ if (iccount .eq. 128) then
+ call read10(lineq,lastchar)
+ if (lastchar) return
+ if (.not. endmac) then
+ iccount = 0
+ else
+ endmac = .false.
+ iccount = icchold
+ lineq = lnholdq
+ end if
+ if (mrecord) then
+ call mrec1(lineq,iccount,ndxm)
+ end if
+ end if
+ iccount = iccount+1
+ charq = lineq(iccount:iccount)
+ return
+999 continue
+ lastchar = .true.
+ return
+ end
+ subroutine getdyn(ivx,ip,irest,iornq,lineq,iccount)
+ parameter (nm=24)
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical fontslur,upslur,WrotePsslurDefaults
+ character*1 durq,chax
+ character*4 dynsymq
+ character*128 lineq
+c
+c Get info for dynamic mark. Enter after getting "D", iccount sits on "D"
+c Bits in idyndat are as follows
+c 00-03 ivx
+c 04-11 ip
+c 12-15 code for type of mark
+c 0 => arbitrary text
+c 1-12 => pppp,ppp,pp,p,mp,mf,f,fp,sfz,ff,fff,ffff
+c If (.not. fontslur)
+c 13 => hairpin start, 14,15 => <,> (ending)
+c else
+c 13 < start, 14 > start, 15 ending
+c end if
+c 16 flag for vertical offset
+c 17-23 vertical offset + 64 , \internote
+c 31 Hairpin start (0), stop (1)
+c
+c idynda2
+c
+c 00 flag for horizontal offset
+c 01-09 (horizontal offset)/10 + 25.6 notehead widths
+c 10 5th bit for ivx (5/15/10)
+c
+ irest = ibset(irest,26)
+ ndyn = ndyn+1
+ idyn = ivx
+ idynda2(ndyn) = 0
+ if (ivx .ge. 16) call setbits(idynda2(ndyn),1,10,1)
+ call setbits(idyn,8,4,ip)
+ if (lineq(iccount+1:iccount+1) .eq. '"') then
+c
+c text-dynamic
+c
+ ntxtdyn = ntxtdyn+1
+ iend = iccount+index(lineq(iccount+2:128),'"')+2
+ txtdynq(ntxtdyn) = lineq(iccount+2:iend-2)
+c
+cc Store ivx, ip in bits 0-11
+c Store ivx, ip in bits 0-12
+c
+c ivxiptxt(ntxtdyn) = idyn
+ ivxiptxt(ntxtdyn) = ivx+32*ip
+ ipm = index('- +',lineq(iend:iend))
+ idno = 0
+ else
+c
+c Word-group or hairpin
+c
+ do 1 iend = iccount+2 , 128
+ ipm = index('- +',lineq(iend:iend))
+c
+c Exit the loop at first blank, "+", or "-"
+c
+ if (ipm .gt. 0) go to 2
+1 continue
+2 continue
+ read(lineq(iccount+1:iend-1),'(a'//chax(47+iend-iccount)//')')
+ * dynsymq
+ idno = (index(
+ * 'ppppppp pp p mp mf f fp sfz ff fff ffff < > ',
+ * dynsymq)+3)/4
+c
+c Save for later down
+c
+ idno1 = idno
+ end if
+c
+c Set flag to check level later if in beam
+c
+ iornq = ibset(iornq,23)
+ if (idno.ge.14) then
+c
+c Hairpin here. Check if opposite type from one that's already on
+c
+ if (idno.eq.14.and.btest(listdecresc,ivx) .or.
+ * idno.eq.15.and.btest(listcresc,ivx)) then
+ call printl(' ')
+ call printl('Started one kind of hairpin while other is on')
+ call stop1()
+ end if
+c
+c Start or stop?
+c
+ if (btest(listcresc,ivx) .or. btest(listdecresc,ivx)) then
+c
+c Cresc/decresc is on, this is an ending. If fontslur, leave idno as is.
+c
+ if (.not.fontslur) idno = 15
+ else if (fontslur) then
+c
+c Start of font slur
+c
+ idno = 13
+ else
+c
+c Start of postscript slur
+c
+ idno = idno-1
+ end if
+ end if
+c
+c Now that we used list[de]cresc, update
+c
+ if (idno .ge.13) then
+ if (idno.eq.15 .or. (fontslur.and.idno.eq.14)) then
+c
+c Something's ending
+c
+ if (btest(listcresc,ivx)) then
+c
+c It's a cresc!
+c
+ listcresc = ibclr(listcresc,ivx)
+ else
+ listdecresc = ibclr(listdecresc,ivx)
+ end if
+ else
+c
+c Something's starting
+c
+ if (idno1 .eq. 14) then
+c
+c It's a cresc!
+c
+ listcresc = ibset(listcresc,ivx)
+ else
+ listdecresc = ibset(listdecresc,ivx)
+ end if
+ end if
+ end if
+ call setbits(idyn,4,12,idno)
+ iccount = iend
+ if (ipm .ne. 2) then
+c
+c There is a vertical shift
+c
+ idyn = ibset(idyn,16)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(fnum)
+ call setbits(idyn,7,17,(ipm-2)*idno+64)
+ ipm = index('- +',durq)
+ if (ipm .ne. 2) then
+c
+c There is a horizontal shift
+c
+c idynda2(ndyn) = ibset(idyn,23)
+ idynda2(ndyn) = ibset(idynda2(ndyn),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ idno = nint(10*fnum)
+ call setbits(idynda2(ndyn),9,1,(ipm-2)*idno+256)
+ end if
+c
+c iccount should be on the blank at the end of the entire symbol
+c
+ end if
+ idyndat(ndyn) = idyn
+ return
+ end
+ subroutine getfig(itoff,charq,lineq,iccount,isfig,itfig,
+ * itsofar,nodur,figq,ivupfig,nfigs)
+ logical isfig
+ character*1 charq
+ character*10 figq
+ character*128 lineq
+c
+c As of 11/26/08, trapped extra figures in getnote, so no need here.
+c
+c if (ivx .gt. 2) then
+cc
+cc Read past the figure
+cc
+c6 call getchar(lineq,iccount,charq)
+c if (charq .ne. ' ') go to 6
+c return
+c end if
+ nfigs = nfigs+1
+ ivupfig = 0
+ itoff = 0
+ if (charq .eq. 'x') then
+c
+c Floating figure.
+c
+ call getchar(lineq,iccount,charq)
+ read(charq,'(i1)')noff
+ call getchar(lineq,iccount,charq)
+ read(charq,'(i1)')loff
+ itoff = noff*ifnodur(loff,'x')
+ call getchar(lineq,iccount,charq)
+ else
+c
+c Figure on a note
+c
+ isfig = .true.
+ end if
+ itfig = itsofar+itoff-nodur
+ lfig = 1
+ figq = charq
+5 call getchar(lineq,iccount,charq)
+c if (charq .ne. ' ') then
+ if (index(' +',charq) .eq. 0) then
+ figq = figq(1:lfig)//charq
+ lfig = lfig+1
+ go to 5
+ else if (charq .eq. '+') then
+c
+c Get vertical offset for figure. Next character after number has to be blank.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ ivupfig = nint(fnum)
+ end if
+ return
+ end
+ subroutine getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ parameter (nm=24)
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg
+ character*1 charq,durq
+ character*20 voltxtq
+ character*128 lineq,litq
+ integer*4 islur(nm,200),iornq(nm,0:200),ipl(nm,200),nnl(nm),
+ * ndlev(nm,2)
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c Grace, comes *before* main note:
+c UNLESS there's an 'A' or 'W' after the 'G'
+c ngrace = # of grace note groups so far in block
+c ivg(ngrace), ipg(ngrace)
+c nng(ngrace) = # of notes in this group: default = 1
+c ngstrt(ngrace) = starting position in nolevg of levels for this grace
+c multg(ngrace) = multiplicity: default = 1; input as 'm(digit)'
+c upg(ngrace) = logical for beam or stem dirn: default T, input'u,l'
+c slurg(ngrace) = logical for slur; default F, input 's'
+c slashg(ngrace) = T if slash; default is F, input 'x'
+c These data MUST precede note name of first note
+c nolevg, naccg: lists of levels and accid's, indexed as described above.
+c
+ ngrace = ngrace+1
+ ivg(ngrace) = ivx
+ ipg(ngrace) = nnl(ivx)+1
+ if (ngrace .eq. 1) then
+ ngstrt(ngrace) = 1
+ else
+ ngstrt(ngrace) = ngstrt(ngrace-1)+nng(ngrace-1)
+ end if
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),4)
+ nng(ngrace) = 1
+ multg(ngrace) = 1
+ upg(ngrace) = .true.
+ slurg(ngrace) = .false.
+ slashg(ngrace) = .false.
+18 call getchar(lineq,iccount,charq)
+ if (index('WA',charq) .gt. 0) then
+c
+c Grace is on note that was already done, so shift flags forward one note.
+c This puts flag on actual note with grace; later for W will go ahead one more.
+c
+ ipg(ngrace) = nnl(ivx)
+ islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),4)
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),4)
+ if (slurg(ngrace))
+ * iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),24)
+ if (charq .eq. 'A') then
+c
+c close After, clear way-after bit, to ensure priority of most recent A/W
+c
+ ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),31),29)
+ else
+c
+c Way after; later assign to following note, and position like normal grace.
+c
+ ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),29),31)
+ end if
+ else if (charq .eq. 'm') then
+ call getchar(lineq,iccount,charq)
+ multg(ngrace) = ichar(charq)-48
+ else if (index('123456789',charq) .gt. 0) then
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ nng(ngrace) = nint(fnum)
+ else if (charq .eq. 'l') then
+ upg(ngrace) = .false.
+ else if (charq .eq. 's') then
+ slurg(ngrace) = .true.
+ if (nnl(ivx) .gt. 0) then
+c
+c If A- or W-grace, set signal to start slur on main note.
+c
+ if(btest(ipl(ivx,nnl(ivx)),31) .or.
+ * btest(ipl(ivx,nnl(ivx)),29))
+ * iornq(ivx,nnl(ivx))=ibset(iornq(ivx,nnl(ivx)),24)
+ end if
+ else if (charq .eq. 'x') then
+ slashg(ngrace) = .true.
+ else if (charq .eq. 'u') then
+ else if (charq .eq. 'X') then
+c
+c Space before main note of grace. Number will come next.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,graspace(ngrace))
+ iccount = iccount-1
+ end if
+ if (index('abcdefg',charq) .eq. 0) go to 18
+c
+c At this point, charq is first note name in grace
+c
+ do 19 ing = ngstrt(ngrace), ngstrt(ngrace)+nng(ngrace)-1
+ naccg(ing) = 0
+ ioct = 0
+ if (ing .gt. ngstrt(ngrace)) then
+55 call getchar(lineq,iccount,charq)
+ if (charq .eq. ' ') go to 55
+ endif
+ iclastlev = 0
+9 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+ if (durq.eq.'+') then
+ lastlev = lastlev+7
+ iclastlev = iclastlev+7
+ else if (durq.eq.'-') then
+ lastlev = lastlev-7
+ iclastlev = iclastlev-7
+ else if (index('fsn',durq) .gt. 0) then
+ if (naccg(ing) .eq. 0) then
+ naccg(ing) = index('fsn',durq)
+ else
+c
+c Double accidental
+c
+ naccg(ing) = ibset(naccg(ing),2)
+ end if
+ else
+ ioct = ichar(durq)-48
+ end if
+ go to 9
+ end if
+ if (ioct .gt. 0) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ if (nnl(ivx).eq.0 .and. ing.eq.ngstrt(ngrace)) then
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ lastlev = ndlev(iv,kv)+iclastlev
+ end if
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ nolevg(ing) = lastlev
+19 continue
+c
+c Grace could come before first note of block, so reset end level.
+c
+ if (nnl(ivx).eq.0) then
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ ndlev(iv,kv) = lastlev
+ end if
+ return
+ end
+ subroutine GetiTransInfo(From1,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+cccccccccccccccccccccccc
+cc
+cc GetiTransInfo.for
+cc
+cccccccccccccccccccccccc
+c
+c Called from both g1etnote and getnote, after first 'i' in Ki[...]
+c On entry, iccount points to last char retrieved, which is 'i'
+c
+c From1: locgical, true if called from g1etnote
+c ibarcnt: tells whether to set EarlyTransOn to true.
+c EarlyTransOn set false in blkdata, true here, back to false in topfile.
+c
+c 110522/110529
+c Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey]
+c and repeat i[...] for multiple instruments. Store info in g1etnot if ibarcnt=0
+c so can pass to topfile (via comInstTrans), which is called before getnote.
+c Otherwise, will store info from getnote. Initialize EarlyTransOn and
+c LaterInstTrans to .false. in blockdata. Set EarlyTransOn from g1etnote;
+c LaterInstTrans from getnote. Zero both out after use. nInstTrans really
+c only needed for instrument-signatures, not transpositions. iTransAmt is
+c ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for
+c each staff.
+c
+c iTransAmt stored as fn of instrument #, not like iTransKey which is
+c fn. of nm, just a counter, where corr. inst num is iInstTrans(nm). This
+c simplifies use of iTransAmt for all calls to ifnolev.
+c
+ parameter (nm=24)
+ logical From1
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans,store
+ character*128 lineq
+ character*1 durq
+ durq = 'x' ! Can't initialize in declaration stmt, only works once.
+ if(.not.EarlyTransOn) EarlyTransOn = From1 .and. ibarcnt.eq.0
+ store = (EarlyTransOn.and.ibarcnt.eq.0) .or.
+ * (ibarcnt.gt.0.and..not.From1)
+ LaterInstTrans = .not.From1 .and. ibarcnt.gt.0
+ if (store) nInstTrans = 0
+1 continue
+ if (durq .eq. ' ') return
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be an instrument number here!')
+ call stop1()
+ end if
+ if (store) nInstTrans = nInstTrans+1
+ call readnum(lineq,iccount,durq,fnum)
+ instn = nint(fnum)
+ if (instn.gt.noinst) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Instrument number out of range!')
+ call stop1()
+ end if
+ if (store) iInstTrans(nInstTrans) = instn
+c
+c durq is +/- following inst # (for iTransAmt), iccount is on it.
+c
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st character after instrument number must be "+,-"!')
+ call stop1()
+ end if
+ itramt = 44-ichar(durq) ! +1/-1 for itramt
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a transposition amount here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (store) iTransAmt(instn) = nint(fnum)*itramt
+c
+c durq is +/- following iTransAmt (for iTransKey), iccount is on it.
+c
+ if (index('+-',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '1st character after transposition amount must be "+,-"!')
+ call stop1()
+ end if
+ ikey = 44-ichar(durq) ! +1/-1
+ call g1etchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be a key indicator here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ if (store) iTransKey(nInstTrans) = nint(fnum)*ikey
+c
+c durq is now 1st character after iTransKey, should be either 'i' or ' '
+c
+ if (durq.ne.'i'.and.durq.ne.' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'There must be blank or "i" here!')
+ call stop1()
+ end if
+ go to 1
+ end
+ subroutine getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,first)
+c
+c Use this from both pmxa and pmxb to input and check midi data. "first" tells
+c whether pmxa or pmxb. If .not.first, then tempo and pause commands cause
+c things to be written immediately into the midi storage buffers.
+c
+ parameter (nm=24,mv=24576)
+ common /comevent/ miditime,lasttime
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+c
+c immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing
+c nmidsec section starts and stops based on PLAYING macros (not recording).
+c
+ integer*2 mmidi,midinum(26)
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ character*1 durq
+ character*2 instq
+ character*128 lineq
+ logical first
+ common /comdiag/ n69(0:nm),n34(0:nm)
+c
+c Instrument codes
+c
+ data midinum
+ * / 1, 5, 7, 13,20,25,33,41,42,43,44,57,58,59,61,65,66,67,
+c XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbXtuXfrXsoXalXteX
+c
+ * 68,69,71,72,74,75, 8,55 /
+c bsXobXbaXclXflXreXctXvo
+c
+1 call getchar(lineq,iccount,durq)
+ if (durq .eq. 't') then
+c
+c Tempo in beats ber minute
+c
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer here for the pause!')
+ call stop1()
+c else if (mmacrec) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Cannot change MIDI tempo while recording a MidiMacro!')
+c call stop1()
+ end if
+ call readnum(lineq,iccount,durq,qpm)
+ iccount = iccount-1
+ if (.not.first) then
+ call midievent('t',nint(qpm),0)
+ gottempo = .true.
+ end if
+ go to 1
+ else if (durq .eq. 'p') then
+c
+c Insert a pause. pausemid = pause in 1/4's
+c
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here for the pause!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,pausemid)
+ iccount = iccount-1
+ if (.not.first) then
+c
+c Compute a meter for the pause. This is only to keep MidiNotate on track.
+c Round pause to nearest 16th. Let denominator always be 16.
+c
+ numb16 = nint(pausemid*4)
+ call midievent('m',numb16,16)
+c
+c Put in pausemid beats of rest
+c
+ do 3 icm = 0 , numchan-1
+ call addmidi(icm,0,0,0,4.*numb16,.true.,.false.)
+3 continue
+ miditime = miditime+nint(240*pausemid)
+c
+c Restore meter
+c
+ call midievent('m',mtrdenl*lenbar/64,mtrdenl)
+ end if
+ go to 1
+ else if (durq .eq. 'i') then
+c
+c Instrument numbers or letters. Expect nv of them.
+c
+ do 2 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (ichar(durq) .gt. 96) then
+c
+c It's a lowercase letter. Get another, find corr. instrument #.
+c
+ instq(1:1) = durq
+ call getchar(lineq,iccount,durq)
+ instq = instq(1:1)//durq
+ iname = index('XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbX'//
+ * 'tuXfrXsoXalXteXbsXobXbaXclXflXreXctXvo',instq)/3
+ if (iname .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Unrecognized 2-letter midi instrument name!')
+ call stop1()
+ end if
+ midinst(ivx) = midinum(iname)-1
+ else
+c
+c Expect a number, followed by ":" if that is followed by another number.
+c I.e., if after call to readnum, durq is not ":", it must be either blank
+c or next instrument letter.
+c
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a midi instrument number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midinst(ivx) = nint(fnum)-1
+ if (midinst(ivx).lt.0 .or. midinst(ivx).gt.255) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi instrument number must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+ end if
+2 continue
+ go to 1
+ else if (durq .eq. 'v') then
+c
+c Get volumes for each instrument. Expect nv of them.
+c Follow same pattern as for insttrument numbers above.
+c
+ do 7 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a midi velocity number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midivel(ivx) = nint(fnum)-1
+ if (midivel(ivx).lt.0 .or. midivel(ivx).gt.127) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi velocity must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+7 continue
+ go to 1
+ else if (durq .eq. 'b') then
+c
+c Get balance for each instrument. Expect nv of them.
+c Follow same pattern as for instrument numbers above.
+c
+ do 8 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a balance number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ midibal(ivx) = nint(fnum)-1
+ if (midibal(ivx).lt.0 .or. midibal(ivx).gt.127) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Midi balance must be in range 1-128!')
+ call stop1()
+ end if
+ if (durq .ne. ':') iccount = iccount-1
+8 continue
+ go to 1
+ else if (durq .eq. 'T') then
+c
+c Get transposition for each instrument. Expect nv of them.
+c Follow similar pattern as above, but separator is +|-.
+c
+ do 9 ivx = 1 , nv
+ call getchar(lineq,iccount,durq)
+ ipm = index('-+',durq)
+ if (ipm .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected "+" or "-" for midi transposition here!')
+ call stop1()
+ end if
+ ipm = 2*ipm-3
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected a number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ miditran(ivx) = ipm*nint(fnum)
+c if (mod(miditran(ivx),12).ne. 0) then
+c call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+c * 'Midi transposition limited to multiples of 12!')
+c call stop1()
+c end if
+ iccount = iccount-1
+9 continue
+ go to 1
+ else if (durq .eq. 'g') then
+ call getchar(lineq,iccount,durq)
+ if (index('0123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected an integer here for the midi gap!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ mgap = nint(fnum)
+ iccount = iccount-1
+ go to 1
+ else if (durq .eq. 'M') then
+c
+c MidiMacros
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'R') then
+c
+c Start recording
+c
+ if (mmacrec) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to record a MidiMacro while already recording!')
+ call stop1()
+ end if
+ mmacrec = .true.
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected MidiMacro ID number here!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ if (.not.first) then
+ immac = nint(fnum)
+ if (immac .gt. 20) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'MidiMacro ID cannot exceed 20!')
+ call stop1()
+ end if
+c
+c Save the start time
+c
+ mmactime(immac) = miditime
+ do 4 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+c
+c Adjust if there's a rest at end of prior section. Insert dummy turnoff.
+c (This causes two turn-offs in a row, which testmidi sees as an error).
+c
+c Before: section1 ------rest------- section2(to be recorded)
+c After: section1 rest1 now rest2 section2(recorded)
+c
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ lasttime = miditime
+ end if
+ end if
+ mmacstrt(icm,immac) = imidi(icm)+1
+4 continue
+ end if
+ go to 1
+ else if (index('123456789P',durq) .eq. 0) then
+c
+c End recording; close the open macro. Get immac from common.
+c
+ if (.not.mmacrec) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to end a MidiMacro before starting one!')
+ call stop1()
+ end if
+ mmacrec = .false.
+ iccount = iccount-1
+ if (.not.first) then
+c
+c Save the macro duration
+c
+ mmactime(immac) = miditime-mmactime(immac)
+ do 5 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track if needed.
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ lasttime = miditime
+ end if
+ end if
+ mmacend(icm,immac) = imidi(icm)
+5 continue
+ end if
+ if (durq .ne. ' ')go to 1
+ else if (durq .eq. 'P') then
+c
+c Play Back a Macro
+c
+ call getchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Expected MidiMacro ID number here!')
+ call stop1()
+ end if
+ if (mmacrec) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'You tried to play a MidiMacro before ending recording!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ if (.not.first) then
+ immac = nint(fnum)
+ if (mmactime(immac) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot play a MIDI macro before recording it!')
+ call stop1()
+ end if
+ do 6 icm = 0 , numchan
+ if (icm .lt. numchan) then
+ if (restpend(icm)) then
+ call addmidi(icm,30,0,0,trest(icm),.false.,.true.)
+ trest(icm) = 0.
+ restpend(icm) = .false.
+ end if
+ else
+ if (miditime .gt. lasttime) then
+c
+c Insert a dummy turnoff in conductor track
+c
+ call addmidi(icm,30,0,0,(miditime-lasttime)/15.,
+ * .false.,.true.)
+ end if
+ end if
+ msecend(icm,nmidsec) = imidi(icm)
+ msecstrt(icm,nmidsec+1) = mmacstrt(icm,immac)
+ msecend(icm,nmidsec+1) = mmacend(icm,immac)
+ msecstrt(icm,nmidsec+2) = imidi(icm)+1
+6 continue
+ nmidsec = nmidsec+2
+c
+c Update running time
+c
+ miditime = miditime+mmactime(immac)
+ lasttime = miditime
+ end if
+ go to 1
+ else
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in MidiMacro sub-command!')
+ call stop1()
+ end if
+ else if (durq .eq. 'd') then
+ debugmidi = .true.
+ go to 1
+ else if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character in MIDI input data!')
+ call stop1()
+ end if
+ if (.not.gottempo .and. .not.first) then
+c
+c If no tempo is set on first call on the pmxb pass, then set it
+c
+ call midievent('t',96,0)
+ gottempo = .true.
+ end if
+ return
+ end
+ subroutine getnote(loop)
+ parameter (nm=24,mv=24576)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*10 figq
+ character*1 ulq,sepsymq,sq,rptfq1,rptfq2,clefq,chax
+ logical beamon,firstgulp,figbass,figchk,isfig
+ character*60 cheadq
+ character*120 instrq,titleq,compoq
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,autofbon
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /comnotes/ nnodur,lastlev,ndlev(nm,2),shifton,setis,notcrd,
+ * npreslur,was2(nm),ninow,nobar1,nsystp(40),ipage,
+ * OptLineBreakTies,HeaderSpecial
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,fbon,ornrpt,shifton,setis,notcrd,isbjmp,
+ * was2,nobar1,quoted,isbj2,stickyS,
+ * OptLineBreakTies,HeaderSpecial
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /combc/ bcspec
+ common /comas3/ ask(2500),iask,topmods
+c
+c nvmx is either 1 or 2. ivmx(iv,1)=iv, ; ivmx(iv,2)>nv if defined
+c ivx is current ivmx, and is the index for all notes, acc's etc.
+c
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comtrans/ cheadq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ common /comclefq/ clefq(nm)
+ common /comtol/ tol
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ character*128 txtdynq
+ logical mrecord,mplay,endmac,lowdot,rename,bar1syst,upslur,
+ * fontslur,WrotePsslurDefaults
+ character*128 lineq,lnholdq
+ character*80 headrq, lowerq
+ character*79 inameq
+ character*59 hdlndq
+ character*20 voltxtq
+ character*1 charq,dotq,durq,ulfbq,dumq
+ logical loop,lastchar,lower,rptnd1,rptprev,bcspec,moved,
+ * topmods,headlog,btest,sluron,cdot,equalize
+ character*24 tempq
+ logical novshrinktop,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idumm1,isig1,
+ * mbrestsav,kchmid(18),logdumm1,logdumm2,barend,noinst,logdumm3
+ logical barend,iskchb,kchmid,logdumm1,logdumm2,logdumm3
+ common /combibarcnt/ ibarcnt
+ cdot = .false.
+1 call getchar(lineq,iccount,charq)
+ if (lastchar) return
+ if (charq .eq. ' ') go to 1
+ if (charq .eq. '%') then
+c
+c Check for a bar number format:
+c
+ if (iccount.eq.1 .and. lineq(2:2).eq.' ' .and.
+ * index('bB1234567890',lineq(3:3)).gt.0) then
+ if (islast) write(11,'(a)')lineq(1:lenstr(lineq,128))
+ end if
+ iccount = 128
+ go to 1
+ end if
+c
+c Closing repeat iff charq='/' and the prev. char was 'R' with 'd' or 'r'
+c
+ if (rptprev) then
+ rptnd1 = charq .eq. '/'
+ rptprev = .false.
+ end if
+c
+c Repeat at end of a piece
+c
+ if ((ichar(charq).ge.97.and.ichar(charq).le.103) .or.
+ * charq.eq.'r') then
+ if (cdot) go to 28
+c
+c This is a note/rest.
+c
+ idotform = 0
+ numnum = 0
+c
+c If start of line of music, set pitch from previous
+c
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (nnl(ivx).eq.0) lastlev = ndlev(iv,kv)
+c
+c notcrd is used to tell if orn. goes on main note or chord note
+c
+c notcrd = .true. !Move dow. Was not observed if dotted shortcut.
+c
+c Increase note count, then loop 'til blank. Label 28 is for dotted shortcuts.
+c
+28 continue
+c
+c Moved this from just above, 2 Feb 02
+c
+ notcrd = .true.
+ nnl(ivx) = nnl(ivx)+1
+ if (ornrpt) then
+c
+c Replicate ornament bits, also bit 23 for beam handling if chord.
+c
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),iornq(ivx,0))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+ if (stickyS) then
+c
+c Grab stemlength shortening parameters from prior note
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),27)
+ call setbits (mult(ivx,nnl(ivx)),3,28,
+ * igetbits(mult(ivx,nnl(ivx)-1),3,28))
+ end if
+ if (autofbon .and. tautofb.gt.tol .and. .not.fbon) then
+c
+c Doing auto forced beams, and period has been set, so check if this note
+c starts a period.
+c
+c if (mod(1.*itsofar(ivx),tautofb) .lt. tol) then
+ if (mod(itsofar(ivx)-t1autofb,tautofb) .lt. tol) then
+c
+c Start a forced beam here
+c
+ nfb(ivx) = nfb(ivx)+1
+ fbon = .true.
+ ulfbq(ivx,nfb(ivx)) = 'x'
+ t1fb(ivx,nfb(ivx)) = itsofar(ivx)
+ end if
+ end if
+ if (fbon) ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),30)
+ dotq = 'x'
+ if (charq.eq.'r')
+ * irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),0)
+ if (btest(irest(ivx,nnl(ivx)),0)) then
+c
+c Rest stuff. First check if previous note was full-bar-pause
+c
+ if (lineq(iccount+1:iccount+1) .eq.' '
+ * .and. nnl(ivx).gt.1) then
+ if (btest(islur(ivx,nnl(ivx)-1),19))
+ * islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),19)
+ end if
+c
+c Set default rest level at 0 unless 2 voices/staff in which case it's -4 or 2
+c for voice a or b. Set a-types at 0 as encountered and adjust later
+c after '//'. (Override heights will be set to 100+offset)
+c
+ if (ivx .le. nv) then
+ nolev(ivx,nnl(ivx)) = 0
+ else
+ nolev(ivx,nnl(ivx)) = 2
+ end if
+ end if
+2 call getchar(lineq,iccount,durq)
+ ic = ichar(durq)
+ if (ic.le.57 .and. ic.ge.48) then
+c
+c Digit
+c
+ if (numnum .eq. 0) then
+ nnodur = ic-48
+ numnum = 1
+ go to 2
+ else if (numnum .eq. 1) then
+ ioct = ic-48
+ numnum = 2
+ go to 2
+ else
+ print*,'>2 digits in note sym., ivx,nn:',ivx,nnl(ivx)
+ call stop1()
+ end if
+ else if (durq .eq. 'd') then
+ dotq = durq
+ if (lineq(iccount+1:iccount+1) .eq. 'd') then
+c
+c Double dot.
+c
+ iccount = iccount+1
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),3)
+ end if
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, unless next char is not part of a number
+c
+ if (index('0123456789.',lineq(iccount+2:iccount+2)) .eq. 0)
+ * go to 2
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),19)
+ call getchar(lineq,iccount,durq)
+ ndotmv(ivx) = ndotmv(ivx)+1
+ iccount=iccount+1
+ call readnum(lineq,iccount,dumq,updot(ivx,ndotmv(ivx)))
+ if (durq .eq. '-')
+ * updot(ivx,ndotmv(ivx)) = -updot(ivx,ndotmv(ivx))
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift also
+c
+ iccount=iccount+1
+ call readnum(lineq,iccount,durq,rtdot(ivx,ndotmv(ivx)))
+ if (dumq .eq. '-')
+ * rtdot(ivx,ndotmv(ivx)) = -rtdot(ivx,ndotmv(ivx))
+ else
+ rtdot(ivx,ndotmv(ivx)) = 0.
+ end if
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .eq. 'p') then
+c
+c Full-bar rest as pause
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),19)
+ go to 2
+ else if (durq .eq. 'b') then
+c
+c Blank rest
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),29)
+ go to 2
+ else if (index('fsn',durq) .gt. 0) then
+c
+c Accidental
+c
+ if (nacc(ivx,nnl(ivx)) .eq. 0) then
+c
+c No accidental has been set yet
+c
+ nacc(ivx,nnl(ivx)) = index('fsn',durq)
+ else
+c
+c Repeated accid, so must be double
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),2)
+ end if
+ go to 2
+ else if (durq .eq. 'i') then
+c
+c Set flag for MIDI-only accidental.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),17)
+ go to 2
+ else if (durq .eq. 'c') then
+c
+c Set flags for cautionary accidental
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ go to 2
+ else if (index('+-<>',durq) .gt. 0) then
+ ipm = index('- +',durq)-2
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+c
+c A note, not a rest.
+c
+ call chkpm4ac(lineq,iccount,nacc(ivx,nnl(ivx)),moved)
+ if (moved) go to 2
+c
+c Octave jump with a note
+c
+ if (numnum .lt. 2) then
+ lastlev = lastlev+ipm*7
+ else
+ ioct = ioct+ipm*1
+ end if
+ go to 2
+ else
+c
+c Override default height of a rest
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (lineq(iccount-1:iccount-1) .eq. '.') then
+c
+c Kluge in case there is a shortcut ".". It will have been sucked up by
+c readnum. (Same doesn't hold for ",")
+c
+ iccount = iccount-2
+ go to 2
+ end if
+ nolev(ivx,nnl(ivx)) = 100+ipm*nint(fnum)
+c
+c There may be more characters for this rest
+c
+ iccount = iccount-1
+ go to 2
+ end if
+ else if (durq .eq. 'x') then
+c
+c Xtuplet. Count number of doubled notes (for unequal xtups)
+c
+ if (btest(nacc(ivx,nnl(ivx)),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+c
+c Will set all durations to 0 except last one. Set flag on this note.
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),28)
+c
+c Next input will be digit
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ ntup = nint(fnum)
+ if (index('DF',durq) .gt. 0) then
+c
+c Double xtup note to make an un= xtup. Here xtup number already set but may also
+c have this command before.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ ndoub = 1
+ call getchar(lineq,iccount,durq)
+ else if (durq .eq. 'd') then
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ call getchar(lineq,iccount,durq)
+ end if
+c
+c Only other possibilities here are ' ' or 'n'
+c
+ if (durq .eq. 'n') then
+c
+c Alter xtup number
+c
+ if (lineq(iccount+1:iccount+1) .eq. ' ') then
+c
+c If the only modifier is 'n', cancel the number
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),31)
+ else
+ numshft = 0
+30 call getchar(lineq,iccount,durq)
+ if (durq .eq. 'f') then
+c
+c Flip up-down-ness
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),14)
+ go to 30
+ else if (index('+-',durq) .gt. 0) then
+c
+c Vertical or horiz shift
+c
+ numshft = numshft+1
+ iofforn = 1
+ if (durq .eq. '-') iofforn = -1
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,xofforn)
+ iccount = iccount-1
+ if (numshft .eq. 1) then
+c
+c Vertical shift
+c
+ iofforn = iofforn*nint(xofforn) + 16
+c
+c Turn on bit 1; set bits 2-6 to iofforn
+c
+ irest(ivx,nnl(ivx)) =
+ * ior(irest(ivx,nnl(ivx)),2+4*iofforn)
+ else
+c
+c Horizontal shift
+c
+ iofforn = iofforn*nint(xofforn*10)+16
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),7)
+ call setbits(irest(ivx,nnl(ivx)),5,9,iofforn)
+ end if
+ go to 30
+ else if (durq .eq. 's') then
+c
+c Slope adjustment for bracket
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),4)
+ call getchar(lineq,iccount,durq)
+ iofforn = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,xofforn)
+ iccount = iccount-1
+ iofforn = nint(iofforn*xofforn+16)
+ call setbits(mult(ivx,nnl(ivx)),5,5,iofforn)
+ else if (index('123456789',durq) .gt. 0) then
+c
+c Replacement printed number
+c
+ call readnum(lineq,iccount,durq,xofforn)
+ call setbits(nacc(ivx,nnl(ivx)),5,22,nint(xofforn))
+ iccount = iccount-1
+ go to 30
+ end if
+ end if
+ end if
+c
+c Set note level of 1st note of xtup, provided not a rest
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ if (numnum .eq. 2) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ nolev(ivx,nnl(ivx)) = lastlev
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ end if
+ do 40 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on starting note of xtuplet
+c
+ call setbits(isdat2(nsdat-npreslur+1),7,19,lastlev)
+40 continue
+ numnum = 0
+ nodur(ivx,nnl(ivx)) = 0
+ do 6 itup = 2 , ntup
+ if (ornrpt) then
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),
+ * iand(iornq(ivx,nnl(ivx)-1),10026991))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+ nnl(ivx) = nnl(ivx)+1
+ if (fbon) ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),30)
+7 call getchar(lineq,iccount,charq)
+ if (charq .eq. ' ') then
+ go to 7
+ else if (charq .eq. '%') then
+ iccount = 128
+ go to 7
+ else if (charq .eq. 'o') then
+c
+c Ornament in xtuplet. "o" symbol must come AFTER the affected note
+c
+ if (notcrd) then
+ nole = nolev(ivx,nnl(ivx)-1)
+ else
+ nole = iand(127,ishft(icrdat(ncrd),-12))
+ end if
+ call getorn(lineq,iccount,iornq(ivx,nnl(ivx)-1),
+ * iornq(ivx,0),ornrpt,noffseg,
+ * nnl(ivx)-1,ivx,.false.,notcrd,nole)
+ go to 7
+ else if (index('st(){}',charq) .gt. 0) then
+ nnlivx = nnl(ivx)-1
+ if (charq.eq.'(' .or. charq.eq.'{') then
+c
+c Detected preslur in xtuplet loop, non-chord note
+c
+ nnlivx = nnlivx+1
+ npreslur = npreslur+1
+ end if
+ islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),0)
+ if (charq.eq.'t') islur(ivx,nnlivx) =
+ * ibset(islur(ivx,nnlivx),1)
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (fontslur) then
+ call sslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,
+ * isdat3,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ else
+ call spsslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,
+ * isdat3,isdat4,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ end if
+ go to 7
+ else if (charq .eq. 'G') then
+c
+c Kluge to get grace in xtup at right location
+c
+ nnl(ivx) = nnl(ivx)-1
+ call getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ nnl(ivx) = nnl(ivx)+1
+ go to 7
+ else if (charq .eq. sq) then
+ call littex(islur,nnl(ivx),ivx,topmods,lineq,iccount)
+ go to 7
+ else if (index('0123456789#-nx_',charq) .gt. 0) then
+c
+c Figure. Must come AFTER the first note of xtup
+c
+ ivf = 1
+ if (ivx .gt. 1) then
+ if (ivxfig2 .eq. 0) then
+ ivxfig2 = ivx
+ else if (ivx .ne. ivxfig2) then
+ print*
+ print*,'Figures not allowed in >1 voice above first'
+ stop
+ end if
+ ivf = 2
+ end if
+ nfig1 = nfigs(ivf)+1
+ call getfig(itoff(ivf,nfig1),charq,lineq,iccount,
+ * isfig(ivf,nnl(ivx)-1),itfig(ivf,nfig1),itsofar(ivx),
+ * 0,figq(ivf,nfig1),ivupfig(ivf,nfig1),nfigs(ivf))
+ go to 7
+ else if (charq .eq. 'X') then
+ call getx(lineq,iccount,irest(ivx,max(1,nnl(ivx)-1)),
+ * shifton,wheadpt,iornq(ivx,nnl(ivx)),ivx,
+ * irest(ivx,nnl(ivx)),itsofar(ivx),ntup,itup,nnodur,
+ * dotq,ndoub)
+ go to 7
+ else if (charq .eq. 'z') then
+c
+c Chord note in xtup. Goes with *prior* note.
+c
+ notcrd = .false.
+ ncrd = ncrd+1
+ ipl(ivx,nnl(ivx)-1) = ibset(ipl(ivx,nnl(ivx)-1),10)
+ numnum = 0
+c icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8))
+ icrdat(ncrd) = nnl(ivx)-1
+ call setbits(icrdat(ncrd),4,8,mod(ivx,16))
+ if (ivx .ge. 16) icrdat(ncrd) = ibset(icrdat(ncrd),28)
+ icrdorn(ncrd) = 0
+c
+c Get note name
+c
+ call getchar(lineq,iccount,charq)
+c
+c Get optional inputs
+c
+34 call getchar(lineq,iccount,durq)
+c
+c When chord note is done, will get ' ', making ndx=0, so go past this block
+c
+ ndx = index('fsn+-<>12345678reic',durq)
+ if (ndx .gt. 0) then
+ if (ndx .le. 3) then
+ if (.not.btest(icrdat(ncrd),19)) then
+ icrdat(ncrd) = ibset(icrdat(ncrd),19)
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(ndx,20))
+ else
+ icrdat(ncrd) = ibset(icrdat(ncrd),22)
+ end if
+ else if (ndx .eq. 19) then
+c
+c Set flags for cautionary accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),31)
+ iornq(ivx,nnl(ivx)-1) =
+ * ibset(iornq(ivx,nnl(ivx)-1),31)
+ else if (ndx .le. 7) then
+c
+c +/-/</> Check whether octave or accidental shift
+c
+ nactmp = 0
+ call chkpm4ac(lineq,iccount,nactmp,moved)
+ if (moved) then
+c
+c Transfer accidental shift values
+c
+ call setbits(icrdot(ncrd),6,14,
+ * igetbits(nactmp,6,4))
+ call setbits(icrdot(ncrd),7,20,
+ * igetbits(nactmp,7,10))
+ else
+ if (durq .eq. '+') then
+ lastlev = lastlev+7
+ else if (durq .eq. '-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (durq .eq. 'e') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),23)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),24)
+ irest(ivx,nnl(ivx)-1) =
+ * ibset(irest(ivx,nnl(ivx)-1),20)
+ else if (durq .eq. 'i') then
+c
+c Midi-only accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),27)
+ else
+c
+c must be a number, save it in ioct
+c
+ numnum = 1
+ ioct = ndx-7
+ end if
+ go to 34
+ end if
+ if (numnum .eq. 1) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(lastlev,12))
+ do 41 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on chord note in xtup
+c
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+c
+c Following lines copied from loop for non-xtup, chord note, preslur
+c Initially I assigned the slur(s) to next note, so fix.
+c
+ islur(ivx,nnl(ivx)) = ibclr(islur(ivx,nnl(ivx)),0)
+ islur(ivx,nnl(ivx)-1) = ibset(islur(ivx,nnl(ivx)-1),0)
+ isdat2(nsdat-npreslur+1) =
+ * ibset(isdat2(nsdat-npreslur+1),0)
+ call setbits(isdat1(nsdat-npreslur+1),8,3,
+ * igetbits(isdat1(nsdat-npreslur+1),8,3)-1)
+41 continue
+ go to 7
+ else if (charq .eq. '?') then
+c
+c Arpeggio
+c
+ if (btest(ipl(ivx,nnl(ivx)-1),10)) then
+c
+c This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note
+c of chord, will not set icrdat(25), but iornq(27)
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),25)
+ else
+ iornq(ivx,nnl(ivx)-1) = ibset(iornq(ivx,nnl(ivx)-1),27)
+ end if
+c
+c Check for shift
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+c
+c durq must be "-"
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+c
+c record the shift
+c
+ NumArpShift = NumArpShift+1
+ IvArpShift(NumArpShift) = ivx
+ IpArpShift(NumArpShift) = nnl(ivx)-1
+ ArpShift(NumArpShift) = fnum
+ end if
+ go to 7
+ else if (charq .eq. 'D') then
+ call getdyn(ivx,nnl(ivx)-1,irest(ivx,nnl(ivx)-1),
+ * iornq(ivx,nnl(ivx)-1),lineq,iccount)
+ go to 7
+c+++
+ else if (charq .eq. ']') then
+c
+c Multiplicity up-down, must have '][ '
+c
+ islur(ivx,nnl(ivx)-1) = ibset(islur(ivx,nnl(ivx)-1),20)
+ iccount = iccount+2
+ go to 7
+cc+++
+ end if
+c
+c End of loop for xtup options. If here, charq must be a (non-crd) note name.
+c or rest
+c
+ if (charq .eq. 'r') then
+c
+c Rest in xtup
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),0)
+ if (index('+-b',lineq(iccount+1:iccount+1)) .gt. 0) then
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'b') then
+c
+c Blank rest in middle of xtup
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),29)
+ else
+c
+c Override height of embedded xtup rest
+c
+ ipm = index('- +',durq)-2
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ nolev(ivx,nnl(ivx)) = 100+ipm*nint(fnum)
+ iccount = iccount-1
+ end if
+ else if (ivx .le. nv) then
+ nolev(ivx,nnl(ivx)) = 0
+ else
+ nolev(ivx,nnl(ivx)) = 2
+ end if
+ end if
+ notcrd = .true.
+8 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+ if (index('+-<>',durq) .gt. 0) then
+c
+c Accidental horizontal shift
+c
+ call chkpm4ac(lineq,iccount,nacc(ivx,nnl(ivx)),moved)
+ if (.not.moved) then
+ if (durq.eq.'+') then
+ lastlev = lastlev+7
+ else if (durq.eq.'-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (index('fsn',durq) .gt. 0) then
+ if (nacc(ivx,nnl(ivx)) .eq. 0) then
+c
+c No accid set yet
+c
+ nacc(ivx,nnl(ivx)) = index('fsn',durq)
+ else
+c
+c Symbol must be repeated, so it's a double
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),2)
+ end if
+ else if (durq .eq. 'i') then
+c
+c Set flag for midi-only accidental
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),17)
+
+ else if (durq .eq. 'c') then
+c
+c Set flags for cautionary accidental
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ else if (index('ul',durq) .gt. 0) then
+c
+c Force stem direction for non-beamed xtup note
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),30)
+ if (durq .eq. 'u') islur(ivx,nnl(ivx)) =
+ * ibset(islur(ivx,nnl(ivx)),17)
+ else if (durq .eq. 'e') then
+c
+c Left-shift main xtup note
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),8)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+c
+c Right-shift main xtup note
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),9)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double an xtup note to make an unequal xtup
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ ndoub = ndoub+1
+ else if (durq .eq. 'd') then
+c
+c Dotted xtup note
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),27)
+ else
+c
+c Must be an octave number
+c
+ lastlev = ifnolev(charq,ichar(durq)-48
+ * ,iTransAmt(instno(iv)))
+ end if
+ go to 8
+ end if
+ if (itup .lt. ntup) then
+c
+c Last note is handled *after* flowing out of the xtup if block, but still
+c within block for a note-rest. Set note level now (rest already done).
+c Could have problem here if rests & doubled notes are combined in xtup,
+c since might exit the loop at the wrong place. Worry about it later.
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ lastlev = lastlev-3+mod(ifnolev(charq,10,
+ * iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ nodur(ivx,nnl(ivx)) = 0
+ do 42 npreslur = npreslur , 1 , -1
+c
+c Set note level for preslur on internal xtup note
+c
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+42 continue
+ end if
+ if (itup .eq. ntup-ndoub) go to 12
+6 continue
+12 continue
+ if (ornrpt) then
+ iornq(ivx,nnl(ivx)) = ior(iornq(ivx,nnl(ivx)),
+ * iand(iornq(ivx,nnl(ivx)-1),10026991))
+ if (iand(iornq(ivx,nnl(ivx)),32896) .gt. 0) then
+c
+c This is a trill (bit 7 or 15) so must dup the parameters
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = nnl(ivx)
+ xnsktr(ntrill) = xnsktr(ntrill-1)
+ end if
+ end if
+c
+c End of if-block for xtuplet input
+c
+ else if (durq .eq. 'm') then
+c
+c Multi-bar rest: next 1 or two digits are # of bars.
+c For some purposes, pretend its one bar only
+c
+ nodur(ivx,nnl(ivx)) = lenbar
+ ibarmbr = nbars+1
+ mbrest = 0
+ xb4mbr = 0.
+20 call getchar(lineq,iccount,durq)
+ if (ichar(durq).ge.48.and.ichar(durq).le.57) then
+ mbrest = 10*mbrest+ichar(durq)-48
+ go to 20
+ end if
+ else if (index('ul',durq) .gt. 0) then
+c
+c Set stem flipper
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),30)
+ if (durq .eq. 'u') islur(ivx,nnl(ivx)) =
+ * ibset(islur(ivx,nnl(ivx)),17)
+ go to 2
+ else if (durq .eq. 'a') then
+c
+c "Alone", i.e., prohibit beam
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),18)
+ go to 2
+ else if (durq .eq. 'r') then
+c
+c Right offset by one notehead
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),9)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ go to 2
+ else if (durq .eq. 'e') then
+c
+c Left offset by one notehead
+c
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),8)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ go to 2
+ else if (durq .eq. 'S') then
+c
+c Stemlength change. Get -dstemlen in \internotes. Allowable values are .5 to 4
+c Set mult(27). Map value to 0 to 7, store in mult(28-30). Later convert to
+c interbeams = internotes*2/3.
+c
+ mult(ivx,nnl(ivx)) = ibset(mult(ivx,nnl(ivx)),27)
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+c
+c End stickyS. Grab data now from prior note, since we have to shut off stickyS.
+c
+ call setbits (mult(ivx,nnl(ivx)),3,28,
+ * igetbits(mult(ivx,nnl(ivx)-1),3,28))
+ stickyS = .false.
+ go to 2
+ end if
+c
+c If durq .ne. ':' then iccount is now on the start of the number
+c
+ call readnum(lineq,iccount,durq,dum)
+ call setbits (mult(ivx,nnl(ivx)),3,28,nint((dum-.5)*2))
+ if (durq .eq. ':') then
+ stickyS = .true.
+ else
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .eq. ',') then
+c
+c 2:1 pattern
+c
+ idotform = 3
+c
+c Now flow to duration setting, as if durq=' '
+c
+ else if (durq .eq. '.') then
+c
+c Dotted pattern. Close out note. Mult time by 3/4.
+c Set time for next note to 1/4. Start the note.
+c
+ idotform = 1
+ else if (durq .eq. 'o') then
+c
+c Suppress rest centering
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),25)
+ go to 2
+ else if (durq .eq.'L') then
+c
+c With keyboard rest option, look left
+c
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),30)
+ go to 2
+ else if (index('DF',durq) .gt. 0) then
+c
+c Double note for xtup. Must check here in case "D" came before "x" or on
+c last note of xtup. Need to flag it in pmxa since affects horiz. spacing.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),18)
+ if (durq .eq. 'F') nacc(ivx,nnl(ivx)) =
+ * ibset(nacc(ivx,nnl(ivx)),19)
+ go to 2
+ else if (durq .eq. 'A') then
+c
+c Accidental option
+c
+ call getchar(lineq,iccount,durq)
+c
+ if (durq .eq. 'o') then
+c
+c Ordered accidentals in a chord. Mark the main note.
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),28)
+ else
+c
+c Only other possibility is +-<> . Set tag, reduce iccount and loop to get #'s
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),29)
+ iccount = iccount-1
+ end if
+ go to 2
+ else if (durq .ne. ' ') then
+ print*,'Illegal character in note: ',durq,', ivx,nn:',
+ * ivx,nnl(ivx)
+ call stop1()
+ end if
+c
+c Done with note/rest options. Set level and duration.
+c
+ if (.not.btest(irest(ivx,nnl(ivx)),0)) then
+ if (numnum .eq. 2) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ nolev(ivx,nnl(ivx)) = lastlev
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ nolev(ivx,nnl(ivx)) = lastlev
+ end if
+ do 43 npreslur = npreslur , 1 , -1
+c
+c Set level for preslur on normal note, non-chord
+c
+ call setbits(isdat2(nsdat-npreslur+1),7,19,lastlev)
+43 continue
+ end if
+ if (idotform .gt. 0) then
+ if (idotform .eq. 1) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)*3/2
+ else if (idotform .eq. 2) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/3
+ else if (idotform .eq. 3) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)
+ else if (idotform .eq. 4) then
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx)-1)/2
+ end if
+ else if (btest(islur(ivx,nnl(ivx)),19)) then
+c
+c Set duration of full-bar rest as pause
+c
+ nodur(ivx,nnl(ivx)) = lenbar
+c
+c Use a one-line function to set nnodur. It gives inverse of ifnodur.
+c
+ nnodur = index('62514x0x37',
+ * chax(48+int(log(.1+lenbar)/.69315)))-1
+ else if (ibarmbr.ne.nbars+1) then
+ nodur(ivx,nnl(ivx)) = ifnodur(nnodur,dotq)
+ if (btest(islur(ivx,nnl(ivx)),3))
+ * nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*7/6
+ end if
+ if (shifton .and. .not.btest(irest(ivx,nnl(ivx)),16)) then
+c
+c Shift is on, and this is not first shifted note. Check for duration change
+c
+ if (nodur(ivx,nnl(ivx)) .ne. nodur(ivx,nnl(ivx)-1)) then
+c
+c Must stop and restart the offset.
+c
+ irest(ivx,nnl(ivx)-1) = ibset(irest(ivx,nnl(ivx)-1),17)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),16)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udoff(ivx,nudoff(ivx)-1)
+ end if
+ end if
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ if (autofbon .and. tautofb.gt.tol .and. fbon) then
+c
+c Check to see if need to terminate auto forced beam
+c
+ if (mod(itsofar(ivx)-t1autofb,tautofb) .lt. tol) then
+c
+c Terminate autofb
+c
+ t2fb(ivx,nfb(ivx)) = itsofar(ivx)
+ fbon = .false.
+ end if
+ end if
+ if (mod(itsofar(ivx)-lenb0,lenbar) .eq. 0) then
+c
+c Finished a bar
+c
+ nbars = nbars+1
+ nib(ivx,nbars) = nnl(ivx)
+ if (firstgulp.and.lenb0.ne.0.and.nbars.eq.1) then
+c
+c Just finished the pickup bar for this voice.
+c
+ lenbar = lenb1
+ end if
+ end if
+ if (idotform .eq. 1) then
+ call getchar(lineq,iccount,charq)
+ idotform = 2
+ numnum = 1
+ go to 28
+ else if (idotform .eq. 3) then
+ call getchar(lineq,iccount,charq)
+ idotform = 4
+ numnum = 1
+ go to 28
+ end if
+c
+c End of sub block for note-rest
+c
+ else if (charq .eq. 'z') then
+c
+c Chord note. Must have note name, may have octave#,+,-,s,f,n,d
+c Actually the 'd' is not used, since time value comes from
+c basic note. Unless dot is to be shifted!
+c Doesn't increase # of notes, so must handle separately
+c ncrd: index of crd
+c Set bit 10 of ipl on main note as flag
+c Bits in icrdat:
+c 0-7 ip within voice
+c 8-11 ivx
+c 12-18 note level
+c 19 accidental?
+c 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp)
+c 23 shift left
+c 24 shift right
+c 25 arpeggio start or stop
+c 26 flag for moved dot (here, not icrdot, since this is always reset!)
+c 27 Midi-only accidental
+c 29 Tag for accidental shift...means add to autoshifts.
+c 31 Cautionary accidental
+c
+c Bits in icrdot:
+c 0-6 10*abs(vertical dot shift in \internote) + 64
+c 7-13 10*abs(horizontal dot shift in \internote) + 64
+c 14-19 vert accidental shift-32
+c 20-26 20*(horiz accidental shift+3.2)
+c 27-29 top-down level rank of chord note w/accid. Set in crdaccs.
+c
+c Bits in icrdorn are same as in iornq, even tho most orns won't go in crds.
+c
+ ncrd = ncrd+1
+ ipl(ivx,nnl(ivx)) = ibset(ipl(ivx,nnl(ivx)),10)
+ numnum = 0
+c icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8))
+ icrdat(ncrd) = nnl(ivx)
+ call setbits(icrdat(ncrd),4,8,mod(ivx,16))
+ if (ivx .ge. 16) icrdat(ncrd) = ibset(icrdat(ncrd),28)
+ icrdot(ncrd) = 0
+ icrdorn(ncrd) = 0
+c
+c Get note name
+c
+ call getchar(lineq,iccount,charq)
+c
+c Get optional inputs
+c
+25 call getchar(lineq,iccount,durq)
+c ndx = index('fsn+-<>12345678rediA',durq)
+ ndx = index('fsn+-<>12345678rediAc',durq)
+ if (ndx .eq. 20) then
+c
+c Expect +|-|<|> , set tag, loop
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),29)
+ go to 25
+ else if (ndx .gt. 0) then
+ if (ndx .le. 3) then
+ if (.not.btest(icrdat(ncrd),19)) then
+ icrdat(ncrd) = ibset(icrdat(ncrd),19)
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(ndx,20))
+ else
+ icrdat(ncrd) = ibset(icrdat(ncrd),22)
+ end if
+ else if (ndx .eq. 21) then
+c
+c Set flags for cautionary accidental
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),31)
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),31)
+ else if (ndx .le. 7) then
+c
+c +/-/</> Check whether octave or accidental shift
+c
+ nactmp = 0
+ call chkpm4ac(lineq,iccount,nactmp,moved)
+ if (moved) then
+c
+c Transfer accidental shift values
+c
+ call setbits(icrdot(ncrd),6,14,igetbits(nactmp,6,4))
+ call setbits(icrdot(ncrd),7,20,igetbits(nactmp,7,10))
+ else
+ if (durq .eq. '+') then
+ lastlev = lastlev+7
+ else if (durq .eq. '-') then
+ lastlev = lastlev-7
+ end if
+ end if
+ else if (durq .eq. 'e') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),23)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),27)
+ else if (durq .eq. 'r') then
+ icrdat(ncrd) = ibset(icrdat(ncrd),24)
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),20)
+ else if (durq .eq. 'i') then
+c
+c Midi-only accidental on chord note
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),27)
+ else if (durq .eq. 'd') then
+c
+c Must keep 'd' optional (backward compatibility), unless it is moved!
+c
+ if (index('+-',lineq(iccount+1:iccount+1)) .gt. 0) then
+c
+c move a dot, unless next char is not part of a number
+c
+ if (index('0123456789.',lineq(iccount+2:iccount+2))
+ * .eq. 0) go to 25
+ icrdat(ncrd) = ibset(icrdat(ncrd),26)
+ call getchar(lineq,iccount,durq)
+ iccount=iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (durq .eq. '+') then
+ icrdot(ncrd) = ior(icrdot(ncrd),nint(fnum*10)+64)
+ else
+ icrdot(ncrd) = ior(icrdot(ncrd),-nint(fnum*10)+64)
+ end if
+ if (index('+-',dumq) .gt. 0) then
+c
+c Vertical shift specified also
+c
+ iccount=iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (dumq .eq. '+') then
+ ifnum = nint(fnum*10)+64
+ else
+ ifnum = -nint(fnum*10)+64
+ end if
+ else
+ ifnum = 64
+ end if
+ icrdot(ncrd) = ior(icrdot(ncrd),ishft(ifnum,7))
+ iccount = iccount-1
+ end if
+ else
+c
+c must be a single digit, save it in ioct
+c
+ numnum = 1
+ ioct = ndx-7
+ end if
+ go to 25
+ end if
+ if (numnum .eq. 1) then
+ lastlev = ifnolev(charq,ioct,iTransAmt(instno(iv)))
+ else
+ lastlev = lastlev-3
+ * +mod(ifnolev(charq,10,iTransAmt(instno(iv)))-lastlev+3,7)
+ end if
+ icrdat(ncrd) = ior(icrdat(ncrd),ishft(lastlev,12))
+ do 44 npreslur = npreslur , 1 , -1
+ call setbits (isdat2(nsdat-npreslur+1),7,19,lastlev)
+c
+c Set level for chord note.
+c Initially I assigned the slur(s) to next note, so fix.
+c
+ islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),0)
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),0)
+ isdat2(nsdat-npreslur+1) = ibset(isdat2(nsdat-npreslur+1),0)
+ call setbits(isdat1(nsdat-npreslur+1),8,3,
+ * igetbits(isdat1(nsdat-npreslur+1),8,3)-1)
+44 continue
+ if (notcrd) then
+c
+c This is the first chord note in this chord.
+c
+ minlev = min(nolev(ivx,nnl(ivx)),lastlev)
+ maxlev = max(nolev(ivx,nnl(ivx)),lastlev)
+ else
+ minlev = min(minlev,lastlev)
+ maxlev = max(maxlev,lastlev)
+ end if
+ notcrd = .false.
+ else if (charq .eq. 'G') then
+ call getgrace(ivx,nnl,lineq,iccount,islur,iornq,ipl,ndlev,
+ * lastlev,iv,nv)
+ continue
+c
+c Grace, comes *before* main note:
+c UNLESS there's an 'A' or 'W' after the 'G'
+c ngrace = # of grace note groups so far in block
+c ivg(ngrace), ipg(ngrace)
+c nng(ngrace) = # of notes in this group: default = 1
+c ngstrt(ngrace) = starting position in nolevg of levels for this grace
+c multg(ngrace) = multiplicity: default = 1; input as 'm(digit)'
+c upg(ngrace) = logical for beam or stem dirn: default T, input'u,l'
+c slurg(ngrace) = logical for slur; default F, input 's'
+c slashg(ngrace) = T if slash; default is F, input 'x'
+c These data MUST precede note name of first note
+c nolevg, naccg: lists of levels and accid's, indexed as described above.
+c
+c ngrace = ngrace+1
+c ivg(ngrace) = ivx
+c ipg(ngrace) = nnl(ivx)+1
+c if (ngrace .eq. 1) then
+c ngstrt(ngrace) = 1
+c else
+c ngstrt(ngrace) = ngstrt(ngrace-1)+nng(ngrace-1)
+c end if
+c islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),4)
+c nng(ngrace) = 1
+c multg(ngrace) = 1
+c upg(ngrace) = .true.
+c slurg(ngrace) = .false.
+c slashg(ngrace) = .false.
+c18 call getchar(lineq,iccount,charq)
+c if (index('WA',charq) .gt. 0) then
+cc
+cc Grace is on note that was already done, so shift flags forward one note.
+cc This puts flag on actual note with grace; later for W will go ahead one more.
+cc
+c ipg(ngrace) = nnl(ivx)
+c islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),4)
+c islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),4)
+c if (slurg(ngrace))
+c * iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),24)
+c if (charq .eq. 'A') then
+cc
+cc close After, clear way-after bit, to ensure priority of most recent A/W
+cc
+c ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),31),29)
+c else
+cc
+cc Way after; later assign to following note, and position like normal grace.
+cc
+c ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),29),31)
+c end if
+c else if (charq .eq. 'm') then
+c call getchar(lineq,iccount,charq)
+c multg(ngrace) = ichar(charq)-48
+c else if (index('123456789',charq) .gt. 0) then
+c call readnum(lineq,iccount,durq,fnum)
+c iccount = iccount-1
+c nng(ngrace) = nint(fnum)
+c else if (charq .eq. 'l') then
+c upg(ngrace) = .false.
+c else if (charq .eq. 's') then
+c slurg(ngrace) = .true.
+c if (nnl(ivx) .gt. 0) then
+cc
+cc If A- or W-grace, set signal to start slur on main note.
+cc
+c if(btest(ipl(ivx,nnl(ivx)),31) .or.
+c * btest(ipl(ivx,nnl(ivx)),29))
+c * iornq(ivx,nnl(ivx))=ibset(iornq(ivx,nnl(ivx)),24)
+c end if
+c else if (charq .eq. 'x') then
+c slashg(ngrace) = .true.
+c else if (charq .eq. 'u') then
+c else if (charq .eq. 'X') then
+cc
+cc Space before main note of grace. Number will come next.
+cc
+c iccount = iccount+1
+c call readnum(lineq,iccount,durq,graspace(ngrace))
+c iccount = iccount-1
+c end if
+c if (index('abcdefg',charq) .eq. 0) go to 18
+cc
+cc At this point, charq is first note name in grace
+cc
+c do 19 ing = ngstrt(ngrace), ngstrt(ngrace)+nng(ngrace)-1
+c naccg(ing) = 0
+c ioct = 0
+c if (ing .gt. ngstrt(ngrace)) then
+c55 call getchar(lineq,iccount,charq)
+c if (charq .eq. ' ') go to 55
+c endif
+c iclastlev = 0
+c9 call getchar(lineq,iccount,durq)
+c if (durq .ne. ' ') then
+c if (durq.eq.'+') then
+c lastlev = lastlev+7
+c iclastlev = iclastlev+7
+c else if (durq.eq.'-') then
+c lastlev = lastlev-7
+c iclastlev = iclastlev-7
+c else if (index('fsn',durq) .gt. 0) then
+c if (naccg(ing) .eq. 0) then
+c naccg(ing) = index('fsn',durq)
+c else
+cc
+cc Double accidental
+cc
+c naccg(ing) = ibset(naccg(ing),2)
+c end if
+c else
+c ioct = ichar(durq)-48
+c end if
+c go to 9
+c end if
+c if (ioct .gt. 0) then
+c lastlev = ifnolev(charq,ioct)
+c else
+c if (nnl(ivx).eq.0 .and. ing.eq.ngstrt(ngrace)) then
+c if (ivx .le. nv) then
+c kv = 1
+c else
+c kv = 2
+c end if
+c lastlev = ndlev(iv,kv)+iclastlev
+c end if
+c lastlev = lastlev-3+mod(ifnolev(charq,10)-lastlev+3,7)
+c end if
+c nolevg(ing) = lastlev
+c19 continue
+cc
+cc Grace could come before first note of block, so reset end level.
+cc
+c if (nnl(ivx).eq.0) then
+c if (ivx .le. nv) then
+c kv = 1
+c else
+c kv = 2
+c end if
+c ndlev(iv,kv) = lastlev
+c end if
+ else if (charq .eq. sq) then
+c
+c Literal TeX string
+c
+ call littex(islur,nnl(ivx)+1,ivx,topmods,lineq,iccount)
+ else if (charq .eq. 'o') then
+c
+c Ornament on non-xtup note. Symbol must come AFTER the affected note
+c
+ if (notcrd) then
+ nole = nolev(ivx,nnl(ivx))
+ else
+ nole = iand(127,ishft(icrdat(ncrd),-12))
+ end if
+ call getorn(lineq,iccount,iornq(ivx,nnl(ivx)),
+ * iornq(ivx,0),ornrpt,noffseg,nnl(ivx),ivx,
+ * .true.,notcrd,nole)
+ else if (index('st(){}',charq) .gt. 0) then
+ nnlivx = nnl(ivx)
+ if (charq.eq.'(' .or. charq.eq.'{') then
+c
+c Detect preslur on normal non-chord note
+c
+ nnlivx = nnlivx+1
+ npreslur = npreslur+1
+ end if
+ islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),0)
+ if (charq.eq.'t')
+ * islur(ivx,nnlivx) = ibset(islur(ivx,nnlivx),1)
+ if (ivx .le. nv) then
+ kv = 1
+ else
+ kv = 2
+ end if
+ if (fontslur) then
+ call sslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,isdat3,
+ * nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ else
+ call spsslur(lineq,iccount,iv,kv,nnlivx,isdat1,isdat2,isdat3,
+ * isdat4,nsdat,notcrd,nolev(ivx,nnlivx),charq)
+ end if
+ else if (charq .eq. '?') then
+c
+c Arpeggio
+c
+ if (btest(ipl(ivx,nnl(ivx)),10)) then
+c
+c This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note
+c of chord, will not set icrdat(25), but iornq(27)
+c
+ icrdat(ncrd) = ibset(icrdat(ncrd),25)
+ else
+ iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),27)
+ end if
+c
+c Check for shift
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ iccount = iccount-1
+ else
+c
+c durq must be "-"
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+c
+c record the shift
+c
+ NumArpShift = NumArpShift+1
+ IvArpShift(NumArpShift) = ivx
+ IpArpShift(NumArpShift) = nnl(ivx)
+ ArpShift(NumArpShift) = fnum
+ end if
+ else if (index('0123456789#-nx_',charq) .gt. 0) then
+c
+c We have a figure. Must come AFTER the note it goes under
+c
+
+ ivf = 1
+ if (ivx .gt. 1) then
+ if (ivxfig2 .eq. 0) then
+ ivxfig2 = ivx
+ else if (ivx .ne. ivxfig2) then
+ print*
+ print*,'Figures not allowed in >1 voice above first'
+ stop
+ end if
+ ivf = 2
+ end if
+ nfig1 = nfigs(ivf)+1
+ call getfig(itoff(ivf,nfig1),charq,lineq,iccount,
+ * isfig(ivf,nnl(ivx)),itfig(ivf,nfig1),itsofar(ivx),
+ * nodur(ivx,nnl(ivx)),figq(ivf,nfig1),
+ * ivupfig(ivf,nfig1),nfigs(ivf))
+ else if (charq .eq. '[') then
+c
+c Start forced beam. Record barno & time since start of inp. blk. Set signal
+c
+ nfb(ivx) = nfb(ivx)+1
+ fbon = .true.
+ ulfbq(ivx,nfb(ivx)) = 'x'
+ t1fb(ivx,nfb(ivx)) = itsofar(ivx)
+ nadj = 0
+ if (autofbon) then
+ autofbon = .false.
+ end if
+17 call getchar(lineq,iccount,charq)
+ if (index('ulf',charq) .gt. 0) then
+ ulfbq(ivx,nfb(ivx)) = charq
+ go to 17
+ else if (charq .eq. 'j') then
+c
+c Continuing a jumped beam here
+c
+ irest(ivx,nnl(ivx)+1) = ibset(irest(ivx,nnl(ivx)+1),24)
+c
+c Set flag to watch for END of this forced beam, so can set flag rest(30) on
+c NEXT note as signal to start a new notes group there.
+c
+ isbj2 = .true.
+ go to 17
+ else if (charq .eq. 'h') then
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),2)
+ go to 17
+ else if (charq .eq. 'm') then
+c
+c Force multiplicity. Next input is digit
+c
+ call getchar(lineq,iccount,charq)
+ islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),21)
+ call setbits(islur(ivx,nnl(ivx)+1),3,22,ichar(charq)-48)
+ go to 17
+ else if (charq .eq. ':') then
+c
+c Start auto forced beam pattern
+c
+ autofbon = .true.
+c
+c When forced later beam ends, check whether tautofv <=0; if so set it.
+c
+ tautofb = -itsofar(ivx)
+ t1autofb = itsofar(ivx)
+ go to 17
+ else if (charq .ne. ' ') then
+c
+c Must be '+/-' for height or slope shift
+c
+ nadj = nadj+1
+c
+c nadj = 1,2, or 3 for normal start level, slope, or beam-thk start level.
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ iadj = nint(fnum)
+ if (charq .eq. '-') iadj = -iadj
+ if (nadj .eq. 1) then
+c
+c This is a level shift. Note if 0 was entered, iadj = 30
+c
+ call setbits(ipl(ivx,nnl(ivx)+1),6,11,iadj+30)
+ else if (nadj .eq. 2) then
+c
+c Must be a slope shift
+c
+ call setbits(ipl(ivx,nnl(ivx)+1),6,17,iadj+30)
+ else
+c
+c Beam-thk fine tune
+c
+ call setbits(islur(ivx,nnl(ivx)+1),2,27,iadj)
+ end if
+ go to 17
+ end if
+ else if (charq .eq. ']') then
+ if (autofbon .and. tautofb.lt.tol) then
+ tautofb=itsofar(ivx)+tautofb
+ end if
+ call getchar(lineq,iccount,charq)
+ if (index('j ',charq) .gt. 0) then
+c
+c Since ']' comes AFTER note, itsofar has been updated. Set ending signal.
+c
+ t2fb(ivx,nfb(ivx)) = itsofar(ivx)
+ fbon = .false.
+ if (charq .eq. 'j')
+ * irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),23)
+ if (isbj2) then
+c
+c This is the end of a fb segment of a jump beam. Set flag on NEXT note to
+c force start of new notes group, provided this is not last note in bar.
+c
+ if (mod(itsofar(ivx),lenbar) .ne. 0)
+ * irest(ivx,nnl(ivx)+1) = ibset(irest(ivx,nnl(ivx)+1),30)
+ isbj2 = .false.
+ end if
+ else if (charq .eq. '[') then
+c
+c Multiplicity down-up signal
+c
+ islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),20)
+ else if (charq .eq. '-') then
+c
+c Set signals for gap in single-slope beam [...]-[...]
+c
+ nacc(ivx,nnl(ivx)) = ibset(nacc(ivx,nnl(ivx)),20)
+ nacc(ivx,nnl(ivx)+1) = ibset(nacc(ivx,nnl(ivx)+1),21)
+c
+c Next two characters must be "[ ". Skip over them.
+c
+ iccount = iccount+2
+ end if
+ else if (charq .eq. 'D') then
+ call getdyn(ivx,nnl(ivx),irest(ivx,nnl(ivx)),
+ * iornq(ivx,nnl(ivx)),lineq,iccount)
+ else if (charq .eq. 'h') then
+c
+c Heading or height. For heading, only OK if at start of block
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "h" not at beginning of block'
+ call stop1()
+ end if
+ call getchar(lineq,iccount,durq)
+ ihdvrt = 0
+ if (index('+-',durq) .gt. 0) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ ihdvrt = fnum+.1
+ if (durq .eq. '-') ihdvrt = -ihdvrt
+ durq = charq
+ end if
+ if (durq .ne. ' ') then
+c
+c Height symbol. Read past (until next blank)
+c
+3 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 3
+ else
+c
+c Set flag for header & read it in
+c
+ ihdht = 16
+ call getbuf(headrq)
+ iccount = 128
+ end if
+ else if (charq .eq. 'L') then
+c
+c Linebreak, already handled in pmxa, but check for movement break
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fmovbrk)
+ if (durq .eq. 'P') then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ end if
+ if (durq .eq. 'M') then
+ movbrk = nint(fmovbrk)
+ movgap = 0
+ parmov = -1.
+ call getchar(lineq,iccount,durq)
+31 if (durq .eq. '+') then
+c
+c Get vertical space (\internotes)
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ movgap = nint(fnum)
+ go to 31
+ else if (durq .eq. 'i') then
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,parmov)
+ go to 31
+ else if (durq .eq. 'c') then
+ nobar1 = .true.
+ call getchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'r') then
+c
+c "rename" can be set on or off.
+c
+ call getchar(lineq,iccount,durq)
+ rename = durq.eq.'+'
+ call getchar(lineq,iccount,durq)
+ go to 31
+ else if (durq .eq. 'n') then
+c
+c Change # of voices. Input ninow, iiorig(1...ninow). Will use names,
+c staves per inst. and clefs corr. to iiorig in original list of instruments.
+c
+ nvold = nv
+ nv = 0
+ rename = .true.
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+ iccount = iccount+2
+ read(lineq(iccount-1:iccount),'(i2)')ninow
+ else
+ ninow = ichar(durq)-48
+ end if
+ iiv = 0
+ do 63 iinow = 1 , ninow
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ':') then
+ iccount = iccount+2
+ read(lineq(iccount-1:iccount),'(i2)')iiorig(iinow)
+ else
+ iiorig(iinow) = ichar(durq)-48
+ end if
+ nspern(iinow) = nsperi(iiorig(iinow))
+ nv = nv+nspern(iinow)
+ sepsymq(iiv+nspern(iinow)) = '&'
+ if (nspern(iinow) .gt. 1) then
+ do 64 iis = 1 , nspern(iinow)-1
+ sepsymq(iiv+iis) = '|'
+64 continue
+ end if
+ iiv = iiv+nspern(iinow)
+63 continue
+ if (islast) then
+ if (ninow .lt. 10) then
+ write(11,'(a)')sq//'newnoi{'//chax(ninow+48)//'}%'
+ else
+ write(11,'(a8,i2,a2)')sq//'newnoi{',ninow,'}%'
+ end if
+ end if
+ if (nv.eq.1 .and. nvold.gt.1) then
+ if (islast) write(11,'(a)')sq//'nostartrule'
+ else if (nv.gt.1 .and. nvold.eq.1) then
+ if (islast) write(11,'(a)')sq//'startrule'
+ end if
+ iiv = 0
+ do 60 iinow = 1 , ninow
+ do 61 iis = 1 , nspern(iinow)
+ iiv = iiv+1
+c
+c May not really need to re-enter clefs, but it's easier to program since
+c clef names are not saved but are needed in newvoice to set ncmidcc.
+c
+ call getchar(lineq,iccount,clefq(iiv))
+ call newvoice(iiv,clefq(iiv),.true.)
+ if (nspern(iinow) .eq. 1) then
+ hdlndq = chax(48+numclef(clefq(iiv)))
+ lclf = 1
+ else if (iis .eq. 1) then
+ hdlndq = '{'//chax(48+numclef(clefq(iiv)))
+ lclf = 2
+ else if (iis .lt. nspern(iinow)) then
+ hdlndq = hdlndq(1:lclf)//chax(48+numclef(clefq(iiv)))
+ lclf = lclf+1
+ else
+ hdlndq =
+ * hdlndq(1:lclf)//chax(48+numclef(clefq(iiv)))//'}'
+ lclf = lclf+2
+ end if
+61 continue
+c
+c setstaffs & setclef go by instrument, not voice
+c
+ if (islast) then
+ if (iinow .lt. 10) then
+ write(11,'(a)')sq//'setstaffs'
+ * //chax(48+iinow)//chax(48+nspern(iinow))//'%'
+ write(11,'(a)')sq//'setclef'//chax(48+iinow)
+ * //hdlndq(1:lclf)//'%'
+ else
+ write(11,'(a11,i2,a)')sq//'setstaffs{',iinow,
+ * '}'//chax(48+nspern(iinow))//'%'
+ write(11,'(a9,i2,a)')sq//'setclef{',iinow,
+ * '}'//hdlndq(1:lclf)//'%'
+ end if
+ end if
+60 continue
+c
+c Loop back up, this may not be last option in M. Note flow out if durq=' '
+c
+ call getchar(lineq,iccount,durq)
+ go to 31
+ end if
+c
+c Write instrument names
+c
+ if (.not.rename) then
+ do 62 iinst = 1 , ninow
+ if (islast) then
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a3)')sq//'setname',iinst,'{}%'
+ else
+ write(11,'(a9,i2,a4)')sq//'setname{',iinst,'}{}%'
+ end if
+ end if
+62 continue
+ else
+ do 65 iinst = 1 , ninow
+ if (islast) then
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a)')sq//'setname',iinst,'{'//
+ * inameq(iiorig(iinst))(1:lnam(iiorig(iinst)))//'}%'
+ else
+ write(11,'(a9,i2,a)')sq//'setname{',iinst,'}{'//
+ * inameq(iiorig(iinst))(1:lnam(iiorig(iinst)))//'}%'
+ end if
+ end if
+65 continue
+ rename = .false.
+ end if
+ end if
+ else if (charq .eq.'|' ) then
+c
+c End of bar symbol. Check about end of bar hardspace.
+c
+ if (btest(iornq(ivx,nnl(ivx)+1),26)) then
+c
+c There was a hardspace followed by a bar line. Remove it from the hardspace
+c list, store with shifts instead, set special bit. Need to repeat this code
+c at '/'.
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),18)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udsp(nudsp)
+ nudsp = nudsp-1
+ iornq(ivx,nnl(ivx)+1) = ibclr(iornq(ivx,nnl(ivx)+1),26)
+ end if
+ else if (index('wS',charq) .gt. 0) then
+c
+c Width symbol or new nsyst. Read past (until blank)
+c
+4 call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') go to 4
+ else if (charq .eq. 'l') then
+c
+c Lower string. Only OK if at start of block
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "l" not at beginning of block'
+ call stop1()
+ end if
+c
+c Set flag for lower string & read it in
+c
+ lower = .true.
+ call getbuf(lowerq)
+ iccount = 128
+ else if (charq .eq. 'm') then
+c
+c Meter change. Only allow at beginning of block.
+c mtrnuml, mtrdenl (logical) and p (printable) will be input.
+c mtrnuml=0 initially. (In common)
+c
+c Check whether at beginning of a block
+c
+ if (iv.ne.1 .or. nnl(1).ne.0) then
+ print*,'You entered "m" not at beginning of block'
+ call stop1()
+ end if
+ call readmeter(lineq,iccount,mtrnuml,mtrdenl)
+ call readmeter(lineq,iccount,mtrnmp,mtrdnp)
+ lenbeat = ifnodur(mtrdenl,'x')
+ if (mtrdenl .eq. 2) lenbeat = 16
+ lenbar = mtrnuml*lenbeat
+ if (mtrdenl .eq. 2) lenbar = lenbar*2
+ lenb1 = lenbar
+ lenb0 = 0
+ if (ismidi) call midievent('m',mtrnuml,mtrdenl)
+ else if (charq .eq. 'C') then
+c
+c Clef change on next note. Set bits 11-15. Won't allow in 2nd line of music.
+c
+ if (nnl(iv) .gt. 0) ncc(iv) = ncc(iv)+1
+ tcc(iv,ncc(iv)) = itsofar(iv)
+ isl = ibset(islur(iv,nnl(iv)+1),11)
+ call getchar(lineq,iccount,durq)
+c
+c Store clef number, or 7 if clef number = 9 (French violin clef)
+c
+ isl = ior(isl,ishft(min(numclef(durq),7),12))
+ ncmidcc(iv,ncc(iv)) = ncmidf(durq)
+c
+c Set marker on note with lowest voice # starting at same time.
+c
+ if (iv .eq. 1) then
+ isl = ibset(isl,15)
+ else
+ do 13 iiv = 1 , iv
+ nnliiv = nnl(iiv)
+ if (iiv .eq. iv) nnliiv = nnliiv+1
+ itother = 0
+ do 14 iip = 1 , nnliiv
+ if (itother .lt. itsofar(iv)) then
+ itother = itother+nodur(iiv,iip)
+ go to 14
+ else if (itother .eq. itsofar(iv)) then
+ islur(iiv,iip) = ibset(islur(iiv,iip),15)
+ go to 15
+ end if
+14 continue
+13 continue
+15 continue
+ end if
+c
+c Need 'or' since may have set bit 15 in the above loop
+c
+ islur(iv,nnl(iv)+1) = ior(isl,islur(iv,nnl(iv)+1))
+ else if (charq .eq. 'R') then
+c
+c Repeats. set bits 5, 6, and/or 8 of islur(1,ip+1)
+c
+10 call getchar(lineq,iccount,durq)
+c
+c Save designator in case it's a terminal Rr or Rd
+c
+ if (durq .eq. 'l') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),5)
+ go to 10
+ else if (index('rdDbz',durq) .gt. 0) then
+ if (durq .eq. 'r') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),6)
+ else if (durq .eq. 'd') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),8)
+ else if (durq .eq. 'D') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),26)
+ else if (durq .eq. 'b') then
+ islur(1,nnl(1)+1) = ibset(islur(1,nnl(1)+1),25)
+ else if (durq .eq. 'z') then
+ iornq(1,nnl(1)+1) = ibset(iornq(1,nnl(1)+1),29)
+ end if
+ rptprev = .true.
+ rptfq1 = durq
+ go to 10
+ end if
+ else if (charq .eq. 'V') then
+c
+c Ending
+c
+ nnnl = nnl(1)+1
+ lvoltxt = 0
+11 call getchar(lineq,iccount,durq)
+ if (durq.eq.'b' .or. durq .eq.'x') then
+c
+c End Volta, set bit9, and bit10 on if 'b' (end w/ box)
+c
+ islur(1,nnnl) = ibset(islur(1,nnnl),9)
+ if (durq .eq. 'b') islur(1,nnnl) = ibset(islur(1,nnnl),10)
+ go to 11
+ else if (durq .ne. ' ') then
+c
+c Start volta; Get text
+c
+ if (lvoltxt .eq. 0) then
+c
+c First character for text
+c
+ lvoltxt = 1
+ islur(1,nnnl) = ibset(islur(1,nnnl),7)
+ nvolt = nvolt+1
+ voltxtq(nvolt) = durq
+ else
+ voltxtq(nvolt) = voltxtq(nvolt)(1:lvoltxt)//durq
+ lvoltxt = lvoltxt+1
+ end if
+ go to 11
+ end if
+ else if (charq .eq. 'B') then
+ bcspec = .not.bcspec
+ else if (charq .eq. 'P') then
+c
+c Page numbers. Print stuff right now.
+c
+ npg1 = 0
+c
+c Will use ltopnam to signal whether there's a centered heading
+c
+ ltopnam = 0
+ ipg1r = 0
+16 call getchar(lineq,iccount,durq)
+ if (ichar(durq).ge.48 .and. ichar(durq).le.57) then
+ npg1 = npg1*10+ichar(durq)-48
+ go to 16
+ else if (durq .eq. 'l') then
+ if (npg1.eq.0 .or. mod(npg1,2).eq.1) ipg1r = 1
+ go to 16
+ else if (durq .eq. 'r') then
+ if (npg1.gt.0 .and. mod(npg1,2).eq.0) ipg1r = 1
+ go to 16
+ else if (durq .eq. 'c') then
+c
+c Top-centered name. Assume this is last option. Read the name.
+c May surround name in double quotes (to allow blanks).
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. ' ') then
+ ltopnam = lenstr(cheadq,60)
+ else
+ namstrt = iccount
+ if (durq .eq. '"') then
+c
+c Using quote delimiters.
+c
+ quoted = .true.
+ namstrt = namstrt+1
+ else
+ quoted = .false.
+ end if
+ do 35 iccount = namstrt+1, 128
+ if ((quoted .and. lineq(iccount:iccount) .eq. '"') .or.
+ * (.not.quoted .and. lineq(iccount:iccount) .eq. ' '))
+ * go to 36
+c
+c On exit, iccount is OK, and name is in (namstrt:iccount-1)
+c
+35 continue
+ print*,'Awww, cmon, should not be here.'
+ call stop1()
+36 continue
+ ltopnam = iccount-namstrt
+ cheadq = lineq(namstrt:iccount-1)
+ end if
+ end if
+c
+c Done getting data, now assemble the command
+c
+ if (npg1.eq.0) npg1=1
+c
+c 2/23/03 Don't use \atnextline if on first page and only one system
+c
+c if (ipage.gt.1 .or. nsystp(1).gt.1) then
+ hdlndq = sq//'def'//sq//'atnextline{'//sq//'toppageno{'
+ lhead = 27
+c else
+c hdlndq = sq//'toppageno{'
+c lhead = 11
+c end if
+ if (npg1 .lt. 10) then
+c
+c Note we are overwriting the last "{"
+c
+ write(hdlndq(lhead:lhead),'(i1)')npg1
+ else if (npg1 .lt. 100) then
+ lhead = lhead+3
+ write(hdlndq(lhead-2:lhead),'(i2,a1)')npg1,'}'
+ else
+ lhead = lhead+4
+ write(hdlndq(lhead-3:lhead),'(i3,a1)')npg1,'}'
+ end if
+ hdlndq = hdlndq(1:lhead)//chax(ipg1r+48)//'{'
+ lhead = lhead+2
+c if (ipage.gt.1 .or. nsystp(1).gt.1) then
+ if (ltopnam .eq. 0) then
+ if (islast) write(11,'(a)')hdlndq(1:lhead)//'}}%'
+ else
+ if (islast)
+ * write(11,'(a)')hdlndq(1:lhead)//cheadq(1:ltopnam)//'}}%'
+ end if
+c else
+c if (ltopnam .eq. 0) then
+c if (islast) write(11,'(a)')hdlndq(1:lhead)//'}%'
+c else
+c if (islast)
+c * write(11,'(a)')hdlndq(1:lhead)//cheadq(1:ltopnam)//'}%'
+c end if
+c end if
+ else if (charq .eq. 'W') then
+c
+c Just eat the number that must follow, it was used in pmxa
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ else if (charq .eq. 'T') then
+ headlog = .true.
+ inhead = 0
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'i') then
+ call getbuf(instrq)
+c
+c A kluge for parts from separate score file for later movements.
+c
+ if (instrq(1:1) .eq. ' ') headlog = .false.
+ cheadq = instrq
+ else if (durq .eq. 't') then
+ call getchar(lineq,iccount,durq)
+c
+c Optionally can include extra vertical \internotes above inbothd
+c
+ if (index('-+0123456789',durq) .gt. 0) then
+ ipm = 1
+ if (index('+-',durq) .gt. 0) then
+c
+c Don't trust readnum to round this negative integer properly
+c
+ iccount = iccount+1
+ if (durq .eq. '-') ipm = -1
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ inhead = ipm*nint(fnum)
+ end if
+ call getbuf(titleq)
+ else
+ call getbuf(compoq)
+ end if
+ inhead = inhead+inbothd
+ iccount = 128
+ else if (charq .eq. 'A') then
+c
+c Accidental handling etc.
+c
+27 call getchar(lineq,iccount,durq)
+ if (durq .eq. 'r') then
+ if (islast) then
+ relacc = .true.
+ write(11,'(a)')sq//'relativeaccid%'
+ end if
+ else if (durq .eq. 's') then
+ bacfac = 1.e6
+ else if (durq .eq. 'b') then
+ if (islast) write(11,'(a)')sq//'bigaccid%'
+ accfac = bacfac
+ else if (durq .eq. 'a') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fnum)
+ iccount = iccount-1
+ else if (durq .eq. 'i') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,tintstf)
+ if (.not.firstgulp) fintstf = tintstf
+c
+c Local corrections for first page were handled by pmxa
+c
+ iccount = iccount-1
+ else if (durq .eq. 'I') then
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,gintstf)
+ iccount = iccount-1
+ else if (durq .eq. 'd') then
+ lowdot = .true.
+ else if (durq .eq. 'o') then
+ continue
+ else if (durq .eq. 'S') then
+ do 50 iiv = 1 , nv
+ call getchar(lineq,iccount,durq)
+ if (index('-s',durq) .gt. 0) then
+ fullsize(iiv) = 0.8
+ else if (durq .eq. 't') then
+ fullsize(iiv) = 0.64
+ else
+ fullsize(ivx) = 1.0
+ end if
+50 continue
+ else if (durq .eq. 'e') then
+c
+c Line-spacing equalization
+c
+ equalize = .true.
+c
+c The following redefinition of \parskip was put into pmx.tex in version 2.25 or so.
+c But it causes problems with some older scores and when excerpts are combined
+c with LaTeX. So as of 2.352 we write it here.
+c
+ write(11,'(a)')sq//'global'//sq//'parskip 0pt plus 12'//sq
+ * //'Interligne minus 99'//sq//'Interligne%'
+ tempq = sepsymq(1)
+ lentemp = 1
+ do 51 iiv = 2 , nv-1
+ tempq = tempq(1:lentemp)//sepsymq(iiv)
+ lentemp = lentemp+1
+51 continue
+ write(11,'(a)')sq//'def'//sq//'upstrut{'//sq//'znotes'
+ * //tempq(1:lentemp)//sq//'zcharnote{'//sq//'upamt}{~}'
+ * //sq//'en}%'
+ else if (durq .eq. 'v') then
+c
+c Toggle usevshrink
+c
+ usevshrink = .not.usevshrink
+ else if (durq .eq.'p') then
+c
+c Postscript slurs. fontslur is already false (set in g1etnote)
+c
+ if (.not.WrotePsslurDefaults) then
+c
+c Set postscrirpt slur adjustment defaults
+c
+ write(11,'(a)')sq//'Nosluradjust'//sq//'Notieadjust'
+ * //sq//'nohalfties'
+ WrotePsslurDefaults = .true.
+ end if
+52 continue
+ call g1etchar(lineq,iccount,durq) ! might be "+", "-", "h" or "l"
+ if (index('+-',durq) .gt. 0) then
+c
+c Characters to change defaults for ps slurs
+c
+ call g1etchar(lineq,iccount,charq) ! charq will be "s,t,h,c"
+ if (durq .eq. '+') then
+ if (charq .eq. 's') then
+ write(11,'(a)')sq//'Sluradjust'
+ else if (charq .eq. 't') then
+ write(11,'(a)')sq//'Tieadjust'
+ else if (charq .eq. 'h') then
+ write(11,'(a)')sq//'halfties'
+ else
+ SlurCurve = SlurCurve + 1
+ if (SlurCurve .gt. 3.1) then
+ call printl('WARNING!')
+ call printl
+ * ('Default slur curvature advanced past HH, resetting')
+ SlurCurve = 3
+ end if
+ end if
+ else
+ if (charq .eq. 's') then
+ write(11,'(a)')sq//'Nosluradjust'
+ else if (charq .eq. 't') then
+ write(11,'(a)')sq//'Notieadjust'
+ else if (charq .eq. 'h') then
+ write(11,'(a)')sq//'nohalfties'
+ else
+ SlurCurve = SlurCurve - 1
+ if (SlurCurve .lt. -1.1) then
+ call printl('WARNING!')
+ call printl(
+ * 'Default slur curvature decremented below f, resetting')
+ SlurCurve = -1
+ end if
+ end if
+ end if
+ go to 52 ! Check for another set of default changes
+ else if (durq .eq. 'l') then
+c
+c Set optional linebreak ties
+c
+ OptLineBreakTies = .true.
+ go to 52
+ else if (durq .eq. 'h') then
+c
+c Set flag to write header special on every page
+c
+ HeaderSpecial = .true.
+ go to 52
+ else
+ iccount = iccount-1
+ end if
+ else if (durq .eq. 'K') then
+c
+c Toggle keyboard rest placement flag
+c
+ kbdrests = .not.kbdrests
+ else if (durq .eq. 'c') then
+ call g1etchar(lineq,iccount,durq)
+c
+c Just eat the input; it was used in pmax
+c
+ go to 27
+ end if
+ if (index('NR',durq) .gt. 0) then
+c
+c Override default part names for scor2prt, or normal include file.
+c Just bypass rest of input line
+c
+ iccount = 128
+ else if (durq .ne. ' ') then
+ go to 27
+ end if
+ else if (charq .eq. 'K') then
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. 'i') then
+c
+c Normal, full-score key change and/or transposition
+c
+ num1 = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ num1 = num1*nint(fnum)
+c
+c On exit, durq='+','-'. But only need isig if after start, else done in pmxa
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ if (num1 .eq. 0) then
+c
+c Key change, not transposition.
+c
+ ipl(ivx,nnl(ivx)+1) = ibset(ipl(ivx,nnl(ivx)+1),28)
+ lastisig = isig
+ isig = nint(fnum)
+ if (durq .eq. '-') isig = -isig
+ isig = isig+idsig
+ if (ismidi) call midievent('k',isig,0)
+ else
+c
+c num1 .ne. 0, so transposition, so must be at beginning. isig came with K...
+c but was passed to pmxb through pmxtex.dat. isig0 comes from setup data
+c (signature before transposition). idsig must be added to future key changes.
+c
+ jv = 0
+ do while (jv .lt. nm)
+ jv = jv+1
+ iTransAmt(jv) = num1
+ end do
+ idsig = isig-isig0
+ end if
+ else
+c
+c Instrument specific transposition.
+
+ call GetiTransInfo(.false.,ibarcnt,lineq,iccount,
+ * ibaroff,nbars,noinst,iv)
+ end if
+ else if (charq .eq. '/') then
+ if (btest(iornq(ivx,nnl(ivx)+1),26)) then
+c
+c There was a hardspace followed by end of block. Remove it from the hardspace
+c list, store with shifts instead, set special bit. This code also at '|'
+c
+ irest(ivx,nnl(ivx)) = ibset(irest(ivx,nnl(ivx)),18)
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = udsp(nudsp)
+ nudsp = nudsp-1
+ iornq(ivx,nnl(ivx)+1) = ibclr(iornq(ivx,nnl(ivx)+1),26)
+ end if
+ call getchar(lineq,iccount,durq)
+c
+c Save ending note level:
+c
+ if (ivx .le. nv) then
+c
+c This is the first line of music on this staff. If previous block had only 1
+c voice, save last pitch from line 1 of prev. block to line 2, in case a
+c 2nd line is started just below
+c
+ if (.not.was2(iv)) ndlev(iv,2) = ndlev(iv,1)
+ was2(iv) = .false.
+ ndlev(iv,1) = lastlev
+ else
+c
+c This is the 2nd line of music on this staff.
+c
+ was2(iv) = .true.
+ ndlev(iv,2) = lastlev
+ end if
+ if (durq .eq. ' ' .and. iv.eq.nv) then
+c
+c End of input block
+c
+ loop = .false.
+ else
+c
+c Start a new line of music
+c
+ if (lenb0.ne.0 .and. firstgulp) lenbar = lenb0
+ nbars = 0
+ if (durq .eq. ' ') then
+c
+c New line of music is on next staff
+c
+ iv = iv+1
+ ivx = iv
+ else
+c
+c durq must be 2nd '/'. New line of music is on same staff. Set up for it
+c
+ ivx = nv+1
+ do 23 iiv = 1 , nv
+ if (nvmx(iiv) .eq. 2) ivx = ivx+1
+23 continue
+ nvmx(iv) = 2
+ ivmx(iv,2) = ivx
+ itsofar(ivx) = 0
+ nnl(ivx) = 0
+ nfb(ivx) = 0
+ nudoff(ivx) = 0
+ ndotmv(ivx) = 0
+ do 24 j = 1 , 200
+ irest(ivx,j) = 0
+ islur(ivx,j) = 0
+ nacc(ivx,j) = 0
+ iornq(ivx,j) = 0
+ ipl(ivx,j) = 0
+ mult(ivx,j) = 0
+24 continue
+c
+c Go back and lower the rests in voice "a" that don't have over-ridden heights
+c
+ do 26 j = 1 , nnl(iv)
+ if (btest(irest(iv,j),0) .and. nolev(iv,j).eq.0)
+ * nolev(iv,j) = -4
+26 continue
+ end if
+ end if
+ iccount = 128
+ else if (charq .eq. 'X') then
+c
+c 3rd arg is only for termination of group shifts. Use "max" to avoid zero index,
+c which only happens for normal X at block start, and we took special measures to
+c keep group shifts for crossing block boundaries.
+c
+ call getx(lineq,iccount,irest(ivx,max(1,nnl(ivx))),
+ * shifton,wheadpt,iornq(ivx,nnl(ivx)+1),ivx,
+ * irest(ivx,nnl(ivx)+1),itsofar(ivx),0,0,0,' ',ndoub)
+ else if (charq .eq. 'I') then
+c
+c Midi controls.
+c
+ call getmidi(nv,lineq,iccount,ibarcnt,ibaroff,nbars,lenbar,
+ * mtrdenl,.false.)
+ else if (charq .eq. 'M') then
+c
+c Macro action
+c
+ call getchar(lineq,iccount,charq)
+ if (index('RS',charq) .gt. 0) then
+c
+c Record or save a macro. Get the number of the macro.
+c
+ call getchar(lineq,iccount,durq)
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ macuse = ibset(macuse,macnum)
+ if (charq .eq. 'R') then
+ call mrec1(lineq,iccount,ndxm)
+ else
+c
+c Save (Record but don't activate)
+c
+5 call mrec1(lineq,iccount,ndxm)
+ if (mrecord) then
+ call getbuf(lineq)
+ iccount = 0
+ go to 5
+ end if
+ iccount = iccount+ndxm+1
+ end if
+ else if (charq .eq. 'P') then
+c
+c Playback the macro
+c
+ call getchar(lineq,iccount,charq)
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ icchold = iccount
+ lnholdq = lineq
+ iccount = 128
+ ilmac = il1mac(macnum)
+ mplay = .true.
+ end if
+ else if (index(',.',charq) .gt. 0) then
+c
+c Continued rhythmic shortcut
+c
+ idotform = index('. ,',charq)
+ if (idotform .eq. 1) then
+c
+c Check for start of forced beam on 2nd member of dotform=1 shortcut
+c
+ if (fbon) then
+ if (t1fb(ivx,nfb(ivx)).eq.itsofar(ivx))
+ * t1fb(ivx,nfb(ivx)) =
+ * t1fb(ivx,nfb(ivx))+nodur(ivx,nnl(ivx))/2
+ end if
+c
+c Change duration of prior note
+c
+ itsofar(ivx) = itsofar(ivx)-nodur(ivx,nnl(ivx))
+ nodur(ivx,nnl(ivx)) = nodur(ivx,nnl(ivx))*3/2
+ itsofar(ivx) = itsofar(ivx)+nodur(ivx,nnl(ivx))
+ end if
+ idotform = idotform+1
+ numnum = 1
+ cdot = .true.
+ go to 1
+ end if
+ return
+ end
+ subroutine getorn(lineq,iccount,iornq,iornq0,ornrpt,noffseg,
+ * ip,ivx,noxtup,notcrd,nole)
+c
+c iornq: Main note. Do not alter if chord note, except turn on bit 23
+c iornq0: Store iorni + bit 23, in case of repeated ornaments
+c iorni: Internal use, 1st 21 bits of iornq or icrdorn, dep. on notcrd.
+c noffseg: horiz. offset for segno
+c nole: level of note w/ orn, used to ID the note/orn if there's a level shift.
+c
+
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comcb/ nbc,ibcdata(36)
+ character*1 charq,durq
+ character*128 lineq
+ logical ornrpt,negseg,noxtup,notcrd
+c
+c Bits 0-13: (stmgx+Tupf._), 14: Down fermata, was F, 15: Trill w/o "tr", was U
+c 16-18 Editorial sharp, flat, natural "oes,f,n"; 19-20: >^, 21 TBD
+c
+ call getchar(lineq,iccount,charq)
+ if (index('bc',charq) .gt. 0) then
+c
+c caesura or breath, handle specially and exit. Set up data in ibcdata(1...nbc)
+c ivx(0-3,28), ip(4-12),
+c vshift (vshift+32 in bits 13-18),
+c hshift (nint(10*vshift)+128 in bits 19-26)
+c bit 27 = 0 if caesura, 1 if breath
+c bit 28: 5th bit of ivx
+c
+ iornq = ibset(iornq,28)
+ nbc = nbc+1
+c ibcdata(nbc) = ivx+16*ip
+ ibcdata(nbc) = mod(ivx,16)+16*ip
+ if (ivx.ge.16) ibcdata(nbc) = ibset(ibcdata(nbc),28)
+ if (charq .eq. 'b') ibcdata(nbc) = ibset(ibcdata(nbc),27)
+ call getchar(lineq,iccount,durq)
+ if (index('+-',durq) .gt. 0) then
+c
+c We have a vertical shift, get it
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,charq,fnum)
+ if (durq .eq. '-') fnum=-fnum
+ call setbits(ibcdata(nbc),6,13,nint(32+fnum))
+ if (index('+-',charq) .gt. 0) then
+c
+c Horizontal shift, get it
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (charq .eq. '-') fnum=-fnum
+ call setbits(ibcdata(nbc),8,19,nint(10*fnum)+128)
+ end if
+ end if
+ return
+ end if
+c
+c Set signal on main note that some note at this time has ornament. ONLY used
+c in beamstrt to activate further tests for whether ihornb is needed.
+c
+ iornq = ibset(iornq,23)
+c
+c Isolate 21 bits defining exisiting ornaments
+c
+ if (notcrd) then
+ iorni = iand(4194303,iornq)
+ else
+ iorni = iand(4194303,icrdorn(ncrd))
+ end if
+ korn = index('stmgx+Tupf._)e:XXX>^',charq)
+ if (korn .ne. 15) iorni = ibset(iorni,korn)
+c
+c Note that korn=0 => charq='(', and we set bit 0. if "e" (14), alter later
+c as follows: korn=16-18 for sfn, and or 21 for bare ?.
+c When this if-block is done, korn will = bit# of actual ornament (unless "?").
+c
+ if (korn .eq. 15) then
+c
+cc Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-20 prev iornq
+c Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-21 prev iornq
+c
+c iorni = ior(iorni,iand(iornq0,1638383))
+ iorni = ior(iorni,iand(iornq0,3735535))
+ ornrpt = .false.
+ call getchar(lineq,iccount,durq)
+c
+c durq will be ' '
+c
+ else if (korn .eq. 14) then
+c
+c Editorial accidental
+c
+ call getchar(lineq,iccount,durq)
+c korn = 15+index('sfn',durq)
+ korn = 15+index('sfn?',durq)
+ if (korn .eq. 19) korn=21
+ iorni = ibset(ibclr(iorni,14),korn)
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. '?') then
+c
+c This is "oe[s|f|n]?". Set 21st bit also.
+c
+ iorni = ibset(iorni,21)
+ korn = korn+6
+ call getchar(lineq,iccount,durq)
+ end if
+c iorni = ibset(ibclr(iorni,14),korn)
+ else if (korn.eq.4 .and. noxtup) then
+c
+c segno. Check in pmxa for just 1/block & notcrd. Get horiz. offset in points
+c
+ noffseg = 0
+ negseg = .false.
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+c
+c Segno shift is specified
+c
+ if (durq .eq. '-') then
+ negseg = .true.
+ call getchar(lineq,iccount,durq)
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ noffseg = int(fnum)
+ if (negseg) noffseg = -noffseg
+ end if
+ else if (korn .eq. 7) then
+c
+c Trill. Check in pmxa for notcrd. Default is 1 noteskip long, with "tr"
+c
+ ntrill = ntrill + 1
+ ivtrill(ntrill) = ivx
+ iptrill(ntrill) = ip
+ xnsktr(ntrill) = 1.
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 't') then
+c
+c Convert to new internal symbol for non-'"tr" trill
+c
+ korn = 15
+ iorni = ibset(ibclr(iorni,7),15)
+ call getchar(lineq,iccount,durq)
+ end if
+ if (index('0123456789.',durq) .gt. 0) then
+c
+c We have a number for the length
+c
+ call readnum(lineq,iccount,durq,xnsktr(ntrill))
+ end if
+ else if (korn.eq.10 .and. noxtup) then
+c
+c Fermata
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'd') then
+ korn = 14
+ iorni = ibset(ibclr(iorni,10),14)
+ call getchar(lineq,iccount,durq)
+ end if
+ else
+ call getchar(lineq,iccount,durq)
+ end if
+ if (index('+- :',durq) .eq. 0) then
+ print*,'Unexpected character at end of ornament: ',durq
+ call stop1()
+ end if
+ if (index('+-',durq) .gt. 0) then
+c
+c Shift ornament up or down
+c
+ nudorn = nudorn+1
+c
+c Set bit 25 in iorni as a signal. This may not really be necessary.
+c
+ iorni = ibset(iorni,25)
+c
+c Assemble info to put in kudorn(nudorn) Bits 0-7:ip, 8-11:ivx, 12-18:nolev,
+c 19-24: type of ornament to be shifted, 25-30: shift+32, 31:h-shft present
+c
+ xofforn = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ iofforn = nint(xofforn*fnum)
+ kudorn(nudorn) = ip+ishft(mod(ivx,16),8)+ishft(nole,12)
+ * +ishft(korn,19)+ishft(iofforn+32,25)
+ ivxudorn(nudorn) = ivx
+ if (index('+-',durq) .gt. 0) then
+c
+c Horizontal shift
+c
+ kudorn(nudorn) = ibset(kudorn(nudorn),31)
+ xofforn = 44-ichar(durq)
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ ornhshft(nudorn) = nint(xofforn*fnum)
+ end if
+ else if (durq .eq. ':') then
+c
+c Turn on repeated ornaments
+c
+ ornrpt = .true.
+c
+c Save the ornament value just set
+c
+ iornq0 = iorni
+ end if
+ if (notcrd) then
+ iornq = ior(iornq,iorni)
+ else
+ icrdorn(ncrd) = ior(icrdorn(ncrd),iorni)
+ end if
+ return
+ end
+ subroutine getpmxmod(global,includeq)
+c
+c If global=.true., checks for environment variable with path to pmx.mod.
+c Then, if variable exists and points to pmx.mod, insert lines from
+c pmx.mod into buffer
+c If global=.false., checks for existence of includeq and uses it.
+c
+c lenbuf0 = total length of bufq on entry
+c lbuf(i) = length of line (i)
+c nlbuf = number of lines stored in bufq
+c ilbuf = index of first line after setup stuff (on entry). In general, index of
+c next line to be sucked from buffer.
+c ilbufmod = counter for lines in pmx.mod as they are grabbed.
+c Starts at ilbuf. Points to position of next line after
+c pmx.mod stuff in bufq on exiting loop 1
+c ilbuff = transient counter for shifting operations
+c ipbuf = on entry, points to last character in setup stuff. In general, points
+c to last character of most recent line sucked from buffer.
+c ipbufmod = points to last character of most recent inserted line
+c from pmx.mod
+c
+ parameter (maxblks=4000,nm=24)
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,fbon,issegno,isheadr,isvolt
+ character*(*)includeq
+ character*80 pmxmoddirq
+ character*128 lnholdq
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ logical fexist,global
+ line1pmxmod = ilbuf
+ if (.not.global) then
+ inquire(file=includeq,EXIST=fexist)
+c
+c Transfer includeq to temporary char variable with known length
+c
+ pmxmoddirq = includeq
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ print*
+ write(15,'()')
+ if (.not.fexist) then
+ call printl('Could not find '//pmxmoddirq(1:lpmxmoddirq)
+ * //', checking further.')
+c
+c File named includeq doesn't not exist. Get directory from PMXMODDIR and
+c see if it's there
+c
+ call getenv('PMXMODDIR',pmxmoddirq)
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ if (lpmxmoddirq. gt. 0) then
+ pmxmoddirq = pmxmoddirq(1:lpmxmoddirq)//includeq
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ else
+ call printl(
+ * 'No other directory defined by PMXMODDIR, stopping')
+ call stop1()
+ end if
+ inquire(file=pmxmoddirq,EXIST=fexist)
+ if (.not.fexist) then
+ call printl('Could not find '//pmxmoddirq(1:lpmxmoddirq)
+ * //', stopping.')
+ call stop1()
+ end if
+ end if
+ call printl('Opening normal include file '
+ * //pmxmoddirq(1:lpmxmoddirq))
+ open(18,file=pmxmoddirq)
+ else
+c
+c Check for existence of pmx.mod
+c
+ call getenv('PMXMODDIR',pmxmoddirq)
+ lpmxmoddirq = lenstr(pmxmoddirq,80)
+ if (lpmxmoddirq .eq. 0) return
+ pmxmoddirq = pmxmoddirq(1:lpmxmoddirq)//'pmx.mod'
+ lpmxmoddirq = lpmxmoddirq+7
+ inquire(file=pmxmoddirq,EXIST=fexist)
+ if (.not.fexist) return
+ call printl('Opening global include file '
+ * //pmxmoddirq(1:lpmxmoddirq))
+ open(18,file=pmxmoddirq(1:lpmxmoddirq))
+ end if
+ call printl('Adding include data')
+c
+c Read lines in from pmx.mod one at a time
+c
+ ipbufmod = ipbuf
+ lenbufmod = lenbuf0
+ do 1 ilbufmod = ilbuf , maxblks
+ read(18,'(a)',end=3)lnholdq
+c
+c A line was read. Slide all existing lengths from here forward ahead by 1
+c
+ do 2 ilbuff = nlbuf , ilbufmod , -1
+ lbuf(ilbuff+1) = lbuf(ilbuff)
+2 continue
+c
+c Get length of line from include file
+c
+ lenmodline = lenstr(lnholdq,128)
+ if (lenmodline .eq. 0) then
+c
+c Blank line. Make it a single blank with length 1
+c
+ lenmodline = 1
+ lnholdq = ' '
+ end if
+ lbuf(ilbufmod) = lenmodline
+ call printl(lnholdq(1:lenmodline))
+c
+c Insert new stuff into bufq
+c
+ bufq = bufq(1:ipbufmod)//lnholdq(1:lenmodline)//
+ * bufq(ipbufmod+1:lenbufmod)
+c
+c Update internal parameters
+c
+ ipbufmod = ipbufmod+lbuf(ilbufmod)
+ lenbufmod = lenbufmod+lbuf(ilbufmod)
+ nlbuf = nlbuf+1
+1 continue
+3 continue
+ call printl('Closing '//pmxmoddirq(1:lpmxmoddirq))
+ close(18)
+ linesinpmxmod = linesinpmxmod+ilbufmod-ilbuf
+ lenbuf0 = lenbufmod
+c
+c Fix Andre's error reporting problem 101211 leading to log(neg#) due
+c to nline being 2 bigger than it should be
+c
+ nline=nline-2
+c
+ return
+ end
+ subroutine getset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,npages,nsyst,musicsize,fracindent,istype0,
+ * inameq,clefq,sepsymq,pathnameq,lpath,isig0)
+ parameter (nm=24)
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ character*1 clefq(nm),sepsymq(nm)
+ character*40 pathnameq
+ character*79 inameq(nm)
+ character*128 lineq
+ logical istype0,newway,rename
+c
+c Get the first line
+c
+ iccount = 0
+9 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') go to 9
+ istype0 = lineq(1:3).eq.'---'
+ if (istype0) then
+c
+c Have TeX input until next line that starts with '---'. Save in scratch.
+c
+ open(17,status='SCRATCH')
+3 call getbuf(lineq)
+ if (lineq(1:3) .ne. '---') then
+ write(17,'(a)')lineq
+ go to 3
+ end if
+c
+c Force a new line read on first call to readin
+c
+ iccount = 128
+ end if
+c
+c Here, lineq is first line w/ numerical setup data.
+c
+ nv = nint(readin(lineq,iccount,nline))
+ noinst = nint(readin(lineq,iccount,nline))
+ newway = noinst.le.0
+ if (newway) noinst = -noinst
+ do 2 iinst = 1 , noinst
+c
+c Seve # of staves per inst in case later drop some inst's.
+c
+ if (newway) then
+c
+c Read in nvi for each instrument
+c
+ nsperi(iinst) = nint(readin(lineq,iccount,nline))
+ else if (iinst .gt. 1 ) then
+ nsperi(iinst) = 1
+ else
+ nsperi(iinst) = nv-noinst+1
+ end if
+ iiorig(iinst) = iinst
+ nspern(iinst) = nsperi(iinst)
+2 continue
+ mtrnuml = nint(readin(lineq,iccount,nline))
+ mtrdenl = nint(readin(lineq,iccount,nline))
+cc
+cc Kluge to make mtrdenl work
+cc
+c if (mtrdenl .eq. 1) then
+c mtrdenl = 2
+c mtrnuml = mtrnuml*2
+c end if
+ mtrnmp = nint(readin(lineq,iccount,nline))
+ mtrdnp = nint(readin(lineq,iccount,nline))
+ xmtrnum0 = readin(lineq,iccount,nline)
+c
+c Original key sig (before any trnasposition) in next position. Transposed
+c sig for topfile was transferred thru pmxtex.dat. Need isig0 for key
+c changes if transposed.
+c
+ isig0 = nint(readin(lineq,iccount,nline))
+ npages = nint(readin(lineq,iccount,nline))
+ nsyst = nint(readin(lineq,iccount,nline))
+ musicsize = nint(readin(lineq,iccount,nline))
+ fracindent = readin(lineq,iccount,nline)
+c
+c Next noinst non-comment lines are names of instruments.
+c
+ do 4 i = 1 , noinst
+5 call getbuf(inameq(i))
+ if (inameq(i)(1:1) .eq. '%') go to 5
+4 continue
+c
+c Mext non-comment line has nv clef names
+c
+6 call getbuf(lineq)
+ if (lineq(1:1) .eq. '%') go to 6
+ iv = 0
+ nvsofar = 0
+ do 1 jinst = 1 , noinst
+ nvsofar = nvsofar+nsperi(jinst)
+ do 10 ivi = 1 , nsperi(jinst)
+ iv = iv+1
+ clefq(iv) = lineq(iv:iv)
+ if (iv .eq. nvsofar) then
+ sepsymq(iv) = '&'
+ else
+ sepsymq(iv) = '|'
+ end if
+10 continue
+1 continue
+c
+c Mext non-comment line has path name
+c
+8 call getbuf(pathnameq)
+ if (pathnameq(1:1) .eq. '%') go to 8
+ lpath = index(pathnameq,' ')-1
+ return
+ end
+ function getsquez(n,ntot,space,tnote,to)
+ real*4 tnote(600),to(600)
+ common /comtol/ tol
+c
+c Get the squez factor by checking space against tgovern=minimum duration
+c of all notes sounding at time of n-th note in the list.
+c The starting time of base increment is to(n) and ending time is to(n)+space
+c Sounding notes are those that start at or before to(n) .and. end at or
+c after tend=to(n)+space
+c Since notes are ordered by increasing start times, as soon as we find one
+c that starts too late, we are done checking.
+c
+ tgovern = 1000.
+ tend = to(n)+space
+ do 1 in = 1 , ntot
+c
+c Since to() is ordered by start times, exit loop after first note that
+c starts later than note of interest.
+c
+
+ if (to(in) .gt. to(n)+tol) go to 2
+ if (to(in)+tnote(in) .gt. tend-tol) then
+c
+c If here, this note overlaps and must be tested.
+c
+ tgovern = min(tgovern,tnote(in))
+ end if
+1 continue
+2 continue
+ getsquez = space/tgovern
+ return
+ end
+ subroutine getx(lineq,iccount,irest,shifton,wheadpt,iornq1,ivx,
+ * irest1,itsofar,ntup,itup,nnodur,dotq,ndoub)
+ parameter(nm=24)
+c
+c Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol.
+c In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols.
+c Since during getnote phase time is integer itsofar, which is not updated
+c during xtups, we use itup and ntup to get actual time. On entry, ntup=0 if
+c not in xtup.
+c
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ logical shifton,colon,ess,number
+ character*128 lineq
+ character*1 charq,durq,dotq
+ colon = .false.
+ ess = .false.
+ number = .false.
+ nextbl = iccount+index(lineq(iccount:128),' ')-1
+ if (index(lineq(iccount:nextbl),'P') .gt. 0) then
+c
+c "Parts only", ignore entire symbol
+c
+ iccount = nextbl
+ return
+ end if
+1 call getchar(lineq,iccount,charq)
+ if (charq.eq.'B') then
+c
+c "Both parts and score," ignore character
+c
+ go to 1
+ else if (charq .eq. ':') then
+ colon = .true.
+ go to 1
+ else if (charq .eq. 'S') then
+ ess = .true.
+ go to 1
+ else if (index('+-.0123456789',charq) .gt. 0) then
+ number = .true.
+ if (charq.eq.'-') iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (charq .eq. '-') fnum = -fnum
+ if (durq .ne. 'p') then
+ fnum = fnum*wheadpt
+ iccount = iccount-1
+ end if
+ go to 1
+ end if
+c
+c charq must be blank, so done parsing
+c
+ if (.not.ess .and. .not.colon) then
+c
+c Ordinary hardspace. Goes before next note.
+c (Later, at "|" or "/", check for presence and switch to udoff if there!)
+c
+ nudsp = nudsp+1
+ iornq1 = ibset(iornq1,26)
+ udsp(nudsp) = fnum
+ tudsp(nudsp) = itsofar
+ if (ntup .gt. 0) tudsp(nudsp) = tudsp(nudsp)
+c * +float(itup-1)/ntup*ifnodur(nnodur,dotq)
+ * +float(itup-1+ndoub)/ntup*ifnodur(nnodur,dotq)
+ else if (.not.number) then
+c
+c Must be "X:" End a group offset.
+c
+ irest = ibset(irest,17)
+ shifton = .false.
+ return
+ else
+c
+c Only other possibility is start offset, "S" for single, ':' for multiple
+c
+ nudoff(ivx) = nudoff(ivx)+1
+ udoff(ivx,nudoff(ivx)) = fnum
+ if (ess) then
+ irest1 = ibset(irest1,15)
+ else
+ irest1 = ibset(irest1,16)
+ shifton = .true.
+ end if
+ end if
+ return
+ end
+ function i1fnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ i1fnodur=1
+ else if (idur .eq. 3) then
+ i1fnodur=2
+ else if (idur .eq. 1) then
+ i1fnodur=4
+ else if (idur .eq. 8) then
+ i1fnodur=8
+ else if (idur .eq. 4) then
+ i1fnodur=16
+ else if (idur .eq. 2) then
+ i1fnodur=32
+ else if (idur .eq. 0) then
+ i1fnodur=64
+ else if (idur .eq. 16) then
+c
+c Only used for denominator of time signatures, not for notes
+c
+ i1fnodur=4
+ else if (idur .eq. 9) then
+ i1fnodur = 128
+ else
+ print*
+ print*,'You entered an invalid note-length value:',idur
+ call stop1()
+ end if
+ if (dotq .eq. 'd') i1fnodur = i1fnodur*3/2
+ return
+ end
+c integer*4 function longi(ishort)
+c integer*2 ishort
+c longi = ishort
+c return
+c end
+ function iashft(nacc)
+ integer*4 ias(6)
+ data ias /-1,1,0,0,-2,2/
+ iashft = ias(nacc)
+ return
+ end
+ function ifnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ ifnodur=1
+ else if (idur .eq. 3)then
+ ifnodur=2
+ else if(idur .eq. 1) then
+ ifnodur=4
+ else if(idur .eq. 8) then
+ ifnodur=8
+ else if(idur .eq. 4) then
+ ifnodur=16
+ else if(idur .eq. 2) then
+ ifnodur=32
+ else if(idur .eq. 0) then
+ ifnodur=64
+ else if(idur .eq. 9) then
+ ifnodur=128
+ else if (idur .eq. 16) then
+c
+c Only used for denominator of time signatures, not for notes
+c
+ ifnodur=4
+ else
+ print*,'You entered an invalid note value'
+ stop
+ end if
+ if (dotq .eq. 'd') ifnodur = ifnodur*3/2
+ return
+ end
+ function ifnolev(noq,oct,ntrans)
+ character*1 noq
+ integer oct
+ ifnolev = 7*oct+mod(ichar(noq)-92,7)+1+ntrans
+ return
+ end
+c subroutine report(nsdat,isdat1,isdat2)
+c integer*4 isdat1(202),isdat2(202)
+c write(*,'(a)')
+c * ' isd on? iv kv ip id ud1 ud2 ndx ivo iho lev crd lhd rhd'
+c do 1 isdat = 1 , nsdat
+c isdata = isdat1(isdat)
+c ionoff = igetbits(isdata,1,11)
+cc iv = iand(7,isdata)
+c iv = igetbits(isdata,5,13)
+c kv = igetbits(isdata,1,12)+1
+c ip = igetbits(isdata,8,3)
+c idcode = igetbits(isdata,7,19)
+c iud1 = igetbits(isdata,1,26)
+c iud2 = igetbits(isdata,1,27)
+c ndxslur = igetbits(isdata,4,28)
+c isdatb = isdat2(isdat)
+c ivo = igetbits(isdatb,6,6)-32
+c iho = igetbits(isdatb,7,12)-64
+c lev = igetbits(isdatb,7,19)
+c icrd = igetbits(isdatb,1,0)
+c lhd = igetbits(isdatb,1,1)
+c irhd = igetbits(isdatb,7,2)
+c write(*,'(17i4)')isdat,ionoff,iv,kv,ip,idcode,iud1,iud2,ndxslur,
+c * ivo,iho,lev,icrd,lhd,irhd
+c1 continue
+c print*
+c return
+c end
+ function igetbits(isdata,iwidbit,ishift)
+c
+c Extracts integer given by iwidbit bits of isdata, shifted by ishift, and
+c then added to ioff
+c
+ igetbits = iand(2**iwidbit-1,ishft(isdata,-ishift))
+ return
+ end
+ function igetvarlen(mmidi,icm,imidi,nbytes)
+c
+c Gets variable-length integer starting in mmidi at imidi+1. Returns nbytes.
+c
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi(0:nm,mv)
+ igetvarlen = 0
+ do 1 nbytes = 1 , 4
+ igetvarlen = 128*igetvarlen
+ * +iand(127,mmidi(icm,imidi+nbytes))
+c * +iand(127,longi(mmidi(icm,imidi+nbytes)))
+ if (.not.btest(mmidi(icm,imidi+nbytes),7)) return
+c if (.not.btest(longi(mmidi(icm,imidi+nbytes)),7)) return
+1 continue
+ print*,'Messup in igetvarlen'
+ call stop1()
+ end
+ logical function isdotted(nodur,ivx,ip)
+ parameter (nm=24)
+c
+c Function returns true if note is dotted or double-dotted.
+c Return false for any xtuplet.
+c
+ common /comtol/ tol
+ integer*4 nodur(nm,200)
+ if (nodur(ivx,ip) .eq. 0) then
+ isdotted = .false.
+ return
+ else if (ip .gt. 1) then
+ if (nodur(ivx,ip-1) .eq. 0) then
+ isdotted = .false.
+ return
+ end if
+ end if
+c
+c Ruled out all xtups, so is dotted or double-dotted if not a power of 2.
+c
+ isdotted =
+ * mod(alog(float(nodur(ivx,ip)))/.69314718+.5*tol,1.) .gt. tol
+ return
+ end
+ function isetvarlen(idur,nbytes)
+ isetvarlen = 0
+ itemp = idur
+ do 1 nbytes = 1 , 4
+ isetvarlen = isetvarlen + iand(itemp,127)*256**(nbytes-1)
+ itemp = ishft(itemp,-7)
+ if (itemp .gt. 0) then
+ isetvarlen = isetvarlen+2**(8*nbytes+7)
+ else
+ return
+ end if
+1 continue
+ print*,'Problem in function isetvarlen'
+ call stop1()
+ end
+ subroutine istring(i,string,len)
+c
+c Returns string with integer only if length is 1, otherwise enclosed in
+c brackets.
+c
+ character*(*) string
+ if (i .ne. 0) then
+ len = alog10(abs(i)*1.0001)+1
+ if (i .lt. 0) len = len+1
+ else
+ string = '0'
+ len = 1
+ return
+ end if
+ if (len .eq. 1) then
+ string = char(48+i)
+ else
+ string = '{'
+ write(string(2:1+len),'(i'//char(48+len)//')')i
+ string = string(1:len+1)//'}'
+ len = len+2
+ end if
+ return
+ end
+ function lenstr(string,n)
+ character*(*) string
+ do 1 lenstr = n , 1 , -1
+ if (string(lenstr:lenstr) .ne. ' ') return
+1 continue
+ lenstr = 0
+ return
+ end
+ function levrn(nolev,irest,iud,ncm,mult)
+c
+c Used for placing numbers in xtups. Returns note level if not a rest,
+c else level of top or bottom of rest symbol opposite beam. iud=-1 for upstm.
+c
+ logical btest
+ if (.not.btest(irest,0)) then
+ levrn = nolev
+ else
+c
+c Restlevel is -4, 0, 2 or 100+offset. First get offset from 1-voice default.
+c
+ if (mult .gt. 0) then
+ if (mult .eq. 2) then
+ ioff = -1+2*iud
+ else if (mult .ne. 4) then
+ ioff = iud*mult
+ else
+ ioff = 1+4*iud
+ end if
+ else
+c
+c May need to futz with this later for non-beamed xtups (quarter, half rests)
+c
+ ioff = iud*2
+ end if
+ levrn = mod(nolev+20,100)-20+ncm+ioff
+ endif
+ return
+ end
+ function lfmt1(x)
+c
+c Computes total length of an "f" format with one decimal place.
+c First round to nearest 0.1
+c
+ if (abs(x) .lt. .001) then
+ lfmt1 = 2
+ else
+ y = sign(.1*int(10*abs(x)+.5),x)
+ lfmt1 = int(log10(1000*abs(y)+.001))
+ if (y .lt. 0) lfmt1 = lfmt1+1
+ end if
+ return
+ end
+ subroutine LineBreakTies(isdat1,isdat2,isdat3,isdat4,nsdat,
+ * ispstie,sepsymq)
+ parameter (nm=24)
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comoct/ noctup
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ logical fontslur,WrotePsslurDefaults,btest,upslur,ispstie,tie
+ character*1 udq,chax,sepsymq(nm)
+ character*8 noteq
+ character*128 notexq
+c
+c This is called twice from pmxb after having input an entire block, before
+c making a bar that starts a new system. So nsdat reflects all slur starts
+c and stops in new block, while listslur, which is only set when bars are
+c made, reflects only open slurs from the old block. So we must check
+c listslur to find open ties, not all nsdat.
+c First of two calls (ispstie=.false. on entry) terminates tie at end of line.
+c Second (ispstie=.true. on entry) restarts tie at start of new line. Only
+c need data from original tie-start for both of these. Tie/slur data from
+c closing of full tie are not used except for shape alterations.
+c
+c do 1 ndx = 0 , 11
+ do 1 ndx = 0 , 23
+ if (btest(listslur,ndx)) then
+c
+c Slur or tie with index ndx is open. Find the one with right ndxb, see if tie
+c
+ do 2 isdat = 1 , nsdat
+c if (igetbits(isdat1(isdat),4,28) .ne. ndx) go to 2 ! Wrong index
+ if (igetbits(isdat1(isdat),4,28)
+ * +16*igetbits(isdat1(isdat),1,18) .ne. ndx) go to 2 ! Wrong index
+ if (.not.btest(isdat1(isdat),11)) go to 2 ! Bypass if stop
+ if (btest(isdat2(isdat),3)) go to 3 ! "st"
+ idcode = igetbits(isdat1(isdat),7,19)
+ if (idcode.eq.1) go to 3 ! "t"
+ tie = .false.
+ go to 5
+2 continue
+ end if
+ go to 1
+3 continue
+ tie = .true.
+5 continue
+c
+c A slur or tie is open, with index ndx
+c
+ iv = igetbits(isdat1(isdat),5,13)
+ kv = igetbits(isdat1(isdat),1,12)+1
+ udq = 'd'
+ if (btest(isdat1(isdat),27)) udq='u'
+ notexq = chax(92)//'znotes'
+ lnote = 7
+ do 4 iiv = 1 , iv-1
+ notexq = notexq(1:lnote)//sepsymq(iiv)
+ lnote = lnote+1
+4 continue
+ if (kv .eq. 2) then
+ notexq = notexq(1:lnote)//chax(92)//'nextvoice'
+ lnote = lnote+10
+ end if
+c
+c Compute horiz and vert offsets
+c
+c nolev = igetbits(isdat2(isdat),7,19)
+ islhgt = igetbits(isdat3(isdat),8,14)
+ ilb12 = 0
+ if (ispstie) ilb12 = 1
+ ivoff = igetbits(isdat4(isdat),6,ilb12*16)-32
+ if (ivoff .eq. -32) ivoff = 0
+C nolev = nolev+ivoff
+ islhgt = islhgt+ivoff
+ ihoff = (igetbits(isdat4(isdat),7,ilb12*16+6)-64) ! This is 10X hoff
+ if (ihoff .eq. -64) ihoff = 0
+c
+c Add starting stuff for command
+c
+ if (.not.ispstie) then ! End 1st segment
+ notexq = notexq(1:lnote)//chax(92)//'roffset{'
+ lnote = lnote+9
+c hoff = ihoff*.1-.5
+c hoff = ihoff*.1-.8
+ hoff = ihoff*.1-.4
+ if (hoff .lt. 0) then
+ hoff = -hoff
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ call writflot(hoff,notexq,lnote)
+ notexq = notexq(1:lnote)//'}{'
+ lnote = lnote+2
+ else
+ notexq = notexq(1:lnote)//chax(92)//'off{-'
+ * //chax(92)//'afterruleskip}'
+ lnote = lnote+21
+c
+c 091025 add dotting for 2nd segment if needed
+c
+ if (btest(isdat2(isdat),4)) then
+ notexq = chax(92)//'dotted'//notexq(1:lnote)
+ lnote = lnote+7
+ end if
+ end if
+ if (ispstie .and. tie) then
+ notexq = notexq(1:lnote)//chax(92)//'tieforis'//udq
+ lnote = lnote+10
+ end if
+ if (btest(isdat3(isdat),0)) then
+c
+c Curvature tweak on termination of 1st seg
+c
+ imid = igetbits(isdat3(isdat),6,2)-32
+c
+c Invoke macro (from pmx.tex) that redefines \tslur as r'qd. mapping:
+c Abs(imid) Postscript slur type
+c 1 f
+c 4 h
+c 5 H
+c 6 HH
+c
+ notexq = notexq(1:lnote)//chax(92)//'psforts'//chax(48+imid)
+ lnote = lnote+9
+c
+c Zero out the flag in case there's a different curv on term of 2nd,
+c
+ isdat3(isdat) = ibclr(isdat3(isdat),0)
+ end if
+c
+c Add the command name
+c
+ if (ispstie) then
+ notexq = notexq(1:lnote)//chax(92)//'is'//udq
+ lnote = lnote+4
+ else if (tie) then
+ notexq = notexq(1:lnote)//chax(92)//'ttie'
+ lnote = lnote+5
+ else
+ notexq = notexq(1:lnote)//chax(92)//'tslur'
+ lnote = lnote+6
+ end if
+c
+c Add index
+c
+c if (11-ndx .lt. 10) then
+c notexq = notexq(1:lnote)//chax(59-ndx)
+c lnote = lnote+1
+c else
+c notexq = notexq(1:lnote)//'{1'//chax(49-ndx)//'}'
+c lnote = lnote+4
+c end if
+ if (23-ndx .lt. 10) then
+ notexq = notexq(1:lnote)//chax(71-ndx)
+ lnote = lnote+1
+ else if (23-ndx .lt. 20) then
+ notexq = notexq(1:lnote)//'{1'//chax(61-ndx)//'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//'{2'//chax(51-ndx)//'}'
+ lnote = lnote+4
+ end if
+ if (ispstie .or. .not.tie) then
+c
+c Add note name for slur height
+c
+ noctup = 0
+ ncm = igetbits(isdat3(isdat),8,22)
+ if (ncm .eq. 23) noctup = -2
+c call notefq(noteq,lnoten,nolev,ncm)
+ call notefq(noteq,lnoten,islhgt,ncm)
+ notexq = notexq(1:lnote)//'{'//noteq(1:lnoten)//'}'
+ lnote = lnote+1+lnoten+1
+ end if
+ if (ispstie) then
+c
+c Horizontal shift start of new thing
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+c ihoff = ihoff-13
+ if (tie) then
+ ihoff = ihoff-12
+ else
+ ihoff = ihoff-7
+ end if
+ if (ihoff .lt. 0) then
+ ihoff = -ihoff
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ call writflot(ihoff*.1,notexq,lnote)
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+c
+c Add closing stuff
+c
+ if (ispstie) then
+ notexq = notexq(1:lnote)//chax(92)//'off{'
+ * //chax(92)//'afterruleskip}'
+ lnote = lnote+20
+ else
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ notexq = notexq(1:lnote)//chax(92)//'en%'
+ lnote = lnote+4
+ write(11,'(a)')notexq(1:lnote)
+1 continue
+ ispstie = .not.ispstie
+ return
+ end
+ subroutine littex(islur,nnl,iv,topmods,lineq,iccount)
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ integer islur(nm,200)
+ logical topmods
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,merge
+ character*128 lineq,litq
+ character*20 voltxtq
+ character*1 durq,chax
+ merge = .false.
+ if (nlit .gt. 0) then
+ merge = iv.eq.ivlit(nlit) .and. nnl.eq.iplit(nlit)
+ end if
+ nlit = nlit+1
+ ivlit(nlit) = iv
+ iplit(nlit) = nnl
+ itype = 1
+17 call getchar(lineq,iccount,durq)
+ if (durq .eq. chax(92)) then
+ itype=itype+1
+ go to 17
+ end if
+ litq(nlit) = chax(92)//durq
+ lenlit(nlit) = 2
+18 call getchar(lineq,iccount,durq)
+ if (durq.eq.chax(92)) then
+ call getchar(lineq,iccount,durq)
+ if (durq .ne. ' ') then
+c
+c Starting a new tex command within the string
+c
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))//chax(92)//durq
+ lenlit(nlit) = lenlit(nlit)+2
+ go to 18
+ end if
+ else
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))//durq
+ lenlit(nlit) = lenlit(nlit)+1
+ go to 18
+ end if
+c
+c If here, just read backslash-blank so string is done
+c
+ if (itype .eq. 1) then
+ islur(iv,nnl) = ibset(islur(iv,nnl),16)
+ if (merge) then
+c
+c There are 2 separate strings on the same note, so merge them.
+c
+ nlit = nlit-1
+ litq(nlit) = litq(nlit)(1:lenlit(nlit))
+ * //litq(nlit+1)(1:lenlit(nlit+1))
+ lenlit(nlit) = lenlit(nlit)+lenlit(nlit+1)
+ if (lenlit(nlit) .gt. 128) then
+ print*
+ print*,
+ * 'Merged type-1 TeX strings longer than 128 characters'
+ write(15,'(/,a)')
+ * 'Merged type-1 TeX strings longer than 128 characters'
+ call stop1()
+ end if
+ end if
+ else
+ if (itype .eq. 3) then
+c
+c Write the string NOW
+c
+ if (islast)
+ * write(11,'(a)')litq(nlit)(1:lenlit(nlit))//'%'
+ else
+c
+c Must go at top
+c
+ if (.not.topmods) then
+ topmods = .true.
+ open(16,status='SCRATCH')
+ end if
+c
+c Must write '%' here rather than later, in case string ends with blank.
+c
+ write(16,'(a)')litq(nlit)(1:lenlit(nlit))//'%'
+ end if
+ nlit = nlit-1
+ end if
+ return
+ end
+ function llen(strq,n)
+ character*129 strq
+ do 1 llen = n , 0 , -1
+ if (strq(llen:llen) .ne. ' ') return
+1 continue
+ end
+ function log2(n)
+c
+c 5/25/08 Modify to allow more slurs
+c
+c log2 = alog(1.*n)/0.6931472+.0001
+c log2 = dlog(1.d0*n)/0.693147181d0+.00000001d0
+ log2 = dlog(1.d0*n)/0.693147181d0+.00000002d0
+ return
+ end
+ subroutine logbeam(numnew,nip1,nip2)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq,ulfq,ulfbq
+ logical beamon,firstgulp,figbass,figchk,isfig,isxtup,btest,
+ * autofbon
+ ibm1(ivx,numnew) = nip1
+ ibm2(ivx,numnew) = nip2
+ numnow = numnew
+ if (numnew .gt. 1) then
+c
+c If it starts before any others, must put it in order
+c
+ do 11 ib = numnew-1 , 1 , -1
+ if (ibm1(ivx,ib) .lt. nip1) go to 12
+ ibm1(ivx,ib+1) = ibm1(ivx,ib)
+ ibm2(ivx,ib+1) = ibm2(ivx,ib)
+ ulq(ivx,ib+1) = ulq(ivx,ib)
+ ibm1(ivx,ib) = nip1
+ ibm2(ivx,ib) = nip2
+ numnow = ib
+11 continue
+12 continue
+ end if
+ sum = 0.
+c
+c Beam has non-xtup within
+c
+ nrests = 0
+ isxtup = .false.
+ do 9 iip = nip1 , nip2
+ if (btest(islur(ivx,nip1),21)) then
+c
+c Forced multiplicity
+c
+c mult(ivx,iip) = igetbits(islur(ivx,nip1),3,22)
+ call setbits(mult(ivx,iip),4,0,
+ * igetbits(islur(ivx,nip1),3,22)+8)
+ else if (.not.isxtup) then
+ if (nodur(ivx,iip) .gt. 0) then
+c mult(ivx,iip) = 4-log2(nodur(ivx,iip))
+ call setbits(mult(ivx,iip),4,0,4-log2(nodur(ivx,iip))+8)
+ else
+c
+c Start xtup within forced beam
+c
+ isxtup = .true.
+ iip1 = iip
+ end if
+ else if (isxtup .and. nodur(ivx,iip).gt.0) then
+c
+c End of xtup within forced beam. Must count doubled notes
+c
+ ndoub = 0
+ do 1 iiip = iip1 , iip
+ if (btest(nacc(ivx,iiip),18)) ndoub = ndoub+1
+1 continue
+ multx = int(10.5+2.929+(0.952*alog(1.+iip-iip1+ndoub)-
+ * alog(nodur(ivx,iip)/2.))/0.69315)-10
+ do 74 iiip = iip1 , iip
+c mult(ivx,iiip) = multx
+ call setbits(mult(ivx,iiip),4,0,multx+8)
+c
+c Note the following still works after making mult only the 1st 4 bits.
+c
+ if (btest(nacc(ivx,iiip),18))
+ * mult(ivx,iiip) = mult(ivx,iiip)-1
+ if (btest(nacc(ivx,iiip),19)) then
+ mult(ivx,iiip) = mult(ivx,iiip)+1
+ else if (iiip .gt. 1) then
+ if (btest(nacc(ivx,iiip-1),19))
+ * mult(ivx,iiip) = mult(ivx,iiip)+1
+ end if
+74 continue
+ isxtup = .false.
+ end if
+ if (btest(irest(ivx,iip),0)) then
+ nrests = nrests+1
+ else
+ sum = sum+nolev(ivx,iip)
+ end if
+9 continue
+c
+c Set beam up-down-ness
+c
+ if (ifb.gt.0 .and. ulfbq(ivx,max(1,ifb)).ne.'x') then
+ if (ulfbq(ivx,ifb) .eq. 'f') then
+c
+c Get default, then trade "l" and "u"
+c
+ ulq(ivx,numnow) = char(225-ichar(
+ * ulfq(sum/(nip2-nip1+1-nrests),ncmid(iv,nip1))))
+ else
+ ulq(ivx,ifb) = ulfbq(ivx,ifb)
+ end if
+c
+c This probably works only because forced beams are done first, so they
+c don't have to be re-sorted within each voice. ????
+c
+ else if (nvmx(iv) .eq. 2) then
+c
+c Multi-voice per staff
+c
+ if (ivx .le. nv) then
+ ulq(ivx,numnow) = 'l'
+ else
+ ulq(ivx,numnow) = 'u'
+ end if
+ else
+c
+c Defaults
+c
+ ulq(ivx,numnow) =
+ * ulfq(sum/(nip2-nip1+1-nrests),ncmid(iv,nip1))
+ end if
+ return
+ end
+ subroutine m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+c
+c This is called when (a) macro recording is just starting and
+c (b) at the start of a new line, if recording is on
+c
+ parameter (maxblks=4000)
+ character*128 lineq,lnholdq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ logical mrecord,mplay,endmac
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ lbuf(1) = lbuf(1)
+ if (.not.mrecord) then
+c
+c Starting the macro
+c
+ ip1mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount
+ il1mac(macnum) = ilbuf-1
+ ic1mac(macnum) = iccount
+ mrecord = .true.
+ end if
+ if (iccount .lt. 128) then
+ ndxm = index(lineq(iccount+1:128),'M')
+ if (ndxm .gt. 0) ndxm = ntindex(lineq(iccount+1:128),'M',
+ * 128-iccount)
+ if (ndxm .gt. 0) then
+c
+c This line ends the macro.
+c
+ if (lineq(iccount+ndxm+1:iccount+ndxm+1) .ne. ' ') then
+ call errmsg(lineq,iccount+ndxm+1,ibarcnt-ibaroff+nbars+1,
+ * 'Improper macro termination!')
+ call stop1()
+ end if
+ ip2mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount+ndxm
+ il2mac(macnum) = ilbuf-1
+ mrecord = .false.
+ end if
+ end if
+ return
+ end
+ subroutine make1bar(ibmrep,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart)
+ parameter (nm=24,mv=24576)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*10 figq
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig,bar1syst
+ common /comeskz2/ eskz2(nm,200)
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /combeam/ ibmtyp
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,autofbon
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ integer cnn(nm),istart(80),istop(80),nxtnow(nm),ifbnow(nm),
+ * numbms(nm),mapfb(16)
+ real*4 xit(nm),t1xtup(20),tstart(80),squez(80)
+ character*1 ulfbq
+ character*79 inameq
+ character*20 voltxtq
+ common /comoct/ noctup
+ character*80 headrq,lowerq
+ logical cwrferm
+ common /comcwrf/ cwrferm(nm)
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ logical lower,cwrest(nm),vxtup,flgndb,btest,upslur,
+ * infbmx(nm),lowdot,inxtup(nm),drawbm
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comstart/ facmtr
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+c
+c Above are factors for grace note, clef spacing. (fraction of wheadpt)
+c In 1.04, moved to block data subprogram
+c
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /comtol/ tol
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,fontslur,
+ * WrotePsslurDefaults
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comntot/ ntot
+ if (ismidi) then
+c
+c Initialize for this bar the accidental counter for the midi file.
+c naccim(icm) = # of accidentals from earlier in the bar
+c
+ do 45 iv = 1 , nv
+ do 45 kv = 1 , nvmx(iv)
+ naccim(midchan(iv,kv)) = 0
+45 continue
+ end if
+c
+c Time from start of gulp to end of bar, used with forced beams
+c
+ tglp2 = lenb0+ibar*lenb1
+ if (lenb0 .gt. 0) tglp2 = tglp2-lenb1
+ tglp1 = tglp2-lenbar
+c
+c infbmx will only be true if in xtup that is NOT in explicit forced beam.
+c
+ do 1 iv = 1 , nv
+ do 1 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cwrest(ivx) = .false.
+ infbmx(ivx) = .false.
+ inxtup(ivx) = .false.
+ if (ibar .gt. 1) then
+ nn(ivx) = nib(ivx,ibar)-nib(ivx,ibar-1)
+ else
+ nn(ivx) = nib(ivx,ibar)
+ end if
+1 continue
+c
+c initialize list note counter, time(iv), curr. note(iv). The loop to 4
+c ONLY initializes each voice.
+c
+ in = 1
+ nxtup = 0
+ narp = 0
+ do 4 iv = 1 , nv
+ do 4 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cwrferm(ivx) = .false.
+ cnn(ivx) = 1
+ ivxo(in) = ivx
+ ipo(in) = cnn(ivx)
+ tnote(in) = fnote(nodur,ivx,1,nacc)
+ to(in) = 0.
+ xit(ivx) = tnote(in)
+c
+c Note that xit(ivx) is to END of note in voice, but it1xtup is start time.
+c
+ if (nodur(ivx,ipo(in)) .eq. 0) then
+c
+c First note of xtuplet at start of bar in voice ivx.
+c
+ nxtup = nxtup+1
+ nxtnow(ivx) = nxtup
+ inxtup(ivx) = .true.
+ t1xtup(nxtup) = 0.
+c
+c Xtup at start of bar. If no explicit forced beam, start one, set
+c signal infbmx, and save number ifbnow for use at termination.
+c
+ if (nfb(ivx) .gt. 0) then
+ do 60 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c No explicit fb here; so exit loop and insert one.
+c
+ go to 61
+ else if (t1fb(ivx,ifb) .lt. tglp1+xit(ivx)+tol .and.
+ * t2fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c IS explicit fb here; must NOT insert one
+c
+ go to 62
+ end if
+60 continue
+ end if
+61 continue
+c
+c If here, xtup isn't in explicit fb, so must insert one
+c
+ infbmx(ivx) = .true.
+ call addfb(nfb,ivx,t1xtup(nxtup)+
+ * tglp1,t1fb,t2fb,ulfbq,ifbadd)
+ ifbnow(ivx) = ifbadd
+ end if
+62 continue
+ if (abs(xit(ivx)-lenbar) .lt. tol) xit(ivx) = 1000.
+ in = in+1
+4 continue
+c
+c Build the list: This is a manual loop starting at 5
+c
+5 continue
+c
+c Determine which voice comes next from end of notes done so far.
+c tmin is the earliest ending time of notes done so far
+c
+ tmin = 1000.
+ do 6 iiv = 1 , nv
+ do 6 kv = 1 , nvmx(iiv)
+ iivx = ivmx(iiv,kv)
+ tminn = min(tmin,xit(iivx))
+ if(tminn .lt. tmin-tol) then
+ tmin = tminn
+ ivx = iivx
+ end if
+6 continue
+ if (abs(tmin-1000.) .lt. tol) go to 7
+ ivxo(in) = ivx
+ cnn(ivx) = cnn(ivx)+1
+ ipo(in) = cnn(ivx)
+ to(in) = tmin
+c
+c Check if this voice is done
+c
+ tnote(in) = fnote(nodur,ivx,cnn(ivx),nacc)
+ if (cnn(ivx) .eq. nn(ivx)) then
+ xit(ivx) = 1000.
+ else
+ xit(ivx) = xit(ivx)+tnote(in)
+ end if
+c
+c Flag xtups
+c
+ if (nodur(ivx,cnn(ivx)) .eq. 0) then
+ if (.not.inxtup(ivx)) then
+c
+c First note of xtup, not at start of bar.
+c
+ nxtup = nxtup+1
+ nxtnow(ivx) = nxtup
+ inxtup(ivx) = .true.
+ t1xtup(nxtup) = xit(ivx)-tnote(in)
+c
+c (Note: can't be on last note in voice, so xit(ivx) <> 1000)
+c Put xtuplet in a forced beam if not already in forced beam
+c
+ if (nfb(ivx) .gt. 0) then
+ do 70 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c NO explicit bm; put one in
+c
+ go to 71
+ else if (t1fb(ivx,ifb) .lt. tglp1+xit(ivx)+tol .and.
+ * t2fb(ivx,ifb) .gt. tglp1+xit(ivx)+tol) then
+c
+c IS explicit bm. Don't put one
+c
+ go to 72
+ end if
+70 continue
+ end if
+71 continue
+c
+c If here, no explicit bm, so put one in
+c
+ infbmx(ivx) = .true.
+ call addfb(nfb,ivx,t1xtup(nxtup)+tglp1,
+ * t1fb,t2fb,ulfbq,ifbadd)
+ ifbnow(ivx) = ifbadd
+ end if
+72 continue
+ else if (inxtup(ivx)) then
+c
+c This test is sufficient because already know nodur>0
+c
+ inxtup(ivx) = .false.
+ if (infbmx(ivx)) then
+c
+c Xtup is in auto-forced beam, so end it
+c
+ t2fb(ivx,ifbnow(ivx)) =
+ * t1xtup(nxtnow(ivx))+nodur(ivx,cnn(ivx))+tglp1
+ infbmx(ivx) = .false.
+ end if
+ end if
+ if (btest(irest(ivxo(in),ipo(in)),24) .or.
+ * btest(irest(ivxo(in),ipo(in)),30)) then
+c
+c For staff jumped beam, flag the first note (lowest voice) at same time.
+c Later will start new notes group here.
+c
+ inj = in
+ if (ivxo(in) .gt. 1) then
+ do 40 iin = in-1 , 1 , -1
+ if (to(iin)+tol .lt. to(in)) go to 41
+ if (abs(to(iin)-to(in)) .lt. tol) then
+ inj = iin
+ go to 40
+ end if
+40 continue
+ end if
+41 continue
+ irest(ivxo(inj),ipo(inj)) = ibset(irest(ivxo(inj),ipo(inj)),29)
+ end if
+ in = in+1
+ go to 5
+7 continue
+ ntot = in-1
+ do 8 in = 1 , ntot-1
+ tno(in) = to(in+1)-to(in)
+8 continue
+ tno(ntot) = tnote(ntot)
+c
+c Debug writes
+c
+c write(*,'()')
+c write(*,'(a)')' Greetings from PMXB'
+c write(*,'(16i5)')(ivxo(in),in=1,ntot)
+c write(*,'(16i5)')(ipo(in),in=1,ntot)
+c write(*,'(16f5.1)')(to(in),in=1,ntot)
+c write(*,'(16f5.1)')(tno(in),in=1,ntot)
+c write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot)
+c write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot)
+c
+c Done w/ list. Loop for parsing into note blocks:
+c
+ ib = 1
+ istart(1) = 1
+ space(1) = 0.
+ in = 1
+c
+c A manual loop to set space(ib) and istop(ib)
+c
+9 continue
+
+ ivx = ivxo(min(in+1,ntot))
+ ip = ipo(min(in+1,ntot))
+ isl = islur(ivx,ip)
+ if (in.eq.ntot .or. ((ivx.eq.1 .and.
+ * (iand(isl,67109216).gt.0 .or. btest(ipl(1,ip),28)
+c * .or. ornq(1,ip).eq.'g')) .or. btest(isl,15) )) then
+c Bits 1-13: stmgx+Tupf._)
+c 14: Down fermata, was F
+c 15: Trill w/o "tr", was U
+ * .or. btest(iornq(1,ip),4))) .or. btest(isl,15) )
+c
+c Checking for start of 2nd part of jumped beam
+c
+ * .or. btest(irest(ivx,ip),29) ) then
+c
+c Bar end, segno, int. rpt or sig change, clef,end of 1st part of jumped beam;
+c flow out of if-loop and into block-wrapup
+c
+c 10/18/97: Problem with clef alignment. Got isl{15} set on lowest-numbered
+c voice, but it wasn't first in the list at the same time. So check if
+c prior notes in list have same time
+c 5/25/98: This stuff causes trouble with just "c2 Ct c", maybe when clef
+c changes on last note in the list?
+c
+ if (btest(isl,15) .and. in.lt.ntot) then
+ do 50 iin = in , 1 , -1
+ if (tno(iin) .gt. tol) then
+ in = iin
+ islur(ivx,ip) = ibclr(islur(ivx,ip),15)
+ islur(ivxo(in+1),ipo(in+1)) =
+ * ibset(islur(ivxo(in+1),ipo(in+1)),15)
+ go to 51
+ end if
+50 continue
+51 continue
+ end if
+ if (space(ib) .lt. tol) then
+ space(ib) = tno(in)
+ squez(ib) = 1.
+ end if
+ istop(ib) = in
+ else if (space(ib) .lt. tol) then
+c
+c space hasn't been set yet, so tentatively set:
+c
+ space(ib) = tno(in)
+ if (space(ib) .lt. tol) then
+ in=in+1
+ else
+ squez(ib) = getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ end if
+ go to 9
+ else if (tno(in+1) .lt. tol) then
+c
+c This is not the last note in the group, so
+c
+ in = in+1
+ go to 9
+ else if (abs(tno(in+1)-space(ib)) .lt. tol) then
+ xsquez = getsquez(in+1,ntot,space(ib),tnote,to)
+ if (abs(xsquez-squez(ib)) .lt. tol) then
+c
+c Keep spacing the same, update tentative stop point
+c
+ in = in+1
+ istop(ib) = in
+ go to 9
+ end if
+ end if
+c
+c At this point istart and istop are good, so finalize block
+c
+ tstart(ib) = to(istart(ib))
+ if (istop(ib) .eq. ntot) go to 15
+ ib = ib+1
+ istart(ib) = istop(ib-1)+1
+ in = istart(ib)
+c
+c Set tentative block space and squeeze-factor for upcoming block
+c
+ space(ib) = tno(in)
+ if (space(ib).gt.tol)
+ * squez(ib)= getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ go to 9
+15 continue
+ nb = ib
+c
+c Invert the list of places into ipl(0-7), making it easier to analyze a voice
+c
+ do 13 in = 1 , ntot
+c
+c ??? This may fix extra \loff's (bit 8 of ipl) in measures with >255 notes.
+c
+c ipl(ivxo(in),ipo(in)) = ior(ipl(ivxo(in),ipo(in)),in)
+ ipl2(ivxo(in),ipo(in)) = in
+13 continue
+c
+c Compute elemskips from start of bar to each note in the bar, for beam slopes
+c
+ eskzb = 0.
+ ib = 1
+ do 30 in = 1 , ntot
+ if (in .eq. istart(ib)) then
+ deskb = squez(ib)*feon(space(ib)/squez(ib))
+ else if (tno(in-1) .gt. tol) then
+ eskzb = eskzb+deskb
+ end if
+ eskz(ivxo(in),ipo(in)) = eskzb
+ eskz2(ivxo(in),ipo(in)) = eskzb
+ if (in .eq. istop(ib)) then
+ eskzb = eskzb+deskb
+ ib = ib+1
+ end if
+30 continue
+c
+c Debug writes
+c
+c print*
+c write(*,'(16f5.1)')(eskz(ivxo(in),ipo(in)),in=1,ntot)
+c print*,'PMXB has now got blocks'
+c write(*,'(16i5)')(istart(ib),ib=1,nb)
+c write(*,'(16i5)')(istop(ib),ib=1,nb)
+c write(*,'(16f5.1)')(space(ib),ib=1,nb)
+c write(*,'(16f5.1)')(squez(ib),ib=1,nb)
+c write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot)
+cc write(*,'(26i3)')(iand(islur(ivxo(in),ipo(in)),30720)/2048,
+c * in=1,ntot)
+c write(*,'(1x,26a3)')(ornq(ivxo(in),ipo(in)),in=1,ntot)
+c
+c
+c Analyze for beams.
+c
+ do 20 iv = 1 , nv
+ do 20 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ numbms(ivx) = 0
+ mapfb(1) = 0
+ mapfb(2) = 0
+ mapfb(3) = 0
+ mapfb(4) = 0
+c
+c First forced beams.
+c
+ if (nfb(ivx) .gt. 0) then
+c
+c tglp2 is time from start of gulp to end of current bar.
+c
+ nfbbar = 0
+ do 80 ifb = 1 , nfb(ivx)
+ if (t1fb(ivx,ifb).gt.tglp2-tol) go to 81
+ nfbbar = nfbbar+1
+ numbms(ivx) = numbms(ivx)+1
+ numnew = numbms(ivx)
+c
+c Times from beginning of bar
+c
+ itbb1 = int(t1fb(ivx,ifb)-tglp1+tol)
+ itbb2 = int(t2fb(ivx,ifb)-tglp1+tol)
+ do 83 ip = 1 , nn(ivx)
+ if (int(to(ipl2(ivx,ip))+tol) .eq. itbb1) then
+ nip1fb = ip
+ do 84 ip1 = ip , nn(ivx)
+ inip1 = ipl2(ivx,ip1)
+ if (abs(to(inip1)+tnote(inip1)-itbb2) .lt. tol) then
+ nip2fb = ip1
+ itbb3 = itbb2-2
+ go to 85
+ end if
+84 continue
+ end if
+83 continue
+ print*
+ print*,'Timing problem w/ forced beams'
+ write(15,'(/a)')'Timing problem w/ forced beams'
+85 continue
+ call logbeam(numnew,nip1fb,nip2fb)
+c
+c Set up mapfb for forced beam just logged:
+c
+ ib1 = itbb1/2
+ ib2 = itbb3/2
+ ibrep = lenbar/ibmrep/2
+ do 86 irep = 1 , ibmrep
+ ib1now = max(0,ib1-(irep-1)*ibrep)
+ ib2now = min(irep*ibrep-1,ib2-(irep-1)*ibrep)
+ mapnow = 0
+ do 87 ib = ib1now , ib2now
+ mapnow = ibset(mapnow,ib)
+87 continue
+ mapfb(irep) = ior(mapfb(irep),mapnow)
+86 continue
+c
+c Since we are cycling thru forced beams, for those that start with a rest and
+c have height & slope adjustments, move adjustments to next note.
+c 060924: Copy to ALL later notes in fb, in case there's more than 1 rest at
+c start of beam
+c
+ if (btest(irest(ivx,nip1fb),0)) then
+c call setbits(ipl(ivx,nip1fb+1),6,11,
+c * igetbits(ipl(ivx,nip1fb),6,11))
+c call setbits(ipl(ivx,nip1fb+1),6,17,
+c * igetbits(ipl(ivx,nip1fb),6,17))
+c call setbits(islur(ivx,nip1fb+1),2,27,
+c * igetbits(islur(ivx,nip1fb),2,27))
+ do 88 kp = nip1fb+1 , nip2fb
+ call setbits(ipl(ivx,kp),6,11,
+ * igetbits(ipl(ivx,nip1fb),6,11))
+ call setbits(ipl(ivx,kp),6,17,
+ * igetbits(ipl(ivx,nip1fb),6,17))
+ call setbits(islur(ivx,kp),2,27,
+ * igetbits(islur(ivx,nip1fb),2,27))
+88 continue
+ end if
+80 continue
+81 continue
+c
+c Slide down, reduce nfb(ivx). This lets us count up from 1 for each new bar.
+c Remember, makeabar is called 1/bar, and it calls findbeam once per voice.
+c
+ if (nfbbar .gt. 0) then
+ nfb(ivx) = nfb(ivx)-nfbbar
+ do 82 ifb = 1 , nfb(ivx)
+ t1fb(ivx,ifb) = t1fb(ivx,ifb+nfbbar)
+ t2fb(ivx,ifb) = t2fb(ivx,ifb+nfbbar)
+ ulfbq(ivx,ifb) = ulfbq(ivx,ifb+nfbbar)
+82 continue
+ end if
+ end if
+ ifb = 0
+c
+c Done with forced beam masks for this bar and voice. Now get normal beams.
+c
+ call findbeam(ibmrep,numbms,mapfb)
+20 continue
+ return
+ end
+ subroutine make2bar(ninow,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart,clefq)
+ parameter (nm=24,mv=24576)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*10 figq
+ character*1 ulq,sepsymq,sq,chax
+ logical beamon,firstgulp,figbass,figchk,isfig,bar1syst,isbjmp,
+ * isbj2
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /combeam/ ibmtyp
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comhead/ ihdht,lower,headrq,lowerq,ihdvrt
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,issig,rpndot,autofbon
+ character*128 litq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ integer istart(80),istop(80),iaskb(nm),numbms(nm),
+ * nornb(nm),ihornb(nm,24),lcwr(nm),ibmcnt1(nm),ifig(2)
+ character*1 ulfbq,udqq,clefq(nm),slurudq
+ character*8 noteq
+ character*79 cwrq(nm),notexq,inameq
+ character*20 voltxtq
+ common /comoct/ noctup
+ character*80 soutq,headrq,lowerq
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ logical bspend,lower,cwrest(nm),vxtup,
+ * isgrace,isclef,nofirst,iscln,isdot,isflag,
+ * isacc,isfirst,flgndb,btest,stemup,upslur,
+ * isgaft,isarp,isrshft,isaccs,iscacc,
+ * lowdot,flipend,iscwr,isdotted,beamon1(nm)
+ real*4 ptgr(37),ptclef(nm),ptsndg(nm),eskndg(nm),tstart(80),
+ * squez(80)
+ logical cwrferm,drawbm
+ common /comcwrf/ cwrferm(nm)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xelsk(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /comstart/ facmtr
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+c
+c Factors for grace note, clef spacing. (fraction of wheadpt)
+c In 1.04, moved to block data subprogram
+c
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comtol/ tol
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,fontslur
+ * ,WrotePsslurDefaults
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ logical slmon,dbltie
+ common /comslm/ levson(0:nm),levsoff(0:nm),imidso(0:nm),
+ * naccbl(0:nm),laccbl(0:nm,10),jaccbl(0:nm,10),nusebl,
+ * slmon(0:nm),dbltie
+ common /comevent/ miditime,lasttime
+ logical kbdrests
+ common /comkbdrests/ levbotr(8),levtopr(8),kbdrests
+ logical secondgrace
+c
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+c
+c
+c Set up main ib loop within which a block (notes group) is written
+c
+ do 25 iv = 1 , nv
+ do 25 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ibmcnt(ivx) = 1
+ ibmcnt1(ivx) = 1
+ beamon(ivx) = .false.
+ beamon1(ivx) = .false.
+ nornb(ivx) = 0
+ iaskb(ivx) = 1
+ vxtup(ivx) = .false.
+ drawbm(ivx) = .true.
+25 continue
+ naskb = 0
+ ifig(1) = 1
+ ifig(2) = 1
+ ixtup = 0
+ bspend = .false.
+ iscwr = .false.
+ rpndot = .false.
+ do 16 ib = 1 , nb
+c
+c Check for segno
+c
+ if (btest(iornq(1,ipo(istart(ib))),4) .and.
+ * ivxo(istart(ib)).eq.1) then
+ if (noffseg.le.-10) then
+ write(noteq(1:5),'(1H{,i3,1H})')noffseg
+ lnoten = 5
+ else if (noffseg.lt.0 .or. noffseg.ge.10) then
+ write(noteq(1:4),'(1H{,i2,1H})')noffseg
+ lnoten = 4
+ else
+ write(noteq(1:1),'(i1)')noffseg
+ lnoten = 1
+ end if
+ notexq = sq//'znotes'//sq//'segnoo'//noteq(1:lnoten)//'9'
+ lnote = 15+lnoten
+ do 130 iv = 2 , nv
+ if (lnote .gt. 60) then
+ if (islast) write(11,'(a)')notexq(1:lnote)//'%'
+ notexq = sepsymq(iv-1)//sq//'segnoo'
+ * //noteq(1:lnoten)//'9'
+ lnote = lnoten+9
+ else
+ notexq = notexq(1:lnote)//sepsymq(iv-1)//sq//'segnoo'
+ * //noteq(1:lnoten)//'9'
+ lnote = lnote+lnoten+9
+ end if
+130 continue
+ if (islast) write(11,'(a)')notexq(1:lnote)//sq//'en'
+ lnote = 0
+ end if
+c
+c Check for new clefs
+c
+ isclef = .false.
+ if (btest(islur(ivxo(istart(ib)),ipo(istart(ib))),15))
+ * then
+c
+c In preceding line, fl32 gave wrong result for ... .gt.0 !!!
+c
+ do 140 in = istart(ib) , istop(ib)
+ if (btest(islur(ivxo(in),ipo(in)),11)) then
+ call wsclef(ivxo(in),ninow,clefq,
+ * iand(ishft(islur(ivxo(in),ipo(in)),-12),7))
+ end if
+140 continue
+ if (islast) write(11,'(a)')sq//'pmxnewclefs'
+ isclef = .true.
+ end if
+c
+c Start a notes group. We're just gonna define every one using pnotes{n},
+c where \def\pnotes#1{\vnotes#1\elemskip}
+c
+ soutq = sq//'pnotes{'
+ eonsqz = squez(ib)*feon(space(ib)/squez(ib))
+ if (eonsqz .gt. 9.995) then
+ write(soutq(9:12),'(f4.1)')eonsqz
+ else if (eonsqz .gt. 0.995) then
+ write(soutq(9:12),'(f4.2)')eonsqz
+ else if (eonsqz .gt. 0.095) then
+ soutq = soutq(1:8)//'0.'
+ write(soutq(11:12),'(i2)')nint(100*eonsqz)
+ else
+ soutq = soutq(1:8)//'0.0'
+ write(soutq(12:12),'(i1)')nint(100*eonsqz)
+ end if
+ soutq = soutq(1:12)//'}'
+ lsout = 13
+c
+c Check whole block, flag accidentals etc that are too close, one per *time*.
+c Note about bar starts and after rpt's/boublebars: There is an afterruleskip
+c (fbar*wheadpt) following, but rpts seem to occupy some of that gap, so
+c (dotsfac*wheadpt) is presumed to be filled up.
+c
+ in = istart(ib)-1
+ itrpt = -1
+ itsig = -1
+c
+c Begin big manual loop over notes in this block; ends at 112
+c
+111 in = in+1
+ if (in .gt. istop(ib)) go to 112
+ ip = ipo(in)
+ ivx = ivxo(in)
+ if (ivx .le. nv) then
+ iv = ivx
+ else
+ do 128 iv = 1 , nv
+ if (nvmx(iv) .eq. 2 .and. ivmx(iv,2).eq. ivx) go to 129
+128 continue
+ print*,'Trouble finding iv!, ivx,nvmx,ivmx:',ivx,nvmx(1),nvmx(2)
+ print*,ivmx(1,1),ivmx(1,2),ivmx(2,1),ivmx(2,2)
+ stop
+ end if
+129 continue
+c
+c Call precrd here so we know how much space to add for accid's in chords
+c After calling precrd, icashft>0 means there is a shifted chordal accid (incl.
+c main note.
+c
+c To call precrd, need up-downness, so must track if in beam.
+c
+c Deal w/ staff-jumping beams later
+c if ((numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+c * .and. ibm1(ivx,ibmcnt(ivx)) .eq. ip) .or.
+c * btest(nacc(ivx,ip),21)) then
+c if (.not.btest(irest(ivx,ip),24)) then
+ if ((numbms(ivx).gt.0 .and. ibmcnt1(ivx).le.numbms(ivx)
+ * .and. ibm1(ivx,ibmcnt1(ivx)) .eq. ip)) then
+ beamon1(ivx)=.true.
+ end if
+ icashft = 0
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord on this note. Need up-down-ness in precrd to auto shift for 2nds.
+c
+ if (beamon1(ivx)) then
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),ulq(ivx,ibmcnt1(ivx)),
+ * .false.,icashft)
+ else
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),udqq(nolev(ivx,ip),
+ * ncmid(iv,ip),islur(ivx,ip),nvmx(iv),ivx,nv),
+ * .false.,icashft)
+ end if
+ end if
+c
+c Turn beam off?
+c
+ if (beamon1(ivx) .and. ibm2(ivx,ibmcnt1(ivx)).eq.ip) then
+ beamon1(ivx) = .false.
+ ibmcnt1(ivx) = ibmcnt1(ivx)+1
+ end if
+c
+c Remember, rpts & internal sigs can only come at start of (internal) block
+c
+ isacc = iand(nacc(ivx,ip),3).gt.0
+ * .and. .not.btest(nacc(ivx,ip),17)
+ * .and. .not.btest(ipl(ivx,ip),10)
+c
+c i.e., do not set for chord. Now check for "(" as ornament on main note,
+c
+c!!! Need to do this for chord notes too. Maybe in chkarp?
+c
+ isaccs = isacc .or. btest(iornq(ivx,ip),0)
+c
+c 5/15/02 Add check for ) ornament of prior note.
+c 5/16 Nope...fails when grace intervenes.
+c if (ip .gt. 1) then
+c isaccs = isaccs .or. btest(iornq(ivx,ip-1),13)
+c end if
+ isarp = btest(iornq(ivx,ip),27)
+ iscacc = .false.
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord here; check for arpeggios and accidentals. Note accid shifts are
+c not of concern here, only whether there's an accid, whick causes iscacc=.true.
+c
+ iscacc = igetbits(nacc(ivx,ip),3,0).gt.0 .and.
+ * .not.btest(nacc(ivx,ip),17)
+ call chkarp(ncrd,icrdat,ivx,ip,iscacc,isarp)
+ end if
+c
+c When we get motivated, will do spacing for arpeggios here.
+c
+ if (ivx.eq.1 .and. iand(islur(ivx,ip),96).gt.0)
+ * itrpt = nint(to(in))
+ issig = btest(ipl(ivx,ip),28)
+ if (ivx.eq.1 .and. issig) itsig = nint(to(in))
+ isgrace = btest(islur(ivx,ip),4) .and.
+ * .not.btest(ipl(ivx,ip),29) .and. .not.btest(ipl(ivx,ip),31)
+ isgaft = .false.
+ if (ip .gt. 1) then
+ xnd = tnote(ipl2(ivx,ip-1))
+ isgaft = btest(ipl(ivx,ip-1),29) .or. btest(ipl(ivx,ip-1),31)
+ isgrace = isgrace .or. isgaft
+ end if
+ iscln = isclef .and. btest(islur(ivx,ip),11)
+c
+c Is prev. note non-beamed, up-stemmed, & flagged? Recall if ip>1, have nd
+c
+ isflag = ip.gt.1 .and. xnd.gt.tol .and. xnd.lt.16.-tol
+ if (isflag)
+ * isflag = .not.btest(irest(ivx,ip-1),0)
+ * .and. udqq(nolev(ivx,ip-1),
+ * ncmid(iv,ip-1),islur(ivx,ip-1),nvmx(iv),ivx,nv).eq.'u'
+ if (isflag) then
+ do 116 ibmchk = 1 , numbms(ivx)
+ if (ip-1 .lt. ibm1(ivx,ibmchk)) then
+ go to 117
+c
+c Add check for non-beamed xtuplets. May be problem with stem direction.
+c
+c else if (ip-1.le.ibm2(ivx,ibmchk)) then
+ else if (ip-1.le.ibm2(ivx,ibmchk) .and.
+ * .not.btest(islur(ivx,ibm1(ivx,ibmchk)),18)) then
+ isflag = .false.
+ go to 117
+ end if
+116 continue
+ end if
+117 continue
+c
+c If isflag, then won't need to check for dot on prev. note.
+c
+c 5/16/02 ??? Try using this for ) ornament.
+c
+ isflag = isflag .or. btest(iornq(ivx,ip-1),13)
+ isdot = ip.gt.1
+ if (isdot) isdot = isdotted(nodur,ivx,ip-1)
+ isrshft = ip .gt. 1
+ if (isrshft) isrshft = btest(irest(ivx,ip-1),20)
+ if (.not.(isaccs.or.isgrace.or.iscln.or.isflag.or.isrshft.or.
+ * isdot.or.btest(iornq(ivx,ip),26).or.
+ * btest(irest(ivx,ip),21).or.isarp.or.
+ * btest(irest(ivx,ip),27).or.iscacc)) go to 111
+c
+c Here is an accid,grace,clef,flag,rtshft,dot,udsp,arpeg,left-shift.
+c Compute pts, the total occupied space including prior notehead.
+c
+ wheadpt1 = wheadpt*fullsize(iv)
+ pts = wheadpt1
+c
+c Set up for possible cautionary accidental here
+c
+ if (isaccs .or. iscacc) then
+ if (.not.btest(iornq(ivx,ip),31)) then
+ taccfac = accfac
+ else
+ taccfac = 1.4*accfac
+ end if
+ end if
+ if (isgrace) then
+ secondgrace = .false.
+ do 122 ig = 1 , ngrace
+ if (.not. isgaft) then
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 123
+ else if (ip .gt. 1) then
+ if (ipg(ig).eq.ip-1 .and. ivg(ig).eq.ivx) go to 123
+ end if
+122 continue
+ print*,'Problem finding grace index in makeabar'
+ stop
+123 continue
+c
+c wgr = distance to backspace (in headwidths), less main acc.
+c ptgr = same in pts,+ main acc. Not used for after-grace. Distance to backspace.
+c spgr = total space needed (w/o main acc).
+c Also, spgr is same for b4 or after, but xb4fac-space will be in diff. place.
+c
+ if (nng(ig) .eq. 1) then
+ wgr = grafac
+ if (multg(ig) .eq. 0) wgr = wgr-.4
+ else
+ wgr = nng(ig)*emgfac
+ do 126 ing = 2 , nng(ig)
+ if (naccg(ngstrt(ig)-1+ing) .gt. 0) wgr = wgr+acgfac
+126 continue
+ end if
+ if (graspace(ig) .gt. 0.) then
+c
+c User-defined space before grace
+c
+ wgr = wgr+graspace(ig)
+ end if
+ ptgr(ig) = wgr*wheadpt1
+ spgr = ptgr(ig)+xb4fac*wheadpt1
+c
+c!!! May need to mod for chord accid's
+c
+ if (isaccs .or. iscacc) ptgr(ig) = ptgr(ig) + taccfac*wheadpt1
+ if (naccg(ngstrt(ig)) .gt. 0) spgr = spgr+wheadpt1*agc1fac
+ pts = pts+spgr
+c
+c Special check for after-grace on ip-1 and normal on ip. Must go back thru
+c loop again for the normal grace.
+c
+ if (isgaft .and. ig.lt.ngrace .and. .not.secondgrace) then
+ if (ipg(ig+1).eq.ip) then
+ secondgrace = .true.
+ ig = ig+1
+ go to 123
+ end if
+ end if
+ end if
+ if (iscln) then
+ pts = pts+clefac*wheadpt1
+c
+c How far to backspace when printing the clef
+c
+ ptclef(ivx) = 0.
+c
+c!!! May need to mod for chord accid's
+c
+ if (isaccs .or. iscacc)
+ * ptclef(ivx) = ptclef(ivx)+taccfac*wheadpt1
+ if (isgrace) ptclef(ivx) = ptclef(ivx)+spgr
+ end if
+ if (isrshft) then
+ pts = pts+rtshfac*wheadpt1
+ else if (isflag) then
+ pts = pts+flagfac*wheadpt1
+ else if (isdot) then
+ pts = pts+dotfac*wheadpt1
+ end if
+ if (abs(to(in)-itrpt) .lt. tol) then
+c
+c Repeat, need a little extra space
+c
+ pts = pts+dotsfac*wheadpt1
+ end if
+ if (isarp) then
+ pts = pts+arpfac*wheadpt1
+ end if
+c
+c Add in padding space
+c
+ pts = pts+xspfac*wheadpt1
+c
+c Now done with all items needing space except accidentals,
+c accidental shifts, and left-notehead-shifts, and will later
+c subtract a notehead if at start of bar.
+c
+c Get available space in elemskips (esk)
+c
+c isfirst = ip.eq.1 .or. to(in).eq.itrpt .or.
+c * to(in) .eq. itsig
+ isfirst = ip.eq.1 .or. abs(to(in)-itrpt).lt.tol .or.
+ * abs(to(in)-itsig).lt.tol
+ if (isfirst) then
+c
+c At start of bar or after repeat sign or new signature
+c
+c if (to(in) .eq. itsig) then
+ if (abs(to(in)-itsig).lt.tol) then
+ esk = 0.
+ else
+ esk = fbar
+ end if
+ else
+c
+c Not 1st note of bar
+c
+ esk = eskz(ivx,ip)-eskz(ivx,ip-1)
+ end if
+ if (isgrace) then
+c
+c Since graces can be very long, cannot assume no interference if prior
+c note uses >1 noteskip. So must get elsk's back to prior note, whether or
+c not it used only one noteskip.
+c <<But if it was xtup. don't need to call eskb4.>>????
+c
+c 10/8/05 Kluge to not zero out esk if in xtup
+c
+ esksav = esk
+ if ((ip.le.2 .or. nodur(ivx,max(1,ip-2)).gt.0) .and.
+c * to(in).ne.itsig)
+ * abs(to(in)-itsig).gt.tol)
+ * call eskb4(ip,ivx,in,ib,space,tstart,fbar,itrpt,esk)
+ if (abs(esk) .lt. tol) esk = esksav
+ end if
+c
+c Done getting available elemskips. Remove headwidth if first. Must do here
+c rather than earlier since check uses isfirst
+c
+ if (isfirst) pts = pts-wheadpt1
+c
+c Deal with accidental shifts and left-notehead shifts
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c In a chord
+c
+ ptsl = 0.
+ if (btest(irest(ivx,ip),27)) ptsl = wheadpt1
+ ptsadd = max(ptsl,icashft*.05*wheadpt1)
+c
+c Note: may have icashft=-20000 (if shftmin=-1000 in crdacc) but that's OK
+c
+ else
+c
+c Not in a chord
+c
+ ihshft = 0
+ if (isaccs) then
+ ihshft = igetbits(nacc(ivx,ip),7,10)
+c if (ihshft .ne. 0) ihshft = max(0,64-ihshft)
+ if (ihshft .ne. 0) ihshft = max(0,107-ihshft)
+ end if
+c
+c Check for left-shifted main note
+c
+ if (btest(ipl(ivx,ip),8)) ihshft = max(20,ihshft)
+ ptsadd = ihshft*.05*wheadpt1
+ end if
+ pts = pts+ptsadd
+ if (isgrace) ptgr(ig) = ptgr(ig)+ptsadd
+ if (iscln) ptclef(ivx) = ptclef(ivx)+ptsadd
+c
+c Left-shifted, non-chord note before?
+c
+ if (ip .gt. 1) then
+ if (.not.btest(ipl(ivx,ip-1),10) .and.
+ * btest(irest(ivx,ip-1),27)) pts = pts-wheadpt1
+ end if
+c
+c Try big accidentals first
+c
+ ptbneed = pts
+ if (isaccs .or. iscacc) then
+ ptbneed = ptbneed+wheadpt1*bacfac
+ end if
+ if (poenom*esk .gt. ptbneed) then
+c
+c Set flag for big accidental
+c
+ if (isacc) nacc(ivx,ip) = ibset(nacc(ivx,ip),3)
+ go to 99
+ end if
+c
+c Cannot use big, so try small
+c
+ ptsneed = pts
+ if (isaccs .or. iscacc) then
+ ptsneed = ptsneed+taccfac*wheadpt1
+ end if
+ if (poenom*esk .lt. ptsneed) call addask(to(in),ptsneed,
+ * esk,fixednew,scaldold,0.,.false.)
+99 continue
+ if (btest(iornq(ivx,ip),26)) then
+c
+c User-defined space. Warning, "zero" may change value in addask!
+c
+ zero = 0.
+ call addask(to(in),ptsneed,zero,
+ * fixednew,scaldold,tglp1,.true.)
+ end if
+c
+c End of big manual loop over "in" for accidental checking
+c
+ go to 111
+112 continue
+c
+c End of ask analysis for this block.
+c
+c Adjust eskz if there are added spaces. Corrects length of xtup brackets.
+c
+ if (naskb.gt.0) call adjusteskz(ib,squez,istart,istop,poenom)
+c
+c Check for internal repeat or sig change.
+c
+ if (ib.gt.1 .and. ivxo(istart(ib)).eq.1) then
+ iirpt = iand(islur(1,ipo(istart(ib))),67109216)
+ if (iirpt .gt. 0) then
+c
+c Internal repeat
+c
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1%'
+ if (iirpt .eq. 96) then
+ if (islast) write(11,'(a)')sq//'leftrightrepeat'
+ fixednew = fixednew+lrrptfac*wheadpt
+ else if (btest(iirpt,5)) then
+ if (islast) write(11,'(a)')sq//'leftrepeat'
+ fixednew = fixednew+rptfac*wheadpt
+ else if (btest(iirpt,6)) then
+ if (islast) write(11,'(a)')sq//'rightrepeat'
+ fixednew = fixednew+rptfac*wheadpt
+ else if (btest(iirpt,8)) then
+ if (islast) write(11,'(a)')sq//'doublebar'
+ else
+ print*,'Unexpected mid-bar repeat command R*'
+ call stop1()
+ end if
+ scaldold = scaldold-fbar
+ end if
+ if (btest(ipl(1,ipo(istart(ib))),28)) then
+c
+c Internal signature change.
+c
+ notexq = sq//'generalsignature{'
+ lnote = 18
+ if (isig .lt. 0) then
+ notexq = notexq(1:lnote)//'-'
+ lnote = lnote+1
+ end if
+ if (islast) write(11,'(a)')notexq(1:lnote)
+ * //chax(48+abs(isig))//'}%'
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-.5'//sq//'afterruleskip}%'
+ lnote = 0
+ end if
+ end if
+ flgndb = .false.
+c
+c Done with start-of-block stuff. Begin main loop over voices.
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ icm = midchan(iv,kv)
+c
+c A rather klugey way to set flag for figure in this voice
+c Must always check figbass before figchk.
+c
+ if (figbass) then
+ ivf = 0
+ if (ivx .eq. 1) then
+ ivf = 1
+ else if (ivx .eq. ivxfig2) then
+ ivf = 2
+ end if
+ if (ivf.gt.0) figchk(ivf) = nfigs(ivf).gt.0
+ end if
+ if (ivx .gt. 1) then
+ if (ivx .le. nv) then
+ call addstr(sepsymq(iv-1),1,soutq,lsout)
+ else
+ call addstr(sq//'nextvoice',10,soutq,lsout)
+ end if
+ end if
+ if (ihdht.gt.0 .and. ivx.eq.nv) then
+c
+c Write header. First adjust height if needed to miss barno.
+c
+ if (bar1syst .and. iline.ne.1) then
+ ihdht = 15+irzbnd+isnx
+ end if
+c
+c Add user-defined vertical shift
+c
+ ihdht = ihdht+ihdvrt
+ lchead = lenstr(headrq,80)
+ notexq = sq//'zcharnote{'
+ write(notexq(12:13),'(i2)')ihdht
+ notexq = notexq(1:13)//'}{'//sq//'bigfont'//sq//'kern-30pt '
+ call addstr(notexq,34,soutq,lsout)
+ call addstr(headrq(1:lchead)//'}',1+lchead,soutq,lsout)
+ ihdht = 0
+ end if
+ if (lower .and. ivx.eq.nv) then
+ lclow = lenstr(lowerq,80)
+ call addstr(sq//'zcharnote{-6}{'//
+ * sq//'tempo'//sq//'kern-10pt '//
+ * lowerq(1:lclow)//'}',33+lclow,soutq,lsout)
+ lower=.false.
+ end if
+ tnow = tstart(ib)
+ nofirst = .true.
+c
+c Done setting up voice ivx for start of block ib. Loop over notes in voice.
+c
+ do 10 jn = istart(ib), istop(ib)
+ if (ivxo(jn) .ne. ivx) go to 10
+ ip = ipo(jn)
+c
+c May have problem with not initializing islhgt, so do it here
+c
+ islhgt = 0
+c
+ if (nofirst) then
+ noctup = 0
+ if (ncmid(iv,ip) .eq. 23) noctup = -2
+ nofirst = .false.
+ end if
+c
+c Check for internal floating figure (before last note of group).
+c
+12 if (figbass) then
+ if (ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+ if (figchk(ivf) .and. itfig(ivf,ifig(ivf)).lt.tnow-tol)
+ * then
+c
+c Bypassed figure location. Backup, place fig, return.
+c
+ offnsk = (tnow-itfig(ivf,ifig(ivf)))/space(ib)
+ call putfig(ivf,ifig(ivf),offnsk,figchk(ivf),soutq,
+ * lsout)
+ go to 12
+ end if
+ end if
+ end if
+c
+c Put in \sk if needed
+c
+ if (to(jn) .gt. tnow+tol) then
+ call addstr(sq//'sk',3,soutq,lsout)
+ tnow = tnow+space(ib)
+ go to 12
+ end if
+c
+c Check for user-defined shifts
+c
+ if (btest(irest(ivx,ip),15).or.btest(irest(ivx,ip),16))
+ * call putshft(ivx,.true.,soutq,lsout)
+21 if (iaskb(ivx).le.naskb .and.
+ * tnow.gt.task(iaskb(ivx))-tol) then
+ if (task(iaskb(ivx)) .gt. tstart(ib)-tol) then
+c
+c Insert placeholder for accidental skip
+c
+ call addstr(sq//'ask ',9,soutq,lsout)
+ nasksys = nasksys+1
+ wasksys(nasksys) = wask(iaskb(ivx))
+ if (wask(iaskb(ivx)) .gt. 0.) then
+ elasksys(nasksys) = elask(iaskb(ivx))
+ else
+c
+c This is a signal to permit negative ask's. Should really have elask>=0.
+c
+ elasksys(nasksys) = -elask(iaskb(ivx))
+ end if
+ end if
+c
+c May have skipped some task's in earlier blocks (due to void voice)
+c
+ iaskb(ivx) = iaskb(ivx)+1
+ go to 21
+ end if
+ if (figbass) then
+ if (ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+ if (figchk(ivf) .and.
+ * abs(itfig(ivf,ifig(ivf))-tnow).lt.tol) then
+c
+c Figure on a note. NB: later special check for late figs.
+c
+ call putfig(ivf,ifig(ivf),0.,figchk(ivf),soutq,lsout)
+ end if
+ end if
+ end if
+c
+c Check for new clef here.
+c
+ if (isclef .and. btest(islur(ivx,ip),11)) then
+c print*,'At clef insertion, ptclef:',ptclef(iv)
+ if (ptclef(iv) .gt. 0.) then
+ notexq = sq//'off{-'
+ if (ptclef(iv) .lt. 9.95) then
+ write(notexq(7:9),'(f3.1)')ptclef(iv)
+ lnote = 9
+ else
+ write(notexq(7:10),'(f4.1)')ptclef(iv)
+ lnote = 10
+ end if
+ notexq = notexq(1:lnote)//'pt}'
+ lnote = lnote+3
+ call addstr(notexq,lnote,soutq,lsout)
+c print*,'Just added: ',notexq(1:lnote)
+ end if
+ call clefsym(islur(iv,ip),notexq,lnote,nclef)
+ call addstr(notexq,lnote,soutq,lsout)
+ if (ptclef(iv) .gt. 0.) then
+ notexq = sq//'off{'
+ if (ptclef(iv) .lt. 9.95) then
+ write(notexq(6:8),'(f3.1)')ptclef(iv)
+ lnote = 8
+ else
+ write(notexq(6:9),'(f4.1)')ptclef(iv)
+ lnote = 9
+ end if
+ notexq = notexq(1:lnote)//'pt}'
+ lnote = lnote+3
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+ end if
+c
+c Checking for literal TeX string BEFORE starting beams!!
+c
+ if (btest(islur(ivx,ip),16)) then
+ do 124 il = 1 , nlit
+ if (iplit(il).eq.ip .and. ivlit(il).eq.ivx) go to 125
+124 continue
+ print*,'Problem finding index for literal string'
+ call stop1()
+125 continue
+c
+c Write a type 1 tex string.
+c
+ if (lenlit(il) .lt. 71) then
+c
+c Add normally
+c
+ call addstr(litq(il),lenlit(il),soutq,lsout)
+ else
+c
+c Longer than 71. Write souq, Write string, start new soutq.
+c
+ if (islast) write(11,'(a)')soutq(1:lsout)//'%'
+ if (islast) write(11,'(a)')litq(il)(1:lenlit(il))//'%'
+ lsout = 0
+ end if
+ end if
+c
+c Arpeggio on a main (non-chordal) note?
+c
+ if (btest(iornq(ivx,ip),27)) then
+c call putarp(tnow,iv,ip,nolev(ivx,ip),ncmid(iv,ip),
+ call putarp(tnow,ivx,ip,nolev(ivx,ip),ncmid(iv,ip),
+ * soutq,lsout)
+ end if
+c
+c See if a beam starts here
+c
+ if ((numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+ * .and. ibm1(ivx,ibmcnt(ivx)) .eq. ip) .or.
+ * btest(nacc(ivx,ip),21)) then
+ if (.not.btest(irest(ivx,ip),24)) then
+c
+c Not a jump start
+c
+ call beamstrt(notexq,lnote,nornb,ihornb,space,squez,ib)
+c
+c Shift beam start if notehead was shifted
+c
+ if (btest(ipl(ivx,ip),8)) then
+ call addstr(sq//'loff{',6,soutq,lsout)
+ else if (btest(ipl(ivx,ip),9)) then
+ call addstr(sq//'roff{',6,soutq,lsout)
+ end if
+ if (lnote .gt. 0) call addstr(notexq,lnote,soutq,lsout)
+ if (btest(ipl(ivx,ip),8) .or.
+ * btest(ipl(ivx,ip),9)) call addstr('}',1,soutq,lsout)
+ else
+c
+c Jump start. Set marker for second part of a jump beam. Note ivbj2 was set
+c to 0 at end of first part of jump beam
+c
+ ivbj2 = ivx
+c
+c Check for xtup since we bypassed beamstrt wherein vxtup is normally set
+c
+ if (btest(irest(ivx,ip),28) .and. ixrest(ivx).ne.2)
+ * vxtup(ivx) = .true.
+c
+c Since beamstrt is not called, and drawbm is normally set there, need to set
+c it here. This could cause problems if someone tries a staff-jumping,
+c unbarred beam, which I'll deal with when it comes up.
+c
+ drawbm(ivx) = .true.
+ end if
+ if (ixrest(ivx) .eq. 0) then
+ beamon(ivx) = .true.
+ bspend = .true.
+ if (.not.btest(irest(ivx,ip),24))bspend = .true.
+ end if
+ end if
+c
+c Setup for chords and possible slurs in chords
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c There is a chord on this note. Just rerun precrd. Klunky, but saves
+c me from tracking down errors instroduced when I moved 1st call
+c forward for accidental spacing analysis.
+c
+ if (beamon(ivx)) then
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),ulq(ivx,ibmcnt(ivx)),
+ * .true.,icashft)
+ else
+ call precrd(ivx,ip,nolev(ivx,ip),nacc(ivx,ip),
+ * ipl(ivx,ip),irest(ivx,ip),udqq(nolev(ivx,ip),
+ * ncmid(iv,ip),islur(ivx,ip),nvmx(iv),ivx,nv),
+ * .true.,icashft)
+ end if
+ end if
+c
+c Is there slur or grace activity?
+c
+ isgrace = btest(islur(ivx,ip),4)
+ if (ip .gt. 1) isgrace = isgrace.or.btest(ipl(ivx,ip-1),31)
+c
+c isgrace if not 1st note in bar and previous note has Way-after grace.
+c
+ if (btest(islur(ivx,ip),0) .or. isgrace) then
+ if (btest(islur(ivx,ip),0)) then
+ if (fontslur) then
+c
+c Call routine for non-postscript slurs
+c
+ call doslur(nolev(ivx,ip),isdat1,isdat2,isdat3,nsdat,
+ * ip,iv,kv,nv,beamon(ivx),ncmid(iv,ip),soutq,lsout,
+ * ulq(ivx,ibmcnt(ivx)),islur(ivx,ip),ipl(ivx,ip),
+ * iornq(ivx,ip),islhgt,tnote(ipl2(ivx,ip)),
+ * nacc(ivx,ip))
+ else
+c
+c Postscript slurs
+c
+ call dopsslur(nolev(ivx,ip),isdat1,isdat2,isdat3,
+ * isdat4,nsdat,
+ * ip,iv,kv,nv,beamon(ivx),ncmid(iv,ip),soutq,lsout,
+ * ulq(ivx,ibmcnt(ivx)),islur(ivx,ip),ipl(ivx,ip),
+ * iornq(ivx,ip),islhgt,tnote(ipl2(ivx,ip)),
+ * nacc(ivx,ip))
+ end if
+ end if
+ if (isgrace) then
+c
+c Grace note.
+c
+ iphold = ip
+ isgrace = .false.
+ if (ip .gt. 1) isgrace = btest(ipl(ivx,ip-1),31)
+ if (isgrace) iphold = iphold-1
+ isgrace = isgrace .or. (.not.btest(ipl(ivx,ip),31)
+ * .and..not.btest(ipl(ivx,ip),29))
+c
+c Place grace now if (a) Way-after from prev note and ip>1 or (b) Pre-grace
+c on current note. Do A-grace on current note, and W-grace at barend, later.
+c
+ if (isgrace) then
+ call dograce(ivx,iphold,ptgr,soutq,lsout,ncmid(iv,ip),
+ * nacc(ivx,ip),ig,ipl(ivx,iphold),.false.,
+ * beamon(ivx),nolev(ivx,ip),ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),nv,ibmcnt(ivx),
+ * tnote(ipl2(ivx,ip)),ulq)
+ if (slurg(ig)) then
+c
+c Terminate slur started in dograce. Get direction of main note stem
+c
+ if (.not.beamon(ivx)) then
+c
+c Separate note. Get stem direction.
+c
+ stemup = udqq(nolev(ivx,ip),ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),ivx,nv) .eq. 'u'
+ else
+c
+c In a beam
+c
+ stemup = ulq(ivx,ibmcnt(ivx)) .eq. 'u'
+ end if
+c
+c Stop the shift if whole note
+c
+ stemup = stemup .or.
+ * tnote(ipl2(ivx,ip)).gt.63
+ call endslur(stemup,.not.upg(ig),nolev(ivx,ip),0,
+ * ndxslur,0,ncmid(iv,ip),soutq,lsout,fontslur)
+ end if
+ end if
+ end if
+ if (btest(iornq(ivx,ip),24)) then
+c
+c Start slur on main note for After- or Way-after-grace.
+c
+c???? ndxslur = log2(33554431-listslur)
+ ndxslur = log2(16777215-listslur)
+c
+c Get note name
+c
+ call notefq(noteq,lnoten,nolev(ivx,ip),ncmid(iv,ip))
+c
+c Get slur direction
+c
+ slurudq = 'u'
+ if (.not.beamon(ivx)) then
+ if (udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv) .eq. 'u') slurudq = 'd'
+ else
+ if (ulq(ivx,ibmcnt(ivx)) .eq. 'u') slurudq = 'd'
+ end if
+c
+cc Replace ndxslur by 11-ndxslur when printing only.
+c Replace ndxslur by 23-ndxslur when printing only.
+c
+c if (11-ndxslur .lt. 10) then
+ if (23-ndxslur .lt. 10) then
+c notexq = sq//'islur'//slurudq//chax(59-ndxslur)
+ notexq = sq//'islur'//slurudq//chax(71-ndxslur)
+ * //noteq(1:lnoten)
+ call addstr(notexq,8+lnoten,soutq,lsout)
+ else if (23-ndxslur .lt. 20) then
+ notexq = sq//'islur'//slurudq//'{1'//chax(61-ndxslur)
+ * //'}'//noteq(1:lnoten)
+ call addstr(notexq,11+lnoten,soutq,lsout)
+ else
+ notexq = sq//'islur'//slurudq//'{2'//chax(51-ndxslur)
+ * //'}'//noteq(1:lnoten)
+ call addstr(notexq,11+lnoten,soutq,lsout)
+ end if
+c call setbits(ipl(ivx,ip),4,23,ndxslur)
+ call setbits(ipl(ivx,ip),5,23,ndxslur)
+ if (btest(ipl(ivx,ip),31))
+c
+c Starting slur on W-grace on THIS note. Record ndxslur.
+c
+ * listslur = ibset(listslur,ndxslur)
+ end if
+ end if
+c
+c Process dynamic marks
+c
+ if (btest(irest(ivx,ip),26)) then
+ call dodyn(ivx,ip,
+ * nolev(ivx,ip),ncmid(iv,ip),ipl(ivx,ip),islur(ivx,ip),
+ * irest(ivx,ip),nvmx(iv),nv,beamon(ivx),ihornb,nornb,ulq,
+ * ibmcnt(ivx),nodur(ivx,ip).ge.64,soutq,lsout)
+ end if
+c
+c Check for chord notes. Moved up from below, 10/27/96 so chord orns done 1st.
+c
+ if (btest(ipl(ivx,ip),10)) then
+c
+c Need a duration to set type of note head
+c
+c if (.not. vxtup(ivx)) then
+c
+c Clumsy test, but vxtup is not set until main note is processed.
+c
+ if (.not.(vxtup(ivx).or.btest(irest(ivx,ip),28))) then
+ nodu = nodur(ivx,ip)
+c else if (mult(ivx,ip) .lt. 0) then
+ else if (iand(mult(ivx,ip),15)-8 .lt. 0) then
+ nodu = 32
+ else
+ nodu = 16
+ end if
+ call docrd(ivx,ip,nodu,ncmid(iv,ip),iv,tnow,soutq,lsout,
+ * ulq,ibmcnt(ivx),islur(ivx,ip),nvmx(iv),nv,
+ * beamon(ivx),nolev(ivx,ip),ihornb,nornb,stemlen,
+ * btest(nacc(ivx,ip),27),nacc(ivx,ip))
+ end if
+c
+c Now that chords are done, add stuff to midi file
+c
+c if (ismidi) call addmidi(icm,nolev(ivx,ip),
+ if (ismidi) call addmidi(icm,
+ * nolev(ivx,ip)-iTransAmt(instno(iv)),
+c
+ * iand(nacc(ivx,ip),7),isig,tnote(ipl2(ivx,ip)),
+ * btest(irest(ivx,ip),0),.false.)
+c
+c Check for breath or caesura
+c
+ if (btest(iornq(ivx,ip),28)) then
+ call putcb(ivx,ip,notexq,lnote)
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Check for main-note ornaments. ')' on dotted notes go in with note, not here.
+c Bits 0-13: (stmgx+Tupf._) ; 14: Down fermata, was F
+c 15: Trill w/o "tr", was U , 16-18 edit. accid., 19-21 TBD
+c
+ isacc = iand(iornq(ivx,ip),4194287) .gt. 0
+c
+c isacc=.true. if any ornament except segno
+c
+ if (btest(iornq(ivx,ip),13) .and. nodur(ivx,ip).gt.0) then
+c
+c If ). is only ornament, bypass. If with others, temporarirly zero the bit.
+c
+ if (2**log2(nodur(ivx,ip)) .ne. nodur(ivx,ip)) then
+ if (iand(iornq(ivx,ip),516079) .eq. 0) then
+c
+c ). is the only non-segno ornament
+c
+ isacc = .false.
+ else
+c
+c There are other ornaments in addition
+c
+ rpndot = .true.
+ iornq(ivx,ip) = ibclr(iornq(ivx,ip),13)
+ end if
+ end if
+ end if
+ if (isacc .and. .not.cwrferm(ivx)) then
+c
+c Check for centered whole-bar rest with fermata (bits 10 or 14).
+c
+ if (iand(iornq(ivx,ip),17408).gt.0
+ * .and. btest(irest(ivx,ip),0) .and.
+ * nodur(ivx,ip).eq.lenbar .and.
+ * .not.(firstgulp.and.ibar.eq.1.and.lenb0.gt.0)) then
+ cwrferm(ivx) = .true.
+ go to 30
+ end if
+ call putorn(iornq(ivx,ip),nolev(ivx,ip),nolev(ivx,ip),
+ * nodur(ivx,ip),nornb,ulq,ibmcnt(ivx),ivx,ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),nv,ihornb,stemlen,
+ * notexq,lnote,ip,islhgt,beamon(ivx),
+ * btest(ipl(ivx,ip),10))
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+ if (rpndot) then
+ iornq(ivx,ip) = ibset(iornq(ivx,ip),13)
+ rpndot = .false.
+ end if
+30 continue
+c
+c Check for main note accidental
+c
+ if (iand(nacc(ivx,ip),3).gt.0 .and.
+ * .not.btest(nacc(ivx,ip),17)) then
+ ihshft = igetbits(nacc(ivx,ip),7,10)
+ if (ihshft .ne. 0) ihshft=ihshft-107
+ if (.not.btest(ipl(ivx,ip),10) .and. btest(ipl(ivx,ip),8))
+c
+c Not a chord, and left-shifted main note, so left-shift accid
+c
+ * ihshft = ihshft-20
+ call doacc(ihshft,igetbits(nacc(ivx,ip),6,4),
+ * notexq,lnote,nacc(ivx,ip),nolev(ivx,ip),ncmid(iv,ip),
+ * btest(irest(ivx,ip),31))
+ call addstr(notexq,lnote,soutq,lsout)
+ end if
+c
+c Lower dot for lower-voice notes. Conditions are:
+c 1. Dotted time value
+c 2. Lower voice of two
+c 3. Note is on a line
+c 4. Not a rest
+c. 5. Flag (lowdot) is set to true
+c 6. Not in an xtuplet
+c
+ if (lowdot .and. nvmx(iv).eq.2 .and. ivx.le.nv
+ * .and. nodur(ivx,ip).ne.0) then
+ if (.not.btest(irest(ivx,ip),0) .and.
+ * 2**log2(nodur(ivx,ip)).ne.nodur(ivx,ip) .and.
+ * mod(nolev(ivx,ip)-ncmid(ivx,ip),2).eq.0) then
+ if (btest(irest(ivx,ip),19)) then
+c
+c Note already in movdot list. Drop by 2.
+c
+ updot(ivx,ndotmv(ivx)+1) =
+ * updot(ivx,ndotmv(ivx)+1)-2.
+ else
+c
+c Not in list so just move it right now
+c
+ call dotmov(-2.,0.,soutq,lsout,
+ * igetbits(islur(ivx,ip),1,3))
+ end if
+ end if
+ end if
+c
+c Check for dotted notes with moved dots
+c
+ if (btest(irest(ivx,ip),19)) then
+ ndotmv(ivx) = ndotmv(ivx)+1
+ call dotmov(updot(ivx,ndotmv(ivx)),rtdot(ivx,ndotmv(ivx)),
+ * soutq,lsout,igetbits(islur(ivx,ip),1,3))
+ end if
+c
+c Stemlength shortening?
+c
+ if (btest(mult(ivx,ip),27)) then
+ stemshort = 4.66-.667*(igetbits(mult(ivx,ip),3,28)+1)*.5
+ call addstr(sq//'stemlength{',12,soutq,lsout)
+ write(notexq,'(f4.2)')stemshort
+ call addstr(notexq(1:4)//'}',5,soutq,lsout)
+ else if (ip .gt. 1) then
+ if (btest(mult(ivx,ip-1),27))
+c
+c Cancel shortening. Looks like it gets automatically restored if new inst. or
+c new line, so no need to worry about affecting other lines
+c
+ * call addstr(sq//'stemlength{4.66}',17,soutq,lsout)
+ end if
+c
+c Zero out slur-height marker for raising ornaments
+c
+ islhgt = 0
+c
+c Now start with spacing notes. Is a beam start pending?
+c
+ if (bspend .and.
+ * ibm2(ivx,ibmcnt(ivx)).gt.ibm1(ivx,ibmcnt(ivx))) then
+ if (ixrest(ivx) .eq. 4) then
+c
+c Special path for single note at end of otherwise beamed xtup
+c
+ ixrest(ivx) = 0
+ else
+ call beamn1(notexq,lnote)
+ end if
+ bspend = .false.
+c
+c Is a beam ending?
+c
+ else if (numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx)
+c * .and. ibm2(ivx,ibmcnt(ivx)) .eq. ip) then
+ * .and. (ibm2(ivx,ibmcnt(ivx)).eq.ip .or.
+ * btest(nacc(ivx,ip),20))) then
+ if (bspend) then
+c
+c Must be a single-note ending of a jump-beam
+c
+ bspend = .false.
+ end if
+ call beamend(notexq,lnote)
+ if (.not.btest(nacc(ivx,ip),20)) then
+ vxtup(ivx) = .false.
+ nornb(ivx) = 0
+ ibmcnt(ivx) = ibmcnt(ivx)+1
+ beamon(ivx) = .false.
+ end if
+c
+c Or if we're in the middle of a beam
+c
+ else if (numbms(ivx).gt.0 .and. beamon(ivx)) then
+ call beamid(notexq,lnote)
+c
+c Or whole-bar rest
+c
+ else if (btest(irest(ivx,ip),0)
+ * .and. nodur(ivx,ip).eq.lenbar
+ * .and..not.(firstgulp.and.ibar.eq.1.and.lenb0.gt.0)
+ * .and..not.btest(irest(ivx,ip),25)
+ * .and..not.btest(islur(ivx,ip),29)) then
+c
+c Rule out pickup bar, blank rests, non-centered. Remember islur b19=> rp
+c
+ cwrest(ivx) = .true.
+ iscwr = .true.
+ call notex(cwrq(ivx),lcwr(ivx))
+ tnow = tnow+lenbar
+ go to 10
+ else if (ixrest(ivx) .eq. 0) then
+c
+c Before writing note or rest, check for keyboard rest height adjustment.
+c Conditions are 0. This is a non-blank rest
+c 1. kbdrests = .true.
+c 2. There are two voices on the staff
+c 3. No user-def height adjustments have been applied (nolev<50)
+cc 4. Not last note in bar
+cc 5. Followed by note (add better test later)
+c
+ if (kbdrests .and. btest(irest(ivx,ip),0) .and.
+ * .not.btest(islur(ivx,ip),29).and. nvmx(iv).eq.2 .and.
+c * nolev(ivx,ip).le.50 .and. ip.ne.nn(ivx)
+c * .and. .not.(btest(irest(ivx,ip+1),0))) then
+ * nolev(ivx,ip).le.50) then
+c
+c Get reference level: next following note if no intervening blank rests,
+c otherwise next prior note.
+c
+c levnext = nolev(ivx,ip+1)-ncmid(iv,ip)+4 ! Relative to bottom line
+ if (ip.ne.nn(ivx).and..not.btest(iornq(ivx,ip),30)) then
+c
+c Not the last note and not "look-left" for level
+c
+ do 8 kkp = ip+1 , nn(ivx)
+ if (btest(islur(ivx,kkp),29)) go to 4
+ if (.not.btest(irest(ivx,kkp),0)) then
+ levnext = nolev(ivx,kkp)-ncmid(iv,kkp)+4 ! Relative to bottom line
+ go to 9
+ end if
+8 continue
+ end if
+4 continue
+c
+c If here, there were no following notes or came to a blank rest, or
+c "look-left" option set. So look before
+c
+ if (ip .eq. 1) go to 2 ! Get out if this is the first note.
+ do 3 kkp = ip-1, 1, -1
+ if (.not.btest(irest(ivx,kkp),0)) then
+ levnext = nolev(ivx,kkp)-ncmid(iv,kkp)+4 ! Relative to bottom line
+ go to 9
+ end if
+3 continue
+ go to 2 ! Pretty odd, should never be here, but get out if so.
+9 continue
+c
+c Find note in other voice at same time
+c
+ iupdown = sign(1,ivx-nv-1)
+ ivother = ivmx(iv,(3-iupdown)/2)
+ tother = 0.
+ do 5 kkp = 1 , nib(ivother,ibar)
+ if (abs(tother-tnow) .lt. tol) go to 6
+ tother = tother+nodur(ivother,kkp)
+5 continue
+c
+c If here, then no note starts in other voice at same time, so set default
+c
+ levother = -iupdown*50
+ go to 7
+6 continue
+c
+c If here, have just identified a simultaneous note or rest in other voice
+c
+ if (.not.btest(irest(ivother,kkp),0)) then ! Not a rest, use it
+ levother = nolev(ivother,kkp)-ncmid(iv,ip)+4
+ else
+ if (nodur(ivother,kkp) .eq. nodur(ivx,ip)) then
+c
+c Rest in other voice has same duration, get out (so defualt spacing is used)
+c
+ go to 2
+ end if
+ levother = -iupdown*50
+ end if
+7 continue
+ indxr = log2(nodur(ivx,ip))+1
+ if (iupdown .lt. 0) then
+ levtop = levtopr(indxr)
+ iraise1 = levother-levtop-3 ! Based on other note
+ iraise2 = levnext-levtop ! Based on following note
+ if (indxr.eq.5 .and. levnext.lt.1) iraise2=iraise2+2
+ iraise = min(iraise1,iraise2)
+ if (mod(iraise+50,2).eq.1 .and.
+ * iraise+levtop.gt.-1) iraise = iraise-1
+ else
+ levbot = levbotr(indxr)
+ iraise1 = levother-levbot+3
+ iraise2 = levnext-levbot
+ if (indxr.eq.5 .and. levnext.gt.8) iraise2=iraise2-1
+ iraise = max(iraise1,iraise2)
+ if (mod(iraise+50,2).eq.1 .and.
+ * iraise+levbot.le.9) iraise = iraise-1
+ end if
+ nolev(ivx,ip) = 100+iraise
+ end if
+2 continue
+c
+c Write a separate note or rest
+c
+ call notex(notexq,lnote)
+ end if
+c
+c Right offset? This may cause trouble
+c
+ if (btest(ipl(ivx,ip),8)) then
+ call addstr(sq//'loff{',6,soutq,lsout)
+ else if (btest(ipl(ivx,ip),9)) then
+ call addstr(sq//'roff{',6,soutq,lsout)
+ end if
+ if (ixrest(ivx).eq.0 .and. lnote.gt. 0)
+ * call addstr(notexq,lnote,soutq,lsout)
+ if (btest(ipl(ivx,ip),8) .or.
+ * btest(ipl(ivx,ip),9)) call addstr('}',1,soutq,lsout)
+c
+c Terminate user-defined offsets. Fix format
+c
+ if (btest(irest(ivx,ip),15) .or. btest(irest(ivx,ip),17))
+ * call putshft(ivx,.false.,soutq,lsout)
+c
+c Deal with After- and Way-after-graces. First, if end of bar, compute space
+c needed since it wasn't done during general ask-checks. If extra space is
+c rq'd, convert GW to GA. Therefore GW at end of bar never needs extra sp.
+c But will still need to add extra space as hardspace.
+c
+ if (ip.eq.nn(ivx) .and. (btest(ipl(ivx,ip),31).or.
+ * btest(ipl(ivx,ip),29))) then
+ do 77 ig = 1 , ngrace
+ if (ipg(ig).eq.ip .and. ivg(ig).eq.ivx) go to 78
+77 continue
+ print*,'Problem finding grace index at "do 77"'
+ call stop1()
+78 continue
+c
+c Get elemskip to end of bar. WON'T WORK IF XTUPS !!
+c
+ esk = 0.
+ do 40 iib = ib , nb
+ if (iib .eq. ib) then
+ itleft = nint(to(ipl2(ivx,ip)))
+ else
+ itleft = nint(tstart(ib))
+ end if
+ if (iib .lt. nb) then
+ itright = nint(tstart(iib+1))
+ else
+ itright = lenbar
+ end if
+ esk = esk+feon(space(ib))*
+ * (itright-itleft)/space(ib)
+40 continue
+ ptsavail = poenom*esk-wheadpt
+ if (nng(ig) .eq. 1) then
+ wgr = grafac
+ else
+ wgr = nng(ig)*emgfac
+ do 41 ing = 1 , nng(ig)
+ if (naccg(ngstrt(ig)-1+ing) .gt. 0) wgr = wgr+acgfac
+41 continue
+ end if
+ ptgr(ig) = wgr*wheadpt
+ ptsneed = (wgr+0.5)*wheadpt
+ ptsndg(ivx) = 0.
+ if (ptsavail .lt. ptsneed) then
+ ptsndg(ivx) = ptsneed
+ eskndg(ivx) = esk
+ if (btest(ipl(ivx,ip),31)) then
+c
+c Convert GW to GA
+c
+ ipl(ivx,ip) = ibset(ibclr(ipl(ivx,ip),31),29)
+ end if
+ end if
+ end if
+c
+c Check for GA
+c
+ if (btest(ipl(ivx,ip),29))
+ * call dograce(ivx,ip,ptgr,soutq,lsout,ncmid(iv,ip),
+ * nacc(ivx,ip),ig,ipl(ivx,ip),.false.,
+ * .false.,0,0,0,0,0,0,0.,ulq)
+c
+c Update running time
+c
+ tnow = tnow+space(ib)
+10 continue
+c
+c Have finished last note in this voice and block
+c
+ itendb = nint(to(istop(ib))+space(ib))
+ if (figbass .and. ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ ivf = 1
+ if (ivx .gt. 1) ivf = 2
+17 if (figchk(ivf) .and. itfig(ivf,ifig(ivf)).lt.itendb) then
+c
+c There's at least one figure left. offnsk could be <0
+c
+ offnsk = (tnow-itfig(ivf,ifig(ivf)))/space(ib)
+ call putfig(ivf,ifig(ivf),offnsk,figchk(ivf),soutq,lsout)
+ go to 17
+ end if
+ end if
+c
+c Check for flag, dot, or upstem on last note of bar.
+c
+ if (ib .eq. nb) then
+ ip = ipo(ipl2(ivx,nn(ivx)))
+ flgndv(ivx) = 0.
+ if (abs(tnote(ipl2(ivx,ip))-space(ib)).lt.tol) then
+ if (space(ib) .lt. 16.-tol) then
+c
+c Note in last space, smaller than a quarter note.
+c
+ if ((.not.btest(irest(ivx,ip),0) .and.
+ * udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv).eq.'u')
+ * .or. isdotted(nodur,ivx,ip)) then
+c
+c Upstem non-rest, or dotted
+c
+ if (numbms(ivx).gt.0
+ * .and. ip.eq.ibm2(ivx,max(1,numbms(ivx)))
+ * .and. .not.isdotted(nodur,ivx,ip))
+ * then
+c
+c In beam and not dotted, so use smaller space
+c
+ flgndv(ivx) = upstmfac
+ else
+ flgndv(ivx) = flagfac
+ end if
+ end if
+ else
+c
+c Last space, nonflagged (no beam) only worry dot or up
+c
+ if (isdotted(nodur,ivx,ip)) then
+ flgndv(ivx) = flagfac
+ else if (tnote(ipl2(ivx,ip)).lt.64 .and.
+ * udqq(nolev(ivx,ip),ncmid(iv,ip),islur(ivx,ip),
+ * nvmx(iv),ivx,nv).eq.'u') then
+c
+c Upstem on last note , non-flagged
+c
+ flgndv(ivx) = upstmfac
+ end if
+ end if
+ end if
+c
+c Check for right-shifted chordal note
+c
+ if (btest(irest(ivx,ip),20)) flgndv(ivx) = rtshfac
+ flgndb = flgndb .or. flgndv(ivx).gt.0.
+ if (ismidi) then
+c
+c For midi, set flags for accidentals on last note of bar. Assume they affect
+c first note of next bar whether or not tied.
+c Note has already been done, so next entry into addmidi is 1st in new bar.
+c First do main note, then chord notes
+c
+c Gyrations needed to account for multi-bar tied full-bar notes?
+cc Old old lbacc(icm) = iand(nacc(ivx,ip),7)
+c New old if (lbacc(icm).eq.0) lbacc(icm) = iand(nacc(ivx,ip),7)
+c
+ if (iand(nacc(ivx,ip),7) .gt. 0) then
+c
+c Explicit accidental on last main note in bar
+c
+ do 55 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolev(ivx,ip)) go to 56
+55 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = nolev(ivx,ip)
+ jaccbl(icm,naccbl(icm)) = iashft(iand(nacc(ivx,ip),7))
+ end if
+56 continue
+ if (btest(ipl(ivx,ip),10) .and. crdacc) then
+ do 57 icrd = icrd1 , icrd2
+ iacc = igetbits(icrdat(icrd),3,20)
+ if (iacc .gt. 0) then
+c
+c Explicit accidental on chord note at end of bar
+c
+ nolevc = igetbits(icrdat(icrd),7,12)
+ do 58 kacc = 1 , naccbl(icm)
+ if (laccbl(icm,kacc) .eq. nolevc) go to 59
+58 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = nolevc
+ jaccbl(icm,naccbl(icm)) = iashft(iacc)
+ end if
+59 continue
+57 continue
+ end if
+c if (lbacc(icm).eq.0 .and. accb4(icm)) then
+ do 65 kacc = 1 , naccim(icm)
+c
+c If naccim(icm)>0,
+c possible implicit accidental from earlier in the bar. Check for prior accid
+c in this bar at relevant note levels, main and chord notes. Only act if no
+c explicit action from just above. Assuming any accid on last note in bar,
+c either explicit or implicit, has same effect on 1st note of next bar.
+c
+ if (nolev(ivx,ip) .eq. laccim(icm,kacc)) go to 66
+ if (btest(ipl(ivx,ip),10)) then
+ do 67 icrd = icrd1 , icrd2
+ if (iand(ishft(icrdat(icrd),-12),127) .eq.
+ * laccim(icm,kacc)) go to 66
+67 continue
+ end if
+ go to 65
+66 continue
+c
+c So far we know there is a main or chord note at level laccim(icm,kacc). So
+c it will get a bl-accid if it didn't just already get one.
+c
+ do 68 macc = 1 , naccbl(icm)
+ if (laccbl(icm,macc) .eq. laccim(icm,kacc)) go to 65
+68 continue
+ naccbl(icm) = naccbl(icm)+1
+ laccbl(icm,naccbl(icm)) = laccim(icm,kacc)
+ jaccbl(icm,naccbl(icm)) = jaccim(icm,kacc)
+65 continue
+ end if
+ end if
+11 continue
+c
+c Close out the notes group
+c
+ call addstr(sq//'en',3,soutq,lsout)
+ if (islast.and.lsout .gt. 0) write(11,'(a)')soutq(1:lsout)//'%'
+16 continue
+c
+c Check for way-after graces at end of bar. We could not link these to notes
+c as in midbar since there is no note following grace! Also, set flag if
+c hardspace is needed. Also, save nvmx, ivmx for use in space checks on reloop.
+c
+ isgrace = .false.
+ do 75 iv = 1 , nv
+ nvmxsav(iv) = nvmx(iv)
+ do 75 kv = 1 , nvmx(iv)
+ ivmxsav(iv,kv) = ivmx(iv,kv)
+ ivx = ivmx(iv,kv)
+ ptsgnd = 0.
+ if ((btest(ipl(ivx,nn(ivx)),29).or.btest(ipl(ivx,nn(ivx)),31))
+ * .and. ptsndg(ivx).gt.0.) then
+ flgndb = .true.
+ if (ptsndg(ivx) .gt. ptsgnd) then
+ ptsgnd = ptsndg(ivx)
+ eskgnd = eskndg(ivx)
+ end if
+ end if
+ if (btest(ipl(ivx,nn(ivx)),31)) then
+c
+c This voice has a way-after grace here at end of bar
+c
+ if (.not.isgrace) then
+c
+c This is the first one, so set up the string
+c
+ isgrace = .true.
+ ivlast = 1
+ soutq = sq//'znotes'
+ lsout = 7
+ end if
+ do 76 iiv = ivlast , iv-1
+ call addstr(sepsymq(iiv),1,soutq,lsout)
+76 continue
+ ivlast = iv
+c
+c No need to put in 'nextvoice', even if 2 lines/staff
+c
+ call dograce(ivx,nn(ivx),ptgr,soutq,lsout,ncmid(iv,nn(ivx)),
+ * nacc(ivx,nn(ivx)),ig,ipl(ivx,nn(ivx)),.true.,
+ * .false.,0,0,0,0,0,0,0.,ulq)
+ end if
+75 continue
+ if (isgrace) then
+ call addstr(sq//'en%',4,soutq,lsout)
+ if (islast .and. lsout .gt. 0) write(11,'(a)')soutq(1:lsout)
+ end if
+ lsout = 0
+c
+c Write multibar rest. Assuming nv = 1 and do not worry about cwbrest
+c This has to be the only use of atnextbar
+c
+c if (ibar .eq. ibarmbr) then
+ if (ibar.eq.ibarmbr .and. islast) then
+c call addstr(sq//'def'//sq//'atnextbar{'//sq//'znotes'//sq//
+c * 'mbrest{',30,soutq,lsout)
+c ndig = int(alog10(mbrest+.01))+1
+c write(soutq(31:33),'(i'//chax(48+ndig)//')')mbrest
+c lsout = lsout+ndig
+c call addstr('}{',2,soutq,lsout)
+c mtrspc = .5+xb4mbr
+c xb4mbr = 0.
+c if (mtrspc .eq. 0) then
+c ndig = 1
+c else
+c ndig = int(alog10(mtrspc+.01))+1
+c end if
+c write(soutq(lsout+1:lsout+2),'(i'//chax(48+ndig)//')')mtrspc
+c lsout = lsout+ndig
+c call addstr('}0'//sq//'en}%',7,soutq,lsout)
+c if (islast) write(11,'(a)')soutq(1:lsout)
+c lsout = 0
+c ndig = int(alog10(mbrest-1+.01))+1
+c if (mbrest.eq.1) ndig=1
+c if (islast) write(11,'(a14,i'//chax(48+ndig)//',a1)')
+c * sq//'advance'//sq//'barno',mbrest-1,'%'
+c++
+ soutq = sq//'def'//sq//'atnextbar{'//sq//'znotes'
+ lsout = 22
+ notexq = sq//'mbrest'
+ lnote = 7
+ call istring(mbrest,noteq,len)
+ notexq = notexq(1:lnote)//noteq(1:len)
+ lnote = lnote+len
+ mtrspc = .5+xb4mbr
+ xb4mbr = 0.
+ call istring(mtrspc,noteq,len)
+ notexq = notexq(1:lnote)//noteq(1:len)//'0'
+ lnote = lnote+len+1
+ do 62 iv = 1 , nv
+ call addstr(notexq,lnote,soutq,lsout)
+ if (iv .lt. nv) call addstr(sepsymq(iv),1,soutq,lsout)
+62 continue
+ call addstr(sq//'en}%',5,soutq,lsout)
+ write(11,'(a)')soutq(1:lsout)
+ lsout = 0
+ if (mbrest .gt. 1) then
+ ndig = int(alog10(mbrest-1+.01))+1
+ write(11,'(a14,i'//chax(48+ndig)//',a1)')
+ * sq//'advance'//sq//'barno',mbrest-1,'%'
+ end if
+ else if (iscwr) then
+c
+c Centered whole-bar rests
+c
+ call addstr(sq//'def'//sq//'atnextbar{'//sq//'znotes',22,
+ * soutq,lsout)
+ do 60 iv = 1 , nv
+ lnote = 0
+ do 61 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (cwrest(ivx)) then
+ if (lnote .eq. 0) then
+ notexq = sq//'centerbar{'
+ lnote = 11
+ end if
+ if (.not.cwrferm(ivx)) then
+ if (lcwr(ivx).ge.11 .and. cwrq(ivx)(11:11).ne.'p') then
+c
+c Kluge to use new definitions for centered, stacked rests
+c
+ if (cwrq(ivx)(2:10).eq.'liftpause' .or.
+ * cwrq(ivx)(2:10).eq.'liftPAuse')
+ * cwrq(ivx)(10:10) = 'c'
+ end if
+ notexq = notexq(1:lnote)//cwrq(ivx)(1:lcwr(ivx))
+ lnote = lnote+lcwr(ivx)
+ else
+c
+c Fermata on centered rest. Will need to fix up level.
+c 12/6/07 shift it left so it's centered over rest
+c
+c notexq = notexq(1:lnote)
+c * //sq//'fermataup7'//cwrq(ivx)(1:lcwr(ivx))
+c lnote = lnote+11+lcwr(ivx)
+c
+ notexq = notexq(1:lnote)//sq//'loffset{.39}{'
+ * //sq//'fermataup7}'//cwrq(ivx)(1:lcwr(ivx))
+ lnote = lnote+26+lcwr(ivx)
+ cwrferm(ivx) = .false.
+ end if
+ end if
+61 continue
+ if (lnote .gt. 0) call addstr(notexq(1:lnote)//'}',lnote+1,
+ * soutq,lsout)
+ if (iv .ne. nv) call addstr(sepsymq(iv),1,soutq,lsout)
+60 continue
+ call addstr(sq//'en}',4,soutq,lsout)
+ if (islast.and.lsout .gt. 0) write(11,'(a)')soutq(1:lsout)//'%'
+ end if
+c
+c End of block for centered whole-bar rests and multi-bar rests
+c
+c If at end of block, save durations of last notes in bar, for possible use
+c if clef changes at start of next bar
+c
+ if (ibar .eq. nbars) then
+ do 63 iv = 1 , nv
+ do 63 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+c prevtn(ivx) = tnote(iand(ipl(ivx,nn(ivx)),255))
+ prevtn(ivx) = tnote(ipl2(ivx,nn(ivx)))
+63 continue
+ end if
+c
+c Update time for midi. This is only used for the event track
+c
+ if (ismidi) then
+ miditime = miditime+15*lenbar
+c
+c If pickup, write the real time signature to the event track. Cannot use
+c mtrnuml since it was reset to 0, have to recompute it
+c
+ if (lenb0 .eq. lenbar)
+ * call midievent('m',mtrdenl*lenb1/64,mtrdenl)
+ end if
+ return
+ end
+ subroutine makeabar()
+c
+c On input, have pseudo-durations in nodur(ivx,ip). Not real durations for
+c xtups, since only last note of xtup gets non-zero nodur, which
+c corresponds to single note of full length of xtup.
+c In this subroutine we make an ordered list of all notes in all voices.
+c ilnc = list note counter
+c ivxo(ilnc), ipo(ilnc) = voice# and position in voice of ilnc-th note.
+c to(ilnc) = real start time of note in PMX-units (64=whole note)
+c tno(ilnc) = time to next event in the bar.
+c tnote(ilnc) = actual duration of note
+c Then run thru list, grouping consecutive notes into \notes groups ib.
+c space(ib) = real time unit for the \notes group
+c squez(ib) = factor on space to get effective space. This will be 1 if
+c there is a note exactly spanning each interval of space, and
+c <1 if not.
+c Details: let eon = elemskips per noteskip (like length). Basic formula is
+c eon = sqrt(space/2.)
+c If tgovern >= space, then
+c eon = sqrt(tgovern/2)*(space/tgovern) = space/sqrt(2*tgovern).
+c Time needed to give this eon using basic formula is
+c teq = space**2/tgovern
+c Factor on space to get teq is
+c squez(ib) = space/tgovern
+c The eon for each ib can then be computed based on time of space*squez.
+c Iff squez = 1, there is a note spanning every increment in the \notes group.
+c
+c tnminb = minimum time span in the bar for increments spanned by notes,
+c i.e., with squez=1. Use after parsing into line to decide if
+c spacing needs to be "flattened" among notes groups.
+c
+ common /comtol/ tol
+ parameter (nm=24,nkb=3999,maxblks=4000)
+ common /a1ll/ iv,ivxo(600),ipo(600),to(600),tno(600),nnl(nm),
+ * nv,ibar,mtrnuml,nodur(nm,200),lenbar,iccount,
+ * nbars,itsofar(nm),nib(nm,15),nn(nm),
+ * rest(nm,200),lenbr0,lenbr1,firstline,newmeter
+ common /linecom/ elskb,tnminb(nkb)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ logical rest,firstline,newmeter,gotclef
+ integer cnn(nm),istart(80),istop(80)
+ real*4 xit(nm),space(80),tstart(80),squez(80),tnote(600)
+ elskb = 0.
+ tnminb(ibarcnt) = 1000.
+ do 1 iv = 1 , nv
+ do 1 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (ibar .gt. 1) then
+ nn(ivx) = nib(ivx,ibar)-nib(ivx,ibar-1)
+ else
+ nn(ivx) = nib(ivx,ibar)
+ end if
+1 continue
+c
+c initialize list note counter, time(iv), curr. note(iv)
+c
+ ilnc = 1
+ do 4 iv = 1 , nv
+ do 4 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ cnn(ivx) = 1
+ ivxo(ilnc) = ivx
+ ipo(ilnc) = 1
+ to(ilnc) = 0.
+ tnote(ilnc) = fnote(nodur,ivx,1,nacc)
+ xit(ivx) = tnote(ilnc)
+ if (abs(xit(ivx)-lenbar).lt.tol) xit(ivx) = 1000.
+ ilnc = ilnc+1
+4 continue
+c
+c Build the list
+c
+5 continue
+c
+c Determine which voice comes next from end of notes done so far.
+c tmin is the earliest ending time of notes done so far
+c
+ tmin = 1000.
+ do 6 iv = 1 , nv
+ do 6 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ tminn = min(tmin,xit(ivx))
+ if(tminn .lt. tmin) then
+ tmin = tminn
+ ivnext = ivx
+ end if
+6 continue
+ if (tmin .gt. 999.) go to 7
+ ivxo(ilnc) = ivnext
+ cnn(ivnext) = cnn(ivnext)+1
+ ipo(ilnc) = cnn(ivnext)
+ to(ilnc) = tmin
+c
+c Check if this voice is done
+c
+ tnote(ilnc) = fnote(nodur,ivnext,cnn(ivnext),nacc)
+ if (cnn(ivnext) .eq. nn(ivnext)) then
+ xit(ivnext) = 1000.
+ else
+ xit(ivnext) = xit(ivnext)+tnote(ilnc)
+ end if
+ ilnc = ilnc+1
+ go to 5
+7 continue
+ ntot = ilnc-1
+ if (ntot .gt. 600) then
+ call printl(' ')
+ call printl('Cannot have more than 600 notes per bar, stopping')
+ call stop1()
+ end if
+ do 8 in = 1 , ntot-1
+ tno(in) = to(in+1)-to(in)
+8 continue
+ tno(ntot) = fnote(nodur,ivxo(ntot),ipo(ntot),nacc)
+ tnote(ntot) = tno(ntot)
+c
+c Debug writes
+c
+c write(*,'()')
+c write(*,'(16i5)')(ivxo(in),in=1,ntot)
+c write(*,'(16i5)')(ipo(in),in=1,ntot)
+c write(*,'(16f5.1)')(to(in),in=1,ntot)
+c write(*,'(16f5.1)')(tno(in),in=1,ntot)
+c write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot)
+c write(*,'(16f5.1)')(tnote(in),in=1,ntot)
+c
+c Done w/ list. Initialize loop for building note blocks:
+c
+ ib = 1
+ istart(1) = 1
+ space(1) = 0.
+ in = 1
+c
+c Start the loop
+c
+9 continue
+ if (in .eq. ntot) then
+ if (space(ib) .lt. tol) then
+ space(ib) = tno(in)
+c
+c Last gap in bar is spanned by a note, so cannot need a squeeze.
+c
+ squez(ib) = 1.
+ end if
+ istop(ib) = ntot
+c
+c From here flow out of this if block and into block-setup
+c
+ else if (space(ib) .lt. tol) then
+c
+c space hasn't been set yet, so tentatively set:
+c
+ space(ib) = tno(in)
+ if (space(ib) .lt. tol) then
+ in=in+1
+ else
+c
+c Tentative space tno(in) is non-zero. Set squez, which will be kept (since
+c it is a unique property of the particular increment starting here) :
+c
+ squez(ib) = getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ end if
+ go to 9
+ else if (tno(in+1) .lt. tol) then
+c
+c This is not the last note in the space, so
+c
+ in = in+1
+ go to 9
+ else if (abs(tno(in+1)-space(ib)) .lt. tol) then
+c
+c Next increment has same space. Does it have same squez?
+c
+ xsquez = getsquez(in+1,ntot,space(ib),tnote,to)
+c
+c If it does have the same squez, loop, otherwise flow out
+c
+ if (abs(xsquez-squez(ib)) .lt. tol) then
+c
+c Keep spacing the same, update tentative stop point
+c
+ in = in+1
+ istop(ib) = in
+ go to 9
+ end if
+ end if
+c
+c At this point istart, istop, space, and squez are good, so close out block
+c
+ tstart(ib) = to(istart(ib))
+c
+c Compute elemskips assuming no flattening to increase min space. The formula
+c is only correct if f1eon(t) = sqrt(t/2); more generally (after possible
+c flattening in pmxb), elsperns = squez*feon(space/squez)
+c
+ elsperns = f1eon(space(ib)*squez(ib))
+ if (istop(ib) .eq. ntot) then
+ nnsk = nint((lenbar-tstart(ib))/space(ib))
+ else
+ nnsk = nint((to(istop(ib)+1)-tstart(ib))/space(ib))
+ end if
+ elskb = elskb+elsperns*nnsk
+ if (nptr(ibarcnt+1) .gt. nptr(ibarcnt)) then
+ call catspace(space(ib),squez(ib),nnsk)
+ else
+c
+c This is the first entry for this bar
+c
+ nnpd(nptr(ibarcnt)) = nnsk
+ durb(nptr(ibarcnt)) = space(ib)
+ sqzb(nptr(ibarcnt)) = squez(ib)
+ nptr(ibarcnt+1) = nptr(ibarcnt+1)+1
+ end if
+c
+c Update minimum space spanned by a note
+c
+ if (abs(squez(ib)-1) .lt. tol)
+ * tnminb(ibarcnt) = min(tnminb(ibarcnt),space(ib))
+ if (istop(ib) .eq. ntot) go to 15
+c
+c End of spatial accounting for now
+c
+ ib = ib+1
+ istart(ib) = istop(ib-1)+1
+ in = istart(ib)
+c
+c Set tentative block space for new block
+c
+ space(ib) = tno(in)
+ if (space(ib).gt.tol)
+ * squez(ib)= getsquez(in,ntot,space(ib),tnote,to)
+ istop(ib) = in
+ go to 9
+15 continue
+c nb = ib
+c
+c Debug writes
+c
+c write(*,'(16i5)')(istart(ib),ib=1,nb)
+c write(*,'(16i5)')(istop(ib),ib=1,nb)
+c write(*,'(16f5.1)')(space(ib),ib=1,nb)
+c write(*,'(16f5.1)')(squez(ib),ib=1,nb)
+c
+ return
+ end
+ subroutine midievent(typeq,in1,in2)
+c
+c We now store "conductor" events in mmidi(numchan,.), and count bytes
+c with imidi(numchan)
+c
+ parameter (nm=24,mv=24576)
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comevent/ miditime,lasttime
+ character*1 typeq
+ idur = isetvarlen(miditime-lasttime,nbytes)
+ imidi(numchan) = imidi(numchan)+nbytes+1
+ do 1 i = 1 , nbytes
+ mmidi(numchan,imidi(numchan)-i) = mod(idur,256)
+ idur = ishft(idur,-8)
+1 continue
+ mmidi(numchan,imidi(numchan)) = 255
+ if (typeq .eq. 't') then
+c
+c Tempo event. in1 = quarters per minute (integer)
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+1
+ mmidi(numchan,imidi(numchan)+2) = 3
+ misperq = nint(60000000./in1)
+ do 2 i = 1 , 3
+ mmidi(numchan,imidi(numchan)+6-i) = mod(misperq,256)
+ misperq = ishft(misperq,-8)
+2 continue
+ imidi(numchan) = imidi(numchan)+5
+ else if (typeq .eq. 'm') then
+c
+c Meter event. in1=numerator, in2=denom (power of 2)
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+8
+ mmidi(numchan,imidi(numchan)+2) = 4
+ mmidi(numchan,imidi(numchan)+3) = in1
+ if (in2 .gt. 0) then
+ mmidi(numchan,imidi(numchan)+4) = log2(in2)
+ else
+ mmidi(numchan,imidi(numchan)+4) = 0
+ end if
+ mmidi(numchan,imidi(numchan)+5) = 24
+ mmidi(numchan,imidi(numchan)+6) = 8
+ imidi(numchan) = imidi(numchan)+6
+ else if (typeq .eq. 'k') then
+c
+c Keychange event. in1 = isig
+c
+ mmidi(numchan,imidi(numchan)+1) = 5*16+9
+ mmidi(numchan,imidi(numchan)+2) = 2
+ mmidi(numchan,imidi(numchan)+3) = mod(256+in1,256)
+ mmidi(numchan,imidi(numchan)+4) = 0
+ imidi(numchan) = imidi(numchan)+4
+ else
+ print*,'Program flameout in midievent'
+ call stop1()
+ end if
+ lasttime = miditime
+ return
+ end
+ subroutine moveln(iuin,iuout,done)
+ logical done
+ character*129 outq
+ done = .false.
+ read(iuin,'(a)',end=1) outq
+ lenout = llen(outq,129)
+ write(iuout,'(a)') outq(1:lenout)
+ return
+1 done = .true.
+ return
+ end
+ subroutine mrec1(lineq,iccount,ndxm)
+c
+c This is called when (a) macro recording is just starting and
+c (b) at the start of a new line, if recording is on
+c
+ parameter (maxblks=4000)
+ character*128 lineq,lnholdq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ if (.not.mrecord) then
+c
+c Starting the macro
+c
+ ip1mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount
+ il1mac(macnum) = ilbuf-1
+ ic1mac(macnum) = iccount
+ mrecord = .true.
+ end if
+ if (iccount .lt. 128) then
+ ndxm = index(lineq(iccount+1:128),'M')
+ if (ndxm .gt. 0) ndxm = ntindex(lineq(iccount+1:128),'M',
+ * 128-iccount)
+ if (ndxm .gt. 0) then
+c
+c This line ends the macro.
+c
+ ip2mac(macnum) = ipbuf-lbuf(ilbuf-1)+iccount+ndxm
+ il2mac(macnum) = ilbuf-1
+ mrecord = .false.
+ end if
+ end if
+ return
+ end
+ function ncmid(iv,ip)
+ parameter (nm=24)
+ common /all/ mult(nm,200),jv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ if (ncc(iv) .eq. 1) then
+ ncmid = ncmidcc(iv,1)
+ else
+ xtime = to(ipl2(ivx,ip))
+ do 1 icc = ncc(iv) , 1 , -1
+ if (xtime .gt. tcc(iv,icc)-tol) then
+ ncmid = ncmidcc(iv,icc)
+ return
+ end if
+1 continue
+ print*,'Problem in ncmid()'
+ stop
+ end if
+ end
+ function ncmidf(clefq)
+c
+c Return middle line of a clef
+c
+ character*1 clefq
+c if (clefq.eq.'t' .or. clefq.eq.'0') then
+c ncmidf = 35
+c else if (clefq.eq.'s' .or. clefq.eq.'1') then
+c ncmidf = 33
+c else if (clefq.eq.'m' .or. clefq.eq.'2') then
+c ncmidf = 31
+c else if (clefq.eq.'a' .or. clefq.eq.'3') then
+c ncmidf = 29
+c else if (clefq.eq.'n' .or. clefq.eq.'4') then
+c ncmidf = 27
+c else if (clefq.eq.'r' .or. clefq.eq.'5') then
+c ncmidf = 25
+c else if (clefq.eq.'f' .or. clefq.eq.'7') then
+c ncmidf = 37
+c else
+c ncmidf = 23
+c end if
+ ncmidf = 21+index(' b6r5n4a3m2s1t0f7',clefq)/2*2
+ return
+ end
+ subroutine newvoice(jv,clefq,change)
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ character*1 ulfbq,clefq
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ logical change,autofbon
+ nvmx(jv) = 1
+ ivmx(jv,1) = jv
+ itsofar(jv) = 0
+ nnl(jv) = 0
+ nfb(jv) = 0
+ if (firstgulp .or. change) then
+ ncmidcc(jv,1) = ncmidf(clefq)
+ else
+ ncmidcc(jv,1) = ncmidcc(jv,ncc(jv))
+ end if
+ tcc(jv,1) = 0.
+ ncc(jv) = 1
+ nudoff(jv) = 0
+ ndotmv(jv) = 0
+ do 5 j = 1 , 200
+ irest(jv,j) = 0
+ islur(jv,j) = 0
+ ipl(jv,j) = 0
+ nacc(jv,j) = 0
+ iornq(jv,j) = 0
+ mult(jv,j) = 0
+ if (jv.le.2) isfig(jv,j) = .false.
+5 continue
+ return
+ end
+ subroutine notefq(noteq,lnote,nolev,ncmid)
+c
+c Returns name of note level with octave transpositions, updates noctup.
+c
+ common /comoct/ noctup
+ character*8 noteq
+ character*1 upcaseq,noteqt,chax
+ nupfroma = mod(nolev+1,7)
+ iname = 97+nupfroma
+ ioctup = (nolev+1)/7-4
+ noteqt = chax(iname)
+ if (ncmid .eq. 23) noteqt = upcaseq(noteqt)
+ if (ioctup .eq. noctup) then
+ noteq = noteqt
+ lnote = 1
+c
+c Must ALWAYS check if lnote=1 for use with functions requiring a blank
+c
+ else if (ioctup .gt. noctup) then
+c
+c Raise octave. Encase in {}
+c
+ write(noteq,'(8a1)')'{',(chax(39),i=noctup,ioctup-1),
+ * noteqt,'}'
+ lnote = 3+ioctup-noctup
+ noctup = ioctup
+ else
+c
+c Lower octave
+c
+ write(noteq,'(8a1)')'{',(chax(96),i=ioctup,noctup-1),
+ * noteqt,'}'
+ lnote = 3+noctup-ioctup
+ noctup = ioctup
+ end if
+ return
+ end
+ subroutine notex(notexq,lnote)
+c
+c Returns non-beamed full note name
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,ispoi,btest,even
+ character*1 udq,udqq,chax
+ character*4 dotq
+ character*2 numq
+ character*79 notexq
+ character*8 noteq
+ character*40 restq
+ common /compoi/ ispoi
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figq
+ ip = ipo(jn)
+ nole = nolev(ivx,ip)
+c
+c Check for special situations with 2nds (see precrd)
+c
+ if (btest(nacc(ivx,ip),30)) then
+ nole = nole - 1
+ else if (btest(nacc(ivx,ip),31)) then
+ nole = nole + 1
+ end if
+ nodu = nodur(ivx,ip)
+ if (.not.btest(irest(ivx,ip),0)) then
+ udq = udqq(nole,ncmid(iv,ip),
+ * islur(ivx,ip),nvmx(iv),ivx,nv)
+ end if
+c
+c Check figure level
+c
+c if (figbass .and. isfig(ivx,ip)
+c * .and. .not.btest(irest(ivx,ip),0)) then
+ if (figbass .and. .not.btest(irest(ivx,ip),0) .and.
+ * ((ivx.eq.1.and.isfig(1,ip))
+ * .or.(ivx.eq.ivxfig2.and.isfig(2,ip)))) then
+ if (udq .eq. 'u' .or. nodu.ge.64) then
+c
+c Upper or no stem, fnole (in noleunits) set by notehead
+c
+ fnole = nole
+ else
+c
+c Lower stem, fnole set by bottom of stem
+c
+ fnole = nole-stemlen
+ end if
+ zmin = fnole-ncmid(ivx,ip)+4
+ if (ivx .eq. 1) then
+ ifigdr(1,iline) = max(ifigdr(1,iline),nint(4-zmin))
+ else
+ ifigdr(2,iline) = max(ifigdr(2,iline),nint(4-zmin))
+ end if
+ end if
+ if (.not.btest(irest(ivx,ip),0)) then
+ call notefq(noteq,lnoten,nole,ncmid(iv,ip))
+ if (lnoten .eq. 1) call addblank(noteq,lnoten)
+ if (nodu .eq. 1) then
+ notexq =sq//'cccc'//udq//noteq(1:lnoten)
+ lnote = lnoten+6
+ else if (nodu .eq. 2) then
+ notexq =sq//'ccc'//udq//noteq(1:lnoten)
+ lnote = lnoten+5
+ else if (nodu .eq. 4) then
+ notexq =sq//'cc'//udq//noteq(1:lnoten)
+ lnote = lnoten+4
+ else if (nodu .eq. 8) then
+ notexq =sq//'c'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 16) then
+ notexq =sq//'q'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 32) then
+ notexq =sq//'h'//udq//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 64) then
+ notexq =sq//'wh'//noteq(1:lnoten)
+ lnote = lnoten+3
+ else if (nodu .eq. 128) then
+c notexq =sq//'zbreve'//noteq(1:lnoten)//sq//'sk'
+c lnote = lnoten+10
+ notexq =sq//'breve'//noteq(1:lnoten)
+ lnote = lnoten+6
+ else
+ dotq = 'p'
+ ldot = 1
+ if (btest(iornq(ivx,ip),13)) then
+c
+c Dotted note with ')' ornament
+c
+ dotq='m'
+ else if (btest(islur(ivx,ip),3)) then
+c
+c Double dot
+c
+ dotq = 'pp'
+ ldot = 2
+ end if
+ if (nodu .ge. 192) then
+ notexq =sq//'breve'//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+6+ldot
+ else if (nodu .ge. 96) then
+ notexq =sq//'wh'//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 48) then
+ notexq =sq//'h'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 24) then
+ notexq =sq//'q'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 12) then
+ notexq =sq//'c'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+3+ldot
+ else if (nodu .ge. 6) then
+ notexq =sq//'cc'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+4+ldot
+ ispoi = .true.
+ else
+ notexq =sq//'ccc'//udq//dotq(1:ldot)//noteq(1:lnoten)
+ lnote = lnoten+5+ldot
+ ispoi = .true.
+ end if
+ if (dotq(1:1) .eq. 'm') then
+c
+c Need another call to the note, in case the first one has octave shifts
+c
+ if (lnoten .eq. 2) then
+ notexq = notexq(1:lnote)//'{'//noteq(2:2)//'}'
+ lnote = lnote+3
+ else
+ notexq = notexq(1:lnote)//noteq(lnoten-1:lnoten-1)
+ lnote = lnote+1
+ end if
+ end if
+ end if
+ else if (btest(islur(ivx,ip),29)) then
+c
+c Blank rest
+c
+ notexq = sq//'sk'
+ lnote = 3
+ else
+c
+c Non-blank rest
+c
+ lnote = 0
+ nole = mod(nole+20,100)-20
+c
+c Kluge to get pause symbol for rp:
+c
+ if (btest(islur(ivx,ip),19)) nodu = 64
+ if (nodu .le. 28) then
+c
+c Normal rest < or = double-dotted quarter
+c
+ lrest = 3
+ if (nodu .gt. 14) then
+ restq =sq//'qp'
+ else if (nodu .gt. 7) then
+ restq =sq//'ds'
+ else if (nodu .gt. 3) then
+ restq =sq//'qs'
+ else if (nodu .gt. 1) then
+ restq =sq//'hs'
+ else
+ restq =sq//'qqs'
+ lrest = 4
+ end if
+c if (2**log2(nodu) .ne. nodu) then
+cc
+cc One or two dots on rest
+cc
+c restq = restq(1:3)//'p'
+c lrest = 4
+c if (2*nodu .gt. 3*2**log2(nodu)) then
+cc
+cc Double dotted rest
+cc
+c restq = restq(1:4)//'p'
+c lrest = 5
+c end if
+c end if
+ notexq = restq
+ lnote = lrest
+c
+c At this point notexq=restq,lnote=lrest are name of rest. Now raise if necc.
+c
+ if (nole .ne. 0) then
+ if (abs(nole) .lt. 10) then
+ noteq = chax(48+abs(nole))
+ lnoten = 1
+ else
+ write(noteq(1:2),'(i2)')abs(nole)
+ lnoten = 2
+ end if
+ if (nole .gt. 0) then
+ notexq = sq//'raise'//noteq(1:lnoten)//sq//'internote'
+ else
+ notexq = sq//'lower'//noteq(1:lnoten)//sq//'internote'
+ end if
+ lnote = 16+lnoten
+c if (2**log2(nodu) .ne. nodu) then
+cc
+cc Have dot in raised rest. must put in hbox!
+cc
+c notexq = notexq(1:lnote)//sq//'hbox{'
+c lnote = lnote+6
+c end if
+ notexq = notexq(1:lnote)//restq(1:lrest)
+ lnote = lnote+lrest
+c if (2**log2(nodu) .ne. nodu) then
+c notexq = notexq(1:lnote)//'}'
+c lnote = lnote+1
+c end if
+ end if
+ if (2**log2(nodu) .ne. nodu) then
+c
+c Deal with dots (on rests shorter than half rest)
+c
+ restq = sq//'pt'
+ lrest = 3
+ if (2*nodu .gt. 3*2**log2(nodu)) then
+ restq = sq//'ppt'
+ lrest = 4
+ end if
+ nole = nole+4
+ raisedot = 0
+c
+c Tweak dot positions for special cases
+c
+ even = (mod(100+nole,2).eq.0)
+c if (.not.even.and.nodu.gt.8.and.
+c * (nole.lt.0.or.nole.gt.8)) then
+ if (.not.even .and. (nole.lt.0.or.nole.gt.8)) then
+ raisedot = 1
+ end if
+ if (nole.ge.10 .or. nole.le.-1) then
+ write(numq,'(i2)')nole
+ restq = restq(1:lrest)//'{'//numq//'}'
+ lrest = lrest+4
+ else
+ restq = restq(1:lrest)//chax(nole+48)
+ lrest = lrest+1
+ end if
+ if (raisedot.gt.0) then
+ restq = sq//'raise'//sq//'internote'//
+ * sq//'hbox{'//restq(1:lrest)//'}'
+ lrest = lrest+23
+ end if
+
+
+
+ notexq = restq(1:lrest)//notexq(1:lnote)
+ lnote = lnote+lrest
+ end if
+ else
+c
+c Half rest or longer
+c
+ if (nole .eq. 0) then
+c
+c Half or longer rest is not raised or lowered
+c
+ if (nodu .le. 56) then
+ notexq =sq//'hpause'
+ lnote = 7
+ else if (nodu .le. 112) then
+ if (.not.btest(islur(ivx,ip),19) .or.
+ * btest(irest(ivx,ip),25)) then
+ notexq = sq//'pause'
+ else
+ notexq = sq//'pausc'
+ end if
+ lnote = 6
+ else
+ notexq =sq//'PAuse'
+ lnote = 6
+ end if
+ if (2**log2(nodu) .ne. nodu) then
+c
+c Dotted rest, hpause or longer
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ if (2*nodu .gt. 3*2**log2(nodu)) then
+c
+c Double dotted long rest
+c
+ notexq = notexq(1:lnote)//'p'
+ lnote = lnote+1
+ end if
+ end if
+ else
+c
+c Raised or lowered half or whole rest
+c
+ if (nodu .eq. 32) then
+ notexq = sq//'lifthpause'
+ lnote = 11
+ else if (nodu .eq. 48) then
+ notexq = sq//'lifthpausep'
+ lnote = 12
+ else if (nodu .eq. 56) then
+ notexq = sq//'lifthpausepp'
+ lnote = 13
+ else if (nodu .eq. 64) then
+ notexq = sq//'liftpause'
+ lnote = 10
+ else if (nodu .eq. 96) then
+ notexq = sq//'liftpausep'
+ lnote = 11
+ else if (nodu .eq. 112) then
+ notexq = sq//'liftpausepp'
+ lnote = 12
+ else if (nodu .eq. 128) then
+ notexq = sq//'liftPAuse'
+ lnote = 10
+ else
+c
+c Assume dotted double whole rest
+c
+ notexq = sq//'liftPAusep'
+ lnote = 11
+ end if
+c
+c Set up height spec
+c
+ nole = sign(abs(nole)/2,nole)
+ if (nole.le.9 .and. nole.ge.0) then
+ noteq = chax(48+nole)
+ lnoten = 1
+ else
+ noteq = '{'
+ if (nole .ge. -9) then
+ write(noteq(2:3),'(i2)')nole
+ lnoten = 3
+ else
+ write(noteq(2:4),'(i3)')nole
+ lnoten = 4
+ end if
+ noteq = noteq(1:lnoten)//'}'
+ lnoten = lnoten+1
+ end if
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ end if
+ end if
+ end if
+ return
+ end
+ function ntindex(line,s2q,lenline)
+c
+c Returns index(line,s2q) if NOT in TeX string, 0 otherwise
+c
+ character*(*) s2q,line
+ character*1 chax
+ logical intex
+ ndxs2 = index(line,s2q)
+ ndxbs = index(line,chax(92))
+ if (ndxbs.eq.0 .or. ndxs2.lt.ndxbs) then
+ ntindex = ndxs2
+ else
+c
+c There are both bs and s2q, and bs is to the left of sq2. So check bs's to
+c right of first: End is '\ ', start is ' \'
+c
+ len = lenstr(line,lenline)
+ intex = .true.
+ do 1 ic = ndxbs+1 , len
+ if (ic .eq. ndxs2) then
+ if (intex) then
+ ntindex = 0
+ ndxs2 = index(line(ic+1:len),s2q)+ic
+ else
+ ntindex = ndxs2
+ return
+ end if
+ else if (intex .and. line(ic+1:ic+2).eq.chax(92)//' ') then
+ intex = .false.
+ else if (.not.intex .and. line(ic+1:ic+2).eq.' '//chax(92))
+ * then
+ intex = .true.
+ end if
+1 continue
+ end if
+ return
+ end
+ subroutine ntrbbb(n,char1q,ulqq,iv,notexq,lnote)
+c
+c This appends to notexq e.g. '\ibbbu1'
+c
+ common /combbm/ isbbm
+ logical isbbm
+ character*79 notexq
+ character*1 char1q,ulqq,chax
+ character*4 tempq
+ if (n .ge. 5) isbbm = .true.
+ if (lnote .gt. 0) then
+ notexq = notexq(1:lnote)//chax(92)//char1q
+ else
+ notexq = chax(92)//char1q
+ end if
+ lnote = lnote+2
+ do 3 im = 1 , n
+ notexq = notexq(1:lnote)//'b'
+ lnote = lnote+1
+3 continue
+c
+c add the number, 0 if 12
+c
+c 5/25/08 Allow >12
+c
+c call istring(mod(iv,12),tempq,len)
+ if (iv .lt. 24) then
+ call istring(iv,tempq,len)
+ else if (iv .eq. 24) then
+ tempq(1:1) = '0'
+ len = 1
+ else
+ call printl('Sorry, too man open beams')
+ call stop1()
+ end if
+ notexq = notexq(1:lnote)//ulqq//tempq(1:len)
+ lnote = lnote+1+len
+ return
+ end
+ function numclef(clefq)
+c
+c Returns the number to be used as argument of \setclef (for MusiXTeX only)
+ character*1 clefq
+c if (ichar(clefq) .lt. 55) then
+ if (ichar(clefq) .le. 55) then
+ numclef = ichar(clefq)-48
+ if (numclef .eq. 7) numclef = 9
+ else
+ numclef = index('tsmanrbxxf',clefq)-1
+ end if
+ return
+ end
+ subroutine outbar(i,jlast)
+ character*1 chax
+ nfmt = log10(i+.5)+2
+ if (jlast+5+nfmt .lt. 80) then
+ write(*,'(a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ write(15,'(a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ jlast = jlast+5+nfmt
+ else
+ write(*,'(/,a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ write(15,'(/,a5,i'//chax(48+nfmt)//',$)')' Bar',i
+ jlast = 5+nfmt
+ end if
+ return
+ end
+ subroutine pmxa(basenameq,lbase,isfirst,nsyout,nbarss,optimize)
+cccccccccccccccccccccccccccccccccccccccccccccccc
+cc cc
+cc Subroutine, combine with pmxb.for
+cc
+cccccccccccccccccccccccccccccccccccccccccccccccc
+cc
+cc Need to consider X spaces in xtuplets when getting poenom, and
+cc maybe fbar?
+cc mx06a
+cc ID numbers for voices when number of voices is reduced.
+cc
+cc mx03a
+cc account for new fracindent for new movements.
+cc
+cc Known changes since pmxa. Version 1.1b (see pmxb for longer list)
+cc
+cc Check ID codes for slurs.
+cc Version 1.24 still does not have details for spacing/positioning
+cc arpeggios if there are accidentals or shifted notes or crowded scores.
+cc Fix problem in 1.22 with arpeggios across multi-line staves
+cc Fix problem in 1.22 with flat key signatures
+cc Read setup data as strings
+cc Warning for octave designation plus +/-
+cc Don't pause for volta warning,
+cc Macros
+cc Correct fsyst to account for transposition and key changes.
+cc Check for nbars > nsyst
+cc
+ccccccccccccccccccccccccccccccccccc
+ parameter (nm=24,nkb=3999,nks=125,maxblks=4000)
+ logical loop,usefig,isfirst,optimize
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ integer nn(nm),nodur(nm,200),ivxo(600),ipo(600),
+ * nnl(nm),itsofar(nm),nib(nm,15),lastbar(0:nks),nbarss(nks)
+ common /c1omnotes/ nnodur,wminnh(nkb),nnpd(maxblks),durb(maxblks),
+ * iddot,nptr(nkb),ibarcnt,mbrest,ibarmbr,
+ * ibaroff,udsp(nkb),wheadpt,gotclef,sqzb(maxblks)
+ common /compage/ widthpt,ptheight,hoffpt,voffpt,
+ * nsyst,nflb,ibarflb(0:40),
+ * isysflb(0:40),npages,nfpb,ipagfpb(0:18),isysfpb(0:18),
+ * usefig,fintstf,gintstf,fracsys(30),nmovbrk,isysmb(0:30),
+ * nistaff(0:40)
+ common /comkeys/ nkeys,ibrkch(18),newkey(18),iskchb,idsig,isig1,
+ * mbrestsav,kchmid(18),ornrpt,shifton,barend,noinst,stickyS
+ real*4 elsk(nkb),celsk(0:nkb),elss(nks),to(600),tno(600)
+ character*128 lnholdq
+ character*44 basenameq
+ logical rest(nm,200),firstline,fbon,isvolt,iskchb,kchmid,ornrpt,
+ * stickyS
+ common /c1omget/ lastchar,fbon,issegno,ihead,isheadr,nline,isvolt,
+ * fracindent,nsperi(nm),linesinpmxmod,line1pmxmod,lenbuf0
+ logical lastchar,newmeter,newmb(nkb),issegno,bottreb,isheadr,
+ * shifton,barend
+ common /a1ll/ iv,ivxo,ipo,to,tno,nnl,nv,ibar,mtrnuml,
+ * nodur,lenbar,iccount,nbars,itsofar,nib,nn,
+ * rest,lenbr0,lenbr1,firstline,newmeter
+ common /linecom/ elskb,tnminb(nkb)
+ common /cblock/
+ * etatop,etabot,etait,etatc,etacs1,hgtin,hgtti,hgtco,
+ * xilbn,xilbtc,xilhdr,xilfig,a,b,inhnoh
+ common /cominbot/ inbothd
+ common /c1ommvl/ nvmx(nm),ivmx(nm,2),ivx,fbar,nacc(nm,200)
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /commus/ musize,whead20
+ common /comeon/ eonk,ewmxk
+ logical mrecord,mplay,endmac,gotclef,cstuplet
+ logical novshrinktop,upslur,fontslur,WrotePsslurDefaults
+ common /comnvst/ novshrinktop,cstuplte
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ logical fulltrans
+ data wtimesig,wclef,wkeysig
+ * / 0.72 , 0.8 , 0.28 /
+ whead20 = 0.3
+ if (.not.optimize) then
+ print*
+ print*,'Starting first PMX pass'
+ write(15,'(a)') ' Starting first PMX pass'
+ end if
+ if (isfirst) then
+ open(19,file='pmxaerr.dat')
+ write(19,'(i6)') 0
+ close(19)
+ end if
+ if (.not.optimize) jprntb = 81
+ macuse = 0
+ ornrpt = .false.
+ stickyS = .false.
+ mrecord = .false.
+ mplay = .false.
+ lastchar = .false.
+ novshrinktop = .false.
+ cstuplet = .false.
+ fontslur = .true.
+ isligfont = .false.
+ fulltrans = .false.
+ do 42 ibarcnt = 1 , nkb
+ udsp(ibarcnt) = 0.
+ wminnh(ibarcnt) = -1.
+42 continue
+c
+c Initialize input buffer
+c
+ lenbuf0 = ipbuf
+ ipbuf = 0
+ ilbuf = 1
+ call g1etset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,
+ * xmtrnum0,newkey(1),npages,nsyst,musize,bottreb)
+c
+c Set up list of instrument numbers (iv)
+c
+ ivnow = 0
+ do 13 instnow = 1 , noinst
+ do 14 iscount = 1 , nsperi(instnow)
+ ivnow = ivnow+1
+ instno(ivnow) = instnow
+14 continue
+13 continue
+c
+c Save initial meter for midi
+c
+ if (.not.isfirst .and. npages.eq.0) then
+ print*,'Sorry, must have npages>0 for optimization.'
+ call stop1()
+ end if
+ nsyout = nsyst
+c
+c isig1 will be changed in getnote if there is a transposition
+c
+ isig1 = newkey(1)
+ if (npages .gt. nsyst) then
+ call printl('npages > nsyst in input. Please fix the input.')
+ call stop1()
+ end if
+c
+c fbar = afterruleskip/elemskip
+c apt = width of small accidental + space in points (= 6 at 20pt) =wheadpt
+c
+ fbar = 1.
+ wheadpt = whead20*musize
+ ifig = 0
+ usefig = .true.
+ lenbeat = i1fnodur(mtrdenl,'x')
+ lenmult = 1
+ if (mtrdenl .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbr1 = lenmult*mtrnuml*lenbeat
+ lenbr0 = nint(lenmult*xmtrnum0*lenbeat)
+ mtrnuml = 0
+ if (lenbr0 .ne. 0) then
+ ibaroff = 1
+ lenbar = lenbr0
+ else
+ ibaroff = 0
+ lenbar = lenbr1
+ end if
+ ibarcnt = 0
+ nptr(1) = 1
+ iccount = 128
+ nmovbrk = 0
+ nflb = 0
+ nfpb = 0
+ ipagfpb(0) = 1
+ isysfpb(0) = 1
+ ibarflb(0) = 1
+ isysflb(0) = 1
+ nistaff(0) = nv-1
+c
+c Check for pmx.mod
+c
+ linesinpmxmod = 0
+c line1pmxmod = ilbuf
+ call getpmxmod(.true.,' ')
+ if (.not.isfirst .and. linesinpmxmod .gt. 0) then
+ print*,'Sorry, cannot optimize if there is a pmx.mod file'
+ call stop1()
+ end if
+c
+c Initialize for loop over lines
+c
+ nkeys = 1
+ ibrkch(1) = 1
+ mbrestsav = 0
+ shifton = .false.
+ firstline = .true.
+ newmeter = .false.
+ ihead = 0
+ isheadr = .false.
+ gotclef = .false.
+ idsig = 0
+ iddot = 0
+ fintstf = -1.
+ gintstf = 1.0
+ listcresc = 0
+ listdecresc = 0
+30 loop = .true.
+ iskchb = .false.
+ issegno = .false.
+ nbars = 0
+ ibarmbr = 0
+3 do 4 iv = 1 , nv
+ nvmx(iv) = 1
+ ivmx(iv,1) = iv
+ itsofar(iv) = 0
+ nnl(iv) = 0
+ do 5 j = 1 , 200
+ rest(iv,j) = .false.
+ nacc(iv,j) = 0.
+5 continue
+4 continue
+ iv = 1
+ ivx = 1
+ fbon = .false.
+ barend = .false.
+ isvolt = .false.
+2 if (loop) then
+c
+c Within this short loop, nv voices are filled up for the duration of a block.
+c On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv)
+c nodur(..),rest(..). nnl will later be
+c increased and things slid around as accidental skips are added.
+c
+ call g1etnote(loop,ifig,optimize,fulltrans)
+ if (lastchar) go to 20
+ go to 2
+ end if
+ if (mbrestsav .gt. 0) then
+ call printl(' ')
+ call printl(
+ * 'You must enter the same multibar rest in ALL parts')
+ call stop1()
+ end if
+ do 10 ibar = 1 , nbars
+ ibarcnt = ibarcnt+1
+c
+c The following is just a signal to start a new bar when cataloging spaces
+c for catspace(...)
+c
+ nptr(ibarcnt+1) = nptr(ibarcnt)
+ newmb(ibarcnt) = .false.
+ if (newmeter.and.ibar.eq.1) newmb(ibarcnt) = .true.
+c
+c Above is only for spacing calcs later on. Remember new meter can only occur
+c at START of a new input line (ibar = 1)
+c
+ if (ibar .ne. ibarmbr) then
+ if (.not.optimize) call outbar(ibarcnt-ibaroff,jprntb)
+ else
+ if (.not.optimize) then
+ write(15,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt-ibaroff,'-',ibarcnt-ibaroff+mbrest-1
+ write(*,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt-ibaroff,'-',ibarcnt-ibaroff+mbrest-1
+ jprntb = 0
+ end if
+ ibaroff = ibaroff-mbrest+1
+ end if
+ if (firstline .and. lenbr0.ne.0) then
+ if (ibar .eq. 1) then
+ lenbar = lenbr0
+ else
+ lenbar = lenbr1
+ end if
+ end if
+ if (ibar .gt. 1) then
+c
+c For bars after first, slide all stuff down to beginning of arrays
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ioff = nib(ivx,ibar-1)
+ do 12 ip = 1 , nib(ivx,ibar)-ioff
+ nodur(ivx,ip) = nodur(ivx,ip+ioff)
+ rest(ivx,ip) = rest(ivx,ip+ioff)
+ nacc(ivx,ip) = nacc(ivx,ip+ioff)
+12 continue
+11 continue
+ end if
+ do 67 iv = 1 , nv
+ do 67 kv = 1 , nvmx(iv)
+ ioff= 0
+ if(ibar.gt.1)ioff = nib(ivmx(iv,kv),ibar-1)
+67 continue
+ call makeabar()
+ elsk(ibarcnt) = elskb+fbar
+10 continue
+ newmeter = .false.
+ firstline = .false.
+ go to 30
+20 continue
+c
+c Vertical analysis.
+c
+ if (npages .eq. 0) then
+ if (nsyst .eq. 0) then
+ print*,'When npages=0, must set nsyst=bars/syst, not 0'
+ call stop1()
+ end if
+ nsyst = (ibarcnt-1)/nsyst+1
+ if (nv .eq. 1) then
+ nsystpp = 12
+ else if (nv .eq. 2) then
+ nsystpp = 7
+ else if (nv .eq. 3) then
+ nsystpp = 5
+ else if (nv .eq. 4) then
+ nsystpp = 3
+ else if (nv .le. 7) then
+ nsystpp = 2
+ else
+ nsystpp = 1
+ end if
+ npages = (nsyst-1)/nsystpp+1
+ end if
+c
+c Check nsyst vs ibarcnt
+c
+ if (nsyst .gt. ibarcnt) then
+ print*
+ print*,'nsyst,ibarcnt:',nsyst,ibarcnt
+ print*,'There are more systems than bars.'
+ write(15,'(a,2i5)')' nsyst,ibarcnt:',nsyst,ibarcnt
+ write(15,'(a)')' There are more systems than bars.'
+ call stop1()
+ end if
+c
+c Set up dummy forced line & page breaks after last real one
+c
+ nflb = nflb+1
+ ibarflb(nflb) = ibarcnt+1
+ isysflb(nflb) = nsyst+1
+ nfpb = nfpb+1
+ ipagfpb(nfpb) = npages+1
+ isysfpb(nfpb) = nsyst+1
+ heightil = ptheight*4./musize
+ open(12,status='SCRATCH')
+ write(12,'(a)')basenameq(1:lbase)
+ write(12,*)lbase
+c
+c Pass to pmxb the initial signature, including effect of transposition.
+c
+ write(12,'(6f10.5/f10.5,3i5)')fbar,wheadpt,etait,
+ * etatc,etacs1,etatop,etabot,inbothd,inhnoh,isig1
+ write(12,*)npages,widthpt,ptheight,hoffpt,voffpt,nsyst
+ iflbnow = -1
+ isysb4 = 0
+ do 8 ifpb = 1 , nfpb
+c
+c Each time thru this loop is like a single score with several pages
+c
+ npages = ipagfpb(ifpb)-ipagfpb(ifpb-1)
+ nsyst = isysfpb(ifpb)-isysfpb(ifpb-1)
+ nomnsystp = (nsyst-1)/npages+1
+ nshort = nomnsystp*npages-nsyst
+ do 7 ipage = 1 , npages
+ nsystp = nomnsystp
+ if (ipage .le. nshort) nsystp = nsystp-1
+c
+c Last system number on this page:
+ isysendpg = isysb4+nsystp
+ nintpg = 0
+ do 15 isy = isysb4+1, isysendpg
+ if (isysflb(iflbnow+1) .eq. isy) iflbnow = iflbnow+1
+ nintpg = nintpg+nistaff(iflbnow)
+15 continue
+ xilfrac = 0.
+ xiltxt = 0.
+ if (ipage.eq.1 .and. ihead.gt.0) then
+c
+c Needn't zero out ihead after printing titles if we only allow titles at top?
+c
+ if (iand(ihead,1) .eq. 1) then
+ xiltxt = xiltxt+hgtin*4/musize
+ xilfrac = xilfrac+etait
+ end if
+ if (iand(ihead,2) .eq. 2) then
+ xiltxt = xiltxt+hgtti*4/musize
+ xilfrac = xilfrac+etatc
+ end if
+ if (iand(ihead,4) .eq. 4) then
+ xiltxt = xiltxt+hgtco*4/musize
+ xilfrac = xilfrac+etacs1
+ else
+c
+c Use double the title-composer space if there is no composer
+c
+ xilfrac = xilfrac+etatc
+ end if
+ end if
+ D = xilfrac+nsystp-1+etatop+etabot
+c C = nsystp*(nv-1)
+ C = nintpg
+c xN = heightil - xiltxt - 4*nsystp*nv - (nsystp-1)*xilbn
+ xN = heightil - xiltxt - 4*(nintpg+nsystp) - (nsystp-1)*xilbn
+ if (bottreb) xN = xN-(nsystp-1)*xilbtc
+ if (ihead.eq.0 .and. isheadr) xN = xN - xilhdr
+ if (ifig .eq. 1) then
+ xN = xN - nsystp*xilfig
+ end if
+ glueil = (xN-b*C)/(D+a*C)
+ omegaG = (b*D+a*xN)/(D+a*C)
+c
+c G = \interlines between systems
+c omega*G = \interlines between staves of the same system
+c \interstaff = 4+omega*G
+c C = total number of interstaff spaces in the page
+c D = omega-indep factors for scalable height = nsy-1 (intersystem glue)
+c + etatop + etabot + etatxt +
+c N = scaleable height (\interlignes) = height - htext - staff heights - xil
+c xil = extra interliges = (nsy-1)*xilbn + 10 if header and no titles
+c + (nsy-1)*xiltcb for treble clef bottoms
+c + nsy*xilfig for figures
+c G = N/(D + omega * C) = glueil, (1)
+c But (empirically) omega*G = a*G + b (2)
+c with a=1.071 and b=2.714
+c Solving (1) and (2) gives
+c G = (N-b*C)/(D+a*C) , omega*G = (b*D+a*N)/(D+a*C)
+c Pass to pmxb omega*G (=\interstaff-4)
+c (etatop,bot,it,tc,cx)*G as inputs to \titles
+c
+c glueil = (heightil-xiltxt-nsystp*(xil+4*nv))
+c * /(nsystp*(1+gfact*(nv-1))-1+etatop+etabot+xilfrac)
+c xnsttop = glueil*etatop
+c xintstaff = 4+gfact*glueil
+c
+c Only the first page will get local adjustment now if needed, others in pmxb
+c
+ if (ifpb.eq.1 .and. ipage.eq.1 .and. fintstf.gt.0.) then
+ facins = fintstf
+ fintstf = -1.
+ else
+c
+c gintstf = 1.0 by default, but may be changed with AI<x>
+c
+ facins = gintstf
+ end if
+ write(12,*)nsystp,max(0.,etatop*glueil),facins*(omegaG+4)
+ ihead = 0
+ isheadr = .false.
+ isysb4 = isysendpg
+7 continue
+8 continue
+c
+c Done with vertical, now do horizontals
+c
+ celsk(1) = elsk(1)
+ do 21 ibar = 2 , ibarcnt
+ celsk(ibar) = celsk(ibar-1)+elsk(ibar)
+21 continue
+ lastbar(0) = 0
+ ibar1 = 1
+ wmins = -1.
+ iflb = 1
+ imovbrk = 0
+ ikey = 1
+c
+c Return nsyst to its *total* value
+c
+ nsyst = isysfpb(nfpb)-1
+ do 22 isyst = 1 , nsyst
+ if (isyst .eq. isysflb(iflb)) iflb = iflb+1
+ if (nmovbrk.gt.0 .and. imovbrk.lt.nmovbrk) then
+ if (isyst .eq. isysmb(imovbrk+1)) imovbrk = imovbrk+1
+ end if
+ ibarb4 = lastbar(isyst-1)
+ if (isyst .eq. 1) then
+ if (isfirst) elsstarg = celsk(ibarflb(1)-1)/
+ * (isysflb(1)-1-fracindent)*(1-fracindent)
+ celskb4 = 0.
+ else
+ celskb4 = celsk(ibarb4)
+c
+c Must dimension isysmb(0:*) just so I can execute this test!
+c
+ if (isfirst) then
+ if (nmovbrk.gt.0 .and. isyst.eq.isysmb(imovbrk)) then
+c
+c First syst after forced line break. There may be indentation.
+c
+ elsstarg = (celsk(ibarflb(iflb)-1)-celskb4)
+ * /(isysflb(iflb)-isyst-fracsys(imovbrk))
+ * *(1-fracsys(imovbrk))
+ else
+c
+c There is no indentation to deal with
+c
+ elsstarg = (celsk(ibarflb(iflb)-1)-celskb4)
+ * /(isysflb(iflb)-isyst)
+ end if
+ end if
+ end if
+ if (isfirst) then
+ diff1 = abs(elsstarg-elsk(ibarb4+1))
+ do 23 ibar = ibarb4+2 , ibarcnt
+ diff = elsstarg-(celsk(ibar)-celskb4)
+ if (abs(diff) .ge. diff1) go to 24
+ diff1 = abs(diff)
+23 continue
+24 ibar = ibar-1
+ lastbar(isyst) = ibar
+ nbarss(isyst) = ibar-ibarb4
+ else
+c
+c nbarss is given as an input, must compute lastbar and ibar
+c
+ lastbar(isyst) = nbarss(isyst)+ibarb4
+ ibar = lastbar(isyst)
+ end if
+c
+c elss is # of elemskip in the syst. from notes & ars's, not ruleskips, ask's.
+c
+ elss(isyst) = celsk(ibar)-celskb4
+ write(12,'(i5)')lastbar(isyst-1)+1
+c
+c Transposed sigs are isig1, newkey(2,3,...).
+c
+ if (ikey .eq. 1) then
+ key1 = isig1
+ else
+ key1 = newkey(ikey)
+ end if
+ fsyst = wclef+abs(key1)*wkeysig+2./musize
+ xelsk = 0.
+1 if (ikey.lt.nkeys) then
+ if (ibrkch(ikey+1).le.lastbar(isyst)) then
+c
+c Add space for all key changes
+c
+ ikey = ikey+1
+ key2 = newkey(ikey)
+ naccs = max(abs(key2-key1),max(abs(key1),abs(key2)))
+ fsyst = fsyst+naccs*wkeysig
+c
+c Account for afterruleskips (fbar)
+c
+ xelsk = xelsk+fbar/2
+ if (ibrkch(ikey).lt.lastbar(isyst) .and. .not.kchmid(ikey))
+ * xelsk = xelsk-1.
+ key1 = key2
+ go to 1
+ end if
+ end if
+c
+c Add extra fixed space for double bar
+c
+ if (isyst .eq. nsyst) then
+ fsyst = fsyst+4.5/musize
+ end if
+c
+c Add extra fixed space for initial time signature
+c
+ if (isyst .eq. 1) then
+ fsyst = fsyst+wtimesig
+ end if
+c
+c Add extra fixed space for time signature changes & user-defined spaces
+c
+ do 26 ibars = ibarb4+1 , lastbar(isyst)
+ if (newmb(ibars)) fsyst = fsyst+wtimesig
+ fsyst = fsyst+udsp(ibars)/musize
+26 continue
+ if (isyst .eq. 1) then
+ wdpt = widthpt*(1-fracindent)
+ else
+ if (nmovbrk.gt.0 .and. imovbrk.gt.0 .and.
+ * isyst.eq.isysmb(imovbrk)) then
+ wdpt = widthpt*(1-fracsys(imovbrk))
+ else
+ wdpt = widthpt
+ end if
+ end if
+ wsyspt = wdpt-fsyst*musize-0.4*nbarss(isyst)
+c
+c Checks for min spacing
+c Get min allowable space
+c
+ dtmin = 1000.
+ do 45 ibar = ibar1 , ibar1+nbarss(isyst)-1
+ dtmin = min(dtmin,tnminb(ibar))
+ if (wminnh(ibar).ge.0.) wmins = wminnh(ibar)
+45 continue
+ if (wmins .lt. 0) wmins = 0.3
+ wminpt = (1+wmins)*0.3*musize
+c
+c Find max duration & # of notes for this system
+c
+ dtmax = 0.
+ nns = 0
+ do 43 iptr = nptr(ibar1) , nptr(ibar1+nbarss(isyst))-1
+ dtmax = max(dtmax,durb(iptr))
+ nns = nns + nnpd(iptr)
+43 continue
+ elmin0 = wsyspt*f1eon(dtmin)/(elss(isyst)+xelsk)
+ if (elmin0 .ge. wminpt) then
+c
+c Subtract out fbar stuff to keep old way of passing sumelsk to pmxb;
+c there is no need to "flatten"
+c
+ sumelsk = elss(isyst)-fbar*nbarss(isyst)
+ eonk = 0.
+ ewmxk = 1.
+ else
+ elmin1 = wsyspt/((fbar*nbarss(isyst)+xelsk)/f1eon(dtmax)+nns)
+ if (elmin1 .le. wminpt) then
+c print*
+c print*,'In system #',isyst,' cannot meet min. space rqmt'
+c write(15,'(/a,i5,a)')
+c * 'In system #',isyst,' cannot meet min. space rqmt'
+ eonk = 0.9
+ else
+c
+c Find eonk by Newton method
+c
+c eonk = min(.9,(wminpt-elmin0)/(elmin1-elmin0))
+ call findeonk(nptr(ibar1),nptr(ibar1+nbarss(isyst))-1,
+ * wsyspt/wminpt,fbar*nbarss(isyst)+xelsk,dtmin,dtmax,
+ * (wminpt-elmin0)/(elmin1-elmin0))
+ eonk = min(.9,eonk)
+ end if
+ ewmxk = f1eon(dtmax)**eonk
+c
+c Recompute poenom!
+c
+ sumelsk = 0
+ do 44 iptr = nptr(ibar1) , nptr(ibar1+nbarss(isyst))-1
+ sumelsk = sumelsk
+ * + nnpd(iptr)*sqzb(iptr)*feon(durb(iptr)/sqzb(iptr))
+44 continue
+ end if
+ poenom = wsyspt/(sumelsk+fbar*nbarss(isyst)+xelsk)
+c
+c Set fracindent for output: orig if isyst=1, fracsys(imovbrk) if movbrk, else 0
+c
+ if (isyst .gt. 0) then
+ if (nmovbrk.gt.0 .and. imovbrk.gt.0 .and.
+ * isyst.eq.isysmb(imovbrk)) then
+ fracindent = fracsys(imovbrk)
+ else
+ fracindent = 0.
+ end if
+ end if
+ write(12,'(1pe12.5/i5,5e12.3)') poenom,nbarss(isyst),
+ * sumelsk,fsyst,fracindent,eonk,ewmxk
+ ibar1 = ibar1+nbarss(isyst)
+22 continue
+ rewind(12)
+ open(13,status='SCRATCH')
+ write(13,'(i5)')ifig
+ rewind(13)
+ ilbuf = 1
+ ipbuf = 0
+ if (.not.optimize) then
+ write(*,'(/,a)')' Done with first pass'
+ print*
+ write(15,'(/,a)')' Done with first pass'
+ write(15,'()')
+ end if
+c
+c Following syntax is needed since pmxa is called with literal argument .false.
+c
+ if (isfirst) isfirst = .false.
+ return
+ end
+ subroutine pmxb(inlast,poevec,ncalls,optimize)
+cccccccccccccccccccccccccc
+cc
+cc To Do
+cc
+cc Resolve disagreement in final poe for 1st system, compared with *.mx2
+cc Shift slurs on right- or left-shifted main notes (2/7/99)
+cc Various end-of-input-block repeat problems (ick142.pmx).
+cc Force multiplicity for un-beamed xtups.
+cc Clef change at end of piece
+cc Global "A" option to maximize "X" at a given time tick.
+cc Tighten test for end-of-bar hardspace, flgndv(ivx) due to right-shifted
+cc note. See trubl18.pmx
+cc Tab character as space.
+cc Clef interference with second line of music.
+cc Add space for interferences between *different* lines of music?
+cc Shift arpeggios, both automatic and manual.
+cc Different musicsize for different instruments.
+cc Spacing checks for accid's on left-shifted chord notes
+cc Spacing checks for double dots
+cc Allow forced line breaks w/o setting nsyst.
+cc Cresc-Decresc. (Enhance MusiXTeX first?)
+cc Dynamic Marks.
+cc Bug with Voltas at line end (MusiXTeX problem?).
+cc Subtle bug w/ slur hgt over line brk, see trubl15.pmx
+cc Stem-end slurs.
+cc Allow units in indentation.
+cc Make inline TeX more context sensitive.
+cc Werner's 4/2/98 problem with "o?"
+cc Scor2prt converts e.g. "r0+0" into "r0 0", which seems to be wrong.
+cc converts e.g. "r2db" into "r2d", which might be wrong.
+cc Werner's generalsignature problem with Key change and new transposition.
+cc (wibug8.pmx)
+cc Unequal xtuplets
+cc Print both sets of bar #'s in tex file.
+cc Make barlines invisible \def\xbar{\empty} , fix fbar.
+cc Auto-tie slurs 'At'
+cc Forced line break anywhere (e.g. at a mid-bar repeat).
+cc Clef change at very start of file.
+cc Tighten test for M as macro terminator.
+cc Fix title so not separate limit on author length + composer length.
+cc Arpeggios in xtups.
+cc
+cc mx10b
+cc Option for instrument name at top center. Last item in P command:
+cc P[n]c text is instrument name (use in parts)
+cc P[n]cstuff text is stuff (up to 1st blank)
+cc P[n]c"stuff with spaces" text is stuff with spaces
+cc
+cc Post version 1.43
+cc Reduced space rqmt for multiplicity-0 graces (no flag)
+cc Removed last sepsym in centered whole-bar rests, fixes volta height bug.
+cc
+cc Version 1.43
+cc Fix spacing for end-of-line signature change.
+cc Adjust left-shift of grace group for shifted accidentals.
+cc Put in extra space for left-shifted accidentals.
+cc Fix bug with dot-shift before accid-shift on chord note.
+cc Space-check for right-shifted main notes.
+cc Enable forcing stem direction of single notes in non-beamed xtups.
+cc Disallow clef change after last note before end of input block (pmxa)
+cc Print meter change before page break
+cc increase length of strings for \titles macro
+cc version 1.42
+cc Loosen up input syntax for "X" commands. Subroutine getx()
+cc "B" and "P" in "X" commands
+cc mx09b
+cc Allow multiple rests at start of xtup
+cc Add 64th rest
+cc Fix xtup numbers over rests. (subroutine levrn)
+cc Initialize notcrd=.false. every gulp. Avoids undefined state with e.g.
+cc c za / ( c a ...
+cc Allow double dots to be shifted.
+cc Fix spacing with double dotted notes; permit splitting small note.
+cc Fix \dotted printout so it works with old compiler
+cc mx08b
+cc Automatic spaces if needed for shifted accidentals.
+cc Some Dynamics
+cc Increase accid. horiz. shift resolution to .o5 (use one more bit in nacc)
+cc version 1.41
+cc Allow ":" as last char of path name
+cc Dotted slurs "sb"
+cc Continue bar numbering at movement break "L[integer]Mc"
+cc mx07b
+cc Whole-bar rests with double lines of music. Fixed all options ?
+cc Shift accidentals, either [+|-][integer][+|-][number] or [<|>][number].
+cc Option to suppress centering full-bar rests. "o"
+cc mx06b
+cc Shift accid on left-shifted chord note.
+cc Rest as first note of xtup.
+cc Wrong slopes with small widths. Scale slfac1 by widthpt_default/widthpt
+cc Allow Rb for single bar at movemnet break or end of piece. (islur(25))
+cc Change # of inst at a movement break. noinst is total # and must be used
+cc in 1st movement. ninow is current. nspern(1,...,ninow) is current
+cc staves/inst, nsperi(1,...,noinst) is original. rename tells whether to
+cc reprint names in parindent at a movement break. Default is .false.
+cc unless ninow changes, then .true. But can force either with r+/- as
+cc option in 'M'
+cc mx04b
+cc Double-dotted notes, separate+beamed, main+chord, still no extra space.
+cc ??? Don't shift slur ends on whole notes.
+cc (pmxa) Write line number of error in pmxaerr.dat
+cc mx02b
+cc Admit "RD" before "/" (search for "rptfq2:" )
+cc In doslur, for multi-line staves, single notes, check forced stem dir'n
+cc before setting stemup (used to set horiz offset).
+ccccccccccccccccccccccccccccccc
+ parameter (nm=24,nks=125,mv=24576,maxblks=4000)
+c
+c FYI /all/ differs in appearance in function ncmid
+c
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ccccccccccccc
+cc islur cc
+ccccccccccccc
+c bit meaning
+c 0 slur activity on this note
+c 1 t-slur here.
+c 2 force 0-slope beam starting on this note
+c 3 Double dotted note!
+c 4 grace before main note
+c 5 left repeat
+c 6 right repeat
+c 7 start Volta
+c 8 doublebar
+c 9 end Volta
+c 10 on=>endvoltabox
+c 11 on=>clefchange
+c 12-14 0=>treble, ... , 6=>bass
+c 15 on=> start new block for clef change (maybe diff. voice)
+c 16 literal TeX string
+c 17 1=up, 0=down stem for single note (override) See bit 30!
+c 18 if on, prohibit beaming
+c 19 if on, full bar rest as pause
+c 20 Beam multiplicity down-up
+c 21 Forced multiplicity for any beam including xtups
+c 22-24 Value of forced multiplicity
+c 25 single barline at movement break
+c 26 doubleBAR (see bits 5,6,8)
+c 27-28 Forced beam fine-tune height (1 to 3)
+c 29 Blank rest
+c 30 If on, get stem dir'n from bit 17
+c 31 If on, suppress printing number with xtuplet starting here
+ccccccccccccc
+cc ipl cc
+ccccccccccccc
+cc 0-7 Location in list [0,200]
+c 0-7 Unused
+c 8 left offset main note one headwidth
+c 9 right offset main note one headwidth
+c 10 chord present?
+c 11-16 Forced beam height adjustment (-30 to +30)
+c 17-22 Forced beam slope adjustment (-30 to +30)
+c 23-26 Slur index for Way-after grace. Inserted when slur is started.
+cc 27 Unused?
+c 27 5th bit for slur index for Way-after grace (100712)
+c 28 key change: only in voice 1
+c 29 Grace after main note. (Type A)
+c 30 In forced beam. Signals need to check beam heights
+c 31 Grace way after main note. (stretch to next note, type W)
+ccccccccccccc
+cc iornq cc
+ccccccccccccc
+c 0 Ornament "(". Was user-defined horizontal slur shift on this note
+c until 9/24/97; changed that to irest(21)
+c 1-13 stmgx+Tupf._)
+c 14 Down fermata, was F
+c 15 Trill w/o "tr", was U
+c 16-18 Editorial s,f,n
+c 19-20 >^
+c 21 "?" for editorial accid, w/ or w/o s,f,n
+c 22 Set if ihornb governs ornament height. Same in icrdorn.
+c 23 Set in getorn if ANY note at time of this main note has ornament.
+c This is ONLY used in beamstrt to signal whether to do more
+c tests for whether ihornb is needed. (ihornb is only needed
+c if nonchord+upbm, chord+upbm+top_note, chord+dnbm+bot_note)
+c (7/1/00)Also set if any dynamic, as ihornb will be needed when dnbm.
+c 24 Slur on after or way-after grace. Use as signal to START slur.
+c 25 Tweak orn ht. Same in icrdorn for chord note
+c 26 Insert user-defined space before this note (was 22)
+c 27 Arpeggio stop or start (if 2 at same time), or all-in-this-chord
+c 28 caesura or breath
+c 29 blank barline (must be iv=1) (would have used islur but no room)
+c 30 "Look-left" option for keyboard rest
+c 31 Set if any note (main or chord) has cautionary accid, for space checks
+ccccccccccccc
+cc irest cc
+ccccccccccccc
+c 0 rest=1, no rest = 0
+c 1 There will be a vertical shift for number of this xtup
+c 2-6 Height shift, 1 => -15, 31 => +15 Indicate by +/- [n] after 'n'
+c 7 There is a horizontal shift for xtup number
+c 9-13 Horiz shift, 1=>-1.5, ... , 31=>+1.5
+c 14 Flip up/down-ness of xtup number
+c 15 Single-voice, single note shift X(...)[p]S
+c 16 Start single-voice, multinote shift with this note X(...)[p]:
+c 17 End single-voice, multinote shift after this note. Enter symbol
+c after note. X:
+c 18 User-defined hardspace after last note of bar, *after* this note.
+c Value still stored in udoff(ivx,nudoff(ivx)), not with other
+c hardspaces in udsp, to avoid confusion with time checks.
+c 19 Move the dot. Data stored in ndotmv,updot,rtdot
+c 20 Set if right-shifted main or chord note here. Use for space checks.
+c 21 User-defined hardspace in xtup
+c 22 User-defined slur shift horizontal slur shift.
+c 23 Set on last note before staff-jumping a beam.
+c 24 Set on first note after staff-jumping a beam
+c 25 Suppress rest centering. "ro"
+c 26 Dynamic on this note
+c 27 Set if left-shifted main or chord note here. Use for space checks.
+c 28 Set if xtup starts on this note.
+c 29 Set on lowest-voice note at same time as 1st note after jump-beam.
+c 30 Set on note after end of jump-beam segment, to force new note group
+c 31 Flag for cautionary accidental
+ccccccccccccc
+cc nacc cc
+ccccccccccccc
+c 0-1 0=no accid, 1=fl, 2=sh, 3=na
+c 2 double
+c 3 big
+c 4-9 vertshift-32
+c 10-16 20*(horiz. shift + 5.35) (Recentered ver 2.32)
+c 17 Midi-only accidental
+c 18 2:1 xtup
+c 19 Together with nacc(18), increase multiplicity by 1 and dot 1st note.
+c 20 Set on last note of each seg except last seg of single-slope beam.
+c 21 Set on 1st note of each seg except 1st seg of single-slope beam.
+c 22-26 If .ne.0, printed xtup number for xtup starting on this note.
+c 27 Set for dotted xtup note. Mult dur by 1.5, mult next by .5 & increase
+c multiplicity by 1
+c 28 Set on main note of chord if accidentals are ordered.
+c 29 Tag for chordal accidental shift...means add to autoshifts.
+c 30-31 Set 30|31 if main note in a chord is part of a 2nd and needs to be shifted.
+c If upstem|downstem, main is upper|lower member of 2nd
+c Action is to interchange pitches only when notes are placed.
+ccccccccccccc
+cc mult cc
+ccccccccccccc
+c 0-3 Multiplicity+8 (mult= # of flags)
+c 4 Set if slope adjustment for xtup bracket
+c 5-9 16+slope adjustment
+c 27 Stemlength override
+c 28-30 New stem length.
+ccccccccccccc
+cc isdat1 cc
+ccccccccccccc
+c 13-17 iv
+c 3-10 ip
+c 11 start/stop switch
+c 12 kv-1
+c 19-25 ichar(code$)
+c 26 force direction?
+c 27 forced dir'n = up if on, set in sslur; also
+c final direction, set in doslur when beam is started, used on term.
+c 28-31 ndxslur, set in doslur when beam is started, used on term.
+ccccccccccccc
+cc isdat2 cc
+ccccccccccccc
+c 0 Chord switch. Not set on main note.
+c 1-2 left/right notehead shift. Set only for chord note.
+c 3 tie positioning
+c 4 dotted slur
+c 6-11 voff1 1-63 => -31...+31
+c 12-18 hoff1 1-127 => -6.3...+6.3
+c 19-25 nolev
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+ccccccccccccc
+cc isdat3 cc
+ccccccccccccc
+c 0 set if midslur (at least one argument)
+c 1 set if curve (2 more args)
+c 2-7 32+first arg (height correction) (1st arg may be negative)
+c 8-10 second arg (initial slope)
+c 11-13 third arg (closing slope)
+c 14-21 tie level for use in LineBreakTies
+c 22-29 ncm for use in LineBreakTies
+ccccccccccccc
+cc isdat4 cc Set these all at turn-on using s option
+ccccccccccccc
+c 0-5 Linebreak seg 1 voff 1-63 => -31...+31
+c 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3
+c 16-21 Linebreak seg 2 voff 1-63 => -31...+31
+c 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3
+ccccccccccccc
+c icrdat c
+ccccccccccccc
+c 0-7 ip within voice
+c 8-11 ivx (together with 28th bit)
+c 12-18 note level
+c 19 accidental?
+c 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp)
+c 23 shift left
+c 24 shift right
+c 25 arpeggio start or stop
+c 26 flag for moved dot (here, not icrdot, since this is always reset!)
+c 27 Midi-only accidental
+c 28 (6/27/10) 5th bit for ivx, to allow up to 24 voices
+c 29 Tag for accidental shift...means add to autoshifts.
+c 31 Flag for cautionary accidental on chord note
+ccccccccccccc
+c icrdot c:
+ccccccccccccc
+c 0-6 10*abs(vertical dot shift in \internote) + 64
+c 7-13 10*abs(horizontal dot shift in \internote) + 64
+c 14-19 vert accidental shift-32
+c 20-26 20*(horiz accidental shift+3.2)
+c 27-29 top-down level rank of chord note w/accid. Set in crdaccs.
+c
+c Bits in icrdorn are same as in iornq, even tho most orns won't go in crds.
+c
+cccccccccccccccccccccccccccccccc
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*10 figq
+ character*1 ulq,sepsymq,sq,chax
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig,rptnd1,rptprev
+ logical loop,lastchar,slint,svolta,evolta,onvolt,
+ * cwrest(nm),islast,inlast,optimize
+ integer istop(80),numbms(nm),istart(80)
+ real*4 xnsttop(40),xintstaff(40),hesk(23),hpts(23),poevec(nks),
+ * tstart(80),squez(80)
+ character*1 clefq(nm),ulfbq,rptfq1,rptfq2,charq
+ character*79 notexq,inameq
+ character*40 pathnameq
+ character*44 basenameq
+ character*24 fmtq
+ character*20 voltxtq
+ character*120 instrq,titleq,compoq
+ common /comlast/ islast,usevshrink
+ logical usevshrink,stickyS,OptLineBreakTies,autofbon
+ common /combjmp/ ivbj1,ivbj2,isbjmp,isbj2
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ common /comfig/ itfig(2,74),figq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ common /comnsp/ space(80),nb,prevtn(nm),
+ * flgndv(nm),flgndb,eskgnd,ptsgnd,ivmxsav(nm,2),nvmxsav(nm)
+ common /comstart/ facmtr
+ common /comfb/ nfb(nm),t1fb(nm,40),t2fb(nm,40),ulfbq(nm,40),ifb,
+ * tautofb,autofbon,t1autofb
+ common /comget/ lastchar,rptnd1,sluron(nm,2),fbon,ornrpt,stickyS,
+ * movbrk,movnmp,movdnp,movgap,parmov,fintstf,gintstf,
+ * rptprev,equalize,rptfq1,rptfq2
+ common /combeam/ ibmtyp
+ common /comnotes/ nnodur,lastlev,ndlev(nm,2),shifton,setis,notcrd,
+ * npreslur,was2(nm),ninow,nobar1,nsystp(40),ipage,
+ * OptLineBreakTies,HeaderSpecial
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comas2/ nasksys,wasksys(800),elasksys(800)
+ common /comas3/ ask(2500),iask,topmods
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ common /comsln/ is1n1,is2n1,irzbnd,isnx
+ common /comgrace/ ivg(37),ipg(37),nolevg(74),itoff(2,74),aftshft,
+ * nng(37),ngstrt(37),ibarmbr,mbrest,xb4mbr,
+ * noffseg,ngrace,nvolt,ivlit(83),iplit(83),nlit,
+ * graspace(37),
+ * lenlit(83),multg(37),upg(37),slurg(37),slashg(37),
+ * naccg(74),voltxtq(6),litq(83)
+ logical upg,slurg,slashg,fbon,ornrpt,shifton,isbjmp,notcrd,was2,
+ * isbj2,fontslur,WrotePsslurDefaults,HeaderSpecial
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ character*128 litq,lnholdq
+ logical upslur,bar1syst,vshrink,lrpt,rrpt,lrptpend,
+ * ispoi,bcspec,topmods,headlog,clchb,clchv(nm),flgndb,
+ * btest,sluron,setis,nobar1
+ common /comcc/ ncc(nm),tcc(nm,10),ncmidcc(nm,10),
+ * ndotmv(nm),updot(nm,20),rtdot(nm,20)
+ common /compoi/ ispoi
+ common /combc/ bcspec
+ common /comeon/ eonk,ewmxk
+ common /spfacs/ grafac,acgfac,accfac,xspfac,xb4fac,clefac,emgfac,
+ * flagfac,dotfac,bacfac,agc1fac,gslfac,arpfac,
+ * rptfac,lrrptfac,dbarfac,ddbarfac,dotsfac,upstmfac,
+ * rtshfac
+ common /comhsp/ hpttot(176)
+ common /combmh/ bmhgt,clefend
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ common /strtmid/ ihnum3,flipend(nm),ixrest(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ common /commus/ musize,whead20
+ common /comtol/ tol
+ common /comdyn/ ndyn,idyndat(99),levdsav(nm),ivowg(12),hoh1(12),
+ * hoh2(12),hoh2h1(2),ntxtdyn,ivxiptxt(41),txtdynq(41),
+ * idynda2(99),levhssav(nm),listcresc,listdecresc
+ character*128 txtdynq
+ logical mrecord,mplay,endmac,flipend,istype0,lowdot,rename,ispstie
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc,equalize,
+ * ismbr,putmbr
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /comcb/ nbc,ibcdata(36)
+ common /comclefq/ clefq
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ common /comligfont/ isligfont
+ logical isligfont
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /combibarcnt/ ibarcnt
+ if (.not.optimize) then
+ print*
+ print*,'Starting second PMX pass'
+ print*
+ write(15,'(a)')'Starting second PMX pass'
+ end if
+ ncalls = ncalls+1
+ islast = inlast
+ macuse = 0
+ isyscnt = 0
+ stemmax = 8.2
+ stemmin = 3.9
+ stemlen = 6.0
+ sq = chax(92)
+ bcspec = .true.
+ topmods = .false.
+ ismbr = .false.
+ read(12,'(a)')basenameq
+ read(12,*)lbase
+ read(12,*)fbar,wheadpt,etait,etatc,etacs1,etatop,
+ * etabot,inbothd,inhnoh,isig
+ ilbuf = 1
+ ipbuf = 0
+ call getset(nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,xmtrnum0,
+ * npages,nsyst,musicsize,fracindent,istype0,inameq,
+ * clefq,sepsymq,pathnameq,lpath,isig0)
+ if (ismidi) then
+c
+c Initial key signature and meter for pickup bar
+c
+ call midievent('k',isig,0)
+ if (xmtrnum0 .gt. tol) then
+c
+c We have a pickup. Some tricky stuff to get a meter:
+c
+ xntrial = xmtrnum0
+ do 5 ip2 = 0 , 5
+ if (abs(mod(xntrial,1.)) .lt. tol) go to 6
+ xntrial = xntrial*2
+5 continue
+ print*,'Problem finding meter for pickup bar'
+ xntrial = 1.
+ ip2 = 0
+6 continue
+ call midievent('m',nint(xntrial),2**ip2*mtrdenl)
+ else
+c
+c No pickup, enter the starting meter
+c
+ call midievent('m',mtrnuml,mtrdenl)
+ end if
+ end if
+c
+c Set musicsize from value passed in common, due to possible reset by S[n]m16
+c
+ musicsize = musize
+ read(12,*)npages,widthpt,height,hoffpt,voffpt,nsyst,
+ * (nsystp(ipa),xnsttop(ipa),xintstaff(ipa),ipa=1,npages),iauto
+c
+c If default width ever changes, must adjust this stmt.
+c
+ slfac1 = 0.00569*524./widthpt
+ figbass = .false.
+ read(13,*)ifig
+ if (ifig .eq. 1) then
+ figbass = .true.
+ open(14,status='SCRATCH')
+ write(14,'(a)')sq//'def'//sq//'fixdrop{'//sq//'advance'//sq//
+ * 'sysno by 1'//sq//'ifcase'//sq//'sysno%'
+ end if
+ lastchar = .false.
+ ibcoff = 0
+ if (xmtrnum0 .gt. 0.) ibcoff = -1
+ open(11,status='SCRATCH')
+c
+c vshrink for the first page is calculated in topfile,
+c and if true set interstaff=10. vshrink affects Titles.
+c Must also save vshrink for page ending.
+c
+ call topfile(basenameq,lbase,nv,clefq,noinst,musicsize,
+ * xintstaff(1),mtrnmp,mtrdnp,vshrink,fbar,fontslur)
+c
+c ninow is working value of # of instruments. noinst is max #, and # at start.
+c
+ ninow = noinst
+c
+c Save original printed meter in case movement breaks
+c
+ movnmp = mtrnmp
+ movdnp = mtrdnp
+c
+ if (islast .and. figbass .and. musicsize.eq.16)
+ * write(11,'(a)')sq//'def'//sq//'figfont{'//sq//'eightrm}%'
+c
+ if (islast .and. isligfont) then
+ if (musicsize .eq. 16) then
+ write(11,'(a)')sq//'font'//sq//'ligfont=cmrj at 8pt%'
+ else
+ write(11,'(a)')sq//'font'//sq//'ligfont=cmrj at 10pt%'
+ end if
+ end if
+ lenbeat = ifnodur(mtrdenl,'x')
+ if (mtrdenl .eq. 2) lenbeat = 16
+ lenb1 = mtrnuml*lenbeat
+ if (mtrdenl .eq. 2) lenb1 = lenb1*2
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ lenb0 = nint(xmtrnum0*lenbeat)
+ if (mtrdenl .eq. 2) lenb0 = lenb0*2
+ if (lenb0 .ne. 0) then
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno by -1'
+ lenbar = lenb0
+ else
+ lenbar = lenb1
+ end if
+c
+c Initialize full-program variables
+c
+ fixednew = 0.
+ scaldold = 0.
+ fintstf = -1.
+ gintstf = 1.
+ nasksys = 0
+ ibarcnt = 0
+ iline = 0
+ movbrk = 0
+ isystpg = 0
+ ipage = 1
+ iccount = 128
+ iask = 0
+ nhstot = 0
+ nb = 1
+ if (.not.optimize) jprntb = 81
+ idsig = 0
+c
+c Next 5 are raise-barno parameters. irzbnd is integer part of default level.
+c
+ irzbnd = 3
+ if (isig.eq.3 .and. clefq(nv).eq.'t') irzbnd = 4
+ is1n1 = 0
+ isnx = 0
+ SlurCurve = 0.
+c
+c 111109 Made global rather than per gulp
+c
+ ndyn = 0
+ ispoi = .false.
+ slint = .false.
+ lrptpend = .false.
+ rptnd1 = .false.
+ rptfq2 = 'E'
+ rptprev = .false.
+ onvolt = .false.
+ flgndb = .false.
+ fbon = .false.
+ shifton = .false.
+ ornrpt = .false.
+ setis = .false.
+ lowdot = .false.
+ rename = .false.
+ nobar1 = .false.
+ equalize = .false.
+ usevshrink = .true.
+ WrotePsslurDefaults = .false.
+ OptLineBreakTies = .false.
+ HeaderSpecial = .false.
+c
+c vshrink is initialized in topfile
+c
+ stickyS = .false.
+c
+c ixrest = 1 or 2 if xtup has started with a rest
+c
+ do 1 ivx = 1 , nm
+ ixrest(ivx) = 0
+ fullsize(ivx) = 1.
+c
+c Set legacy note level to middle c as default
+c
+ ndlev(ivx,1) = 29
+ ndlev(ivx,2) = 29
+1 continue
+ npreslur = 0
+ nhssys = 0
+ listslur = 0
+ do 31 i = 1 , 202
+ isdat1(i) = 0
+ isdat2(i) = 0
+31 continue
+ nsdat = 0
+c
+c Initialize flag for figures in any other voice than 1
+c
+ ivxfig2 = 0
+c
+c Initialize for loop over gulps
+c
+ firstgulp = .true.
+c
+c Start a gulp
+c
+30 loop = .true.
+ notcrd = .true.
+ isbjmp = .false.
+ isbj2 = .false.
+ autofbon = .false.
+ tautofb = 0.
+ nbars = 0
+ nfigs(1) = 0
+ nfigs(2) = 0
+ ngrace = 0
+ ntrill = 0
+ ncrd = 0
+ nudorn = 0
+ nlit = 0
+ nvolt = 0
+ ibarmbr = 0
+ nudsp = 0
+c ndyn = 0 ! 111109
+ ntxtdyn = 0
+ nbc = 0
+ NumArpShift = 0
+ do 3 i = 1 , 37
+ graspace(i) = 0.
+3 continue
+c
+c Now initialize up to nv. Do it in getnote as r'qd for 2nd voices per syst.
+c and also if nv increases in an 'M' directive.
+c
+ do 4 iv = 1 , nv
+ call newvoice(iv,clefq(iv),.false.)
+4 continue
+c
+c Check if endsymbol was set earlier
+c
+ if (rptnd1) then
+ rptnd1 = .false.
+ rptfq2 = rptfq1
+ else
+c
+c Only use if movbrk>0, to signal default ('RD')
+c
+ rptfq2 = 'E'
+ end if
+ iv = 1
+ ivx = 1
+2 if (loop) then
+c
+c Within this loop, nv voices are filled up for the duration of the block.
+c On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv)
+c nolev(nv,nnl(nv)),nodur(..),accq(..),irest(..).
+c nbars is for this input block.
+c Only at the beginning of an input block will there be a possible mtr change,
+c signalled by a nonzero mtrnuml. (which will be re-zeroed right after change)
+c
+ call getnote(loop)
+ if (lastchar) go to 40
+ go to 2
+ end if
+c
+c Finished an input block (gulp).
+c
+ if (ismidi) then
+c
+c Put rests into midi array for 2nd lines that were not used in this gulp.
+c
+ do 60 iv = 1 , nv
+ if (twoline(iv) .and. nvmx(iv).eq.1) then
+ if (firstgulp .and. lenb0.ne.0) then
+ call addmidi(midchan(iv,2),0,0,0,
+ * (nbars-1.)*lenbar+lenb0,.true.,.false.)
+ else
+ call addmidi(midchan(iv,2),0,0,0,1.*nbars*lenbar,.true.,
+ * .false.)
+ end if
+ end if
+60 continue
+ end if
+ nvolt = 0
+ do 28 iv = 1 , nm
+ nudoff(iv) = 0
+ ndotmv(iv) = 0
+28 continue
+c
+c Put stuff at top of p.1. Must wait until now to have read title info.
+c
+ if (ibarcnt .eq. 0) then
+ call puttitle(inhnoh,xnsttop(ipage),
+ * etatop,sq,etait,etatc,etacs1,nv,vshrink,sepsymq)
+ if (HeaderSpecial)
+c
+c Write special header for first page
+c
+ * write(11,'(a)')chax(92)//'special{header=psslurs.pro}%'
+ end if
+ do 10 ibar = 1 , nbars
+ ibarcnt = ibarcnt+1
+ bar1syst = ibarcnt .eq. iauto
+ ndig = max(0,int(log10(.001+ibarcnt+ibcoff)))
+ if (islast)
+ * write(11,'(a11,i'//chax(50+ndig)//')')
+ * '% Bar count',ibarcnt+ibcoff
+ if (ibar .ne. ibarmbr) then
+ if (.not.optimize) call outbar(ibarcnt+ibcoff,jprntb)
+ else
+ if (.not.optimize) then
+ write(*,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt+ibcoff,'-',ibarcnt+ibcoff+mbrest-1
+ write(15,'(/,a20,i4,a1,i4)')' Multibar rest, bars',
+ * ibarcnt+ibcoff,'-',ibarcnt+ibcoff+mbrest-1
+ jprntb = 0
+ end if
+ ibcoff = ibcoff+mbrest-1
+ if (ibar.eq.1 .and. firstgulp .and.
+ * .not.btest(islur(1,1),5)) xb4mbr = facmtr*musicsize
+c
+c The above may be he only case where the space-before option is used in \mbrest
+c
+ end if
+c
+c Move the read to after end-of-bar hardspace checks, so we get right poenom
+c at end of a line.
+c if (bar1syst) read(12,*) poenom
+c
+c Check for clef at start of bar. No slide yet. Also flags at end of prev.
+c bar. This block is run at the start of every bar. May fail for flag at
+c end of last bar. To account for necc. hardspaces, compute and store
+c nhssys = # of hard spaces for this system
+c hesk(nhssys) = elemskips avialable
+c hpts(nhssys) = hard points needed, including notehead
+c Here, merely insert placeholder into output. Later, when poe is computed,
+c compute additional pts and store them in hpttot(1...nhstot). Finally in
+c subroutine askfig, write true pts where placeholders are.
+c
+ ioff = 0
+ if (ibar .gt. 1) ioff = nib(1,ibar-1)
+ clchb = btest(islur(1,ioff+1),15)
+ putmbr = .false.
+ if (ismbr) then
+ if (clchb) then
+c
+c Clef change and multi-bar rest coming up. Kluge to get space at end of rest.
+c
+ write(11,'(a)')sq//'let'//sq//'mbrt'//sq//'mbrest'
+ * //sq//'def'//sq//'mbrest#1#2#3{%'
+ write(11,'(a14,f4.1,a)')sq//'mbrt{#1}{#2}{',musicsize*.55,
+ * '}'//sq//'global'//sq//'let'//sq//'mbrest'//sq//'mbrt}%'
+ end if
+ ismbr = .false.
+ putmbr = .true.
+ end if
+ if (ibar .eq. ibarmbr) ismbr = .true.
+c
+c Set flag here so at start of next bar, if there's a clef change, can add space
+c after the mbr with the above kluge
+c
+ if (.not.(clchb .or. flgndb)) go to 23
+c
+c Must check available space
+c
+ ptsndb = 0.
+c
+c Zero out block signal
+c
+ if (clchb) islur(1,ioff+1) = ibclr(islur(1,ioff+1),15)
+c
+c In this loop, we determine how much hardspace is needed (if any)
+c 9/7/97 Note that for last bar in input block, if number of lines of
+c music decreases in new block, highest numbered ones won't be checked
+c since the loop below covers the new nvmx(iv), not necessarily the old
+c one.
+c 4/18/98 Apparently nmxsav was a solution to the above problem
+c
+ do 16 iv = 1 , nv
+ do 16 kv = 1 , nvmxsav(iv)
+ ivx = ivmxsav(iv,kv)
+ ptsndv = flgndv(ivx)*wheadpt
+ ioff = 0
+ if (ibar .gt. 1) then
+ ioff = nib(ivx,ibar-1)
+ ip = ioff
+ if (ibar.gt.2) ip = ioff-nib(ivx,ibar-2)
+c prevtn(ivx) = tnote(iand(ipl(ivx,ip),255))
+ prevtn(ivx) = tnote(ipl2(ivx,ip))
+c
+c If ibar=1 (1st bar in input block), prevtn(ivx) was set at end of makeabar.
+c
+ end if
+c
+c Only allow clef changes when ivx <= nv
+c
+ if (ivx .le. nv) then
+ clchv(iv) = clchb .and. btest(islur(iv,ioff+1),11)
+ if (clchv(iv)) then
+c
+c Clef change in this voice. Turn off signal. Get space avail.
+c
+ islur(iv,ioff+1) = ibclr(islur(iv,ioff+1),11)
+ if (abs(prevtn(iv)-space(nb)).lt.tol) ptsndv =
+ * ptsndv+clefend*wheadpt
+ end if
+ end if
+ ptsndb = max(ptsndb,ptsndv+wheadpt*xspfac)
+16 continue
+c
+c ???? where is nb set??? nb probably in left over from makeabar
+c
+ esk = feon(space(nb)*squez(nb))
+ ptsdflt = esk*poenom-wheadpt
+c if ((ptsndb.gt.ptsdflt.or.ptsgnd.gt.0.) .and. movbrk.eq.0) then
+ if ((ptsndb.gt.ptsdflt.or.ptsgnd.gt.0.) .and. movbrk.eq.0
+ * .and. .not.putmbr) then
+c
+c Must ADD hardspace! So put in a placeholder, and store params for later.
+c
+ if (islast) write(11,'(a)')sq//'xardspace{ pt}%'
+ nhssys = nhssys+1
+ if (ptsndb-ptsdflt .gt. ptsgnd-poenom*eskgnd) then
+ hesk(nhssys) = esk
+ hpts(nhssys) = ptsndb+wheadpt
+ else
+ hesk(nhssys) = eskgnd
+ hpts(nhssys) = ptsgnd+wheadpt
+ end if
+ fixednew = fixednew+hpts(nhssys)
+ scaldold = scaldold+hesk(nhssys)
+ end if
+ if (clchb) then
+ do 17 iv = 1 , nv
+ if (clchv(iv)) then
+ notexq = sq//'znotes'
+ lnote = 7
+ do 24 iiv = 2 , iv
+ notexq = notexq(1:lnote)//sepsymq(iiv-1)
+ lnote = lnote+1
+24 continue
+c
+c Recompute ioff since it will vary from voice to voice
+c
+ if (ibar .eq. 1) then
+ ioff = 0
+ else
+ ioff = nib(iv,ibar-1)
+ end if
+c
+c Must call clefsym to get nclef, even if there is a movement break
+c
+ call clefsym(islur(iv,ioff+1),fmtq,lclef,nclef)
+ if (movbrk.eq.0 .and.
+ * islast)
+ * write(11,'(a)')notexq(1:lnote)//fmtq(1:lclef)//sq//'en%'
+ call wsclef(iv,ninow,clefq,nclef)
+ end if
+17 continue
+ if (islast) write(11,'(a)')sq//'pmxnewclefs'
+ end if
+23 continue
+c
+c End of loop for end-of-bar hardspaces and non-movbrk clef symbol.
+c
+ if (bar1syst) then
+ read(12,*) poenom
+ end if
+c
+c Repeat symbols. Haven't slid down yet, so use islur(1,nib(1,ibar-1)+1)
+c
+ if (ibar .eq. 1) then
+ islnow = islur(1,1)
+ iornqnow = iornq(1,1)
+ else
+ islnow = islur(1,nib(1,ibar-1)+1)
+ iornqnow = iornq(1,nib(1,ibar-1)+1)
+ end if
+c
+c Check for R-symbols set at end of prior input block
+c
+ if (movbrk.eq.0 .and. rptfq2.ne.'E') then
+ if (rptfq2 .eq. 'D') then
+ islnow = ibset(islnow,26)
+ else if (rptfq2 .eq. 'r') then
+ islnow = ibset(islnow,6)
+ else if (rptfq2 .eq. 'd') then
+ islnow = ibset(islnow,8)
+ else if (rptfq2 .eq. 'b') then
+ islnow = ibset(islnow,25)
+ else
+ print*
+ print*,'Illegal symbol with "R" at end of input block:',
+ * rptfq2
+ call stop1()
+ end if
+ rptfq2 = 'E'
+ end if
+ if (iand(islnow,352) .ne. 0) then
+c
+c Bit 5(lrpt), 6(rrpt), or 8(doublebar) has been set
+c
+ lrpt = btest(islnow,5)
+ rrpt = btest(islnow,6)
+ lrptpend = lrpt.and.bar1syst
+ if (lrpt .and. .not.lrptpend) then
+ if (rrpt) then
+ if (islast) write(11,'(a)')sq//'setleftrightrepeat'
+ fixednew = fixednew+wheadpt*lrrptfac-0.4
+ else
+ if (islast) write(11,'(a)')sq//'setleftrepeat'
+ fixednew = fixednew+wheadpt*rptfac-0.4
+ end if
+ else if (rrpt) then
+ if (islast) write(11,'(a)')sq//'setrightrepeat'
+ fixednew = fixednew+wheadpt*rptfac-0.4
+ else if (btest(islnow,8)) then
+ if (islast) write(11,'(a)')sq//'setdoublebar'
+ fixednew = fixednew+wheadpt*dbarfac-0.4
+ end if
+ else if (btest(islnow,26)) then
+c
+c doubleBAR
+c
+ if (islast) write(11,'(a)')sq//'setdoubleBAR'
+ fixednew = fixednew+wheadpt*ddbarfac-0.4
+ else if (btest(iornqnow,29)) then
+c
+c no bar line
+c
+c-- if (islast) write(11,'(a)')sq//'setzalaligne'
+c++
+ if (islast) then
+ if (movbrk .eq. 0) then
+ write(11,'(a)')sq//'setzalaligne'
+ else
+c
+c Encountered "Rz" at start of input block at start of new movement, Must
+c use newmovement macro with arg 4 rather than setzalaligne, since former
+c already redefines stoppiece.
+c
+ rptfq2 = 'z'
+ end if
+ end if
+c++
+ fixednew = fixednew-0.4
+ end if
+c
+c 1st and 2nd endings
+c
+ svolta = btest(islnow,7)
+ evolta = btest(islnow,9)
+ if (evolta) then
+ if (btest(islnow,10)) then
+ if (islast) write(11,'(a)')sq//'endvoltabox'
+ else
+ if (islast) write(11,'(a)')sq//'endvolta'
+ end if
+ onvolt = .false.
+ end if
+ if (svolta) then
+ nvolt = nvolt+1
+ lvoltxt = index(voltxtq(nvolt),' ')-1
+ if (lvoltxt .eq. 1) then
+ if (islast) write(11,'(a)')sq//'Setvolta'
+ * //voltxtq(nvolt)(1:1)//'%'
+ else
+ if (islast) write(11,'(a)')sq//'Setvolta'//'{'//
+ * voltxtq(nvolt)(1:lvoltxt)//'}%'
+ end if
+ onvolt = .true.
+ end if
+ if (ibar .gt. 1) then
+ ipnow = nib(1,ibar-1)+1
+ else
+ ipnow = 1
+ end if
+ iplnow = ipl(1,ipnow)
+ if (bar1syst) then
+c
+c If listslur>0, then there is at least one slur or tie carried over the break
+c
+ ispstie = .false.
+ if (OptLineBreakTies .and. .not.fontslur .and. listslur.ne.0
+ * .and. islast)
+ * call LineBreakTies(isdat1,isdat2,isdat3,isdat4, nsdat,
+ * ispstie,sepsymq)
+ iline = iline+1
+c
+c End an old system, Start a new system
+c
+ if (iline .ne. 1) then
+c
+c Not first line.
+c Get corrected poe = points/elemskip for *previous* system
+c
+ wdpt = widthpt*(1-fracindent)
+ poe = (wdpt-fsyst*musicsize-0.4*nbarss-fixednew)/
+ * (elsktot+fbar*nbarss-scaldold)
+ isyscnt = isyscnt+1
+ poevec(isyscnt) = poe
+c
+c Transfer data for system into global arrays to hold until very end
+c
+ do 9 ia = 1 , nasksys
+ iask = iask+1
+ ask(iask) = wasksys(ia)/poe-abs(elasksys(ia))
+c
+c Only admit negative ask if it was user-defined space, signalled by elask<=0.
+c
+ if (elasksys(ia).gt.0) ask(iask)=dim(ask(iask),0.)
+9 continue
+ do 25 ia = 1 , nhssys
+ nhstot = nhstot+1
+ hpttot(nhstot) = max(hpts(ia)-hesk(ia)*poe,0.)
+25 continue
+c
+c Reset counters for new system
+c
+ scaldold = 0.
+ fixednew = 0.
+ nasksys = 0
+ nhssys = 0
+ end if
+c
+c End of if block for first bar of non-first system. Still 1st bar, any system
+c
+ if (islast.and.figbass) write(11,'(a)')sq//'fixdrop%'
+ isystpg = isystpg+1
+c
+c Try moving the next stmt way down, to fix a bug and get \eject printed at
+c end of single-system page.
+c if (isystpg .eq. nsystp(ipage)) isystpg = 0
+ read(12,*)nbarss,elsktot,fsyst,frac,eonk,ewmxk
+ if (iline .gt. 1) fracindent=frac
+ if (figbass) then
+ ifigdr(1,iline) = 4
+ ifigdr(2,iline) = 4
+ end if
+ slfac = slfac1*musicsize*elsktot
+ if (iline .ne. 1) then
+c
+c For the line just _finished_, put figdrop in separate file.
+c
+ if (figbass) write(14,'(a9,i2,a10,i2,1x,a4)')
+ * sq//'figdrop=',ifigdr(1,iline-1),
+ * ' '//sq//'figdtwo=',ifigdr(2,iline-1),sq//'or%'
+c
+c Check slurs in top staff for interference w/ barno. Only check when
+c # if digits in barno >= |isig| But to keep on/off phasing, must ALWAYS
+c keep track of ons and offs when |isig|<=3.
+c
+ ndigbn = int(alog10(ibarcnt+ibcoff+.01))+1
+ isnx = 0
+ if (ndigbn.ge.iabs(isig) .and. is1n1.gt.0) then
+c
+c There's a slur in top voice over the line break, hgt=is1n1, idcode=is2n1
+c Look for termination in remainder of this input block. If not found,
+c just use is1n1. Remember, haven't slid down yet.
+c
+ ioff = 0
+ if (ibar .gt. 1) ioff = nib(ivmx(nv,nvmx(nv)),ibar-1)
+ do 50 isdat = 1 , nsdat
+ if (igetbits(isdat1(isdat),5,13).eq.ivmx(nv,nvmx(nv))
+ * .and. .not.btest(isdat1(isdat),11)
+ * .and. igetbits(isdat1(isdat),7,19).eq.is2n1) then
+c
+c Found slur ending. Just check note height, can't do fine adjustments.
+c
+c is1n1 = max(is1n1,igetbits(isdat2(nsdat),7,19))
+ is1n1 = max(is1n1,igetbits(isdat2(isdat),7,19))
+ go to 51
+ end if
+50 continue
+c
+c If exiting loop normally, did not find end of slur. c'est la vie.
+c
+51 continue
+ isnx = idim(is1n1,ncmid(nv,1)+1+irzbnd)
+ if (isnx .gt. 0) then
+c
+c AHA! Slur likely to interfere with barno.
+c
+c Modified 090525 to use \bnrs
+c
+ slint = .true.
+ fmtq = '(a16,i1,a14)'
+ if (irzbnd+isnx .gt. 9) fmtq = '(a16,i2,a14)'
+ if (islast) write(11,fmtq)sq//'def'//sq//'raisebarno{',
+ * irzbnd+isnx,'.5'//sq//'internote}%'
+c if (islast) then
+c if (isnx .le. 9) then
+c write(11,'(a5,i1,a2)')sq//'bnrs',isnx,'0%'
+c else
+c write(11,'(a6,i2,a3)')sq//'bnrs{',isnx,'}0%'
+c end if
+c end if
+c
+ end if
+ end if
+ if (movbrk .gt. 0) then
+c
+c movbrk = 0
+c Move the reset down, so can use movbrk>0 to stop extra meter prints.
+c
+c New movement. Redefine stoppiece, contpiece. These will be called either
+c explicitly or as part of alaligne.
+c indsym = 0,1,2 for doubleBAR , doublebar, rightrepeat.
+c This is passed to \newmovement.
+c
+ if (rptfq2 .eq. 'E') rptfq2 = 'D'
+ indsym = index('Ddrbz',rptfq2)-1
+ rptfq2 = 'E'
+c
+c Also check for Rd or Rr set the normal way
+c
+ if (btest(islnow,8)) then
+ indsym = 1
+ else if (btest(islnow,6)) then
+ indsym = 2
+ end if
+ if (indsym .lt. 0) then
+ print*
+ print*,'Illegal end symbol before "/"'
+ call stop1()
+ end if
+c
+c Check for continuation (no bar number reset)
+c
+ if (islast.and.
+ * nobar1) write(11,'(a)')sq//'advance'//sq//'barno1'
+ * //sq//'startbarno'//sq//'barno%'
+ if (movgap .lt. 10) then
+ if (islast) write(11,'(a12,2i1,a1)')
+ * sq//'newmovement',movgap,indsym,'%'
+ else
+ if (islast) write(11,'(a13,i2,a1,i1,a1)')
+ * sq//'newmovement{',movgap,'}',indsym,'%'
+ end if
+c
+c Change generalmeter if necessary
+c
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+c
+c (Moved all name-writing to getnote, right when 'M' is detected)
+c
+ if (btest(iplnow,28)) then
+c
+c Key signature at movement break
+c
+ iplnow = ibclr(iplnow,28)
+ if (isig .gt. 0) then
+ if (islast) write(11,'(a18,i1,a2)')
+ * sq//'generalsignature{',isig,'}%'
+ else
+ if (islast) write(11,'(a18,i2,a2)')
+ * sq//'generalsignature{',isig,'}%'
+ end if
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ end if
+ if (parmov .ge. -.1) then
+c
+c Resent paragraph indentation
+c
+ ipi = parmov*widthpt+.1
+ if (ipi .lt. 10) then
+ if (islast) write(11,'(a11,i1,a2)')
+ * sq//'parindent ',ipi,'pt'
+ else if (ipi .lt. 100) then
+ if (islast)
+ * write(11,'(a11,i2,a2)')sq//'parindent ',ipi,'pt'
+ else
+ if (islast)
+ * write(11,'(a11,i3,a2)')sq//'parindent ',ipi,'pt'
+ end if
+ end if
+ end if
+ if (isystpg .eq. 1) then
+c
+c First line on a page (not 1st page, still first bar). Tidy up old page
+c then eject.
+c
+c Removed this 5/13/01 as it was causing double endvoltas. This probably
+c is only needed at the end in case there is no endvolta specified.
+c if (onvolt) then
+cc if (islast) write(11,'(a)')sq//'endvoltabox%'
+cc onvolt = .false.
+c end if
+c
+c
+c Check for meter change at start of a new PAGE
+c
+ if (mtrnuml .gt. 0) then
+c
+c Meter change at start of a new page. Ugly repeated coding here.
+c
+ mtrnms = mtrnuml
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ mtrnuml = mtrnms
+ if (movbrk .eq. 0 .and. islast)
+ * call wgmeter(mtrnmp,mtrdnp)
+ end if
+c
+c Key signature change?
+c
+ if (btest(iplnow,28) .and. movbrk.eq.0) then
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast) write(11,'(a)')
+ * notexq(1:lnote)//chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-'//sq//'afterruleskip}'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue%'
+ else if (mtrnuml.gt.0 .and. movbrk.eq.0) then
+c
+c Meter change but no signature change
+c
+ if (islast)
+ * write(11,'(a)')sq//'xchangecontext'//sq//'addspace{-'//
+ * sq//'afterruleskip}'//sq//'let'//sq//'bnat'//sq//
+ * 'barnoadd%'
+ if (islast)
+ * write(11,'(a)')sq//'def'//sq//'barnoadd{'//sq//'let'//
+ * sq//'barnoadd'//sq//'bnat}'//sq//'zstoppiece%'
+ else
+ if (islast) write(11,'(a)')sq//'stoppiece%'
+ end if
+c
+c This is the key spot when vshrink is used. Value of vshrink here comes from
+c just after the prior pagebreak, i.e., it is not affected by "Av"
+c that may have been entered at this pagebreak, since that only affects usevshrink.
+c So choose page *ending* (with or without \vfill) depending on old vshrink. Then
+c check value of usevshrink to reset vshrink if necessary for the new page, where
+c we have to set \interstaff and later call puttitle.
+c Top of first page needs special treatment. For this we use
+c novshrinktop, which was set in g1etnote on the first pass, since on
+c second pass, vshrink at top of page one is dealt with in topfile, which is called
+c *before* any reading in any "Av" at the top of the first input block.
+c
+ if (.not.vshrink) then
+ xnstbot = xnsttop(ipage)*etabot/etatop
+ if (xnstbot .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ if (islast) write(11,fmtq)sq//'vskip',xnstbot,
+ * sq//'Interligne'//sq//'eject%'
+ else
+ if (islast) write(11,'(a)') sq//'vfill'//sq//'eject%'
+ end if
+ ipage = ipage+1
+c
+c Now that page is ejected, compute new vshrink
+c
+ vshrink = xintstaff(ipage).gt.20 .and. usevshrink
+ if (vshrink) then
+ xinsnow = 10
+ else
+ xinsnow = xintstaff(ipage)
+ end if
+ if (fintstf.gt.0 .and. ipage.gt.1) then
+ xinsnow = xinsnow*fintstf/gintstf
+ fintstf = -1.
+ end if
+ if (xinsnow .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else if (xinsnow .lt. 99.95) then
+ fmtq = '(a,f4.1,a)'
+ else
+ fmtq = '(a,f5.1,a)'
+ end if
+c
+c Vertical spacing parameters, then restart
+c
+ if (islast) write(11,fmtq)sq//'interstaff{',xinsnow,
+ * '}'//sq//'contpiece'
+c
+c Check for meter change at start of a new PAGE
+c
+ if (mtrnuml .gt. 0) then
+c
+c Meter change at start of a new page
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) write(11,'(a)')sq//'newtimes2%'
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ end if
+ end if
+ end if
+c
+c If no real titles here, which there probably will never be, make vertical
+c space at page top with \titles{...}. headlog=.false.<=>no real titles
+c
+ call puttitle(inhnoh,xnsttop(ipage),etatop,
+ * sq,etait,etatc,etacs1,nv,vshrink,sepsymq)
+ if (HeaderSpecial)
+c
+c Write special header for first page
+c
+ * write(11,'(a)')chax(92)//'special{header=psslurs.pro}%'
+ else
+c
+c First bar of system, not a new page, force line break
+c
+ if (btest(iplnow,28)) then
+c
+c Signature change
+c
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast) write(11,'(a)')notexq(1:lnote)
+ * //chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1%'
+ if (mtrnuml .ne. 0) then
+c
+c Meter+sig change, new line, may need mods if movement break here.
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (islast) then
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'xchangecontext'//sq//
+c * 'addspace{-'//sq//'afterruleskip}'//sq//'def'
+ * 'addspace{-'//sq//'afterruleskip}'
+c * //sq//'writezbarno{}'//sq//'zalaligne%'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue'//sq//'contpiece%'
+ write(11,'(a)')sq//'addspace{-'//sq
+ * //'afterruleskip}%'
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'zchangecontext'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'xchangecontext'//sq//
+c * 'addspace{-'//sq//'afterruleskip}'//sq//'def'//
+ * 'addspace{-'//sq//'afterruleskip}'
+c * sq//'writezbarno{}'//sq//'zalaligne%'
+ * //sq//'zstoppiece'//sq//'PMXbarnotrue'//sq//'contpiece%'
+ end if
+ else if (mtrnuml .eq. 0) then
+c
+c No meter change
+c
+ if (islast) write(11,'(a)')sq//'alaligne'
+ else
+c
+c New meter, no new sig, end of line, not new page.
+c
+c \generalmeter{\meterfrac{3}{4}}%
+c \xchangecontext\addspace{-\afterruleskip}%
+c \zalaligne\generalmeter{\meterfrac{3}{4}}\addspace{-\afterruleskip}%
+c \zchangecontext
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) then
+ write(11,'(a)')
+ * sq//'let'//sq//'bnat'//sq//'barnoadd'
+ * //sq//'def'//sq//'barnoadd{'//sq//'empty}%'
+ write(11,'(a)')sq//'xchangecontext'//sq//
+ * 'addspace{-'//sq//'afterruleskip}'//sq//
+ * 'zalaligne'//sq//'let'//sq//'barnoadd'//sq//'bnat'
+ call wgmeter(mtrnmp,mtrdnp)
+ write(11,'(a)')sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'zchangecontext'
+ end if
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ else
+ if (islast) write(11,'(a)')sq//'alaligne'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'alaligne'
+ end if
+ end if
+ end if
+c
+c Modified 090525 to use \bnrs
+c
+ if (slint) then
+ slint = .false.
+ if (islast) write(11,'(a16,i1,a14)')sq//'def'//sq//
+ * 'raisebarno{',irzbnd,'.5'//sq//'internote}%'
+ end if
+ movbrk = 0
+ end if
+c
+c Clean up if we squelched bar number reset at movement break
+c
+ if (nobar1) then
+ if (islast) write(11,'(a)')sq//'startbarno1'
+ nobar1 = .false.
+ end if
+ read(12,*,end=14)iauto
+14 continue
+c
+c We come thru here for the 1st bar of every system, so initialize is1n1
+c
+ is1n1 = 0
+c
+c Brought down from above
+c
+ if (isystpg .eq. nsystp(ipage)) isystpg = 0
+c
+c Check for linebreak ties
+c
+ if (ispstie)
+ * call LineBreakTies(isdat1,isdat2,isdat3,isdat4,nsdat,
+ * ispstie,sepsymq)
+ else
+c
+c Not first bar of system
+c
+ if (btest(iplnow,28)) then
+c
+c Signature change
+c
+ if (mtrnuml .ne. 0) then
+c
+c Meter+signature change mid line, assume no movement break
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ notexq = sq//'generalsignature{'
+ lnote = 18
+ if (isig .lt. 0) then
+ notexq = notexq(1:18)//'-'
+ lnote = 19
+ end if
+ if (islast) then
+ iptemp = 48+abs(isig)
+ charq = chax(iptemp)
+ notexq = notexq(1:lnote)//charq//'}%'
+ lnote = lnote+3
+ write(11,'(a)')notexq(1:lnote)
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ write(11,'(a)')sq//'xchangecontext%'
+ end if
+ if (ibar .eq. ibarmbr) then
+c
+c Compute space for multibar rest
+c
+ if (lastisig*isig .ge. 0) then
+ naccs = max(abs(lastisig),abs(isig))
+ else
+ naccs = abs(lastisig-isig)
+ end if
+ xb4mbr = (facmtr+naccs*.24)*musicsize
+ end if
+ else
+c
+c Signature change only
+c
+ notexq = sq//'xbar'//sq//'addspace{-'//sq//
+ * 'afterruleskip}'//sq//'generalsignature{'
+ lnote = 49
+ if (isig .lt. 0) then
+ notexq = notexq(1:49)//'-'
+ lnote = 50
+ end if
+ if (islast)
+ * write(11,'(a)')notexq(1:lnote)//chax(48+abs(isig))//'}%'
+ if (islast .and. LaterInstTrans) then
+ call Writesetsign(nInstTrans,iInstTrans,iTransKey,
+ * LaterInstTrans)
+ end if
+ if (islast) write(11,'(a)')sq//'zchangecontext'//sq
+ * //'addspace{-.5'// sq//'afterruleskip}%'
+ if (ibar .eq. ibarmbr) then
+c
+c Compute space for multibar rest
+c
+ if (lastisig*isig .ge. 0) then
+ naccs = max(abs(lastisig),abs(isig))
+ else
+ naccs = abs(lastisig-isig)
+ end if
+ xb4mbr = naccs*.24*musicsize
+ end if
+ end if
+ else if (mtrnuml .eq. 0) then
+c
+c No meter change
+c
+ if (islast) write(11,'(a)')sq//'xbar'
+ else
+c
+c Change meter midline
+c
+ call setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+ if (movbrk .eq. 0) then
+ if (islast) call wgmeter(mtrnmp,mtrdnp)
+ if (mtrdnp .gt. 0) then
+ if (islast) write(11,'(a,2i1,a)')sq//'newtimes0%'
+ if (ibar .eq. ibarmbr) xb4mbr = facmtr*musicsize
+ else
+ if (islast) write(11,'(a)')sq//'xbar'
+ end if
+ end if
+ end if
+ end if
+c
+c Now that xbar's are written, can put in left-repeats at line beginnings
+c
+ if (lrptpend) then
+ if (islast) write(11,'(a)')sq//'advance'//sq//'barno-1'
+ * //sq//'leftrepeat'
+ lrptpend = .false.
+ end if
+ if (ibar .gt. 1) then
+c
+c For bars after first, slide all stuff down to beginning of arrays
+c
+ do 11 iv = 1 , nv
+ do 11 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ ioff = nib(ivx,ibar-1)
+ do 12 ip = 1 , nib(ivx,ibar)-ioff
+ nolev(ivx,ip) = nolev(ivx,ip+ioff)
+ nodur(ivx,ip) = nodur(ivx,ip+ioff)
+ nacc(ivx,ip) = nacc(ivx,ip+ioff)
+ irest(ivx,ip) = irest(ivx,ip+ioff)
+ islur(ivx,ip) = islur(ivx,ip+ioff)
+ ipl(ivx,ip) = ipl(ivx,ip+ioff)
+ iornq(ivx,ip) = iornq(ivx,ip+ioff)
+ mult(ivx,ip) = mult(ivx,ip+ioff)
+c if (ivx.le.2 .and. figbass)
+c * isfig(ivx,ip) = isfig(ivx,ip+ioff)
+ if (figbass .and. ivx.eq.1 .or. ivx.eq.ivxfig2) then
+ if (ivx.eq.1) then
+ isfig(1,ip) = isfig(1,ip+ioff)
+ else
+ isfig(2,ip) = isfig(2,ip+ioff)
+ end if
+ end if
+12 continue
+ if (ivx.le.nv .and. ncc(iv).gt.1) then
+ islide = 0
+ do 13 icc = 1 , ncc(iv)
+ if (tcc(iv,icc) .le. lenbar) then
+c
+c This time will drop <=0 when slid.
+c
+ islide = icc-1
+ ncmidcc(iv,1) = ncmidcc(iv,icc)
+ else
+ tcc(iv,icc-islide) = tcc(iv,icc)-lenbar
+ ncmidcc(iv,icc-islide) = ncmidcc(iv,icc)
+ end if
+13 continue
+ ncc(iv) = ncc(iv)-islide
+ tcc(iv,1) = 0.
+ end if
+11 continue
+ do 15 ig = 1 , ngrace
+ ipg(ig) = ipg(ig)-nib(ivg(ig),ibar-1)
+ if (ibar .gt. 2) ipg(ig) = ipg(ig)+nib(ivg(ig),ibar-2)
+15 continue
+ do 21 il = 1 , nlit
+ iplit(il) = iplit(il)-nib(ivlit(il),ibar-1)
+ if (ibar .gt. 2) iplit(il) = iplit(il)+nib(ivlit(il),ibar-2)
+21 continue
+ do 22 it = 1 , ntrill
+ iptrill(it) = iptrill(it)-nib(ivtrill(it),ibar-1)
+ if (ibar .gt. 2) iptrill(it) =
+ * iptrill(it)+nib(ivtrill(it),ibar-2)
+22 continue
+ do 27 icrd = 1 , ncrd
+c ivx = iand(15,ishft(icrdat(icrd),-8))
+ ivx = iand(15,ishft(icrdat(icrd),-8))
+ * +16*igetbits(icrdat(icrd),1,28)
+ ipnew = iand(255,icrdat(icrd))-nib(ivx,ibar-1)
+ if (ibar .gt. 2) ipnew = ipnew+nib(ivx,ibar-2)
+ icrdat(icrd) = iand(not(255),icrdat(icrd))
+ icrdat(icrd) = ior(max(0,ipnew),icrdat(icrd))
+27 continue
+ do 29 iudorn = 1 , nudorn
+c ivx = iand(15,ishft(kudorn(iudorn),-8))
+ ivx = ivxudorn(iudorn)
+ ipnew = iand(255,kudorn(iudorn))-nib(ivx,ibar-1)
+ if (ibar .gt. 2) ipnew = ipnew+nib(ivx,ibar-2)
+ kudorn(iudorn) = iand(not(255),kudorn(iudorn))
+ kudorn(iudorn) = ior(max(0,ipnew),kudorn(iudorn))
+29 continue
+ do 42 idyn = 1 , ndyn
+ idynd = idyndat(idyn)
+c ivx = iand(15,idynd)
+ ivx = iand(15,idynd)+16*igetbits(idynda2(idyn),1,10)
+ ipnew = igetbits(idynd,8,4)-nib(ivx,ibar-1)
+c
+c The following construction avoids array bound errors in some compilers
+c
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(idynd,8,4,ipnew)
+ idyndat(idyn) = idynd
+42 continue
+ do 43 itxtdyn = 1 , ntxtdyn
+ idynd = ivxiptxt(itxtdyn)
+c ivx = iand(15,idynd)
+ ivx = iand(31,idynd)
+c ipnew = igetbits(idynd,8,4)-nib(ivx,ibar-1)
+ ipnew = igetbits(idynd,8,5)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+c call setbits(idynd,8,4,ipnew)
+ call setbits(idynd,8,5,ipnew)
+ ivxiptxt(itxtdyn) = idynd
+43 continue
+ do 41 isdat = 1 , nsdat
+ isdata = isdat1(isdat)
+ ivx = ivmx(igetbits(isdata,5,13),igetbits(isdata,1,12)+1)
+ ipnew = igetbits(isdata,8,3)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(isdata,8,3,ipnew)
+ isdat1(isdat) = isdata
+41 continue
+ do 44 ibc = 1 , nbc
+c ivx = iand(15,ibcdata(ibc))
+ ivx = iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+ ipnew = igetbits(ibcdata(ibc),8,4)-nib(ivx,ibar-1)
+ if (ibar .gt. 2) then
+ ipnew = ipnew+nib(ivx,ibar-2)
+ end if
+ ipnew = dim(ipnew,0)
+ call setbits(ibcdata(ibc),8,4,ipnew)
+44 continue
+ do 45 iarps = 1 , NumArpShift
+ IpArpShift(iarps) =
+ * IpArpShift(iarps)-nib(IvArpShift(iarps),ibar-1)
+ if (ibar .gt. 2) then
+ IpArpShift(iarps) =
+ * IpArpShift(iarps)+nib(IvArpShift(iarps),ibar-2)
+ end if
+45 continue
+c
+c Bookkeeping for figures. This will set nfigs = 0 if there are no figs left.
+c If there are figs left, it will reset all times relative to start of
+c current bar.
+c
+ do 46 ivx = 1 , 2
+ if (figbass) then
+ islide = 0
+ do 20 jfig = 1 , nfigs(ivx)
+ if (itfig(ivx,jfig) .lt. lenbar) then
+c
+c This figure was already used
+c
+ islide = jfig
+ else
+ itfig(ivx,jfig-islide) = itfig(ivx,jfig)-lenbar
+ figq(ivx,jfig-islide) = figq(ivx,jfig)
+ itoff(ivx,jfig-islide) = itoff(ivx,jfig)
+ ivupfig(ivx,jfig-islide) = ivupfig(ivx,jfig)
+ end if
+20 continue
+ nfigs(ivx) = nfigs(ivx)-islide
+ end if
+ if (nfigs(2) .eq. 0) go to 47
+46 continue
+47 continue
+ end if
+c
+c End of sliding down for bars after first in gulp.
+c
+c The following may not be needed by makeabar, but just in case...
+c
+ if (firstgulp .and. lenb0.ne.0) then
+ if (ibar .eq. 1) then
+ lenbar = lenb0
+ else
+ lenbar = lenb1
+ end if
+ end if
+c
+c Equal line spacing stuff
+c
+ if (equalize .and. bar1syst) then
+ if (isystpg .eq. 1) then
+ write(11,'(a)')sq//'starteq%'
+ else if (isystpg .eq. nsystp(ipage)-1) then
+ write(11,'(a)')sq//'endeq%'
+ end if
+ end if
+ call make1bar(ibmrep,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart)
+ call make2bar(ninow,tglp1,tstart,cwrest,squez,
+ * istop,numbms,istart,clefq)
+c
+c Hardspace before barline?
+c
+ hardb4 = 0.
+ do 35 iv = 1 , nv
+ do 35 kv = 1 , nvmx(iv)
+ ivx = ivmx(iv,kv)
+ if (btest(irest(ivx,nn(ivx)),18)) then
+ nudoff(ivx) = nudoff(ivx)+1
+ hardb4 = max(hardb4,udoff(ivx,nudoff(ivx)))
+ end if
+35 continue
+ if (hardb4 .gt. 0.) then
+ if (islast) write(11,'(a11,f5.1,a4)')sq
+ * //'hardspace{',hardb4,'pt}%'
+ fixednew = fixednew-hardb4
+ end if
+10 continue
+ firstgulp = .false.
+ lenb0 = 0
+ go to 30
+40 close(12)
+ close(13)
+ ilbuf = 1
+ ipbuf = 0
+ wdpt = widthpt
+ if (iline .eq. 1) wdpt = widthpt*(1-fracindent)
+ poe = (wdpt-fsyst*musicsize-0.4*nbarss-fixednew)/
+ * (elsktot+fbar*nbarss-scaldold)
+ poevec(nsyst) = poe
+ if (.not.islast) then
+ close(11)
+ close(16)
+ if (figbass) close(14)
+ return
+ end if
+ do 19 ia = 1 , nasksys
+ iask = iask+1
+ ask(iask) = wasksys(ia)/poe-abs(elasksys(ia))
+ if (elasksys(ia).gt.0) ask(iask)=dim(ask(iask),0.)
+19 continue
+ do 26 ia = 1 , nhssys
+ nhstot = nhstot+1
+ hpttot(nhstot) = max(hpts(ia)-hesk(ia)*poe,0.)
+26 continue
+ if (islast .and.
+ * onvolt) write(11,'(a)')sq//'endvoltabox'
+ if (rptfq2 .ne. 'E') then
+c
+c Terminal repeat. Right or double?
+c
+ if (rptfq2 .eq. 'r') then
+ if (islast) write(11,'(a)')sq//'setrightrepeat'
+ * //sq//'endpiece'
+ else if (rptfq2 .eq. 'd') then
+ if (islast) write(11,'(a)')sq//'setdoublebar'//sq//'endpiece'
+ else if (rptfq2 .eq. 'b') then
+ if (islast) write(11,'(a)')sq//'endpiece'
+ else if (rptfq2 .eq. 'z') then
+ if (islast) write(11,'(a)')sq//'setzalaligne'//sq//'Endpiece'
+ else
+c else if (rptfq2 .ne. 'D') then
+ print*
+ print*,'R? , ? not "d","r",or"b","z"; rptfq2:',rptfq2
+ write(15,*)'R? , ? not "d","r",or"b","z"; rptfq2:',rptfq2
+ if (islast) write(11,'(a)')sq//'Endpiece'
+ end if
+ else
+ if (islast) write(11,'(a)')sq//'Endpiece'
+ end if
+ if (.not.vshrink) then
+ xnstbot = xnsttop(ipage)*etabot/etatop
+ if (xnstbot .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ if (islast) write(11,fmtq)sq//'vskip',xnstbot,
+ * sq//'Interligne'//sq//'eject'//sq//'endmuflex'
+ if (islast) write(11,'(a)')sq//'bye'
+ else
+ if (islast) write(11,'(a)')
+ * sq//'vfill'//sq//'eject'//sq//'endmuflex'
+ if (islast) write(11,'(a)')sq//'bye'
+ end if
+ rewind(11)
+ if (figbass) then
+ write(14,'(a9,i2,a10,i2,1x,a5)')
+ * sq//'figdrop=',ifigdr(1,iline),
+ * ' '//sq//'figdtwo=',ifigdr(2,iline),sq//'fi}%'
+ rewind(14)
+ end if
+ call askfig(pathnameq,lpath,basenameq,lbase,figbass,istype0)
+ if (.not.optimize) then
+ print*
+ print*,'Writing '
+ * //pathnameq(1:lpath)//basenameq(1:lbase)//'.tex'
+ print*,'Done with second PMX pass.'
+ write(15,'(/,a)')'Writing '
+ * //pathnameq(1:lpath)//basenameq(1:lbase)//'.tex'
+ write(15,'(a)')' Done with second PMX pass. Now run TeX'
+ end if
+ return
+ end
+ subroutine poestats(nsyst,poe,poebar,devnorm)
+ parameter (nks=125)
+c
+c Compute avg. & norm. std. dev. of poe.
+c
+ real*4 poe(nks)
+ sumx = 0.
+ sumxx = 0.
+ do 1 isyst = 1 , nsyst
+ sumx = sumx+poe(isyst)
+ sumxx = sumxx+poe(isyst)**2
+1 continue
+2 continue
+ devnorm = sqrt(nsyst*sumxx/sumx**2-1)
+ poebar = sumx/nsyst
+ return
+ end
+ subroutine precrd(ivx,ip,nolevm,nacc,ipl,irest,udq,
+ * twooftwo,icashft)
+c
+c Analyzes chords, data to be used with slurs on chords and plain chords.
+c Check for 2nds, shift notes if neccesary.
+c ipl(10) chord present
+c irest(20) set if any note is right shifted
+c irest(27) set if any note is left shifted
+c ipl(8|9) left|right shift main note
+c icrdat(23|24) ditto chord note
+c udq is updown-ness, needed to analyze 2nds.
+c levtabl(i)=0 if no note at this level, -1 if main note, icrd if chord note.
+c icrdot(icrd)(27-29) sequence order of chord note if accid, top down
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ logical btest,is2nd,twooftwo
+ integer*4 kicrd(10),levtabl(88)
+ character*1 udq
+ do 11 i = 1 , 88
+ levtabl(i) = 0
+11 continue
+ do 1 icrd1 = 1 , ncrd
+ ivx1 = iand(15,ishft(icrdat(icrd1),-8))
+ * +16*igetbits(icrdat(icrd1),1,28)
+ ip1 = iand(255,icrdat(icrd1))
+ if (ip1.eq.ip .and. ivx1.eq.ivx) go to 2
+1 continue
+ print*
+ print*,
+ * 'Cannot find first chord note in precrd. Send source to Dr. Don!'
+ call stop1()
+2 continue
+ maxlev = nolevm
+ minlev = nolevm
+ levtabl(nolevm) = -1
+ is2nd = .false.
+ naccid = 0
+ levmaxacc = -100
+ levminacc = 1000
+c
+c Check 1st 3 bits of nacc for accid on main note of chord.
+c
+ if (iand(7,nacc) .gt. 0) then
+ naccid = 1
+c
+c Start list of notes with accid's. There will be naccid of them. kicrd=0 if main,
+c otherwise icrd value for note with accidental.
+c
+ kicrd(1) = 0
+ levmaxacc = nolevm
+ levminacc = nolevm
+c
+c Start the level-ranking
+c
+ icrdot0 = 1
+ end if
+ do 3 icrd2 = icrd1 , ncrd
+ nolev = igetbits(icrdat(icrd2),7,12)
+ levtabl(nolev) = icrd2
+ maxlev = max(maxlev,nolev)
+ minlev = min(minlev,nolev)
+c
+c Check for accidental
+c
+ if (btest(icrdat(icrd2),19)) then
+ naccid = naccid+1
+ levmaxacc = max(levmaxacc,nolev)
+ levminacc = min(levminacc,nolev)
+c
+c Add this icrd to list of values for notes with accid's.
+c
+ kicrd(naccid) = icrd2
+ if (.not.btest(nacc,28)) then
+c
+c Order not forced, so get the level-ranking, top down
+c
+ iorder = 1
+ do 12 iaccid = 1 , naccid-1
+ if (kicrd(iaccid) .eq. 0) then
+ if (nolevm .gt. nolev) then
+ iorder = iorder+1
+ else
+ icrdot0 = icrdot0+1
+ end if
+ else
+ if (igetbits(icrdat(kicrd(iaccid)),7,12)
+ * .gt. nolev) then
+ iorder = iorder+1
+ else
+ iold = igetbits(icrdot(kicrd(iaccid)),3,27)
+ call setbits(icrdot(kicrd(iaccid)),3,27,iold+1)
+ end if
+ end if
+12 continue
+ call setbits(icrdot(icrd2),3,27,iorder)
+ end if
+ end if
+c
+c Exit loop if last note in this chord
+c
+ if (icrd2 .eq. ncrd) go to 4
+ if (igetbits(icrdat(icrd2+1),8,0) .ne. ip .or.
+c * igetbits(icrdat(icrd2+1),4,8) .ne. ivx) go to 4
+ * igetbits(icrdat(icrd2+1),4,8)
+ * +16*igetbits(icrdat(icrd2+1),1,28) .ne. ivx) go to 4
+3 continue
+ print*
+ print*,'Failed to find last chord note. Send source to Dr. Don!'
+ call stop1()
+4 continue
+c
+c Now icrd1, icrd2 define range of icrd for this chord.
+c
+c Bypass autos-shifting if any manual shifts are present
+c
+ if (btest(irest,20) .or. btest(irest,27)) go to 10
+c
+c Check for 2nds
+c
+ do 5 ilev = 1 , 87
+ if (levtabl(ilev).ne.0 .and. levtabl(ilev+1).ne.0) then
+c
+c There is at least one 2nd..
+c
+ if (udq .eq. 'u') then
+c
+c Upstem. Start with 2nd just found and go up, rt-shifting upper
+c member of each pair
+c
+ ile = ilev
+c
+c Set main-note flag for ANY right-shift
+c
+ irest = ibset(irest,20)
+7 continue
+ if (levtabl(ile+1) .lt. 0) then
+c
+c Upstem, & upper member is main so must be rt-shifted. This would move
+c stem too, so we rt-shift the OTHER note, and set flag that signals
+c to interchange pitches just when these two notes are placed.
+c
+ nacc = ibset(nacc,30)
+ icrdat(levtabl(ile)) = ibset(icrdat(levtabl(ile)),24)
+ else
+c
+c Upper member is chord note, must be rt-shifted
+c
+ icrdat(levtabl(ile+1)) = ibset(icrdat(levtabl(ile+1)),24)
+ end if
+ ile = ile+1
+8 continue
+ ile = ile+1
+ if (ile .lt. 87) then
+ if (levtabl(ile).ne.0 .and. levtabl(ile+1).ne.0) then
+ go to 7
+ else
+ go to 8
+ end if
+ end if
+ go to 10
+ else
+c
+c Downstem. Start at top and work down, left-shifting lower member of each pair.
+c We know that lowest pair is at (ilev,ilev+1).
+c
+ ile = 88
+c
+c Set main-note flag for ANY right-shift
+c
+ irest = ibset(irest,27)
+9 continue
+ if (levtabl(ile).ne.0 .and. levtabl(ile-1).ne.0) then
+ if (levtabl(ile-1) .lt. 0) then
+c ipl = ibset(ipl,8)
+c
+c Dnstem, & lower member is main so must be left-shifted. This would move
+c stem too, so we left-shift the OTHER note, and set flag that signals
+c to interchange pitches just when these two notes are placed.
+c
+ nacc = ibset(nacc,31)
+ icrdat(levtabl(ile)) = ibset(icrdat(levtabl(ile)),23)
+ else
+c
+c Lower member is chord note, must be shifted
+c
+ icrdat(levtabl(ile-1)) =
+ * ibset(icrdat(levtabl(ile-1)),23)
+ end if
+ ile = ile-1
+ end if
+ ile = ile-1
+ if (ile .ge. ilev+1) go to 9
+ go to 10
+ end if
+ end if
+5 continue
+10 continue
+c
+c Done with 2nds, now do accid's. Call even if just one, in case left shifts.
+c
+c if (naccid .gt. 1) call crdaccs(nacc,ipl,irest,naccid,
+ if (naccid .ge. 1) call crdaccs(nacc,ipl,irest,naccid,
+ * kicrd,nolevm,levmaxacc,levminacc,icrdot0,twooftwo,icashft)
+ return
+ end
+ subroutine printl(string)
+ character*(*) string
+c
+c Send string to console and to log file
+c
+ print*,string
+ write(15,'(a)')string
+ return
+ end
+ subroutine putarp(tnow,iv,ip,nolev,ncm,soutq,lsout)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comtol/ tol
+ common /comArpShift/NumArpShift,IvArpShift(20),IpArpShift(20),
+ * ArpShift(20)
+ logical lowdot,IsArpShift
+ character*80 soutq
+ character*79 notexq
+ character*8 symq(2)
+ character*1 chax
+ data symq /'raisearp','arpeggio'/
+
+c
+c Find which iarp, if any
+c
+ do 1 iarp = 1 , narp
+ if (abs(tnow-tar(iarp)).lt.tol) go to 2
+1 continue
+c
+c If here, this is the *first* call for this arp.
+c
+ narp = narp+1
+ tar(narp) = tnow+tol*.5
+ ivar1(narp) = iv
+ ipar1(narp) = ip
+ levar1(narp) = nolev
+ ncmar1(narp) = ncm
+ return
+2 continue
+c
+c If here, this is *second* call at this time, iarp points to values from 1st.
+c
+c Check for shift. Set IsArpShift and iarps
+c
+ do 3 iarps = 1 , NumArpShift
+ if (IvArpShift(iarps) .eq. ivar1(iarp) .and.
+ * IpArpShift(iarps) .eq. ipar1(iarp)) then
+ IsArpShift = .true.
+ notexq = chax(92)//'loffset{'
+ write(notexq(10:14),'(f3.1,a2)') Arpshift(iarps),'}{'
+ lnote = 14
+ go to 4
+ end if
+3 continue
+ IsArpShift = .false.
+ lnote = 0
+4 continue
+ if (iv .eq. ivar1(iarp)) then
+c
+c Arp is in a single staff.
+c
+ levbot = min(levar1(iarp),nolev)-ncm+3
+ invert = abs(levar1(iarp)-nolev)+1
+ else
+c
+c Arp covers >1 staff. Lower staff has to be the first, upper is current and
+c is where the symbol will be written.
+c
+ levbot = -nint(2*xinsnow)+3+levar1(iarp)-ncmar1(iarp)
+ invert = -levbot+4+nolev-ncm
+c print*,'xinsnow,levar1,ncmar1,levbot,nolev,ncm:'
+c write(*,'(f5.1,5i5)')xinsnow,levar1(iarp),ncmar1(iarp),
+c *levbot,nolev,ncm
+ end if
+c
+c isym will be (1,2) if invert is (even,odd). If even, raise .5\internote
+c
+ isym = mod(invert,2)+1
+ ilvert = (invert+1)/2
+ if (levbot .ge. 0 .and. levbot .le. 9) then
+c
+c Single digit
+c
+ if (.not.IsArpShift) then
+ notexq = chax(92)//symq(isym)//chax(48+levbot)
+ else
+ notexq = notexq(1:lnote)//
+ * chax(92)//symq(isym)//chax(48+levbot)
+ end if
+ lnote = lnote+10
+ else
+ if (.not.IsArpShift) then
+ notexq = chax(92)//symq(isym)//'{'
+ else
+ notexq = notexq(1:lnote)//chax(92)//symq(isym)//'{'
+ end if
+ lnote = lnote+10
+ if (levbot .ge. -9) then
+c
+c Need two spaces for number
+c
+ write(notexq(lnote+1:lnote+3),'(i2,a1)')levbot,'}'
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+4),'(i3,a1)')levbot,'}'
+ lnote = lnote+4
+ end if
+ end if
+c if (ilvert .le. 9) then
+c call addstr(notexq(1:lnote)//chax(48+ilvert),lnote+1,
+c * soutq,lsout)
+c else
+c write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')'{',ilvert,'}'
+c call addstr(notexq(1:lnote+4),lnote+4,soutq,lsout)
+c end if
+
+ if (ilvert .gt. 9) then
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')'{',ilvert,'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//chax(48+ilvert)
+ lnote = lnote+1
+ end if
+ if (IsArpShift) then
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ call addstr(notexq(1:lnote),lnote,soutq,lsout)
+c
+c cancel out the stored time, to permit two arps at same time!
+c
+ tar(iarp) = -1.
+ return
+ end
+ subroutine putast(elask,indxask,outq)
+ character*129 outq,tag
+ character*9 fmtq
+ if (elask .ge. 0.) then
+ if (elask.lt.0.995) then
+ lp = 3
+ else if (elask .lt. 9.995) then
+ lp = 4
+ else
+ lp = 5
+ end if
+ write(fmtq,'(a5,i1,a3)')'(a2,f',lp,'.2)'
+ else
+ lp = 5
+ fmtq = '(a2,f5.1)'
+ end if
+c
+c Overwrite as follows: ...xyz*ask *lmnop... ->
+c ...xyz*ast{.nn}*lmnop...
+c ...xyz*ast{n.nn}*lmnop...
+c ...xyz*ast{nn.nn}*lmnop...
+c or for negative, ...xyz*ast{-nn.n}*lmnop...
+ tag = outq(indxask+9:)
+ write(outq(indxask+3:),fmtq)'t{',elask
+ outq = outq(1:indxask+4+lp)//'}'//tag
+ return
+ end
+ subroutine putcb(ivx,ip,notexq,lnote)
+ common /comcb/ nbc,ibcdata(36)
+ character*79 notexq
+ logical btest
+c ivxip = ivx+16*ip
+ do 1 ibc = 1 , nbc
+c if (ivxip .eq. iand(1023,ibcdata(ibc))) go to 2
+c if (ivx.eq.iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+c * .and. ip.eq.iand(1008,ibcdata(ibc))) go to 2
+ ivxbc = iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28)
+ ipbc = igetbits(ibcdata(ibc),8,4)
+ if (ivx .eq. ivxbc .and. ip .eq.ipbc) go to 2
+1 continue
+ call printl('Error in putbc, Call Dr. Don')
+ stop
+2 continue
+ if (btest(ibcdata(ibc),27)) then
+ lnote = 8
+ notexq = char(92)//'pbreath'
+ else
+ lnote = 9
+ notexq = char(92)//'pcaesura'
+ end if
+ ivshft = igetbits(ibcdata(ibc),6,13)
+c?? ivshft = igetbits(ibcdata(ibc),6,13)-32
+ if (ivshft .gt. 0) ivshft = ivshft-32
+ if (ivshft.lt.0 .or. ivshft.gt.9) then
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (ivshft .lt. -9) then
+ write(notexq(lnote+1:lnote+3),'(i3)')ivshft
+ lnote = lnote+3
+ else
+ write(notexq(lnote+1:lnote+2),'(i2)')ivshft
+ lnote = lnote+2
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ else
+ notexq = notexq(1:lnote)//char(48+ivshft)
+ lnote = lnote+1
+ end if
+ ihshft = igetbits(ibcdata(ibc),8,19)
+ if (ihshft .eq. 0) then
+ notexq = notexq(1:lnote)//'0'
+ lnote = lnote+1
+ else
+ hshft = .1*(ihshft-128)
+c
+c -12.8<hshft<12.8
+c
+ notexq = notexq(1:lnote)//'{'
+ lnote = lnote+1
+ if (hshft .lt. -9.95) then
+ write(notexq(lnote+1:lnote+5),'(f5.1)')hshft
+ lnote = lnote+5
+ else if (hshft.lt.-0.05 .or. hshft.gt.9.95) then
+ write(notexq(lnote+1:lnote+4),'(f4.1)')hshft
+ lnote = lnote+4
+ else
+ write(notexq(lnote+1:lnote+3),'(f3.1)')hshft
+ lnote = lnote+3
+ end if
+ notexq = notexq(1:lnote)//'}'
+ lnote = lnote+1
+ end if
+ return
+ end
+ subroutine putfig(ivx,ifig,offnsk,figcheck,soutq,lsout)
+ parameter (nm=24)
+ common /comfig/ itfig(2,74),figqq(2,74),ivupfig(2,74),nfigs(2),
+ * fullsize(nm),ivxfig2
+ character*10 figqq,figq
+ character*80 soutq,notexq
+ character*1 ch1q,ch2q,sq,chax
+ character*5 nofq,nofaq
+ character*4 Figutq,Conttq
+ logical figcheck
+ if (ivx .eq. 1) then
+ Figutq = 'Figu'
+ Conttq = 'Cont'
+ else
+ Figutq = 'Figt'
+ Conttq = 'Cott'
+ end if
+ sq = chax(92)
+ if (abs(offnsk) .gt. .0001) then
+c
+c Write offset for floating figure, to two decimal places
+c
+ notexq = sq//'off{'
+ if (-offnsk .lt. -9.995) then
+ write(notexq(6:11),'(f6.2)')-offnsk
+ lnote = 11
+ else if (-offnsk.lt.-.995 .or. -offnsk.gt.9.995) then
+ write(notexq(6:10),'(f5.2)')-offnsk
+ lnote = 10
+ else if (-offnsk.lt.-.0001 .or. -offnsk.gt..995) then
+ write(notexq(6:9),'(f4.2)')-offnsk
+ lnote = 9
+ else
+ write(notexq(6:8),'(f3.2)')-offnsk
+ lnote = 8
+ end if
+ notexq = notexq(1:lnote)//sq//'noteskip}'
+ call addstr(notexq,lnote+10,soutq,lsout)
+ end if
+ figq = figqq(ivx,ifig)
+ ic = 1
+c nof = 0
+c nofa = -1
+ nof = -ivupfig(ivx,ifig)
+ nofa = -ivupfig(ivx,ifig)-1
+c
+c Beginning of manual loop
+c
+1 ch1q = figq(ic:ic)
+c
+c Exit when first blank is encountered
+c
+ if (ch1q .eq. ' ') go to 2
+c
+c Starting a level. Set up vertical offset.
+c
+c lnof = 1
+c nofq = chax(nof+48)
+c if (nof .gt. 9) then
+c lnof = 2
+c nofq = '1'//chax(nof-10+48)
+c end if
+c if (nofa .eq.-1) then
+c lnofa = 2
+c nofaq = '-1'
+c else if (nofa .lt. 10) then
+c lnofa = 1
+c nofaq = chax(nofa+48)
+c else
+c lnofa = 2
+c nofaq = '1'//chax(nofa+38)
+c end if
+ call istring(nof,nofq,lnof)
+ call istring(nofa,nofaq,lnofa)
+ if (ch1q .eq. '0') then
+c
+c Continuation figure. Next number is length (in noteskips). The number will
+c end at the first blank or char that is not digit or decimal point. If
+c colon, it is a separator and must be skipped
+c
+ icnum = ic+1
+3 continue
+ ic = ic+1
+ if (index('0123456789.',figq(ic:ic)) .gt. 0) go to 3
+ lnum = ic-icnum
+ call addstr(sq//Conttq//nofq(1:lnof)//'{'
+ * //figq(icnum:ic-1)//'}',7+ic-icnum+lnof,soutq,lsout)
+ if (figq(ic:ic) .ne. ':') ic=ic-1
+ else if (ch1q.eq.'#'.or.ch1q.eq.'-'.or.ch1q.eq.'n') then
+ ic = ic+1
+ ch2q = figq(ic:ic)
+ if (ch2q .eq. ' ') then
+c
+c Figure is a stand-alone accidental, so must be centered
+c
+ if (ch1q .eq. '#') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'sharpfig}',16+lnofa,soutq,lsout)
+ else if (ch1q .eq. '-') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'flatfig}',15+lnofa,soutq,lsout)
+ else if (ch1q .eq. 'n') then
+ call addstr(sq//Figutq//nofaq(1:lnofa)//
+ * '{'//sq//'natfig}',14+lnofa,soutq,lsout)
+ end if
+ go to 2
+ else
+c
+c Figure is an accidental followed by a number
+c First put the accidental (offset to the left)
+c
+ if (ch1q .eq. '#') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmsh}',
+ * 13+lnofa,soutq,lsout)
+ else if (ch1q .eq. '-') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmfl}',
+ * 13+lnofa,soutq,lsout)
+ else if (ch1q .eq. 'n') then
+ call addstr(sq//Figutq//
+ * nofaq(1:lnofa)//'{'//sq//'fsmna}',
+ * 13+lnofa,soutq,lsout)
+ end if
+c
+c Now put the number
+c
+ call addstr(sq//Figutq//nofq(1:lnof)//'{'//ch2q//'}',
+ * 8+lnof,soutq,lsout)
+ endif
+ else if (ch1q .eq. '_') then
+c
+c Placeholder only (for lowering a figure). Don't do anything!
+c
+ continue
+ else
+c
+c Figure is a single number, maybe with s after
+c
+ call addstr(sq//Figutq//nofq(1:lnof)//'{',
+ * 6+lnof,soutq,lsout)
+ ch2q = figq(ic+1:ic+1)
+ if (ch2q .eq. 's') then
+c
+c Use a special character. Insert font call
+c
+ ic = ic+1
+ call addstr(sq//'ligfont',8,soutq,lsout)
+ end if
+ call addstr(ch1q//'}',2,soutq,lsout)
+c call addstr(sq//Figutq//nofq(1:lnof)//'{'//ch1q//'}',
+c * 8+lnof,soutq,lsout)
+ end if
+ if (ic .ge. 10) go to 2
+ ic = ic+1
+ nof = nof+4
+ nofa = nofa+4
+ go to 1
+2 continue
+ if (abs(offnsk) .gt. .0001) then
+ notexq = sq//'off{'
+ if (offnsk .lt. -9.995) then
+ write(notexq(6:11),'(f6.2)')offnsk
+ lnote = 11
+ else if (offnsk.lt.-.995 .or. offnsk.gt.9.995) then
+ write(notexq(6:10),'(f5.2)')offnsk
+ lnote = 10
+ else if (offnsk.lt.-.0001 .or. offnsk.gt..995) then
+ write(notexq(6:9),'(f4.2)')offnsk
+ lnote = 9
+ else
+ write(notexq(6:8),'(f3.2)')offnsk
+ lnote = 8
+ end if
+ notexq = notexq(1:lnote)//sq//'noteskip}'
+ call addstr(notexq,lnote+10,soutq,lsout)
+ end if
+ if (ifig .lt. nfigs(ivx)) then
+ ifig = ifig+1
+ else
+ nfigs(ivx) = 0
+ figcheck = .false.
+ end if
+ return
+ end
+ subroutine putorn(iornq,nolev,nolevm,nodur,nornb,ulq,ibmcnt,ivx,
+ * ncm,islur,nvmx,nv,ihornb,stemlin,outq,lout,ip,islhgt,
+ * beamon,iscrd)
+c
+c All args are individual array element *values* except nornb,ihornb,ulq.
+c notcrd = .true. if ornament is on main note.
+c nolevm is level of main note (for chords)
+c
+ parameter (nm=24)
+ character*1 ulpzq,ulq(nm,9),udqq,sq,chax
+ character*8 noteq
+ character*79 notexq,outq
+ integer*4 ihornb(nm,24),nornb(nm)
+ logical btest,iscrd,usehornb,beamon
+ common /comivxudorn/ivxudorn(63)
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ sq = chax(92)
+ lout = 0
+ usehornb = .false.
+ if (nodur .lt. 64) then
+ stemlen = stemlin
+ else
+ stemlen = 0.
+ end if
+c
+c Get up-downness. ulpzq is opposite from stem direction for both beams and
+c non beams. Can use in name of ornament [ . or _ ]
+c
+ if (beamon) then
+ if (ulq(ivx,ibmcnt) .eq. 'u') then
+ ulpzq = 'l'
+ else
+ ulpzq = 'u'
+ end if
+ else
+ if (udqq(nolevm,ncm,islur,nvmx,ivx,nv).eq.'l' ) then
+ ulpzq = 'u'
+ else
+ ulpzq = 'l'
+ end if
+ end if
+c
+c To enable >1 ornament on a note, next line is top of manual loop.
+c
+2 continue
+c
+c Bit # of last ornament (last of bits 0-21)
+cc Bit # of last ornament (last of bits 0-24)
+ ibit = log2(iand(iornq,4194303))
+c ibit = log2(iand(iornq,33554431))
+ iornt = 2**ibit
+c
+c Begin routine to set height. Bits 0-13: (stmgx+Tupf._)
+c 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n
+c 19-20: >^, 21: ? (with or w/o 16-18)
+c
+c Do not use beam height for . or _
+c
+ if (btest(iornq,22) .and. iand(iornt,6144).eq.0) then
+c
+c Height is set by special beam stuff.
+c Do not leave ihorn set, do separately for every ornament
+c
+ ihorn = ihornb(ivx,nornb(ivx))
+ if (ulpzq .eq. 'u') ihorn = ihorn-2
+c
+c Following flag tells whether to increment nornb when exiting the subroutine.
+c
+ usehornb = .true.
+ else if (ibit .eq. 14) then
+c
+c Down fermata. Don't worry about upper chord notes.
+c
+ if (ulpzq .eq. 'l') then
+ ihorn = min(nolev,ncm-3)
+ else
+ ihorn = min(nolev-stemlen,ncm-3.)
+ end if
+ else if (btest(iornt,13) .or. btest(iornt,0)) then
+c
+c ( or )
+c
+ ihorn = nolev
+ else if (iand(iornt,6144) .gt. 0) then
+c
+cc Staccato . or tenuto _ , but not special beam stuff. Need up-down info
+c NOTE: removed .&_ from special beam treatment.
+c Staccato . or tenuto _ Need up-down info
+c
+ if (.not.iscrd .or. (maxlev.ne.nolev.and.ulpzq.eq.'l') .or.
+ * (minlev.ne.nolev.and.ulpzq.eq.'u')) then
+ ihorn = nolev
+ else if (maxlev .eq. nolev) then
+ ulpzq = 'u'
+ ihorn = max(nolev+stemlen,ncm+3.)
+ else
+ ulpzq = 'l'
+ ihorn = min(nolev-stemlen,ncm-3.)
+ end if
+ else if (iscrd .and. nolev .eq. minlev) then
+ if (ulpzq .eq. 'l') then
+ ihorn = min(nolev-3,ncm-6)
+ else
+ ihorn = min(nolev-nint(stemlen)-3,ncm-6)
+ end if
+ else if (ibit.eq.10 .and. nolev.gt.90) then
+c
+c Special treatment for fermata on a shifted rest
+c
+ ihorn = ncm+5
+ else if (ulpzq.eq.'l') then
+c
+c (iscrd and nolev=maxlev) or (.not.iscrd)
+c
+ ihorn = max(nolev+stemlen+2,ncm+5.)
+ else
+ ihorn = max(nolev+2,ncm+5)
+ end if
+ ioff = 0
+ iclracc = 0
+c
+c Begin routine to set name. Bits 0-13: (stmgx+Tupf._)
+c 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n
+c
+ if (btest(iornt,2)) then
+ notexq = sq//'shake'
+ lnote = 6
+ else if (btest(iornt,3)) then
+ notexq = sq//'mordent'
+ lnote = 8
+ else if (btest(iornt,1)) then
+ notexq = sq//'mtr'
+ lnote = 4
+ else if (btest(iornt,5)) then
+ notexq = sq//'xtr'
+ lnote = 4
+ else if (btest(iornt,6)) then
+ notexq = sq//'ptr'
+ lnote = 4
+ else if (btest(iornt,13)) then
+ notexq = sq//'rpn'
+ lnote = 4
+ else if (btest(iornt,0)) then
+ notexq = sq//'lpn'
+ lnote = 4
+ else if (btest(iornt,12)) then
+ notexq = sq//ulpzq//'st'
+ lnote = 4
+ else if (btest(iornt,11)) then
+ notexq = sq//ulpzq//'pz'
+ lnote = 4
+ else if (btest(iornt,8)) then
+ notexq = sq//'upz'
+ lnote = 4
+ ioff = -2
+ else if (btest(iornt,9)) then
+ notexq = sq//'uppz'
+ lnote = 5
+ ioff = -2
+ else if (btest(iornt,10)) then
+ if (nodur .lt. 48) then
+ notexq = sq//'fermataup'
+ else
+ notexq = sq//'Fermataup'
+ end if
+ lnote = 10
+ ioff = -2
+ else if (btest(iornt,14)) then
+ if (nodur .lt. 48) then
+ notexq = sq//'fermatadown'
+ else
+ notexq = sq//'Fermatadown'
+ end if
+ lnote = 12
+ else if (btest(iornt,21)) then
+c
+c "?" in editorial ornament. Clear bit 16-18 after use, since ibit=21
+c
+ if (btest(iornq,16)) then
+ notexq = sq//'qsharp'
+ lnote = 7
+ ioff = 2
+ iornq = ibclr(iornq,16)
+ iclracc = 16
+ else if (btest(iornq,17)) then
+ notexq = sq//'qflat'
+ lnote = 6
+ ioff = 1
+ iornq = ibclr(iornq,17)
+ iclracc = 17
+ else if (btest(iornq,18)) then
+ notexq = sq//'qnat'
+ lnote = 5
+ ioff = 2
+ iornq = ibclr(iornq,18)
+ iclracc = 18
+ else
+ notexq = sq//'qedit'
+ lnote = 6
+ ioff = 0
+ end if
+ else if (btest(iornt,16)) then
+ notexq = sq//'esharp'
+ lnote = 7
+ ioff = 2
+ else if (btest(iornt,17)) then
+ notexq = sq//'eflat'
+ lnote = 6
+ ioff = 1
+ else if (btest(iornt,18)) then
+ notexq = sq//'enat'
+ lnote = 5
+ ioff = 2
+ else if (btest(iornt,19)) then
+ notexq = sq//'usf'
+ lnote = 4
+ ioff = -2
+ else if (btest(iornt,20)) then
+ notexq = sq//'usfz'
+ lnote = 5
+ ioff = -2
+ end if
+ iudorn = 0
+c
+c User-defined level shift of ornament from default?
+c
+ if (btest(iornq,25)) then
+c
+c Find which (if any) element of kudorn has the shift.
+c
+ do 3 iudorn = 1 , nudorn
+ if (ibit .lt. 21) then
+ ibitt = ibit
+c
+c Could have oes, but not oe? or oes?
+c
+ else if (iclracc .gt. 0) then
+c
+c Earlier cleared edit. accid, meaning it was oes?
+c
+ ibitt = iclracc+6
+ else
+ ibitt = 21
+ end if
+ ibitt=ip+ishft(mod(ivx,16),8)+ishft(nolev,12)+ishft(ibitt,19)
+c if (ibitt .eq. iand(33554431,kudorn(iudorn))) go to 4
+ if (ibitt .eq. iand(33554431,kudorn(iudorn))
+ * .and. ivx.eq.ivxudorn(iudorn)) go to 4
+3 continue
+c
+c Nothing shifted on this note; exit this if block
+c
+ iudorn = 0
+ go to 5
+4 continue
+ ioffinc = iand(63,ishft(kudorn(iudorn),-25))-32
+ if (ibit.eq.19 .and. ioffinc .lt. -7) then
+c
+c Convert usf to lsf. The reason has to do with positioning being impossile
+c for some mysterious reason when you drop \usf below the staff
+c
+ notexq = sq//'lsf'
+ ioffinc = ioffinc+6
+ end if
+ ioff = ioff+ioffinc
+ end if
+5 continue
+c
+c Shift level to avoid slur. Conditions are
+c 1. There is a slur
+c 2. No user-defined orn height shift (btest(iornq,25))
+c 3. upslur (islhgt>0)
+c 4. ornament is not segno(4), ._)(11-13), down ferm(14) or "(" (0) Bin=30737
+c 5. islhgt+3 >= height already computed.
+c
+ if (.not.btest(iornq,25) .and.
+ * islhgt.gt.0 .and. iand(iornt,30737).eq.0)
+ * ioff = ioff+dim(islhgt+3,ihorn )
+ call notefq(noteq,lnoten,ihorn+ioff,ncm)
+ if (lnoten.eq.1) call addblank(noteq,lnoten)
+ if (iand(iornt,32896) .gt. 0) then
+c
+c T-trill or trill w/o "tr"
+c
+ call dotrill(ivx,ip,iornt,noteq,lnoten,notexq,lnote)
+ else
+ notexq = notexq(1:lnote)//noteq(1:lnoten)
+ lnote = lnote+lnoten
+ end if
+ if (iudorn .gt. 0) then
+ if (btest(kudorn(iudorn),31)) then
+c
+c Horizontal shift
+c
+ lform = lfmt1(ornhshft(iudorn))
+ write(noteq(1:lform),'(f'//chax(48+lform)//'.1)')
+ * ornhshft(iudorn)
+ notexq = sq//'roffset{'//noteq(1:lform)//'}{'
+ * //notexq(1:lnote)//'}'
+ lnote = lnote+lform+12
+ ornhshft(iudorn) = 0.
+ kudorn(iudorn) = ibclr(kudorn(iudorn),31)
+ end if
+ end if
+c
+c Zero out the bit for ornament just dealt with.
+c
+ iornq = ibclr(iornq,ibit)
+ if (lout .eq. 0) then
+ outq = notexq(1:lnote)
+ else
+ outq = outq(1:lout)//notexq(1:lnote)
+ end if
+ lout = lout+lnote
+c
+c Check bits 0-21, go back if any are still set
+c
+ if (iand(iornq,4194303) .gt. 0) go to 2
+ if (usehornb) nornb(ivx) = nornb(ivx)+1
+ return
+ end
+ subroutine putshft(ivx,onoff,soutq,lsout)
+ parameter (nm=24)
+ common /comudsp/udsp(50),tudsp(50),nudsp,udoff(nm,20),nudoff(nm)
+ character*80 soutq,notexq
+ character*1 sq,chax
+ logical onoff
+ sq = chax(92)
+c
+c Start user-defined offsets X(...): or X(...)S
+c
+ if (onoff) nudoff(ivx) = nudoff(ivx)+1
+c
+c Xoff is in pts. Round off to nearest .1. Will use at end of shift.
+c
+ xoff = udoff(ivx,nudoff(ivx))
+ xoff = sign(int(10.*abs(xoff)+.5)/10.,xoff)
+ if (.not.onoff) xoff = -xoff
+ if (xoff .lt. -9.95) then
+ ifmt = 5
+ else if (xoff.lt.-.95 .or. xoff.gt.9.95) then
+ ifmt = 4
+ else
+ ifmt = 3
+ end if
+ write(notexq,'(f'//chax(48+ifmt)//'.1)')xoff
+ call addstr(sq//'off{'//notexq(1:ifmt)//'pt}',8+ifmt,
+ * soutq,lsout)
+ return
+ end
+ subroutine puttitle(inhnoh,xnsttop,etatop,sq,etait,etatc,
+ * etacs1,nv,vshrink,sepsymq)
+c
+c Called once per page, at top of page! If vshrink, only called for p.1.
+c Actual titles only allowed on p.1. (set by headlog).
+c 3/18/01: The above comment is probably bogus...can use Tt on later pages.
+c
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /comtitl/ instrq,titleq,compoq,headlog,inskip,ncskip,
+ * inhead
+ common /cominbot/ inbothd
+ character*127 notexq
+ character*120 instrq,titleq,compoq
+ parameter (nm=24)
+ character*1 sq,sepsymq(nm),chax
+ logical headlog,vshrink
+ notexq = sq//'znotes'
+ lenline = 7
+ do 22 iv = 1 , nv-1
+ notexq = notexq(1:lenline)//sepsymq(iv)
+ lenline = lenline+1
+22 continue
+ notexq = notexq(1:lenline)//sq//'zcharnote{'
+ lenline = lenline+11
+ if (.not.headlog) then
+ inhead = inhnoh
+ end if
+ if (vshrink .and. usevshrink) then
+ inhead = 16
+ end if
+ ndig = int(alog10(inhead+.01))+1
+ write(notexq(lenline+1:lenline+ndig+10),'(i'//chax(48+ndig)//
+ * ',a10)')inhead,'}{'//sq//'titles{'
+ lenline = lenline+ndig+10
+c
+c Vertical skip at top of page (\Il) = etatop*glueil. Needed whether
+c headers are present or not.
+c
+ glueil = xnsttop/etatop
+ vskil = etatop*glueil
+ if (vshrink .and. usevshrink) vskil = 2
+ call writflot(vskil,notexq,lenline)
+ if (.not.headlog) then
+ if (islast) write(11,'(a)')notexq(1:lenline)
+ * //'}{}{0}{}{0}{}{0}}'//sq//'en%'
+ else
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ lcq = lenstr(instrq,120)
+ if (lcq .gt. 0) then
+ xitil = etait*glueil
+ if (vshrink .and. usevshrink) xitil = 2
+ notexq = notexq(1:lenline)//instrq(1:lcq)//'}{'
+c
+c Null out instrument once used
+c
+ instrq = ' '
+ lenline = lenline+lcq+2
+ call writflot(xitil,notexq,lenline)
+ else
+ notexq = notexq(1:lenline)//'}{0'
+ lenline = lenline+3
+ end if
+ if (islast) write(11,'(a)')notexq(1:lenline)//'}%'
+ notexq = '{'
+ lenline = 1
+ lcq = lenstr(titleq,120)
+ if (lcq .gt. 0) then
+ notexq = notexq(1:lenline)//titleq(1:lcq)
+ lenline = lenline+lcq
+ else
+ call printl(' ')
+ call printl('WARNING')
+ call printl(
+ * ' In a title block, you have specified instrument and/or')
+ call printl(
+ * ' composer but no title for the piece.')
+ end if
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ xtcil = etatc*glueil
+ lcq = lenstr(compoq,120)
+ if (lcq .eq. 0) xtcil = 2*xtcil
+ if (vshrink .and. usevshrink) xtcil = 2
+ call writflot(xtcil,notexq,lenline)
+ notexq = notexq(1:lenline)//'}{'
+ lenline = lenline+2
+ if (lcq .gt. 0) then
+ notexq = notexq(1:lenline)//compoq(1:lcq)//'}{'
+ lenline = lenline+2+lcq
+c
+c Null out compoq so it does not get written later
+c
+ compoq = ' '
+ xcsil = etacs1*glueil
+ if (vshrink .and. usevshrink) xcsil = 2
+ call writflot(xcsil,notexq,lenline)
+ else
+ notexq = notexq(1:lenline)//'}{0'
+ lenline = lenline+3
+ end if
+ if (islast) write(11,'(a)')notexq(1:lenline)//'}}'//sq//'en%'
+ headlog = .false.
+ end if
+ return
+ end
+ subroutine putxtn(ntupv,iflop,multb,iud,wheadpt,poenom,
+ * nolev1,islope,slfac,xnlmid,islur,lnote,notexq,ncmid,nlnum,
+ * eloff,iup,irest,usexnumt)
+c
+c Places digit for xtuplet.
+c
+ character*1 chax
+ character*8 noteq
+ character*79 notexq
+ logical btest,usexnumt
+ if (iflop.ne.0 .and. multb.gt.0) then
+c
+c Number goes on beam side, move R/L by .5 wheadpt for upper/lower
+c
+ eloff = eloff-0.5*iud*wheadpt/poenom
+c
+c Number goes on beam side, must use beam parameters to set pos'n
+c
+ nlnum = nolev1+islope/slfac*eloff+iup*(multb+8)
+ if (multb .ge. 2) nlnum = nlnum+iup
+ else
+ nlnum = nint(xnlmid-1+3*iud+iflop*11)
+ end if
+ if (.not.btest(islur,31)) then
+c
+c Only print number when wanted. First check vert, horiz offset
+c
+ if (btest(irest,1)) nlnum = nlnum+iand(31,ishft(irest,-2))-16
+ if (btest(irest,7)) eloff = eloff+
+ * (.1*iand(31,ishft(irest,-9))-1.6)*wheadpt/poenom
+ if (.not.usexnumt) then
+ notexq = chax(92)//'xnum{'
+ lnote = 10
+ istrtn = 7
+ else
+ notexq = chax(92)//'xnumt{'
+ lnote = 11
+ istrtn = 8
+ end if
+ if (eloff .lt. 0.995) then
+ write(notexq(istrtn:istrtn+3),'(i1,f3.2)')0,eloff
+ else if (eloff .lt. 9.995) then
+ write(notexq(istrtn:istrtn+3),'(f4.2)')eloff
+ else
+ write(notexq(istrtn:istrtn+4),'(f5.2)')eloff
+ lnote = lnote+1
+ end if
+ call notefq(noteq,lnoten,nlnum,ncmid)
+ notexq = notexq(1:lnote)//'}'//noteq(1:lnoten)
+ lnote = lnote+1+lnoten
+ if (ntupv .lt. 10) then
+ write(notexq(lnote+1:lnote+1),'(i1)')ntupv
+ lnote = lnote+1
+ else
+ notexq = notexq(1:lnote)//'{'
+ write(notexq(lnote+2:lnote+3),'(i2)')ntupv
+ notexq = notexq(1:lnote+3)//'}'
+ lnote = lnote+4
+ end if
+ end if
+ return
+ end
+ subroutine read10(string,lastchar)
+ parameter (maxblks=4000)
+ character*65536 bufq
+ integer*2 lbuf(maxblks)
+ common /inbuff/ ipbuf,ilbuf,nlbuf,lbuf,bufq
+ character*(*) string
+ character*128 lnholdq
+ logical lastchar
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+ if (.not.mplay) then
+ if (ilbuf .gt. nlbuf) go to 999
+ call getbuf(string)
+ return
+999 lastchar = .true.
+ return
+ else
+c
+c Play a macro. Set pointer to first character needed in buffer
+c
+ if (ilmac .eq. il1mac(macnum)) then
+c
+c Getting first line of macro
+c
+ ip1 = ip1mac(macnum)
+ iplmac = ip1-ic1mac(macnum)
+ else if (ilmac .le. il2mac(macnum)) then
+c
+c Beyond first line of macro. Advance line-start pointer.
+c
+ iplmac = iplmac+lbuf(ilmac-1)
+ ip1 = iplmac+1
+ else
+c
+c Beyond last line of macro. Terminate it!
+c
+ mplay = .false.
+ endmac = .true.
+ return
+ end if
+ if (ilmac .eq. il2mac(macnum)) then
+c
+c Getting last line of macro.
+c
+ ip2 = ip2mac(macnum)
+ else
+c
+c Getting line before last line of macro.
+c
+ ip2 = iplmac+lbuf(ilmac)
+ end if
+ if (ip2 .ge. ip1) then
+ string = bufq(ip1:ip2)
+ else
+c
+c Kluge for when macro start is on a line by itself
+c
+ string = ' '
+ end if
+ ilmac = ilmac+1
+ return
+ end if
+ end
+ function readin(lineq,iccount,nline)
+c
+c Reads a piece of setup data from file lineq, gets a new lineq from
+c file 10 (jobname.pmx) and increments nline if needed, passes over
+c comment lines
+c
+ character*128 lineq
+ character*1 durq,chax
+4 if (iccount .eq. 128) then
+1 call getbuf(lineq)
+ nline = nline+1
+ if (lineq(1:1) .eq. '%') go to 1
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 2 iccount = iccount , 127
+ if (lineq(iccount:iccount) .ne. ' ') go to 3
+2 continue
+c
+c If here, need to get a new line
+c
+ iccount = 128
+ go to 4
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(lineq,iccount,durq)
+c
+c Remember that getchar increments iccount, then reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ call stop1()
+ end if
+ icf = i2-i1+49
+ read(lineq(i1:i2),'(f'//chax(icf)//'.0)')readin
+ return
+ end
+ subroutine readmeter(lineq,iccount,mtrnum,mtrden)
+ character*128 lineq
+ character*1 durq,chax
+ if (index(lineq(iccount+1:iccount+3),'/') .eq. 0) then
+c
+c No slashes, so use old method
+c
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. '-') then
+c
+c Negative numerator is used only to printed; signals vertical slash
+c
+ call getchar(lineq,iccount,durq)
+ mtrnum = -(ichar(durq)-48)
+ else if (durq .eq. 'o') then
+c
+c Numerator is EXACTLY 1
+c
+ mtrnum = 1
+ else
+ mtrnum = ichar(durq)-48
+ if (mtrnum .eq. 1) then
+c
+c Numerator is >9
+c
+ call getchar(lineq,iccount,durq)
+ mtrnum = 10+ichar(durq)-48
+ end if
+ end if
+ call getchar(lineq,iccount,durq)
+ if (durq .eq. 'o') then
+ mtrden = 1
+ else
+ mtrden = ichar(durq)-48
+ if (mtrden .eq. 1) then
+ call getchar(lineq,iccount,durq)
+ mtrden = 10+ichar(durq)-48
+ end if
+ end if
+ else
+c
+c Expect the form m[n1]/[n2]/[n3]/[n4] . Advance iccount by one from '/' or 'm'
+c
+ iccount = iccount+1
+ ns = index(lineq(iccount:128),'/')
+ read(lineq(iccount:iccount+ns-2),'(i'//chax(47+ns)//')')mtrnum
+c
+c Reset iccount to start of second integer
+c
+ iccount = iccount+ns
+c
+c There must be either a slash or a blank at pos'n 2 or 3
+c
+ ns = index(lineq(iccount:iccount+2),'/')
+ if (ns .eq. 0) ns = index(lineq(iccount:iccount+2),' ')
+ read(lineq(iccount:iccount+ns-2),'(i'//chax(47+ns)//')')mtrden
+c
+c Set iccount to last character used
+c
+ iccount = iccount+ns-1
+ end if
+ return
+ end
+ subroutine readnum(lineq,iccount,durq,fnum)
+c
+c This reads a number starting at position iccount. Remember that on exit,
+c getchar leaves iccount at the last character retrieved. So must only
+c call this routine *after* detecting a number or decimal.
+c On exit, durq is next character after end of number.
+c
+ character*128 lineq
+ character*1 durq,chax
+ i1 = iccount
+1 call getchar(lineq,iccount,durq)
+ if (index('0123456789.',durq) .gt. 0) go to 1
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ call stop1()
+ else if (lineq(i1:i1).eq.'.'.and.lineq(i2:i2).eq.'.') then
+ i2 = i2-1
+ iccount = iccount-1
+ end if
+ icf = i2-i1+49
+ read(lineq(i1:i2),'(f'//chax(icf)//'.0)')fnum
+ return
+ end
+ subroutine setbits(isdata,iwidbit,ishift,ivalue)
+c
+c Sets iwidbits of isdata, shifted by ishift, to ivalue
+c
+ ibase = 2**iwidbit-1
+ if (ivalue.gt.ibase) then
+ print*
+ print*,'WARNING in setbits: ivalue > ibase'
+ write(15,'(/,a)')'WARNING in setbits: ivalue > ibase'
+ end if
+ isdata = iand(not(ishft(ibase,ishift)),isdata)
+ isdata = ior(isdata,ishft(ivalue,ishift))
+ return
+ end
+ subroutine setbm2(xelsk,nnb,sumx,sumy,ipb,islope,nolev1)
+c
+c The MEAN SQUARE slope algorithm
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,
+ * isfig
+ real*4 xelsk(24)
+ integer ipb(24)
+ ibc = ibmcnt(ivx)
+ sumxx = 0.
+ sumxy = 0.
+ do 2 inb = 1 , nnb
+ sumxx = sumxx+xelsk(inb)**2
+ sumxy = sumxy+xelsk(inb)*nolev(ivx,ipb(inb))
+2 continue
+ delta = nnb*sumxx-sumx*sumx
+ em = (nnb*sumxy-sumx*sumy)/delta
+ islope = nint(0.5*em*slfac)
+ if (iabs(islope) .gt. 9) islope = isign(9,islope)
+ beta = (sumy-islope/slfac*sumx)/nnb
+ nolev1 = nint(beta)
+c
+c Check if any stems are too short
+c
+ smin = 100.
+ iul = -1
+ if (ulq(ivx,ibc) .eq. 'u') iul = 1
+ do 4 inb = 1 , nnb
+ ybeam = nolev1+iul*stemlen+islope*xelsk(inb)/slfac
+ ynote = nolev(ivx,ipb(inb))
+ smin = min(smin,iul*(ybeam-ynote))
+4 continue
+ if (smin .lt. stemmin) then
+ deficit = stemmin-smin
+ nolev1 = nint(nolev1+iul*deficit)
+ end if
+ return
+ end
+ subroutine setmac(lineq,iccount,ibarcnt,ibaroff,nbars,charq,durq,
+ * ivx,nline)
+ character*1 charq,durq
+ common /commac/ macnum,mrecord,mplay,macuse,icchold,lnholdq,endmac
+ logical mrecord,mplay,endmac,btest
+ character*128 lnholdq,lineq
+ common /c1ommac/ ip1mac(20),il1mac(20),ip2mac(20),il2mac(20),
+ * ic1mac(20),ilmac,iplmac
+c
+c Macro action
+c
+ call g1etchar(lineq,iccount,charq)
+ if (charq.eq.'S' .and. ivx.ne.1) then
+ print*
+ print*
+ print*,'*********WARNING*********'
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * '"MS..." only put in parts by scor2prt if in voice #1!')
+ end if
+ if (index('RSP ',charq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Illegal character after "M" (macro)!')
+ call stop1()
+ else if (charq .ne. ' ') then
+c
+c Record or playback a macro. Get the number of the macro.
+c
+ call g1etchar(lineq,iccount,durq)
+ if (index('123456789',durq) .eq. 0) then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Must input number after "MR","MP", or "MS"!')
+ call stop1()
+ end if
+ call readnum(lineq,iccount,durq,fnum)
+ macnum = nint(fnum)
+ if (durq .ne. ' ') then
+ call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1,
+ * 'Macro number must be followed by a blank!')
+ call stop1()
+ end if
+ if (index('RS',charq ).gt. 0) then
+c
+c Record or save a macro
+c
+ if (macnum.lt.1 .or. macnum.gt.20) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Macro number not in range 1-20!')
+ call stop1()
+c else if (btest(macuse,macnum)) then
+c print*
+c print*,'WARNING: Redefining macro # ',macnum
+ end if
+ macuse = ibset(macuse,macnum)
+ if (charq .eq. 'R') then
+ call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ else if (charq .eq. 'S') then
+c
+c Save (Record but don't activate)
+c
+1 call m1rec1(lineq,iccount,ibarcnt,ibaroff,nbars,ndxm)
+ if (mrecord) then
+ call getbuf(lineq)
+ nline = nline+1
+ iccount = 0
+ go to 1
+ end if
+ iccount = iccount+ndxm+1
+ end if
+ else
+c
+c Playback the macro
+c
+ if (.not.btest(macuse,macnum)) then
+ call errmsg(lineq,iccount-1,ibarcnt-ibaroff+nbars+1,
+ * 'Cannot play a macro that has not been recorded!')
+ call stop1()
+ end if
+ icchold = iccount
+ lnholdq = lineq
+ iccount = 128
+ mplay = .true.
+ ilmac = il1mac(macnum)
+ end if
+ end if
+ return
+ end
+ subroutine setmeter(mtrnuml,mtrdenl,ibmtyp,ibmrep)
+c
+c Sets last 2 args depending on 1st 2, (logical) num, denom.
+c ibmtyp = 1, 2, or 3 defines set of masks for beam groupings.
+c 1: all duple meters
+c 2: triple w/ denom=4, subdivide in groups of 2 8ths
+c 3: triple w/ denom=8, subdivide in groups of 3 8ths
+c Note that lenbar is set at top or when 'm' symbol is read in getnote
+c
+ if (mtrdenl .eq. 4) then
+ if (mod(mtrnuml,3) .eq. 0) then
+ ibmtyp = 2
+ ibmrep = mtrnuml/3
+ else
+ ibmtyp = 1
+ ibmrep = mtrnuml/2
+ end if
+ else if (mtrdenl .eq. 2) then
+ ibmtyp = 1
+ if (mtrnuml .eq. 3) then
+ ibmrep = 3
+ else
+ ibmrep = 2*mtrnuml/mtrdenl
+ end if
+ else
+c
+c Assumes mtrdenl=8 and 3/8, 6/8, 9/8, or 12/8
+c
+ ibmtyp = 3
+ ibmrep = mtrnuml/3
+ end if
+c
+c Reset so we don't keep writing new meters
+c
+ mtrnuml = 0
+c
+c Prevent ibmrep=0. Needed for odd bars, e.g. 1/8, where beams don't matter
+c
+ ibmrep = max(ibmrep,1)
+ return
+ end
+ subroutine SetupB(xelsk,nnb,sumx,sumy,ipb,smed,ixrest)
+c
+c The outer combo algorithm
+c
+ parameter (nm=24)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ common /comipl2/ ipl2(nm,200)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,btest,
+ * isfig,vxtup,l1ng,l2ng,bar1syst,drawbm
+ common /comeskz2/ eskz2(nm,200)
+ real*4 slope(800),xelsk(24)
+ integer ipb(24)
+ common /comask/ bar1syst,fixednew,scaldold,
+ * wheadpt,fbar,poenom
+ common /comas1/ naskb,task(40),wask(40),elask(40)
+ common /comxtup/ ixtup,vxtup(nm),ntupv(nm,9),nolev1(nm),
+ * mtupv(nm,9),nxtinbm(nm),
+ * islope(nm),xels11(24),eloff(nm,9),
+ * nssb(nm),issb(nm),lev1ssb(nm,20)
+ common /comdraw/ drawbm(nm)
+ common /combmh/ bmhgt,clefend
+ common /commvl/ nvmx(nm),ivmx(nm,2),ivx
+ common /comtol/ tol
+ ibc = ibmcnt(ivx)
+ nxtinbm(ivx) = 0
+ n1 = ipl2(ivx,ibm1(ivx,ibc))
+c
+c Initialize counters used in this subroutine, and then later during actual
+c beam drawing, to count later segments of single-slope beam groups
+c
+ nssb(ivx) = 0
+ issb(ivx) = 0
+c
+c Set flag for xtup beam starting with rest (no others can start with rest)
+c
+ if (btest(irest(ivx,ipo(n1)),0)) ixrest = 1
+c
+c Figure how many elemskips to each note. Use the list, counting only non-rests.
+c
+ eskz0 = eskz(ivx,ibm1(ivx,ibc))
+ nnb = 0
+ sumx = 0.
+ sumy = 0.
+ ipxt1 = 0
+ iplast = ibm2(ivx,ibc)
+ do 2 ip = ibm1(ivx,ibc) , iplast
+ if (.not.btest(irest(ivx,ip),0)) then
+ nnb = nnb+1
+ ipb(nnb) = ip
+ xelsk(nnb) = eskz(ivx,ip)-eskz0
+ sumx = sumx+xelsk(nnb)
+ sumy = sumy+nolev(ivx,ipb(nnb))
+ if (btest(nacc(ivx,ip),21)) then
+c
+c This is the starting note of later segment of single-slope beam group
+c Temporarily store ip here.
+c
+ nssb(ivx) = nssb(ivx)+1
+ lev1ssb(ivx,nssb(ivx)) = nnb
+ end if
+ end if
+c
+c New xtup stuff here. Final object is to get distance from start of xtup
+c to number. xtinbm counts xtups in this beam only. mtupv is the printed
+c number. ntupv is number of notes in xtup, and is only used to get
+c eloff, the distance from start of xtup to the number.
+c
+ if (btest(nacc(ivx,ip),18)) ndoub = ndoub+1
+ if (ipxt1.eq.0 .and. nodur(ivx,ip).eq.0) then
+c
+c Xtup is starting here
+c
+ nxtinbm(ivx) = nxtinbm(ivx)+1
+ ipxt1 = ip
+ if (btest(nacc(ivx,ip),18)) then
+ ndoub = 1
+ else
+ ndoub = 0
+ end if
+ else if (ipxt1.gt.0 .and. nodur(ivx,ip).gt.0) then
+c
+c Xtup ends here. Set total number of notes in xtup.
+c
+ ntupv(ivx,nxtinbm(ivx)) = ip+1-ipxt1
+c
+c Set printed number for embedded xtup.
+c
+ mtupv(ivx,nxtinbm(ivx)) = ntupv(ivx,nxtinbm(ivx))+ndoub
+c
+c Middle note of xtup if ntupv odd, note to left of gap if even.
+c
+ ipxtmid = (ip+ipxt1)/2
+ eloff(ivx,nxtinbm(ivx)) = eskz2(ivx,ipxtmid)-eskz2(ivx,ipxt1)
+ if (mod(ntupv(ivx,nxtinbm(ivx)),2) .eq. 0)
+ * eloff(ivx,nxtinbm(ivx)) = eloff(ivx,nxtinbm(ivx))+
+ * .5*(eskz2(ivx,ipxtmid+1)-eskz2(ivx,ipxtmid))
+ ipxt1 = 0
+ end if
+2 continue
+c
+c Reset nxtinbm for use as counter as #'s are posted by putxtn(..)
+c
+ nxtinbm(ivx) = 0
+ smed = 0.
+ if (.not.btest(islur(ivx,ipb(1)),2)) then
+c
+c No forced 0 slope
+c
+ if (nnb .eq. 1) go to 6
+ nsc = 0
+ do 5 inb = 1 , nnb-1
+ do 5 jnb = inb+1 , nnb
+ nsc = nsc+1
+ slope(nsc) = (nolev(ivx,ipb(jnb))-nolev(ivx,ipb(inb)))/
+ * (xelsk(jnb)-xelsk(inb))
+ if (abs(slope(nsc)) .lt. 1.e-4) then
+ nsc = nsc+1
+ slope(nsc) = slope(nsc-1)
+ nsc = nsc+1
+ slope(nsc) = slope(nsc-1)
+ end if
+5 continue
+ if (nsc .eq. 1) then
+ smed = slope(1)
+ go to 6
+ end if
+ nscmid = nsc/2+1
+ do 7 i = 1 , nscmid
+ do 7 j = i+1 , nsc
+ if (slope(j) .lt. slope(i)) then
+ t = slope(j)
+ slope(j) = slope(i)
+ slope(i) = t
+ end if
+7 continue
+ smed = slope(nscmid)
+ if (nsc .eq. 2*(nsc/2)) then
+c
+c Even number of slopes in the list, so median is ambiguous
+c
+ if (abs(slope(nscmid-1)) .lt. abs(slope(nscmid))-tol) then
+c
+c Lower-numbered one is truly less in absolute value, so use it
+c
+ smed=slope(nscmid-1)
+ else if (abs(slope(nscmid-1)+slope(nscmid)) .lt. tol) then
+c
+c Two slopes are effectively equal. Take the one with sign of the average
+c
+ sum = 0.
+ do 1 i = 1 , nsc
+ sum = sum+slope(i)
+1 continue
+ smed = sign(smed,sum)
+ end if
+ end if
+6 continue
+ islope(ivx) = nint(0.5*smed*slfac)
+ if (iabs(islope(ivx)) .gt. 9)
+ * islope(ivx) = isign(9,islope(ivx))
+ else
+c
+c Forced horizontal beam
+c
+ islope(ivx) = 0
+ end if
+ beta = (sumy-islope(ivx)/slfac*sumx)/nnb
+c
+c If ixrest>0, this is a virtual nolev1 at location of rest. Will first use
+c as is for placing xtup number and/or bracket, then reset it for start of
+c actual beam
+c
+ nolev1(ivx) = nint(beta)
+c
+c Check if any stems are too short
+c
+ smin = 100.
+ iul = -1
+ if (ulq(ivx,ibc) .eq. 'u') iul = 1
+ ssq = 0.
+ syb = 0.
+c yb1 = nolev1(ivx)+iul*(stemlen+bmhgt*(mult(ivx,ipb(1))-1))
+ yb1 = nolev1(ivx)
+ * +iul*(stemlen+bmhgt*(iand(15,mult(ivx,ipb(1)))-8-1))
+ do 4 inb = 1 , nnb
+ ybeam = yb1+islope(ivx)*xelsk(inb)/slfac
+c * -iul*bmhgt*(mult(ivx,ipb(inb))-1)
+ * -iul*bmhgt*(iand(15,mult(ivx,ipb(inb)))-8-1)
+ syb = syb+ybeam
+ ynote = nolev(ivx,ipb(inb))
+ off = ybeam-ynote
+ if (inb .eq. 1) then
+ off1 = off
+ else if (inb .eq. nnb) then
+ off2 = off
+ end if
+ ssq = ssq+off*off
+ smin = min(smin,iul*off)
+4 continue
+ dnolev = 0.
+ if (smin .lt. stemmin) then
+ deficit = stemmin-smin
+ nolevo = nolev1(ivx)
+ nolev1(ivx) = nint(nolev1(ivx)+iul*deficit)
+ dnolev = nolev1(ivx)-nolevo
+ off1 = off1+dnolev
+ off2 = off2+dnolev
+ end if
+ ssq = ssq+2*dnolev*(syb-sumy)+dnolev**2
+ if (.not.vxtup(ivx) .and. sqrt(ssq/nnb) .gt. stemmax .and.
+ * (abs(off1).lt.stemmax .or. abs(off2).lt.stemmax)
+ * .and. .not.btest(islur(ivx,ipb(1)),2)) then
+c
+c The first check is to save trouble of putting xtup's in setbm2.
+c The penultimate check is that first and last stems aren't both excessive.
+c The last check is that a 0 slope has not been forced
+c
+ call setbm2(xelsk,nnb,sumx,sumy,ipb,islope(ivx),nolev1(ivx))
+ end if
+c
+c Check if beam starts or ends too high or low.
+c
+c xboff = bmhgt*(mult(ivx,ipb(1))-1)
+ xboff = bmhgt*(iand(15,mult(ivx,ipb(1)))-8-1)
+ l1ng = iul*(nolev1(ivx)-ncmid(iv,ipb(1)))+xboff+7 .lt. 0.
+ xnolev2 = nolev1(ivx)+islope(ivx)/slfac*xelsk(nnb)
+ l2ng = iul*(xnolev2-ncmid(iv,ipb(nnb)))+xboff+7 .lt. 0
+ if (l1ng .or. l2ng) then
+c
+c Need to correct start or stop, also slope
+c
+ if (l1ng) then
+ nolev1(ivx) = nint(ncmid(iv,ipb(1))-(7.+xboff)*iul)
+ end if
+ if (l2ng) then
+ xnolev2 = nint(ncmid(iv,ipb(nnb))-(7.+xboff)*iul)
+ end if
+c
+c Since one or the other end has changed, need to change slope
+c
+ if (.not.btest(islur(ivx,ipb(1)),2))
+ * islope(ivx) = nint(slfac*(xnolev2-nolev1(ivx))/xelsk(nnb))
+ end if
+ if (nssb(ivx) .gt. 0) then
+c
+c This is a single-slope beam group. Store start heights for later segs.
+c
+ do 3 issbs = 1 , nssb(ivx)
+ lev1ssb(ivx,issbs) = nolev1(ivx)+islope(ivx)/slfac*
+ * xelsk(lev1ssb(ivx,issbs))
+3 continue
+ end if
+ return
+ end
+ subroutine sortpoe(nsyst,poe,ipoe)
+ parameter (nks=125)
+ real*4 poe(nks)
+ integer*4 ipoe(nks)
+c
+c Initialize ipoe:
+c
+ do 3 iord = 1 , nsyst
+ ipoe(iord) = iord
+3 continue
+c
+c Construct ipoe vector with pairwise interchanges. When done, ipoe(1) will
+c be index of smallest poe, and ipoe(nsyst) will be index of biggest poe.
+c
+ do 4 io1 = 1 , nsyst-1
+ do 5 io2 = io1+1 , nsyst
+ if (poe(ipoe(io1)) .gt. poe(ipoe(io2))) then
+c
+c Interchange the indices
+c
+ itemp = ipoe(io1)
+ ipoe(io1) = ipoe(io2)
+ ipoe(io2) = itemp
+ end if
+5 continue
+4 continue
+ return
+ end
+ subroutine spsslur(lineq,iccount,iv,kv,ip,isdat1,isdat2,isdat3,
+ * isdat4,nsdat,notcrd,nolev,starter)
+ parameter (nm=24)
+c
+c Reads in slur data. Record all h/v-shifts for non-chords, user-specified
+c ones for chords.
+c 5/26/02 This subr is called ONLY for postscript slurs.
+c
+c See subroutine doslur for bit values in isdat1,2,3
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ integer*4 isdat1(202),isdat2(202),isdat3(202),isdat4(202)
+ logical notcrd,btest
+ character*128 lineq
+ character*1 durq,dumq,starter
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical upslur,fontslur,WrotePsslurDefaults
+c
+c Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve
+c
+ numint = 0
+ ivoff = 0
+ ihoff = 0
+ nsdat = nsdat+1
+ if (starter.eq.'{' .or. starter.eq.'}')
+ * isdat2(nsdat)=ibset(isdat2(nsdat),3)
+ call setbits(isdat1(nsdat),5,13,iv)
+ call setbits(isdat1(nsdat),1,12,kv-1)
+ call setbits(isdat1(nsdat),8,3,ip)
+ isdat3(nsdat) = 0
+ isdat4(nsdat) = 0
+ ilb12 = 0 ! flag for tweaks of 1st or 2nd (0|1) seg of linebreak slur
+c
+c Get ID code
+c
+ call getchar(lineq,iccount,durq)
+ if (index('uldtb+-hfnHps ',durq) .gt. 0) then
+c
+c Null id. Note for ps slurs, 'H' cannot be an ID
+c
+ iccount = iccount-1
+ if (lineq(iccount:iccount) .eq. 't') then
+ idcode = 1
+ else
+ idcode = 32
+ end if
+ else
+c
+c Set explicit idcode
+c
+ idcode = ichar(durq)
+ if (lineq(iccount-1:iccount-1) .eq. 't') then
+c
+c Make t[ID] look like s[ID]t
+c
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ end if
+ end if
+ call setbits(isdat1(nsdat),7,19,idcode)
+c
+c Set start/stop: look thru list from end for same idcode,iv,kv
+c
+ do 2 isdat = nsdat-1 , 1 , -1
+ if (idcode .eq. igetbits(isdat1(isdat),7,19) .and.
+ * iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * kv-1 .eq. igetbits(isdat1(isdat),1,12)) then
+c
+c Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0.
+c
+ if (btest(isdat1(isdat),11)) go to 3
+c
+c Found slur is a turnoff, so new one is a turnon. Jump down to set bit
+c
+ go to 4
+ end if
+2 continue
+c
+c If here, this is turnon.
+c
+4 continue
+ isdat1(nsdat) = ibset(isdat1(nsdat),11)
+3 continue
+c
+c Now done with initial turnon- or turnoff-specifics.
+c
+ if (nint(SlurCurve).ne.0 .and. btest(isdat1(nsdat),11)) then
+c
+c There's a default curvature tweak
+c
+ icurv1 = nint(SlurCurve)+3
+ if (icurv1 .eq. 2) icurv1 = 1
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ end if
+c
+c Loop for rest of input
+c
+1 call getchar(lineq,iccount,durq)
+ if (index('uld',durq) .gt. 0) then
+c
+c Force direction
+c
+ isdat1(nsdat) = ibset(isdat1(nsdat),26)
+ if (durq .eq. 'u') isdat1(nsdat) = ibset(isdat1(nsdat),27)
+ go to 1
+ else if (index('+-',durq) .gt. 0) then
+ numint = numint+1
+ if (numint .eq. 1) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+ ivoff = nint(fnum)
+ if (durq .eq. '-') ivoff = -ivoff
+ else if (numint .eq. 2) then
+c
+c Horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+c
+c fnum is abs(hshift), must be 0 to 6.3
+c
+ ihoff = fnum*10 + .5
+ if (durq .eq. '-') ihoff = -ihoff
+c
+c Later will set bits to 1...127 to represent -6.3,...+6.3
+c
+ else
+c
+c Must be the 3rd signed integer, so it's a curve specification
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ icurv1 = nint(fnum)
+ if (durq .eq. '-') icurv1 = -icurv1
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ if (dumq .ne. ':') then
+c
+c Back up the pointer and loop for more input
+c
+ iccount = iccount-1
+ else
+c
+c Expect two single digits as parameters for curve
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),1)
+ call setbits(isdat3(nsdat),3,8,
+ * ichar(lineq(iccount+1:iccount+1))-48)
+ call setbits(isdat3(nsdat),3,11,
+ * ichar(lineq(iccount+2:iccount+2))-48)
+ iccount = iccount+2
+ end if
+ end if
+ go to 1
+ else if (durq .eq. 't') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ go to 1
+ else if (durq .eq. 'b') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),4)
+ go to 1
+ else if (durq .eq. 's') then
+c
+c Endpoint tweaks for linebreak slurs.
+c
+ call getchar(lineq,iccount,durq) ! Must be +|-
+c
+c Next is vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ if (durq .eq. '-') fnum=-fnum
+ call setbits(isdat4(nsdat),6,ilb12*16,nint(fnum)+32)
+ if (index('+-',dumq) .gt. 0) then
+c
+c Also a horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,durq,fnum)
+ if (dumq .eq. '-') fnum=-fnum
+ call setbits(isdat4(nsdat),7,ilb12*16+6,nint(10*fnum)+64)
+ end if
+ iccount = iccount-1
+ ilb12 = 1
+ go to 1
+ else if (index('fnhH',durq).gt.0) then
+c
+c Special ps slur curvatures.
+c Translate to old \midslur args (1,4,5,6)
+c
+ icurv1 = index('fnxhH',durq)
+ if (icurv1 .eq. 5) then
+c
+c check for 2nd H
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount = iccount+1
+ icurv1 = 6
+ end if
+ end if
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ go to 1
+ else if (durq .eq. 'p') then ! Local adjustment
+ call getchar(lineq,iccount,durq) ! +|-
+ call getchar(lineq,iccount,dumq) ! s|t
+c 26 \sluradjust (p+s)
+c 27 \nosluradjust (p-s)
+c 28 \tieadjust (p+t)
+c 29 \notieadjust (p-t)
+ if (durq .eq. '+') then
+ if (dumq .eq. 's') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),26)
+ else
+ isdat2(nsdat) = ibset(isdat2(nsdat),28)
+ end if
+ else
+ if (dumq .eq. 's') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),27)
+ else
+ isdat2(nsdat) = ibset(isdat2(nsdat),29)
+ end if
+ end if
+ go to 1
+ end if
+c
+c Record shifts
+c
+ call setbits(isdat2(nsdat),6, 6,ivoff+32)
+ call setbits(isdat2(nsdat),7,12,ihoff+64)
+c
+c Record chord flag, note level, notehead shift
+c
+ if (notcrd) then
+ call setbits(isdat2(nsdat),7,19,nolev)
+ else
+ nolevc = igetbits(icrdat(ncrd),7,12)
+ call setbits(isdat2(nsdat),7,19,nolevc)
+ isdat2(nsdat) = ibset(isdat2(nsdat),0)
+ call setbits(isdat2(nsdat),2,1,igetbits(icrdat(ncrd),2,23))
+ end if
+ return
+ end
+ subroutine sslur(lineq,iccount,iv,kv,ip,isdat1,isdat2,isdat3,
+ * nsdat,notcrd,nolev,starter)
+ parameter (nm=24)
+c
+c Reads in slur data. Record all h/v-shifts for non-chords, user-specified
+c ones for chords.
+c 5/26/02 now only for non-postscript slurs, use spsslur() for postscript
+c
+c See subroutine doslur for bit values in isdat1,2,3
+c
+ common /comtrill/ ntrill,ivtrill(24),iptrill(24),xnsktr(24),
+ * ncrd,icrdat(193),icrdot(193),icrdorn(193),nudorn,
+ * kudorn(63),ornhshft(63),minlev,maxlev,icrd1,icrd2
+ integer*4 isdat1(202),isdat2(202),isdat3(202)
+ logical notcrd,btest
+ character*128 lineq
+ character*1 durq,dumq,starter
+ common /comslur/ listslur,upslur(nm,2),ndxslur,fontslur
+ * ,WrotePsslurDefaults,SlurCurve
+ logical upslur,fontslur,WrotePsslurDefaults
+c
+c Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve
+c
+ numint = 0
+ ivoff = 0
+ ihoff = 0
+ nsdat = nsdat+1
+ if (starter.eq.'{' .or. starter.eq.'}')
+ * isdat2(nsdat)=ibset(isdat2(nsdat),3)
+ call setbits(isdat1(nsdat),5,13,iv)
+ call setbits(isdat1(nsdat),1,12,kv-1)
+ call setbits(isdat1(nsdat),8,3,ip)
+ isdat3(nsdat) = 0
+c
+c Get id letter
+c
+ if (lineq(iccount:iccount) .eq. 't') then
+c
+c Old-style t-slur. Use special idcode = 1
+c
+ idcode = 1
+ else
+ call getchar(lineq,iccount,durq)
+ if (index('uldtb+-hf ',durq) .gt. 0) then
+c
+c Null id
+c
+ idcode = 32
+ iccount = iccount-1
+ else if (durq.eq.'H') then
+c
+c Postscript slur, cannot use 'H' as code, must check for 2nd 'H'
+c
+ idcode = 32
+ iccount = iccount-1
+c
+c There may be another "H", but no need to deal with it yet
+c
+ else
+c
+c Set explicit idcode
+c
+ idcode = ichar(durq)
+ end if
+ end if
+ call setbits(isdat1(nsdat),7,19,idcode)
+c
+c Set start/stop: look thru list from end for same idcode,iv,kv
+c
+ do 2 isdat = nsdat-1 , 1 , -1
+ if (idcode .eq. igetbits(isdat1(isdat),7,19) .and.
+ * iv .eq. igetbits(isdat1(isdat),5,13) .and.
+ * kv-1 .eq. igetbits(isdat1(isdat),1,12)) then
+c
+c Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0.
+c
+ if (btest(isdat1(isdat),11)) go to 3
+c
+c Found slur is a turnoff, so new one is a turnon. Jump down to set bit
+c
+ go to 4
+ end if
+2 continue
+c
+c If here, this is turnon.
+c
+4 continue
+ isdat1(nsdat) = ibset(isdat1(nsdat),11)
+3 continue
+c
+c Now done with initial turnon- or turnoff-specifics. Loop for rest of input
+c
+1 call getchar(lineq,iccount,durq)
+ if (index('uld',durq) .gt. 0) then
+c
+c Force direction
+c
+ isdat1(nsdat) = ibset(isdat1(nsdat),26)
+ if (durq .eq. 'u') isdat1(nsdat) = ibset(isdat1(nsdat),27)
+ go to 1
+ else if (index('+-',durq) .gt. 0) then
+ numint = numint+1
+ if (numint .eq. 1) then
+c
+c Vertical offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+ ivoff = nint(fnum)
+ if (durq .eq. '-') ivoff = -ivoff
+ else if (numint .eq. 2) then
+c
+c Horizontal offset
+c
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ iccount = iccount-1
+c
+c fnum is abs(hshift), must be 0 to 6.3
+c
+ ihoff = fnum*10 + .5
+ if (durq .eq. '-') ihoff = -ihoff
+c
+c Later will set bits to 1...127 to represent -6.3,...+6.3
+c
+ else
+c
+c Must be the 3rd signed integer, so it's a curve specification
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+ iccount = iccount+1
+ call readnum(lineq,iccount,dumq,fnum)
+ icurv1 = nint(fnum)
+ if (durq .eq. '-') icurv1 = -icurv1
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ if (dumq .ne. ':') then
+c
+c Back up the pointer and loop for more input
+c
+ iccount = iccount-1
+ else
+c
+c Expect two single digits as parameters for curve
+c
+ isdat3(nsdat) = ibset(isdat3(nsdat),1)
+ call setbits(isdat3(nsdat),3,8,
+ * ichar(lineq(iccount+1:iccount+1))-48)
+ call setbits(isdat3(nsdat),3,11,
+ * ichar(lineq(iccount+2:iccount+2))-48)
+ iccount = iccount+2
+ end if
+ end if
+ go to 1
+ else if (durq .eq. 't') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),3)
+ go to 1
+ else if (durq .eq. 'b') then
+ isdat2(nsdat) = ibset(isdat2(nsdat),4)
+ go to 1
+ else if (index('fhH',durq) .gt. 0) then
+c
+c Special ps slur curvatures. Translate to old \midslur args (1,4,5,6)
+c
+ icurv1 = 2+index('fhH',durq)
+ if (icurv1 .eq. 3) then
+ icurv1 = 1
+ else if (icurv1 .eq. 5) then
+c
+c check for 2nd H
+c
+ if (lineq(iccount+1:iccount+1) .eq. 'H') then
+ iccount = iccount+1
+ icurv1 = 6
+ end if
+ end if
+ isdat3(nsdat) = ibset(isdat3(nsdat),0)
+c
+c Must change sign if downslur, but cannot do it now since we don't know
+c slur direction for sure.
+c
+ call setbits(isdat3(nsdat),6,2,32+icurv1)
+ go to 1
+ end if
+c
+c Record shifts
+c
+ call setbits(isdat2(nsdat),6, 6,ivoff+32)
+ call setbits(isdat2(nsdat),7,12,ihoff+64)
+c
+c Record chord flag, note level, notehead shift
+c
+ if (notcrd) then
+ call setbits(isdat2(nsdat),7,19,nolev)
+ else
+ nolevc = igetbits(icrdat(ncrd),7,12)
+ call setbits(isdat2(nsdat),7,19,nolevc)
+ isdat2(nsdat) = ibset(isdat2(nsdat),0)
+ call setbits(isdat2(nsdat),2,1,igetbits(icrdat(ncrd),2,23))
+ end if
+ return
+ end
+ subroutine stop1()
+ call exit(1)
+ end
+ subroutine topfile(basenameq,lbase,nv,clefq,noinst,musicsize,
+ * xinstf1,mtrnmp,mtrdnp,vshrink,fbar,fontslur)
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink,fontslur
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ common /comarp/ narp,tar(8),ivar1(8),ipar1(8),levar1(8),ncmar1(8),
+ * xinsnow,lowdot
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ character*79 inameq
+ character*44 basenameq
+ character*24 fmtq
+ character*5 fbarq
+ character*1 clefq(nm),sq,chax
+ common /comstart/ facmtr
+ logical vshrink,lowdot,rename
+ logical novshrinktop,cstuplet
+ common /comnvst/ novshrinktop,cstuplet
+ common /comInstTrans/ iInstTrans(nm),iTransKey(nm),iTransAmt(nm),
+ * instno(nm),nInstTrans,EarlyTransOn,LaterInstTrans
+ logical EarlyTransOn,LaterInstTrans
+ common /comsize/ isize(nm)
+ sq = chax(92)
+ vshrink = xinstf1.gt.20. .and. .not.novshrinktop
+ if (vshrink) then
+ xinsnow = 10.
+ else
+ xinsnow = xinstf1
+ end if
+ if (.not.islast) return
+ write(11,'(a)')'%%%%%%%%%%%%%%%%%'
+ write(11,'(a)')'%'
+ write(11,'(a)')'% '//basenameq(1:lbase)//'.tex'
+ write(11,'(a)')'%'
+ write(11,'(a)')'%%%%%%%%%%%%%%%%'
+ write(11,'(a)')sq//'input musixtex'
+ write(11,'(a)')sq//'input pmx'
+c write(11,'(a)')sq//'input musixmad'
+c write(11,'(a)')sq//'input musixxad'
+ write(11,'(a)')
+ * sq//'setmaxslurs{24}'//sq//'setmaxinstruments{24}%'
+ if (.not.fontslur) write(11,'(a)')sq//'input musixps'
+c
+c Need to input musixmad to permit more slurs.
+c
+ if (musicsize .eq. 20) then
+ write(11,'(a)')sq//'normalmusicsize%'
+ else if (musicsize .eq. 16) then
+ write(11,'(a)')sq//'smallmusicsize%'
+ else if (musicsize .eq. 24) then
+ write(11,'(a)')sq//'largemusicsize%'
+ write(11,'(a)')sq//'def'//sq//'meterfont{'//sq//
+ * 'meterlargefont}%'
+ else if (musicsize .eq. 29) then
+ write(11,'(a)')sq//'Largemusicsize%'
+ write(11,'(a)')sq//'def'//sq//'meterfont{'//sq//
+ * 'meterLargefont}%'
+ end if
+c
+c Set sizes. Have sizes per staff in isize(.) and noinst per staff in
+c nsperi(.)
+c
+ iiv = 1
+ do 5 iinst = 1 , noinst
+ if (isize(iiv) .eq. 1) then
+ if(iinst.le.9) then
+ write(11,'(a8,i1,a)')
+ * sq//'setsize',iinst,sq//'smallvalue%'
+ else
+ write(11,'(a9,i2,a)')
+ * sq//'setsize{',iinst,'}'//sq//'smallvalue%'
+ end if
+ else if (isize(iiv) .eq. 2) then
+ if(iinst.le.9) then
+ write(11,'(a8,i1,a)')
+ * sq//'setsize',iinst,sq//'tinyvalue%'
+ else
+ write(11,'(a9,i2,a)')
+ * sq//'setsize{',iinst,'}'//sq//'tinyvalue%'
+ end if
+ end if
+ iiv = iiv+nsperi(iinst)
+5 continue
+c
+c do 5 iiv = 1 , nv
+c if (isize(iiv) .eq. 1) then
+c if(iiv.le.9) then
+c write(11,'(a8,i1,a)')
+c * sq//'setsize',iiv,sq//'smallvalue%'
+c else
+c write(11,'(a9,i2,a)')
+c * sq//'setsize{',iiv,'}'//sq//'smallvalue%'
+c end if
+c else if (isize(iiv) .eq. 2) then
+c if(iiv.le.9) then
+c write(11,'(a8,i1,a)')
+c * sq//'setsize',iiv,sq//'tinyvalue%'
+c else
+c write(11,'(a9,i2,a)')
+c * sq//'setsize{',iiv,'}'//sq//'tinyvalue%'
+c end if
+c end if
+c5 continue
+c
+ write(fbarq,'(f5.3)')fbar
+ write(11,'(a)')sq//'nopagenumbers'
+ write(11,'(a)')sq//'tracingstats=2'//sq//'relax'
+ write(11,'(a7,i3,a2)')sq//'hsize=',nint(widthpt),'pt'
+ write(11,'(a6,i'//chax(49+int(log10(height+.1)))//',a2)')
+ * sq//'vsize',int(height+.1),'pt'
+ if (abs(hoffpt) .gt. 0.1) then
+ if (hoffpt .le. -10.) then
+ write(11,'(a8,i3,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ else if (hoffpt .lt. 0.) then
+ write(11,'(a8,i2,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ else if (hoffpt .lt. 10.) then
+ write(11,'(a8,i1,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ else
+ write(11,'(a8,i2,a2)')sq//'hoffset',nint(hoffpt),'pt'
+ end if
+ end if
+ if (abs(voffpt) .gt. 0.1) then
+ if (voffpt .le. -10.) then
+ write(11,'(a8,i3,a2)')sq//'voffset',nint(voffpt),'pt'
+ else if (voffpt .lt. 0.) then
+ write(11,'(a8,i2,a2)')sq//'voffset',nint(voffpt),'pt'
+ else if (voffpt .lt. 10.) then
+ write(11,'(a8,i1,a2)')sq//'voffset',nint(voffpt),'pt'
+ else
+ write(11,'(a8,i2,a2)')sq//'voffset',nint(voffpt),'pt'
+ end if
+ end if
+c
+c The default raisebarno=3.5 internote, set in pmx.tex. Increase to 4.5 if
+c 3 sharps and treble clef, to avoid vertical clash with top space g#
+c
+ if (isig.eq.3 .and. clefq(nv).eq.'t') write(11,'(a)')
+ * sq//'def'//sq//'raisebarno{4.5'//sq//'internote}'
+ if (noinst .lt. 10) then
+ write(11,'(a19,i1,a1)')sq//'def'//sq//'nbinstruments{',
+ * noinst,'}'
+ else
+ write(11,'(a19,i2,a1)')sq//'def'//sq//'nbinstruments{',
+ * noinst,'}'
+ end if
+ iv = 0
+ do 1 iinst = 1 , noinst
+ nstaves = nsperi(iinst)
+ if (iinst .lt. 10) then
+ write(11,'(a)')sq//'setstaffs'//chax(48+iinst)
+ * //chax(48+nstaves)
+ else
+ write(11,'(a11,i2,a)')sq//'setstaffs{',iinst,'}'
+ * //chax(48+nstaves)
+ end if
+ iv = iv+1
+ if (nstaves .eq. 1) then
+ fmtq = chax(48+numclef(clefq(iv)))
+ lfmtq = 1
+ else
+ fmtq = '{'//chax(48+numclef(clefq(iv)))
+ lfmtq = 2
+ do 2 k = 2 , nstaves
+ iv = iv+1
+ fmtq = fmtq(1:lfmtq)//chax(48+numclef(clefq(iv)))
+ lfmtq = lfmtq+1
+2 continue
+ fmtq = fmtq(1:lfmtq)//'}'
+ lfmtq = lfmtq+1
+ end if
+ if (iinst .lt. 10) then
+ write(11,'(a)')sq//'setclef'//chax(48+iinst)//fmtq(1:lfmtq)
+ else
+ write(11,'(a9,i2,a)')sq//'setclef{',iinst,'}'//fmtq(1:lfmtq)
+ end if
+ do 3 lname = 79 , 2 , -1
+ if (inameq(iinst)(lname:lname) .ne. ' ') go to 4
+3 continue
+4 continue
+ lnam(iinst) = lname
+ if (iinst .lt. 10) then
+ write(11,'(a8,i1,a)')sq//'setname',iinst,
+ * '{'//inameq(iinst)(1:lname)//'}'
+ else
+ write(11,'(a9,i2,a)')sq//'setname{',iinst,
+ * '}{'//inameq(iinst)(1:lname)//'}'
+ end if
+1 continue
+ write(11,'(a18,i2,a2)')sq//'generalsignature{',isig,'}%'
+ if (EarlyTransOn)
+ * call Writesetsign(nInstTrans,iInstTrans,iTransKey,EarlyTransOn)
+ call wgmeter(mtrnmp,mtrdnp)
+ ipi = nint(fracindent*widthpt)
+ if (ipi .lt. 10) then
+ write(11,'(a11,i1,a2)')sq//'parindent ',ipi,'pt'
+ else if (ipi .lt. 100) then
+ write(11,'(a11,i2,a2)')sq//'parindent ',ipi,'pt'
+ else
+ write(11,'(a11,i3,a2)')sq//'parindent ',ipi,'pt'
+ end if
+ write(11,'(a)')sq//'elemskip1pt'//sq//'afterruleskip'
+ * //fbarq//'pt'//sq//'beforeruleskip0pt'//sq//'relax'
+ if (.not.vshrink) then
+ if (xinstf1 .lt. 9.95) then
+ fmtq = '(a,f3.1,a)'
+ else
+ fmtq = '(a,f4.1,a)'
+ end if
+ write(11,fmtq)sq//'stafftopmarg0pt'//sq//'staffbotmarg0pt'
+ * //sq//'interstaff{',xinstf1,'}'//sq//'relax'
+ else
+ write(11,'(a)')sq//'stafftopmarg0pt'//
+ * sq//'staffbotmarg5'//sq//'Interligne'//sq//
+ * 'interstaff{10}'//sq//'relax'
+ end if
+ if (nv.eq.1) write(11,'(a)')sq//'nostartrule'
+ write(11,'(a)')sq//'readmod{'//basenameq(1:lbase)//'}'
+ if (cstuplet) then
+ write(11,'(a)')sq//'input tuplet'
+ * //sq//'def'//sq//'xnumt#1#2#3{'//sq//'zcharnote{#2}{~}'
+ * //sq//'def'//sq//'tuplettxt{'//sq//'smalltype'//sq//'it{#3}'
+ * //sq//'/'//sq//'/}}%'
+ write(11,'(a)')sq//'let'//sq//'ovbkt'//sq//'uptuplet'
+ * //sq//'let'//sq//'unbkt'//sq//'downtuplet%'
+ end if
+ write(11,'(a)')sq//'startmuflex'//sq//'startpiece'//sq//
+ * 'addspace'//sq//'afterruleskip%'
+ return
+ end
+ character*1 function udfq(nolev,ncm)
+c
+c Slur directions
+c
+ common /combc/ bcspec
+ logical bcspec
+ ntest = nolev-ncm
+ if (ntest.lt.0 .or.
+ * (ntest.eq.0 .and. bcspec .and. ncm.eq.23) ) then
+ udfq = 'd'
+ else
+ udfq = 'u'
+ end if
+ return
+ end
+ character*1 function udqq(nole,ncm,isl,nvmx,ivx,nv)
+c
+c Stem direction for single notes
+c
+ character*1 ulfq
+ character*1 udqqq
+ logical btest
+ if (btest(isl,30)) then
+c
+c Absolute override
+c
+ if (btest(isl,17)) then
+ udqqq = 'u'
+ else
+ udqqq = 'l'
+ end if
+ else if (nvmx .eq. 1) then
+c
+c Single voice per staff, default
+c
+ udqqq = ulfq(1.*nole,ncm)
+ else
+c
+c Multi-voice per staff, 1st is lower, 2nd upper
+c
+ if (ivx .le. nv) then
+ udqqq = 'l'
+ else
+ udqqq = 'u'
+ end if
+ end if
+ udqq = udqqq
+ return
+ end
+ character*1 function ulfq(xnolev,ncm)
+c
+c Stem directions
+c
+ common /combc/ bcspec
+ logical bcspec
+ test = xnolev-ncm
+ if (test.lt.-.001 .or.
+ * (test.lt..001.and.bcspec.and.ncm.eq.23) ) then
+ ulfq = 'u'
+ else
+ ulfq = 'l'
+ end if
+ return
+ end
+ function upcaseq(chq)
+ character*1 chq,upcaseq,chax
+ if (ichar(chq).ge.61.and.ichar(chq).lt.122) then
+ upcaseq = chax(ichar(chq)-32)
+ else
+ upcaseq = chq
+ print*,'Warning, upcaseq was called with improper argument: '
+ * //chq
+ stop
+ end if
+ return
+ end
+ subroutine wgmeter(mtrnmp,mtrdnp)
+c
+c Writes meter stuff to file 11, so only called if islast=.true.
+c
+ character*1 sq,chax
+ if (mtrdnp .eq. 0) return
+ sq=chax(92)
+ if (mtrnmp.gt.0 .and. mtrnmp.le.9) then
+ if (mtrdnp .lt. 10) then
+ write(11,'(a25,i1,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ else
+ write(11,'(a25,i1,a2,i2,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ end if
+ else if (mtrnmp .ge. 10) then
+ if (mtrdnp .lt. 10) then
+ write(11,'(a25,i2,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ else
+ write(11,'(a25,i2,a2,i2,a3)')
+ * sq//'generalmeter{'//sq//'meterfrac{',
+ * mtrnmp,'}{',mtrdnp,'}}%'
+ end if
+ else if (mtrnmp .lt. 0) then
+ write(11,'(a26,i1,a2,i1,a3)')
+ * sq//'generalmeter{'//sq//'meterfracS{',
+ * -mtrnmp,'}{',mtrdnp,'}}%'
+ else if (mtrdnp .le. 4) then
+ write(11,'(a21,i1,a2)')
+ * sq//'generalmeter{'//sq//'meterN',mtrdnp,'}%'
+ else if (mtrdnp .eq. 5) then
+ write(11,'(a)')sq//'generalmeter'//sq//'allabreve%'
+ else if (mtrdnp .eq. 6) then
+ write(11,'(a)')sq//'generalmeter'//sq//'meterC%'
+ else if (mtrdnp .eq. 7) then
+ write(11,'(a)')sq//'generalmeter'//sq//'meterIIIS%'
+ end if
+ return
+ end
+ subroutine writemidi(jobname,ljob)
+ parameter(nm=24,mv=24576)
+ common /all/ mult(nm,200),iv,nnl(nm),nv,ibar,
+ * ivxo(600),ipo(600),to(600),tno(600),tnote(600),eskz(nm,200),
+ * ipl(nm,200),ibm1(nm,9),ibm2(nm,9),nolev(nm,200),ibmcnt(nm),
+ * nodur(nm,200),jn,lenbar,iccount,nbars,itsofar(nm),nacc(nm,200),
+ * nib(nm,15),nn(nm),lenb0,lenb1,slfac,musicsize,stemmax,
+ * stemmin,stemlen,mtrnuml,mtrdenl,mtrnmp,mtrdnp,islur(nm,200),
+ * ifigdr(2,125),iline,figbass,figchk(2),firstgulp,irest(nm,200),
+ * iornq(nm,0:200),isdat1(202),isdat2(202),nsdat,isdat3(202),
+ * isdat4(202),beamon(nm),isfig(2,200),sepsymq(nm),sq,ulq(nm,9)
+ character*1 ulq,sepsymq,sq
+ logical beamon,firstgulp,figbass,figchk,isfig
+ character*1 byteq(4),char,chax
+ character*10 tempoq,instq
+ character*44 jobname
+ integer*2 mmidi
+ logical restpend,relacc,notmain,twoline,ismidi,crdacc
+ common /commidi/ imidi(0:nm),trest(0:nm),mcpitch(20),mgap,
+ * iacclo(0:nm,6),iacchi(0:nm,6),midinst(nm),
+ * nmidcrd,midchan(nm,2),numchan,naccim(0:nm),
+ * laccim(0:nm,10),jaccim(0:nm,10),crdacc,notmain,
+ * restpend(0:nm),relacc,twoline(nm),ismidi,mmidi(0:nm,mv),
+ * debugmidi
+ logical debugmidi
+ common /commvel/ midivel(nm),midvelc(0:nm),midibal(nm),midbc(0:nm)
+ * ,miditran(nm),midtc(0:nm)
+ common /comevent/ miditime,lasttime
+ logical mmacrec,gottempo
+ common /commmac/ mmacstrt(0:nm,20),mmacend(0:nm,20),immac,
+ * mmactime(20),nmidsec,msecstrt(0:nm,60),msecend(0:nm,60),
+ * mmacrec,gottempo
+ character*79 inameq
+ common /comtop / itopfacteur,ibotfacteur,interfacteur,isig0,
+ * isig,lastisig,fracindent,widthpt,height,hoffpt,voffpt,idsig,
+ * lnam(nm),inameq(nm)
+ logical rename
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+c
+c Used to be icmm(0:nm); did midi fail when nv>16?
+c
+ integer*2 iinsiv(nm),icmm(0:15)
+ character*5 versionc
+ common /comver/ versionc
+c data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/
+ data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16/
+c Can't remember why these were not consecutive.
+c data icmm /0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15/
+c
+c Write Header
+c
+ write(51,'(a,$)')'MThd'//char(0)//char(0)//char(0)//char(6)
+ * //char(0)//char(1)//char(0)//char(numchan+1)//char(0)//char(240)
+ if (debugmidi)
+ * write(52,'(a6,10Z4)')'"MThd"',0,0,0,6,
+ * 0,1,0,numchan+1,0,240
+c
+c Write the "conductor" track, for keys, meter, and tempos
+c Get the number of bytes in the conductor event stream
+c
+ ndata = 1+imidi(numchan)-msecstrt(numchan,nmidsec)
+ do 15 isec = 1 , nmidsec-1
+ ndata = ndata+1+msecend(numchan,isec)-msecstrt(numchan,isec)
+15 continue
+c ib1 = (4+ljob+26+ndata+4)/256
+c ib0 = 4+ljob+26+ndata+4-256*ib1
+ ib1 = (4+ljob+27+ndata+4)/256
+ ib0 = 4+ljob+27+ndata+4-256*ib1
+ write(51,'(a,$)')'MTrk'//char(0)//char(0)//char(ib1)//char(ib0)
+c
+c Text header
+c
+c * //char(0)//char(255)//char(1)//char(ljob+26)
+ * //char(0)//char(255)//char(1)//char(ljob+27)
+ if (debugmidi)
+ * write(52,'(a6,8z4)')'"MTrk"',0,0,ib1,ib0,
+ * 0,255,1,ljob+27
+ write(51,'(a,$)')jobname(1:ljob)
+ if (debugmidi) write(52,'(a)')'"'//jobname(1:ljob)//'"'
+c
+c (separate writes are needed to defeat compiler BUG!!!)
+c
+c write(51,'(a,$)')'.mid, produced by PMX 2.30'
+ write(51,'(a,$)')'.mid, produced by PMX '//versionc
+ if (debugmidi) write(52,'(a)')
+ * '".mid, produced by PMX '//versionc//'"'
+c
+c Conductor event data: Loop over sections.
+c
+ do 16 isec = 1 , nmidsec
+ if (isec .lt. nmidsec) then
+ mend = msecend(numchan,isec)
+ else
+ mend = imidi(numchan)
+ end if
+ do 17 i = msecstrt(numchan,isec) , mend
+ write(51,'(a,$)')char(mmidi(numchan,i))
+ if (debugmidi) write(52,'(z4)')mmidi(numchan,i)
+17 continue
+16 continue
+c
+c And close out the time sig / tempo track.
+c
+ write(51,'(a,$)')char(0)//char(255)//char(2*16+15)//char(0)
+ if (debugmidi) write(52,'(4z4)')0,255,2*16+15,0
+c
+c Loop over track for each voice: The following sets up iv.
+c
+ iv = nv
+ if (twoline(nv)) then
+ kv = 2
+ else
+ kv = 1
+ end if
+c
+c Count up staves(iv,nv) vs instruments. Store instr# for iv in iinsiv(iv)
+c
+ nstaves = 0
+ ivt = 0
+ do 12 iinst = 1 , nm
+ nstaves = nstaves+nsperi(iinst)
+ do 13 ivtt = 1 , nsperi(iinst)
+ ivt = ivt+1
+ iinsiv(ivt) = iinst
+13 continue
+ if (nstaves .eq. nv) go to 14
+12 continue
+ print*,'Screwup!'
+ call stop1()
+14 continue
+c
+ do 5 icm = 0 , numchan-1
+c
+c Get the number of bytes in the data stream
+c
+ ndata = 1+imidi(icm)-msecstrt(icm,nmidsec)
+ do 11 isec = 1 , nmidsec-1
+ ndata = ndata+1+msecend(icm,isec)-msecstrt(icm,isec)
+11 continue
+c
+cc Add 3 (for instrum) plus 4 (for closing) to byte count,
+c Add 3 for instrum, 4 for bal, plus 4 (for closing) to byte count,
+c
+c ndata = ndata+7
+ ndata = ndata+11
+c
+c Add 4+lnam(iinsiv(iv)) if lnam>0 ,
+c
+ if (lnam(iinsiv(iv)).gt.0) ndata = ndata+4+lnam(iinsiv(iv))
+c
+c Separate total byte counts into 4 bytes
+c
+ do 2 ibyte = 1 , 4
+ if (ndata .gt. 0) then
+ byteq(ibyte) = char(mod(ndata,256))
+ ndata = ishft(ndata,-8)
+ else
+ byteq(ibyte) = char(0)
+ end if
+2 continue
+c
+c Now write front stuff for this track
+c
+ write(51,'(a,$)')'MTrk'//byteq(4)//byteq(3)//byteq(2)//byteq(1)
+ * //char(0)//char(12*16+icmm(icm))//char(midinst(iv))
+ * //char(0)//char(11*16+icmm(icm))//char(10)//char(midbc(icm))
+ if (debugmidi) write(52,'(a4,z2,a7,11z4)')'icm=',icm,
+ * ' "MTrk"',ichar(byteq(4)),ichar(byteq(3)),ichar(byteq(2)),
+ * ichar(byteq(1)),0,12*16+icmm(icm),midinst(iv),
+ * 0,11*16+icmm(icm),10,midbc(icm)
+ if (lnam(iinsiv(iv)) .gt. 0) then
+c
+c Add instrument name as sequence name
+c
+ write(51,'(a,$)')char(0)//char(255)//char(3)
+ * //char(lnam(iinsiv(iv)))
+ if (debugmidi) write(52,'(4z4)')0,255,3,lnam(iinsiv(iv))
+ write(51,'(a,$)')
+ * inameq(iinsiv(iv))(1:lnam(iinsiv(iv)))
+ if (debugmidi) write(52,'(a)')
+ * '"'//inameq(iinsiv(iv))(1:lnam(iinsiv(iv)))//'"'
+ end if
+ write(tempoq,'(i2)')icm
+ write(instq,'(i3)')midinst(iv)
+ call printl('MIDI instrument '//tempoq(1:2)//' is '//instq(1:3))
+c
+c Notes: Loop over sections.
+c
+ do 9 isec = 1 , nmidsec
+ if (isec .lt. nmidsec) then
+ mend = msecend(icm,isec)
+ else
+ mend = imidi(icm)
+ end if
+ do 10 i = msecstrt(icm,isec) , mend
+ write(51,'(a,$)')char(mmidi(icm,i))
+ if (debugmidi) write(52,'(z4)')mmidi(icm,i)
+10 continue
+9 continue
+c
+c Closing 4 bytes
+c
+ write(51,'(a,$)')chax(0)//char(255)//char(2*16+15)//char(0)
+ if (debugmidi) write(52,'(4z4)')0,255,2*16+15,0
+ if (kv .eq. 2) then
+ kv = 1
+ else if (iv .eq. 1) then
+ go to 5
+ else
+ iv = iv-1
+ if (twoline(iv)) kv=2
+ end if
+5 continue
+ write(*,'(1x,a12,(10i6))')'Bytes used:',(imidi(icm),icm=0,numchan)
+ write(15,'(1x,a12,(10i6))')
+ * 'Bytes used:',(imidi(icm),icm=0,numchan)
+ close(51)
+ if (debugmidi) close(52)
+ return
+ end
+ subroutine Writesetsign(nInstTrans,iInstTrans,iTransKey,flag)
+ parameter(nm=24)
+ integer*4 iInstTrans(nm),iTransKey(nm)
+ character*79 notexq
+ character*1 chax
+ logical flag
+c
+c Assumes notexq is blank
+c
+ do 1 i = 1 , nInstTrans
+ notexq = chax(92)//'setsign'
+ lnote = 8
+ if (iInstTrans(i) .lt. 10) then
+ notexq = notexq(1:lnote)//chax(48+iInstTrans(i))
+ lnote = lnote+1
+ else
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')
+ * '{',iInstTrans(i),'}'
+ lnote = lnote+4
+ end if
+ if (iTransKey(i) .lt. 0) then
+ write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')
+ * '{',iTransKey(i),'}'
+ lnote = lnote+4
+ else
+ notexq = notexq(1:lnote)//chax(48+iTransKey(i))
+ lnote = lnote+1
+ end if
+ write(11,'(a)')notexq(1:lnote)//'%'
+1 continue
+ flag = .false.
+ return
+ end
+ subroutine writflot(x,notexq,lenline)
+ character*(*) notexq
+ if (x .lt. 0.95) then
+ write(notexq(lenline+1:lenline+2),'(f2.1)')x
+ lenline = lenline+2
+ else if (x .lt. 9.95) then
+ write(notexq(lenline+1:lenline+3),'(f3.1)')x
+ lenline = lenline+3
+ else
+ write(notexq(lenline+1:lenline+4),'(f4.1)')x
+ lenline = lenline+4
+ end if
+ return
+ end
+ subroutine wsclef(iv,ninow,clefq,nclef)
+c
+c Writes \setclef for instrument containing voice iv
+c
+ parameter (nm=24)
+ common /comlast/ islast,usevshrink
+ logical islast,usevshrink
+ common /comnvi/ nsperi(nm),nspern(nm),rename,iiorig(nm)
+ logical rename
+ character*1 clefq(nm),chax
+ character*20 temq
+ if (nclef .lt. 7) then
+ clefq(iv) = chax(48+nclef)
+ else
+ clefq(iv)='9'
+ end if
+ if (.not.islast) return
+ iv1 = 1
+ do 1 iinst = 1 , ninow
+ if (iv .lt. iv1+nspern(iinst)) go to 2
+ iv1 = iv1+nspern(iinst)
+1 continue
+ print*
+ print*,'Should not be here in wsclef!'
+ call stop1()
+2 continue
+ iv2 = iv1+nspern(iinst)-1
+ if (iinst .lt. 10) then
+ temq = chax(92)//'setclef'//chax(48+iinst)
+ ltem = 9
+ else
+ write(temq,'(a9,i2,a1)') chax(92)//'setclef{',iinst,'}'
+ ltem = 12
+ end if
+ if (iv1 .eq. iv2) then
+ write(11,'(a)')temq(1:ltem)//clefq(iv)//'%'
+ else
+ temq = temq(1:ltem)//'{'
+ ltem = ltem+1
+ do 3 iiv = iv1 , iv2
+ temq = temq(1:ltem)//chax(48+numclef(clefq(iiv)))
+ ltem = ltem+1
+3 continue
+ write(11,'(a)')temq(1:ltem)//'}%'
+ end if
+ return
+ end
diff --git a/Build/source/utils/pmx/pmx-2.6.18/pmxab.c b/Build/source/utils/pmx/pmx-2.6.18/pmxab.c
new file mode 100644
index 00000000000..2f75b2d534a
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/pmxab.c
@@ -0,0 +1,37988 @@
+/* -- translated by f2c (version 20031025).
+ You must link the resulting object file with libf2c:
+ on Microsoft Windows system, link with libf2c.lib;
+ on Linux or Unix systems, link with .../path/to/libf2c.a -lm
+ or, if you install libf2c.a in a standard place, with -lf2c -lm
+ -- in that order, at the end of the command line, as in
+ cc *.o -lf2c -lm
+ Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
+
+ http://www.netlib.org/f2c/libf2c.zip
+*/
+
+#include "f2c.h"
+
+/* Common Block Declarations */
+
+struct {
+ char versionc[5];
+} comver_;
+
+#define comver_1 comver_
+
+struct {
+ integer miditime, lasttime;
+} comevent_;
+
+#define comevent_1 comevent_
+
+struct {
+ integer levson[25], levsoff[25], imidso[25], naccbl[25], laccbl[250]
+ /* was [25][10] */, jaccbl[250] /* was [25][10] */, nusebl;
+ logical slmon[25], dbltie;
+} comslm_;
+
+#define comslm_1 comslm_
+
+struct {
+ integer imidi[25];
+ real trest[25];
+ integer mcpitch[20], mgap, iacclo[150] /* was [25][6] */, iacchi[150]
+ /* was [25][6] */, midinst[24], nmidcrd, midchan[48] /*
+ was [24][2] */, numchan, naccim[25], laccim[250] /* was [25][
+ 10] */, jaccim[250] /* was [25][10] */;
+ logical crdacc, notmain, restpend[25], relacc, twoline[24], ismidi;
+ shortint mmidi[614400] /* was [25][24576] */;
+ logical debugmidi;
+} commidi_;
+
+#define commidi_1 commidi_
+
+struct {
+ integer midivel[24], midvelc[25], midibal[24], midbc[25], miditran[24],
+ midtc[25];
+} commvel_;
+
+#define commvel_1 commvel_
+
+struct {
+ integer ipbuf, ilbuf, nlbuf;
+ shortint lbuf[4000];
+ char bufq[65536];
+} inbuff_;
+
+#define inbuff_1 inbuff_
+
+struct {
+ integer musize;
+ real whead20;
+} commus_;
+
+#define commus_1 commus_
+
+union {
+ struct {
+ integer iv, ivxo[600], ipo[600];
+ real to[600], tno[600];
+ integer nnl[24], nv, ibar, mtrnuml, nodur[4800] /* was [24][200] */,
+ lenbar, iccount, idum, itsofar[24], nib[360] /* was [24][
+ 15] */, nn[24];
+ logical rest[4800] /* was [24][200] */;
+ integer lenbr0, lenbr1;
+ logical firstline, newmeter;
+ } _1;
+ struct {
+ integer iv, ivxo[600], ipo[600];
+ real to[600], tno[600];
+ integer nnl[24], nv, ibar, mtrnuml, nodur[4800] /* was [24][200] */,
+ lenbar, iccount, nbars, itsofar[24], nib[360] /* was [24][
+ 15] */, nn[24];
+ logical rest[4800] /* was [24][200] */;
+ integer lenbr0, lenbr1;
+ logical firstline, newmeter;
+ } _2;
+} a1ll_;
+
+#define a1ll_1 (a1ll_._1)
+#define a1ll_2 (a1ll_._2)
+
+struct {
+ integer n69[25], n34[25];
+} comdiag_;
+
+#define comdiag_1 comdiag_
+
+struct {
+ integer mmacstrt[500] /* was [25][20] */, mmacend[500] /*
+ was [25][20] */, immac, mmactime[20], nmidsec, msecstrt[1500]
+ /* was [25][60] */, msecend[1500] /* was [25][60] */;
+ logical mmacrec, gottempo;
+} commmac_;
+
+#define commmac_1 commmac_
+
+struct {
+ integer linewcom[20000];
+} truelinecount_;
+
+#define truelinecount_1 truelinecount_
+
+struct {
+ integer naskb;
+ real task[40], wask[40], elask[40];
+} comas1_;
+
+#define comas1_1 comas1_
+
+struct {
+ real udsp[50], tudsp[50];
+ integer nudsp;
+ real udoff[480] /* was [24][20] */;
+ integer nudoff[24];
+} comudsp_;
+
+#define comudsp_1 comudsp_
+
+struct comtol_1_ {
+ real tol;
+};
+
+#define comtol_1 (*(struct comtol_1_ *) &comtol_)
+
+struct {
+ shortint ipslon[25], lusebl[10], jusebl[10];
+} comips_;
+
+#define comips_1 comips_
+
+struct {
+ logical islast, usevshrink;
+} comlast_;
+
+#define comlast_1 comlast_
+
+union {
+ struct {
+ real space[80];
+ integer nb;
+ real prevtn[24], flgndv[24], flgndb, eskgnd, ptsgnd;
+ integer ivmxsav[48] /* was [24][2] */, nvmxsav[24];
+ } _1;
+ struct {
+ real space[80];
+ integer nb;
+ real prevtn[24], flgndv[24];
+ logical flgndb;
+ real eskgnd, ptsgnd;
+ integer ivmxsav[48] /* was [24][2] */, nvmxsav[24];
+ } _2;
+} comnsp_;
+
+#define comnsp_1 (comnsp_._1)
+#define comnsp_2 (comnsp_._2)
+
+union {
+ struct {
+ integer mult[4800] /* was [24][200] */, iv, nnl[24], nv, ibar,
+ ivxo[600], ipo[600];
+ real to[600], tno[600], tnote[600], eskz[4800] /* was [24][200] */;
+ integer ipl[4800] /* was [24][200] */, ibm1[216] /* was [24][9]
+ */, ibm2[216] /* was [24][9] */, nolev[4800] /* was [24][
+ 200] */, ibmcnt[24], nodur[4800] /* was [24][200] */,
+ jn, lenbar, iccount, nbars, itsofar[24], nacc[4800] /*
+ was [24][200] */, nib[360] /* was [24][15] */, nn[24],
+ lenb0, lenb1;
+ real slfac;
+ integer musicsize;
+ real stemmax, stemmin, stemlen;
+ integer mtrnuml, mtrdenl, mtrnmp, mtrdnp, islur[4800] /* was [24][
+ 200] */, ifigdr[250] /* was [2][125] */, iline;
+ logical figbass, figchk[2], firstgulp;
+ integer irest[4800] /* was [24][200] */, iornq[4824] /*
+ was [24][201] */, isdat1[202], isdat2[202], nsdat, isdat3[202]
+ , isdat4[202];
+ logical beamon[24], isfig[400] /* was [2][200] */;
+ char sepsymq[24], sq[1], ulq[216] /* was [24][9] */;
+ } _1;
+ struct {
+ integer mult[4800] /* was [24][200] */, jv, nnl[24], nv, ibar,
+ ivxo[600], ipo[600];
+ real to[600], tno[600], tnote[600], eskz[4800] /* was [24][200] */;
+ integer ipl[4800] /* was [24][200] */, ibm1[216] /* was [24][9]
+ */, ibm2[216] /* was [24][9] */, nolev[4800] /* was [24][
+ 200] */, ibmcnt[24], nodur[4800] /* was [24][200] */,
+ jn, lenbar, iccount, nbars, itsofar[24], nacc[4800] /*
+ was [24][200] */, nib[360] /* was [24][15] */, nn[24],
+ lenb0, lenb1;
+ real slfac;
+ integer musicsize;
+ real stemmax, stemmin, stemlen;
+ integer mtrnuml, mtrdenl, mtrnmp, mtrdnp, islur[4800] /* was [24][
+ 200] */, ifigdr[250] /* was [2][125] */, iline;
+ logical figbass, figchk[2], firstgulp;
+ integer irest[4800] /* was [24][200] */, iornq[4824] /*
+ was [24][201] */, isdat1[202], isdat2[202], nsdat, isdat3[202]
+ , isdat4[202];
+ logical beamon[24], isfig[400] /* was [2][200] */;
+ char sepsymq[24], sq[1], ulq[216] /* was [24][9] */;
+ } _2;
+} all_;
+
+#define all_1 (all_._1)
+#define all_2 (all_._2)
+
+struct {
+ real eskz2[4800] /* was [24][200] */;
+} comeskz2_;
+
+#define comeskz2_1 comeskz2_
+
+struct {
+ integer ntot;
+} comntot_;
+
+#define comntot_1 comntot_
+
+struct {
+ real hpttot[176];
+} comhsp_;
+
+#define comhsp_1 comhsp_
+
+struct {
+ logical ispoi;
+} compoi_;
+
+#define compoi_1 compoi_
+
+struct {
+ logical isbbm;
+} combbm_;
+
+#define combbm_1 combbm_
+
+struct {
+ real ask[2500];
+ integer iask;
+ logical topmods;
+} comas3_;
+
+#define comas3_1 comas3_
+
+struct {
+ integer ivbj1, ivbj2;
+ logical isbjmp, isbj2;
+} combjmp_;
+
+#define combjmp_1 combjmp_
+
+struct {
+ integer noctup;
+} comoct_;
+
+#define comoct_1 comoct_
+
+union {
+ struct {
+ integer ixtup;
+ logical vxtup[24];
+ integer ntupv[216] /* was [24][9] */, nolev1[24], mtupv[216]
+ /* was [24][9] */, nxtinbm[24], islope[24];
+ real xelsk[24], eloff[216] /* was [24][9] */;
+ integer nssb[24], issb[24], lev1ssb[480] /* was [24][20] */;
+ } _1;
+ struct {
+ integer ixtup;
+ logical vxtup[24];
+ integer ntupv[216] /* was [24][9] */, nolev1[24], mtupv[216]
+ /* was [24][9] */, nxtinbm[24], islope[24];
+ real xels11[24], eloff[216] /* was [24][9] */;
+ integer nssb[24], issb[24], lev1ssb[480] /* was [24][20] */;
+ } _2;
+} comxtup_;
+
+#define comxtup_1 (comxtup_._1)
+#define comxtup_2 (comxtup_._2)
+
+struct {
+ logical drawbm[24];
+} comdraw_;
+
+#define comdraw_1 comdraw_
+
+struct {
+ integer nvmx[24], ivmx[48] /* was [24][2] */, ivx;
+} commvl_;
+
+#define commvl_1 commvl_
+
+struct {
+ integer ihnum3;
+ logical flipend[24];
+ integer ixrest[24];
+} strtmid_;
+
+#define strtmid_1 strtmid_
+
+struct {
+ logical bar1syst;
+ real fixednew, scaldold, wheadpt, fbar, poenom;
+} comask_;
+
+#define comask_1 comask_
+
+struct {
+ integer itopfacteur, ibotfacteur, interfacteur, isig0, isig, lastisig;
+ real fracindent, widthpt, height, hoffpt, voffpt;
+ integer idsig, lnam[24];
+ char inameq[1896];
+} comtop_;
+
+#define comtop_1 comtop_
+
+struct {
+ integer ntrill, ivtrill[24], iptrill[24];
+ real xnsktr[24];
+ integer ncrd, icrdat[193], icrdot[193], icrdorn[193], nudorn, kudorn[63];
+ real ornhshft[63];
+ integer minlev, maxlev, icrd1, icrd2;
+} comtrill_;
+
+#define comtrill_1 comtrill_
+
+struct {
+ integer nnb;
+ real sumx, sumy;
+ integer ipb[24];
+ real smed;
+} comipb_;
+
+#define comipb_1 comipb_
+
+union {
+ struct {
+ logical novshrinktop, cstuplet;
+ } _1;
+ struct {
+ logical novshrinktop;
+ real cstuplte;
+ } _2;
+} comnvst_;
+
+#define comnvst_1 (comnvst_._1)
+#define comnvst_2 (comnvst_._2)
+
+union {
+ struct {
+ integer itfig[148] /* was [2][74] */;
+ char figq[1480] /* was [2][74] */;
+ integer ivupfig[148] /* was [2][74] */, nfigs[2];
+ real fullsize[24];
+ integer ivxfig2;
+ } _1;
+ struct {
+ integer itfig[148] /* was [2][74] */;
+ char figqq[1480] /* was [2][74] */;
+ integer ivupfig[148] /* was [2][74] */, nfigs[2];
+ real fullsize[24];
+ integer ivxfig2;
+ } _2;
+} comfig_;
+
+#define comfig_1 (comfig_._1)
+#define comfig_2 (comfig_._2)
+
+struct comtrans_1_ {
+ char cheadq[60];
+};
+
+#define comtrans_1 (*(struct comtrans_1_ *) &comtrans_)
+
+struct compage_1_ {
+ real widthpt, ptheight, hoffpt, voffpt;
+ integer nsyst, nflb, ibarflb[41], isysflb[41], npages, nfpb, ipagfpb[19],
+ isysfpb[19];
+ logical usefig;
+ real fintstf, gintstf, fracsys[30];
+ integer nmovbrk, isysmb[31], nistaff[41];
+};
+
+#define compage_1 (*(struct compage_1_ *) &compage_)
+
+struct cblock_1_ {
+ real etatop, etabot, etait, etatc, etacs1, hgtin, hgtti, hgtco, xilbn,
+ xilbtc, xilhdr, xilfig, a, b;
+ integer inhnoh;
+};
+
+#define cblock_1 (*(struct cblock_1_ *) &cblock_)
+
+struct cominbot_1_ {
+ integer inbothd;
+};
+
+#define cominbot_1 (*(struct cominbot_1_ *) &cominbot_)
+
+struct comstart_1_ {
+ real facmtr;
+};
+
+#define comstart_1 (*(struct comstart_1_ *) &comstart_)
+
+struct comtitl_1_ {
+ char instrq[120], titleq[120], compoq[120];
+ logical headlog;
+ integer inskip, ncskip, inhead;
+};
+
+#define comtitl_1 (*(struct comtitl_1_ *) &comtitl_)
+
+struct spfacs_1_ {
+ real grafac, acgfac, accfac, xspfac, xb4fac, clefac, emgfac, flagfac,
+ dotfac, bacfac, agc1fac, gslfac, arpfac, rptfac;
+ integer lrrptfac;
+ real dbarfac, ddbarfac, dotsfac, upstmfac, rtshfac;
+};
+
+#define spfacs_1 (*(struct spfacs_1_ *) &spfacs_)
+
+struct combmh_1_ {
+ real bmhgt, clefend;
+};
+
+#define combmh_1 (*(struct combmh_1_ *) &combmh_)
+
+struct comdyn_1_ {
+ integer ndyn, idyndat[99], levdsav[24], ivowg[12];
+ real hoh1[12], hoh2[12], hoh2h1[2];
+ integer ntxtdyn, ivxiptxt[41];
+ char txtdynq[5248];
+ integer idynda2[99], levhssav[24], listcresc, listdecresc;
+};
+
+#define comdyn_1 (*(struct comdyn_1_ *) &comdyn_)
+
+struct comkbdrests_1_ {
+ integer levbotr[8], levtopr[8];
+ logical kbdrests;
+};
+
+#define comkbdrests_1 (*(struct comkbdrests_1_ *) &comkbdrests_)
+
+struct cominsttrans_1_ {
+ integer iinsttrans[24], itranskey[24], itransamt[24], instno[24],
+ ninsttrans;
+ logical earlytranson, laterinsttrans;
+};
+
+#define cominsttrans_1 (*(struct cominsttrans_1_ *) &cominsttrans_)
+
+struct comsize_1_ {
+ integer isize[24];
+};
+
+#define comsize_1 (*(struct comsize_1_ *) &comsize_)
+
+struct {
+ integer nnodur;
+ real wminnh[3999];
+ integer nnpd[4000];
+ real durb[4000];
+ integer iddot, nptr[3999], ibarcnt, mbrest, ibarmbr, ibaroff;
+ real udsp[3999], wheadpt;
+ logical gotclef;
+ real sqzb[4000];
+} c1omnotes_;
+
+#define c1omnotes_1 c1omnotes_
+
+struct {
+ integer narp;
+ real tar[8];
+ integer ivar1[8], ipar1[8], levar1[8], ncmar1[8];
+ real xinsnow;
+ logical lowdot;
+} comarp_;
+
+#define comarp_1 comarp_
+
+struct {
+ integer listslur;
+ logical upslur[48] /* was [24][2] */;
+ integer ndxslur;
+ logical fontslur, wrotepsslurdefaults;
+ real slurcurve;
+} comslur_;
+
+#define comslur_1 comslur_
+
+struct {
+ integer ivg[37], ipg[37], nolevg[74], itoff[148] /* was [2][74] */;
+ real aftshft;
+ integer nng[37], ngstrt[37], ibarmbr, mbrest;
+ real xb4mbr;
+ integer noffseg, ngrace, nvolt, ivlit[83], iplit[83], nlit;
+ real graspace[37];
+ integer lenlit[83], multg[37];
+ logical upg[37], slurg[37], slashg[37];
+ integer naccg[74];
+ char voltxtq[120], litq[10624];
+} comgrace_;
+
+#define comgrace_1 comgrace_
+
+struct {
+ integer is1n1, is2n1, irzbnd, isnx;
+} comsln_;
+
+#define comsln_1 comsln_
+
+struct {
+ logical lastchar, fbon, issegno;
+ integer ihead;
+ logical isheadr;
+ integer nline;
+ logical isvolt;
+ real fracindent;
+ integer nsperi[24], linesinpmxmod, line1pmxmod, lenbuf0;
+} c1omget_;
+
+#define c1omget_1 c1omget_
+
+struct {
+ real eonk, ewmxk;
+} comeon_;
+
+#define comeon_1 comeon_
+
+struct {
+ integer ipl2[4800] /* was [24][200] */;
+} comipl2_;
+
+#define comipl2_1 comipl2_
+
+struct {
+ integer ibmtyp;
+} combeam_;
+
+#define combeam_1 combeam_
+
+struct {
+ integer macnum;
+ logical mrecord, mplay;
+ integer macuse, icchold;
+ char lnholdq[128];
+ logical endmac;
+} commac_;
+
+#define commac_1 commac_
+
+struct {
+ integer nvmx[24], ivmx[48] /* was [24][2] */, ivx;
+ real fbar;
+ integer nacc[4800] /* was [24][200] */;
+} c1ommvl_;
+
+#define c1ommvl_1 c1ommvl_
+
+union {
+ struct {
+ integer nkeys, ibrkch[18], newkey[18];
+ logical iskchb;
+ integer idsig, isig1, mbrestsav;
+ logical kchmid[18], ornrpt, shifton, barend;
+ integer noinst;
+ logical stickys;
+ } _1;
+ struct {
+ integer nkeys, ibrkch[18], newkey[18];
+ logical iskchb;
+ integer idumm1, isig1, mbrestsav;
+ logical kchmid[18], logdumm1, logdumm2, barend;
+ integer noinst;
+ logical logdumm3;
+ } _2;
+} comkeys_;
+
+#define comkeys_1 (comkeys_._1)
+#define comkeys_2 (comkeys_._2)
+
+struct {
+ logical isligfont;
+} comligfont_;
+
+#define comligfont_1 comligfont_
+
+struct {
+ logical lastchar, rptnd1, sluron[48] /* was [24][2] */, fbon,
+ ornrpt, stickys;
+ integer movbrk, movnmp, movdnp, movgap;
+ real parmov, fintstf, gintstf;
+ logical rptprev, equalize;
+ char rptfq1[1], rptfq2[1];
+} comget_;
+
+#define comget_1 comget_
+
+struct {
+ integer nnodur, lastlev, ndlev[48] /* was [24][2] */;
+ logical shifton, setis, notcrd;
+ integer npreslur;
+ logical was2[24];
+ integer ninow;
+ logical nobar1;
+ integer nsystp[40], ipage;
+ logical optlinebreakties, headerspecial;
+} comnotes_;
+
+#define comnotes_1 comnotes_
+
+struct {
+ integer ihdht;
+ logical lower;
+ char headrq[80], lowerq[80];
+ integer ihdvrt;
+} comhead_;
+
+#define comhead_1 comhead_
+
+struct {
+ integer nfb[24];
+ real t1fb[960] /* was [24][40] */, t2fb[960] /* was [24][40] */;
+ char ulfbq[960] /* was [24][40] */;
+ integer ifb;
+ real tautofb;
+ logical autofbon;
+ real t1autofb;
+} comfb_;
+
+#define comfb_1 comfb_
+
+struct {
+ integer ncc[24];
+ real tcc[240] /* was [24][10] */;
+ integer ncmidcc[240] /* was [24][10] */, ndotmv[24];
+ real updot[480] /* was [24][20] */, rtdot[480] /* was [24][20] */;
+} comcc_;
+
+#define comcc_1 comcc_
+
+struct {
+ logical bcspec;
+} combc_;
+
+#define combc_1 combc_
+
+struct {
+ integer nsperi[24], nspern[24];
+ logical rename;
+ integer iiorig[24];
+} comnvi_;
+
+#define comnvi_1 comnvi_
+
+struct {
+ integer ip1mac[20], il1mac[20], ip2mac[20], il2mac[20], ic1mac[20], ilmac,
+ iplmac;
+} c1ommac_;
+
+#define c1ommac_1 c1ommac_
+
+struct {
+ char clefq[24];
+} comclefq_;
+
+#define comclefq_1 comclefq_
+
+struct {
+ integer numarpshift, ivarpshift[20], iparpshift[20];
+ real arpshift[20];
+} comarpshift_;
+
+#define comarpshift_1 comarpshift_
+
+struct {
+ integer ibarcnt;
+} combibarcnt_;
+
+#define combibarcnt_1 combibarcnt_
+
+struct {
+ integer ivxudorn[63];
+} comivxudorn_;
+
+#define comivxudorn_1 comivxudorn_
+
+struct {
+ integer nbc, ibcdata[36];
+} comcb_;
+
+#define comcb_1 comcb_
+
+struct {
+ integer nasksys;
+ real wasksys[800], elasksys[800];
+} comas2_;
+
+#define comas2_1 comas2_
+
+struct {
+ logical cwrferm[24];
+} comcwrf_;
+
+#define comcwrf_1 comcwrf_
+
+struct {
+ real elskb, tnminb[3999];
+} linecom_;
+
+#define linecom_1 linecom_
+
+/* Initialized data */
+
+struct {
+ char e_1[60];
+ } comtrans_ = { " "
+ " " };
+
+struct {
+ real e_1[4];
+ integer fill_2[127];
+ real e_3[30];
+ integer fill_4[73];
+ } compage_ = { 524.f, 740.f, 0.f, 0.f, {0}, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f,
+ 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f,
+ 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f };
+
+struct {
+ real e_1[14];
+ integer e_2;
+ } cblock_ = { .5f, .25f, .4f, .4f, .2f, 12.f, 21.f, 12.f, 4.f, 1.6f, 5.f,
+ 5.7f, 1.071f, 2.714f, 16 };
+
+struct {
+ integer e_1;
+ } cominbot_ = { 16 };
+
+struct {
+ real e_1;
+ } comstart_ = { .55f };
+
+struct {
+ char e_1[360];
+ logical e_2;
+ integer fill_3[3];
+ } comtitl_ = { " "
+ " "
+ " "
+ " "
+ " "
+ " ", FALSE_ };
+
+struct {
+ real e_1[14];
+ integer e_2;
+ real e_3[5];
+ } spfacs_ = { 1.3333f, .4f, .7f, .3f, .2f, 2.f, 1.f, .7f, .7f, .9f, .5f,
+ 9.f, 1.7f, 1.32f, 2, .47f, .83f, .17f, .5f, 1.f };
+
+struct {
+ real e_1[2];
+ } combmh_ = { 1.1f, 2.3f };
+
+struct {
+ integer fill_1[124];
+ integer e_2[12];
+ real e_3[26];
+ integer fill_4[1479];
+ } comdyn_ = { {0}, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2.2f, 1.7f, 1.2f,
+ .7f, 1.3f, 1.3f, .4f, .8f, 1.2f, .8f, 1.2f, 1.6f, -2.7f, -2.2f,
+ -1.7f, -1.2f, -2.3f, -2.1f, -1.f, -1.7f, -2.1f, -1.6f, -1.9f,
+ -2.3f, -.3f, .3f };
+
+struct {
+ integer e_1[16];
+ logical e_2;
+ } comkbdrests_ = { 0, 0, 0, 2, 1, 4, 5, 4, 9, 7, 5, 5, 7, 5, 6, 6, FALSE_
+ };
+
+struct {
+ integer e_1[24];
+ integer fill_2[73];
+ logical e_3[2];
+ } cominsttrans_ = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, {0}, FALSE_, FALSE_ };
+
+struct {
+ integer e_1[24];
+ } comsize_ = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0 };
+
+struct {
+ real e_1;
+ } comtol_ = { .001f };
+
+
+/* Table of constant values */
+
+static integer c__9 = 9;
+static integer c__1 = 1;
+static integer c__44 = 44;
+static integer c__2 = 2;
+static integer c__4 = 4;
+static integer c__128 = 128;
+static integer c__3 = 3;
+static logical c_true = TRUE_;
+static logical c_false = FALSE_;
+static integer c__92 = 92;
+static integer c__11 = 11;
+static integer c__12 = 12;
+static integer c__17 = 17;
+static integer c__14 = 14;
+static integer c__129 = 129;
+static integer c__5 = 5;
+static integer c__22 = 22;
+static integer c__0 = 0;
+static integer c__6 = 6;
+static integer c__27 = 27;
+static integer c__7 = 7;
+static integer c__10 = 10;
+static integer c__20 = 20;
+static real c_b735 = -2.f;
+static real c_b736 = 0.f;
+static real c_b781 = 1.f;
+static integer c__8 = 8;
+static integer c__16 = 16;
+static integer c__23 = 23;
+static integer c__39 = 39;
+static integer c__96 = 96;
+static integer c__21 = 21;
+static integer c__19 = 19;
+static integer c__24 = 24;
+static integer c__13 = 13;
+static integer c__28 = 28;
+static integer c__18 = 18;
+static real c_b1633 = 2.f;
+static integer c__30 = 30;
+static integer c__60 = 60;
+static integer c__80 = 80;
+static integer c__256 = 256;
+static integer c__34 = 34;
+static integer c__120 = 120;
+static integer c__240 = 240;
+static integer c__255 = 255;
+static integer c__47 = 47;
+
+/* Main program */ int MAIN__(void)
+{
+ /* Initialized data */
+
+ static char date[9] = "19 Mar 12";
+ static char version[5] = "2618 ";
+ static integer maxit = 200;
+ static integer ncalls = 0;
+ static logical isfirst = TRUE_;
+
+ /* System generated locals */
+ address a__1[2], a__2[4], a__3[3];
+ integer i__1, i__2, i__3[2], i__4[4], i__5[3], i__6;
+ real r__1;
+ char ch__1[48], ch__2[64], ch__3[37], ch__4[55], ch__5[56];
+ olist o__1;
+ cllist cl__1;
+ inlist ioin__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void), s_rsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_rsfe(void), s_cmp(char *, char *, ftnlen, ftnlen), i_indx(char
+ *, char *, ftnlen, ftnlen);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer f_inqu(inlist *), f_open(olist *), f_clos(cllist *);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ integer s_wsfe(cilist *), e_wsfe(void);
+
+ /* Local variables */
+ static real devnorm0;
+ static logical optimize;
+ extern /* Subroutine */ int poestats_(integer *, real *, real *, real *),
+ writemidi_(char *, integer *, ftnlen);
+ static integer ncomments, ip1, ilb, icm;
+ static real poe[125];
+ static integer ivx;
+ static real poe0[125];
+ static integer ljob, ipoe[125];
+ extern /* Subroutine */ int pmxa_(char *, integer *, logical *, integer *,
+ integer *, logical *, ftnlen), pmxb_(logical *, real *, integer *
+ , logical *);
+ static integer isys, ljob4;
+ extern /* Subroutine */ int stop1_(void);
+ extern integer iargc_(void);
+ static integer nbari[125], nbars[125], isysd, numit, isyst, isysu, nsyst,
+ nbars0[125];
+ static real poebar;
+ extern /* Subroutine */ int getarg_(integer *, char *, ftnlen);
+ static integer idnord, iplast;
+ static logical fexist;
+ static real devpmx;
+ static integer iupord;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer ndxpmx;
+ static real poebar0;
+ static char jobname[44], infileq[47], lnholdq[128];
+ static real devnorm;
+ static integer numargs;
+ extern /* Subroutine */ int sortpoe_(integer *, real *, integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___10 = { 0, 6, 0, 0, 0 };
+ static cilist io___11 = { 0, 6, 0, 0, 0 };
+ static cilist io___12 = { 0, 5, 0, "(a)", 0 };
+ static cilist io___15 = { 0, 6, 0, 0, 0 };
+ static cilist io___16 = { 0, 6, 0, 0, 0 };
+ static cilist io___17 = { 0, 6, 0, 0, 0 };
+ static cilist io___21 = { 0, 6, 0, 0, 0 };
+ static cilist io___24 = { 0, 18, 1, "(a)", 0 };
+ static cilist io___26 = { 0, 6, 0, 0, 0 };
+ static cilist io___30 = { 0, 15, 0, 0, 0 };
+ static cilist io___34 = { 0, 6, 0, 0, 0 };
+ static cilist io___35 = { 0, 15, 0, 0, 0 };
+ static cilist io___37 = { 0, 15, 0, 0, 0 };
+ static cilist io___46 = { 0, 6, 0, 0, 0 };
+ static cilist io___47 = { 0, 15, 0, 0, 0 };
+ static cilist io___55 = { 0, 6, 0, 0, 0 };
+ static cilist io___56 = { 0, 15, 0, 0, 0 };
+ static cilist io___57 = { 0, 6, 0, "(5x,20i3)", 0 };
+ static cilist io___58 = { 0, 15, 0, "(5x,20i3)", 0 };
+ static cilist io___59 = { 0, 6, 0, 0, 0 };
+ static cilist io___60 = { 0, 15, 0, 0, 0 };
+ static cilist io___61 = { 0, 6, 0, 0, 0 };
+ static cilist io___62 = { 0, 15, 0, 0, 0 };
+ static cilist io___63 = { 0, 6, 0, 0, 0 };
+ static cilist io___64 = { 0, 15, 0, 0, 0 };
+ static cilist io___65 = { 0, 6, 0, "(5x,20i3)", 0 };
+ static cilist io___66 = { 0, 15, 0, "(5x,20i3)", 0 };
+ static cilist io___67 = { 0, 6, 0, "(5x,20i3)", 0 };
+ static cilist io___68 = { 0, 15, 0, "(5x,20i3)", 0 };
+
+
+
+/* This program, PMX, developed by Don Simons */
+/* (dsimons@roadrunner.com), is a preprocessor for MusiXTeX. In concert with */
+/* MusiXTeX and TeX, its purpose is to allow the user to create high-quality */
+/* typeset musical scores by including a sequence of PMX commands in an ASCII */
+/* input file. */
+
+/* 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 3 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/>. */
+
+
+
+/* To compile with gfortran: */
+/* 1. Merge all files using copy *.for epmx[nnnn].for */
+/* 2. Search and replace all character*65536 with character*131072 */
+/* 3. Comment/uncomment getarg lines */
+/* 4. gfortran -O pmx[nnnn].for -o pmxab.exe */
+
+/* To do */
+/* Correct Rainer's email address in manual */
+/* Linesplit (\\) in h */
+/* Tt at start of a movement. */
+/* Toggle midi on or off; allow midi only. */
+/* Page number printed on 1st page even if 1 system. */
+/* Still need inserted space for chordal accidentals */
+/* Voicewise transposition. */
+/* better segno */
+/* coda */
+/* duevolte */
+/* Fix xtup bracket direction in 2-line staves?? (maybe leave as is) */
+/* Sticky ornaments with shifts. */
+/* Deal with Werner's vertical spacing thing associated with title. */
+/* Multiple ties in midi */
+/* Werner's missing c in MIDI due to start/stop ties on same note. */
+/* Beams with single 64ths */
+/* 128ths and/or dotted 64ths */
+/* Close out MIDI with integral # of beats? */
+/* Increase ast dimensions or redo logic. */
+/* Does slur direction get set for user-defined single-note stem dir'ns? */
+/* Transpose by sections. */
+/* Optimization loop over sections only */
+/* Command-line option to read nbarss in. Write out nbarss when optimizing. */
+/* (or just read from .plg?) */
+/* Beams over bar lines. */
+/* 2-digit figures */
+/* A real coule (slanted line between notes in a chord) */
+/* Dotted slurs for grace notes. */
+/* Undotted chord notes with dotted main note. */
+/* Forced line break without line number */
+/* Fix dot moving when 2nds in chord get flipped */
+/* To do: increase length on notexq in dodyn */
+/* 2.618 */
+/* Add option Ac[l,4] to set vert and horiz size and offsets to properly */
+/* center page for letter or a4 paper. */
+/* 2.617 */
+/* In g1etnote, change if-check for note to use index(...) instead */
+/* of ichar(charq) since it was messing up gfortran optimizer */
+/* After pmxa, search for and remove penultimate line <blank><blank>/ */
+/* because it was screwing up linux-compiled versions */
+/* Bugfix: Increase dimension of kicrd from 7 to 10 in crdaccs(...) */
+/* 2.616 (111110) */
+/* Allow hairpins to span multiple notes groups (gulps). */
+/* 2.615+ (110810) */
+/* Fix midi when some instruments are transposed, by subtracting */
+/* iTransAmt(instno(iv)) from pitch values sent to via addmidi in */
+/* make2bar.for (for main notes) and docrd (for chord notes) */
+/* 2.615 (110725) */
+/* Fig bug with size-setting (in topfile) when instrument has >1 staves */
+/* 2.615 (110724) */
+/* Make AS[0|-|s|t]... really set sizes */
+/* 2.614 */
+/* Mod notex.for to fix Terry's bug with raised dotted rests (caused */
+/* by double-hboxing). */
+/* 2.613 */
+/* Bugfix: In pmxa, change "do while" limit to keep from overwriting instno. */
+/* 2.612 */
+/* Enhance AS to allow s or t for smallsize or tinysize */
+/* 2.611 */
+/* Error trap for "D" before any notes in a block. */
+/* 2.610 */
+/* Instrument-wise key changes and transposition (incomplete) */
+/* 2.603 */
+/* 101211 In getpmxmod.for, decreased nline by 2 to fix locating errors */
+/* following reading in an include file. */
+/* 101121 Added some error messages in g1etset.for setup data */
+/* 2.602 */
+/* Correct slur indexing in linebreakslurs. */
+/* Account for comment lines in line count for error messages */
+/* 2.601 */
+/* Bug fix: allow 24 slurs with graces */
+/* 2.60 Changes made make it really big */
+/* increase mv (size of midi) ? Note: MIDI can't have >16 voices w/o */
+/* major reprogramming, and 16 may also be a problem (icmm) */
+/* nm=24 (voices) done */
+/* 24 slurs done */
+/* 24 simultaneous beams (Replace index 24 by 0, so get 0-23) */
+/* bufq*131072 (gfortran only) */
+/* getarg syntax (gfortran only) */
+/* 2.523+ */
+/* Fix voice numbering for normal dynamics and text dynamics */
+/* 2.523 */
+/* Version of bigpmx first posted to Hiroaki's web site. */
+/* 2.522 */
+/* 5/26/10 Replace ipl bits 0-7 with ipl2, add new common for it. */
+/* With 2.521+ as starting version, incorporate bigpmx mods to allow 24 voices. */
+/* 5/13/10 Fix log2 function */
+/* 5/15/10 Fix bitwise storage for dynamics, fix segnoo string length. */
+/* 2.521+ */
+/* 091025 Enable dotting 2nd part of linebreak slur or tie. */
+/* To adjust barno height due to linebreak slur, use \bnrs instead of */
+/* explicitly redefining \raisebarno (pmxb) */
+/* 2.521 */
+/* Bugfix */
+/* 2.520 */
+/* 090519 Enable ligfonts (special figured bass characters) */
+/* 2.519 */
+/* Fix another bug which kept \sk from being output so misaligned some notes. */
+/* 2.518 */
+/* Fix bugs: referencing fig data, char declaration for member of */
+/* common/comfig/ */
+/* 2.517 */
+/* Allow figures in voice 1 + any one other. */
+/* 2.516 */
+/* Allow figures in voice #2 */
+/* 2.515+ to do: Change manual and activate rule against clef change in voice #2. */
+/* 2.515 */
+/* 071222 Changes in getnote to allow auto forced beams to start anywhere. */
+/* 071206 In make2bar, shift fermataup7 to left over centered pause. */
+/* 070901 In doslur, check for nolev <=2 in case slur ends on rest in 2-line */
+/* staff (it was screwing up vertical justification). */
+/* n34 for tweaks to midi durations of quarter note septuplets. */
+/* To do: In ref250.tex, the tables where 's,t,)' is explained, the line */
+/* [+,- i] ... Vertical adjustment of the start of second segment */
+/* should it be replaced by */
+/* [s +,- i] ... Vertical adjustment of the start of second segment */
+/* 2.514 */
+/* Changes in make2bar to get horizontal spacing right when normal grace */
+/* follows after grace */
+/* Changes in dograce to get octaves right for any material entered inside */
+/* \gaft, which shields transpose register changes from the outside world. */
+/* 2.513 */
+/* In make1bar, near end, for forced beams starting with a rest, copy hgt and */
+/* slope tweaks to ALL notes after first, not just the second one, so if */
+/* there's more than one rest at start the tweaks are still observed. */
+/* In beamid and beamend, add stand-alone triply-flagged notes for xtups. */
+/* 2.512 */
+/* Near end of pmxb, fix error trap to allow redundant 'RD' */
+/* Enable multiplicity down-up '][' within xtup. */
+/* 2.511 */
+/* Introduce eskz2 for xtup #'s and bracket lengths, to remove bug caused by */
+/* adjusteskz as in bar 7 of barsant. */
+/* 2.510a */
+/* Test: remove restriction on tempo changes in MIDI macros */
+/* Send to CM for beta testing. */
+/* 2.509+ */
+/* To do: Correct manual on AS. "-" is for smaller staves. */
+/* 2.510 */
+/* Forgot to declare litq, voltxtq as character in subroutine getgrace */
+/* 2.509 */
+/* Corrected small bug in arpeggio shifting (ivx <= iv in call putarp) */
+/* 2.508 */
+/* Allow graces in xtups. New subroutine getgrace. */
+/* 2.507 */
+/* To do: Raise/lower figures. */
+/* To do: Add 24, 29 to list of musicsizes in manual */
+/* New sub adjusteskz to account for ask's when computing lengths of */
+/* brackets for unbeamed xtups, slopes and horizontal posn's of number */
+/* Bug fix: in beamn1, beamid, and beamend, allow unbeamed xtups w/ 2 flags */
+/* Add look-left option for keyboard rests, "L" in rest command, set iornq(30) */
+/* 2.506 */
+/* Fix bug with AK, when simultaneous rests have same duration, use defaults. */
+/* 2.505 */
+/* Keyboard rests AK */
+/* 2.504 */
+/* Space after normal grace: option X[n] */
+/* Fixed og when nv .ne. noinst, by using sepsymq instead of '&' */
+/* (To do) length of xtup bracket when there is added non-collision space. */
+/* Trap musicsize if .ne. 16,20,24,29. */
+/* 2.503 */
+/* Enable arpeggio left shift with ?-x */
+/* To do: In manual, arpeggio over 2 staves. */
+/* Allow musicsize of 24 and 29. Had to define meter font size explicitly, */
+/* also change font size for text dynamics, but not much else so far. */
+/* Bugfix in beamstrt, introduced in 2415, ip was changed before putxtn */
+/* was called, causing error in printing replacement number. */
+/* 2.502 */
+/* Incorporate Dirk Laurie's patch to use { , } , for ties. */
+/* Figure height adjustment: append +[n] */
+/* Change ec font stuff in pmx.tex per Olivier Vogel's comment (CM email?) */
+/* 2.501 */
+/* Readjust horizontal offset back to .8 in LineBreakTies */
+/* Fix zero-subscript (iudorn) in putorn */
+/* 2.50 */
+/* Increase number of text-dynamics (dimension of txtdynq) per block */
+/* from 12 to 41. */
+/* Slur option n to override altered default curvature. */
+/* Allow default ps slur curvature tweaks with Ap+/-c */
+/* 2.416 */
+/* Increase length of textdynq from 24 to 128 */
+/* (Todo) Add comment in manual about blank lines at end. */
+/* Configuration file: Define subroutine getpmxmod, check path in environment */
+/* variable pmxmoddir, check existence, read lines into bufq after setup. */
+/* Increase dimension on idynn in dodyn from 4 to 10 for max number */
+/* of marks in a bar */
+/* Increase allowable # of lines from 2000 to 4000. */
+/* (To do) Replace definition of \liftpausc per Olivier. */
+/* (To do) Fix extraneous error message if RD is placed at very end. */
+/* 2.415 */
+/* Fix "AT" option: replace putxtn,topfile,beamstrt,beamid to use \xnumt */
+/* instead of redefining \xnum. Change font used to \smallfont (as for */
+/* normal xtups, */
+/* Allow slur to start on rest. */
+/* 2.414 */
+/* Correct bug in crdacc when adding accidental to boundary causes number of */
+/* segments to decrease */
+/* Special rule for 3-accidental chords: If no 2nds, place them in order */
+/* top, bottom, middle. */
+/* 2.413 */
+/* Correct bugs in chordal accidentals, related to left-shifted noteheads */
+/* (a) Special problems with downstem when main note needs shifting */
+/* (b) Assign 0 rank to boundary segs due to left-shifted noteheads */
+/* 2.412 */
+/* Change default horiz shift of start of seg 2 of linebreak slurs: */
+/* -.7 for slurs, -1.2 for ties, */
+/* Use height of start of seg 1 slur itself for end of 1 and start of 2. */
+/* 2.411 */
+/* "Apl" activates special treatment of linebreak slur/tie's; breaks all in 2. */
+/* "s" option in start of slur/tie as precursor to vert/horiz tweaks for end */
+/* of seg 1. of linebreak slur/tie, 2nd "s" for start of seg2. */
+/* With "Apl", curvature adjustments on starting slur command apply to seg 1, */
+/* those on ending command to seg 2. */
+/* 2.410 */
+/* "AT" to allow Col. S.'s tuplet option. Simply input tuplet.tex and redefine */
+/* \xnum, \unbkt, \ovbkt. */
+/* "s" option in main xtup input after "x": slope tweak for bracket. mult(4) is */
+/* flag, mult(5-9) is tweak value+16 */
+/* 2.409 */
+/* Bugfix in docrd for MIDI: Use original pitch in case main/chord were */
+/* switched due to 2nds. */
+/* Remove "o" from error message for "A" command. */
+/* New syntax: optional instrument number separator ":" in movement */
+/* break command to precede a 2-digit instrument. */
+/* Conditional output formats for \setname at movement break to allow */
+/* instrument numbers >9. */
+/* Bugfix in coding to raise barno due to slur over line break (pmxb) */
+/* Move date/version data statement in pmxab to a better place. */
+/* 2.408 */
+/* Allow pnotes{x} when x>9.995 (mod is only to format stmt in make2bar). */
+/* Bug fix in \liftPAusep in notex.for and in pmx.tex */
+/* Character variables for version and date */
+/* For up-stem single graces slurred to down-stem, shift slur start left by */
+/* 0.8 so slur doesn't get too short. */
+/* Initialize and slide mult, same as other full-program variables in /all/. */
+/* 2.407 */
+/* Allow AN[n]"[partname]" to be parsed by scor2prt as filename for part n, */
+/* 2.406 */
+/* Alter PMX: put \dnstrut into \znotes in \starteq (for system spacing */
+/* equalization). */
+/* Put dimensions of double sharps and flats in crdacc (for chords). */
+/* Bugfix: Use sepsymq in LineBreakTies(..) instead of '&' */
+/* Use only first 4 bits of mult for multiplicity+8, so rest can be used */
+/* for other stuff. */
+/* Move stemlength stuff in nacc(27-30) to mult(27-30) to remove conflict. */
+/* 2.405: Not published but saved for safety. */
+/* Option Aph to write \special{header=psslurs.pro} top of each page, so */
+/* dviselec will work OK. */
+/* 2.404 */
+/* Allow slur to end on rest, but not start on a rest. Efaults height */
+/* of ending is default height of start (before any automatic or user- */
+/* defined djustments). User may adjust height as normal from default. */
+/* 2.403 */
+/* Bugfix: turn off repeated beaming patterns.at end of non-last voice. */
+/* 2.402 */
+/* Automatic repeated forced beams. Start with "[:" End with next explicit */
+/* forced beam or end of input block. */
+/* Increase # of forced beams per line of music per input block from 20 to 40 */
+/* 2.401 */
+/* Optional K-Postscript Linebreak Ties, Apl. New subroutine LineBreakTies. */
+/* Makes 1st part normal shape, and starts 2nd part a little further left. */
+/* Enable arpeggios in xtuplets. Had to make time itar(narp) a real. */
+/* 2.40 */
+/* Set up WrotePsslurDefaults (logical) so only write defaults on 1st Ap. */
+/* Fix non-ps-slur input to \midslur (third signed integer). Do not reverse */
+/* sign for down-slurs. */
+/* 2.359 */
+/* Add error exit subroutine stop1 to make exit status g77-compatible.. */
+/* Absolute octave on xtup chord note was 2 octave too high, fixed in getnote */
+/* Fermata on vertically shifted rest: special trap in putorn() to set height. */
+/* Correct multiple grace note spacing for small staves (in dograce, */
+/* define wheadpt1 depending on staff size) */
+/* 2.358 */
+/* Allow curvature corrections at start of postscript slur, in dopsslur() */
+/* Local slur options p[+|-][s|t] for [nos|s]luradjust,[not|t]ieadjust */
+/* Options for [Nos|S]luradjust,[Not|T]ieadjust,[noh|h]alfties: Ap[+|-][s|t|h] */
+/* Make t[ID] act like s[ID]t, most mods in spsslur(). */
+/* Add spsslur() to read in data for ps slurs, call from getnote. */
+/* In beamstrt, save args for SetupB in common comipb to save them for */
+/* 2nd call when xtup starts with rest */
+/* Add spacing for ornament ")" as if it were accidental, in make2bar(). */
+/* Horiz shift start and end of ps ties, dep. on stem dir'n, in dopsslur() */
+/* Horiz. shift start of ps grace slur, 2 places in dograce(). */
+/* Horiz shift end of grace slur in endslur() */
+/* Make st slurs into postscript ties. Separate subroutine dopsslur(), */
+/* Non-beamed xtup: "a" in 1st note or rest, before "x" (sets drawbm=.false.) */
+/* Allow two D"x" on same note. Introduced jtxtdyn1 in dodyn. */
+/* 2.357a */
+/* Fix missing "end" in backfill.com, too-long lines in g1etnote, getnote */
+/* 2.357 */
+/* Increase dimension for # of lit TeX strings from 52 to 83. */
+/* Allow blank rest in middle of xtuplet. Only mods in g*etnote(). */
+/* 2.356 */
+/* Increased some dimensions from 30 to 40 to allow up to 40 pages. */
+/* In unbeamed xtups, "n" did not suppress bracket. Fixed in beamstrt(). */
+/* Fix parsing of "f,h,H,HH" in sslur. */
+/* Fix bug with cdot, note-level for slur termination (in getnote) */
+/* 2.355 */
+/* Midi transposition: IT[+|-][n1][+|-][n2]...[+|-][n(noinst)], */
+/* n=# of half-steps. Restrict to mult. of 12 now, to avoid key-sig issues */
+/* Make midi recognize ps ties in doslur. */
+/* Correct ttieforsl so that it eats 2nd argument properly, using \zcharnote */
+/* to get octave right. */
+/* 2.354 */
+/* With postscript slurs, make t-slurs real ties by inserting replacement */
+/* macros \tieforisu, etc, defined in pmx.tex */
+/* Check for open cresc or decresc at end of input block, using list[de]cresc */
+/* Hairpin syntax conditional on postscript slurs. Backup to fill in start */
+/* level, using new backfill(...). Separate height tweaks for */
+/* start and finish. */
+/* 2.353 */
+/* K-0+n to transpose by half step (rather than just change key) */
+/* Allow "rm[n]" when nv>1. Require it in all parts. Just write a stack of */
+/* \mbrest's */
+/* Enable "Rz"; define \setzalaligne in pmx.tex. Special treatment at end */
+/* of input block before movement break, and at start of block after */
+/* movement break, using \newmovement rather than \setzalaligne, since */
+/* former already redefines \stoppiece. In second case, set rptfg2='z'. */
+/* Make clefq(nm) common between pmxb and getnote; change references in */
+/* getnote at 'M' to array elements, setting all new clefs as you go. */
+/* 2.352 */
+/* Remove \parskip redefinition from pmx.tex; write it into TeX file when */
+/* "Ae" is invoked. */
+/* Ap to activate postscript slurs. Add macro \psforts to pmx.tex to redefine */
+/* \tslur in case \midslur was used. Allow slur inputs 'f','h','H','HH', */
+/* translate them thru mapping to (1,4,5,6) as \midslur params, then let */
+/* \psforts translate them back to ps slur macors. */
+/* 2.351 */
+/* Number slurs from 0 up instead of 11 down, anticipating postscript slurs. */
+/* Write "\eightrm" instead of "\cmr8" for \figfont with small baseline size. */
+/* Increase length of basenameq to 44 characters everywhere. */
+/* Increase dimension of mcpitch (midi-chord-pitch) to 20. */
+/* Set default systems per page to 1 if nv>7 */
+/* In pmxb, move place where isystpg is reset to 0, so that \eject gets */
+/* written when there is just one system per page. */
+/* 2.35 */
+/* Cautionary accidentals with 'c' anywhere in note symbol. */
+/* NEW pmx.tex with \resetsize to set size to normal or small depending on */
+/* current \internote. Used with new coding in dograce() to get right */
+/* new size in case user has \setsize'ed some lines to \smallvalue. For */
+/* \smallvalue-sized staves, redefine \tinynotesize to give 11-pt font. */
+/* Affects pmx.tex. */
+/* Continuation figure with fractional length. May now mix with other figures. */
+/* If another figure follow Cont-fig, separate with colon. */
+/* 2.342 */
+/* Bugfix in getnote to recognize relative octave shift in grace at start of */
+/* input block. */
+/* In make2bar, initialize islhgt=0 earlier than before (possible solution */
+/* to Suse g77 compile problem that I could not reproduce).. */
+/* Bugfix in beamstrt & beamn1 for r2x6 c4D d d d */
+/* 2.341 */
+/* Syntax check: Forced page break page number must be > than previous. */
+/* Bugfix: Define ivx when "sliding down" breath/caesure data in pmxb. */
+/* 2.34 */
+/* New pmx.tex with redefined liftpausc */
+/* Bug fix with dotted, non-beamed xtups. */
+/* 2.332 */
+/* Fix bugs in horizonal shifts, spacing, for accid's, graces, noteheads. */
+/* Allow arbitrary pos. input to W in g1etnote and getnote. */
+/* 2.331 */
+/* Bug-fix in dodyn(..): typo on length of arg of txtdyn */
+/* 2.33 */
+/* Caesura (oc), breath (ob). Set iornq(28), store rest of data in ibcdata() */
+/* 2.321 */
+/* Rescale accidental shifts. Still use 7 bits but now map (0,127) */
+/* onto (-1.,5.35) */
+/* Fix ihornb bug in dodyn, seen with dynamics on lower-voice non-beamed xtups */
+/* 2.32 (Noticed after posting) */
+/* Prohibit "/" as figure. */
+/* 2.32 (Posted) */
+/* Tidied up accidentals in chords, do spacing. */
+/* Still to do: */
+/* check for "(" on chord notes in spacing algo */
+/* small accids */
+/* double accids */
+/* autoshift slurs */
+/* 2.310 */
+/* Extra call to precrd ahead of spacing chk, and single-note crd/acc */
+/* shifts seem OK, but not multiple. crd/acc shifts not recorded 1st time. */
+/* 2.309 */
+/* Alternate algo for accid shifts in chords. */
+/* 2.308 */
+/* Auto horiz. notehead shifting added to precrd. */
+/* 2.307 */
+/* Auto shifting of multiple accidentals in chords. */
+/* "Ao" in main chord note to keep accidentals in order. Set nacc(28). */
+/* If there are any manual main or chord note shifts, then */
+/* If any manual shift is preceded by "A" then */
+/* 1. Auto-shifting proceeds */
+/* 2. "A"-shifts add to autoshifts */
+/* 3. non-"A" shifts are ignored! */
+/* Else (>0 man shifts, none has "A") */
+/* No auto-ordering, No autoshifts, */
+/* End if */
+/* End if */
+/* 2.306 */
+/* Initialize legacy note level to middle C in case user forgets to set */
+/* octave. */
+/* Shift xtup note? */
+/* Shift in elemskips rather than noteheads? */
+/* 2.305 */
+/* Stop pmxb from multiple endvolta's at start of new page. */
+/* 2.304 */
+/* "Sx" in a note means shorten stemlength by x \internotes. "Sx:" turn on */
+/* for multiple notes in the voice, "S:" last shortened note. */
+/* 2.303 */
+/* vshrink stuff all OK? Description is in pmxb. */
+/* 2.302 */
+/* Toggle vshrink with "Av". vshrink normally kicks in when \interstaff */
+/* hits 20. This still needs work. */
+/* Add " /" to last line if last char is not % or /. */
+/* 2.301 */
+/* Check in beamn1 for single note before multiplicity down-up. */
+/* allow '.PMX' as well as '.pmx' */
+/* 2.299 */
+/* Correct typo in pmxb involving PMXbarnotrue. */
+/* Replacement printed number for xtup: Unsigned integer after 'n' after 'x' */
+/* Minor upgrade parsing xtuplet options 'x...' */
+/* Correct dimension of nxtinbm in make2bar. */
+/* 2.298 */
+/* Account for doubled xtup notes in subroutine getx (user-defined spaces), */
+/* by adding ndoub as an argument.. */
+/* 2.297 */
+/* Created and solved compiler problem. Put drawbm(NM) in its own common. */
+/* Add new def'ns [\a|PA]usc, \lift[pa|PA]usc to pmx.tex, use them in make2bar */
+/* when \centerbar is used. */
+/* Modify \mbrest & \CenterBar in pmx.tex to use \volta@endcor etc. Have PMX */
+/* use right 2nd and 3rd args for \mbrest when key, meter, or clef changes. */
+/* 2.296 */
+/* Correct printed numbers for forced beams with multiple xtups. For each beam */
+/* make list in setupb by voice of eloff (h-offset) and mtupv (printed #) */
+/* Increase lengths of jobname and infileq by 20 characters */
+/* Enable whole notes and breves as 1st or last note of xtup in beamn1 and */
+/* beamend, and wholes in beamid. */
+/* 2.295 */
+/* Midi balance Ib[n1]:[n2]:...[nn] */
+/* Single-slope beam groups [...]-[...] */
+/* Trap "i" unless after accidental (main notes, xtups, chord notes) */
+/* 2.294 */
+/* Unequal xtups with "D" to double a note in an xtup. */
+/* As above, "F" will (a) increase multiplicity by 1 for marked note and next */
+/* one and (b) add a dot to the first one. */
+/* Fix bug with e.g. c84 [ .d e.f ] by checking whether forced beam is on */
+/* when "." is encountered, then correcting beam start time.(end of getnote) */
+/* MIDI velocity (volume) set: Iv[n1]:[n2]:[n3]... */
+/* 2.293 */
+/* Check for single notes spanning bar lines. */
+/* Correct various bugs with staff-jumping beams. (1) for 2nd segment, vxtup */
+/* must be set in make2bar since beamstrt is not called, fixing problem with */
+/* dot at end. (2) add ivjb2 to flag which voice has 2nd segment and fix */
+/* problem when >2 staves. */
+/* Add nodur to args of dodyn, so can check if stemless and avoid height tweak */
+/* Correct bug in getdyn setting flag in idynda2(0) for manual horiz. tweak */
+/* 2.292a */
+/* Undo syntax check for Type 2 or 3 TeX string starting in column 1. */
+/* Meanwhile, Werner's problem with a mid-line Type 3 string has gone away?! */
+/* 2.292 */
+/* Allow comments in xtuplets */
+/* Enable multiple octave jumps in grace notes. */
+/* Allow dynamics in xtuplets. */
+/* Fix bug in getdyn searching for end of text string (correct length of lineq */
+/* to 128) */
+/* Fix bug in dodyn, must ignore horiz. interaction tweak for */
+/* user-text (idno = 0) */
+/* Syntax check for Type 2 or 3 TeX string starting in column 1 */
+/* (NOTE: later undone!) */
+/* Syntax check for page number > npages at forced line break. */
+/* 2.291 */
+/* Fix error in AS command (accid spacing for small systems), making only */
+/* one spec per staff, nv total. */
+/* Stop using MIDI channel 10 */
+/* 2.29 */
+/* Fix error in console output format for # of bytes used in MIDI file. */
+/* Fix bug in dograce so no space is added between grace and main note when */
+/* there is a MIDI-only accidental. */
+/* Fix bug so oes?+4 works. It was too ugly to explain. */
+/* ...Different ways of storing accidental specs on input and output. */
+/* No longer zap \writezbarno in special situations. */
+/* Fix bug in dyntxt level on rest */
+/* Line spacing equalization. Add macros \starteq, \endeq, \spread, etc. */
+/* Activate with Ae. (Maybe later could input alternate values for */
+/* \upamt, \dnamt, \parskip). Put \starteq on 1st note in voice 1 */
+/* in the page, and \endeq on 1st note of next-to-last line in page. */
+/* 2.28 */
+/* Flip direction of forced beam "[f..." */
+/* Fix beam numbering for staff jumping beams. Uses irest(23,24,29,30) */
+/* Fix bug in sliding ip's for txtdyn's */
+/* In dyn's allow vert. offsets +/-64, horiz +/-25.6 (store in idnyda2(1-99) */
+/* 2.27 */
+/* Comment out lines in dodyn checking number of dynamic marks found. Voice */
+/* order may not be monotonic if two lines on a staff. */
+/* Literal dynamic: D"[text]" */
+/* 2.26 */
+/* Allow hairpin start-stop on same note by disabling auto-tweaks in dodyn, */
+/* increasing dimension of idynn to 4 to allow 4 symbols on same note. */
+/* Increase voltxtq length from 10 to 20. */
+/* AS[-/0][-/0]... to inform PMX that "-" voices are small, and rough */
+/* accounting for ast's is done by defining effective headwidth */
+/* whead1 in makebar2 to be 0.8*whead. */
+/* 2.25 */
+/* Fix logic bug with sepsym's when # of instruments changes. */
+/* Slight increases in default offsets for hairpin starts after "p" */
+/* 2.24 */
+/* Hairpins D< or D> as toggle. */
+/* Many automatic position tweaks for letter-group dynamics and hairpins. */
+/* 2.23 */
+/* Continued rhythmic shortcuts: space followed by "." or "," */
+/* 2.22 */
+/* In call to doslur, change tno(...) to tnote(...). This was only */
+/* used when checking to slurs per stem directions, and should have been */
+/* the note duration all along. */
+/* MIDI-only accidental, bit 17 in nacc, or 27 in icrdat. */
+/* Use "i" anywhere in note symbol. */
+/* 2.21 */
+/* Increase from 20 to 30 dimensions for movement breaks and midi sections. */
+/* Fix out-of-order declarations per mutex comments */
+/* Add "Bad error" and "Kluging" messages to log file. */
+/* 2.197 */
+/* add /comips/ to save tie-check midi variables */
+/* For spacing of clef changes at start of input block, changed integer time */
+/* lastnodur to prevtn, so it works with xtups. Possible incompatibility! */
+/* 2.196 */
+/* Fix Ickbug with time check in ncmid() */
+/* Interchange \fermataup7 and \pausec to get proper alignment */
+/* Enable French violin clef "f", number 7 in PMX, but 9 in MusiXTeX. */
+/* Add defn's of \hsp, \hspp to pmx.tex */
+/* Fix pre-slurs on xtup chord notes. */
+/* Fixed raised PAuse, define \liftPAuse */
+/* Replace \zbreve\sk with \breve. */
+/* Made "1" work as mtrdenl by doubling it and mtrnuml. BUT WAIT...what */
+/* about "o" and 1 as shorthand for 16???? Search for "Kluge" */
+/* Added "vo" (voice) as MIDI instrument 55 */
+/* Allow 3-digit page numbers (search for "toppageno") */
+/* Fix bug caused by prior fix (cancelling accid after bar line was ignored). */
+/* Fix double accids in chords */
+/* 2.194 */
+/* Fix bug with accid/tie/barline/chord in addmidi by restructuring accid if */
+/* block. */
+/* Add meter to MIDI file with every pause */
+/* Purify FORTRAN? */
+/* 2.193 */
+/* Increased # of in-line TeX strings from 36 to 52. */
+/* Fix entry of # of bytes in header of tempo/meter/key track to allow >255. */
+/* 2.191 */
+/* Event track: Tempos, meters, keys all together. Data in comevent */
+/* 2.15 */
+/* Pretty good midi capability. Still no attention to slurs on chord notes. */
+/* 2.11 */
+/* 11 Dec 99 c rm1 */
+/* 11 Dec 99 "oes?", "oe?" */
+/* 11 Dec 99 Cancel slur horizontal tweaks with non-stemmed notes */
+/* 11 Dec 99 Error message for shifted, repeated ornaments. */
+/* 2.10 (Version 2.1) */
+/* Fix bug with lowdot and xtuplets */
+/* 2.09 */
+/* Fix bug with multiple ornament heights over beams, when one is . or _ */
+/* Error message from pmxa if rest on last note of xtup. */
+/* Enable 12 slurs. */
+/* Reinstate multiple rests at start of xtup. */
+/* 2.07 */
+/* Combine consecutive type-1 TeX strings. */
+/* \midslur and \curve as 3rd signed digit in slur termination, + 2 opt.int's. */
+/* Fixed breve chord notes in docrd */
+/* Check irest(28) as well as vxtup when setting nodur for chord notes, since */
+/* vxtup isn't set until 1st *main* note in xtup */
+/* Vectorize nolev1, slope, ixrest. Klug fix for xtups with variable spacing. */
+/* 2.06+ */
+/* Make deterministic the beam slope calculation when there are an even # of */
+/* slopes in list and middle two are equal magnitude but opposite sign. */
+/* pmxa Trap for "o:" before 1st note in block */
+/* Partial bug fix for 64th notes in xtuplets. */
+/* Make ixrest a vector, since with new time scheme may not finish xtup in */
+/* same notes block. */
+/* Increase max # of pages from 20 to 30 (dimensions of nsystp,..., in pmxb) */
+/* 2.06 */
+/* Account for changes in nv when computing \interstaff. Add a counter */
+/* nistaff(iflb) = # of interstaff spaces per system = nv-1. Set whenever */
+/* setting isysflb(iflb). Note nv can only change at a forced line break. */
+/* Note also, iflb starts at 0! */
+/* 2.05 */
+/* Automatic start of new notes group with part 2 of staff-jump beam */
+/* In make1bar, set irest bit 29 of lowest-voice note at same time, */
+/* use as flag when making notes groups. */
+/* For now, remove dummy blank line at end...it zaps terminal repeats. */
+/* 2.02 */
+/* Fixed slur-counting bug for multiple, slurred, aftergraces. */
+/* 2.01 */
+/* Increase to ask(1400) */
+/* Increase max forced page breaks to 18 */
+/* Define pausc for centered pause */
+/* 2.0a */
+/* Insert dummy blank line at very end to handle input files w/o terminal CR-LF */
+/* pmx03r */
+/* Option m[n] in S symbol to change musicsize (for parts) */
+/* Double dotted rests now work. */
+/* Write file name to log file */
+/* Check existence of input file */
+/* Allow 24-char jobname, may end with ".pmx" */
+/* Comment out time stuff */
+/* Replace 3-argument getarg with 2-argument + iargc */
+/* Fix bug with negative noinst due to nint<=int replacement */
+/* move lovation of iv in isdat1 to allow iv>7. */
+/* Set nm=12 */
+/* pmx03q */
+/* replace int(x+.001) with nint(x) */
+/* Write TeX file name to screen and to pml. */
+/* Replace char(...) with chax(...) to sovle msdev bug. */
+/* Bug fix: macro terminations when M is on a line by itself. */
+/* Bug fix: don't accumulate space for XS in pmxa. */
+/* Streamline Macros: use pointers to bufq instead of scratch files */
+/* pmx03p */
+/* Store input file in single character array bufq. */
+/* lbuf(i)*2 is length of line i */
+/* ipbuf is position just before next line to be read. */
+/* pmx03 */
+/* Optimize read/writes */
+/* pmx02 */
+/* Fix line count (for errors) when there are saved macros */
+/* pmx01 */
+/* In optimize mode, open/close macros (Watch out for residual zz files!) */
+/* Command line input */
+/* Option Ao to optimize, otherwise normal processing */
+
+/* cccccc */
+
+/* immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing */
+/* nmidsec section starts and stops based on PLAYING macros (not recording). */
+
+/* cccccccccccccccccccccccc */
+
+
+/* cccccccccccccccccccccccc */
+/* itstart = mytime() */
+ s_copy(comver_1.versionc, version, (ftnlen)5, (ftnlen)5);
+
+/* Initialize midi parameters */
+
+ commmac_1.gottempo = FALSE_;
+ commidi_1.ismidi = FALSE_;
+ commidi_1.debugmidi = FALSE_;
+ commidi_1.relacc = FALSE_;
+ commmac_1.mmacrec = FALSE_;
+ commmac_1.nmidsec = 1;
+ commidi_1.mgap = 10;
+ comevent_1.miditime = 0;
+ comevent_1.lasttime = 0;
+ commidi_1.nmidcrd = 0;
+ comslm_1.nusebl = 0;
+ commidi_1.notmain = FALSE_;
+ for (ivx = 1; ivx <= 24; ++ivx) {
+ commidi_1.twoline[ivx - 1] = FALSE_;
+ commidi_1.midinst[ivx - 1] = 6;
+ commvel_1.midivel[ivx - 1] = 127;
+ commvel_1.midibal[ivx - 1] = 64;
+ commvel_1.miditran[ivx - 1] = 0;
+/* L3: */
+ }
+ for (icm = 0; icm <= 24; ++icm) {
+ commidi_1.imidi[icm] = 0;
+ commidi_1.restpend[icm] = FALSE_;
+ commidi_1.trest[icm] = 0.f;
+ comslm_1.levson[icm] = 0;
+ comslm_1.levsoff[icm] = 0;
+ comslm_1.slmon[icm] = FALSE_;
+ comslm_1.naccbl[icm] = 0;
+ comdiag_1.n69[icm] = 0;
+ comdiag_1.n34[icm] = 0;
+ commmac_1.msecstrt[icm] = 1;
+/* L12: */
+ }
+
+/* End of midi parameter initialization */
+
+ commus_1.musize = 0;
+ optimize = FALSE_;
+ numargs = iargc_();
+ if (numargs == 0) {
+ s_wsle(&io___10);
+ do_lio(&c__9, &c__1, "You could have entered a jobname on the comman"
+ "d line,", (ftnlen)53);
+ e_wsle();
+ s_wsle(&io___11);
+ do_lio(&c__9, &c__1, " but you may enter one now:", (ftnlen)32);
+ e_wsle();
+ s_rsfe(&io___12);
+ do_fio(&c__1, jobname, (ftnlen)44);
+ e_rsfe();
+ numargs = 1;
+ } else {
+/* call getarg(1,jobname,idum) ! May need to replace this w/ next line */
+ getarg_(&c__1, jobname, (ftnlen)44);
+ }
+L10:
+ ljob = lenstr_(jobname, &c__44, (ftnlen)44);
+ if (ljob > 44) {
+ s_wsle(&io___15);
+ do_lio(&c__9, &c__1, "Jobname is too long. Try again.", (ftnlen)31);
+ e_wsle();
+ stop1_();
+ } else if (ljob == 0) {
+ s_wsle(&io___16);
+ do_lio(&c__9, &c__1, "No was jobname entered. Try again.", (ftnlen)34)
+ ;
+ e_wsle();
+ stop1_();
+ } else if (numargs == 2) {
+ if (ljob == 2 && s_cmp(jobname, "-o", (ftnlen)2, (ftnlen)2) == 0) {
+ optimize = TRUE_;
+/* call getarg(2,jobname,idum) ! May need to replace this w/ next line */
+ getarg_(&c__2, jobname, (ftnlen)44);
+ numargs = 1;
+ goto L10;
+ } else {
+ s_wsle(&io___17);
+ do_lio(&c__9, &c__1, "Illegal option on command line", (ftnlen)30)
+ ;
+ e_wsle();
+ stop1_();
+ }
+ }
+
+/* Strip ".pmx" if necessary */
+
+/* Computing MAX */
+ i__1 = i_indx(jobname, ".pmx", (ftnlen)44, (ftnlen)4), i__2 = i_indx(
+ jobname, ".PMX", (ftnlen)44, (ftnlen)4);
+ ndxpmx = max(i__1,i__2);
+ if (ndxpmx > 0) {
+ s_copy(jobname, jobname, (ftnlen)44, ndxpmx - 1);
+ ljob += -4;
+ }
+
+/* Check for existence of input file */
+
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".pmx";
+ s_cat(infileq, a__1, i__3, &c__2, (ftnlen)47);
+ ioin__1.inerr = 0;
+ ioin__1.infilen = 47;
+ ioin__1.infile = infileq;
+ ioin__1.inex = &fexist;
+ ioin__1.inopen = 0;
+ ioin__1.innum = 0;
+ ioin__1.innamed = 0;
+ ioin__1.inname = 0;
+ ioin__1.inacc = 0;
+ ioin__1.inseq = 0;
+ ioin__1.indir = 0;
+ ioin__1.infmt = 0;
+ ioin__1.inform = 0;
+ ioin__1.inunf = 0;
+ ioin__1.inrecl = 0;
+ ioin__1.innrec = 0;
+ ioin__1.inblank = 0;
+ f_inqu(&ioin__1);
+ if (! fexist) {
+ ioin__1.inerr = 0;
+ ioin__1.infilen = ljob + 4;
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".PMX";
+ s_cat(ch__1, a__1, i__3, &c__2, (ftnlen)48);
+ ioin__1.infile = ch__1;
+ ioin__1.inex = &fexist;
+ ioin__1.inopen = 0;
+ ioin__1.innum = 0;
+ ioin__1.innamed = 0;
+ ioin__1.inname = 0;
+ ioin__1.inacc = 0;
+ ioin__1.inseq = 0;
+ ioin__1.indir = 0;
+ ioin__1.infmt = 0;
+ ioin__1.inform = 0;
+ ioin__1.inunf = 0;
+ ioin__1.inrecl = 0;
+ ioin__1.innrec = 0;
+ ioin__1.inblank = 0;
+ f_inqu(&ioin__1);
+ if (! fexist) {
+ s_wsle(&io___21);
+/* Writing concatenation */
+ i__3[0] = 17, a__1[0] = "Cannot find file ";
+ i__3[1] = 47, a__1[1] = infileq;
+ s_cat(ch__2, a__1, i__3, &c__2, (ftnlen)64);
+ do_lio(&c__9, &c__1, ch__2, (ftnlen)64);
+ e_wsle();
+ stop1_();
+ } else {
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".PMX";
+ s_cat(infileq, a__1, i__3, &c__2, (ftnlen)47);
+ }
+ }
+
+/* Open a log file */
+
+ o__1.oerr = 0;
+ o__1.ounit = 15;
+ o__1.ofnmlen = ljob + 4;
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".pml";
+ s_cat(ch__1, a__1, i__3, &c__2, (ftnlen)48);
+ o__1.ofnm = ch__1;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+/* Writing concatenation */
+ i__4[0] = 21, a__2[0] = "This is PMX, Version ";
+ i__4[1] = 5, a__2[1] = version;
+ i__4[2] = 2, a__2[2] = ", ";
+ i__4[3] = 9, a__2[3] = date;
+ s_cat(ch__3, a__2, i__4, &c__4, (ftnlen)37);
+ printl_(ch__3, (ftnlen)37);
+ ljob4 = ljob;
+/* Writing concatenation */
+ i__3[0] = 8, a__1[0] = "Opening ";
+ i__3[1] = 47, a__1[1] = infileq;
+ s_cat(ch__4, a__1, i__3, &c__2, (ftnlen)55);
+ printl_(ch__4, (ftnlen)55);
+ o__1.oerr = 0;
+ o__1.ounit = 18;
+ o__1.ofnmlen = 47;
+ o__1.ofnm = infileq;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+
+/* Copy input file into common buffer */
+
+ inbuff_1.ipbuf = 0;
+ truelinecount_1.linewcom[0] = 1;
+ for (inbuff_1.ilbuf = 1; inbuff_1.ilbuf <= 4000; ++inbuff_1.ilbuf) {
+ ncomments = 0;
+L14:
+ i__1 = s_rsfe(&io___24);
+ if (i__1 != 0) {
+ goto L9;
+ }
+ i__1 = do_fio(&c__1, lnholdq, (ftnlen)128);
+ if (i__1 != 0) {
+ goto L9;
+ }
+ i__1 = e_rsfe();
+ if (i__1 != 0) {
+ goto L9;
+ }
+ inbuff_1.lbuf[inbuff_1.ilbuf - 1] = (shortint) lenstr_(lnholdq, &
+ c__128, (ftnlen)128);
+ if (inbuff_1.lbuf[inbuff_1.ilbuf - 1] == 0) {
+
+/* Blank line. Make it a single blank with length 1 */
+
+ inbuff_1.lbuf[inbuff_1.ilbuf - 1] = 1;
+ s_copy(lnholdq, " ", (ftnlen)128, (ftnlen)1);
+ }
+
+/* Now line has at least one non blank character. Check for comment */
+/* As of Version 260, do not copy comments into bufq */
+/* But need to count %'s for error messaging */
+/* if (lnholdq(1:1).eq.'%') go to 14 */
+ if (*(unsigned char *)lnholdq == '%') {
+ ++ncomments;
+ goto L14;
+ }
+
+/* When here, have counted all preceding comments and have a real line */
+
+ if (inbuff_1.ilbuf > 1) {
+ truelinecount_1.linewcom[inbuff_1.ilbuf - 1] =
+ truelinecount_1.linewcom[inbuff_1.ilbuf - 2] + 1 +
+ ncomments;
+ } else {
+ truelinecount_1.linewcom[0] = ncomments + 1;
+ }
+ if (inbuff_1.ipbuf + inbuff_1.lbuf[inbuff_1.ilbuf - 1] > 65536) {
+ s_wsle(&io___26);
+ do_lio(&c__9, &c__1, "Too many characters in file, stopping", (
+ ftnlen)37);
+ e_wsle();
+ stop1_();
+ }
+ i__1 = inbuff_1.ipbuf;
+ s_copy(inbuff_1.bufq + i__1, lnholdq, inbuff_1.ipbuf + inbuff_1.lbuf[
+ inbuff_1.ilbuf - 1] - i__1, (ftnlen)128);
+ inbuff_1.ipbuf += inbuff_1.lbuf[inbuff_1.ilbuf - 1];
+/* L8: */
+ }
+ printl_("Too many lines in input file", (ftnlen)28);
+ stop1_();
+L9:
+
+/* Insert dummy line to handle input files w/o CR-LF at end. */
+
+ inbuff_1.nlbuf = inbuff_1.ilbuf - 1;
+/* nlbuf = ilbuf */
+/* bufq(ipbuf+1:ipbuf+3) = ' / ' */
+/* lbuf(nlbuf) = 3 */
+ cl__1.cerr = 0;
+ cl__1.cunit = 18;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ i__1 = maxit;
+ for (numit = 1; numit <= i__1; ++numit) {
+ if (optimize) {
+ printl_("Starting an iteration", (ftnlen)21);
+ }
+
+/* When isfirst=.true., pmxa() generates linebreaks normally, output in nbars0. */
+/* Otherwise, nbars0 is the input */
+/* When islast=.false., pmxb only returns poe's, otherwise does whole job */
+
+ pmxa_(jobname, &ljob4, &isfirst, &nsyst, nbars0, &optimize, (ftnlen)
+ 44);
+ if (! optimize) {
+ if (commidi_1.ismidi) {
+
+/* Set up channel numbers for midi. */
+
+ commidi_1.numchan = 0;
+ for (a1ll_1.iv = a1ll_1.nv; a1ll_1.iv >= 1; --a1ll_1.iv) {
+ if (commidi_1.twoline[a1ll_1.iv - 1]) {
+ commidi_1.midchan[a1ll_1.iv + 23] = commidi_1.numchan;
+ ++commidi_1.numchan;
+ }
+ commidi_1.midchan[a1ll_1.iv - 1] = commidi_1.numchan;
+ ++commidi_1.numchan;
+/* L11: */
+ }
+
+/* numchan will now be the number of channels, but max channel # is numchan-1 */
+
+/* Set up velocities, balances, and midi-transpositions */
+
+ for (a1ll_1.iv = a1ll_1.nv; a1ll_1.iv >= 1; --a1ll_1.iv) {
+ if (commidi_1.twoline[a1ll_1.iv - 1]) {
+ commvel_1.midvelc[commidi_1.midchan[a1ll_1.iv + 23]] =
+ commvel_1.midivel[a1ll_1.iv - 1];
+ commvel_1.midbc[commidi_1.midchan[a1ll_1.iv + 23]] =
+ commvel_1.midibal[a1ll_1.iv - 1];
+ commvel_1.midtc[commidi_1.midchan[a1ll_1.iv + 23]] =
+ commvel_1.miditran[a1ll_1.iv - 1];
+ }
+ commvel_1.midvelc[commidi_1.midchan[a1ll_1.iv - 1]] =
+ commvel_1.midivel[a1ll_1.iv - 1];
+ commvel_1.midbc[commidi_1.midchan[a1ll_1.iv - 1]] =
+ commvel_1.midibal[a1ll_1.iv - 1];
+ commvel_1.midtc[commidi_1.midchan[a1ll_1.iv - 1]] =
+ commvel_1.miditran[a1ll_1.iv - 1];
+/* L13: */
+ }
+ }
+
+/* TEMPORARY!!! */
+
+ s_wsle(&io___30);
+ do_lio(&c__9, &c__1, "nlbuf: ", (ftnlen)7);
+ do_lio(&c__3, &c__1, (char *)&inbuff_1.nlbuf, (ftnlen)sizeof(
+ integer));
+ e_wsle();
+ ip1 = 1;
+ i__2 = inbuff_1.nlbuf;
+ for (ilb = 1; ilb <= i__2; ++ilb) {
+/* write(15,'(2i5,a40,3i5)')ilb,lbuf(ilb), */
+/* * bufq(ip1:ip1+lbuf(ilb)-1), */
+/* * (ichar(bufq(ip1+lbuf(ilb)-k:ip1+lbuf(ilb)-k)), */
+/* * k=min(3,lbuf(ilb)),1,-1) */
+ ip1 += inbuff_1.lbuf[ilb - 1];
+/* L10000: */
+ }
+ iplast = ip1 - 1;
+
+/* Check to see if (1) last line is "<blank><blank>/" and (2) next to last */
+/* line is "/" */
+
+/* print*,'iplast:',iplast */
+/* print*,'Last line:' */
+/* print*,bufq(iplast+1-lbuf(nlbuf):iplast) */
+/* print*,'Last char of next to last line:' */
+/* print*,bufq(iplast-lbuf(nlbuf):iplast-lbuf(nlbuf)) */
+ i__2 = iplast + 1 - inbuff_1.lbuf[inbuff_1.nlbuf - 1] - 1;
+ if (s_cmp(inbuff_1.bufq + i__2, " /", iplast - i__2, (ftnlen)3)
+ == 0) {
+ i__2 = iplast - inbuff_1.lbuf[inbuff_1.nlbuf - 1] - 1;
+ if (s_cmp(inbuff_1.bufq + i__2, "/", iplast - inbuff_1.lbuf[
+ inbuff_1.nlbuf - 1] - i__2, (ftnlen)1) == 0) {
+ s_wsle(&io___34);
+ do_lio(&c__9, &c__1, "Removing last line of \"<blank><bl"
+ "ank>/\"", (ftnlen)39);
+ e_wsle();
+ s_wsle(&io___35);
+ do_lio(&c__9, &c__1, "Removing last line of \"<blank><bl"
+ "ank>/\"", (ftnlen)39);
+ e_wsle();
+ --inbuff_1.nlbuf;
+ }
+ }
+
+ pmxb_(&c_true, poe0, &ncalls, &optimize);
+ if (commidi_1.ismidi) {
+
+/* Write midi file */
+
+ o__1.oerr = 0;
+ o__1.ounit = 51;
+ o__1.ofnmlen = ljob + 4;
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".mid";
+ s_cat(ch__1, a__1, i__3, &c__2, (ftnlen)48);
+ o__1.ofnm = ch__1;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ if (commidi_1.debugmidi) {
+ o__1.oerr = 0;
+ o__1.ounit = 52;
+ o__1.ofnmlen = ljob + 4;
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".dbm";
+ s_cat(ch__1, a__1, i__3, &c__2, (ftnlen)48);
+ o__1.ofnm = ch__1;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ }
+ printl_(" ", (ftnlen)1);
+/* Writing concatenation */
+ i__5[0] = 8, a__3[0] = "Writing ";
+ i__5[1] = ljob, a__3[1] = jobname;
+ i__5[2] = 4, a__3[2] = ".mid";
+ s_cat(ch__5, a__3, i__5, &c__3, (ftnlen)56);
+ printl_(ch__5, ljob + 12);
+ writemidi_(jobname, &ljob, (ftnlen)44);
+ }
+ cl__1.cerr = 0;
+ cl__1.cunit = 15;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ s_stop("", (ftnlen)0);
+ }
+ s_wsle(&io___37);
+ do_lio(&c__9, &c__1, "nlbuf: ", (ftnlen)7);
+ do_lio(&c__3, &c__1, (char *)&inbuff_1.nlbuf, (ftnlen)sizeof(integer))
+ ;
+ e_wsle();
+ ip1 = 1;
+ pmxb_(&c_false, poe0, &ncalls, &optimize);
+ poestats_(&nsyst, poe0, &poebar0, &devnorm0);
+
+/* Save initial deviation and line breaks for later comparison */
+
+ if (numit == 1) {
+ devpmx = devnorm0;
+ i__2 = nsyst;
+ for (isys = 1; isys <= i__2; ++isys) {
+ nbari[isys - 1] = nbars0[isys - 1];
+/* L20: */
+ }
+ }
+ sortpoe_(&nsyst, poe0, ipoe);
+ for (iupord = nsyst; iupord >= 1; --iupord) {
+ isysu = ipoe[iupord - 1];
+ s_wsle(&io___46);
+ do_lio(&c__9, &c__1, "isysu=", (ftnlen)6);
+ do_lio(&c__3, &c__1, (char *)&isysu, (ftnlen)sizeof(integer));
+ e_wsle();
+ s_wsle(&io___47);
+ do_lio(&c__9, &c__1, "isysu=", (ftnlen)6);
+ do_lio(&c__3, &c__1, (char *)&isysu, (ftnlen)sizeof(integer));
+ e_wsle();
+
+/* Skip if system isysu has poe0 < avg or isysd has poe0 > avg */
+
+ if (poe0[isysu - 1] < poebar0) {
+ goto L1;
+ }
+ i__2 = nsyst;
+ for (idnord = 1; idnord <= i__2; ++idnord) {
+ isysd = ipoe[idnord - 1];
+ if (isysu == isysd || nbars0[isysd - 1] == 1 || poe0[isysd -
+ 1] > poebar0) {
+ goto L5;
+ }
+ i__6 = nsyst;
+ for (isyst = 1; isyst <= i__6; ++isyst) {
+ nbars[isyst - 1] = nbars0[isyst - 1];
+ if (isyst == isysu) {
+ ++nbars[isyst - 1];
+ } else if (isyst == isysd) {
+ --nbars[isyst - 1];
+ }
+/* L2: */
+ }
+ pmxa_(jobname, &ljob4, &isfirst, &nsyst, nbars, &optimize, (
+ ftnlen)44);
+ pmxb_(&c_false, poe, &ncalls, &optimize);
+ poestats_(&nsyst, poe, &poebar, &devnorm);
+ if (devnorm < devnorm0) {
+ devnorm0 = devnorm;
+ poebar0 = poebar;
+ i__6 = nsyst;
+ for (isys = 1; isys <= i__6; ++isys) {
+ nbars0[isys - 1] = nbars[isys - 1];
+ poe0[isys - 1] = poe[isys - 1];
+/* L4: */
+ }
+ s_wsle(&io___55);
+ do_lio(&c__9, &c__1, "Improved with iup,idown,devnorm:", (
+ ftnlen)32);
+ do_lio(&c__3, &c__1, (char *)&isysu, (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&isysd, (ftnlen)sizeof(
+ integer));
+ do_lio(&c__4, &c__1, (char *)&devnorm0, (ftnlen)sizeof(
+ real));
+ e_wsle();
+ s_wsle(&io___56);
+ do_lio(&c__9, &c__1, "Improved with iup,idown,devnorm:", (
+ ftnlen)32);
+ do_lio(&c__3, &c__1, (char *)&isysu, (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&isysd, (ftnlen)sizeof(
+ integer));
+ do_lio(&c__4, &c__1, (char *)&devnorm0, (ftnlen)sizeof(
+ real));
+ e_wsle();
+ s_wsfe(&io___57);
+ i__6 = nsyst;
+ for (isys = 1; isys <= i__6; ++isys) {
+ do_fio(&c__1, (char *)&nbars0[isys - 1], (ftnlen)
+ sizeof(integer));
+ }
+ e_wsfe();
+ s_wsfe(&io___58);
+ i__6 = nsyst;
+ for (isys = 1; isys <= i__6; ++isys) {
+ do_fio(&c__1, (char *)&nbars0[isys - 1], (ftnlen)
+ sizeof(integer));
+ }
+ e_wsfe();
+ sortpoe_(&nsyst, poe0, ipoe);
+ goto L6;
+ }
+L5:
+ ;
+ }
+L1:
+ ;
+ }
+
+/* If we get here, must have gone thru all switches and found nothing better, */
+/* so done! */
+
+ goto L7;
+L6:
+ ;
+ }
+L7:
+ s_wsle(&io___59);
+ do_lio(&c__9, &c__1, "Optimum located, numit:", (ftnlen)23);
+ do_lio(&c__3, &c__1, (char *)&numit, (ftnlen)sizeof(integer));
+ do_lio(&c__9, &c__1, ", ncalls:", (ftnlen)10);
+ do_lio(&c__3, &c__1, (char *)&ncalls, (ftnlen)sizeof(integer));
+ e_wsle();
+ s_wsle(&io___60);
+ do_lio(&c__9, &c__1, "Optimum located, numit:", (ftnlen)23);
+ do_lio(&c__3, &c__1, (char *)&numit, (ftnlen)sizeof(integer));
+ do_lio(&c__9, &c__1, ", ncalls:", (ftnlen)10);
+ do_lio(&c__3, &c__1, (char *)&ncalls, (ftnlen)sizeof(integer));
+ e_wsle();
+ s_wsle(&io___61);
+ do_lio(&c__9, &c__1, "Final error:", (ftnlen)12);
+ do_lio(&c__4, &c__1, (char *)&devnorm0, (ftnlen)sizeof(real));
+ do_lio(&c__9, &c__1, ", initial error:", (ftnlen)16);
+ do_lio(&c__4, &c__1, (char *)&devpmx, (ftnlen)sizeof(real));
+ e_wsle();
+ s_wsle(&io___62);
+ do_lio(&c__9, &c__1, "Final error:", (ftnlen)12);
+ do_lio(&c__4, &c__1, (char *)&devnorm0, (ftnlen)sizeof(real));
+ do_lio(&c__9, &c__1, ", initial error:", (ftnlen)16);
+ do_lio(&c__4, &c__1, (char *)&devpmx, (ftnlen)sizeof(real));
+ e_wsle();
+ s_wsle(&io___63);
+ do_lio(&c__9, &c__1, "Percentage improvement:", (ftnlen)23);
+ r__1 = (1 - devnorm0 / devpmx) * 100.f;
+ do_lio(&c__4, &c__1, (char *)&r__1, (ftnlen)sizeof(real));
+ e_wsle();
+ s_wsle(&io___64);
+ do_lio(&c__9, &c__1, "Percentage improvement:", (ftnlen)23);
+ r__1 = (1 - devnorm0 / devpmx) * 100.f;
+ do_lio(&c__4, &c__1, (char *)&r__1, (ftnlen)sizeof(real));
+ e_wsle();
+ printl_("Initial bars/system:", (ftnlen)20);
+ s_wsfe(&io___65);
+ i__1 = nsyst;
+ for (isys = 1; isys <= i__1; ++isys) {
+ do_fio(&c__1, (char *)&nbari[isys - 1], (ftnlen)sizeof(integer));
+ }
+ e_wsfe();
+ s_wsfe(&io___66);
+ i__1 = nsyst;
+ for (isys = 1; isys <= i__1; ++isys) {
+ do_fio(&c__1, (char *)&nbari[isys - 1], (ftnlen)sizeof(integer));
+ }
+ e_wsfe();
+ printl_("Final bars/system:", (ftnlen)18);
+ s_wsfe(&io___67);
+ i__1 = nsyst;
+ for (isys = 1; isys <= i__1; ++isys) {
+ do_fio(&c__1, (char *)&nbars0[isys - 1], (ftnlen)sizeof(integer));
+ }
+ e_wsfe();
+ s_wsfe(&io___68);
+ i__1 = nsyst;
+ for (isys = 1; isys <= i__1; ++isys) {
+ do_fio(&c__1, (char *)&nbars0[isys - 1], (ftnlen)sizeof(integer));
+ }
+ e_wsfe();
+ pmxa_(jobname, &ljob4, &c_false, &nsyst, nbars0, &optimize, (ftnlen)44);
+ pmxb_(&c_true, poe0, &ncalls, &optimize);
+/* itend = mytime() */
+/* print*,'Elapsed time in ms:',itend-itstart */
+/* write(15,*)'Elapsed time in ms:',itend-itstart */
+ cl__1.cerr = 0;
+ cl__1.cunit = 15;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ return 0;
+} /* MAIN__ */
+
+/* Subroutine */ int accsym_(integer *nacc, char *acsymq, integer *lacc,
+ ftnlen acsymq_len)
+{
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+
+ /* Local variables */
+ static integer iacc;
+
+ /* Fortran I/O blocks */
+ static cilist io___70 = { 0, 6, 0, 0, 0 };
+
+
+ iacc = *nacc & 7;
+ if (iacc == 1) {
+ s_copy(acsymq, "fl", (ftnlen)3, (ftnlen)2);
+ *lacc = 2;
+ } else if (iacc == 2) {
+ s_copy(acsymq, "sh", (ftnlen)3, (ftnlen)2);
+ *lacc = 2;
+ } else if (iacc == 3) {
+ s_copy(acsymq, "na", (ftnlen)3, (ftnlen)2);
+ *lacc = 2;
+ } else if (iacc == 5) {
+ s_copy(acsymq, "dfl", (ftnlen)3, (ftnlen)3);
+ *lacc = 3;
+ } else if (iacc == 6) {
+ s_copy(acsymq, "dsh", (ftnlen)3, (ftnlen)3);
+ *lacc = 3;
+ } else {
+ s_wsle(&io___70);
+ do_lio(&c__9, &c__1, "bad accidental: ", (ftnlen)16);
+ do_lio(&c__3, &c__1, (char *)&iacc, (ftnlen)sizeof(integer));
+ e_wsle();
+ }
+ return 0;
+} /* accsym_ */
+
+/* Subroutine */ int addask_(real *taskn, real *waskn, real *elaskn, real *
+ fixednew, real *scaldold, real *tglp1, logical *isudsp)
+{
+ /* System generated locals */
+ integer i__1;
+ real r__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+
+ /* Local variables */
+ extern /* Subroutine */ int stop1_(void);
+ static integer iudsp;
+
+ /* Fortran I/O blocks */
+ static cilist io___72 = { 0, 6, 0, 0, 0 };
+
+
+ if (*isudsp) {
+
+/* Find which udsp we're dealing with */
+
+ i__1 = comudsp_1.nudsp;
+ for (iudsp = 1; iudsp <= i__1; ++iudsp) {
+ if ((r__1 = *taskn + *tglp1 - comudsp_1.tudsp[iudsp - 1], dabs(
+ r__1)) < comtol_1.tol) {
+ goto L2;
+ }
+/* L1: */
+ }
+ s_wsle(&io___72);
+ do_lio(&c__9, &c__1, "You should note BEEE here in addask!", (ftnlen)
+ 36);
+ e_wsle();
+ stop1_();
+L2:
+
+/* Fixednew and scaldold must not be changed, since udsp's are already included */
+/* in fsyst from pmxa, and udsp don't involve scaled space.. */
+
+ if (comas1_1.naskb > 0 && (r__1 = *taskn - comas1_1.task[max(1,
+ comas1_1.naskb) - 1], dabs(r__1)) < comtol_1.tol) {
+
+/* Must add user-defined space to what's there already. */
+
+ comas1_1.wask[comas1_1.naskb - 1] += comudsp_1.udsp[iudsp - 1];
+ } else {
+
+/* This place has no other space. */
+
+ ++comas1_1.naskb;
+ comas1_1.task[comas1_1.naskb - 1] = *taskn;
+ comas1_1.wask[comas1_1.naskb - 1] = comudsp_1.udsp[iudsp - 1];
+ comas1_1.elask[comas1_1.naskb - 1] = 0.f;
+ }
+ } else {
+
+/* This is a normal space, no effect if smaller than existing space */
+
+ if (comas1_1.naskb > 0 && (r__1 = *taskn - comas1_1.task[max(1,
+ comas1_1.naskb) - 1], dabs(r__1)) < comtol_1.tol) {
+
+/* We already put in some space at this time */
+/* Check if new one needs more space than old one at same time */
+
+ if (*waskn > comas1_1.wask[comas1_1.naskb - 1]) {
+ --comas1_1.naskb;
+ } else {
+ return 0;
+ }
+ }
+ ++comas1_1.naskb;
+ comas1_1.task[comas1_1.naskb - 1] = *taskn;
+ comas1_1.wask[comas1_1.naskb - 1] = *waskn;
+ comas1_1.elask[comas1_1.naskb - 1] = *elaskn;
+ *fixednew += *waskn;
+ *scaldold += *elaskn;
+ }
+ return 0;
+} /* addask_ */
+
+/* Subroutine */ int addblank_(char *noteq, integer *lnoten, ftnlen noteq_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer i__1[2];
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ static char tchar[1];
+
+ s_copy(tchar, noteq, (ftnlen)1, (ftnlen)8);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = " ";
+ i__1[1] = 1, a__1[1] = tchar;
+ s_cat(noteq, a__1, i__1, &c__2, (ftnlen)8);
+ *lnoten = 2;
+ return 0;
+} /* addblank_ */
+
+/* Subroutine */ int addfb_(integer *nfb, integer *iv, real *tnew, real *t1fb,
+ real *t2fb, char *ulfbq, integer *ifbadd, ftnlen ulfbq_len)
+{
+ static integer ifb;
+
+ /* Parameter adjustments */
+ ulfbq -= 25;
+ t2fb -= 25;
+ t1fb -= 25;
+ --nfb;
+
+ /* Function Body */
+ *ifbadd = 1;
+ ++nfb[*iv];
+ for (ifb = nfb[*iv] - 1; ifb >= 1; --ifb) {
+ if (*tnew < t1fb[*iv + ifb * 24] - comtol_1.tol) {
+ t1fb[*iv + (ifb + 1) * 24] = t1fb[*iv + ifb * 24];
+ t2fb[*iv + (ifb + 1) * 24] = t2fb[*iv + ifb * 24];
+ *(unsigned char *)&ulfbq[*iv + (ifb + 1) * 24] = *(unsigned char *
+ )&ulfbq[*iv + ifb * 24];
+ } else {
+ *ifbadd = ifb + 1;
+ goto L2;
+ }
+/* L1: */
+ }
+L2:
+ t1fb[*iv + *ifbadd * 24] = *tnew;
+ *(unsigned char *)&ulfbq[*iv + *ifbadd * 24] = 'x';
+ return 0;
+} /* addfb_ */
+
+
+
+/* Subroutine */ int addmidi_(integer *icm, integer *nolev, integer *iacc,
+ integer *isig, real *time, logical *rest, logical *endrest)
+{
+ /* Initialized data */
+
+ static shortint icmm[16] = { 0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16 };
+
+ /* System generated locals */
+ integer i__1, i__2, i__3;
+ real r__1;
+
+ /* Builtin functions */
+ integer i_nint(real *), s_wsle(cilist *), do_lio(integer *, integer *,
+ char *, ftnlen), e_wsle(void), i_indx(char *, char *, ftnlen,
+ ftnlen);
+
+ /* Local variables */
+ static logical it1found;
+ static integer nsav4tie;
+ extern /* Subroutine */ int chkimidi_(integer *);
+ static char notenumq[1];
+ static integer i__, j, it1;
+ extern integer igetvarlen_(shortint *, integer *, integer *, integer *);
+ static integer it2;
+ extern integer isetvarlen_(integer *, integer *);
+ static integer ion;
+ static shortint itk[25];
+ static integer jacc, kacc, macc, ioff, isav, idur, jsav, idur1;
+ extern /* Subroutine */ int stop1_(void);
+ static integer imidt, ipsav, ipsav0, nby2on;
+ extern integer iashft_(integer *);
+ static integer nbytes;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer nby2off;
+ static logical eximacc;
+ static integer itiesav[500] /* was [5][100] */, idurvar;
+
+ /* Fortran I/O blocks */
+ static cilist io___80 = { 0, 6, 0, 0, 0 };
+ static cilist io___92 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Following variables are local but must be saved. I hope they are. */
+/* (3/18/00) With g77 they are not, so add a common block here. */
+
+/* integer*2 ipslon(0:nm),lusebl(10),jusebl(10),icmm(0:12) */
+/* data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/ */
+
+/* Cancel out barline accidentals if there's a rest. */
+
+ if (*rest) {
+ comslm_1.naccbl[(300 + (0 + (*icm - 0 << 2)) - 300) / 4] = 0;
+ }
+
+/* Special path to insert dummy rest at end of a section */
+
+ if (*endrest) {
+ goto L20;
+ }
+
+ i__1 = commidi_1.nmidcrd;
+ for (ion = 0; ion <= i__1; ++ion) {
+
+/* check if this is only to get pitch of a chord note */
+
+ if (commidi_1.notmain) {
+ goto L6;
+ }
+
+/* check for rest */
+
+ if (*rest) {
+
+/* Will not put in a note, but must update timing */
+
+ if (! commidi_1.restpend[*icm]) {
+
+/* First rest in sequence, save the time */
+
+ commidi_1.restpend[*icm] = TRUE_;
+ commidi_1.trest[*icm] = *time;
+ } else {
+ commidi_1.trest[*icm] += *time;
+ }
+
+/* Note: code checkers don't like the above due to calling addmidi(trest(icm)) */
+/* but this only happens if rest at end of section (endrest=.true.) (called */
+/* from getmidi(), in which case these above lines are bypassed. */
+
+ chkimidi_(icm);
+ return 0;
+ }
+
+/* time tics */
+
+ if (commidi_1.imidi[*icm] > 0 && ion == 0) {
+ idur = commidi_1.mgap;
+ } else {
+ idur = 0;
+ }
+ if (commidi_1.restpend[*icm]) {
+ commidi_1.restpend[*icm] = FALSE_;
+ r__1 = commidi_1.trest[*icm] * 15;
+ idur += i_nint(&r__1);
+ }
+
+/* time to start of note */
+
+ idurvar = isetvarlen_(&idur, &nby2on);
+ if (nby2on > 4) {
+ s_wsle(&io___80);
+ do_lio(&c__9, &c__1, "You got >4 bytes, something is bogus.", (
+ ftnlen)37);
+ e_wsle();
+ stop1_();
+ }
+ ++commidi_1.imidi[*icm];
+ i__2 = nby2on;
+ for (i__ = 1; i__ <= i__2; ++i__) {
+
+/* imidi points to cell before highest (leftmost) byte. Start with lowest byte */
+/* at far right, fill in backwards */
+
+ commidi_1.mmidi[*icm + (commidi_1.imidi[*icm] + nby2on - i__) *
+ 25 - 25] = (shortint) (idurvar % 256);
+ if (nby2on > 1) {
+ idurvar /= 256;
+ }
+/* L2: */
+ }
+ commidi_1.imidi[*icm] = commidi_1.imidi[*icm] + nby2on - 1;
+
+/* Note-on signal */
+
+ ++commidi_1.imidi[*icm];
+/* mmidi(icm,imidi(icm)) = 9*16+icm */
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = (shortint) (
+ icmm[*icm] + 144);
+
+/* Entry point for chord note pitch determination */
+
+L6:
+
+/* Get midi pitch. On chord iteration, only do this first time (main note), */
+/* since pitch was already computed for nonmain chord notes. */
+
+ if (ion == 0) {
+ ipsav = *nolev * 12.f / 7 + 11;
+ ipsav0 = ipsav;
+ if (*isig != 0) {
+
+/* Adjust for signature */
+
+ *(unsigned char *)notenumq = (char) (*nolev % 7 + 48);
+ if (*isig >= i_indx("4152630", notenumq, (ftnlen)7, (ftnlen)1)
+ ) {
+ ++ipsav;
+ } else if (-(*isig) >= i_indx("0362514", notenumq, (ftnlen)7,
+ (ftnlen)1)) {
+ --ipsav;
+ }
+ }
+
+/* Deal with accidentals. */
+
+/* iacc 0 1 2 3 4 5 6 7 */
+/* effect X fl sh na X dfl dsh X */
+/* iashft X -1 1 0 X -2 2 X */
+
+ jacc = 0;
+ eximacc = FALSE_;
+ if (*iacc > 0) {
+
+/* Adjust key-sig-adjusted pitch for explicit accidental (and exit) */
+
+ jacc = iashft_(iacc);
+ eximacc = TRUE_;
+ if (! commidi_1.relacc) {
+ jacc = jacc + ipsav0 - ipsav;
+ }
+
+/* (Above) Shift applies to diatonic pitch but will be added to adjusted one */
+
+ } else if (commidi_1.naccim[*icm] > 0) {
+
+/* Possible implicit accidental from earlier in the bar */
+/* Check for prior accid in this bar at this note level */
+
+ i__2 = commidi_1.naccim[*icm];
+ for (kacc = 1; kacc <= i__2; ++kacc) {
+ if (commidi_1.laccim[*icm + kacc * 25 - 25] == *nolev) {
+ jacc = commidi_1.jaccim[*icm + kacc * 25 - 25];
+ eximacc = TRUE_;
+ if (! commidi_1.relacc) {
+ jacc = jacc + ipsav0 - ipsav;
+ }
+ goto L4;
+ }
+/* L3: */
+ }
+L4:
+ ;
+ }
+
+/* Must split off the following if block from those above because chord */
+/* notes can cause naccim>0, forcing us to miss other chord note's */
+/* accross-bar-line accidental */
+
+ if (comslm_1.naccbl[*icm] > 0 && ! eximacc) {
+
+/* Possible carryover accid from prior bar (or prior same-pitch note). */
+
+ i__2 = comslm_1.naccbl[*icm];
+ for (kacc = 1; kacc <= i__2; ++kacc) {
+ if (comslm_1.laccbl[*icm + kacc * 25 - 25] == *nolev) {
+ jacc = comslm_1.jaccbl[*icm + kacc * 25 - 25];
+
+/* Since we are *using* the bar-line accid, must flag it to be saved for next. */
+
+ ++comslm_1.nusebl;
+ comips_1.jusebl[comslm_1.nusebl - 1] = (shortint)
+ jacc;
+ comips_1.lusebl[comslm_1.nusebl - 1] = (shortint) (*
+ nolev);
+ if (! commidi_1.relacc) {
+ jacc = jacc + ipsav0 - ipsav;
+ }
+ goto L22;
+ }
+/* L21: */
+ }
+L22:
+ ;
+ }
+ ipsav += jacc;
+
+/* Midi transpositions */
+
+ ipsav += commvel_1.midtc[*icm];
+ }
+ if (commidi_1.notmain) {
+ commidi_1.mcpitch[commidi_1.nmidcrd - 1] = ipsav;
+
+/* Save pitch for tie checks */
+
+ if (comslm_1.levson[*icm] == *nolev && ! comslm_1.slmon[*icm]) {
+ comips_1.ipslon[*icm] = (shortint) ipsav;
+ }
+ } else {
+ ++commidi_1.imidi[*icm];
+ if (ion == 0) {
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = (
+ shortint) ipsav;
+ if (comslm_1.levson[*icm] == *nolev && ! comslm_1.slmon[*icm])
+ {
+ comips_1.ipslon[*icm] = (shortint) ipsav;
+ }
+ } else {
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = (
+ shortint) commidi_1.mcpitch[ion - 1];
+ }
+ }
+ if (ion == 0) {
+
+/* Only record accids for non-chords, main chord note during chord iteration */
+/* and chordnotes on first call but not during iteration */
+
+ if (*iacc > 0) {
+
+/* Set marker for accidental for possible continuations later this bar */
+/* but first check and clear earlier ones on same note. */
+
+ i__2 = commidi_1.naccim[*icm];
+ for (kacc = 1; kacc <= i__2; ++kacc) {
+ if (commidi_1.laccim[*icm + kacc * 25 - 25] == *nolev) {
+ i__3 = commidi_1.naccim[*icm] - 1;
+ for (macc = kacc; macc <= i__3; ++macc) {
+ commidi_1.laccim[*icm + macc * 25 - 25] =
+ commidi_1.laccim[*icm + (macc + 1) * 25 -
+ 25];
+ commidi_1.jaccim[*icm + macc * 25 - 25] =
+ commidi_1.jaccim[*icm + (macc + 1) * 25 -
+ 25];
+/* L24: */
+ }
+ goto L25;
+ }
+/* L23: */
+ }
+ goto L26;
+L25:
+ --commidi_1.naccim[*icm];
+L26:
+
+/* Flag new accidental */
+
+ ++commidi_1.naccim[*icm];
+ commidi_1.laccim[*icm + commidi_1.naccim[*icm] * 25 - 25] = *
+ nolev;
+ commidi_1.jaccim[*icm + commidi_1.naccim[*icm] * 25 - 25] =
+ iashft_(iacc);
+ }
+
+/* Bail if this is a chord note on the first call (from docrd) */
+
+ if (commidi_1.notmain) {
+ chkimidi_(icm);
+ return 0;
+ }
+ }
+
+/* Vel */
+
+ ++commidi_1.imidi[*icm];
+/* mmidi(icm,imidi(icm)) = 127 */
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = (shortint)
+ commvel_1.midvelc[*icm];
+ chkimidi_(icm);
+/* L7: */
+ }
+
+/* For tie checks */
+
+ if (comslm_1.levson[*icm] > 0 && ! comslm_1.slmon[*icm]) {
+ comslm_1.imidso[*icm] = commidi_1.imidi[*icm];
+ }
+
+/* Entry point for special rests at section ends (endrest=T) */
+
+L20:
+
+/* Now insert all the ends */
+
+ i__1 = commidi_1.nmidcrd;
+ for (ioff = 0; ioff <= i__1; ++ioff) {
+ if (ioff == 0) {
+
+/* time to end */
+
+ r__1 = *time * 15;
+ idur1 = i_nint(&r__1);
+ r__1 = commidi_1.trest[*icm] * 15;
+ if (! (*endrest) || comevent_1.miditime == i_nint(&r__1)) {
+ idur = idur1 - commidi_1.mgap;
+ } else {
+ idur = idur1;
+ }
+
+/* Deal with roundoff problems with 7-tuplets on half or quarters */
+
+ if (idur1 == 69) {
+ ++comdiag_1.n69[*icm];
+/* if (mod(n69(icm)+6,7) .gt. 3) idur = 58 */
+ if ((comdiag_1.n69[*icm] + 6) % 7 > 3) {
+ idur = idur1 - commidi_1.mgap - 1;
+ }
+ } else if (idur1 == 34) {
+ ++comdiag_1.n34[*icm];
+ if ((comdiag_1.n34[*icm] + 6) % 7 > 4) {
+ idur = idur1 - commidi_1.mgap + 1;
+ }
+ }
+ idurvar = isetvarlen_(&idur, &nby2off);
+ if (nby2off > 4) {
+ s_wsle(&io___92);
+ do_lio(&c__9, &c__1, "You got >4 bytes, something is bogus.",
+ (ftnlen)37);
+ e_wsle();
+ stop1_();
+ }
+ ++commidi_1.imidi[*icm];
+ chkimidi_(icm);
+ i__2 = nby2off;
+ for (i__ = 1; i__ <= i__2; ++i__) {
+ commidi_1.mmidi[*icm + (commidi_1.imidi[*icm] + nby2off - i__)
+ * 25 - 25] = (shortint) (idurvar % 256);
+ if (nby2off > 1) {
+ idurvar /= 256;
+ }
+/* L1: */
+ }
+ commidi_1.imidi[*icm] = commidi_1.imidi[*icm] + nby2off - 1;
+ } else {
+
+/* Inserting end of chord note, delta time is 0 */
+
+ ++commidi_1.imidi[*icm];
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = 0;
+ }
+
+/* Note off */
+
+ ++commidi_1.imidi[*icm];
+/* mmidi(icm,imidi(icm)) = 8*16+icm */
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = (shortint) (
+ icmm[*icm] + 128);
+
+/* Pitch */
+
+ ++commidi_1.imidi[*icm];
+ if (ioff == 0) {
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = (
+ shortint) ipsav;
+ } else {
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = (
+ shortint) commidi_1.mcpitch[ioff - 1];
+ }
+
+/* Vel */
+
+ ++commidi_1.imidi[*icm];
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] = 0;
+ chkimidi_(icm);
+ if (*endrest) {
+ return 0;
+ }
+
+/* print*,'Off, icm,imidi,ipsav,idur:',icm,imidi(icm),ipsav,time */
+
+/* L8: */
+ }
+ comslm_1.naccbl[*icm] = comslm_1.nusebl;
+ if (comslm_1.nusebl > 0) {
+
+/* Fix tables of "bar-line" accids that are saved due to consecutive notes. */
+
+ i__1 = comslm_1.nusebl;
+ for (kacc = 1; kacc <= i__1; ++kacc) {
+ comslm_1.laccbl[*icm + kacc * 25 - 25] = comips_1.lusebl[kacc - 1]
+ ;
+ comslm_1.jaccbl[*icm + kacc * 25 - 25] = comips_1.jusebl[kacc - 1]
+ ;
+/* L30: */
+ }
+ comslm_1.nusebl = 0;
+ }
+
+/* Begin tie checks */
+
+ if (comslm_1.slmon[*icm]) {
+
+/* Prior note had a slur start */
+
+ if (comslm_1.levson[*icm] == comslm_1.levsoff[*icm] && *iacc == 0) {
+
+/* We have a tie! (Assumed there would be no accidental on tie-ending note) */
+/* Make a list of times of all events back to the one starting at imidso+1, */
+/* which is at or before where the tie started. Ident tie start and stop by */
+/* comparing pitches. Save the 4 pieces of data in itiesav(1...4,nsav4tie) */
+/* Store actual time in itiesav(5,nsav4tie), using itiesav(1,1) as initial */
+/* time. */
+ nsav4tie = 0;
+ imidt = comslm_1.imidso[*icm];
+L10:
+ ++nsav4tie;
+ itiesav[nsav4tie * 5 - 5] = igetvarlen_(commidi_1.mmidi, icm, &
+ imidt, &nbytes);
+ imidt += nbytes;
+ for (j = 1; j <= 3; ++j) {
+ itiesav[j + 1 + nsav4tie * 5 - 6] = commidi_1.mmidi[*icm + (
+ imidt + j) * 25 - 25];
+/* L11: */
+ }
+ imidt += 3;
+ if (nsav4tie == 1) {
+ itiesav[4] = itiesav[0];
+ } else {
+ itiesav[nsav4tie * 5 - 1] = itiesav[nsav4tie * 5 - 5] +
+ itiesav[(nsav4tie - 1) * 5 - 1];
+ }
+ if (imidt != commidi_1.imidi[*icm]) {
+ goto L10;
+ }
+
+/* Find which two pitches agree with saved slur pitch. */
+
+ it1found = FALSE_;
+ i__1 = nsav4tie;
+ for (it2 = 1; it2 <= i__1; ++it2) {
+ if (itiesav[it2 * 5 - 3] == comips_1.ipslon[*icm]) {
+ if (it1found) {
+ goto L13;
+ }
+ it1 = it2;
+ it1found = TRUE_;
+ }
+/* L12: */
+ }
+ printl_("Program error, tied notes, send source to Dr. Don", (
+ ftnlen)49);
+ it1 = nsav4tie + 1;
+ it2 = nsav4tie + 1;
+L13:
+
+/* List the positions we want to keep */
+
+ jsav = 0;
+ i__1 = nsav4tie;
+ for (isav = 1; isav <= i__1; ++isav) {
+ if (isav == it1 || isav == it2) {
+ goto L14;
+ }
+ ++jsav;
+ itk[jsav - 1] = (shortint) isav;
+L14:
+ ;
+ }
+ nsav4tie += -2;
+
+/* Now dump events it1 & it2, recompute times, restack mmidi. */
+
+ commidi_1.imidi[*icm] = comslm_1.imidso[*icm];
+ i__1 = nsav4tie;
+ for (isav = 1; isav <= i__1; ++isav) {
+ if (isav == 1) {
+ idurvar = isetvarlen_(&itiesav[itk[isav - 1] * 5 - 1], &
+ nbytes);
+ } else {
+ i__2 = itiesav[itk[isav - 1] * 5 - 1] - itiesav[itk[isav
+ - 2] * 5 - 1];
+ idurvar = isetvarlen_(&i__2, &nbytes);
+ }
+ ++commidi_1.imidi[*icm];
+ i__2 = nbytes;
+ for (i__ = 1; i__ <= i__2; ++i__) {
+ commidi_1.mmidi[*icm + (commidi_1.imidi[*icm] + nbytes -
+ i__) * 25 - 25] = (shortint) (idurvar % 256);
+ if (nbytes > 1) {
+ idurvar /= 256;
+ }
+/* L16: */
+ }
+ commidi_1.imidi[*icm] = commidi_1.imidi[*icm] + nbytes - 1;
+ for (i__ = 2; i__ <= 4; ++i__) {
+ ++commidi_1.imidi[*icm];
+ commidi_1.mmidi[*icm + commidi_1.imidi[*icm] * 25 - 25] =
+ (shortint) itiesav[i__ + itk[isav - 1] * 5 - 6];
+/* L17: */
+ }
+/* L15: */
+ }
+ }
+ comslm_1.slmon[*icm] = FALSE_;
+ comslm_1.levsoff[*icm] = 0;
+ if (! comslm_1.dbltie) {
+ comslm_1.levson[*icm] = 0;
+ }
+ }
+ if (comslm_1.levson[*icm] > 0) {
+ comslm_1.slmon[*icm] = TRUE_;
+ }
+ if (commidi_1.nmidcrd > 0) {
+ commidi_1.nmidcrd = 0;
+ }
+ chkimidi_(icm);
+ return 0;
+} /* addmidi_ */
+
+/* Subroutine */ int addstr_(char *notexq, integer *lnote, char *soutq,
+ integer *lsout, ftnlen notexq_len, ftnlen soutq_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer i__1[2];
+ char ch__1[81];
+
+ /* Builtin functions */
+ integer s_wsfe(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_fio(integer *, char *, ftnlen), e_wsfe(void);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___104 = { 0, 11, 0, "(a)", 0 };
+
+
+ if (*lsout + *lnote > 72) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___104);
+/* Writing concatenation */
+ i__1[0] = *lsout, a__1[0] = soutq;
+ i__1[1] = 1, a__1[1] = "%";
+ s_cat(ch__1, a__1, i__1, &c__2, (ftnlen)81);
+ do_fio(&c__1, ch__1, *lsout + 1);
+ e_wsfe();
+ }
+ *lsout = 0;
+ }
+ if (*lsout > 0) {
+/* Writing concatenation */
+ i__1[0] = *lsout, a__1[0] = soutq;
+ i__1[1] = *lnote, a__1[1] = notexq;
+ s_cat(soutq, a__1, i__1, &c__2, (ftnlen)80);
+ } else {
+ s_copy(soutq, notexq, (ftnlen)80, (*lnote));
+ }
+ *lsout += *lnote;
+ return 0;
+} /* addstr_ */
+
+/* Subroutine */ int adjusteskz_(integer *ib, real *squez, integer *istart,
+ integer *istop, real *poenom)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+ real r__1;
+
+ /* Local variables */
+ static integer in, iaskb, inmin;
+ static real eskadd;
+
+
+/* For block ib, this adds accidental spaces to eskz, for use in getting */
+/* length of xtup bracket and slopes of brackets and beams. */
+
+ /* Parameter adjustments */
+ --istop;
+ --istart;
+ --squez;
+
+ /* Function Body */
+ inmin = istart[*ib] + 1;
+ i__1 = comas1_1.naskb;
+ for (iaskb = 1; iaskb <= i__1; ++iaskb) {
+ if (comas1_1.task[iaskb - 1] < all_1.to[istart[*ib] - 1] -
+ comtol_1.tol) {
+ goto L10;
+ }
+ eskadd = comas1_1.wask[iaskb - 1] / *poenom - comas1_1.elask[iaskb -
+ 1];
+ i__2 = comntot_1.ntot;
+ for (in = inmin; in <= i__2; ++in) {
+ if (all_1.to[in - 1] > comas1_1.task[iaskb - 1] - comtol_1.tol) {
+ comeskz2_1.eskz2[all_1.ivxo[in - 1] + all_1.ipo[in - 1] * 24
+ - 25] += eskadd;
+ if ((r__1 = all_1.to[in - 1] - comas1_1.task[iaskb - 1], dabs(
+ r__1)) < comtol_1.tol) {
+ --inmin;
+ }
+ } else {
+ ++inmin;
+ }
+/* L11: */
+ }
+L10:
+ ;
+ }
+ return 0;
+} /* adjusteskz_ */
+
+/* Subroutine */ int askfig_(char *pathnameq, integer *lpath, char *basenameq,
+ integer *lbase, logical *figbass, logical *istype0, ftnlen
+ pathnameq_len, ftnlen basenameq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2];
+ integer i__1[3], i__2[2], i__3;
+ char ch__1[1], ch__2[88], ch__3[15], ch__4[5], ch__5[4];
+ olist o__1;
+ cllist cl__1;
+ alist al__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer f_open(olist *), f_rew(alist *), f_clos(cllist *), s_wsfe(cilist *
+ ), do_fio(integer *, char *, ftnlen), e_wsfe(void), s_rsfe(cilist
+ *), e_rsfe(void), s_cmp(char *, char *, ftnlen, ftnlen), s_wsfi(
+ icilist *), e_wsfi(void), i_indx(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer il;
+ static char sq[1];
+ static integer ihs;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static logical done;
+ extern integer llen_(char *, integer *, ftnlen);
+ static char outq[129];
+ extern /* Subroutine */ int moveln_(integer *, integer *, logical *);
+ static integer lenout;
+ extern /* Subroutine */ int putast_(real *, integer *, char *, ftnlen);
+ static integer indxask;
+
+ /* Fortran I/O blocks */
+ static cilist io___112 = { 0, 12, 0, "(a)", 0 };
+ static cilist io___113 = { 0, 12, 0, "(a)", 0 };
+ static cilist io___115 = { 0, 11, 1, "(a129)", 0 };
+ static icilist io___117 = { 0, outq+11, 0, "(f4.1)", 4, 1 };
+ static cilist io___120 = { 0, 12, 0, "(a)", 0 };
+ static cilist io___121 = { 0, 16, 1, "(a129)", 0 };
+ static cilist io___122 = { 0, 12, 0, "(a)", 0 };
+
+
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ o__1.oerr = 0;
+ o__1.ounit = 12;
+ o__1.ofnmlen = *lpath + *lbase + 4;
+/* Writing concatenation */
+ i__1[0] = *lpath, a__1[0] = pathnameq;
+ i__1[1] = *lbase, a__1[1] = basenameq;
+ i__1[2] = 4, a__1[2] = ".tex";
+ s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)88);
+ o__1.ofnm = ch__2;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+
+/* Transfer first 5 lines of main internal TeX file */
+
+ for (il = 1; il <= 5; ++il) {
+ moveln_(&c__11, &c__12, &done);
+/* L11: */
+ }
+ if (*istype0) {
+
+/* Transfer literal TeX stuff from special scratch file */
+
+ al__1.aerr = 0;
+ al__1.aunit = 17;
+ f_rew(&al__1);
+L10:
+ moveln_(&c__17, &c__12, &done);
+ if (! done) {
+ goto L10;
+ }
+ cl__1.cerr = 0;
+ cl__1.cunit = 17;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ }
+
+/* Transfer next 2 lines from main scratch file */
+
+ for (il = 1; il <= 2; ++il) {
+ moveln_(&c__11, &c__12, &done);
+/* L3: */
+ }
+ if (compoi_1.ispoi) {
+ s_wsfe(&io___112);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 14, a__2[1] = "input musixpoi";
+ s_cat(ch__3, a__2, i__2, &c__2, (ftnlen)15);
+ do_fio(&c__1, ch__3, (ftnlen)15);
+ e_wsfe();
+ }
+ if (combbm_1.isbbm) {
+ s_wsfe(&io___113);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 14, a__2[1] = "input musixbbm";
+ s_cat(ch__3, a__2, i__2, &c__2, (ftnlen)15);
+ do_fio(&c__1, ch__3, (ftnlen)15);
+ e_wsfe();
+ }
+ if (*figbass) {
+
+/* Transfer .fig data from scratch (unit 14) into external .tex (unit 12) */
+
+L4:
+ moveln_(&c__14, &c__12, &done);
+ if (! done) {
+ goto L4;
+ }
+ cl__1.cerr = 0;
+ cl__1.cunit = 14;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ }
+ comas3_1.iask = 0;
+ ihs = 0;
+L1:
+ i__3 = s_rsfe(&io___115);
+ if (i__3 != 0) {
+ goto L999;
+ }
+ i__3 = do_fio(&c__1, outq, (ftnlen)129);
+ if (i__3 != 0) {
+ goto L999;
+ }
+ i__3 = e_rsfe();
+ if (i__3 != 0) {
+ goto L999;
+ }
+
+/* Hardspaces. */
+
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 4, a__2[1] = "xard";
+ s_cat(ch__4, a__2, i__2, &c__2, (ftnlen)5);
+ if (s_cmp(outq, ch__4, (ftnlen)5, (ftnlen)5) == 0) {
+ ++ihs;
+ *(unsigned char *)&outq[1] = 'h';
+ s_wsfi(&io___117);
+ do_fio(&c__1, (char *)&comhsp_1.hpttot[ihs - 1], (ftnlen)sizeof(real))
+ ;
+ e_wsfi();
+ lenout = 19;
+ goto L9;
+ }
+
+/* This part hard-wires ask's into new .tex file as ast's */
+
+L2:
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 3, a__2[1] = "ask";
+ s_cat(ch__5, a__2, i__2, &c__2, (ftnlen)4);
+ indxask = i_indx(outq, ch__5, (ftnlen)129, (ftnlen)4);
+ if (indxask != 0) {
+ ++comas3_1.iask;
+ putast_(&comas3_1.ask[comas3_1.iask - 1], &indxask, outq, (ftnlen)129)
+ ;
+ goto L2;
+ }
+ lenout = llen_(outq, &c__129, (ftnlen)129);
+L9:
+ s_wsfe(&io___120);
+ do_fio(&c__1, outq, lenout);
+ e_wsfe();
+
+/* If this is the line with "readmod", check for topmods. */
+
+ if (comas3_1.topmods && s_cmp(outq + 1, "readmod", (ftnlen)7, (ftnlen)7)
+ == 0) {
+ comas3_1.topmods = FALSE_;
+ al__1.aerr = 0;
+ al__1.aunit = 16;
+ f_rew(&al__1);
+ for (il = 1; il <= 1000; ++il) {
+ i__3 = s_rsfe(&io___121);
+ if (i__3 != 0) {
+ goto L8;
+ }
+ i__3 = do_fio(&c__1, outq, (ftnlen)129);
+ if (i__3 != 0) {
+ goto L8;
+ }
+ i__3 = e_rsfe();
+ if (i__3 != 0) {
+ goto L8;
+ }
+ lenout = llen_(outq, &c__129, (ftnlen)129);
+
+/* We inserted the '%' in subroutine littex, to guarantee including blank. */
+
+ s_wsfe(&io___122);
+ do_fio(&c__1, outq, lenout);
+ e_wsfe();
+/* L7: */
+ }
+L8:
+ cl__1.cerr = 0;
+ cl__1.cunit = 16;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ }
+ goto L1;
+L999:
+ cl__1.cerr = 0;
+ cl__1.cunit = 11;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ cl__1.cerr = 0;
+ cl__1.cunit = 12;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ return 0;
+} /* askfig_ */
+
+/* Subroutine */ int backfill_(integer *iunit, char *oldq, integer *lenold,
+ char *newq, integer *lennew, ftnlen oldq_len, ftnlen newq_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1, i__2[3];
+ alist al__1;
+
+ /* Builtin functions */
+ integer f_back(alist *), s_rsfe(cilist *), do_fio(integer *, char *,
+ ftnlen), e_rsfe(void), i_indx(char *, char *, ftnlen, ftnlen);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+ integer s_wsfe(cilist *), e_wsfe(void);
+
+ /* Local variables */
+ static integer linesback, ndx, line;
+ static char nowq[128], lineq[128*200];
+
+ /* Fortran I/O blocks */
+ static cilist io___124 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___129 = { 0, 0, 0, "(a128)", 0 };
+
+
+
+/* In iunit, looks backward for oldq, overwrites newq */
+/* Safest if both are same length! */
+
+ linesback = 0;
+L1:
+ al__1.aerr = 0;
+ al__1.aunit = *iunit;
+ f_back(&al__1);
+ io___124.ciunit = *iunit;
+ s_rsfe(&io___124);
+ do_fio(&c__1, nowq, (ftnlen)128);
+ e_rsfe();
+ ndx = i_indx(nowq, oldq, (ftnlen)128, (*lenold));
+
+/* Save the line just read */
+
+ ++linesback;
+ s_copy(lineq + (linesback - 1 << 7), nowq, (ftnlen)128, (ftnlen)128);
+ if (ndx == 0) {
+ al__1.aerr = 0;
+ al__1.aunit = *iunit;
+ f_back(&al__1);
+ goto L1;
+ }
+
+/* If here, it's replacement time. */
+
+ i__1 = ndx + *lenold - 1;
+/* Writing concatenation */
+ i__2[0] = ndx - 1, a__1[0] = nowq;
+ i__2[1] = *lennew, a__1[1] = newq;
+ i__2[2] = 128 - i__1, a__1[2] = nowq + i__1;
+ s_cat(lineq + (linesback - 1 << 7), a__1, i__2, &c__3, (ftnlen)128);
+ al__1.aerr = 0;
+ al__1.aunit = *iunit;
+ f_back(&al__1);
+ for (line = linesback; line >= 1; --line) {
+ io___129.ciunit = *iunit;
+ s_wsfe(&io___129);
+ do_fio(&c__1, lineq + (line - 1 << 7), (ftnlen)128);
+ e_wsfe();
+/* L2: */
+ }
+ return 0;
+} /* backfill_ */
+
+/* Subroutine */ int beamend_(char *notexq, integer *lnote, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[4], a__2[3], a__3[2];
+ integer i__1, i__2[4], i__3[3], i__4[2];
+ char ch__1[1];
+
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ static integer ip, mp, len, imp;
+ extern integer log2_(integer *);
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer nole;
+ static char ulqq[1];
+ extern /* Subroutine */ int stop1_(void);
+ extern integer ncmid_(integer *, integer *);
+ static integer ndsav;
+ static char tempq[4], noteq[8];
+ extern /* Subroutine */ int notex_(char *, integer *, ftnlen), ntrbbb_(
+ integer *, char *, char *, integer *, char *, integer *, ftnlen,
+ ftnlen, ftnlen), notefq_(char *, integer *, integer *, integer *,
+ ftnlen);
+ static logical isdotm;
+ static integer lnoten, multip;
+ extern /* Subroutine */ int istring_(integer *, char *, integer *, ftnlen)
+ ;
+
+ /* Fortran I/O blocks */
+ static cilist io___136 = { 0, 6, 0, 0, 0 };
+ static cilist io___137 = { 0, 6, 0, 0, 0 };
+
+
+ ip = all_1.ipo[all_1.jn - 1];
+ multip = (all_1.mult[commvl_1.ivx + ip * 24 - 25] & 15) - 8;
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 4) {
+
+/* This is the LAST note in the xtup (i.e., all rests before). Make single. */
+
+ i__1 = 4 - multip;
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = pow_ii(&c__2, &i__1);
+ notex_(notexq, lnote, (ftnlen)79);
+ strtmid_1.ixrest[commvl_1.ivx - 1] = 0;
+ return 0;
+ }
+ nole = all_1.nolev[commvl_1.ivx + ip * 24 - 25];
+
+/* Check for special situations with 2nds (see precrd) */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],30)) {
+ --nole;
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],31)) {
+ ++nole;
+ }
+ if (! comdraw_1.drawbm[commvl_1.ivx - 1]) {
+
+/* Xtuplet with no beam, just put in the right kind of note */
+
+ if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],30)) {
+
+/* Forced stem direction */
+
+ ndsav = all_1.nodur[commvl_1.ivx + ip * 24 - 25];
+ i__1 = 4 - multip;
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = pow_ii(&c__2, &i__1);
+ if (bit_test(all_1.nacc[commvl_1.ivx + (ip - 1) * 24 - 25],27)) {
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] /= 2;
+ }
+ notex_(notexq, lnote, (ftnlen)79);
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = ndsav;
+ } else {
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ *lnote = lnoten + 3;
+ if (! bit_test(all_1.nacc[commvl_1.ivx + (ip - 1) * 24 - 25],27))
+ {
+
+/* Prior note is not regular-dotted */
+
+ if (multip == 0) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "q";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ } else if (multip == -1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "h";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ } else if (multip == 1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "c";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ } else if (multip == 2) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 2, a__1[1] = "cc";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ ++(*lnote);
+ } else if (multip == 3) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 3, a__1[1] = "ccc";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ *lnote += 2;
+ } else if (multip == -2) {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = all_1.sq;
+ i__3[1] = 2, a__2[1] = "wh";
+ i__3[2] = 8, a__2[2] = noteq;
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ } else if (multip == -3) {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = all_1.sq;
+ i__3[1] = 5, a__2[1] = "breve";
+ i__3[2] = 8, a__2[2] = noteq;
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ *lnote += 3;
+ } else {
+ s_wsle(&io___136);
+ e_wsle();
+ s_wsle(&io___137);
+ do_lio(&c__9, &c__1, "(Error in beamend, send source to "
+ "Dr. Don)", (ftnlen)42);
+ e_wsle();
+ stop1_();
+ }
+ } else {
+
+/* Prior note is regular-dotted so this one is halved */
+
+ if (multip == 0) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "c";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ } else if (multip == -1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "q";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ } else if (multip == -2) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "h";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ i__2[3] = 8, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ }
+ }
+ }
+ return 0;
+ }
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ *lnote = 0;
+
+/* New way, with flipend, which was computed in beamstrt. */
+
+ if (strtmid_1.flipend[commvl_1.ivx - 1] && bit_test(all_1.ipl[
+ commvl_1.ivx + ip * 24 - 25],30)) {
+ i__1 = 225 - *(unsigned char *)&all_1.ulq[commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25];
+ chax_(ch__1, (ftnlen)1, &i__1);
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + all_1.ibmcnt[commvl_1.ivx
+ - 1] * 24 - 25] = *(unsigned char *)&ch__1[0];
+ }
+ if (ip > all_1.ibm1[commvl_1.ivx + all_1.ibmcnt[commvl_1.ivx - 1] * 24 -
+ 25]) {
+
+/* This is not a one-noter from beam-jump. Check if multiplicity has increased */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + (ip - 1) * 24 - 25],0)) {
+
+/* Prior note is a rest, check one before that */
+
+ mp = (all_1.mult[commvl_1.ivx + (ip - 2) * 24 - 25] & 15) - 8;
+ } else {
+ mp = (all_1.mult[commvl_1.ivx + (ip - 1) * 24 - 25] & 15) - 8;
+ }
+ if (multip > mp) {
+
+/* Assume 1-3, 2-3, or 1-2 */
+
+ i__1 = mp + 1;
+ for (imp = multip; imp >= i__1; --imp) {
+ ntrbbb_(&imp, "t", all_1.ulq + (commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25), &commvl_1.ivx, notexq,
+ lnote, (ftnlen)1, (ftnlen)1, (ftnlen)79);
+/* L2: */
+ }
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + (ip - 1) * 24 - 25],27))
+ {
+
+/* 2nd member of dotted xtup */
+
+ i__1 = multip + 1;
+ ntrbbb_(&i__1, "t", all_1.ulq + (commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25), &commvl_1.ivx, notexq,
+ lnote, (ftnlen)1, (ftnlen)1, (ftnlen)79);
+ }
+ }
+
+/* Beam termination and direction analysis */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],23) && !
+ combjmp_1.isbjmp) {
+
+/* This is the end of the first segment in a jump-beam. ivbj1=ivx will be number */
+/* of the jump-beam. ivbj2 will be tested along with isbjmp to see if in the */
+/* voice of the 2nd part of jumped beam. (May need special treatment for */
+/* multi-segment jump-beams */
+
+ combjmp_1.isbjmp = TRUE_;
+ combjmp_1.ivbj1 = commvl_1.ivx;
+ combjmp_1.ivbj2 = 0;
+ }
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],23)) {
+
+/* This is either a normal beamend or end of a sequence of jump-beam segments, */
+/* so some sort of termination is required */
+
+ *(unsigned char *)ulqq = *(unsigned char *)&all_1.ulq[commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25];
+ if (! combjmp_1.isbjmp || commvl_1.ivx != combjmp_1.ivbj2) {
+
+/* Normal termination */
+
+ i__1 = commvl_1.ivx % 24;
+ ntrbbb_(&c__1, "t", ulqq, &i__1, notexq, lnote, (ftnlen)1, (
+ ftnlen)1, (ftnlen)79);
+ } else {
+
+/* Terminate a sequence of jump-beam segments. */
+
+ i__1 = 225 - *(unsigned char *)ulqq;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ *(unsigned char *)ulqq = *(unsigned char *)&ch__1[0];
+ i__1 = combjmp_1.ivbj1 % 24;
+ ntrbbb_(&c__1, "t", ulqq, &i__1, notexq, lnote, (ftnlen)1, (
+ ftnlen)1, (ftnlen)79);
+ }
+ }
+
+/* And now the note */
+
+ if (*lnote > 0) {
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = all_1.sq;
+ i__3[2] = 2, a__2[2] = "qb";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = all_1.sq;
+ i__4[1] = 2, a__3[1] = "qb";
+ s_cat(notexq, a__3, i__4, &c__2, (ftnlen)79);
+ }
+ *lnote += 3;
+ isdotm = FALSE_;
+ if (! comxtup_1.vxtup[commvl_1.ivx - 1]) {
+ i__1 = log2_(&all_1.nodur[commvl_1.ivx + ip * 24 - 25]);
+ if (pow_ii(&c__2, &i__1) != all_1.nodur[commvl_1.ivx + ip * 24 - 25])
+ {
+ if (! bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],13)) {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__3[0] = notexq;
+ i__4[1] = 1, a__3[1] = "p";
+ s_cat(notexq, a__3, i__4, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__3[0] = notexq;
+ i__4[1] = 1, a__3[1] = "m";
+ s_cat(notexq, a__3, i__4, &c__2, (ftnlen)79);
+ isdotm = TRUE_;
+ }
+ ++(*lnote);
+ }
+ }
+
+/* 5/25/08 Allow >12 */
+/* 5/9/10 Up to 24; replace 24 with 0 */
+
+ if (! (combjmp_1.isbjmp && commvl_1.ivx == combjmp_1.ivbj2)) {
+/* call istring(mod(ivx,12),tempq,len) */
+ i__1 = commvl_1.ivx % 24;
+ istring_(&i__1, tempq, &len, (ftnlen)4);
+ } else {
+/* call istring(mod(ivbj1,12),tempq,len) */
+ i__1 = combjmp_1.ivbj1 % 24;
+ istring_(&i__1, tempq, &len, (ftnlen)4);
+ }
+ if (combjmp_1.isbjmp && commvl_1.ivx == combjmp_1.ivbj2 && ! bit_test(
+ all_1.irest[commvl_1.ivx + ip * 24 - 25],23)) {
+ combjmp_1.isbjmp = FALSE_;
+ }
+/* Writing concatenation */
+ i__4[0] = *lnote, a__3[0] = notexq;
+ i__4[1] = len, a__3[1] = tempq;
+ s_cat(notexq, a__3, i__4, &c__2, (ftnlen)79);
+ *lnote += len;
+/* Writing concatenation */
+ i__4[0] = *lnote, a__3[0] = notexq;
+ i__4[1] = lnoten, a__3[1] = noteq;
+ s_cat(notexq, a__3, i__4, &c__2, (ftnlen)79);
+ *lnote += lnoten;
+ if (isdotm) {
+ if (lnoten == 1) {
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "{";
+ i__2[2] = 1, a__1[2] = noteq;
+ i__2[3] = 1, a__1[3] = "}";
+ s_cat(notexq, a__1, i__2, &c__4, (ftnlen)79);
+ *lnote += 3;
+ } else {
+ i__1 = lnoten - 2;
+/* Writing concatenation */
+ i__4[0] = *lnote, a__3[0] = notexq;
+ i__4[1] = lnoten - 1 - i__1, a__3[1] = noteq + i__1;
+ s_cat(notexq, a__3, i__4, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ }
+ return 0;
+} /* beamend_ */
+
+/* Subroutine */ int beamid_(char *notexq, integer *lnote, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2], a__3[4];
+ integer i__1, i__2[3], i__3[2], i__4, i__5, i__6[4];
+ real r__1;
+ char ch__1[1];
+
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ extern integer igetbits_(integer *, integer *, integer *);
+ extern logical isdotted_(integer *, integer *, integer *);
+ static integer im, ip, len, ivb, iud, mua, mub, iup;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer nole;
+ static char ulqq[1];
+ extern integer ncmid_(integer *, integer *);
+ static integer ipmid, iflop, ndsav;
+ static char noteq[8], tempq[4];
+ extern /* Subroutine */ int notex_(char *, integer *, ftnlen);
+ extern integer levrn_(integer *, integer *, integer *, integer *, integer
+ *);
+ static integer nlnum, multl, multr;
+ extern /* Subroutine */ int ntrbbb_(integer *, char *, char *, integer *,
+ char *, integer *, ftnlen, ftnlen, ftnlen);
+ static integer ipleft;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static real xnlmid;
+ static logical isdotm;
+ static integer lnoten, mprint, multip;
+ extern /* Subroutine */ int putxtn_(integer *, integer *, integer *,
+ integer *, real *, real *, integer *, integer *, real *, real *,
+ integer *, integer *, char *, integer *, integer *, real *,
+ integer *, integer *, logical *, ftnlen);
+ static integer ipright;
+ extern /* Subroutine */ int istring_(integer *, char *, integer *, ftnlen)
+ ;
+
+ *lnote = 0;
+ ip = all_1.ipo[all_1.jn - 1];
+ nole = all_1.nolev[commvl_1.ivx + ip * 24 - 25];
+
+/* Check for special situations with 2nds (see precrd) */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],30)) {
+ --nole;
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],31)) {
+ ++nole;
+ }
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],0)) {
+ multip = (all_1.mult[commvl_1.ivx + ip * 24 - 25] & 15) - 8;
+/* if (btest(islur(ivx,ip-1),3)) multip = multip+1 */
+
+/* (Above test OK since must have ip>1). Double dotted note preceding */
+
+/* Move the following, because can't ask for note until after checking for */
+/* embedded xtup with number, due to ordering/octave feature. */
+
+/* call notefq(noteq,lnoten,nolev(ivx,ip),ncmid(iv,ip)) */
+ }
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],28)) {
+ comxtup_1.vxtup[commvl_1.ivx - 1] = TRUE_;
+ }
+ if (comxtup_1.vxtup[commvl_1.ivx - 1]) {
+
+/* In an xtup */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],0)) {
+
+/* Intermediate rest in xtup, put in the rest. Reset nodur so notex works OK */
+
+ i__1 = 4 - ((all_1.mult[commvl_1.ivx + ip * 24 - 25] & 15) - 8);
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = pow_ii(&c__2, &i__1);
+ notex_(notexq, lnote, (ftnlen)79);
+
+/* Re-zero so next note does not get confused */
+
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = 0;
+ return 0;
+ }
+/* if (multip.le.0) then */
+/* if (multip.le.0 .or. */
+/* * (multip.eq.1.and.btest(nacc(ivx,ip-1),18))) then */
+ if (! comdraw_1.drawbm[commvl_1.ivx - 1]) {
+
+/* Xtuplet with no beam, just put in the right kind of note */
+
+ if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],30)) {
+
+/* Forced stem direction */
+
+ ndsav = all_1.nodur[commvl_1.ivx + ip * 24 - 25];
+ i__1 = 4 - multip;
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = pow_ii(&c__2, &
+ i__1);
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],19) ||
+ bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],27))
+ {
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = all_1.nodur[
+ commvl_1.ivx + ip * 24 - 25] * 3 / 2;
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + (ip - 1) * 24 -
+ 25],27)) {
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] /= 2;
+ }
+ notex_(notexq, lnote, (ftnlen)79);
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] = ndsav;
+ } else {
+
+/* Use ulq for stem direction */
+
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ *lnote = 3;
+ if (! bit_test(all_1.nacc[commvl_1.ivx + (ip - 1) * 24 - 25],
+ 27)) {
+
+/* Prior note is not regular-dotted */
+
+ if (multip == 0) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "q";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == -1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "h";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == 1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "c";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == 2) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 2, a__1[1] = "cc";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ *lnote = 4;
+ } else if (multip == 3) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 3, a__1[1] = "ccc";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ *lnote = 5;
+ } else if (multip == -2) {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = all_1.sq;
+ i__3[1] = 2, a__2[1] = "wh";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ }
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],27))
+ {
+
+/* This note is regular dotted non-beamed xtup */
+
+/* Writing concatenation */
+ i__3[0] = 3, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "p";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote = 4;
+ }
+ } else {
+
+/* Prior note is regular-dotted so this one is halved */
+
+ if (multip == 0) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "c";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == -1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "q";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == -2) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "h";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ }
+ }
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 8, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote += lnoten;
+ }
+ return 0;
+ } else if (all_1.nodur[commvl_1.ivx + ip * 24 - 25] == 0) {
+
+/* In the beamed xtup but not the last note */
+
+ if (all_1.nodur[commvl_1.ivx + (ip - 1) * 24 - 25] > 0) {
+
+/* Embedded Xtup, mult>0, starts here. Put in number if needed */
+
+ ++comxtup_1.nxtinbm[commvl_1.ivx - 1];
+ iud = 1;
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25] == 'u') {
+ iud = -1;
+ }
+
+/* Get ip#, notelevel of middle note (or gap) in xtup */
+
+ ipmid = ip + comxtup_1.ntupv[commvl_1.ivx + comxtup_1.nxtinbm[
+ commvl_1.ivx - 1] * 24 - 25] / 2;
+ i__1 = ncmid_(&all_1.iv, &ipmid);
+ i__4 = (15 & all_1.mult[commvl_1.ivx + ipmid * 24 - 25]) - 8;
+ xnlmid = (real) levrn_(&all_1.nolev[commvl_1.ivx + ipmid * 24
+ - 25], &all_1.irest[commvl_1.ivx + ipmid * 24 - 25], &
+ iud, &i__1, &i__4);
+ if (comxtup_1.ntupv[commvl_1.ivx + comxtup_1.nxtinbm[
+ commvl_1.ivx - 1] * 24 - 25] % 2 == 0) {
+ i__4 = ipmid - 1;
+ i__1 = ncmid_(&all_1.iv, &i__4);
+ i__5 = (15 & all_1.mult[commvl_1.ivx + (ipmid - 1) * 24 -
+ 25]) - 8;
+ xnlmid = (xnlmid + levrn_(&all_1.nolev[commvl_1.ivx + (
+ ipmid - 1) * 24 - 25], &all_1.irest[commvl_1.ivx
+ + (ipmid - 1) * 24 - 25], &iud, &i__1, &i__5)) /
+ 2;
+ }
+ iflop = 0;
+ if ((r__1 = xnlmid - ncmid_(&all_1.iv, &ip), dabs(r__1)) <
+ 3.f) {
+ iflop = -iud;
+ }
+ iup = iud + (iflop << 1);
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],14)) {
+ iup = -iup;
+ iflop = 0;
+ if (iud * iup < 0) {
+ iflop = iup;
+ }
+ }
+
+/* Place number if needed */
+
+ if (! bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],31)) {
+ mprint = igetbits_(&all_1.nacc[commvl_1.ivx + ip * 24 -
+ 25], &c__5, &c__22);
+ if (mprint == 0) {
+ mprint = comxtup_1.mtupv[commvl_1.ivx +
+ comxtup_1.nxtinbm[commvl_1.ivx - 1] * 24 - 25]
+ ;
+ }
+ i__1 = ncmid_(&all_1.iv, &ip);
+ putxtn_(&mprint, &iflop, &multip, &iud, &comask_1.wheadpt,
+ &comask_1.poenom, &comxtup_1.nolev1[commvl_1.ivx
+ - 1], &comxtup_1.islope[commvl_1.ivx - 1], &
+ all_1.slfac, &xnlmid, &all_1.islur[commvl_1.ivx +
+ ip * 24 - 25], lnote, notexq, &i__1, &nlnum, &
+ comxtup_1.eloff[commvl_1.ivx + comxtup_1.nxtinbm[
+ commvl_1.ivx - 1] * 24 - 25], &iup, &all_1.irest[
+ commvl_1.ivx + ip * 24 - 25], &c_false, (ftnlen)
+ 79);
+ }
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ } else {
+
+/* Intermediate note of xtup */
+
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ }
+ } else {
+
+/* Last note of xtup (but not last note of beam!) */
+
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ }
+ } else if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],0)) {
+ notex_(notexq, lnote, (ftnlen)79);
+ return 0;
+ } else {
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ }
+
+/* Check if multiplicity changes in a way requiring action */
+
+ ipleft = ip - 1;
+ if (bit_test(all_1.irest[commvl_1.ivx + ipleft * 24 - 25],0)) {
+ --ipleft;
+ }
+ if (! bit_test(all_1.islur[commvl_1.ivx + ipleft * 24 - 25],20)) {
+ multl = (15 & all_1.mult[commvl_1.ivx + ipleft * 24 - 25]) - 8;
+ } else {
+ multl = 1;
+ }
+ mub = multip - multl;
+ ipright = ip + 1;
+ if (bit_test(all_1.irest[commvl_1.ivx + ipright * 24 - 25],0)) {
+ ++ipright;
+ }
+ if (! bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],20)) {
+ multr = (15 & all_1.mult[commvl_1.ivx + ipright * 24 - 25]) - 8;
+ } else {
+ multr = 1;
+ }
+ mua = multr - multip;
+ if (mub > 0 || mua < 0) {
+
+/* Multiplicity has increased from left or will decrease to right. Need action. */
+
+ if (combjmp_1.isbjmp && commvl_1.ivx == combjmp_1.ivbj2) {
+ ivb = combjmp_1.ivbj1;
+ i__1 = 225 - *(unsigned char *)&all_1.ulq[commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25];
+ chax_(ch__1, (ftnlen)1, &i__1);
+ *(unsigned char *)ulqq = *(unsigned char *)&ch__1[0];
+ } else {
+ ivb = commvl_1.ivx;
+ *(unsigned char *)ulqq = *(unsigned char *)&all_1.ulq[
+ commvl_1.ivx + all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25];
+ }
+ if (mua >= 0) {
+ ntrbbb_(&multip, "n", ulqq, &ivb, notexq, lnote, (ftnlen)1, (
+ ftnlen)1, (ftnlen)79);
+ } else if (multl >= multr) {
+ i__1 = multr + 1;
+ for (im = multip; im >= i__1; --im) {
+ ntrbbb_(&im, "t", ulqq, &ivb, notexq, lnote, (ftnlen)1, (
+ ftnlen)1, (ftnlen)79);
+/* L1: */
+ }
+ } else {
+ i__1 = multip;
+ for (im = multr + 1; im <= i__1; ++im) {
+ ntrbbb_(&im, "r", ulqq, &ivb, notexq, lnote, (ftnlen)1, (
+ ftnlen)1, (ftnlen)79);
+/* L2: */
+ }
+ ntrbbb_(&multr, "n", ulqq, &ivb, notexq, lnote, (ftnlen)1, (
+ ftnlen)1, (ftnlen)79);
+ }
+ } else if (ip > 1) {
+
+/* Check for 2nd member of dotted xtup */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + (ip - 1) * 24 - 25],27)) {
+ i__1 = multip + 1;
+ ntrbbb_(&i__1, "t", all_1.ulq + (commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25), &commvl_1.ivx, notexq,
+ lnote, (ftnlen)1, (ftnlen)1, (ftnlen)79);
+ }
+ }
+
+/* Now put in the note */
+
+ if (*lnote > 0) {
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = all_1.sq;
+ i__2[2] = 2, a__1[2] = "qb";
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = all_1.sq;
+ i__3[1] = 2, a__2[1] = "qb";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ }
+ *lnote += 3;
+ isdotm = FALSE_;
+ if (isdotted_(all_1.nodur, &commvl_1.ivx, &ip)) {
+
+/* rule out ')' */
+
+ if (! bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],13)) {
+ if (! bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],3)) {
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "p";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ } else {
+
+/* Double dot */
+
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 2, a__2[1] = "pp";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ } else {
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "m";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ isdotm = TRUE_;
+ }
+ ++(*lnote);
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],19) ||
+ bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],27)) {
+
+/* Special dotted notation for 2:1 xtup, or normal dot in xtup */
+
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "p";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+
+/* 5/25/08 Allow >12 */
+
+ if (! (combjmp_1.isbjmp && commvl_1.ivx == combjmp_1.ivbj2)) {
+/* call istring(mod(ivx,12),tempq,len) */
+ i__1 = commvl_1.ivx % 24;
+ istring_(&i__1, tempq, &len, (ftnlen)4);
+ } else {
+/* call istring(mod(ivbj1,12),tempq,len) */
+ i__1 = combjmp_1.ivbj1 % 24;
+ istring_(&i__1, tempq, &len, (ftnlen)4);
+ }
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = len, a__2[1] = tempq;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote += len;
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = lnoten, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote += lnoten;
+ if (isdotm) {
+ if (lnoten == 2) {
+/* Writing concatenation */
+ i__6[0] = *lnote, a__3[0] = notexq;
+ i__6[1] = 1, a__3[1] = "{";
+ i__6[2] = 1, a__3[2] = noteq + 1;
+ i__6[3] = 1, a__3[3] = "}";
+ s_cat(notexq, a__3, i__6, &c__4, (ftnlen)79);
+ *lnote += 3;
+ } else {
+ i__1 = lnoten - 2;
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = lnoten - 1 - i__1, a__2[1] = noteq + i__1;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ }
+ return 0;
+} /* beamid_ */
+
+/* Subroutine */ int beamn1_(char *notexq, integer *lnote, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2], a__3[4];
+ integer i__1, i__2[3], i__3[2], i__4[4];
+
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ static integer nd, im, ip1, len;
+ extern integer log2_(integer *);
+ static integer nole;
+ extern /* Subroutine */ int stop1_(void);
+ extern integer ncmid_(integer *, integer *);
+ static integer ndsav;
+ static char noteq[8];
+ extern /* Subroutine */ int notex_(char *, integer *, ftnlen);
+ static integer multr;
+ extern /* Subroutine */ int ntrbbb_(integer *, char *, char *, integer *,
+ char *, integer *, ftnlen, ftnlen, ftnlen), notefq_(char *,
+ integer *, integer *, integer *, ftnlen);
+ static logical isdotm;
+ static integer lnoten, multip;
+ extern /* Subroutine */ int istring_(integer *, char *, integer *, ftnlen)
+ ;
+
+ /* Fortran I/O blocks */
+ static cilist io___175 = { 0, 6, 0, 0, 0 };
+ static cilist io___176 = { 0, 6, 0, 0, 0 };
+
+
+ ip1 = all_1.ipo[all_1.jn - 1];
+ multip = (15 & all_1.mult[commvl_1.ivx + ip1 * 24 - 25]) - 8;
+/* if (multip.le.0 .and. btest(irest(ivx,ip1),0)) then */
+ if (! comdraw_1.drawbm[commvl_1.ivx - 1] && bit_test(all_1.irest[
+ commvl_1.ivx + ip1 * 24 - 25],0)) {
+ *lnote = 0;
+
+/* The rest was already written in beamstrt, so just get out of here */
+
+ return 0;
+ }
+ nole = all_1.nolev[commvl_1.ivx + all_1.ipo[all_1.jn - 1] * 24 - 25];
+
+/* Check for special situations with 2nds (see precrd) */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + all_1.ipo[all_1.jn - 1] * 24 - 25],
+ 30)) {
+ --nole;
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + all_1.ipo[all_1.jn - 1] *
+ 24 - 25],31)) {
+ ++nole;
+ }
+ if (comxtup_1.vxtup[commvl_1.ivx - 1] && ! comdraw_1.drawbm[commvl_1.ivx
+ - 1]) {
+
+/* Xtuplet with no beam, just put in the right kind of note */
+
+ if (bit_test(all_1.islur[commvl_1.ivx + ip1 * 24 - 25],30)) {
+
+/* Forced stem direction */
+
+ ndsav = all_1.nodur[commvl_1.ivx + ip1 * 24 - 25];
+ i__1 = 4 - multip;
+ all_1.nodur[commvl_1.ivx + ip1 * 24 - 25] = pow_ii(&c__2, &i__1);
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip1 * 24 - 25],19) ||
+ bit_test(all_1.nacc[commvl_1.ivx + ip1 * 24 - 25],27)) {
+ all_1.nodur[commvl_1.ivx + ip1 * 24 - 25] = all_1.nodur[
+ commvl_1.ivx + ip1 * 24 - 25] * 3 / 2;
+ }
+ notex_(notexq, lnote, (ftnlen)79);
+ all_1.nodur[commvl_1.ivx + ip1 * 24 - 25] = ndsav;
+ } else {
+ i__1 = ncmid_(&all_1.iv, &ip1);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ *lnote = 3;
+ if (multip == 0) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "q";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == -1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "h";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == 1) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 1, a__1[1] = "c";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else if (multip == 2) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 2, a__1[1] = "cc";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ *lnote = 4;
+ } else if (multip == 3) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = all_1.sq;
+ i__2[1] = 3, a__1[1] = "ccc";
+ i__2[2] = 1, a__1[2] = all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25);
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ *lnote = 5;
+ } else if (multip == -2) {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = all_1.sq;
+ i__3[1] = 2, a__2[1] = "wh";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ } else if (multip == -3) {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = all_1.sq;
+ i__3[1] = 5, a__2[1] = "breve";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote = 6;
+ } else {
+ s_wsle(&io___175);
+ e_wsle();
+ s_wsle(&io___176);
+ do_lio(&c__9, &c__1, "(Error in beamn1, send source to Dr. D"
+ "on)", (ftnlen)41);
+ e_wsle();
+ stop1_();
+ }
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip1 * 24 - 25],19) ||
+ bit_test(all_1.nacc[commvl_1.ivx + ip1 * 24 - 25],27)) {
+/* Writing concatenation */
+ i__3[0] = 3, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "p";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote = 4;
+ }
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 8, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote += lnoten;
+ }
+ return 0;
+ }
+
+/* Check if mult. decreases from 1st note to 2nd */
+
+ if (all_1.ibm2[commvl_1.ivx + all_1.ibmcnt[commvl_1.ivx - 1] * 24 - 25] >
+ ip1 || bit_test(all_1.islur[commvl_1.ivx + ip1 * 24 - 25],20)) {
+
+/* More than one note or single-note before a multiplicity-down-up "][" */
+
+ if (bit_test(all_1.islur[commvl_1.ivx + ip1 * 24 - 25],20)) {
+ multr = 1;
+ } else if (! bit_test(all_1.irest[commvl_1.ivx + (ip1 + 1) * 24 - 25],
+ 0)) {
+ multr = (15 & all_1.mult[commvl_1.ivx + (ip1 + 1) * 24 - 25]) - 8;
+ } else {
+ multr = (15 & all_1.mult[commvl_1.ivx + (ip1 + 2) * 24 - 25]) - 8;
+ }
+ *lnote = 0;
+ if (multr < multip) {
+ i__1 = multr + 1;
+ for (im = multip; im >= i__1; --im) {
+ ntrbbb_(&im, "r", all_1.ulq + (commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25), &commvl_1.ivx, notexq,
+ lnote, (ftnlen)1, (ftnlen)1, (ftnlen)79);
+/* L1: */
+ }
+ }
+ }
+
+/* Put in the note */
+
+ if (*lnote > 0) {
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = all_1.sq;
+ i__2[2] = 2, a__1[2] = "qb";
+ s_cat(notexq, a__1, i__2, &c__3, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = all_1.sq;
+ i__3[1] = 2, a__2[1] = "qb";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ }
+ *lnote += 3;
+
+/* Check for dot */
+
+ isdotm = FALSE_;
+ if (! comxtup_1.vxtup[commvl_1.ivx - 1]) {
+ nd = all_1.nodur[commvl_1.ivx + all_1.ipo[all_1.jn - 1] * 24 - 25];
+ if (nd != 0) {
+ i__1 = log2_(&nd);
+ if (pow_ii(&c__2, &i__1) != nd) {
+ if (! bit_test(all_1.iornq[commvl_1.ivx + ip1 * 24 - 1],13)) {
+ if (! bit_test(all_1.islur[commvl_1.ivx + ip1 * 24 - 25],
+ 3)) {
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "p";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ } else {
+
+/* Double dot */
+
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 2, a__2[1] = "pp";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ } else {
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "m";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ isdotm = TRUE_;
+ }
+ ++(*lnote);
+ }
+ }
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + ip1 * 24 - 25],19) ||
+ bit_test(all_1.nacc[commvl_1.ivx + ip1 * 24 - 25],27)) {
+
+/* In an xtup with special 2:1 notation with a dot on 1st note, or normal dot */
+
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = "p";
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+
+/* Do the number; 0 if 12 */
+
+/* 5/25/08 allow >12 */
+
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip1 * 24 - 25],24)) {
+/* call istring(mod(ivx,12),noteq,len) */
+ i__1 = commvl_1.ivx % 24;
+ istring_(&i__1, noteq, &len, (ftnlen)8);
+ } else {
+/* call istring(mod(ivbj1,12),noteq,len) */
+ i__1 = combjmp_1.ivbj1 % 24;
+ istring_(&i__1, noteq, &len, (ftnlen)8);
+ }
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = len, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote += len;
+ i__1 = ncmid_(&all_1.iv, &ip1);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = lnoten, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ *lnote += lnoten;
+ if (isdotm) {
+ if (lnoten == 1) {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__3[0] = notexq;
+ i__4[1] = 1, a__3[1] = "{";
+ i__4[2] = 1, a__3[2] = noteq;
+ i__4[3] = 1, a__3[3] = "}";
+ s_cat(notexq, a__3, i__4, &c__4, (ftnlen)79);
+ *lnote += 3;
+ } else {
+ i__1 = lnoten - 2;
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = lnoten - 1 - i__1, a__2[1] = noteq + i__1;
+ s_cat(notexq, a__2, i__3, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ }
+ return 0;
+} /* beamn1_ */
+
+/* Subroutine */ int beamstrt_(char *notexq, integer *lnote, integer *nornb,
+ integer *ihornb, real *space, real *squez, integer *ib, ftnlen
+ notexq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2];
+ integer i__1, i__2, i__3, i__4[3], i__5[2];
+ real r__1;
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer i_nint(real *), s_wsfi(icilist *), do_fio(integer *, char *,
+ ftnlen), e_wsfi(void), pow_ii(integer *, integer *);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer i_sign(integer *, integer *), lbit_shift(integer, integer);
+
+ /* Local variables */
+ static logical addbrack;
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ extern integer igetbits_(integer *, integer *, integer *);
+ static logical usexnumt;
+ static integer nomornlev, ip, levbracket, ibc, inb, iud, imp, ivf, ipp,
+ iup;
+ static logical xto;
+ static integer ipb1, iadj, icrd;
+ extern doublereal feon_(real *);
+ static integer levc, iorn;
+ static real ymin, ybot;
+ static integer levx;
+ static real xnsk;
+ extern integer ncmid_(integer *, integer *);
+ static real ybeam;
+ static integer ipmid, iflop;
+ static real bmlev;
+ static integer icrdx, multb, ltemp;
+ static char noteq[8], tempq[79];
+ extern integer levrn_(integer *, integer *, integer *, integer *, integer
+ *);
+ static integer nlnum;
+ extern /* Subroutine */ int notex_(char *, integer *, ftnlen);
+ static integer isssb;
+ static real zmult;
+ extern /* Subroutine */ int ntrbbb_(integer *, char *, char *, integer *,
+ char *, integer *, ftnlen, ftnlen, ftnlen);
+ static real xnlmid;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten;
+ extern /* Subroutine */ int setupb_(real *, integer *, real *, real *,
+ integer *, real *, integer *);
+ static integer mprint;
+ static real xslope;
+ extern /* Subroutine */ int putxtn_(integer *, integer *, integer *,
+ integer *, real *, real *, integer *, integer *, real *, real *,
+ integer *, integer *, char *, integer *, integer *, real *,
+ integer *, integer *, logical *, ftnlen);
+ static integer maxdrop;
+
+
+/* The following is just to save the outputs from SetupB for the case of */
+/* xtups starting with a rest, where beamstrt is called twice. */
+
+ /* Parameter adjustments */
+ --squez;
+ --space;
+ ihornb -= 25;
+ --nornb;
+
+ /* Function Body */
+ ibc = all_1.ibmcnt[commvl_1.ivx - 1];
+ ipb1 = all_1.ibm1[commvl_1.ivx + ibc * 24 - 25];
+ multb = (15 & all_1.mult[commvl_1.ivx + ipb1 * 24 - 25]) - 8;
+ ip = all_1.ipo[all_1.jn - 1];
+
+/* Compute slopes and note offsets from start of beam. Inside SetupB, for each */
+/* xtup in the beam, set eloff,mtupv (in comxtup) for printed number. */
+
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 0 && ! bit_test(all_1.nacc[
+ commvl_1.ivx + ip * 24 - 25],21)) {
+ setupb_(comxtup_1.xelsk, &comipb_1.nnb, &comipb_1.sumx, &
+ comipb_1.sumy, comipb_1.ipb, &comipb_1.smed, &
+ strtmid_1.ixrest[commvl_1.ivx - 1]);
+ }
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],21)) {
+
+/* This is start of later segment of single-slope beam group so use slope and */
+/* height from prior beam. Slope is already OK. */
+
+ ++comxtup_1.issb[commvl_1.ivx - 1];
+ comxtup_1.nolev1[commvl_1.ivx - 1] = comxtup_1.lev1ssb[commvl_1.ivx +
+ comxtup_1.issb[commvl_1.ivx - 1] * 24 - 25];
+ }
+ *lnote = 0;
+ comdraw_1.drawbm[commvl_1.ivx - 1] = TRUE_;
+ if (bit_test(all_1.irest[commvl_1.ivx + ipb1 * 24 - 25],28) &&
+ strtmid_1.ixrest[commvl_1.ivx - 1] != 2) {
+ comxtup_1.vxtup[commvl_1.ivx - 1] = TRUE_;
+ ++comxtup_1.nxtinbm[commvl_1.ivx - 1];
+
+/* irest(28)=>Xtup starts on this note. Set up for xtuplet. */
+/* Number goes on notehead side at middle note (or gap) of xtup, unless that */
+/* puts it in staff, then it flops to stem (or beam) side. */
+/* __ __ */
+/* | | | O | | */
+/* O | | O */
+/* |___| O |__| | */
+
+/* iud -1 -1 1 1 ...stem direction */
+/* iflop 0 1 -1 0 ...direction of flop */
+/* iup -1 1 -1 1 ...direction of number and bracket */
+
+ iud = 1;
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25] == 'u')
+ {
+ iud = -1;
+ }
+
+/* Get ip#, note level of middle note (or gap) in xtup */
+
+ ipmid = ipb1 + comxtup_1.ntupv[commvl_1.ivx + comxtup_1.nxtinbm[
+ commvl_1.ivx - 1] * 24 - 25] / 2;
+ i__1 = ncmid_(&all_1.iv, &ipmid);
+ i__2 = (15 & all_1.mult[commvl_1.ivx + ipmid * 24 - 25]) - 8;
+ xnlmid = (real) levrn_(&all_1.nolev[commvl_1.ivx + ipmid * 24 - 25], &
+ all_1.irest[commvl_1.ivx + ipmid * 24 - 25], &iud, &i__1, &
+ i__2);
+ if (comxtup_1.ntupv[commvl_1.ivx + comxtup_1.nxtinbm[commvl_1.ivx - 1]
+ * 24 - 25] % 2 == 0) {
+ i__2 = ipmid - 1;
+ i__1 = ncmid_(&all_1.iv, &i__2);
+ i__3 = (15 & all_1.mult[commvl_1.ivx + (ipmid - 1) * 24 - 25]) -
+ 8;
+ xnlmid = (xnlmid + levrn_(&all_1.nolev[commvl_1.ivx + (ipmid - 1)
+ * 24 - 25], &all_1.irest[commvl_1.ivx + (ipmid - 1) * 24
+ - 25], &iud, &i__1, &i__3)) / 2;
+ }
+ iflop = 0;
+ if ((r__1 = xnlmid - ncmid_(&all_1.iv, &ipb1), dabs(r__1)) < 3.f) {
+ iflop = -iud;
+ }
+ iup = iud + (iflop << 1);
+ if (bit_test(all_1.irest[commvl_1.ivx + ipb1 * 24 - 25],14)) {
+
+/* Alter iud, iflop, iup to flip number/bracket. (Stare at above pic) */
+
+ iup = -iup;
+ iflop = 0;
+ if (iud * iup < 0) {
+ iflop = iup;
+ }
+ }
+
+/* Determine if a beam is to be drawn */
+
+ i__1 = all_1.ibm2[commvl_1.ivx + ibc * 24 - 25];
+ for (ipp = all_1.ibm1[commvl_1.ivx + ibc * 24 - 25]; ipp <= i__1;
+ ++ipp) {
+ if ((15 & all_1.mult[commvl_1.ivx + ipp * 24 - 25]) - 8 <= 0) {
+ comdraw_1.drawbm[commvl_1.ivx - 1] = FALSE_;
+ goto L6;
+ }
+/* L5: */
+ }
+ comdraw_1.drawbm[commvl_1.ivx - 1] = ! bit_test(all_1.islur[
+ commvl_1.ivx + all_1.ibm1[commvl_1.ivx + ibc * 24 - 25] * 24
+ - 25],18);
+L6:
+
+/* Are we using tuplet.tex? */
+
+ usexnumt = comnvst_1.cstuplet && ! comdraw_1.drawbm[commvl_1.ivx - 1];
+
+/* Place xtup number if needed */
+
+ if (! bit_test(all_1.islur[commvl_1.ivx + ipb1 * 24 - 25],31) ||
+ multb <= 0) {
+ mprint = igetbits_(&all_1.nacc[commvl_1.ivx + ip * 24 - 25], &
+ c__5, &c__22);
+ if (mprint == 0) {
+ mprint = comxtup_1.mtupv[commvl_1.ivx + comxtup_1.nxtinbm[
+ commvl_1.ivx - 1] * 24 - 25];
+ }
+ i__1 = ncmid_(&all_1.iv, &ipb1);
+ putxtn_(&mprint, &iflop, &multb, &iud, &comask_1.wheadpt, &
+ comask_1.poenom, &comxtup_1.nolev1[commvl_1.ivx - 1], &
+ comxtup_1.islope[commvl_1.ivx - 1], &all_1.slfac, &xnlmid,
+ &all_1.islur[commvl_1.ivx + ipb1 * 24 - 25], lnote,
+ notexq, &i__1, &nlnum, &comxtup_1.eloff[commvl_1.ivx +
+ comxtup_1.nxtinbm[commvl_1.ivx - 1] * 24 - 25], &iup, &
+ all_1.irest[commvl_1.ivx + ipb1 * 24 - 25], &usexnumt, (
+ ftnlen)79);
+ }
+ if (! comdraw_1.drawbm[commvl_1.ivx - 1]) {
+
+/* Xtuplet with no beam */
+
+ if (! bit_test(all_1.islur[commvl_1.ivx + ipb1 * 24 - 25],31)) {
+
+/* Number printing has not been suppressed, so put in the bracket. */
+/* scale = stretch factor for bracket if there are asx's */
+/* xnsk = length of the bracket in \noteskips = (\elemskips)/(eon) */
+
+ r__1 = space[*ib] / squez[*ib];
+ xnsk = (comeskz2_1.eskz2[commvl_1.ivx + (ipb1 +
+ comxtup_1.ntupv[commvl_1.ivx + comxtup_1.nxtinbm[
+ commvl_1.ivx - 1] * 24 - 25] - 1) * 24 - 25] -
+ comeskz2_1.eskz2[commvl_1.ivx + ipb1 * 24 - 25]) /
+ squez[*ib] / feon_(&r__1);
+ if (iup == 1) {
+ if (*lnote > 0) {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 5, a__1[2] = "ovbkt";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 5, a__2[1] = "ovbkt";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ }
+ } else {
+ if (*lnote > 0) {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 5, a__1[2] = "unbkt";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ } else {
+
+/* Introduced 12/5/98, req'd due to possible presence of in-line TeX */
+
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 5, a__2[1] = "unbkt";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ }
+ }
+ *lnote += 6;
+ if (all_1.iline == 1) {
+ comipb_1.smed /= 1.f - comtop_1.fracindent;
+ }
+ xslope = comipb_1.smed * 1.8f * all_1.slfac;
+ comxtup_1.islope[commvl_1.ivx - 1] = i_nint(&xslope);
+ r__1 = comipb_1.smed * comxtup_1.eloff[commvl_1.ivx - 1];
+ comxtup_1.nolev1[commvl_1.ivx - 1] = nlnum - i_nint(&r__1);
+ if (comxtup_1.islope[commvl_1.ivx - 1] == 0) {
+ --comxtup_1.nolev1[commvl_1.ivx - 1];
+ }
+ if (iup == 1) {
+ comxtup_1.nolev1[commvl_1.ivx - 1] += 4;
+ }
+ levbracket = comxtup_1.nolev1[commvl_1.ivx - 1];
+ if (iup == 1 && comnvst_1.cstuplet) {
+ --levbracket;
+ }
+ i__1 = ncmid_(&all_1.iv, &ipb1);
+ notefq_(noteq, &lnoten, &levbracket, &i__1, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = lnoten, a__1[1] = noteq;
+ i__4[2] = 1, a__1[2] = "{";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ *lnote = *lnote + lnoten + 1;
+ if (xnsk < .995f) {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 4 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i1,f3.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&xnsk, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote += 4;
+ } else if (xnsk < 9.995f) {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 4 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f4.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&xnsk, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote += 4;
+ } else {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 5 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f5.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&xnsk, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote += 5;
+ }
+/* Writing concatenation */
+ i__5[0] = *lnote, a__2[0] = notexq;
+ i__5[1] = 1, a__2[1] = "}";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ ++(*lnote);
+ if (bit_test(all_1.mult[commvl_1.ivx + ipb1 * 24 - 25],4)) {
+
+/* Tweak slope of bracket */
+
+ comxtup_1.islope[commvl_1.ivx - 1] = comxtup_1.islope[
+ commvl_1.ivx - 1] + igetbits_(&all_1.mult[
+ commvl_1.ivx + ipb1 * 24 - 25], &c__5, &c__5) -
+ 16;
+ }
+ if (comxtup_1.islope[commvl_1.ivx - 1] < 0 ||
+ comxtup_1.islope[commvl_1.ivx - 1] >= 10) {
+/* Writing concatenation */
+ i__5[0] = *lnote, a__2[0] = notexq;
+ i__5[1] = 1, a__2[1] = "{";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ ++(*lnote);
+ if (comxtup_1.islope[commvl_1.ivx - 1] < -9) {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 3 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i3)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comxtup_1.islope[commvl_1.ivx
+ - 1], (ftnlen)sizeof(integer));
+ e_wsfi();
+ *lnote += 3;
+ } else {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 2 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comxtup_1.islope[commvl_1.ivx
+ - 1], (ftnlen)sizeof(integer));
+ e_wsfi();
+ *lnote += 2;
+ }
+/* Writing concatenation */
+ i__5[0] = *lnote, a__2[0] = notexq;
+ i__5[1] = 1, a__2[1] = "}";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ ++(*lnote);
+ } else {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 1 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comxtup_1.islope[commvl_1.ivx - 1],
+ (ftnlen)sizeof(integer));
+ e_wsfi();
+ ++(*lnote);
+ }
+
+/* Done with bracket */
+
+ }
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 1) {
+
+/* Put in the rest. Possible problem: Rest is a spacing char, but between */
+/* beamstrt and beamn1 some non-spacing chars. are inserted. */
+
+ if (multb == 0) {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 2, a__1[2] = "qp";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ *lnote += 3;
+ } else if (! comdraw_1.drawbm[commvl_1.ivx - 1] && multb == 1)
+ {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 2, a__1[2] = "ds";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ *lnote += 3;
+ } else if (! comdraw_1.drawbm[commvl_1.ivx - 1] && multb == 2)
+ {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 2, a__1[2] = "qs";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ *lnote += 3;
+ } else if (! comdraw_1.drawbm[commvl_1.ivx - 1] && multb == 3)
+ {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 2, a__1[2] = "hs";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ *lnote += 3;
+ } else {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 6, a__1[2] = "hpause";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ *lnote += 7;
+ }
+
+/* No need to come back through this subroutine (as would if rest starts bar */
+/* & multb>0), so do not advance ibm1. But must check in beamn1 and do nothing. */
+
+ strtmid_1.ixrest[commvl_1.ivx - 1] = 0;
+ }
+ return 0;
+ }
+
+/* End if block for non-beamed xtup start...note we returned */
+
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 1) {
+
+/* Insert rest at start of beamed xtup. See above note for possible problem. */
+
+ i__1 = 4 - multb;
+ all_1.nodur[commvl_1.ivx + ipb1 * 24 - 25] = pow_ii(&c__2, &i__1);
+ notex_(tempq, &ltemp, (ftnlen)79);
+ if (*lnote > 0) {
+/* Writing concatenation */
+ i__5[0] = *lnote, a__2[0] = notexq;
+ i__5[1] = ltemp, a__2[1] = tempq;
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ } else {
+ s_copy(notexq, tempq, (ftnlen)79, ltemp);
+ }
+ *lnote += ltemp;
+
+/* Re-zero just in case! */
+
+ all_1.nodur[commvl_1.ivx + ipb1 * 24 - 25] = 0;
+ ++all_1.ibm1[commvl_1.ivx + ibc * 24 - 25];
+
+/* See if next note is a non-rest */
+
+ if (! bit_test(all_1.irest[commvl_1.ivx + (ipb1 + 1) * 24 - 25],0)
+ ) {
+ strtmid_1.ixrest[commvl_1.ivx - 1] = 2;
+ } else {
+
+/* Suppress reprinting xtup number next time through beamstrt */
+
+ all_1.islur[commvl_1.ivx + (ipb1 + 1) * 24 - 25] = bit_set(
+ all_1.islur[commvl_1.ivx + (ipb1 + 1) * 24 - 25],31);
+
+/* Set new xtup start flag */
+
+ all_1.irest[commvl_1.ivx + (ipb1 + 1) * 24 - 25] = bit_set(
+ all_1.irest[commvl_1.ivx + (ipb1 + 1) * 24 - 25],28);
+ }
+ return 0;
+ }
+ }
+
+/* Just ended if block for xtups */
+
+ if (comxtup_1.vxtup[commvl_1.ivx - 1] && ipb1 == all_1.ibm2[commvl_1.ivx
+ + ibc * 24 - 25]) {
+
+/* Move actual note writing to beamend */
+
+ strtmid_1.ixrest[commvl_1.ivx - 1] = 4;
+ return 0;
+ }
+ if (comxtup_1.issb[commvl_1.ivx - 1] == 0) {
+
+/* 1st bmstrt in single-slope bm grp, Adjust start level(s) and slope if needed */
+
+ iadj = igetbits_(&all_1.ipl[commvl_1.ivx + ipb1 * 24 - 25], &c__6, &
+ c__11) - 30;
+ if (iadj != -30) {
+ comxtup_1.nolev1[commvl_1.ivx - 1] += iadj;
+ i__1 = comxtup_1.nssb[commvl_1.ivx - 1];
+ for (isssb = 1; isssb <= i__1; ++isssb) {
+ comxtup_1.lev1ssb[commvl_1.ivx + isssb * 24 - 25] += iadj;
+/* L2: */
+ }
+ }
+ iadj = igetbits_(&all_1.ipl[commvl_1.ivx + ipb1 * 24 - 25], &c__6, &
+ c__17) - 30;
+ if (iadj != -30) {
+ comxtup_1.islope[commvl_1.ivx - 1] += iadj;
+ if ((i__1 = comxtup_1.islope[commvl_1.ivx - 1], abs(i__1)) > 9) {
+ comxtup_1.islope[commvl_1.ivx - 1] = i_sign(&c__9, &
+ comxtup_1.islope[commvl_1.ivx - 1]);
+ }
+ if (comxtup_1.nssb[commvl_1.ivx - 1] > 0) {
+
+/* Cycle thru non-rest notes in SSBG, looking for bmstrts. */
+
+ isssb = 0;
+ i__1 = comipb_1.nnb;
+ for (inb = 2; inb <= i__1; ++inb) {
+ if (bit_test(all_1.nacc[commvl_1.ivx + comipb_1.ipb[inb -
+ 1] * 24 - 25],21)) {
+
+/* Beam segment start. New start level */
+ ++isssb;
+ comxtup_1.lev1ssb[commvl_1.ivx + isssb * 24 - 25] +=
+ comxtup_1.islope[commvl_1.ivx - 1] *
+ comxtup_1.xelsk[inb - 1] / all_1.slfac;
+ }
+/* L4: */
+ }
+ }
+ }
+ }
+ iadj = igetbits_(&all_1.islur[commvl_1.ivx + ipb1 * 24 - 25], &c__2, &
+ c__27);
+ addbrack = FALSE_;
+ if (bit_test(all_1.ipl[commvl_1.ivx + ipb1 * 24 - 25],30)) {
+
+/* Check for altered starting polarity. Only in forced beams. Nominal start */
+/* level is nolev1. So beam level is nolev1 +/- 6, to be compared w/ nolev(.,.). */
+
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25] == 'u'
+ && comxtup_1.nolev1[commvl_1.ivx - 1] + 6 < all_1.nolev[
+ commvl_1.ivx + ipb1 * 24 - 25]) {
+ if (*lnote == 0) {
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 5, a__2[1] = "loff{";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 5, a__1[2] = "loff{";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ }
+ *lnote += 6;
+ addbrack = TRUE_;
+ } else if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25]
+ == 'l' && comxtup_1.nolev1[commvl_1.ivx - 1] - 6 >
+ all_1.nolev[commvl_1.ivx + ipb1 * 24 - 25]) {
+ if (*lnote == 0) {
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 5, a__2[1] = "roff{";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = 1, a__1[1] = all_1.sq;
+ i__4[2] = 5, a__1[2] = "roff{";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ }
+ *lnote += 6;
+ addbrack = TRUE_;
+ }
+
+/* Check end level for possible flipping in forced beam. Have to do it */
+/* here since with multiple voices, xelsk will not be preserved. */
+
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25] == 'u') {
+ bmlev = comxtup_1.nolev1[commvl_1.ivx - 1] + 6 + comxtup_1.islope[
+ commvl_1.ivx - 1] * comxtup_1.xelsk[comipb_1.nnb - 1] /
+ all_1.slfac;
+ strtmid_1.flipend[commvl_1.ivx - 1] = bmlev < (real) all_1.nolev[
+ commvl_1.ivx + all_1.ibm2[commvl_1.ivx + ibc * 24 - 25] *
+ 24 - 25];
+ } else if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25] == 'l') {
+ bmlev = comxtup_1.nolev1[commvl_1.ivx - 1] - 6 + comxtup_1.islope[
+ commvl_1.ivx - 1] * comxtup_1.xelsk[comipb_1.nnb - 1] /
+ all_1.slfac;
+ strtmid_1.flipend[commvl_1.ivx - 1] = bmlev > (real) all_1.nolev[
+ commvl_1.ivx + all_1.ibm2[commvl_1.ivx + ibc * 24 - 25] *
+ 24 - 25];
+ }
+ }
+ i__1 = multb + iadj;
+ ntrbbb_(&i__1, "i", all_1.ulq + (commvl_1.ivx + ibc * 24 - 25), &
+ commvl_1.ivx, notexq, lnote, (ftnlen)1, (ftnlen)1, (ftnlen)79);
+
+/* Put in name of start level and slope, after correcting nolev1 if xtup */
+/* started with a rest. */
+
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 2) {
+ r__1 = comxtup_1.nolev1[commvl_1.ivx - 1] + comxtup_1.xelsk[0] *
+ comxtup_1.islope[commvl_1.ivx - 1] / all_1.slfac;
+ comxtup_1.nolev1[commvl_1.ivx - 1] = i_nint(&r__1);
+ }
+ i__1 = ncmid_(&all_1.iv, &ipb1);
+ notefq_(noteq, &lnoten, &comxtup_1.nolev1[commvl_1.ivx - 1], &i__1, (
+ ftnlen)8);
+ if (comxtup_1.islope[commvl_1.ivx - 1] < 0) {
+/* Writing concatenation */
+ i__4[0] = *lnote, a__1[0] = notexq;
+ i__4[1] = lnoten, a__1[1] = noteq;
+ i__4[2] = 1, a__1[2] = "{";
+ s_cat(notexq, a__1, i__4, &c__3, (ftnlen)79);
+ *lnote = *lnote + 4 + lnoten;
+ i__1 = *lnote - 3;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i2,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comxtup_1.islope[commvl_1.ivx - 1], (ftnlen)
+ sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ } else {
+/* Writing concatenation */
+ i__5[0] = *lnote, a__2[0] = notexq;
+ i__5[1] = lnoten, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ *lnote = *lnote + 1 + lnoten;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 1;
+ ici__1.iciunit = notexq + (*lnote - 1);
+ ici__1.icifmt = "(i1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comxtup_1.islope[commvl_1.ivx - 1], (ftnlen)
+ sizeof(integer));
+ e_wsfi();
+ }
+
+/* Check for beam-thk fine-tuning */
+
+ if (iadj > 0) {
+ i__1 = multb + 1;
+ for (imp = multb + iadj; imp >= i__1; --imp) {
+ ntrbbb_(&imp, "t", all_1.ulq + (commvl_1.ivx + ibc * 24 - 25), &
+ commvl_1.ivx, notexq, lnote, (ftnlen)1, (ftnlen)1, (
+ ftnlen)79);
+/* L1: */
+ }
+ }
+
+/* If we shifted, must close with right bracket */
+
+ if (addbrack) {
+/* Writing concatenation */
+ i__5[0] = *lnote, a__2[0] = notexq;
+ i__5[1] = 1, a__2[1] = "}";
+ s_cat(notexq, a__2, i__5, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+
+/* Get 'floor' zmin for figures */
+/* Note: Will not come thru here on 1st note of unbeamed xtup, so figure height */
+/* won't be adjusted. If anyone ever needs that, need to duplicate this */
+/* functionality up above, before exiting. */
+
+ if (all_1.figbass && (commvl_1.ivx == 1 || commvl_1.ivx ==
+ comfig_1.ivxfig2)) {
+ if (commvl_1.ivx == 1) {
+ ivf = 1;
+ } else {
+ ivf = comfig_1.ivxfig2;
+ }
+ zmult = (multb - 1) * 1.2f;
+ ymin = 100.f;
+ i__1 = comipb_1.nnb;
+ for (inb = 1; inb <= i__1; ++inb) {
+ if (all_1.isfig[ivf + (comipb_1.ipb[inb - 1] << 1) - 3]) {
+ if (*(unsigned char *)&all_1.ulq[all_1.iv + ibc * 24 - 25] ==
+ 'u') {
+ ybot = (real) all_1.nolev[all_1.iv + comipb_1.ipb[inb - 1]
+ * 24 - 25];
+ } else {
+ ybot = comxtup_1.islope[commvl_1.ivx - 1] / all_1.slfac *
+ comxtup_1.xelsk[inb - 1] + comxtup_1.nolev1[
+ commvl_1.ivx - 1] - all_1.stemlen - zmult;
+ }
+ ymin = dmin(ymin,ybot);
+ }
+/* L3: */
+ }
+ maxdrop = ncmid_(&all_1.iv, &ipb1) - 4 - ymin + 5.01f;
+/* Computing MAX */
+ i__1 = all_1.ifigdr[ivf + (all_1.iline << 1) - 3];
+ all_1.ifigdr[ivf + (all_1.iline << 1) - 3] = max(i__1,maxdrop);
+ }
+
+/* Compute ornament levels if needed */
+
+ nomornlev = ncmid_(&all_1.iv, &ipb1) + 5;
+ iorn = 0;
+ i__1 = comipb_1.nnb;
+ for (inb = 1; inb <= i__1; ++inb) {
+ ip = comipb_1.ipb[inb - 1];
+ if (! bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],23)) {
+ goto L8;
+ }
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],26) && *(
+ unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25] ==
+ 'l') {
+
+/* letter-dynamic or hairpin ending under down-beamed */
+
+ ++iorn;
+ ybeam = comxtup_1.nolev1[commvl_1.ivx - 1] - all_1.stemlen +
+ comxtup_1.islope[commvl_1.ivx - 1] * comxtup_1.xelsk[inb
+ - 1] / all_1.slfac + 1 - (multb - 1) * 1.2f;
+/* Computing MIN */
+ r__1 = ybeam - 3.f;
+ i__2 = i_nint(&r__1), i__3 = nomornlev - 10;
+ ihornb[commvl_1.ivx + iorn * 24] = min(i__2,i__3);
+ } else if (! bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],10)) {
+
+/* Bits 0-13: (stmgx+Tupf._) , 14: Down fermata, was F */
+/* 15: Trill w/o "tr", was U , 16-18 Editorial s,f,n , 19-21 TBD */
+
+/* Non-chord. There IS an ornament. Need ihornb only if upbeam, and if */
+/* ornament is 1,2,3,5,6,7,8,9,10,15-21 (up- but not domn ferm.) */
+
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25] ==
+ 'u' && (all_1.iornq[commvl_1.ivx + comipb_1.ipb[inb - 1] *
+ 24 - 1] & 4163566) > 0) {
+ ++iorn;
+ all_1.iornq[commvl_1.ivx + ip * 24 - 1] = bit_set(all_1.iornq[
+ commvl_1.ivx + ip * 24 - 1],22);
+ ybeam = comxtup_1.nolev1[commvl_1.ivx - 1] + all_1.stemlen +
+ comxtup_1.islope[commvl_1.ivx - 1] * comxtup_1.xelsk[
+ inb - 1] / all_1.slfac - 1 + (multb - 1) * 1.2f;
+/* Computing MAX */
+ r__1 = ybeam + 3.f;
+ i__2 = i_nint(&r__1);
+ ihornb[commvl_1.ivx + iorn * 24] = max(i__2,nomornlev);
+ }
+ } else {
+
+/* In a chord. Orn may be on main note or non-main or both. Set ihornb if */
+/* upbeam and highest note has orn, or down beam and lowest. Find 1st chord note */
+
+ i__2 = comtrill_1.ncrd;
+ for (comtrill_1.icrd1 = 1; comtrill_1.icrd1 <= i__2;
+ ++comtrill_1.icrd1) {
+ if ((255 & comtrill_1.icrdat[comtrill_1.icrd1 - 1]) == ip && (
+ 15 & lbit_shift(comtrill_1.icrdat[comtrill_1.icrd1 -
+ 1], (ftnlen)-8)) == commvl_1.ivx) {
+ goto L11;
+ }
+/* L10: */
+ }
+L11:
+
+/* Find outermost note, min or max depending on beam direction ulq. xto is true */
+/* if there's an ornament on that note. Expand orn list to include ._, since if */
+/* on extreme chord note in beam, will move. */
+/* So ornaments are all except 0,4,13 (,g,) */
+
+ levx = all_1.nolev[commvl_1.ivx + ip * 24 - 25];
+ xto = (all_1.iornq[commvl_1.ivx + comipb_1.ipb[inb - 1] * 24 - 1]
+ & 4186094) > 0;
+ icrdx = 0;
+ i__2 = comtrill_1.ncrd;
+ for (icrd = comtrill_1.icrd1; icrd <= i__2; ++icrd) {
+ if ((255 & comtrill_1.icrdat[icrd - 1]) != ip || (15 &
+ lbit_shift(comtrill_1.icrdat[icrd - 1], (ftnlen)-8))
+ != commvl_1.ivx) {
+ goto L13;
+ }
+ levc = 127 & lbit_shift(comtrill_1.icrdat[icrd - 1], (ftnlen)
+ -12);
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25]
+ == 'u' && levc > levx || *(unsigned char *)&
+ all_1.ulq[commvl_1.ivx + ibc * 24 - 25] == 'l' &&
+ levc < levx) {
+ levx = levc;
+ icrdx = icrd;
+ xto = (comtrill_1.icrdorn[icrd - 1] & 4186094) > 0;
+ }
+/* L12: */
+ }
+L13:
+
+/* If there's orn on extreme note, do stuff */
+
+ if (xto) {
+ ++iorn;
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25]
+ == 'u') {
+ ybeam = comxtup_1.nolev1[commvl_1.ivx - 1] +
+ all_1.stemlen + comxtup_1.islope[commvl_1.ivx - 1]
+ * comxtup_1.xelsk[inb - 1] / all_1.slfac - 1 + (
+ multb - 1) * 1.2f;
+/* Computing MAX */
+ r__1 = ybeam + 3.f;
+ i__2 = i_nint(&r__1);
+ ihornb[commvl_1.ivx + iorn * 24] = max(i__2,nomornlev);
+ } else {
+ ybeam = comxtup_1.nolev1[commvl_1.ivx - 1] -
+ all_1.stemlen + comxtup_1.islope[commvl_1.ivx - 1]
+ * comxtup_1.xelsk[inb - 1] / all_1.slfac + 1 - (
+ multb - 1) * 1.2f;
+/* Computing MIN */
+ r__1 = ybeam - 3.f;
+ i__2 = i_nint(&r__1), i__3 = nomornlev - 10;
+ ihornb[commvl_1.ivx + iorn * 24] = min(i__2,i__3);
+ }
+ if (icrdx == 0) {
+
+/* Affected ornament is on main note */
+
+ all_1.iornq[commvl_1.ivx + ip * 24 - 1] = bit_set(
+ all_1.iornq[commvl_1.ivx + ip * 24 - 1],22);
+ } else {
+ comtrill_1.icrdorn[icrdx - 1] = bit_set(
+ comtrill_1.icrdorn[icrdx - 1],22);
+ }
+ }
+ }
+L8:
+ ;
+ }
+
+/* Henceforth nornb will be a counter. */
+
+ if (iorn > 0) {
+ nornb[commvl_1.ivx] = 1;
+ }
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 2) {
+ strtmid_1.ixrest[commvl_1.ivx - 1] = 0;
+ }
+ return 0;
+} /* beamstrt_ */
+
+
+
+/* meter space (pts) = xb4mbr = musicsize*facmtr */
+
+
+/* From other */
+
+/* * 2.0,1.5,1.0,0.5,1.3,1.3,0.4,0.8,1.2,0.8,1.2,1.6, */
+
+/* Subroutine */ int catspace_(real *space, real *squez, integer *nnsk)
+{
+ /* System generated locals */
+ integer i__1;
+ real r__1;
+
+ /* Local variables */
+ static integer iptr;
+
+ i__1 = c1omnotes_1.nptr[c1omnotes_1.ibarcnt] - 1;
+ for (iptr = c1omnotes_1.nptr[c1omnotes_1.ibarcnt - 1]; iptr <= i__1;
+ ++iptr) {
+ if ((r__1 = *space - c1omnotes_1.durb[iptr - 1], dabs(r__1)) <
+ comtol_1.tol) {
+ if ((r__1 = *squez - c1omnotes_1.sqzb[iptr - 1], dabs(r__1)) <
+ comtol_1.tol) {
+
+/* Increment pre-existing entry */
+
+ c1omnotes_1.nnpd[iptr - 1] += *nnsk;
+ return 0;
+ }
+ }
+/* L16: */
+ }
+
+/* Didn't find current duration & squez, so add a new entry. */
+/* No particular reason to keep in order, so add at the end. */
+
+ c1omnotes_1.nnpd[c1omnotes_1.nptr[c1omnotes_1.ibarcnt] - 1] = *nnsk;
+ c1omnotes_1.durb[c1omnotes_1.nptr[c1omnotes_1.ibarcnt] - 1] = *space;
+ c1omnotes_1.sqzb[c1omnotes_1.nptr[c1omnotes_1.ibarcnt] - 1] = *squez;
+ ++c1omnotes_1.nptr[c1omnotes_1.ibarcnt];
+ return 0;
+} /* catspace_ */
+
+/* Character */ VOID chax_(char *ret_val, ftnlen ret_val_len, integer *n)
+{
+
+/* The only reason for this seemingly do-nothing function is to get around an */
+/* apparent bug in the Visual Fortran Standard Edition 5.0.A compiler! */
+
+ *(unsigned char *)ret_val = (char) (*n);
+ return ;
+} /* chax_ */
+
+/* Subroutine */ int checkdyn_(char *lineq, integer *iccount, integer *ibar,
+ ftnlen lineq_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1, i__2[3], i__3;
+ real r__1;
+ char ch__1[4], ch__2[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_cmp(char *, char *, ftnlen, ftnlen), i_indx(char *, char *,
+ ftnlen, ftnlen);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_rsfi(icilist *), do_fio(integer *, char *, ftnlen), e_rsfi(void)
+ , i_nint(real *);
+
+ /* Local variables */
+ static integer ipm, iend;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer idno;
+ static real fnum;
+ static char durq[1];
+ extern /* Subroutine */ int stop1_(void), errmsg_(char *, integer *,
+ integer *, char *, ftnlen, ftnlen);
+ static logical txtdyn;
+ extern /* Subroutine */ int readnum_(char *, integer *, char *, real *,
+ ftnlen, ftnlen);
+ static char dynsymq[4];
+
+ txtdyn = FALSE_;
+
+/* On entry, iccount is on "D" */
+
+ i__1 = *iccount;
+ if (s_cmp(lineq + i__1, "\"", *iccount + 1 - i__1, (ftnlen)1) == 0) {
+
+/* Dynamic text */
+
+ i__1 = *iccount + 1;
+ iend = i_indx(lineq + i__1, "\"", 128 - i__1, (ftnlen)1);
+ if (iend == 0) {
+ i__1 = *iccount + 1;
+ errmsg_(lineq, &i__1, ibar, "Dynamic text must be terminated wit"
+ "h double quote!", (ftnlen)128, (ftnlen)50);
+ stop1_();
+ }
+
+/* Set iccount to character after 2nd ", and set ipm */
+
+ *iccount = *iccount + iend + 2;
+ ipm = i_indx("- +", lineq + (*iccount - 1), (ftnlen)3, (ftnlen)1);
+ if (ipm == 0) {
+ errmsg_(lineq, iccount, ibar, "Expected \"-\", \"+\", or blank h"
+ "ere!", (ftnlen)128, (ftnlen)33);
+ stop1_();
+ }
+ } else {
+
+/* Expect ordinary dynamic */
+
+ for (iend = *iccount + 2; iend <= 128; ++iend) {
+ ipm = i_indx("- +", lineq + (iend - 1), (ftnlen)3, (ftnlen)1);
+ if (ipm > 0) {
+ goto L2;
+ }
+/* L1: */
+ }
+L2:
+ if (iend - *iccount > 5 || iend - *iccount < 2) {
+ i__1 = iend - 1;
+ errmsg_(lineq, &i__1, ibar, "Wrong length for dynamic mark!", (
+ ftnlen)128, (ftnlen)30);
+ stop1_();
+ }
+ i__1 = *iccount;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = iend - 1 - i__1;
+ ici__1.iciunit = lineq + i__1;
+/* Writing concatenation */
+ i__2[0] = 2, a__1[0] = "(a";
+ i__3 = iend + 47 - *iccount;
+ chax_(ch__2, (ftnlen)1, &i__3);
+ i__2[1] = 1, a__1[1] = ch__2;
+ i__2[2] = 1, a__1[2] = ")";
+ ici__1.icifmt = (s_cat(ch__1, a__1, i__2, &c__3, (ftnlen)4), ch__1);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, dynsymq, (ftnlen)4);
+ e_rsfi();
+ idno = (i_indx("ppppppp pp p mp mf f fp sfz ff fff ffff< "
+ "> ", dynsymq, (ftnlen)56, (ftnlen)4) + 3) / 4;
+ if (idno == 0) {
+ i__1 = *iccount + 1;
+ errmsg_(lineq, &i__1, ibar, "Illegal dynamic mark!", (ftnlen)128,
+ (ftnlen)21);
+ stop1_();
+ }
+ *iccount = iend;
+ }
+ if (ipm != 2) {
+
+/* There is a vertical shift, have "+" or "-" */
+
+ ++(*iccount);
+ if (i_indx("0123456789", lineq + (*iccount - 1), (ftnlen)10, (ftnlen)
+ 1) == 0) {
+ errmsg_(lineq, iccount, ibar, "Expected integer here for vertica"
+ "l offset!", (ftnlen)128, (ftnlen)42);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ idno = i_nint(&fnum);
+ if (idno > 63) {
+ i__1 = *iccount - 1;
+ errmsg_(lineq, &i__1, ibar, "Vertical offset for dynamic mark mu"
+ "st be (-63,63)!", (ftnlen)128, (ftnlen)50);
+ stop1_();
+ }
+ ipm = i_indx("- +", durq, (ftnlen)3, (ftnlen)1);
+ if (ipm == 0) {
+ errmsg_(lineq, iccount, ibar, "Expected \"+\", \"-\", or blank h"
+ "ere!", (ftnlen)128, (ftnlen)33);
+ stop1_();
+ }
+ if (ipm != 2) {
+
+/* There is a horizontal shift */
+
+ ++(*iccount);
+ if (i_indx(".0123456789", lineq + (*iccount - 1), (ftnlen)11, (
+ ftnlen)1) == 0) {
+ errmsg_(lineq, iccount, ibar, "Expected number here for hori"
+ "zontal offset!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ r__1 = fnum * 10;
+ idno = i_nint(&r__1);
+ if (idno > 255) {
+ i__1 = *iccount - 1;
+ errmsg_(lineq, &i__1, ibar, "Horizontal offset for dynamic m"
+ "ark must be (-25.5,25.5)!", (ftnlen)128, (ftnlen)56);
+ stop1_();
+ } else if (*(unsigned char *)durq != ' ') {
+ errmsg_(lineq, iccount, ibar, "There should be a blank here!",
+ (ftnlen)128, (ftnlen)29);
+ stop1_();
+ }
+ }
+
+/* iccount should be on the blank at the end of the entire symbol */
+
+ }
+ return 0;
+} /* checkdyn_ */
+
+/* Subroutine */ int chkarp_(integer *ncrd, integer *icrdat, integer *ivx,
+ integer *ip, logical *iscacc, logical *isarp)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ integer lbit_shift(integer, integer);
+
+ /* Local variables */
+ static integer icrd;
+ static logical found1;
+
+/* subroutine chkarp(found1,ncrd,icrdat,icrdot,ivx,ip,isacc,isarp, */
+/* * icashft) */
+ /* Parameter adjustments */
+ --icrdat;
+
+ /* Function Body */
+ found1 = FALSE_;
+
+/* icashft will be max left shift of accid's in chord notes. */
+/* Used only for spacing checks. */
+/* Will include left shift of chord note itself. */
+/* Rezero after use. */
+
+ i__1 = *ncrd;
+ for (icrd = 1; icrd <= i__1; ++icrd) {
+
+/* This if block cycles thru all chord notes on ivx,ip; then returns. */
+
+ if ((255 & icrdat[icrd]) == *ip && (15 & lbit_shift(icrdat[icrd], (
+ ftnlen)-8)) == *ivx) {
+ found1 = TRUE_;
+ *iscacc = *iscacc || bit_test(icrdat[icrd],19) && ! bit_test(
+ icrdat[icrd],27);
+
+/* Accid on this chord note, and it's not midi-only. */
+
+/* irshft = igetbits(icrdot(icrd),7,20) */
+/* c */
+/* c Include increment for notehead shift */
+/* c */
+/* if (btest(icrdat(icrd),23)) then */
+/* if (irshft .eq. 0) then */
+/* irshft = 44 */
+/* else */
+/* irshft=irshft-20 */
+/* end if */
+/* end if */
+/* if (irshft .ne. 0) then */
+/* c */
+/* c Accid on chord note is shifted. Include only left shift, in 20ths. */
+/* c */
+/* if (irshft .lt. 64) icashft = max(icashft,64-irshft) */
+/* end if */
+/* end if */
+ *isarp = *isarp || bit_test(icrdat[icrd],25);
+ } else if (found1) {
+ return 0;
+ }
+/* L18: */
+ }
+ return 0;
+} /* chkarp_ */
+
+/* Subroutine */ int chkimidi_(integer *icm)
+{
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void);
+
+ /* Fortran I/O blocks */
+ static cilist io___231 = { 0, 6, 0, 0, 0 };
+ static cilist io___232 = { 0, 6, 0, 0, 0 };
+ static cilist io___233 = { 0, 6, 0, "(a6,2x,4i8)", 0 };
+
+
+ if (commidi_1.imidi[*icm] >= 24576) {
+ s_wsle(&io___231);
+ e_wsle();
+ s_wsle(&io___232);
+ do_lio(&c__9, &c__1, "Midi file is too long! It will be corrupted or"
+ " worse", (ftnlen)52);
+ e_wsle();
+ s_wsfe(&io___233);
+ do_fio(&c__1, "imidi:", (ftnlen)6);
+ do_fio(&c__1, (char *)&commidi_1.imidi[0], (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&commidi_1.imidi[1], (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&commidi_1.imidi[2], (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&commidi_1.imidi[3], (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+ return 0;
+} /* chkimidi_ */
+
+/* Subroutine */ int chklit_(char *lineq, integer *iccount, integer *literr,
+ ftnlen lineq_len)
+{
+ /* System generated locals */
+ char ch__1[1];
+
+ /* Local variables */
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static char charq[1];
+ static integer itype, lenlit;
+ extern /* Subroutine */ int g1etchar_(char *, integer *, char *, ftnlen,
+ ftnlen);
+
+ *literr = 0;
+ itype = 1;
+L17:
+ g1etchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ chax_(ch__1, (ftnlen)1, &c__92);
+ if (*(unsigned char *)charq == *(unsigned char *)&ch__1[0]) {
+ ++itype;
+/* if (itype .eq. 2) then */
+/* if (iccount .ne. 2 ) then */
+/* c */
+/* c type 2 or 3 tex string not starting in column 1 */
+/* c */
+/* literr = 3 */
+/* return */
+/* end if */
+/* else if (itype .gt. 3) then */
+ if (itype > 3) {
+ *literr = 1;
+ return 0;
+ }
+ goto L17;
+ }
+ lenlit = itype;
+L18:
+ g1etchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ chax_(ch__1, (ftnlen)1, &c__92);
+ if (*(unsigned char *)charq == *(unsigned char *)&ch__1[0]) {
+ g1etchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq != ' ') {
+
+/* Starting a new tex command withing the string */
+
+ lenlit += 2;
+ if (lenlit > 128) {
+ *literr = 2;
+ return 0;
+ }
+ goto L18;
+ }
+ } else {
+ ++lenlit;
+ if (lenlit > 128) {
+ *literr = 2;
+ return 0;
+ }
+ goto L18;
+ }
+ return 0;
+} /* chklit_ */
+
+/* Subroutine */ int chkpm4ac_(char *lineq, integer *iccount, integer *nacc,
+ logical *moved, ftnlen lineq_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+ real r__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_cmp(char *, char *,
+ ftnlen, ftnlen), i_nint(real *);
+
+ /* Local variables */
+ static integer ipm;
+ static real fnum;
+ static char durq[1];
+ static integer icsav;
+ static logical ishorz;
+ extern /* Subroutine */ int readnum_(char *, integer *, char *, real *,
+ ftnlen, ftnlen), setbits_(integer *, integer *, integer *,
+ integer *);
+
+
+/* Called after getting +/-/</> in a note (not rest). iccount is on the +-<>. */
+/* Sets moved=.true. and sets move parameters in nacc if necc: horiz only (bits */
+/* 10-16) if < or >, horiz and vert (bits 4-9) if two consecutive signed */
+/* numbers. If moved=.true., iccount on exit is on end of last number. */
+/* If moved=.false., iccount still on +/- */
+
+ i__1 = *iccount - 2;
+ i__2 = *iccount;
+ if (i_indx("sfnA", lineq + i__1, (ftnlen)4, *iccount - 1 - i__1) > 0 &&
+ i_indx("0123456789.", lineq + i__2, (ftnlen)11, *iccount + 1 -
+ i__2) > 0) {
+
+/* Prior char was accid & next is #; this may be start of accidental shift. */
+/* Must test for "." above in case we get "<" or ">" */
+
+ ipm = i_indx("- +< >", lineq + (*iccount - 1), (ftnlen)6, (ftnlen)1)
+ - 2;
+ i__1 = *iccount + 1;
+ i__2 = *iccount;
+ if (s_cmp(lineq + i__2, ".", *iccount + 1 - i__2, (ftnlen)1) == 0 &&
+ i_indx("0123456789", lineq + i__1, (ftnlen)10, *iccount + 2 -
+ i__1) == 0) {
+
+/* Rare case of [accid][+/-].[letter]. Bail out */
+
+ *moved = FALSE_;
+ return 0;
+ }
+ ishorz = ipm > 1;
+
+/* Save iccount in case it's not accid shift and we have to reset. */
+
+ icsav = *iccount;
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (ishorz || i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* This has to be accidental shift. Set vert. shift. */
+
+ if (! ishorz) {
+
+/* +/- syntax, both shifts set, vertical first */
+
+ i__1 = (integer) (ipm * fnum + 32.5f);
+ setbits_(nacc, &c__6, &c__4, &i__1);
+ ipm = i_indx("- +", durq, (ftnlen)3, (ftnlen)1) - 2;
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ } else {
+
+/* </> syntax, only horiz set */
+
+ ipm += -3;
+ }
+
+/* Set horiz. shift */
+
+ r__1 = (ipm * fnum + 5.35f) * 20;
+ i__1 = i_nint(&r__1);
+ setbits_(nacc, &c__7, &c__10, &i__1);
+ --(*iccount);
+ *moved = TRUE_;
+ } else {
+
+/* False alarm. Reset everything and flow onward */
+
+ *moved = FALSE_;
+ *iccount = icsav;
+ }
+ } else {
+
+/* Either prior char was not 'sfn' or next was not digit, so take no action */
+
+ *moved = FALSE_;
+ }
+ return 0;
+} /* chkpm4ac_ */
+
+/* Subroutine */ int clefsym_(integer *isl, char *notexq, integer *lnote,
+ integer *nclef, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[4];
+ integer i__1[4], i__2, i__3;
+ char ch__1[1], ch__2[1], ch__3[1];
+
+ /* Builtin functions */
+ integer lbit_shift(integer, integer);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer nlev;
+
+
+/* Returns string calling Don's TeX macro \pmxclef, for drawing small clefs. */
+
+ *nclef = lbit_shift(*isl, (ftnlen)-12) & 7;
+ if (*nclef == 0) {
+
+/* treble */
+
+ nlev = 2;
+ } else if (*nclef > 6) {
+
+/* French violin */
+
+ nlev = 0;
+ } else if (*nclef < 5) {
+
+/* C-clef */
+
+ nlev = (*nclef << 1) - 2;
+ } else {
+
+/* F-clef */
+
+ nlev = (*nclef << 1) - 6;
+ }
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__1[0] = 1, a__1[0] = ch__1;
+ i__1[1] = 7, a__1[1] = "pmxclef";
+ i__2 = min(*nclef,7) + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__1[2] = 1, a__1[2] = ch__2;
+ i__3 = nlev + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__1[3] = 1, a__1[3] = ch__3;
+ s_cat(notexq, a__1, i__1, &c__4, notexq_len);
+ *lnote = 10;
+ return 0;
+} /* clefsym_ */
+
+/* Subroutine */ int crdacc_(integer *nacc, integer *naccid, integer *micrd,
+ integer *nolevm, real *rmsshift, logical *lasttime, integer *
+ levmaxacc, integer *icrdot0, real *segrb0, integer *ksegrb0, integer *
+ nsegrb0, logical *twooftwo, integer *icashft)
+{
+ /* Initialized data */
+
+ static integer nsegar[5] = { 3,4,3,3,2 };
+ static integer nsegal[5] = { 2,4,3,3,2 };
+ static real segar[60] /* was [5][2][6] */ = { -.05f,-.38f,-.34f,
+ -.05f,-.15f,-1.4f,-2.9f,-3.f,-1.4f,-1.2f,-.75f,-.2f,-.8f,-.75f,
+ 0.f,.96f,-1.04f,1.48f,.96f,1.2f,0.f,-.38f,0.f,0.f,0.f,3.15f,1.64f,
+ 3.f,3.15f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,2.9f,0.f,0.f,0.f,0.f,0.f,
+ 0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,
+ 0.f,0.f };
+ static real segal[60] /* was [5][2][6] */ = { -1.f,-1.02f,-.6f,
+ -1.65f,-1.2f,-1.4f,-2.9f,-3.f,-1.4f,-1.2f,0.f,-1.2f,-1.04f,0.f,
+ 0.f,3.15f,-1.64f,-1.48f,3.15f,1.2f,0.f,-1.02f,0.f,0.f,0.f,0.f,
+ 1.04f,3.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,2.9f,0.f,0.f,0.f,0.f,
+ 0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,0.f,
+ 0.f,0.f,0.f };
+ static integer iacctbl[6] = { 1,2,3,0,4,5 };
+
+ /* System generated locals */
+ integer i__1, i__2, i__3;
+ real r__1;
+
+ /* Builtin functions */
+ integer i_nint(real *), s_wsle(cilist *), do_lio(integer *, integer *,
+ char *, ftnlen), e_wsle(void);
+
+ /* Local variables */
+ static integer iacctype;
+ static logical mainnote;
+ extern integer igetbits_(integer *, integer *, integer *);
+ static real ybotaseg, shiftmin;
+ static integer isetshft[10];
+ static real ytopaseg;
+ static integer ibelowbot, ibelowtop, iwa, iranksetter, iseg;
+ extern /* Subroutine */ int stop1_(void);
+ static integer isega;
+ static real segrb[100] /* was [2][50] */;
+ static integer irank;
+ static real shift;
+ static integer nolev, isegrb, ksegrb[50], nsegrb, ishift;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer netgain;
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___268 = { 0, 6, 0, 0, 0 };
+ static cilist io___269 = { 0, 6, 0, 0, 0 };
+
+
+
+/* nacc = accidental bitmap for main note */
+/* naccid = # of accid's in chord */
+/* micrd = array with icrd #'s for notes w/ acc's, 0=>main note */
+/* nolevm = level of main note */
+/* segrb(1|2,.) x|y-coord of right-bdry segment */
+/* ksegrb(.) internal use; tells what defined this segment */
+/* -2: Left-shifted notehead */
+/* -1: Original right boundary */
+/* 0: Main note accidental */
+/* icrd: Chord-note accidental */
+/* isetshft(i),i=1,naccid: what set shift for this accid, same codes */
+/* icrdot0 = top-down level-rank of main note among accid-notes */
+/* icrdot(icrd)(27-29) = level rank of chord-note among accid-notes */
+/* twooftwo will be true 2nd time thru; signal to store shifts w/ notes */
+
+ /* Parameter adjustments */
+ --ksegrb0;
+ segrb0 -= 3;
+ --micrd;
+
+ /* Function Body */
+
+/* Fancy sharp boundary. fl,sh,na,dfl,dsh */
+
+/* * -0.75,-0.20,-0.80, 0. , 0. , .96,-1.04,1.6, 0. , 0. , */
+/* meas value for y, natural is 1.6 */
+/* * 0.00, 0.00,-1.04, 0. , 0. ,3.15, 2.9,-1.6, 0. , 0. , */
+/* c (meas. value is 3.08) ^^^^ */
+/* c Raise top of flat so it interferes with bottom of sharp */
+
+/* iacctbl(i) = internal accid # (1-5) when i=extern accid # (1,2,3,5,6) */
+
+
+/* Set up barrier segrb(iseg,ipoint) to define coords of corner points */
+/* on stem+notes */
+
+ i__1 = *nsegrb0;
+ for (iseg = 1; iseg <= i__1; ++iseg) {
+ segrb[(iseg << 1) - 2] = segrb0[(iseg << 1) + 1];
+ segrb[(iseg << 1) - 1] = segrb0[(iseg << 1) + 2];
+ ksegrb[iseg - 1] = ksegrb0[iseg];
+/* L11: */
+ }
+ nsegrb = *nsegrb0;
+ *rmsshift = 0.f;
+ shiftmin = 1e3f;
+ i__1 = *naccid;
+ for (iwa = 1; iwa <= i__1; ++iwa) {
+
+/* Initialize shift for this note */
+
+ shift = 0.f;
+ mainnote = micrd[iwa] == 0;
+ isetshft[iwa - 1] = -1;
+
+/* Get note level and accidental type */
+
+ if (mainnote) {
+ nolev = *nolevm;
+ iacctype = iacctbl[igetbits_(nacc, &c__3, &c__0) - 1];
+ } else {
+ nolev = igetbits_(&comtrill_1.icrdat[micrd[iwa] - 1], &c__7, &
+ c__12);
+ iacctype = iacctbl[igetbits_(&comtrill_1.icrdat[micrd[iwa] - 1], &
+ c__3, &c__20) - 1];
+ }
+
+/* Cycle thru segments on right edge of this accidental */
+
+ i__2 = nsegar[iacctype - 1] - 1;
+ for (isega = 1; isega <= i__2; ++isega) {
+ ybotaseg = nolev + segar[iacctype + ((isega << 1) + 2) * 5 - 16];
+ ytopaseg = nolev + segar[iacctype + ((isega + 1 << 1) + 2) * 5 -
+ 16];
+
+/* Cycle thru segments of right-hand barrier */
+
+ i__3 = nsegrb - 1;
+ for (isegrb = 1; isegrb <= i__3; ++isegrb) {
+
+/* Must find all barrier segments that start below ytopseg & end above ybotseg */
+
+ if (segrb[(isegrb << 1) - 1] < ytopaseg) {
+
+/* Barrier seg starts below top of accid */
+/* Check if barrier seg ends above bottom of accid */
+
+ if (segrb[(isegrb + 1 << 1) - 1] > ybotaseg) {
+ if (shift > segrb[(isegrb << 1) - 2] - segar[iacctype
+ + ((isega << 1) + 1) * 5 - 16]) {
+ shift = segrb[(isegrb << 1) - 2] - segar[iacctype
+ + ((isega << 1) + 1) * 5 - 16];
+
+/* Record the cause of the shift */
+
+ isetshft[iwa - 1] = ksegrb[isegrb - 1];
+ }
+ }
+
+/* Does barrier segment end above top of accid seg? */
+
+ if (segrb[(isegrb + 1 << 1) - 1] > ytopaseg) {
+ goto L4;
+ }
+ }
+/* L3: */
+ }
+L4:
+/* L2: */
+ ;
+ }
+ if (! bit_test(*nacc,28) && dabs(shift) > 1e-4f && ! (*lasttime)) {
+/* if (nolev .eq. levmaxacc) then */
+ if (nolev == *levmaxacc && isetshft[iwa - 1] == -1) {
+ *rmsshift = 1e3f;
+ return 0;
+ }
+
+/* Does the following properly account for left-shifted noteheads? */
+
+/* Top-down rank of this note we just shifted */
+
+ if (mainnote) {
+ irank = *icrdot0;
+ } else {
+ irank = igetbits_(&comtrill_1.icrdot[micrd[iwa] - 1], &c__3, &
+ c__27);
+ }
+
+/* Compare level-rank of this note vs. that of note that caused the shift. */
+/* This has effect of checking for basic interferences from top down. */
+
+/* ksegrb(.) internal use; tells what defined this segment */
+/* -2: Left-shifted notehead */
+/* -1: Original right boundary */
+/* 0: Main note accidental */
+/* icrd: Chord-note accidental */
+/* isetshft(i),i=1,naccid: what set shift for this accid, same codes */
+
+ if (isetshft[iwa - 1] < 0) {
+ iranksetter = 0;
+ } else if (isetshft[iwa - 1] == 0) {
+ iranksetter = *icrdot0;
+ } else {
+ iranksetter = igetbits_(&comtrill_1.icrdot[isetshft[iwa - 1]
+ - 1], &c__3, &c__27);
+ }
+ if (iranksetter != 0 && irank != iranksetter + 1) {
+ *rmsshift = 1e3f;
+ return 0;
+ }
+ }
+/* Computing 2nd power */
+ r__1 = shift;
+ *rmsshift += r__1 * r__1;
+ if (*lasttime && dabs(shift) > 1e-4f) {
+ if (mainnote) {
+ if (! bit_test(*nacc,29)) {
+ goto L10;
+ }
+ } else {
+ if (! bit_test(comtrill_1.icrdat[micrd[iwa] - 1],29)) {
+ goto L10;
+ }
+ }
+
+/* If here, "A" was set on a manual shift, so must cumulate the shift. Note that if there */
+/* was a manual shift but auto-shift was zero, will not come thru here, but shift value */
+/* will be left intact. */
+
+ if (mainnote) {
+ shift += (igetbits_(nacc, &c__7, &c__10) - 107) * .05f;
+ } else {
+ shift += (igetbits_(&comtrill_1.icrdot[micrd[iwa] - 1], &c__7,
+ &c__20) - 107) * .05f;
+ }
+L10:
+ if (*twooftwo) {
+
+/* Record the shift for this accidental */
+
+ if (shift < -5.35f) {
+ printl_(" ", (ftnlen)1);
+ printl_("WARNING: auto-generated accidental shift too bi"
+ "g for PMX, ignoring", (ftnlen)66);
+ } else {
+ r__1 = (shift + 5.35f) * 20;
+ ishift = i_nint(&r__1);
+ if (mainnote) {
+ setbits_(nacc, &c__7, &c__10, &ishift);
+ } else {
+ setbits_(&comtrill_1.icrdot[micrd[iwa] - 1], &c__7, &
+ c__20, &ishift);
+ }
+ }
+ } else {
+
+/* This is the earlier call to precrd, so need minimum shift */
+
+ shiftmin = dmin(shiftmin,shift);
+ }
+ }
+
+/* Bail out if this is the last accidental to check */
+
+ if (iwa == *naccid) {
+ goto L1;
+ }
+
+/* Add this accidental to the right barrier! Count down from highest barrier segment, */
+/* find 1st one starting below top of accid, and first one starting below bot. */
+
+ for (ibelowtop = nsegrb; ibelowtop >= 1; --ibelowtop) {
+ if (segrb[(ibelowtop << 1) - 1] < nolev + segal[iacctype + ((
+ nsegal[iacctype - 1] << 1) + 2) * 5 - 16]) {
+ for (ibelowbot = ibelowtop; ibelowbot >= 1; --ibelowbot) {
+ if (segrb[(ibelowbot << 1) - 1] < nolev + segal[iacctype
+ + 4]) {
+ goto L6;
+ }
+/* L9: */
+ }
+ s_wsle(&io___268);
+ do_lio(&c__9, &c__1, "Oops2!", (ftnlen)6);
+ e_wsle();
+ stop1_();
+ }
+/* L5: */
+ }
+ s_wsle(&io___269);
+ do_lio(&c__9, &c__1, "Ugh0! in crdaccs", (ftnlen)16);
+ e_wsle();
+ stop1_();
+L6:
+ netgain = nsegal[iacctype - 1] - ibelowtop + ibelowbot;
+
+/* Shift high segments up */
+
+ if (netgain >= 0) {
+ i__2 = ibelowtop + 1;
+ for (isegrb = nsegrb; isegrb >= i__2; --isegrb) {
+ segrb[(isegrb + netgain << 1) - 2] = segrb[(isegrb << 1) - 2];
+ segrb[(isegrb + netgain << 1) - 1] = segrb[(isegrb << 1) - 1];
+ ksegrb[isegrb + netgain - 1] = ksegrb[isegrb - 1];
+/* L7: */
+ }
+
+/* Set up 1st segment above accid */
+
+ segrb[(ibelowtop + netgain << 1) - 2] = segrb[(ibelowtop << 1) -
+ 2];
+ segrb[(ibelowtop + netgain << 1) - 1] = nolev + segal[iacctype + (
+ (nsegal[iacctype - 1] << 1) + 2) * 5 - 16];
+ ksegrb[ibelowtop + netgain - 1] = ksegrb[ibelowtop - 1];
+ } else {
+
+/* netgain<0, must remove segments. Use same coding but reverse order, */
+/* work from bottom up */
+
+ segrb[(ibelowtop + netgain << 1) - 2] = segrb[(ibelowtop << 1) -
+ 2];
+ segrb[(ibelowtop + netgain << 1) - 1] = nolev + segal[iacctype + (
+ (nsegal[iacctype - 1] << 1) + 2) * 5 - 16];
+ ksegrb[ibelowtop + netgain - 1] = ksegrb[ibelowtop - 1];
+ i__2 = nsegrb;
+ for (isegrb = ibelowtop + 1; isegrb <= i__2; ++isegrb) {
+ segrb[(isegrb + netgain << 1) - 2] = segrb[(isegrb << 1) - 2];
+ segrb[(isegrb + netgain << 1) - 1] = segrb[(isegrb << 1) - 1];
+ ksegrb[isegrb + netgain - 1] = ksegrb[isegrb - 1];
+/* L12: */
+ }
+ }
+
+/* Insert new segments */
+
+ i__2 = nsegal[iacctype - 1] - 1;
+ for (isega = 1; isega <= i__2; ++isega) {
+ segrb[(ibelowbot + isega << 1) - 2] = shift + segal[iacctype + ((
+ isega << 1) + 1) * 5 - 16];
+ segrb[(ibelowbot + isega << 1) - 1] = nolev + segal[iacctype + ((
+ isega << 1) + 2) * 5 - 16];
+ if (mainnote) {
+ ksegrb[ibelowbot + isega - 1] = 0;
+ } else {
+ ksegrb[ibelowbot + isega - 1] = micrd[iwa];
+ }
+/* L8: */
+ }
+
+/* Update number of barrier segments */
+
+ nsegrb += netgain;
+/* c */
+/* c Temporary printout for boundary segments as built up */
+/* c */
+/* write(15,'()') */
+/* write(15,'(a/(2f8.2,i5))')' y x kseg', */
+/* * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb) */
+/* write(15,'(a/(2i5))')' micrd isetshft', */
+/* * (micrd(iwa1),isetshft(iwa1),iwa1=1,iwa) */
+/* c */
+L1:
+ ;
+ }
+/* next accidental */
+ if (*lasttime && ! (*twooftwo)) {
+
+/* This is the final call on the pre-ask pass, so compute left-shift rqmt. */
+
+ r__1 = shiftmin * -20;
+ *icashft = i_nint(&r__1);
+ }
+/* c */
+/* c Temporary printout for boundary segments */
+/* c */
+/* if (twooftwo) then */
+/* write(15,'()') */
+/* write(15,'(a/(2f8.2,i5))')' y x kseg', */
+/* * (segrb(2,iseg),segrb(1,iseg),ksegrb(iseg),iseg=1,nsegrb) */
+/* write(15,'(a/(2i5))')' micrd isetshft', */
+/* * (micrd(iwa),isetshft(iwa),iwa=1,naccid) */
+/* end if */
+/* c */
+ return 0;
+} /* crdacc_ */
+
+/* Subroutine */ int crdaccs_(integer *nacc, integer *ipl, integer *irest,
+ integer *naccid, integer *kicrd, integer *nolevm, integer *levmaxacc,
+ integer *levminacc, integer *icrdot0, logical *twooftwo, integer *
+ icashft)
+{
+ /* System generated locals */
+ integer i__1, i__2, i__3;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer ipermsav[7];
+ static real rmsshift;
+ static integer i__, j, k, levmidacc, ip, ir, is, it, maxmanshft, icrd;
+ extern /* Subroutine */ int stop1_(void);
+ static integer micrd[10], iiseg, irank, iperm[7], nolev;
+ static real segrb0[100] /* was [2][50] */;
+ extern /* Subroutine */ int crdacc_(integer *, integer *, integer *,
+ integer *, real *, logical *, integer *, integer *, real *,
+ integer *, integer *, logical *, integer *);
+ static logical tagged;
+ static integer isegrb;
+ static logical manual, lshift;
+ static integer idummy;
+ static real rmsmin;
+ static integer ksegrb0[50], nsegrb0, manshft;
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___298 = { 0, 6, 0, 0, 0 };
+
+
+
+/* nacc = accidental bitmap for main note */
+/* naccid = # of accid's in chord */
+/* kicrd = array with icrd #'s for notes w/ acc's, 0=>main note */
+/* nolevm = level of main note */
+
+/* This is called once per multi-accidental chord. In here, loop over all */
+/* permutations of the order of accidental as stored in kicrd. Each time thru */
+/* loop, call crdacc once, get rms shift. Only save permutation and rms value */
+/* if it is less than old value. */
+
+
+/* Make consistent? 120106 */
+/* integer*4 kicrd(7),iperm(7),micrd(10),ipermsav(7),ksegrb0(50) */
+/* c */
+/* c Temporary printout of level-rankings */
+/* c */
+/* write(15,'()') */
+/* do 98 iacc = 1 , naccid */
+/* if (kicrd(iacc) .eq. 0) then */
+/* write(15,'(3i5)')nolevm,icrdot0 */
+/* else */
+/* write(15,'(2i5)')igetbits(icrdat(kicrd(iacc)),7,12), */
+/* * igetbits(icrdot(kicrd(iacc)),3,27) */
+/* end if */
+/* 98 continue */
+/* c */
+
+/* Initialize right-barrier */
+
+ /* Parameter adjustments */
+ --kicrd;
+
+ /* Function Body */
+ segrb0[0] = 0.f;
+ segrb0[1] = -1e3f;
+ segrb0[2] = 0.f;
+ segrb0[3] = 1e3f;
+ nsegrb0 = 2;
+ ksegrb0[0] = -1;
+ ksegrb0[1] = -1;
+
+/* Search for left-shifted notes, Make up the initial right-barrier, which */
+/* will be good for all permutations. */
+/* irest()(27) is set if any notes are left-shifted */
+/* Must use ALL chord notes, not just ones w/ accid's. */
+
+ if (bit_test(*irest,27)) {
+ i__1 = comtrill_1.icrd2;
+ for (icrd = comtrill_1.icrd1 - 1; icrd <= i__1; ++icrd) {
+ if (icrd == comtrill_1.icrd1 - 1) {
+
+/* Main note */
+
+/* lshift = btest(ipl,8) */
+ lshift = bit_test(*ipl,8) || bit_test(*nacc,31);
+ if (lshift) {
+ nolev = *nolevm;
+ }
+ } else {
+
+/* Chord note */
+
+ lshift = bit_test(comtrill_1.icrdat[icrd - 1],23);
+/* if (lshift) nolev = igetbits(icrdat(icrd),7,12) */
+ if (lshift) {
+ nolev = igetbits_(&comtrill_1.icrdat[icrd - 1], &c__7, &
+ c__12);
+ if (bit_test(*nacc,31) && nolev == *nolevm + 1) {
+
+/* This note is not really shifted, It is the upper of a 2nd with the main */
+/* note on an upstem, and Main note must be shifted. */
+/* nacc(31) signals the real truth. */
+
+ lshift = FALSE_;
+ }
+ }
+ }
+ if (lshift) {
+ i__2 = nsegrb0 - 1;
+ for (isegrb = 1; isegrb <= i__2; ++isegrb) {
+ if (segrb0[(isegrb + 1 << 1) - 1] > (real) (nolev - 1)) {
+
+/* Add this notehead to the right boundary here. Move all higher segs up 2. */
+
+ i__3 = isegrb + 1;
+ for (iiseg = nsegrb0; iiseg >= i__3; --iiseg) {
+ segrb0[(iiseg + 2 << 1) - 2] = segrb0[(iiseg << 1)
+ - 2];
+ segrb0[(iiseg + 2 << 1) - 1] = segrb0[(iiseg << 1)
+ - 1];
+ ksegrb0[iiseg + 1] = ksegrb0[iiseg - 1];
+/* L17: */
+ }
+ goto L18;
+ }
+/* L16: */
+ }
+L18:
+
+/* Insert notehead into list. Set kseg=-2 to signal notehead shift. */
+
+ iiseg = isegrb + 1;
+ segrb0[(iiseg << 1) - 2] = -1.2f;
+ segrb0[(iiseg << 1) - 1] = nolev - 1.f;
+ ksegrb0[iiseg - 1] = -2;
+ segrb0[(iiseg + 1 << 1) - 2] = 0.f;
+ segrb0[(iiseg + 1 << 1) - 1] = nolev + 1.f;
+ ksegrb0[iiseg] = -1;
+ nsegrb0 += 2;
+ }
+/* L15: */
+ }
+ }
+
+/* Done setting right barrier for left-shifted noteheads */
+
+ tagged = FALSE_;
+ manual = FALSE_;
+
+/* Preprocess to check for manual shifts. */
+/* If are manual main [nacc(10-16)] or chord note [icrdot(20-26)]shifts, then */
+/* If any manual shift is preceded by "A" [nacc(29), icrdat(29)] then */
+/* 1. Auto-shifting proceeds */
+/* 2. "A"-shifts add to autoshifts */
+/* 3. non-"A" shifts are ignored! */
+/* Else (>0 man shifts, none has "A") */
+/* No auto-ordering, No autoshifts, Observe all manual shifts. */
+/* End if */
+/* End if */
+
+ maxmanshft = 0;
+ i__1 = *naccid;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ if (kicrd[i__] == 0) {
+
+/* Main note */
+
+ manshft = igetbits_(nacc, &c__7, &c__10);
+ if (manshft != 0) {
+ manual = TRUE_;
+ if (bit_test(*nacc,29)) {
+ tagged = TRUE_;
+ } else {
+/* maxmanshft = max(maxmanshft,64-manshft) */
+/* Computing MAX */
+ i__2 = maxmanshft, i__3 = 107 - manshft;
+ maxmanshft = max(i__2,i__3);
+ }
+ }
+ } else {
+
+/* Chord note */
+
+ manshft = igetbits_(&comtrill_1.icrdot[kicrd[i__] - 1], &c__7, &
+ c__20);
+ if (manshft != 0) {
+ manual = TRUE_;
+ if (bit_test(comtrill_1.icrdat[kicrd[i__] - 1],29)) {
+ tagged = TRUE_;
+ } else {
+/* maxmanshft = max(maxmanshft,64-manshft) */
+/* Computing MAX */
+ i__2 = maxmanshft, i__3 = 107 - manshft;
+ maxmanshft = max(i__2,i__3);
+ }
+ }
+ }
+/* L13: */
+ }
+ if (manual) {
+ if (tagged) {
+
+/* zero out all untagged shifts */
+
+ i__1 = *naccid;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ if (kicrd[i__] == 0) {
+ if (! bit_test(*nacc,29)) {
+ setbits_(nacc, &c__7, &c__10, &c__0);
+ }
+ } else {
+ if (! bit_test(comtrill_1.icrdat[kicrd[i__] - 1],29)) {
+ setbits_(&comtrill_1.icrdot[kicrd[i__] - 1], &c__7, &
+ c__20, &c__0);
+ }
+ }
+/* L14: */
+ }
+ } else {
+
+/* There are manual shifts but none tagged. Only proceed if "Ao" was entered */
+
+ if (! bit_test(*nacc,28)) {
+ *icashft = maxmanshft;
+ return 0;
+ }
+ }
+ }
+ if (bit_test(*nacc,28)) {
+
+/* Take the accidentals in order as originally input, then exit. */
+
+ crdacc_(nacc, naccid, &kicrd[1], nolevm, &rmsshift, &c_true, &idummy,
+ &idummy, segrb0, ksegrb0, &nsegrb0, twooftwo, icashft);
+ return 0;
+/* end if */
+ } else if (*naccid == 3) {
+
+/* Special treatment if 3 accidentals in chord. If there aren't accids on a 2nd */
+/* then place in order top, bottom, middle. */
+
+ for (i__ = 1; i__ <= 3; ++i__) {
+ if (kicrd[i__] == 0) {
+ irank = *icrdot0;
+ nolev = *nolevm;
+ } else {
+ irank = igetbits_(&comtrill_1.icrdot[kicrd[i__] - 1], &c__3, &
+ c__27);
+ nolev = igetbits_(&comtrill_1.icrdat[kicrd[i__] - 1], &c__7, &
+ c__12);
+ }
+ if (irank == 1) {
+ micrd[0] = kicrd[i__];
+ } else {
+ micrd[5 - irank - 1] = kicrd[i__];
+ }
+ if (irank == 2) {
+ levmidacc = nolev;
+ }
+/* L20: */
+ }
+ if (*levmaxacc != levmidacc + 1 && levmidacc != *levminacc + 1) {
+ crdacc_(nacc, naccid, micrd, nolevm, &rmsshift, &c_true, &idummy,
+ &idummy, segrb0, ksegrb0, &nsegrb0, twooftwo, icashft);
+ return 0;
+ }
+ }
+ rmsmin = 1e5f;
+
+/* Initialize permutation array */
+
+ i__1 = *naccid;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ iperm[i__ - 1] = i__;
+/* L7: */
+ }
+
+/* Start looping over permutations */
+
+ for (ip = 1; ip <= 5041; ++ip) {
+ if (ip != 1) {
+
+/* Work the magic algorithm to get the next permutation */
+
+ for (k = *naccid - 1; k >= 1; --k) {
+ if (iperm[k - 1] <= iperm[k]) {
+ goto L2;
+ }
+/* L1: */
+ }
+
+/* If here, we just got the last permutation, so exit the loop over permutations */
+
+ goto L10;
+L2:
+ for (j = *naccid; j >= 1; --j) {
+ if (iperm[k - 1] <= iperm[j - 1]) {
+ goto L4;
+ }
+/* L3: */
+ }
+L4:
+ it = iperm[j - 1];
+ iperm[j - 1] = iperm[k - 1];
+ iperm[k - 1] = it;
+ is = k + 1;
+ for (ir = *naccid; ir >= 1; --ir) {
+ if (ir <= is) {
+ goto L6;
+ }
+ it = iperm[ir - 1];
+ iperm[ir - 1] = iperm[is - 1];
+ iperm[is - 1] = it;
+ ++is;
+/* L5: */
+ }
+L6:
+ ;
+ }
+
+/* New we have a permutation. Take icrd values out of kicrd and put them into */
+/* micrd in the order of the permutation */
+
+ i__1 = *naccid;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ micrd[i__ - 1] = kicrd[iperm[i__ - 1]];
+/* L9: */
+ }
+/* c */
+/* c Temporary printout */
+/* c */
+/* write(15,'(/a6,10i3)')'perm:',(iperm(i),i=1,naccid) */
+/* c */
+ crdacc_(nacc, naccid, micrd, nolevm, &rmsshift, &c_false, levmaxacc,
+ icrdot0, segrb0, ksegrb0, &nsegrb0, twooftwo, icashft);
+/* c */
+/* c Temporary printout */
+/* c */
+/* write(15,*)'perm done, rmsshift:',rmsshift */
+/* c */
+ if (rmsshift < rmsmin) {
+
+/* Save this permutation, reset minrms */
+
+ i__1 = *naccid;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ ipermsav[i__ - 1] = iperm[i__ - 1];
+ rmsmin = rmsshift;
+/* L11: */
+ }
+ }
+/* L8: */
+ }
+ s_wsle(&io___298);
+ do_lio(&c__9, &c__1, "Should not BEEEEEE here!", (ftnlen)24);
+ e_wsle();
+ stop1_();
+L10:
+
+/* Done looping, get info for the final choice */
+
+ i__1 = *naccid;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ micrd[i__ - 1] = kicrd[ipermsav[i__ - 1]];
+/* L12: */
+ }
+/* c */
+/* c Temporary printout */
+/* c */
+/* write(15,'(/a6,10i3)')'Final perm:',(ipermsav(i),i=1,naccid) */
+/* c */
+ crdacc_(nacc, naccid, micrd, nolevm, &rmsshift, &c_true, &idummy, &idummy,
+ segrb0, ksegrb0, &nsegrb0, twooftwo, icashft);
+ return 0;
+} /* crdaccs_ */
+
+/* Subroutine */ int doacc_(integer *ihshft, integer *ivshft, char *notexq,
+ integer *lnote, integer *nacc, integer *nolev, integer *ncm, logical *
+ caut, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3];
+ integer i__1[2], i__2[3];
+ char ch__1[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ static char sq[1];
+ static integer lacc;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static real hshft;
+ static char noteq[8];
+ extern /* Subroutine */ int accsym_(integer *, char *, integer *, ftnlen);
+ static integer noleva;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static char acsymq[3];
+ static integer lnoten;
+
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ if (*ihshft == -107) {
+ *ihshft = 0;
+ }
+/* c */
+/* c If main note shifted left, so shift accid. Terminate below, when acc. is done. */
+/* c */
+ if (*ihshft != 0) {
+
+/* Accid must be shifted horizontally */
+
+ if (*ihshft < 0) {
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 8, a__1[1] = "loffset{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ *ihshft = -(*ihshft);
+ } else {
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 8, a__1[1] = "roffset{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ }
+ hshft = *ihshft * .05f;
+ if (hshft < 1.f) {
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 3;
+ ici__1.iciunit = notexq + 9;
+ ici__1.icifmt = "(f3.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&hshft, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote = 12;
+ } else {
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 4;
+ ici__1.iciunit = notexq + 9;
+ ici__1.icifmt = "(f4.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&hshft, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote = 13;
+ }
+/* Writing concatenation */
+ i__2[0] = *lnote, a__2[0] = notexq;
+ i__2[1] = 2, a__2[1] = "}{";
+ i__2[2] = 1, a__2[2] = sq;
+ s_cat(notexq, a__2, i__2, &c__3, (ftnlen)79);
+ *lnote += 3;
+ } else {
+ s_copy(notexq, sq, (ftnlen)79, (ftnlen)1);
+ *lnote = 1;
+ }
+ if (bit_test(*nacc,3)) {
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ i__1[1] = 3, a__1[1] = "big";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ *lnote += 3;
+ }
+ if (*caut) {
+
+/* Cautionary accidental. Need to define bigcna,... in pmx.tex */
+
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ i__1[1] = 1, a__1[1] = "c";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ accsym_(nacc, acsymq, &lacc, (ftnlen)3);
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ i__1[1] = lacc, a__1[1] = acsymq;
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ *lnote += lacc;
+ noleva = *nolev;
+ if (*ivshft != 0) {
+ noleva = noleva + *ivshft - 32;
+ }
+ notefq_(noteq, &lnoten, &noleva, ncm, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ i__1[1] = lnoten, a__1[1] = noteq;
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ *lnote += lnoten;
+ if (*ihshft != 0) {
+
+/* Terminate horizontal shift */
+
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ i__1[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ return 0;
+} /* doacc_ */
+
+/* Subroutine */ int docrd_(integer *ivx, integer *ip, integer *nodu, integer
+ *ncm, integer *iv, real *tnow, char *soutq, integer *lsout, char *ulq,
+ integer *ibmcnt, integer *islur, integer *nvmx, integer *nv, logical
+ *beamon, integer *nolevm, integer *ihornb, integer *nornb, real *
+ stemlen, logical *dotxtup, integer *nacc, ftnlen soutq_len, ftnlen
+ ulq_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer i__1, i__2, i__3[2], i__4, i__5, i__6;
+ logical L__1;
+ char ch__1[1];
+
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *), lbit_shift(integer, integer);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen),
+ s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer kv;
+ extern integer log2_(integer *);
+ static integer icrd;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer lout, lsym;
+ static char outq[79];
+ extern /* Subroutine */ int stop1_(void), doacc_(integer *, integer *,
+ char *, integer *, integer *, integer *, integer *, logical *,
+ ftnlen);
+ extern integer ncmid_(integer *, integer *);
+ static integer lnote, nolev;
+ static char noteq[8];
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static integer nactmp;
+ static logical isleft;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static real updotc, rtdotc;
+ static integer lnoten, nolevo;
+ extern /* Subroutine */ int dotmov_(real *, real *, char *, integer *,
+ integer *, ftnlen), putarp_(real *, integer *, integer *, integer
+ *, integer *, char *, integer *, ftnlen);
+ static char notexq[79], nosymq[7];
+ extern /* Subroutine */ int putorn_(integer *, integer *, integer *,
+ integer *, integer *, char *, integer *, integer *, integer *,
+ integer *, integer *, integer *, integer *, real *, char *,
+ integer *, integer *, integer *, logical *, logical *, ftnlen,
+ ftnlen), addmidi_(integer *, integer *, integer *, integer *,
+ real *, logical *, logical *);
+ static logical isright;
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___323 = { 0, 6, 0, 0, 0 };
+ static cilist io___324 = { 0, 6, 0, 0, 0 };
+
+
+
+
+
+/* This subr. once produced notexq for entire chord. 10/18/97 altered to write */
+/* chord notes as we go. 10/22/97 find range of icrd first. */
+/* 2/25/98 moved rangefinding to precrd so done before slurs, so now */
+/* on entry, icrd1, icrd2 define range of icrd for this chord. */
+
+/* Set counter (for this note) for chord notes present. Set notmain=T. */
+/* Will test for notmain=.true. in addmidi to tell whether to save pitch. */
+
+ /* Parameter adjustments */
+ --nornb;
+ ihornb -= 25;
+ ulq -= 25;
+
+ /* Function Body */
+ commidi_1.nmidcrd = 0;
+ commidi_1.notmain = TRUE_;
+ commidi_1.crdacc = FALSE_;
+ i__1 = comtrill_1.icrd2;
+ for (icrd = comtrill_1.icrd1; icrd <= i__1; ++icrd) {
+ lnote = 0;
+ nolev = igetbits_(&comtrill_1.icrdat[icrd - 1], &c__7, &c__12);
+
+/* 3/8/03 save original pitch to use in midi, in case 2nds alter things. */
+
+ nolevo = nolev;
+
+/* Check for special situations with 2nds (see precrd). */
+
+ if (bit_test(*nacc,30)) {
+ if (nolev == *nolevm - 1) {
+ nolev = *nolevm;
+ }
+ } else if (bit_test(*nacc,31)) {
+ if (nolev == *nolevm + 1) {
+ nolev = *nolevm;
+ }
+ }
+
+/* Lower dot for lower-voice notes?. Conditions are: */
+/* 1. Dotted time value */
+/* 2. Lower voice of two */
+/* 3. Note is on a line */
+/* 4. Not a rest (cannot be a rest in a chord!) */
+/* . 5. Flag (lowdot) is set to true */
+
+ if (comarp_1.lowdot && *nvmx == 2 && *ivx <= *nv) {
+ i__2 = log2_(nodu);
+ if (pow_ii(&c__2, &i__2) != *nodu && (nolev - *ncm) % 2 == 0) {
+ if (bit_test(comtrill_1.icrdat[icrd - 1],26)) {
+
+/* Note already in movdot list. Drop by 2. */
+
+ i__2 = igetbits_(&comtrill_1.icrdot[icrd - 1], &c__7, &
+ c__0) - 20;
+ setbits_(&comtrill_1.icrdot[icrd - 1], &c__7, &c__0, &
+ i__2);
+ } else {
+
+/* Not in list so just move it right now */
+
+ i__2 = igetbits_(islur, &c__1, &c__3);
+ dotmov_(&c_b735, &c_b736, soutq, lsout, &i__2, (ftnlen)80)
+ ;
+ }
+ }
+ }
+ if (bit_test(comtrill_1.icrdat[icrd - 1],26)) {
+
+/* Move the dot. */
+
+ updotc = ((127 & comtrill_1.icrdot[icrd - 1]) - 64) * .1f;
+ rtdotc = ((127 & lbit_shift(comtrill_1.icrdot[icrd - 1], (ftnlen)
+ -7)) - 64) * .1f;
+ i__2 = igetbits_(islur, &c__1, &c__3);
+ dotmov_(&updotc, &rtdotc, soutq, lsout, &i__2, (ftnlen)80);
+ }
+ isleft = bit_test(comtrill_1.icrdat[icrd - 1],23);
+ isright = bit_test(comtrill_1.icrdat[icrd - 1],24);
+
+/* Check for ornament in chord. */
+
+ if (comtrill_1.icrdorn[icrd - 1] > 0) {
+ putorn_(&comtrill_1.icrdorn[icrd - 1], &nolev, nolevm, nodu, &
+ nornb[1], ulq + 25, ibmcnt, ivx, ncm, islur, nvmx, nv, &
+ ihornb[25], stemlen, outq, &lout, ip, &c__0, beamon, &
+ c_true, (ftnlen)1, (ftnlen)79);
+
+/* subroutin putorn(iornq,nolev,nolevm,nodur,nornb,ulq,ibmcnt,ivx, */
+/* * ncm,islur,nvmx,nv,ihornb,stemlen,outq,lout,ip,islhgt, */
+/* * notcrd,beamon,iscrd) */
+
+ addstr_(outq, &lout, soutq, lsout, (ftnlen)79, (ftnlen)80);
+ }
+
+/* Chord-note symbol. First check for breve */
+
+ if (*nodu == 128) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "zbreve";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ lsym = 7;
+ } else {
+
+/* Not a breve chord. Get first letters in chord-note symbol */
+
+ if (isleft) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 1, a__1[1] = "l";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ } else if (isright) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 1, a__1[1] = "r";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ } else {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 1, a__1[1] = "z";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ }
+ if (*nodu >= 64) {
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = nosymq;
+ i__3[1] = 1, a__1[1] = "w";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ } else if (*nodu >= 32) {
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = nosymq;
+ i__3[1] = 1, a__1[1] = "h";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ } else {
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = nosymq;
+ i__3[1] = 1, a__1[1] = "q";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ }
+ i__2 = log2_(nodu);
+ if (pow_ii(&c__2, &i__2) == *nodu && ! (*dotxtup)) {
+ lsym = 3;
+ } else if (! bit_test(*islur,3) || *dotxtup) {
+
+/* Single dot */
+
+/* Writing concatenation */
+ i__3[0] = 3, a__1[0] = nosymq;
+ i__3[1] = 1, a__1[1] = "p";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ lsym = 4;
+ } else {
+
+/* Double dot */
+
+/* Writing concatenation */
+ i__3[0] = 3, a__1[0] = nosymq;
+ i__3[1] = 2, a__1[1] = "pp";
+ s_cat(nosymq, a__1, i__3, &c__2, (ftnlen)7);
+ lsym = 5;
+ }
+ }
+ if (bit_test(comtrill_1.icrdat[icrd - 1],19) && ! bit_test(
+ comtrill_1.icrdat[icrd - 1],27)) {
+
+/* Accidental and not MIDI-only. Build up bits 0-3 of nacc */
+
+ nactmp = igetbits_(&comtrill_1.icrdat[icrd - 1], &c__3, &c__20);
+
+/* Kluge for bigness. Only means 'As' has not been issued */
+
+ if (spfacs_1.bacfac != 1e6f) {
+ nactmp += 8;
+ }
+ i__2 = igetbits_(&comtrill_1.icrdot[icrd - 1], &c__7, &c__20) -
+ 107;
+ i__4 = igetbits_(&comtrill_1.icrdot[icrd - 1], &c__6, &c__14);
+ i__5 = igetbits_(&comtrill_1.icrdat[icrd - 1], &c__7, &c__12);
+ i__6 = ncmid_(iv, ip);
+ L__1 = bit_test(comtrill_1.icrdat[icrd - 1],31);
+ doacc_(&i__2, &i__4, notexq, &lnote, &nactmp, &i__5, &i__6, &L__1,
+ (ftnlen)79);
+/* * notexq,lnote,nactmp,nolev,ncmid(iv,ip)) */
+/* Get original nolev, not altered to deal with 2nds */
+/* * ncmid(iv,ip)) */
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 7, a__1[1] = nosymq;
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ commidi_1.crdacc = TRUE_;
+ } else {
+ s_copy(notexq, nosymq, (ftnlen)79, (ftnlen)7);
+ }
+ lnote += lsym;
+
+/* Get note name (again if accid, due to possible octave jump) */
+
+ notefq_(noteq, &lnoten, &nolev, ncm, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+
+/* Put in note name */
+
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 8, a__1[1] = noteq;
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote += lnoten;
+ if (bit_test(comtrill_1.icrdat[icrd - 1],25)) {
+
+/* Arpeggio signal */
+
+/* call putarp(tnow,iv,ip,nolev,ncm,soutq,lsout) */
+ putarp_(tnow, ivx, ip, &nolev, ncm, soutq, lsout, (ftnlen)80);
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)80);
+ if (commidi_1.ismidi) {
+
+/* Here is where we collect MIDI pitch info for the chord note. By checking */
+/* notmain, addmidi(...) knows to just compute the */
+/* pitch number and store it in mcpitch(nmidcrd). Then on call to addmidi() */
+/* for MAIN note, will put in note codes for all chord notes + main note. */
+
+ kv = 1;
+ if (*ivx > *iv) {
+ kv = 2;
+ }
+ ++commidi_1.nmidcrd;
+ if (commidi_1.nmidcrd > 20) {
+ s_wsle(&io___323);
+ e_wsle();
+ s_wsle(&io___324);
+ do_lio(&c__9, &c__1, "21 chord notes is too many for midi pr"
+ "ocessor", (ftnlen)45);
+ e_wsle();
+ stop1_();
+ }
+
+/* Use original saved pitch level, unaltered by 2nds logic. */
+
+/* call addmidi(midchan(iv,kv),nolevo, */
+ i__2 = nolevo - cominsttrans_1.itransamt[cominsttrans_1.instno[*
+ iv - 1] - 1];
+ i__4 = igetbits_(&comtrill_1.icrdat[icrd - 1], &c__3, &c__20);
+ addmidi_(&commidi_1.midchan[*iv + kv * 24 - 25], &i__2, &i__4, &
+ comtop_1.isig, &c_b781, &c_false, &c_false);
+ }
+/* L5: */
+ }
+ commidi_1.notmain = FALSE_;
+ return 0;
+} /* docrd_ */
+
+/* Subroutine */ int dodyn_(integer *ivx, integer *ip, integer *nolev,
+ integer *ncm, integer *ipl, integer *islur, integer *irest, integer *
+ nvmx, integer *nv, logical *beamon, integer *ihornb, integer *nornb,
+ char *ulq, integer *ibmcnt, logical *nostem, char *soutq, integer *
+ lsout, ftnlen ulq_len, ftnlen soutq_len)
+{
+ /* Initialized data */
+
+ static char dyntablq[48] = "ppppppp pp p mp mf f fp sfz ff fff "
+ "ffff";
+
+ /* System generated locals */
+ address a__1[2], a__2[4], a__3[3], a__4[6];
+ integer i__1, i__2, i__3[2], i__4[4], i__5, i__6[3], i__7[6];
+ char ch__1[1], ch__2[6], ch__3[81], ch__4[53];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen),
+ s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ , s_wsfe(cilist *), e_wsfe(void);
+
+ /* Local variables */
+ extern /* Subroutine */ int backfill_(integer *, char *, integer *, char *
+ , integer *, ftnlen, ftnlen);
+ static integer jtxtdyn1;
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer lpretweak, id;
+ static real hoff;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer idno, lbot, idyn, jdyn;
+ extern /* Character */ VOID udqq_(char *, ftnlen, integer *, integer *,
+ integer *, integer *, integer *, integer *);
+ static integer lbot1;
+ extern integer lfmt1_(real *);
+ extern /* Subroutine */ int stop1_(void);
+ static integer idynd, lform, idynn[10], lnote, ltemp;
+ static char tempq[48];
+ static integer ivxip;
+ static char numpq[5];
+ static integer idynd2;
+ static real hoffsd;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static integer iptent;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer numdyn;
+ static logical upstem;
+ static char notexq[79];
+ static integer lnumpq, icntdyn, ivxtent;
+ static char dynstrq[4];
+ static integer jtxtdyn, ltxtdyn;
+
+ /* Fortran I/O blocks */
+ static icilist io___345 = { 0, numpq+1, 0, "(i2)", 2, 1 };
+ static icilist io___347 = { 0, numpq+1, 0, "(i2)", 2, 1 };
+ static icilist io___348 = { 0, numpq+1, 0, "(i3)", 3, 1 };
+ static icilist io___355 = { 0, numpq+1, 0, "(i2)", 2, 1 };
+ static icilist io___356 = { 0, numpq+1, 0, "(i2)", 2, 1 };
+ static icilist io___357 = { 0, numpq+1, 0, "(i3)", 3, 1 };
+ static cilist io___360 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* Inputs are array *elements* except ihornb,nornb,ulq */
+
+ /* Parameter adjustments */
+ ulq -= 25;
+ --nornb;
+ ihornb -= 25;
+
+ /* Function Body */
+ numdyn = 0;
+
+/* Find dynamics for (ivx,ip) in list. May be as many as 4. Store idyn values */
+/* in idynn(1...4) */
+
+ i__1 = comdyn_1.ndyn;
+ for (idyn = 1; idyn <= i__1; ++idyn) {
+/* ivxtent = iand(idyndat(idyn),15) */
+ ivxtent = (comdyn_1.idyndat[idyn - 1] & 15) + (igetbits_(&
+ comdyn_1.idynda2[idyn - 1], &c__1, &c__10) << 4);
+ if (ivxtent == *ivx) {
+ iptent = igetbits_(&comdyn_1.idyndat[idyn - 1], &c__8, &c__4);
+ if (iptent == *ip) {
+ ++numdyn;
+ idynn[numdyn - 1] = idyn;
+ } else if (iptent > *ip) {
+
+/* I don't think there are any more possible for this ivx,ip, so exit loop */
+
+ goto L2;
+ }
+/* else if (ivxtent .gt. ivx) then */
+/* go to 2 */
+ }
+/* L1: */
+ }
+L2:
+
+/* At this point there is a list of idyn's in idynn(1...numdyn) */
+/* Compute level, and stem-dir'n-based horizontal tweaks */
+
+ hoffsd = 0.f;
+
+/* Set upstem to false as default */
+
+ upstem = FALSE_;
+ if (bit_test(*irest,0)) {
+
+/* It's a rest. Assume it doesn't go below the staff */
+
+ lbot = *ncm - 4;
+ } else if (! (*beamon)) {
+ udqq_(ch__1, (ftnlen)1, nolev, ncm, islur, nvmx, ivx, nv);
+ if (*(unsigned char *)&ch__1[0] == 'u' || *nostem) {
+ upstem = TRUE_;
+ if (! bit_test(*ipl,10)) {
+/* Computing MIN */
+ i__1 = *nolev - 1, i__2 = *ncm - 4;
+ lbot = min(i__1,i__2);
+ } else {
+/* Computing MIN */
+ i__1 = comtrill_1.minlev - 1, i__2 = *ncm - 4;
+ lbot = min(i__1,i__2);
+ }
+ } else {
+ hoffsd = -.5f;
+ if (! bit_test(*ipl,10)) {
+/* Computing MIN */
+ i__1 = *nolev - 7, i__2 = *ncm - 4;
+ lbot = min(i__1,i__2);
+ } else {
+/* Computing MIN */
+ i__1 = comtrill_1.minlev - 7, i__2 = *ncm - 4;
+ lbot = min(i__1,i__2);
+ }
+ }
+ } else {
+ if (*(unsigned char *)&ulq[*ivx + *ibmcnt * 24] == 'u') {
+ upstem = TRUE_;
+ if (! bit_test(*ipl,10)) {
+/* Computing MIN */
+ i__1 = *nolev - 1, i__2 = *ncm - 4;
+ lbot = min(i__1,i__2);
+ } else {
+/* Computing MIN */
+ i__1 = comtrill_1.minlev - 1, i__2 = *ncm - 4;
+ lbot = min(i__1,i__2);
+ }
+ } else {
+ hoffsd = -.5f;
+ lbot = ihornb[*ivx + nornb[*ivx] * 24] + 1;
+ if (lbot == 1) {
+
+/* Kluge for non-beamed, down xtup, for which ihorb was never set. */
+/* Assumes stem is shortened. */
+
+ lbot = *nolev - 5;
+ }
+ ++nornb[*ivx];
+ }
+ }
+ lbot += -5;
+ jtxtdyn1 = 1;
+
+/* Now ready to loop over current dyn's */
+
+ i__1 = numdyn;
+ for (icntdyn = 1; icntdyn <= i__1; ++icntdyn) {
+ idynd = comdyn_1.idyndat[idynn[icntdyn - 1] - 1];
+ idynd2 = comdyn_1.idynda2[idynn[icntdyn - 1] - 1];
+ idno = igetbits_(&idynd, &c__4, &c__12);
+/* ivx = iand(15,idynd) */
+ *ivx = (15 & idynd) + (igetbits_(&idynd2, &c__1, &c__10) << 4);
+
+/* Build the command into notex in stages. Insert name & rq'd args in order: */
+
+/* Command name */
+/* hpstrt, hpcend, hpdend, pmxdyn */
+/* ivx */
+/* X X X */
+/* level */
+/* X X X */
+/* hoff */
+/* X X X X */
+/* d-mark */
+/* X */
+
+ if (idno == 0) {
+
+/* Text-dynamic */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "txtdyn";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 7;
+ } else if (idno <= 12) {
+
+/* Letter-group */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "pmxdyn";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 7;
+ } else if (comslur_1.fontslur) {
+ lnote = 7;
+ if (idno == 13) {
+
+/* Start a hairpin */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "hpstrt";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ } else if (idno == 14) {
+
+/* End crescendo */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "hpcend";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ } else {
+
+/* End decrescendo */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "hpdend";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ }
+ } else {
+
+/* Postscript hairpins */
+
+ lnote = 7;
+ if (idno == 13) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "Icresc";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ } else if (idno == 14) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 8, a__1[1] = "Idecresc";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 9;
+ } else {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "Tcresc";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ }
+ }
+ if (idno >= 13) {
+
+/* Put in voice number */
+
+ if (*ivx <= 9) {
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ *(unsigned char *)&ch__1[0] = *ivx + 48;
+ i__3[1] = 1, a__1[1] = ch__1;
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ ++lnote;
+ } else if (*ivx <= 19) {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 2, a__2[1] = "{1";
+ *(unsigned char *)&ch__1[0] = *ivx + 38;
+ i__4[2] = 1, a__2[2] = ch__1;
+ i__4[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__4, &c__4, (ftnlen)79);
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 2, a__2[1] = "{2";
+ *(unsigned char *)&ch__1[0] = *ivx + 28;
+ i__4[2] = 1, a__2[2] = ch__1;
+ i__4[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__4, &c__4, (ftnlen)79);
+ lnote += 4;
+ }
+ }
+
+/* Begin setting level */
+
+ lbot1 = lbot;
+ if (idno > 0 && idno <= 5) {
+
+/* All letters are short so raise a bit. */
+
+ ++lbot1;
+ } else if (idno >= 13) {
+ lbot1 += 2;
+ }
+
+/* Convert so reference is bottom line */
+
+ lbot1 = lbot1 - *ncm + 4;
+ if (comslur_1.fontslur && idno == 13 || ! comslur_1.fontslur && (idno
+ == 13 || idno == 14)) {
+
+/* Hairpin start. Save level and user-tweak before applying user tweak. */
+
+ comdyn_1.levdsav[*ivx - 1] = lbot1;
+ comdyn_1.levhssav[*ivx - 1] = 0;
+ if (bit_test(idynd,16)) {
+ comdyn_1.levhssav[*ivx - 1] = igetbits_(&idynd, &c__7, &c__17)
+ - 64;
+ }
+ } else if (comslur_1.fontslur && idno >= 14 || idno == 15) {
+
+/* Hairpin end; Compare level with saved start level before user-tweaks */
+
+/* Computing MIN */
+ i__2 = lbot1, i__5 = comdyn_1.levdsav[*ivx - 1];
+ lbot1 = min(i__2,i__5);
+
+/* Save pre-tweak level */
+
+ lpretweak = lbot1;
+ }
+
+/* Check for user-defined vertical tweak */
+
+ if (bit_test(idynd,16)) {
+ lbot1 = lbot1 - 64 + igetbits_(&idynd, &c__7, &c__17);
+ }
+
+/* Now horizontal stuff */
+
+ hoff = hoffsd;
+
+/* Some special horizontal tweaks */
+
+ if (upstem && idno > 0 && (idno <= 4 || idno == 8 || idno == 9)) {
+ hoff += .4f;
+ }
+
+/* User-defined tweaks */
+
+ if (bit_test(idynd2,0)) {
+ hoff += (igetbits_(&idynd2, &c__9, &c__1) - 256) * .1f;
+ }
+ if (numdyn > 1) {
+
+/* Horizontal-interaction-based tweaks. */
+
+/* Cases: */
+/* numdyn type1 type2 type3 data used */
+/* 2 wrd-grp hrpnstrt - ivowg(1...12),hoh1(1...12) */
+/* 2 hrpnend wrd-grp - ivowg,hoh2 */
+/* 2 hrpnend hrpnstrt - hoh2h1(1...2) */
+/* 3 hrpnend wrd-grp hrpnstrt ivowg,hoh2,hoh1 */
+
+ if (idno > 0 && idno <= 12) {
+
+/* Word-group, may need vertical tweak to line up. */
+
+ lbot1 += comdyn_1.ivowg[idno - 1];
+
+/* Protecting against hp start-stop on same note */
+
+ } else if ((comslur_1.fontslur && idno >= 14 || idno == 15) &&
+ icntdyn < numdyn) {
+
+/* Hairpin ending, check next type */
+
+ if (comslur_1.fontslur && igetbits_(&comdyn_1.idyndat[idynn[
+ icntdyn] - 1], &c__4, &c__12) == 13 || !
+ comslur_1.fontslur && (igetbits_(&comdyn_1.idyndat[
+ idynn[icntdyn] - 1], &c__4, &c__12) == 13 ||
+ igetbits_(&comdyn_1.idyndat[idynn[icntdyn] - 1], &
+ c__4, &c__12) == 14)) {
+
+/* Hairpin end then hairpin start, no words, (remember dealing with end now) */
+
+ hoff += comdyn_1.hoh2h1[0];
+ } else {
+
+/* Hairpin end then word-group, need idno for w-g to set hp offset */
+
+ hoff += comdyn_1.hoh2[igetbits_(&comdyn_1.idyndat[idynn[
+ icntdyn] - 1], &c__4, &c__12) - 1];
+ }
+
+/* Protecting against hp start-stop on same note */
+
+ } else if (icntdyn > 1 && idno > 0 && (comslur_1.fontslur && idno
+ < 14 || ! comslur_1.fontslur && idno < 15)) {
+
+/* Hairpin start, check prior type */
+
+ if (comslur_1.fontslur && igetbits_(&comdyn_1.idyndat[idynn[
+ icntdyn - 2] - 1], &c__4, &c__12) >= 14 || !
+ comslur_1.fontslur && igetbits_(&comdyn_1.idyndat[
+ idynn[icntdyn - 2] - 1], &c__4, &c__12) == 15) {
+
+/* Hairpin end then hairpin start, (remember dealing with start now) */
+
+ hoff += comdyn_1.hoh2h1[1];
+ } else {
+
+/* Hairpin start after word-group, need idno for w-g to set hp offset */
+
+ hoff += comdyn_1.hoh1[igetbits_(&comdyn_1.idyndat[idynn[
+ icntdyn - 2] - 1], &c__4, &c__12) - 1];
+ }
+ }
+ }
+
+/* End of if-block for 2- or 3-way interactions. */
+
+ if (! comslur_1.fontslur && idno >= 13) {
+ hoff = (hoff + .5f) * 6.f / 2.5f;
+ }
+
+/* Slur font and hairpin. Add hoff, and change from \interneote to \qn@width */
+
+
+/* Position corrections all done now. Put in the level. */
+
+ if (comslur_1.fontslur && idno == 13 || ! comslur_1.fontslur && (idno
+ == 13 || idno == 14)) {
+
+/* Hairpin start. */
+
+ if (! comslur_1.fontslur) {
+
+/* Postscript hairpin start...inset placeholder for start level. */
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 5, a__1[1] = "{ }";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote += 5;
+ }
+ } else {
+
+/* Insert actual level in all cases except hairpin start */
+/* Create string with level in it */
+
+ if (lbot1 > 9) {
+ s_copy(numpq, "{", (ftnlen)5, (ftnlen)1);
+ s_wsfi(&io___345);
+ do_fio(&c__1, (char *)&lbot1, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 3, a__1[0] = numpq;
+ i__3[1] = 1, a__1[1] = "}";
+ s_cat(numpq, a__1, i__3, &c__2, (ftnlen)5);
+ lnumpq = 4;
+ } else if (lbot1 > -1) {
+ *(unsigned char *)&ch__1[0] = lbot1 + 48;
+ s_copy(numpq, ch__1, (ftnlen)5, (ftnlen)1);
+ lnumpq = 1;
+ } else if (lbot1 > -10) {
+ s_copy(numpq, "{", (ftnlen)5, (ftnlen)1);
+ s_wsfi(&io___347);
+ do_fio(&c__1, (char *)&lbot1, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 3, a__1[0] = numpq;
+ i__3[1] = 1, a__1[1] = "}";
+ s_cat(numpq, a__1, i__3, &c__2, (ftnlen)5);
+ lnumpq = 4;
+ } else {
+ s_copy(numpq, "{", (ftnlen)5, (ftnlen)1);
+ s_wsfi(&io___348);
+ do_fio(&c__1, (char *)&lbot1, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 4, a__1[0] = numpq;
+ i__3[1] = 1, a__1[1] = "}";
+ s_cat(numpq, a__1, i__3, &c__2, (ftnlen)5);
+ lnumpq = 5;
+ }
+
+/* Level has now been computed and stored in numpq */
+/* Append the level */
+
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = lnumpq, a__1[1] = numpq;
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote += lnumpq;
+ }
+ if (dabs(hoff) < .001f) {
+
+/* No horiz offset */
+
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 1, a__1[1] = "0";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ ++lnote;
+ } else {
+
+/* Horizontal tweak */
+
+ lform = lfmt1_(&hoff);
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 1, a__1[1] = "{";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ ++lnote;
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + lform - i__2;
+ ici__1.iciunit = notexq + i__2;
+/* Writing concatenation */
+ i__6[0] = 2, a__3[0] = "(f";
+ i__5 = lform + 48;
+ chax_(ch__1, (ftnlen)1, &i__5);
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = 3, a__3[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__2, a__3, i__6, &c__3, (ftnlen)6),
+ ch__2);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&hoff, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += lform;
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ if (idno == 0) {
+
+/* text-dynamic. Find the string and append it */
+
+ i__2 = comdyn_1.ntxtdyn;
+ for (jtxtdyn = jtxtdyn1; jtxtdyn <= i__2; ++jtxtdyn) {
+/* ivxip = ivx+16*ip */
+ ivxip = *ivx + (*ip << 5);
+ if (ivxip == comdyn_1.ivxiptxt[jtxtdyn - 1]) {
+ goto L5;
+ }
+/* L4: */
+ }
+ printl_("Abnormal stop in putdyn", (ftnlen)23);
+ stop1_();
+L5:
+ ltxtdyn = lenstr_(comdyn_1.txtdynq + (jtxtdyn - 1 << 7), &c__128,
+ (ftnlen)128);
+
+/* Font size based on musicsize */
+
+ if (commus_1.musize == 20) {
+/* Writing concatenation */
+ i__7[0] = lnote, a__4[0] = notexq;
+ i__7[1] = 1, a__4[1] = "{";
+ i__7[2] = 1, a__4[2] = "\\";
+ i__7[3] = 7, a__4[3] = "medtype";
+ i__7[4] = 1, a__4[4] = "\\";
+ i__7[5] = 3, a__4[5] = "it ";
+ s_cat(notexq, a__4, i__7, &c__6, (ftnlen)79);
+ lnote += 13;
+ } else if (commus_1.musize == 16) {
+/* Writing concatenation */
+ i__7[0] = lnote, a__4[0] = notexq;
+ i__7[1] = 1, a__4[1] = "{";
+ i__7[2] = 1, a__4[2] = "\\";
+ i__7[3] = 8, a__4[3] = "normtype";
+ i__7[4] = 1, a__4[4] = "\\";
+ i__7[5] = 3, a__4[5] = "it ";
+ s_cat(notexq, a__4, i__7, &c__6, (ftnlen)79);
+ lnote += 14;
+ } else if (commus_1.musize == 24) {
+/* Writing concatenation */
+ i__7[0] = lnote, a__4[0] = notexq;
+ i__7[1] = 1, a__4[1] = "{";
+ i__7[2] = 1, a__4[2] = "\\";
+ i__7[3] = 7, a__4[3] = "bigtype";
+ i__7[4] = 1, a__4[4] = "\\";
+ i__7[5] = 3, a__4[5] = "it ";
+ s_cat(notexq, a__4, i__7, &c__6, (ftnlen)79);
+ lnote += 13;
+ } else if (commus_1.musize == 29) {
+/* Writing concatenation */
+ i__7[0] = lnote, a__4[0] = notexq;
+ i__7[1] = 1, a__4[1] = "{";
+ i__7[2] = 1, a__4[2] = "\\";
+ i__7[3] = 7, a__4[3] = "Bigtype";
+ i__7[4] = 1, a__4[4] = "\\";
+ i__7[5] = 3, a__4[5] = "it ";
+ s_cat(notexq, a__4, i__7, &c__6, (ftnlen)79);
+ lnote += 13;
+ }
+/* Writing concatenation */
+ i__6[0] = lnote, a__3[0] = notexq;
+ i__6[1] = ltxtdyn, a__3[1] = comdyn_1.txtdynq + (jtxtdyn - 1 << 7)
+ ;
+ i__6[2] = 1, a__3[2] = "}";
+ s_cat(notexq, a__3, i__6, &c__3, (ftnlen)79);
+ lnote = lnote + ltxtdyn + 1;
+
+/* Reset jtxtdyn1 just in case >1 txtdyn on same note. */
+
+ jtxtdyn1 = jtxtdyn + 1;
+ } else if (idno <= 12) {
+
+/* Letter-group dynamic. Append the letter-group command */
+
+ id = idno << 2;
+ i__2 = id - 4;
+ s_copy(dynstrq, dyntablq + i__2, (ftnlen)4, id - i__2);
+ id = lenstr_(dynstrq, &c__4, (ftnlen)4);
+/* Writing concatenation */
+ i__6[0] = lnote, a__3[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = id, a__3[2] = dynstrq;
+ s_cat(notexq, a__3, i__6, &c__3, (ftnlen)79);
+ lnote = lnote + 1 + id;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, lnote, (ftnlen)80);
+ if (! comslur_1.fontslur && idno == 15) {
+
+/* PS slurs on, hairpin is ending. Go back and set height at beginning. */
+/* Add user-defined tweak to default level */
+
+ lbot1 = lpretweak + comdyn_1.levhssav[*ivx - 1];
+ if (lbot1 > 9) {
+ s_copy(numpq, "{", (ftnlen)5, (ftnlen)1);
+ s_wsfi(&io___355);
+ do_fio(&c__1, (char *)&lbot1, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 3, a__1[0] = numpq;
+ i__3[1] = 1, a__1[1] = "}";
+ s_cat(numpq, a__1, i__3, &c__2, (ftnlen)5);
+ lnumpq = 4;
+ } else if (lbot1 > -1) {
+ *(unsigned char *)&ch__1[0] = lbot1 + 48;
+ s_copy(numpq, ch__1, (ftnlen)5, (ftnlen)1);
+ lnumpq = 1;
+ } else if (lbot1 > -10) {
+ s_copy(numpq, "{", (ftnlen)5, (ftnlen)1);
+ s_wsfi(&io___356);
+ do_fio(&c__1, (char *)&lbot1, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 3, a__1[0] = numpq;
+ i__3[1] = 1, a__1[1] = "}";
+ s_cat(numpq, a__1, i__3, &c__2, (ftnlen)5);
+ lnumpq = 4;
+ } else {
+ s_copy(numpq, "{", (ftnlen)5, (ftnlen)1);
+ s_wsfi(&io___357);
+ do_fio(&c__1, (char *)&lbot1, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 4, a__1[0] = numpq;
+ i__3[1] = 1, a__1[1] = "}";
+ s_cat(numpq, a__1, i__3, &c__2, (ftnlen)5);
+ lnumpq = 5;
+ }
+
+/* Construct string to search backwards for placeholder */
+
+ if (*ivx <= 9) {
+/* Writing concatenation */
+ i__6[0] = 5, a__3[0] = "cresc";
+ *(unsigned char *)&ch__1[0] = *ivx + 48;
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = 5, a__3[2] = "{ }";
+ s_cat(tempq, a__3, i__6, &c__3, (ftnlen)48);
+ ltemp = 11;
+ } else if (*ivx <= 19) {
+/* Writing concatenation */
+ i__6[0] = 7, a__3[0] = "cresc{1";
+ *(unsigned char *)&ch__1[0] = *ivx + 38;
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = 6, a__3[2] = "}{ }";
+ s_cat(tempq, a__3, i__6, &c__3, (ftnlen)48);
+ ltemp = 14;
+ } else {
+/* Writing concatenation */
+ i__6[0] = 7, a__3[0] = "cresc{2";
+ *(unsigned char *)&ch__1[0] = *ivx + 28;
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = 6, a__3[2] = "}{ }";
+ s_cat(tempq, a__3, i__6, &c__3, (ftnlen)48);
+ ltemp = 14;
+ }
+ s_wsfe(&io___360);
+/* Writing concatenation */
+ i__3[0] = *lsout, a__1[0] = soutq;
+ i__3[1] = 1, a__1[1] = "%";
+ s_cat(ch__3, a__1, i__3, &c__2, (ftnlen)81);
+ do_fio(&c__1, ch__3, *lsout + 1);
+ e_wsfe();
+ *lsout = 0;
+/* Writing concatenation */
+ i__3[0] = ltemp - 5, a__1[0] = tempq;
+ i__3[1] = lnumpq, a__1[1] = numpq;
+ s_cat(ch__4, a__1, i__3, &c__2, (ftnlen)53);
+ i__2 = ltemp - 5 + lnumpq;
+ backfill_(&c__11, tempq, &ltemp, ch__4, &i__2, (ftnlen)48, ltemp
+ - 5 + lnumpq);
+ }
+/* L3: */
+ }
+
+/* Shrink arrays, decrease ndyn 111109 */
+
+ for (icntdyn = numdyn; icntdyn >= 1; --icntdyn) {
+ i__1 = comdyn_1.ndyn - 1;
+ for (jdyn = idynn[icntdyn - 1]; jdyn <= i__1; ++jdyn) {
+ comdyn_1.idyndat[jdyn - 1] = comdyn_1.idyndat[jdyn];
+ comdyn_1.idynda2[jdyn - 1] = comdyn_1.idynda2[jdyn];
+/* L7: */
+ }
+ --comdyn_1.ndyn;
+/* L6: */
+ }
+ return 0;
+} /* dodyn_ */
+
+/* Subroutine */ int dograce_(integer *ivx, integer *ip, real *ptgr, char *
+ soutq, integer *lsout, integer *ncm, integer *nacc, integer *ig,
+ integer *ipl, logical *farend, logical *beamon, integer *nolev,
+ integer *ncmidx, integer *islur, integer *nvmx, integer *nv, integer *
+ ibmcnt, real *tnote, char *ulq, ftnlen soutq_len, ftnlen ulq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3], a__3[4];
+ integer i__1, i__2[2], i__3[3], i__4[4], i__5, i__6;
+ real r__1;
+ char ch__1[1], ch__2[6], ch__3[2], ch__4[5], ch__5[11], ch__6[7], ch__7[4]
+ , ch__8[87], ch__9[15], ch__10[16], ch__11[9], ch__12[12], ch__13[
+ 21], ch__14[20], ch__15[19], ch__16[24], ch__17[13], ch__18[82],
+ ch__19[3], ch__20[10];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer i_nint(real *), s_wsfi(icilist *), e_wsfi(void);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer i_sign(integer *, integer *);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ static integer lnotenga;
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer i__;
+ static real x, y, em;
+ static integer mg;
+ static char sq[1];
+ static real finalshift;
+ static integer ing, ngs;
+ extern integer log2_(integer *);
+ static integer lacc;
+ static real beta;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *), udqq_(char *
+ , ftnlen, integer *, integer *, integer *, integer *, integer *,
+ integer *);
+ static real sumx, sumy;
+ extern /* Subroutine */ int stop1_(void);
+ static real delta, ptoff;
+ static integer lnote;
+ static char noteq[8];
+ static real sumxx, sumxy, sumyy;
+ static integer nolev1;
+ static logical isgaft;
+ extern /* Subroutine */ int accsym_(integer *, char *, integer *, ftnlen),
+ addstr_(char *, integer *, char *, integer *, ftnlen, ftnlen);
+ static integer islope;
+ static logical iswaft;
+ static char acsymq[3];
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten, itrans, niptgr;
+ static logical stemup, normsp;
+ static char notexq[79], noteqga[8];
+ static real wheadpt1;
+
+ /* Fortran I/O blocks */
+ static cilist io___366 = { 0, 6, 0, 0, 0 };
+ static cilist io___370 = { 0, 6, 0, 0, 0 };
+ static cilist io___371 = { 0, 6, 0, 0, 0 };
+ static cilist io___372 = { 0, 15, 0, "(/,a)", 0 };
+ static icilist io___375 = { 0, notexq, 0, "(i2)", 2, 1 };
+ static cilist io___376 = { 0, 6, 0, 0, 0 };
+ static icilist io___400 = { 0, notexq+13, 0, "(a1,f4.1)", 5, 1 };
+ static icilist io___402 = { 0, notexq+13, 0, "(f4.1)", 4, 1 };
+ static icilist io___404 = { 0, notexq+5, 0, "(f3.1)", 3, 1 };
+
+
+
+/* ip will be one LESS than current note, for way-after's before bar-end, */
+/* It is only used to find ig. */
+/* ig is returned to makeabar in case there's a slur that needs to be ended */
+
+ /* Parameter adjustments */
+ ulq -= 25;
+ --ptgr;
+
+ /* Function Body */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ isgaft = bit_test(*ipl,29);
+ iswaft = bit_test(*ipl,31);
+ normsp = ! isgaft;
+
+/* Find ig. */
+
+ i__1 = comgrace_1.ngrace;
+ for (*ig = 1; *ig <= i__1; ++(*ig)) {
+ if (comgrace_1.ipg[*ig - 1] == *ip && comgrace_1.ivg[*ig - 1] == *ivx)
+ {
+ goto L121;
+ }
+/* L120: */
+ }
+ s_wsle(&io___366);
+ do_lio(&c__9, &c__1, "Problem finding grace index in dograce", (ftnlen)38)
+ ;
+ e_wsle();
+ s_stop("", (ftnlen)0);
+L121:
+ ngs = comgrace_1.ngstrt[*ig - 1];
+ mg = comgrace_1.multg[*ig - 1];
+ wheadpt1 = comask_1.wheadpt * comfig_1.fullsize[*ivx - 1];
+
+/* For way-after-graces at end of bar, must set the octave. */
+
+ if (*farend) {
+ comoct_1.noctup = 0;
+ if (*ncm == 23) {
+ comoct_1.noctup = -2;
+ }
+ }
+ if (comgrace_1.slurg[*ig - 1] && ! iswaft && ! isgaft) {
+ if (comslur_1.listslur == 16777215) {
+ s_wsle(&io___370);
+ e_wsle();
+ s_wsle(&io___371);
+ do_lio(&c__9, &c__1, "You defined the twentyfifth slur, one too "
+ "many!", (ftnlen)47);
+ e_wsle();
+ s_wsfe(&io___372);
+ do_fio(&c__1, "You defined the twentyfifth slur, one too many!", (
+ ftnlen)47);
+ e_wsfe();
+ stop1_();
+ }
+
+/* Slur on fore-grace. Get index of next slur not in use, from 23 down. */
+
+ i__1 = 16777215 - comslur_1.listslur;
+ comslur_1.ndxslur = log2_(&i__1);
+ }
+ if (comgrace_1.nng[*ig - 1] == 1) {
+
+/* Single grace. */
+
+ if (normsp) {
+
+/* Anything but GA */
+
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 5, a__1[1] = "shlft";
+ s_cat(ch__2, a__1, i__2, &c__2, (ftnlen)6);
+ addstr_(ch__2, &c__6, soutq, lsout, (ftnlen)6, (ftnlen)80);
+ niptgr = i_nint(&ptgr[*ig]);
+
+/* Empirical tweak for postscript. */
+
+/* if (.not.fontslur) niptgr = niptgr+nint(wheadpt*.3) */
+/* ++ */
+ if (niptgr < 10) {
+/* Writing concatenation */
+ i__1 = niptgr + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 1, a__1[1] = "{";
+ s_cat(ch__3, a__1, i__2, &c__2, (ftnlen)2);
+ addstr_(ch__3, &c__2, soutq, lsout, (ftnlen)2, (ftnlen)80);
+ } else if (niptgr < 100) {
+ s_wsfi(&io___375);
+ do_fio(&c__1, (char *)&niptgr, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = "{";
+ i__3[1] = 2, a__2[1] = notexq;
+ i__3[2] = 2, a__2[2] = "}{";
+ s_cat(ch__4, a__2, i__3, &c__3, (ftnlen)5);
+ addstr_(ch__4, &c__5, soutq, lsout, (ftnlen)5, (ftnlen)80);
+ } else {
+ s_wsle(&io___376);
+ do_lio(&c__9, &c__1, "Call Dr. Don if you really want grace "
+ "note group > 99 pt", (ftnlen)56);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 10, a__1[1] = "gaft{1.5}{";
+ s_cat(ch__5, a__1, i__2, &c__2, (ftnlen)11);
+ addstr_(ch__5, &c__11, soutq, lsout, (ftnlen)11, (ftnlen)80);
+
+/* GA. Compute aftshft, for later use. */
+
+ comgrace_1.aftshft = spfacs_1.grafac;
+ if (comgrace_1.naccg[comgrace_1.ngstrt[*ig - 1] - 1] > 0) {
+ comgrace_1.aftshft += spfacs_1.agc1fac;
+ }
+ comgrace_1.aftshft *= comask_1.wheadpt;
+ }
+ if (comgrace_1.slurg[*ig - 1] && ! isgaft && ! iswaft) {
+
+/* Start slur on pre-grace. No accounting needed since will be ended very soon. */
+
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ngs - 1], ncm, (ftnlen)
+ 8);
+ if (comslur_1.fontslur) {
+ if (comgrace_1.upg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 6, a__1[1] = "islurd";
+ s_cat(ch__6, a__1, i__2, &c__2, (ftnlen)7);
+ addstr_(ch__6, &c__7, soutq, lsout, (ftnlen)7, (ftnlen)80)
+ ;
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 6, a__1[1] = "isluru";
+ s_cat(ch__6, a__1, i__2, &c__2, (ftnlen)7);
+ addstr_(ch__6, &c__7, soutq, lsout, (ftnlen)7, (ftnlen)80)
+ ;
+ }
+ } else {
+
+/* Start Postscript slur. */
+
+ if (comgrace_1.upg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 3, a__1[1] = "isd";
+ s_cat(ch__7, a__1, i__2, &c__2, (ftnlen)4);
+ addstr_(ch__7, &c__4, soutq, lsout, (ftnlen)4, (ftnlen)80)
+ ;
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 3, a__1[1] = "isu";
+ s_cat(ch__7, a__1, i__2, &c__2, (ftnlen)4);
+ addstr_(ch__7, &c__4, soutq, lsout, (ftnlen)4, (ftnlen)80)
+ ;
+ }
+ }
+
+/* Print slur number, 23-ndxslur */
+
+ lnote = 0;
+ if (23 - comslur_1.ndxslur < 10) {
+/* notexq = notexq(1:lnote)//chax(59-ndxslur) */
+ i__1 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ s_copy(notexq, ch__1, (ftnlen)79, (ftnlen)1);
+ lnote = 1;
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}' */
+/* Writing concatenation */
+ i__3[0] = 2, a__2[0] = "{1";
+ i__1 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 1, a__2[2] = "}";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ lnote = 4;
+ } else {
+/* Writing concatenation */
+ i__4[0] = lnote, a__3[0] = notexq;
+ i__4[1] = 2, a__3[1] = "{2";
+ i__1 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__4[2] = 1, a__3[2] = ch__1;
+ i__4[3] = 1, a__3[3] = "}";
+ s_cat(notexq, a__3, i__4, &c__4, (ftnlen)79);
+ lnote = 4;
+ }
+/* if (11-ndxslur .lt. 10) then */
+/* call addstr(chax(59-ndxslur)//noteq(1:lnoten),1+lnoten, */
+/* * soutq,lsout) */
+/* else */
+/* call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten), */
+/* * 4+lnoten,soutq,lsout) */
+/* end if */
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = lnoten, a__1[1] = noteq;
+ s_cat(ch__8, a__1, i__2, &c__2, (ftnlen)87);
+ i__1 = lnote + lnoten;
+ addstr_(ch__8, &i__1, soutq, lsout, lnote + lnoten, (ftnlen)80);
+ if (! comslur_1.fontslur) {
+
+/* Horizontal tweaks for postscript slur on single grace */
+
+ stemup = TRUE_;
+ if (comgrace_1.upg[*ig - 1]) {
+
+/* Check for up-grace + down stem. Get stem direction */
+
+ if (! (*beamon)) {
+
+/* Separate note. Get stem direction. */
+
+ udqq_(ch__1, (ftnlen)1, nolev, ncmidx, islur, nvmx,
+ ivx, nv);
+ stemup = *(unsigned char *)&ch__1[0] == 'u';
+ } else {
+
+/* In a beam */
+
+ stemup = *(unsigned char *)&ulq[*ivx + *ibmcnt * 24]
+ == 'u';
+ }
+
+/* Stop the shift if whole note */
+
+ stemup = stemup || *tnote > 63.f;
+ }
+ if (stemup) {
+ addstr_("{-.3}", &c__5, soutq, lsout, (ftnlen)5, (ftnlen)
+ 80);
+ } else {
+ addstr_("{-.8}", &c__5, soutq, lsout, (ftnlen)5, (ftnlen)
+ 80);
+ }
+ }
+ }
+ if (comgrace_1.naccg[ngs - 1] > 0) {
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ngs - 1], ncm, (ftnlen)
+ 8);
+
+/* Save for checking octave shifts in GA */
+
+ if (isgaft) {
+ lnotenga = lnoten;
+ s_copy(noteqga, noteq, (ftnlen)8, (ftnlen)8);
+ }
+
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ accsym_(&comgrace_1.naccg[ngs - 1], acsymq, &lacc, (ftnlen)3);
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 3, a__3[1] = "big";
+ i__4[2] = lacc, a__3[2] = acsymq;
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__9, a__3, i__4, &c__4, (ftnlen)15);
+ i__1 = lacc + 4 + lnoten;
+ addstr_(ch__9, &i__1, soutq, lsout, lacc + 4 + lnoten, (ftnlen)80)
+ ;
+ }
+ if (comgrace_1.slashg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 3, a__1[1] = "grc";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ lnote = 4;
+ } else if (mg == 0) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 2, a__1[1] = "zq";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ lnote = 3;
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 2, a__1[1] = "zc";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ i__1 = mg;
+ for (i__ = 2; i__ <= i__1; ++i__) {
+/* Writing concatenation */
+ i__2[0] = i__ + 1, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "c";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+/* L61: */
+ }
+ lnote = mg + 2;
+ }
+ if (comgrace_1.upg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "u";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "l";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ }
+ i__1 = lnote + 1;
+ addstr_(notexq, &i__1, soutq, lsout, (ftnlen)79, (ftnlen)80);
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ngs - 1], ncm, (ftnlen)8);
+
+ if (isgaft && comgrace_1.naccg[ngs - 1] == 0) {
+ lnotenga = lnoten;
+ s_copy(noteqga, noteq, (ftnlen)8, (ftnlen)8);
+ }
+
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ addstr_(noteq, &lnoten, soutq, lsout, (ftnlen)8, (ftnlen)80);
+ if (comgrace_1.slashg[*ig - 1]) {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 5, a__3[1] = "off{-";
+ i__4[2] = 1, a__3[2] = sq;
+ i__4[3] = 9, a__3[3] = "noteskip}";
+ s_cat(ch__10, a__3, i__4, &c__4, (ftnlen)16);
+ addstr_(ch__10, &c__16, soutq, lsout, (ftnlen)16, (ftnlen)80);
+ }
+
+/* Above code needed since slashg causes spacing */
+
+ if (comgrace_1.slurg[*ig - 1] && (iswaft || isgaft)) {
+
+/* Terminate slur on single after-grace */
+
+/* ndxslur = igetbits(ipl,4,23) */
+ comslur_1.ndxslur = igetbits_(ipl, &c__5, &c__23);
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ngs - 1], ncm, (ftnlen)
+ 8);
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 5, a__1[1] = "tslur";
+ s_cat(ch__2, a__1, i__2, &c__2, (ftnlen)6);
+ addstr_(ch__2, &c__6, soutq, lsout, (ftnlen)6, (ftnlen)80);
+
+/* c Print 11-ndxslur */
+/* Print 24-ndxslur */
+
+/* if (11-ndxslur .lt. 10) then */
+ if (23 - comslur_1.ndxslur < 10) {
+/* call addstr(chax(59-ndxslur)//noteq(1:lnoten), */
+/* Writing concatenation */
+ i__1 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = lnoten, a__1[1] = noteq;
+ s_cat(ch__11, a__1, i__2, &c__2, (ftnlen)9);
+ i__5 = lnoten + 1;
+ addstr_(ch__11, &i__5, soutq, lsout, lnoten + 1, (ftnlen)80);
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* Writing concatenation */
+ i__4[0] = 2, a__3[0] = "{2";
+ i__1 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 1, a__3[2] = "}";
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__12, a__3, i__4, &c__4, (ftnlen)12);
+ i__5 = lnoten + 4;
+ addstr_(ch__12, &i__5, soutq, lsout, lnoten + 4, (ftnlen)80);
+ } else {
+/* call addstr('{1'//chax(49-ndxslur)//'}'//noteq(1:lnoten), */
+/* Writing concatenation */
+ i__4[0] = 2, a__3[0] = "{1";
+ i__1 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 1, a__3[2] = "}";
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__12, a__3, i__4, &c__4, (ftnlen)12);
+ i__5 = lnoten + 4;
+ addstr_(ch__12, &i__5, soutq, lsout, lnoten + 4, (ftnlen)80);
+ }
+ comgrace_1.slurg[*ig - 1] = FALSE_;
+ comslur_1.listslur = bit_clear(comslur_1.listslur,
+ comslur_1.ndxslur);
+ }
+ addstr_("}", &c__1, soutq, lsout, (ftnlen)1, (ftnlen)80);
+
+/* +++ Try to fix loss of octave with single gaft */
+
+/* if (isgaft) call addstr(sq//'zcharnote'//noteq(1:lnoten)//'{~}', */
+/* * 13+lnoten,soutq,lsout) */
+ if (isgaft) {
+ itrans = 0;
+ i__1 = lnotenga;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ chax_(ch__1, (ftnlen)1, &c__39);
+ if (*(unsigned char *)&noteqga[i__ - 1] == *(unsigned char *)&
+ ch__1[0]) {
+ itrans += 7;
+ } else /* if(complicated condition) */ {
+ chax_(ch__1, (ftnlen)1, &c__96);
+ if (*(unsigned char *)&noteqga[i__ - 1] == *(unsigned
+ char *)&ch__1[0]) {
+ itrans += -7;
+ }
+ }
+/* L1: */
+ }
+ if (itrans == -14) {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 7, a__3[1] = "advance";
+ i__4[2] = 1, a__3[2] = sq;
+ i__4[3] = 12, a__3[3] = "transpose-14";
+ s_cat(ch__13, a__3, i__4, &c__4, (ftnlen)21);
+ addstr_(ch__13, &c__21, soutq, lsout, (ftnlen)21, (ftnlen)80);
+ } else if (itrans == -7) {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 7, a__3[1] = "advance";
+ i__4[2] = 1, a__3[2] = sq;
+ i__4[3] = 11, a__3[3] = "transpose-7";
+ s_cat(ch__14, a__3, i__4, &c__4, (ftnlen)20);
+ addstr_(ch__14, &c__20, soutq, lsout, (ftnlen)20, (ftnlen)80);
+ } else if (itrans == 7) {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 7, a__3[1] = "advance";
+ i__4[2] = 1, a__3[2] = sq;
+ i__4[3] = 10, a__3[3] = "transpose7";
+ s_cat(ch__15, a__3, i__4, &c__4, (ftnlen)19);
+ addstr_(ch__15, &c__19, soutq, lsout, (ftnlen)19, (ftnlen)80);
+ } else if (itrans == 14) {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 7, a__3[1] = "advance";
+ i__4[2] = 1, a__3[2] = sq;
+ i__4[3] = 11, a__3[3] = "transpose14";
+ s_cat(ch__14, a__3, i__4, &c__4, (ftnlen)20);
+ addstr_(ch__14, &c__20, soutq, lsout, (ftnlen)20, (ftnlen)80);
+ }
+ }
+ } else {
+
+/* Multiple grace. Put in literally. Compute beam stuff */
+
+ sumx = 0.f;
+ sumy = 0.f;
+ sumxy = 0.f;
+ sumxx = 0.f;
+ sumyy = 0.f;
+ x = 0.f;
+ i__1 = ngs + comgrace_1.nng[*ig - 1] - 1;
+ for (ing = ngs; ing <= i__1; ++ing) {
+ if (ing > ngs && comgrace_1.naccg[ing - 1] > 0) {
+ x += spfacs_1.acgfac;
+ }
+ y = (real) comgrace_1.nolevg[ing - 1];
+ sumx += x;
+ sumy += y;
+ sumxy += x * y;
+ sumxx += x * x;
+ sumyy += y * y;
+ x += spfacs_1.emgfac;
+/* L118: */
+ }
+ delta = comgrace_1.nng[*ig - 1] * sumxx - sumx * sumx;
+ em = (comgrace_1.nng[*ig - 1] * sumxy - sumx * sumy) / delta;
+ r__1 = em * .5f * spfacs_1.gslfac;
+ islope = i_nint(&r__1);
+ if (abs(islope) > 9) {
+ islope = i_sign(&c__9, &islope);
+ }
+ beta = (sumy - islope / spfacs_1.gslfac * sumx) / comgrace_1.nng[*ig
+ - 1];
+ nolev1 = i_nint(&beta);
+
+/* Back up */
+
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 7, a__3[1] = "settiny";
+ i__4[2] = 1, a__3[2] = sq;
+ i__4[3] = 4, a__3[3] = "off{";
+ s_cat(notexq, a__3, i__4, &c__4, (ftnlen)79);
+ if (normsp) {
+ s_wsfi(&io___400);
+ do_fio(&c__1, "-", (ftnlen)1);
+ do_fio(&c__1, (char *)&ptgr[*ig], (ftnlen)sizeof(real));
+ e_wsfi();
+/* Writing concatenation */
+ i__2[0] = 18, a__1[0] = notexq;
+ i__2[1] = 3, a__1[1] = "pt}";
+ s_cat(ch__13, a__1, i__2, &c__2, (ftnlen)21);
+ addstr_(ch__13, &c__21, soutq, lsout, (ftnlen)21, (ftnlen)80);
+ finalshift = ptgr[*ig];
+ } else {
+ comgrace_1.aftshft = comask_1.wheadpt * 1.33f;
+ if (comgrace_1.naccg[comgrace_1.ngstrt[*ig - 1] - 1] > 0) {
+ comgrace_1.aftshft += comask_1.wheadpt * .5f;
+ }
+ s_wsfi(&io___402);
+ do_fio(&c__1, (char *)&comgrace_1.aftshft, (ftnlen)sizeof(real));
+ e_wsfi();
+/* Writing concatenation */
+ i__4[0] = 17, a__3[0] = notexq;
+ i__4[1] = 3, a__3[1] = "pt}";
+ i__4[2] = 1, a__3[2] = sq;
+ i__4[3] = 3, a__3[3] = "bsk";
+ s_cat(ch__16, a__3, i__4, &c__4, (ftnlen)24);
+ addstr_(ch__16, &c__24, soutq, lsout, (ftnlen)24, (ftnlen)80);
+ }
+
+/* Start the beam */
+
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 2, a__1[1] = "ib";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ i__1 = mg;
+ for (ing = 2; ing <= i__1; ++ing) {
+/* Writing concatenation */
+ i__2[0] = ing + 1, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "b";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+/* L119: */
+ }
+ if (comgrace_1.upg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = mg + 2, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "u";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__2[0] = mg + 2, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "l";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ }
+/* Writing concatenation */
+ i__2[0] = mg + 3, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "0";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+
+/* Get starting note for beam */
+
+ notefq_(noteq, &lnoten, &nolev1, ncm, (ftnlen)8);
+/* Writing concatenation */
+ i__2[0] = mg + 4, a__1[0] = notexq;
+ i__2[1] = lnoten, a__1[1] = noteq;
+ s_cat(ch__8, a__1, i__2, &c__2, (ftnlen)87);
+ i__1 = mg + 4 + lnoten;
+ addstr_(ch__8, &i__1, soutq, lsout, mg + 4 + lnoten, (ftnlen)80);
+
+/* Put in the slope */
+
+ if (islope >= 0) {
+ i__1 = islope + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ addstr_(ch__1, &c__1, soutq, lsout, (ftnlen)1, (ftnlen)80);
+ } else {
+/* Writing concatenation */
+ i__3[0] = 2, a__2[0] = "{-";
+ i__1 = 48 - islope;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 1, a__2[2] = "}";
+ s_cat(ch__7, a__2, i__3, &c__3, (ftnlen)4);
+ addstr_(ch__7, &c__4, soutq, lsout, (ftnlen)4, (ftnlen)80);
+ }
+
+/* Start a slur on multiple fore-grace */
+
+ if (comgrace_1.slurg[*ig - 1] && ! isgaft && ! iswaft) {
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ngs - 1], ncm, (ftnlen)
+ 8);
+ if (comslur_1.fontslur) {
+ if (comgrace_1.upg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 6, a__1[1] = "islurd";
+ s_cat(ch__6, a__1, i__2, &c__2, (ftnlen)7);
+ addstr_(ch__6, &c__7, soutq, lsout, (ftnlen)7, (ftnlen)80)
+ ;
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 6, a__1[1] = "isluru";
+ s_cat(ch__6, a__1, i__2, &c__2, (ftnlen)7);
+ addstr_(ch__6, &c__7, soutq, lsout, (ftnlen)7, (ftnlen)80)
+ ;
+ }
+ } else {
+
+/* Need a tweak for postscript slur */
+
+ if (comgrace_1.upg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 3, a__1[1] = "isd";
+ s_cat(ch__7, a__1, i__2, &c__2, (ftnlen)4);
+ addstr_(ch__7, &c__4, soutq, lsout, (ftnlen)4, (ftnlen)80)
+ ;
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 3, a__1[1] = "isu";
+ s_cat(ch__7, a__1, i__2, &c__2, (ftnlen)4);
+ addstr_(ch__7, &c__4, soutq, lsout, (ftnlen)4, (ftnlen)80)
+ ;
+ }
+ }
+
+/* Print 11-ndxslur */
+
+ if (23 - comslur_1.ndxslur < 10) {
+/* Writing concatenation */
+ i__1 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = lnoten, a__1[1] = noteq;
+ s_cat(ch__11, a__1, i__2, &c__2, (ftnlen)9);
+ i__5 = lnoten + 1;
+ addstr_(ch__11, &i__5, soutq, lsout, lnoten + 1, (ftnlen)80);
+ } else if (23 - comslur_1.ndxslur < 2) {
+/* Writing concatenation */
+ i__4[0] = 2, a__3[0] = "{1";
+ i__1 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 1, a__3[2] = "}";
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__12, a__3, i__4, &c__4, (ftnlen)12);
+ i__5 = lnoten + 4;
+ addstr_(ch__12, &i__5, soutq, lsout, lnoten + 4, (ftnlen)80);
+ } else {
+/* Writing concatenation */
+ i__4[0] = 2, a__3[0] = "{1";
+ i__1 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 1, a__3[2] = "}";
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__12, a__3, i__4, &c__4, (ftnlen)12);
+ i__5 = lnoten + 4;
+ addstr_(ch__12, &i__5, soutq, lsout, lnoten + 4, (ftnlen)80);
+ }
+
+/* Put in tweak for postscript slur */
+
+ if (! comslur_1.fontslur) {
+ addstr_("{-.3}", &c__5, soutq, lsout, (ftnlen)5, (ftnlen)80);
+ }
+ }
+
+/* Put in first note. Call notefq again in case octave changed */
+
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ngs - 1], ncm, (ftnlen)8);
+ if (comgrace_1.naccg[ngs - 1] == 0) {
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = sq;
+ i__3[1] = 4, a__2[1] = "zqb0";
+ i__3[2] = lnoten, a__2[2] = noteq;
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ lnote = lnoten + 5;
+ } else {
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ accsym_(&comgrace_1.naccg[ngs - 1], acsymq, &lacc, (ftnlen)3);
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 3, a__3[1] = "big";
+ i__4[2] = lacc, a__3[2] = acsymq;
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(notexq, a__3, i__4, &c__4, (ftnlen)79);
+ lnote = lacc + 4 + lnoten;
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ngs - 1], ncm, (ftnlen)
+ 8);
+/* Writing concatenation */
+ i__4[0] = lnote, a__3[0] = notexq;
+ i__4[1] = 1, a__3[1] = sq;
+ i__4[2] = 4, a__3[2] = "zqb0";
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(notexq, a__3, i__4, &c__4, (ftnlen)79);
+ lnote = lnote + 5 + lnoten;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)80);
+ i__1 = ngs + comgrace_1.nng[*ig - 1] - 1;
+ for (ing = ngs + 1; ing <= i__1; ++ing) {
+
+/* Skip */
+
+ ptoff = wheadpt1 * spfacs_1.emgfac;
+ if (comgrace_1.naccg[ing - 1] > 0) {
+ ptoff += wheadpt1 * spfacs_1.acgfac;
+ }
+ if (isgaft && ! iswaft) {
+ comgrace_1.aftshft += ptoff;
+ }
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 4, a__1[1] = "off{";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ s_wsfi(&io___404);
+ do_fio(&c__1, (char *)&ptoff, (ftnlen)sizeof(real));
+ e_wsfi();
+ if (normsp) {
+ finalshift -= ptoff;
+ }
+/* Writing concatenation */
+ i__2[0] = 8, a__1[0] = notexq;
+ i__2[1] = 3, a__1[1] = "pt}";
+ s_cat(ch__5, a__1, i__2, &c__2, (ftnlen)11);
+ addstr_(ch__5, &c__11, soutq, lsout, (ftnlen)11, (ftnlen)80);
+ if (ing == ngs + comgrace_1.nng[*ig - 1] - 1) {
+
+/* Terminate beam if needed */
+
+ if (comgrace_1.upg[*ig - 1]) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 4, a__1[1] = "tbu0";
+ s_cat(ch__4, a__1, i__2, &c__2, (ftnlen)5);
+ addstr_(ch__4, &c__5, soutq, lsout, (ftnlen)5, (ftnlen)80)
+ ;
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 4, a__1[1] = "tbl0";
+ s_cat(ch__4, a__1, i__2, &c__2, (ftnlen)5);
+ addstr_(ch__4, &c__5, soutq, lsout, (ftnlen)5, (ftnlen)80)
+ ;
+ }
+
+/* Terminate after slur if needed */
+
+ if ((isgaft || iswaft) && comgrace_1.slurg[*ig - 1]) {
+/* if (iswaft) ndxslur = igetbits(ipl,4,23) */
+ if (iswaft) {
+ comslur_1.ndxslur = igetbits_(ipl, &c__5, &c__23);
+ }
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ing - 1], ncm,
+ (ftnlen)8);
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 5, a__1[1] = "tslur";
+ s_cat(ch__2, a__1, i__2, &c__2, (ftnlen)6);
+ addstr_(ch__2, &c__6, soutq, lsout, (ftnlen)6, (ftnlen)80)
+ ;
+
+/* Print 11-ndxslur */
+/* c Print 23-ndxslur */
+
+ if (23 - comslur_1.ndxslur < 10) {
+/* Writing concatenation */
+ i__5 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__5);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = lnoten, a__1[1] = noteq;
+ s_cat(ch__11, a__1, i__2, &c__2, (ftnlen)9);
+ i__6 = lnoten + 1;
+ addstr_(ch__11, &i__6, soutq, lsout, lnoten + 1, (
+ ftnlen)80);
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* Writing concatenation */
+ i__4[0] = 2, a__3[0] = "{2";
+ i__5 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__5);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 1, a__3[2] = "}";
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__12, a__3, i__4, &c__4, (ftnlen)12);
+ i__6 = lnoten + 4;
+ addstr_(ch__12, &i__6, soutq, lsout, lnoten + 4, (
+ ftnlen)80);
+ } else {
+/* Writing concatenation */
+ i__4[0] = 2, a__3[0] = "{1";
+ i__5 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__5);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 1, a__3[2] = "}";
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__12, a__3, i__4, &c__4, (ftnlen)12);
+ i__6 = lnoten + 4;
+ addstr_(ch__12, &i__6, soutq, lsout, lnoten + 4, (
+ ftnlen)80);
+ }
+
+/* Stop slur terminator after exit from this subroutine */
+
+ comslur_1.listslur = bit_clear(comslur_1.listslur,
+ comslur_1.ndxslur);
+ comgrace_1.slurg[*ig - 1] = FALSE_;
+ }
+ }
+
+/* Accidental if needed */
+
+ if (comgrace_1.naccg[ing - 1] > 0) {
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ing - 1], ncm, (
+ ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ accsym_(&comgrace_1.naccg[ing - 1], acsymq, &lacc, (ftnlen)3);
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 3, a__3[1] = "big";
+ i__4[2] = lacc, a__3[2] = acsymq;
+ i__4[3] = lnoten, a__3[3] = noteq;
+ s_cat(ch__9, a__3, i__4, &c__4, (ftnlen)15);
+ i__5 = lacc + 4 + lnoten;
+ addstr_(ch__9, &i__5, soutq, lsout, lacc + 4 + lnoten, (
+ ftnlen)80);
+ }
+
+/* Put in the (beamed) grace note */
+
+ notefq_(noteq, &lnoten, &comgrace_1.nolevg[ing - 1], ncm, (ftnlen)
+ 8);
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = sq;
+ i__3[1] = 4, a__2[1] = "zqb0";
+ i__3[2] = lnoten, a__2[2] = noteq;
+ s_cat(ch__17, a__2, i__3, &c__3, (ftnlen)13);
+ i__5 = lnoten + 5;
+ addstr_(ch__17, &i__5, soutq, lsout, lnoten + 5, (ftnlen)80);
+/* L127: */
+ }
+
+/* Terminate the grace */
+
+/* notexq = sq//'normalnotesize'//sq//'off{' */
+/* lnote = 20 */
+/* notexq = '}'//sq//'off{' */
+/* lnote = 6 */
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 4, a__1[1] = "off{";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ lnote = 5;
+ ptoff = comask_1.wheadpt * spfacs_1.emgfac;
+ if ((*nacc & 3) > 0 && ! bit_test(*nacc,17)) {
+ ptoff += comask_1.wheadpt * spfacs_1.accfac;
+ }
+ if (isgaft && ! iswaft) {
+/* Writing concatenation */
+ i__2[0] = 5, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "-";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ lnote = 6;
+ ptoff = comgrace_1.aftshft;
+ }
+ if (normsp) {
+ ptoff = finalshift;
+ }
+ if (ptoff < 9.95f) {
+ i__1 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 3 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f3.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&ptoff, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += 3;
+ } else if (ptoff < 99.95f) {
+ i__1 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 4 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f4.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&ptoff, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += 4;
+ } else {
+ i__1 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 5 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f5.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&ptoff, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += 5;
+ }
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 3, a__1[1] = "pt}";
+ s_cat(ch__18, a__1, i__2, &c__2, (ftnlen)82);
+ i__1 = lnote + 3;
+ addstr_(ch__18, &i__1, soutq, lsout, lnote + 3, (ftnlen)80);
+ if (isgaft && ! iswaft) {
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 2, a__1[1] = "sk";
+ s_cat(ch__19, a__1, i__2, &c__2, (ftnlen)3);
+ addstr_(ch__19, &c__3, soutq, lsout, (ftnlen)3, (ftnlen)80);
+ }
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = sq;
+ i__2[1] = 9, a__1[1] = "resetsize";
+ s_cat(ch__20, a__1, i__2, &c__2, (ftnlen)10);
+ addstr_(ch__20, &c__10, soutq, lsout, (ftnlen)10, (ftnlen)80);
+ }
+ return 0;
+} /* dograce_ */
+
+/* Subroutine */ int dopsslur_(integer *nolev, integer *isdat1, integer *
+ isdat2, integer *isdat3, integer *isdat4, integer *nsdat, integer *ip,
+ integer *iv, integer *kv, integer *nv, logical *beamon, integer *ncm,
+ char *soutq, integer *lsout, char *ulq, integer *islur, integer *ipl,
+ integer *iornq, integer *islhgt, real *tno, integer *nacc, ftnlen
+ soutq_len, ftnlen ulq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[4], a__3[2];
+ integer i__1, i__2, i__3[3], i__4[4], i__5[2], i__6;
+ char ch__1[1], ch__2[1], ch__3[6], ch__4[9];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), e_wsfi(void);
+
+ /* Local variables */
+ static integer ivoffinc;
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer j, icm;
+ extern integer log2_(integer *);
+ static integer imid;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *), udfq_(char *
+ , ftnlen, integer *, integer *), udqq_(char *, ftnlen, integer *,
+ integer *, integer *, integer *, integer *, integer *);
+ extern integer lfmt1_(real *);
+ extern /* Subroutine */ int stop1_(void);
+ static integer ihoff;
+ static logical iscrd;
+ static integer isdat, ivoff;
+ static real shift;
+ static integer iupdn, lform, lnote;
+ static logical pstie;
+ static char noteq[8];
+ static integer idcode, isdata;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static logical settie;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten, nolevs;
+ static logical stemup;
+ static char notexq[79];
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+ static integer numdrop;
+ static char slurudq[1];
+
+ /* Fortran I/O blocks */
+ static cilist io___418 = { 0, 6, 0, 0, 0 };
+ static cilist io___419 = { 0, 6, 0, 0, 0 };
+ static cilist io___420 = { 0, 15, 0, "(/,a)", 0 };
+ static cilist io___428 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Called once per main note. */
+/* 12 May 2002 Create this subroutine to isolate postscript slurs/ties. */
+/* Always set \Nosluradjust\Notieadjust */
+
+
+/* Bits in isdat1: */
+/* 13-17 iv */
+/* 3-10 ip */
+/* 11 start/stop switch */
+/* 12 kv-1 */
+/* 19-25 ichar(code$) */
+/* 26 force direction? */
+/* 27 forced dir'n = up if on, set in sslur; also */
+/* final direction, set in doslur when beam is started, used on term. */
+/* 28-31 mod(ndxslur,16), set in doslur when slur is started, used on term. */
+/* 18 int(ndxslur/16), ditto. So this allows ndxslur>15. */
+
+/* Bits in isdat2 */
+/* 0 Chord switch. Not set on main note. */
+/* 1-2 left/right notehead shift. Set only for chord note. */
+/* 3 tie positioning */
+/* 4 dotted flag */
+/* 6-11 voff1 1-63 => -31...+31 */
+/* 12-18 hoff1 1-127 => -6.3...+6.3 */
+/* 19-25 nolev */
+/* 26 \sluradjust (p+s) */
+/* 27 \nosluradjust (p-s) */
+/* 28 \tieadjust (p+t) */
+/* 29 \notieadjust (p-t) */
+
+/* Bits in isdat3: Only used for slur endings */
+/* 0 set if midslur (at least one argument) */
+/* 1 set if curve (2 more args) */
+/* 2-7 32+first arg (height correction) (1st arg may be negative) */
+/* 8-10 second arg (initial slope) */
+/* 11-13 third arg (closing slope) */
+/* 14-21 tie level for use in LineBreakTies */
+/* 22-29 ncm for use in LineBreakTies */
+
+/* Bits in isdat4 Only used for linebreak slurs */
+/* 0-5 Linebreak seg 1 voff 1-63 => -31...+31 */
+/* 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3 */
+/* 16-21 Linebreak seg 2 voff 1-63 => -31...+31 */
+/* 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3 */
+
+/* In listslur bit ib is on if slur index ib is in use, ib=0-13. */
+/* ndxslur = slur index */
+/* Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note, */
+/* s-slur is blank (idcode=32), t-slur is idcode=1. */
+/* ivoff is user-defined shift or shift due to . or _ , or chord adjustment. */
+/* Ivoff will be set for ./_ only if no user-defined shift is specified. */
+/* If highest note has upslur, save slur height in islhgt in case */
+/* ornament must be moved. */
+
+ /* Parameter adjustments */
+ --isdat4;
+ --isdat3;
+ --isdat2;
+ --isdat1;
+
+ /* Function Body */
+ *islhgt = 0;
+ if (*beamon) {
+ stemup = *(unsigned char *)ulq == 'u';
+ } else if (commvl_1.nvmx[*iv - 1] == 2) {
+ if (! bit_test(*islur,30)) {
+
+/* Single note, 2 lines of music, stem direction not forced */
+
+ stemup = commvl_1.ivx > *nv;
+ } else {
+ stemup = bit_test(*islur,17);
+ }
+ } else {
+ udqq_(ch__1, (ftnlen)1, nolev, ncm, islur, &commvl_1.nvmx[*iv - 1], &
+ commvl_1.ivx, nv);
+ stemup = *(unsigned char *)&ch__1[0] == 'u';
+ }
+ iscrd = bit_test(*ipl,10);
+ if (commidi_1.ismidi) {
+ settie = FALSE_;
+ comslm_1.dbltie = FALSE_;
+ }
+ i__1 = *nsdat;
+ for (isdat = 1; isdat <= i__1; ++isdat) {
+ isdata = isdat1[isdat];
+ if (*iv == igetbits_(&isdata, &c__5, &c__13) && *ip == igetbits_(&
+ isdata, &c__8, &c__3) && *kv == igetbits_(&isdata, &c__1, &
+ c__12) + 1) {
+
+/* Since iv and kv match, ivx will be correct */
+
+ idcode = igetbits_(&isdata, &c__7, &c__19);
+ ivoff = igetbits_(&isdat2[isdat], &c__6, &c__6) - 32;
+ ihoff = igetbits_(&isdat2[isdat], &c__7, &c__12) - 64;
+ iupdn = 0;
+ *(unsigned char *)slurudq = 'd';
+ nolevs = igetbits_(&isdat2[isdat], &c__7, &c__19);
+ pstie = bit_test(isdat2[isdat],3) || idcode == 1;
+ if (bit_test(isdata,11)) {
+
+/* Turnon */
+
+/* if (nolevs.eq.0 .or. nolevs.gt.60) then */
+/* c */
+/* c Note was a rest, cannot start slur on rest. */
+/* c */
+/* print* */
+/* call printl('Cannot start slur on a rest') */
+/* call stop1() */
+/* nolevs = ncm+5 */
+/* end if */
+
+/* Get slur direction */
+
+ if (bit_test(isdata,26)) {
+
+/* Force slur direction */
+
+ if (bit_test(isdata,27)) {
+ *(unsigned char *)slurudq = 'u';
+ }
+ } else if (commvl_1.nvmx[*iv - 1] == 1) {
+
+/* Only one voice per line */
+
+ if (! (*beamon)) {
+
+/* Separate note. */
+
+ udfq_(ch__1, (ftnlen)1, nolev, ncm);
+ *(unsigned char *)slurudq = *(unsigned char *)&ch__1[
+ 0];
+ } else {
+
+/* In a beam */
+
+ if (*(unsigned char *)ulq != 'u') {
+ *(unsigned char *)slurudq = 'u';
+ }
+ }
+ if (iscrd) {
+ if (nolevs > *ncm) {
+ *(unsigned char *)slurudq = 'u';
+ } else {
+ *(unsigned char *)slurudq = 'd';
+ }
+ }
+ } else {
+
+/* Two voices per line. Get default */
+
+ if (commvl_1.ivx > *nv) {
+ *(unsigned char *)slurudq = 'u';
+ }
+
+/* Upper voice of the two, so up slur */
+
+ }
+
+/* Set level for slur starting on rest */
+
+ if (nolevs == 0 || nolevs > 60) {
+ if (*(unsigned char *)slurudq == 'u') {
+ nolevs = *ncm + 2;
+ } else {
+ nolevs = *ncm - 2;
+ }
+ }
+
+/* Save up/down-ness for use at termination */
+
+ if (*(unsigned char *)slurudq == 'u') {
+ isdata = bit_set(isdata,27);
+ }
+
+/* End of section for setting slur direction, still in "Turnon" if-block. */
+
+ if (bit_test(*iornq,11) || bit_test(*iornq,12)) {
+
+/* Raise or lower slur by one unit provided . or _ is on same side as slur */
+
+ ivoffinc = 0;
+ if (stemup && *(unsigned char *)slurudq == 'd' || !
+ stemup && *(unsigned char *)slurudq == 'u') {
+
+/* Must move the slur for _ or . */
+
+ if (stemup) {
+ ivoffinc = -1;
+ } else {
+ ivoffinc = 1;
+ }
+ if ((stemup && *nolev >= *ncm - 2 || ! stemup && *
+ nolev <= *ncm + 2) && (i__2 = *ncm - *nolev,
+ abs(i__2)) % 2 == 0) {
+ ivoffinc <<= 1;
+ }
+ ivoff += ivoffinc;
+ }
+ }
+ if (comslur_1.listslur == 16777215) {
+ s_wsle(&io___418);
+ e_wsle();
+ s_wsle(&io___419);
+ do_lio(&c__9, &c__1, "You1 defined the twentyfifth slur,"
+ " one too many!", (ftnlen)48);
+ e_wsle();
+ s_wsfe(&io___420);
+ do_fio(&c__1, "You defined the twentyfifth slur, one too"
+ " many!", (ftnlen)47);
+ e_wsfe();
+ stop1_();
+ }
+
+/* Get index of next slur not in use, starting from 12 down */
+
+ i__2 = 16777215 - comslur_1.listslur;
+ comslur_1.ndxslur = log2_(&i__2);
+/* write(*,'()') */
+/* write(*,'(2i4,2x,B24)')ivx,ndxslur,listslur */
+
+/* Record slur index */
+
+ comslur_1.listslur = bit_set(comslur_1.listslur,
+ comslur_1.ndxslur);
+/* write(*,'(10x,B24)')listslur */
+
+/* Save for use on termination */
+
+/* call setbits(isdata,4,28,ndxslur) */
+/* 080531 Allow >16 slurs */
+ i__2 = comslur_1.ndxslur % 16;
+ setbits_(&isdata, &c__4, &c__28, &i__2);
+ i__2 = comslur_1.ndxslur / 16;
+ setbits_(&isdata, &c__1, &c__18, &i__2);
+
+/* Shift for stem? */
+
+ if (stemup && *(unsigned char *)slurudq == 'u' && *tno < 63.f)
+ {
+ if (! pstie) {
+ ihoff += 8;
+ } else {
+ ihoff += 2;
+ }
+ }
+ if (iscrd) {
+
+/* Additional horiz shifts for h-shifted noteheads? */
+
+ if (bit_test(isdat2[isdat],1)) {
+
+/* Slur start on left-shifted chord notehead. ASSUME downstem. */
+
+ if (nolevs == comtrill_1.minlev && *(unsigned char *)
+ slurudq == 'd') {
+ ihoff += -2;
+ } else {
+ ihoff += -10;
+ }
+ } else if (bit_test(isdat2[isdat],2)) {
+
+/* Right shifted chord notehead. ASSUME upstem. */
+
+ if (nolevs == comtrill_1.maxlev && *(unsigned char *)
+ slurudq == 'u') {
+ ihoff += 2;
+ } else {
+ ihoff += 10;
+ }
+ }
+ }
+ chax_(ch__1, (ftnlen)1, &c__92);
+ s_copy(notexq, ch__1, (ftnlen)79, (ftnlen)1);
+ lnote = 1;
+
+/* Check for local adjustment default changes */
+
+ if (bit_test(isdat2[isdat],26)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 10, a__1[1] = "sluradjust";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__3[2] = 1, a__1[2] = ch__2;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote = 12;
+ } else if (bit_test(isdat2[isdat],27)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 12, a__1[1] = "nosluradjust";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__3[2] = 1, a__1[2] = ch__2;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote = 14;
+ } else if (bit_test(isdat2[isdat],28)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 9, a__1[1] = "tieadjust";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__3[2] = 1, a__1[2] = ch__2;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote = 11;
+ } else if (bit_test(isdat2[isdat],29)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 11, a__1[1] = "notieadjust";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__3[2] = 1, a__1[2] = ch__2;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote = 13;
+ }
+ if (ihoff == 0) {
+
+/* Write stuff for non-shifted start */
+
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 5, a__1[1] = "islur";
+ i__3[2] = 1, a__1[2] = slurudq;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote += 6;
+ } else {
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 2, a__1[1] = "is";
+ i__3[2] = 1, a__1[2] = slurudq;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote += 3;
+ }
+
+/* Prepend postscript tie switch */
+
+ if (pstie) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[0] = 1, a__2[0] = ch__1;
+ i__4[1] = 8, a__2[1] = "tieforis";
+ i__4[2] = 1, a__2[2] = slurudq;
+ i__4[3] = lnote, a__2[3] = notexq;
+ s_cat(notexq, a__2, i__4, &c__4, (ftnlen)79);
+ lnote += 10;
+ }
+ if (bit_test(isdat2[isdat],4)) {
+
+/* Dotted slur */
+
+/* noteq = notexq */
+/* notexq = chax(92)//'dotted'//noteq */
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "dotted";
+ i__3[2] = lnote, a__1[2] = notexq;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote += 7;
+ }
+
+/* Add slur index to string */
+/* c Print 11-ndxslur */
+/* Print 23-ndxslur */
+
+/* if (11-ndxslur .lt. 10) then */
+ if (23 - comslur_1.ndxslur < 10) {
+
+/* 5/25/08 Allow 24 slurs */
+
+/* notexq = notexq(1:lnote)//chax(59-ndxslur) */
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__2 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__5[1] = 1, a__3[1] = ch__1;
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ ++lnote;
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}' */
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 2, a__2[1] = "{1";
+ i__2 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__4[2] = 1, a__2[2] = ch__1;
+ i__4[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__4, &c__4, (ftnlen)79);
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 2, a__2[1] = "{2";
+ i__2 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__4[2] = 1, a__2[2] = ch__1;
+ i__4[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__4, &c__4, (ftnlen)79);
+ lnote += 4;
+ }
+
+/* Add note name to string */
+
+/* call notefq(noteq,lnoten,nolevs+iupdn+ivoff,ncm) */
+ *islhgt = nolevs + iupdn + ivoff;
+ notefq_(noteq, &lnoten, islhgt, ncm, (ftnlen)8);
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = lnoten, a__3[1] = noteq;
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ lnote += lnoten;
+
+/* Store height and staff mid level for use with LineBreakTies */
+
+ setbits_(&isdat3[isdat], &c__8, &c__14, islhgt);
+ setbits_(&isdat3[isdat], &c__8, &c__22, ncm);
+
+/* Save height (for ornament and barnobox interference) if topmost slur is up */
+
+ if (*(unsigned char *)slurudq == 'u' && (! bit_test(isdat2[
+ isdat],0) || nolevs == comtrill_1.maxlev)) {
+ *islhgt = nolevs + iupdn + ivoff;
+
+/* Save height & idcode if top voice and slur start */
+
+ if (commvl_1.ivx == commvl_1.ivmx[*nv + commvl_1.nvmx[*nv
+ - 1] * 24 - 25] && *islhgt > comsln_1.is1n1) {
+ comsln_1.is1n1 = *islhgt;
+ comsln_1.is2n1 = idcode;
+ }
+ }
+ if ((real) ihoff != 0.f) {
+ shift = ihoff * .1f;
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 1, a__3[1] = "{";
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ ++lnote;
+ lform = lfmt1_(&shift);
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + lform - i__2;
+ ici__1.iciunit = notexq + i__2;
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = "(f";
+ i__6 = lform + 48;
+ chax_(ch__1, (ftnlen)1, &i__6);
+ i__3[1] = 1, a__1[1] = ch__1;
+ i__3[2] = 3, a__1[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__3, a__1, i__3, &c__3, (ftnlen)
+ 6), ch__3);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&shift, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += lform;
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 1, a__3[1] = "}";
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)80);
+
+/* Zero out ip1 to avoid problems if slur goes to next input blk. */
+
+ setbits_(&isdata, &c__8, &c__3, &c__0);
+
+/* Set slur-on data for midi. Only treat null-index slurs and ps ties for now. */
+
+ if (commidi_1.ismidi && (idcode == 32 || idcode == 1)) {
+/* levson(midchan(iv,kv)) = nolev */
+ comslm_1.levson[commidi_1.midchan[*iv + *kv * 24 - 25]] =
+ nolevs;
+ if (settie) {
+ comslm_1.dbltie = TRUE_;
+ }
+
+/* Only way settie=T is if we just set a tie ending. So there's also a slur */
+/* start here, so set a flag telling addmidi not to zero out levson */
+
+ }
+ } else {
+
+/* Slur is ending. Back thru list to find starting slur */
+
+ for (j = isdat - 1; j >= 1; --j) {
+ if (*iv == igetbits_(&isdat1[j], &c__5, &c__13) && *kv ==
+ igetbits_(&isdat1[j], &c__1, &c__12) + 1) {
+ if (idcode == igetbits_(&isdat1[j], &c__7, &c__19)) {
+ comslur_1.ndxslur = igetbits_(&isdat1[j], &c__4, &
+ c__28) + (igetbits_(&isdat1[j], &c__1, &
+ c__18) << 4);
+
+/* 080531 Allow >16 slurs */
+
+ if (bit_test(isdat1[j],27)) {
+ *(unsigned char *)slurudq = 'u';
+ }
+ goto L4;
+ }
+ }
+/* L3: */
+ }
+ s_wsle(&io___428);
+ do_lio(&c__9, &c__1, "Bad place in doslur", (ftnlen)19);
+ e_wsle();
+ stop1_();
+L4:
+
+/* Bugfix 070901 for slur ending on rest in 2-voice staff */
+
+/* if (nolevs.eq.0 .or. nolevs.gt.60) then */
+ if (nolevs <= 2 || nolevs > 60) {
+
+/* Ending is on a rest, reset nolevs to default starting height */
+
+ nolevs = igetbits_(&isdat2[j], &c__7, &c__19);
+ }
+ if (bit_test(isdat3[isdat],0) || bit_test(isdat3[j],0)) {
+
+/* Deal with \curve or \midslur. isdat is ending, j is start. */
+
+ if (bit_test(isdat3[isdat],0)) {
+ imid = igetbits_(&isdat3[isdat], &c__6, &c__2) - 32;
+ } else {
+ imid = igetbits_(&isdat3[j], &c__6, &c__2) - 32;
+ }
+
+/* Postscript slurs, and \midslur adjustment is needed. Invoke macro */
+/* (from pmx.tex) that redefines \tslur as r'qd. Tentative mapping: */
+/* Abs(imid) Postscript slur type */
+/* 1 f */
+/* 2-3 default */
+/* 4 h */
+/* 5 H */
+/* 6+ HH */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 7, a__1[1] = "psforts";
+/* Computing MIN */
+ i__6 = abs(imid);
+ i__2 = min(i__6,6) + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__3[2] = 1, a__1[2] = ch__2;
+ s_cat(ch__4, a__1, i__3, &c__3, (ftnlen)9);
+ addstr_(ch__4, &c__9, soutq, lsout, (ftnlen)9, (ftnlen)80)
+ ;
+ }
+
+/* Shift slur ending for stem on any note? */
+
+ if (! stemup && *(unsigned char *)slurudq == 'd' && *tno <
+ 63.f) {
+ if (! pstie) {
+ ihoff += -8;
+ } else {
+ ihoff += -3;
+ }
+ }
+ if (iscrd) {
+
+/* Shift termination for shifted notehead? */
+
+ if (bit_test(isdat2[isdat],1)) {
+
+/* Left-shifted chord notehead. ASSUME downstem. */
+
+ if (nolevs == comtrill_1.minlev && *(unsigned char *)
+ slurudq == 'd') {
+ ihoff += -2;
+ } else {
+ ihoff += -10;
+ }
+ } else if (bit_test(isdat2[isdat],2)) {
+
+/* Right shifted chord notehead. ASSUME upstem. */
+
+ if (nolevs == comtrill_1.maxlev && *(unsigned char *)
+ slurudq == 'u') {
+ ihoff += 2;
+ } else {
+ ihoff += 10;
+ }
+ }
+ }
+ if (ihoff == 0) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__5[0] = 1, a__3[0] = ch__1;
+ i__5[1] = 5, a__3[1] = "tslur";
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ lnote = 6;
+ } else {
+
+/* Shift needed */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__5[0] = 1, a__3[0] = ch__1;
+ i__5[1] = 2, a__3[1] = "ts";
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ lnote = 3;
+ }
+
+/* Switch to postscript tie */
+
+ if (pstie) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 8, a__1[1] = "tieforts";
+ i__3[2] = lnote, a__1[2] = notexq;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote += 9;
+ }
+
+/* Print 13-ndxslur */
+/* 5/25/08 Allow 14 slurs */
+
+ if (23 - comslur_1.ndxslur < 10) {
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__2 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__5[1] = 1, a__3[1] = ch__1;
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ ++lnote;
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 2, a__2[1] = "{1";
+ i__2 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__4[2] = 1, a__2[2] = ch__1;
+ i__4[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__4, &c__4, (ftnlen)79);
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 2, a__2[1] = "{2";
+ i__2 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__4[2] = 1, a__2[2] = ch__1;
+ i__4[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__4, &c__4, (ftnlen)79);
+ lnote += 4;
+ }
+ if (bit_test(*iornq,11) || bit_test(*iornq,12)) {
+
+/* Raise or lower slur by one unit provided . or _ is on same side as slur */
+
+ ivoffinc = 0;
+ if (stemup && *(unsigned char *)slurudq == 'd' || !
+ stemup && *(unsigned char *)slurudq == 'u') {
+ if (stemup) {
+ ivoffinc = -1;
+ } else {
+ ivoffinc = 1;
+ }
+ if ((stemup && *nolev >= *ncm - 2 || ! stemup && *
+ nolev <= *ncm + 2) && (i__2 = *ncm - *nolev,
+ abs(i__2)) % 2 == 0) {
+ ivoffinc <<= 1;
+ }
+ }
+ ivoff += ivoffinc;
+ }
+ i__2 = nolevs + iupdn + ivoff;
+ notefq_(noteq, &lnoten, &i__2, ncm, (ftnlen)8);
+ if (*(unsigned char *)slurudq == 'u' && (! bit_test(isdat2[
+ isdat],0) || nolevs == comtrill_1.maxlev)) {
+ *islhgt = nolevs + iupdn + ivoff;
+
+/* If topvoice, upslur, and idcode checks, no more need to keep hgt for barno. */
+
+ if (commvl_1.ivx == commvl_1.ivmx[*nv + commvl_1.nvmx[*nv
+ - 1] * 24 - 25] && comsln_1.is1n1 > 0) {
+ if (idcode == comsln_1.is2n1) {
+ comsln_1.is1n1 = 0;
+ }
+ }
+ }
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = lnoten, a__3[1] = noteq;
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ lnote += lnoten;
+ if (ihoff != 0) {
+ shift = ihoff * .1f;
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 1, a__3[1] = "{";
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ ++lnote;
+ lform = lfmt1_(&shift);
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + lform - i__2;
+ ici__1.iciunit = notexq + i__2;
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = "(f";
+ i__6 = lform + 48;
+ chax_(ch__1, (ftnlen)1, &i__6);
+ i__3[1] = 1, a__1[1] = ch__1;
+ i__3[2] = 3, a__1[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__3, a__1, i__3, &c__3, (ftnlen)
+ 6), ch__3);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&shift, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += lform;
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 1, a__3[1] = "}";
+ s_cat(notexq, a__3, i__5, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)80);
+
+/* Clear the bit from list of slurs in use */
+
+ comslur_1.listslur = bit_clear(comslur_1.listslur,
+ comslur_1.ndxslur);
+
+/* Zero out the entire strings for start and stop */
+
+ isdata = 0;
+ isdat2[isdat] = 0;
+ isdat3[isdat] = 0;
+ isdat4[isdat] = 0;
+ isdat1[j] = 0;
+ isdat2[j] = 0;
+ isdat3[j] = 0;
+ isdat4[j] = 0;
+
+/* Set midi info for slur ending */
+
+ if (commidi_1.ismidi && (idcode == 32 || idcode == 1)) {
+ icm = commidi_1.midchan[*iv + *kv * 24 - 25];
+ if (comslm_1.slmon[icm]) {
+ if (nolevs == comslm_1.levson[icm] && (7 & *nacc) ==
+ 0) {
+
+/* There is a tie here. NB!!! assumed no accidental on 2nd member of tie. */
+
+ comslm_1.levsoff[icm] = nolevs;
+ settie = TRUE_;
+ } else {
+ comslm_1.levsoff[icm] = 0;
+ comslm_1.levson[icm] = 0;
+ comslm_1.slmon[icm] = FALSE_;
+ }
+ }
+ }
+ }
+ isdat1[isdat] = isdata;
+ }
+/* L1: */
+ }
+
+/* Clear and collapse the slur data list */
+
+ numdrop = 0;
+ i__1 = *nsdat;
+ for (isdat = 1; isdat <= i__1; ++isdat) {
+ if (isdat1[isdat] == 0) {
+ ++numdrop;
+ } else if (numdrop > 0) {
+ isdat1[isdat - numdrop] = isdat1[isdat];
+ isdat2[isdat - numdrop] = isdat2[isdat];
+ isdat3[isdat - numdrop] = isdat3[isdat];
+ isdat4[isdat - numdrop] = isdat4[isdat];
+ isdat1[isdat] = 0;
+ isdat2[isdat] = 0;
+ isdat3[isdat] = 0;
+ isdat4[isdat] = 0;
+ }
+/* L2: */
+ }
+ *nsdat -= numdrop;
+/* call report(nsdat,isdat1,isdat2) */
+ return 0;
+} /* dopsslur_ */
+
+/* Subroutine */ int doslur_(integer *nolev, integer *isdat1, integer *isdat2,
+ integer *isdat3, integer *nsdat, integer *ip, integer *iv, integer *
+ kv, integer *nv, logical *beamon, integer *ncm, char *soutq, integer *
+ lsout, char *ulq, integer *islur, integer *ipl, integer *iornq,
+ integer *islhgt, real *tno, integer *nacc, ftnlen soutq_len, ftnlen
+ ulq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2], a__3[4];
+ integer i__1, i__2, i__3[3], i__4[2], i__5[4], i__6;
+ char ch__1[1], ch__2[6];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen),
+ s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsfi(icilist *), e_wsfi(void);
+
+ /* Local variables */
+ static integer ivoffinc;
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer j, icm;
+ extern integer log2_(integer *);
+ static integer imid;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *), udfq_(char *
+ , ftnlen, integer *, integer *), udqq_(char *, ftnlen, integer *,
+ integer *, integer *, integer *, integer *, integer *);
+ extern integer lfmt1_(real *);
+ extern /* Subroutine */ int stop1_(void);
+ static integer ihoff;
+ static logical iscrd;
+ static integer isdat, ivoff;
+ static real shift;
+ static integer iupdn, lform, lnote;
+ static char noteq[8];
+ static logical tmove;
+ static integer idcode, isdata;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static integer isdats;
+ static logical settie, sfound, tfound;
+ static integer isdatt;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten, nolevt, nolevs;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static logical stemup;
+ static char notexq[79];
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+ static integer numdrop;
+ static char slurudq[1];
+
+ /* Fortran I/O blocks */
+ static cilist io___449 = { 0, 6, 0, 0, 0 };
+ static cilist io___451 = { 0, 6, 0, 0, 0 };
+ static cilist io___452 = { 0, 6, 0, 0, 0 };
+ static cilist io___453 = { 0, 15, 0, "(/,a)", 0 };
+ static cilist io___461 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Called once per main note. (5/26/02) for non-ps slurs only */
+
+
+/* Bits in isdat1: */
+/* 13-17 iv */
+/* 3-10 ip */
+/* 11 start/stop switch */
+/* 12 kv-1 */
+/* 19-25 ichar(code$) */
+/* 26 force direction? */
+/* 27 forced dir'n = up if on, set in sslur; also */
+/* final direction, set in doslur when beam is started, used on term. */
+/* 28-31 ndxslur, set in doslur when beam is started, used on term. */
+
+/* Bits in isdat2 */
+/* 0 Chord switch. Not set on main note. */
+/* 1-2 left/right notehead shift. Set only for chord note. */
+/* 3 tie positioning */
+/* 4 dotted flag */
+/* 6-11 voff1 1-63 => -31...+31 */
+/* 12-18 hoff1 1-127 => -6.3...+6.3 */
+/* 19-25 nolev */
+
+/* Bits in isdat3: Only used for slur endings */
+/* 0 set if midslur (at least one argument) */
+/* 1 set if curve (2 more args) */
+/* 2-7 32+first arg (height correction) (1st arg may be negative) */
+/* 8-10 second arg (initial slope) */
+/* 11-13 third arg (closing slope) */
+
+/* In listslur bit ib is on if slur index ib is in use, ib=0-23. */
+/* ndxslur = slur index */
+/* Height of slur is nole+ivoff+iupdn. iupdn is +/-1 if t&s slurs on same note, */
+/* s-slur is blank (idcode=32), t-slur is idcode=1. */
+/* ivoff is user-defined shift or shift due to . or _ , or chord adjustment. */
+/* Ivoff will be set for ./_ only if no user-defined shift is specified. */
+/* If highest note has upslur, save slur height in islhgt in case */
+/* ornament must be moved. */
+
+ /* Parameter adjustments */
+ --isdat3;
+ --isdat2;
+ --isdat1;
+
+ /* Function Body */
+ *islhgt = 0;
+ if (*beamon) {
+ stemup = *(unsigned char *)ulq == 'u';
+ } else if (commvl_1.nvmx[*iv - 1] == 2) {
+ if (! bit_test(*islur,30)) {
+
+/* Single note, 2 lines of music, stem direction not forced */
+
+ stemup = commvl_1.ivx > *nv;
+ } else {
+ stemup = bit_test(*islur,17);
+ }
+ } else {
+ udqq_(ch__1, (ftnlen)1, nolev, ncm, islur, &commvl_1.nvmx[*iv - 1], &
+ commvl_1.ivx, nv);
+ stemup = *(unsigned char *)&ch__1[0] == 'u';
+ }
+ iscrd = bit_test(*ipl,10);
+ if (bit_test(*islur,1)) {
+
+/* 't'-slur (idcode=1) somewhere on this note. Find it, check height against */
+/* 's'-slur (idcode=32) */
+
+ sfound = FALSE_;
+ tfound = FALSE_;
+ tmove = FALSE_;
+ i__1 = *nsdat;
+ for (isdat = 1; isdat <= i__1; ++isdat) {
+ if (*iv == igetbits_(&isdat1[isdat], &c__5, &c__13) && *ip ==
+ igetbits_(&isdat1[isdat], &c__8, &c__3) && *kv ==
+ igetbits_(&isdat1[isdat], &c__1, &c__12) + 1) {
+ if (! tfound) {
+ tfound = igetbits_(&isdat1[isdat], &c__7, &c__19) == 1;
+ if (tfound) {
+ nolevt = igetbits_(&isdat2[isdat], &c__7, &c__19);
+ isdatt = isdat;
+ if (sfound) {
+ goto L6;
+ }
+ }
+ }
+ if (! sfound) {
+ sfound = igetbits_(&isdat1[isdat], &c__7, &c__19) == 32;
+ if (sfound) {
+ nolevs = igetbits_(&isdat2[isdat], &c__7, &c__19);
+ isdats = isdat;
+ if (tfound) {
+ goto L6;
+ }
+ }
+ }
+ }
+/* L5: */
+ }
+
+/* Will come thru here if there is a t with no s, so comment out the following */
+/* print*,'Did not find s+t-slurs in doslur' */
+
+L6:
+ if (sfound && tfound) {
+ tmove = nolevs == nolevt && (bit_test(isdat1[isdats],11) &&
+ bit_test(isdat1[isdatt],11) || ! bit_test(isdat1[isdats],
+ 11) && ! bit_test(isdat1[isdatt],11));
+ }
+
+/* Check if 2 starts or two stops */
+
+
+/* This is a flag for later changing slur level, after we know slur dir'n. */
+
+ }
+ if (commidi_1.ismidi) {
+ settie = FALSE_;
+ comslm_1.dbltie = FALSE_;
+ }
+ i__1 = *nsdat;
+ for (isdat = 1; isdat <= i__1; ++isdat) {
+ isdata = isdat1[isdat];
+ if (*iv == igetbits_(&isdata, &c__5, &c__13) && *ip == igetbits_(&
+ isdata, &c__8, &c__3) && *kv == igetbits_(&isdata, &c__1, &
+ c__12) + 1) {
+
+/* Since iv and kv match, ivx will be correct */
+
+ idcode = igetbits_(&isdata, &c__7, &c__19);
+ ivoff = igetbits_(&isdat2[isdat], &c__6, &c__6) - 32;
+ ihoff = igetbits_(&isdat2[isdat], &c__7, &c__12) - 64;
+ iupdn = 0;
+ *(unsigned char *)slurudq = 'd';
+ nolevs = igetbits_(&isdat2[isdat], &c__7, &c__19);
+ if (bit_test(isdata,11)) {
+
+/* Turnon, */
+
+ if (nolevs == 0 || nolevs > 60) {
+
+/* Note was a rest, cannot start slur on rest. */
+
+ s_wsle(&io___449);
+ e_wsle();
+ printl_("Cannot start slur on a rest", (ftnlen)27);
+ stop1_();
+ }
+
+/* Get slur direction */
+
+ if (bit_test(isdata,26)) {
+
+/* Force slur direction */
+
+ if (bit_test(isdata,27)) {
+ *(unsigned char *)slurudq = 'u';
+ }
+ } else if (commvl_1.nvmx[*iv - 1] == 1) {
+
+/* Only one voice per line */
+
+ if (! (*beamon)) {
+
+/* Separate note. */
+
+ udfq_(ch__1, (ftnlen)1, nolev, ncm);
+ *(unsigned char *)slurudq = *(unsigned char *)&ch__1[
+ 0];
+ } else {
+
+/* In a beam */
+
+ if (*(unsigned char *)ulq != 'u') {
+ *(unsigned char *)slurudq = 'u';
+ }
+ }
+ if (iscrd) {
+ if (nolevs > *ncm) {
+ *(unsigned char *)slurudq = 'u';
+ } else {
+ *(unsigned char *)slurudq = 'd';
+ }
+ }
+ } else {
+
+/* Two voices per line. Get default */
+
+ if (commvl_1.ivx > *nv) {
+ *(unsigned char *)slurudq = 'u';
+ }
+
+/* Upper voice of the two, so up slur */
+
+ }
+
+/* Save up/down-ness for use at termination */
+
+ if (*(unsigned char *)slurudq == 'u') {
+ isdata = bit_set(isdata,27);
+ }
+
+/* End of section for setting slur direction, still in "Turnon" if-block. */
+
+ if (idcode == 1 && tmove) {
+ iupdn = 1;
+ if (*(unsigned char *)slurudq == 'd') {
+ iupdn = -1;
+ }
+ }
+ if (bit_test(*iornq,11) || bit_test(*iornq,12)) {
+
+/* Raise or lower slur by one unit provided . or _ is on same side as slur */
+
+ ivoffinc = 0;
+ if (stemup && *(unsigned char *)slurudq == 'd' || !
+ stemup && *(unsigned char *)slurudq == 'u') {
+
+/* Must move the slur for _ or . */
+
+ if (stemup) {
+ ivoffinc = -1;
+ } else {
+ ivoffinc = 1;
+ }
+ if ((stemup && *nolev >= *ncm - 2 || ! stemup && *
+ nolev <= *ncm + 2) && (i__2 = *ncm - *nolev,
+ abs(i__2)) % 2 == 0) {
+ ivoffinc <<= 1;
+ }
+ ivoff += ivoffinc;
+ }
+ }
+ if (comslur_1.listslur == 16777215) {
+ s_wsle(&io___451);
+ e_wsle();
+ s_wsle(&io___452);
+ do_lio(&c__9, &c__1, "You1 defined the twenty-fifth slur"
+ ", one too many!", (ftnlen)49);
+ e_wsle();
+ s_wsfe(&io___453);
+ do_fio(&c__1, "You2 defined the twenty-fifth slur, one t"
+ "oo many!", (ftnlen)49);
+ e_wsfe();
+ stop1_();
+ }
+
+/* Get index of next slur not in use, starting from ? down */
+
+ i__2 = 16777215 - comslur_1.listslur;
+ comslur_1.ndxslur = log2_(&i__2);
+
+/* Record slur index */
+
+ comslur_1.listslur = bit_set(comslur_1.listslur,
+ comslur_1.ndxslur);
+
+/* Save for use on termination */
+
+/* call setbits(isdata,4,28,ndxslur) */
+/* 080531 Allow >16 slurs */
+ i__2 = comslur_1.ndxslur % 16;
+ setbits_(&isdata, &c__4, &c__28, &i__2);
+ i__2 = comslur_1.ndxslur / 16;
+ setbits_(&isdata, &c__1, &c__18, &i__2);
+
+/* Shift for stem? */
+
+ if (stemup && *(unsigned char *)slurudq == 'u' && *tno < 63.f)
+ {
+ ihoff += 8;
+ }
+ if (bit_test(isdat2[isdat],3)) {
+
+/* Tie spacing, (slur start) */
+
+ if (*(unsigned char *)slurudq == 'd') {
+ ++ivoff;
+ ihoff += 8;
+ } else if (*(unsigned char *)slurudq == 'u') {
+ --ivoff;
+ if (! (stemup && *tno < 63.f)) {
+ ihoff += 8;
+ }
+
+/* (already shifted if (stemup.and.tno.gt.63.) and slurudq='u') */
+
+ }
+ }
+ if (iscrd) {
+
+/* Additional horiz shifts for h-shifted noteheads? */
+
+ if (bit_test(isdat2[isdat],1)) {
+
+/* Slur start on left-shifted chord notehead. ASSUME downstem. */
+
+ if (nolevs == comtrill_1.minlev && *(unsigned char *)
+ slurudq == 'd') {
+ ihoff += -2;
+ } else {
+ ihoff += -10;
+ }
+ } else if (bit_test(isdat2[isdat],2)) {
+
+/* Right shifted chord notehead. ASSUME upstem. */
+
+ if (nolevs == comtrill_1.maxlev && *(unsigned char *)
+ slurudq == 'u') {
+ ihoff += 2;
+ } else {
+ ihoff += 10;
+ }
+ }
+ }
+ if (ihoff == 0) {
+
+/* Write stuff for non-shifted start */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 5, a__1[1] = "islur";
+ i__3[2] = 1, a__1[2] = slurudq;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote = 7;
+ } else {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 2, a__1[1] = "is";
+ i__3[2] = 1, a__1[2] = slurudq;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote = 4;
+ }
+ if (bit_test(isdat2[isdat],4)) {
+
+/* Dotted slur */
+
+ s_copy(noteq, notexq, (ftnlen)8, (ftnlen)79);
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 6, a__1[1] = "dotted";
+ i__3[2] = 8, a__1[2] = noteq;
+ s_cat(notexq, a__1, i__3, &c__3, (ftnlen)79);
+ lnote += 7;
+ }
+
+/* Add slur index to string */
+/* c Print 11-ndxslur */
+/* Print 23-ndxslur */
+
+/* if (11-ndxslur .lt. 10) then */
+ if (23 - comslur_1.ndxslur < 10) {
+
+/* 5/25/08 Allow 24 slurs */
+
+/* notexq = notexq(1:lnote)//chax(59-ndxslur) */
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__2 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__4[1] = 1, a__2[1] = ch__1;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}' */
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 2, a__3[1] = "{1";
+ i__2 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__5[2] = 1, a__3[2] = ch__1;
+ i__5[3] = 1, a__3[3] = "}";
+ s_cat(notexq, a__3, i__5, &c__4, (ftnlen)79);
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 2, a__3[1] = "{2";
+ i__2 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__5[2] = 1, a__3[2] = ch__1;
+ i__5[3] = 1, a__3[3] = "}";
+ s_cat(notexq, a__3, i__5, &c__4, (ftnlen)79);
+ lnote += 4;
+ }
+
+/* Add note name to string */
+
+ i__2 = nolevs + iupdn + ivoff;
+ notefq_(noteq, &lnoten, &i__2, ncm, (ftnlen)8);
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = lnoten, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote += lnoten;
+
+/* Save height (for ornament and barnobox interference) if topmost slur is up */
+
+ if (*(unsigned char *)slurudq == 'u' && (! bit_test(isdat2[
+ isdat],0) || nolevs == comtrill_1.maxlev)) {
+ *islhgt = nolevs + iupdn + ivoff;
+
+/* Save height & idcode if top voice and slur start */
+
+ if (commvl_1.ivx == commvl_1.ivmx[*nv + commvl_1.nvmx[*nv
+ - 1] * 24 - 25] && *islhgt > comsln_1.is1n1) {
+ comsln_1.is1n1 = *islhgt;
+ comsln_1.is2n1 = idcode;
+ }
+ }
+ if ((real) ihoff != 0.f) {
+ shift = ihoff * .1f;
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "{";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ lform = lfmt1_(&shift);
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + lform - i__2;
+ ici__1.iciunit = notexq + i__2;
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = "(f";
+ i__6 = lform + 48;
+ chax_(ch__1, (ftnlen)1, &i__6);
+ i__3[1] = 1, a__1[1] = ch__1;
+ i__3[2] = 3, a__1[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__3, &c__3, (ftnlen)
+ 6), ch__2);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&shift, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += lform;
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "}";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)80);
+
+/* Zero out ip1 to avoid problems if slur goes to next input blk. */
+
+ setbits_(&isdata, &c__8, &c__3, &c__0);
+
+/* Set slur-on data for midi. Only treat null-index slurs and ps ties for now. */
+
+ if (commidi_1.ismidi && idcode == 32) {
+ comslm_1.levson[commidi_1.midchan[*iv + *kv * 24 - 25]] =
+ nolevs;
+ if (settie) {
+ comslm_1.dbltie = TRUE_;
+ }
+
+/* Only way settie=T is if we just set a tie ending. So there's also a slur */
+/* start here, so set a flag telling addmidi not to zero out levson */
+
+ }
+ } else {
+
+/* Slur is ending. Back thru list to find starting slur */
+
+ for (j = isdat - 1; j >= 1; --j) {
+ if (*iv == igetbits_(&isdat1[j], &c__5, &c__13) && *kv ==
+ igetbits_(&isdat1[j], &c__1, &c__12) + 1) {
+ if (idcode == igetbits_(&isdat1[j], &c__7, &c__19)) {
+ comslur_1.ndxslur = igetbits_(&isdat1[j], &c__4, &
+ c__28) + (igetbits_(&isdat1[j], &c__1, &
+ c__18) << 4);
+
+/* 080531 Allow >16 slurs */
+
+ if (bit_test(isdat1[j],27)) {
+ *(unsigned char *)slurudq = 'u';
+ }
+ goto L4;
+ }
+ }
+/* L3: */
+ }
+ s_wsle(&io___461);
+ do_lio(&c__9, &c__1, "Bad place in doslur", (ftnlen)19);
+ e_wsle();
+ stop1_();
+L4:
+ if (nolevs == 0 || nolevs > 60) {
+
+/* Ending is on a rest, reset nolevs to default starting height */
+
+ nolevs = igetbits_(&isdat2[j], &c__7, &c__19);
+ }
+ if (bit_test(isdat3[isdat],0)) {
+
+/* Deal with \curve or \midslur */
+
+ imid = igetbits_(&isdat3[isdat], &c__6, &c__2) - 32;
+
+/* Remember, only dealing with non-ps slurs */
+
+/* Who knows where the following line came from. Removed it 6/30/02 to */
+/* restore behavior of non-ps slurs to old way */
+/* if (slurudq .eq. 'd') imid = -imid */
+/* 3/8/03 added the following */
+
+ if (*(unsigned char *)slurudq == 'd') {
+ imid = -abs(imid);
+ }
+
+ if (bit_test(isdat3[isdat],1)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[0] = 1, a__2[0] = ch__1;
+ i__4[1] = 5, a__2[1] = "curve";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote = 6;
+ } else {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[0] = 1, a__2[0] = ch__1;
+ i__4[1] = 7, a__2[1] = "midslur";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote = 8;
+ }
+ if (imid < 0 || imid > 9) {
+
+/* Need brackets */
+
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "{";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ if (imid < -9) {
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 3 - i__2;
+ ici__1.iciunit = notexq + i__2;
+ ici__1.icifmt = "(i3)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&imid, (ftnlen)sizeof(
+ integer));
+ e_wsfi();
+ lnote += 3;
+ } else if (imid < 0 || imid > 9) {
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 2 - i__2;
+ ici__1.iciunit = notexq + i__2;
+ ici__1.icifmt = "(i2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&imid, (ftnlen)sizeof(
+ integer));
+ e_wsfi();
+ lnote += 2;
+ } else {
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 1 - i__2;
+ ici__1.iciunit = notexq + i__2;
+ ici__1.icifmt = "(i1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&imid, (ftnlen)sizeof(
+ integer));
+ e_wsfi();
+ ++lnote;
+ }
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "}";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ } else {
+
+/* 1=<imid=<9, no brackets */
+
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ *(unsigned char *)&ch__1[0] = imid + 48;
+ i__4[1] = 1, a__2[1] = ch__1;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ if (bit_test(isdat3[isdat],1)) {
+
+/* \curve; 3 args */
+
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ *(unsigned char *)&ch__1[0] = igetbits_(&isdat3[isdat]
+ , &c__3, &c__8) + 48;
+ i__4[1] = 1, a__2[1] = ch__1;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+/* Writing concatenation */
+ i__4[0] = lnote + 1, a__2[0] = notexq;
+ *(unsigned char *)&ch__1[0] = igetbits_(&isdat3[isdat]
+ , &c__3, &c__11) + 48;
+ i__4[1] = 1, a__2[1] = ch__1;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote += 2;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)
+ 80);
+ }
+
+/* Shift slur ending for stem on any note? */
+
+ if (! stemup && *(unsigned char *)slurudq == 'd' && *tno <
+ 63.f) {
+ ihoff += -8;
+ }
+ if (bit_test(isdat2[isdat],3)) {
+
+/* Shift ending for tie spacing */
+
+ if (*(unsigned char *)slurudq == 'u') {
+ ihoff += -8;
+ --ivoff;
+ } else if (*(unsigned char *)slurudq == 'd') {
+ ++ivoff;
+ if (stemup || *tno > 63.f) {
+ ihoff += -8;
+ }
+ }
+ }
+ if (iscrd) {
+
+/* Shift termination for shifted notehead? */
+
+ if (bit_test(isdat2[isdat],1)) {
+
+/* Left-shifted chord notehead. ASSUME downstem. */
+
+ if (nolevs == comtrill_1.minlev && *(unsigned char *)
+ slurudq == 'd') {
+ ihoff += -2;
+ } else {
+ ihoff += -10;
+ }
+ } else if (bit_test(isdat2[isdat],2)) {
+
+/* Right shifted chord notehead. ASSUME upstem. */
+
+ if (nolevs == comtrill_1.maxlev && *(unsigned char *)
+ slurudq == 'u') {
+ ihoff += 2;
+ } else {
+ ihoff += 10;
+ }
+ }
+ }
+ if (ihoff == 0) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[0] = 1, a__2[0] = ch__1;
+ i__4[1] = 5, a__2[1] = "tslur";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote = 6;
+ } else {
+
+/* Shift needed */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[0] = 1, a__2[0] = ch__1;
+ i__4[1] = 2, a__2[1] = "ts";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote = 3;
+ }
+
+/* Print 23-ndxslur */
+/* 5/25/08 Allow 14 slurs (???????????) */
+
+ if (23 - comslur_1.ndxslur < 10) {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__2 = 71 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__4[1] = 1, a__2[1] = ch__1;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 2, a__3[1] = "{1";
+ i__2 = 61 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__5[2] = 1, a__3[2] = ch__1;
+ i__5[3] = 1, a__3[3] = "}";
+ s_cat(notexq, a__3, i__5, &c__4, (ftnlen)79);
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = 2, a__3[1] = "{2";
+ i__2 = 51 - comslur_1.ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__5[2] = 1, a__3[2] = ch__1;
+ i__5[3] = 1, a__3[3] = "}";
+ s_cat(notexq, a__3, i__5, &c__4, (ftnlen)79);
+ lnote += 4;
+ }
+ if (bit_test(*iornq,11) || bit_test(*iornq,12)) {
+
+/* Raise or lower slur by one unit provided . or _ is on same side as slur */
+
+ ivoffinc = 0;
+ if (stemup && *(unsigned char *)slurudq == 'd' || !
+ stemup && *(unsigned char *)slurudq == 'u') {
+ if (stemup) {
+ ivoffinc = -1;
+ } else {
+ ivoffinc = 1;
+ }
+ if ((stemup && *nolev >= *ncm - 2 || ! stemup && *
+ nolev <= *ncm + 2) && (i__2 = *ncm - *nolev,
+ abs(i__2)) % 2 == 0) {
+ ivoffinc <<= 1;
+ }
+ }
+ ivoff += ivoffinc;
+ }
+ if (idcode == 1 && tmove) {
+
+/* t-slur height adjustment */
+
+ iupdn = 1;
+ if (*(unsigned char *)slurudq == 'd') {
+ iupdn = -1;
+ }
+ }
+ i__2 = nolevs + iupdn + ivoff;
+ notefq_(noteq, &lnoten, &i__2, ncm, (ftnlen)8);
+ if (*(unsigned char *)slurudq == 'u' && (! bit_test(isdat2[
+ isdat],0) || nolevs == comtrill_1.maxlev)) {
+ *islhgt = nolevs + iupdn + ivoff;
+
+/* If topvoice, upslur, and idcode checks, no more need to keep hgt for barno. */
+
+ if (commvl_1.ivx == commvl_1.ivmx[*nv + commvl_1.nvmx[*nv
+ - 1] * 24 - 25] && comsln_1.is1n1 > 0) {
+ if (idcode == comsln_1.is2n1) {
+ comsln_1.is1n1 = 0;
+ }
+ }
+ }
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = lnoten, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote += lnoten;
+ if (ihoff != 0) {
+ shift = ihoff * .1f;
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "{";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ lform = lfmt1_(&shift);
+ i__2 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + lform - i__2;
+ ici__1.iciunit = notexq + i__2;
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = "(f";
+ i__6 = lform + 48;
+ chax_(ch__1, (ftnlen)1, &i__6);
+ i__3[1] = 1, a__1[1] = ch__1;
+ i__3[2] = 3, a__1[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__3, &c__3, (ftnlen)
+ 6), ch__2);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&shift, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote += lform;
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "}";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)80);
+
+/* Clear the bit from list of slurs in use */
+
+ comslur_1.listslur = bit_clear(comslur_1.listslur,
+ comslur_1.ndxslur);
+
+/* Zero out the entire strings for start and stop */
+
+ isdata = 0;
+ isdat2[isdat] = 0;
+ isdat1[j] = 0;
+ isdat2[j] = 0;
+ isdat3[isdat] = 0;
+
+/* Set midi info for slur ending */
+
+ if (commidi_1.ismidi && idcode == 32) {
+ icm = commidi_1.midchan[*iv + *kv * 24 - 25];
+ if (comslm_1.slmon[icm]) {
+ if (nolevs == comslm_1.levson[icm] && (7 & *nacc) ==
+ 0) {
+
+/* There is a tie here. NB!!! assumed no accidental on 2nd member of tie. */
+
+ comslm_1.levsoff[icm] = nolevs;
+ settie = TRUE_;
+ } else {
+ comslm_1.levsoff[icm] = 0;
+ comslm_1.levson[icm] = 0;
+ comslm_1.slmon[icm] = FALSE_;
+ }
+ }
+ }
+ }
+ isdat1[isdat] = isdata;
+ }
+/* L1: */
+ }
+
+/* Clear and collapse the slur data list */
+
+ numdrop = 0;
+ i__1 = *nsdat;
+ for (isdat = 1; isdat <= i__1; ++isdat) {
+ if (isdat1[isdat] == 0) {
+ ++numdrop;
+ } else if (numdrop > 0) {
+ isdat1[isdat - numdrop] = isdat1[isdat];
+ isdat2[isdat - numdrop] = isdat2[isdat];
+ isdat3[isdat - numdrop] = isdat3[isdat];
+ isdat1[isdat] = 0;
+ isdat2[isdat] = 0;
+ isdat3[isdat] = 0;
+ }
+/* L2: */
+ }
+ *nsdat -= numdrop;
+/* call report(nsdat,isdat1,isdat2) */
+ return 0;
+} /* doslur_ */
+
+/* Subroutine */ int dotmov_(real *updot, real *rtdot, char *soutq, integer *
+ lsout, integer *iddot, ftnlen soutq_len)
+{
+ /* System generated locals */
+ address a__1[5], a__2[8], a__3[5];
+ integer i__1[5], i__2, i__3, i__4[8], i__5[5], i__6;
+ char ch__1[1], ch__2[22], ch__3[1], ch__4[37], ch__5[15], ch__6[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+ /* Local variables */
+ static char sq[1];
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ extern integer lfmt1_(real *);
+ static integer lnote;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static integer lfmtup, lfmtrt;
+ static char notexq[80];
+
+
+/* iddot = 0 for single dot, 1 for double */
+
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ lfmtup = lfmt1_(updot);
+ lfmtrt = lfmt1_(rtdot);
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 80;
+ ici__1.iciunit = notexq;
+/* Writing concatenation */
+ i__1[0] = 6, a__1[0] = "(a37,f";
+ i__2 = lfmtup + 48;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__1[1] = 1, a__1[1] = ch__1;
+ i__1[2] = 7, a__1[2] = ".1,a2,f";
+ i__3 = lfmtrt + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__1[3] = 1, a__1[3] = ch__3;
+ i__1[4] = 7, a__1[4] = ".1,a15)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__1, &c__5, (ftnlen)22), ch__2);
+ s_wsfi(&ici__1);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = sq;
+ i__4[1] = 12, a__2[1] = "makeatletter";
+ i__4[2] = 1, a__2[2] = sq;
+ i__4[3] = 3, a__2[3] = "def";
+ i__4[4] = 1, a__2[4] = sq;
+ i__4[5] = 12, a__2[5] = "C@Point#1#2{";
+ i__4[6] = 1, a__2[6] = sq;
+ i__4[7] = 6, a__2[7] = "PMXpt{";
+ s_cat(ch__4, a__2, i__4, &c__8, (ftnlen)37);
+ do_fio(&c__1, ch__4, (ftnlen)37);
+ do_fio(&c__1, (char *)&(*updot), (ftnlen)sizeof(real));
+ do_fio(&c__1, "}{", (ftnlen)2);
+ do_fio(&c__1, (char *)&(*rtdot), (ftnlen)sizeof(real));
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = "}";
+ i__6 = *iddot + 48;
+ chax_(ch__6, (ftnlen)1, &i__6);
+ i__5[1] = 1, a__3[1] = ch__6;
+ i__5[2] = 1, a__3[2] = "}";
+ i__5[3] = 1, a__3[3] = sq;
+ i__5[4] = 11, a__3[4] = "makeatother";
+ s_cat(ch__5, a__3, i__5, &c__5, (ftnlen)15);
+ do_fio(&c__1, ch__5, (ftnlen)15);
+ e_wsfi();
+
+/* Example of string just created: */
+/* \makeatletter\def\C@Point#1#2{\PMXpt{.5}{.5}}\makeatother\ */
+
+ lnote = lfmtup + 54 + lfmtrt;
+ addstr_(notexq, &lnote, soutq, lsout, lnote, (ftnlen)80);
+ return 0;
+} /* dotmov_ */
+
+/* Subroutine */ int dotrill_(integer *iv, integer *ip, integer *iornq, char *
+ noteq, integer *lnoten, char *notexq, integer *lnote, ftnlen
+ noteq_len, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3];
+ integer i__1, i__2[2], i__3[3], i__4;
+ char ch__1[1], ch__2[6];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen), s_cat(char *, char **,
+ integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+ /* Local variables */
+ static integer itr;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer nfmt;
+ static logical tronly;
+
+ /* Fortran I/O blocks */
+ static cilist io___471 = { 0, 6, 0, 0, 0 };
+
+
+ i__1 = comtrill_1.ntrill;
+ for (itr = 1; itr <= i__1; ++itr) {
+ if (*iv == comtrill_1.ivtrill[itr - 1] && *ip == comtrill_1.iptrill[
+ itr - 1]) {
+ goto L2;
+ }
+/* L1: */
+ }
+ s_wsle(&io___471);
+ do_lio(&c__9, &c__1, "Problem in dotrill. Call Dr. Don", (ftnlen)33);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+L2:
+ tronly = comtrill_1.xnsktr[itr - 1] < .01f;
+ if (tronly) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 9, a__1[1] = "zcharnote";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ *lnote = 10;
+ } else if (bit_test(*iornq,7)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 6, a__1[1] = "Trille";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ *lnote = 7;
+ } else {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 6, a__1[1] = "trille";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ *lnote = 7;
+ }
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ i__3[1] = *lnoten, a__2[1] = noteq;
+ i__3[2] = 1, a__2[2] = "{";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ *lnote = *lnote + *lnoten + 1;
+
+/* Write trill duration to nearest tenth of a noteskip */
+
+ if (tronly) {
+/* Writing concatenation */
+ i__3[0] = *lnote, a__2[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 6, a__2[2] = "it tr}";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ *lnote += 7;
+ return 0;
+ }
+ if (comtrill_1.xnsktr[itr - 1] < .95f) {
+ nfmt = 2;
+ } else if (comtrill_1.xnsktr[itr - 1] < 9.95f) {
+ nfmt = 3;
+ } else {
+ nfmt = 4;
+ }
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + nfmt - i__1;
+ ici__1.iciunit = notexq + i__1;
+/* Writing concatenation */
+ i__3[0] = 2, a__2[0] = "(f";
+ i__4 = nfmt + 48;
+ chax_(ch__1, (ftnlen)1, &i__4);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 3, a__2[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__2, a__2, i__3, &c__3, (ftnlen)6), ch__2);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comtrill_1.xnsktr[itr - 1], (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote += nfmt;
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+ return 0;
+} /* dotrill_ */
+
+/* Subroutine */ int endslur_(logical *stemup, logical *upslur, integer *
+ nolev, integer *iupdn, integer *ndxslur, integer *ivoff, integer *ncm,
+ char *soutq, integer *lsout, logical *fontslur, ftnlen soutq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[4];
+ integer i__1[2], i__2, i__3[4];
+ char ch__1[1];
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static logical shift;
+ static integer lnote;
+ static char noteq[8];
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen), notefq_(char *, integer *, integer *, integer *,
+ ftnlen);
+ static integer lnoten;
+ static char notexq[79];
+
+
+/* Only called to end slur started in dograce. */
+
+ shift = ! (*stemup) && ! (*upslur);
+ if (! shift) {
+
+/* No shift needed */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__1[0] = 1, a__1[0] = ch__1;
+ i__1[1] = 5, a__1[1] = "tslur";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ lnote = 6;
+ } else {
+
+/* Shift needed */
+
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__1[0] = 1, a__1[0] = ch__1;
+ i__1[1] = 2, a__1[1] = "ts";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ lnote = 3;
+ }
+/* if (ndxslur .lt. 10) then */
+/* notexq = notexq(1:lnote)//chax(48+ndxslur) */
+/* lnote = lnote+1 */
+/* else */
+/* notexq = notexq(1:lnote)//'{1'//chax(38+ndxslur)//'}' */
+/* lnote = lnote+4 */
+/* end if */
+
+/* c Print 11-ndxslur */
+/* Print 23-ndxslur */
+
+/* if (11-ndxslur .lt. 10) then */
+ if (23 - *ndxslur < 10) {
+/* notexq = notexq(1:lnote)//chax(59-ndxslur) */
+/* Writing concatenation */
+ i__1[0] = lnote, a__1[0] = notexq;
+ i__2 = 71 - *ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__1[1] = 1, a__1[1] = ch__1;
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ ++lnote;
+ } else if (23 - *ndxslur < 20) {
+/* notexq = notexq(1:lnote)//'{1'//chax(49-ndxslur)//'}' */
+/* Writing concatenation */
+ i__3[0] = lnote, a__2[0] = notexq;
+ i__3[1] = 2, a__2[1] = "{1";
+ i__2 = 61 - *ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__3[2] = 1, a__2[2] = ch__1;
+ i__3[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__3, &c__4, (ftnlen)79);
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__3[0] = lnote, a__2[0] = notexq;
+ i__3[1] = 2, a__2[1] = "{2";
+ i__2 = 51 - *ndxslur;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__3[2] = 1, a__2[2] = ch__1;
+ i__3[3] = 1, a__2[3] = "}";
+ s_cat(notexq, a__2, i__3, &c__4, (ftnlen)79);
+ lnote += 4;
+ }
+ i__2 = *nolev + *iupdn + *ivoff;
+ notefq_(noteq, &lnoten, &i__2, ncm, (ftnlen)8);
+/* Writing concatenation */
+ i__1[0] = lnote, a__1[0] = notexq;
+ i__1[1] = lnoten, a__1[1] = noteq;
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ lnote += lnoten;
+ if (shift) {
+ if (*fontslur) {
+/* Writing concatenation */
+ i__1[0] = lnote, a__1[0] = notexq;
+ i__1[1] = 5, a__1[1] = "{-.6}";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__1[0] = lnote, a__1[0] = notexq;
+ i__1[1] = 5, a__1[1] = "{-.8}";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ }
+ lnote += 5;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, (ftnlen)79, (ftnlen)80);
+ return 0;
+} /* endslur_ */
+
+/* Subroutine */ int errmsg_(char *lineq, integer *iccount, integer *ibarno,
+ char *msgq, ftnlen lineq_len, ftnlen msgq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[5], a__3[4];
+ integer i__1[2], i__2, i__3, i__4[5], i__5[4];
+ real r__1;
+ char ch__1[18], ch__2[1], ch__3[1], ch__4[7], ch__5[79];
+ cilist ci__1;
+ olist o__1;
+ cllist cl__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+ integer s_wsle(cilist *), e_wsle(void), f_open(olist *), s_wsfe(cilist *),
+ do_fio(integer *, char *, ftnlen), e_wsfe(void), f_clos(cllist *)
+ ;
+ double r_lg10(real *);
+ integer i_indx(char *, char *, ftnlen, ftnlen), do_lio(integer *, integer
+ *, char *, ftnlen);
+
+ /* Local variables */
+ static integer i1, i10;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static char outq[78];
+ static integer iposn, ndigbn, ndignl, nlinep, lenmsg;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer ibarnop;
+
+ /* Fortran I/O blocks */
+ static cilist io___481 = { 0, 6, 0, 0, 0 };
+ static cilist io___484 = { 0, 19, 0, "(i6)", 0 };
+ static cilist io___488 = { 0, 6, 0, "(1x,a)", 0 };
+ static cilist io___489 = { 0, 15, 0, "(a)", 0 };
+ static cilist io___492 = { 0, 6, 0, 0, 0 };
+ static cilist io___493 = { 0, 15, 0, "(a)", 0 };
+
+
+ if (*iccount <= 78) {
+ s_copy(outq, lineq, (ftnlen)78, (ftnlen)78);
+ iposn = *iccount;
+ } else {
+/* Writing concatenation */
+ i__1[0] = 4, a__1[0] = "... ";
+ i__1[1] = 74, a__1[1] = lineq + 54;
+ s_cat(outq, a__1, i__1, &c__2, (ftnlen)78);
+ iposn = *iccount - 50;
+ }
+ s_wsle(&io___481);
+ e_wsle();
+ ibarnop = *ibarno;
+ if (c1omget_1.linesinpmxmod == 0 || c1omget_1.nline >
+ c1omget_1.line1pmxmod + c1omget_1.linesinpmxmod) {
+
+/* Error is in main .pmx file */
+
+/* nlinep = nline-linesinpmxmod */
+/* Correct for comments not copied into buffer */
+ nlinep = truelinecount_1.linewcom[c1omget_1.nline - 1] -
+ c1omget_1.linesinpmxmod;
+ } else {
+
+/* Error is in include file */
+
+ ibarnop = 0;
+ nlinep = c1omget_1.nline - c1omget_1.line1pmxmod + 1;
+ printl_("ERROR in include file named above, description given below",
+ (ftnlen)58);
+ }
+ o__1.oerr = 0;
+ o__1.ounit = 19;
+ o__1.ofnmlen = 11;
+ o__1.ofnm = "pmxaerr.dat";
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ s_wsfe(&io___484);
+ do_fio(&c__1, (char *)&nlinep, (ftnlen)sizeof(integer));
+ e_wsfe();
+ cl__1.cerr = 0;
+ cl__1.cunit = 19;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+/* Computing MAX */
+ r__1 = ibarnop + .1f;
+ i__2 = 1, i__3 = (integer) (r_lg10(&r__1) + 1);
+ ndigbn = max(i__2,i__3);
+ r__1 = nlinep + .1f;
+ ndignl = (integer) (r_lg10(&r__1) + 1);
+ lenmsg = i_indx(msgq, "!", msgq_len, (ftnlen)1) - 1;
+
+/* Split off msgq(..) since UNIX compilers don't allow concat substring!!! */
+
+ ci__1.cierr = 0;
+ ci__1.ciunit = 6;
+/* Writing concatenation */
+ i__4[0] = 8, a__2[0] = "(/,a15,i";
+ i__2 = ndignl + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__4[1] = 1, a__2[1] = ch__2;
+ i__4[2] = 5, a__2[2] = ",a6,i";
+ i__3 = ndigbn + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__4[3] = 1, a__2[3] = ch__3;
+ i__4[4] = 3, a__2[4] = ",$)";
+ ci__1.cifmt = (s_cat(ch__1, a__2, i__4, &c__5, (ftnlen)18), ch__1);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, " ERROR in line ", (ftnlen)15);
+ do_fio(&c__1, (char *)&nlinep, (ftnlen)sizeof(integer));
+ do_fio(&c__1, ", bar ", (ftnlen)6);
+ do_fio(&c__1, (char *)&ibarnop, (ftnlen)sizeof(integer));
+ e_wsfe();
+ s_wsfe(&io___488);
+ do_fio(&c__1, msgq, lenmsg);
+ e_wsfe();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 15;
+/* Writing concatenation */
+ i__4[0] = 8, a__2[0] = "(/,a15,i";
+ i__2 = ndignl + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__4[1] = 1, a__2[1] = ch__2;
+ i__4[2] = 5, a__2[2] = ",a6,i";
+ i__3 = ndigbn + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__4[3] = 1, a__2[3] = ch__3;
+ i__4[4] = 3, a__2[4] = ",$)";
+ ci__1.cifmt = (s_cat(ch__1, a__2, i__4, &c__5, (ftnlen)18), ch__1);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, " ERROR in line ", (ftnlen)15);
+ do_fio(&c__1, (char *)&nlinep, (ftnlen)sizeof(integer));
+ do_fio(&c__1, ", bar ", (ftnlen)6);
+ do_fio(&c__1, (char *)&ibarnop, (ftnlen)sizeof(integer));
+ e_wsfe();
+ s_wsfe(&io___489);
+ do_fio(&c__1, msgq, lenmsg);
+ e_wsfe();
+ i10 = iposn / 10;
+ i1 = iposn - i10 * 10;
+ ci__1.cierr = 0;
+ ci__1.ciunit = 6;
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = "(";
+ i__2 = i10 + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__5[1] = 1, a__3[1] = ch__2;
+ i__3 = i1 + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__5[2] = 1, a__3[2] = ch__3;
+ i__5[3] = 4, a__3[3] = "x,a)";
+ ci__1.cifmt = (s_cat(ch__4, a__3, i__5, &c__4, (ftnlen)7), ch__4);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, "v", (ftnlen)1);
+ e_wsfe();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 15;
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = "(";
+ i__2 = i10 + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__5[1] = 1, a__3[1] = ch__2;
+ i__3 = i1 + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__5[2] = 1, a__3[2] = ch__3;
+ i__5[3] = 4, a__3[3] = "x,a)";
+ ci__1.cifmt = (s_cat(ch__4, a__3, i__5, &c__4, (ftnlen)7), ch__4);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, "v", (ftnlen)1);
+ e_wsfe();
+ s_wsle(&io___492);
+ do_lio(&c__9, &c__1, outq, (ftnlen)78);
+ e_wsle();
+ s_wsfe(&io___493);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = " ";
+ i__1[1] = 78, a__1[1] = outq;
+ s_cat(ch__5, a__1, i__1, &c__2, (ftnlen)79);
+ do_fio(&c__1, ch__5, (ftnlen)79);
+ e_wsfe();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 6;
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = "(";
+ i__2 = i10 + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__5[1] = 1, a__3[1] = ch__2;
+ i__3 = i1 + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__5[2] = 1, a__3[2] = ch__3;
+ i__5[3] = 4, a__3[3] = "x,a)";
+ ci__1.cifmt = (s_cat(ch__4, a__3, i__5, &c__4, (ftnlen)7), ch__4);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, "^", (ftnlen)1);
+ e_wsfe();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 15;
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = "(";
+ i__2 = i10 + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__5[1] = 1, a__3[1] = ch__2;
+ i__3 = i1 + 48;
+ chax_(ch__3, (ftnlen)1, &i__3);
+ i__5[2] = 1, a__3[2] = ch__3;
+ i__5[3] = 4, a__3[3] = "x,a)";
+ ci__1.cifmt = (s_cat(ch__4, a__3, i__5, &c__4, (ftnlen)7), ch__4);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, "^", (ftnlen)1);
+ e_wsfe();
+ return 0;
+} /* errmsg_ */
+
+/* Subroutine */ int eskb4_(integer *ip, integer *ivx, integer *in, integer *
+ ib, real *space, real *tstart, real *fbar, integer *itrpt, real *esk)
+{
+ /* System generated locals */
+ real r__1;
+
+ /* Builtin functions */
+ integer i_nint(real *), s_wsle(cilist *), do_lio(integer *, integer *,
+ char *, ftnlen), e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+
+ /* Local variables */
+ static integer iib;
+ extern doublereal feon_(real *);
+ static integer itnd, nnsk, itprev;
+
+ /* Fortran I/O blocks */
+ static cilist io___498 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Get elemskips to previous note. Called only for graces, no xtups involved. */
+
+ /* Parameter adjustments */
+ --tstart;
+ --space;
+
+ /* Function Body */
+ itnd = i_nint(&all_1.to[*in - 1]);
+ if (*ip == 1 || itnd == *itrpt) {
+
+/* Start of bar or after rpt. */
+
+ *esk = *fbar;
+ return 0;
+ } else {
+ *esk = 0.f;
+ itprev = itnd - all_1.nodur[*ivx + (*ip - 1) * 24 - 25];
+ for (iib = *ib; iib >= 1; --iib) {
+ if (tstart[iib] < itprev + comtol_1.tol) {
+
+/* This is the block */
+
+ r__1 = (real) (itnd - itprev) / space[iib];
+ nnsk = i_nint(&r__1);
+ *esk += nnsk * feon_(&space[iib]);
+ return 0;
+ } else {
+ r__1 = (itnd - tstart[iib]) / space[iib];
+ nnsk = i_nint(&r__1);
+ *esk += nnsk * feon_(&space[iib]);
+ itnd = i_nint(&tstart[iib]);
+ }
+/* L1: */
+ }
+ }
+ s_wsle(&io___498);
+ do_lio(&c__9, &c__1, "Problem in eskb4. Send files to Dr. Don", (ftnlen)
+ 40);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ return 0;
+} /* eskb4_ */
+
+doublereal f1eon_(real *time)
+{
+ /* System generated locals */
+ real ret_val;
+
+ /* Builtin functions */
+ double sqrt(doublereal);
+
+ ret_val = sqrt(*time / 2);
+ return ret_val;
+} /* f1eon_ */
+
+doublereal feon_(real *time)
+{
+ /* System generated locals */
+ real ret_val;
+ doublereal d__1, d__2;
+
+ /* Builtin functions */
+ double sqrt(doublereal), pow_dd(doublereal *, doublereal *);
+
+ d__1 = (doublereal) sqrt(*time / 2);
+ d__2 = (doublereal) (1.f - comeon_1.eonk);
+ ret_val = pow_dd(&d__1, &d__2) * comeon_1.ewmxk;
+ return ret_val;
+} /* feon_ */
+
+/* Subroutine */ int findbeam_(integer *ibmrep, integer *numbms, integer *
+ mapfb)
+{
+ /* Initialized data */
+
+ static integer nip1[248] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
+ static integer nip2[248] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
+ static integer nummask[3] = { 29,49,12 };
+ static integer mask[147] /* was [49][3] */ = { 65535,4095,65520,255,
+ 65280,63,252,16128,64512,15,240,3840,61440,7,14,112,224,1792,3584,
+ 28672,57344,3,12,48,192,768,3072,12288,49152,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,16777215,65535,16776960,4095,65520,1048320,
+ 16773120,255,65280,16711680,63,252,16128,64512,4128768,16515072,
+ 15,60,240,3840,15360,61440,983040,3932160,15728640,7,14,112,224,
+ 1792,3584,28672,57344,458752,917504,7340032,14680064,3,12,48,192,
+ 768,3072,12288,49152,196608,786432,3145728,12582912,4095,255,4080,
+ 15,240,3840,3,12,48,192,768,3072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
+ static logical eqonly[147] /* was [49][3] */ = { TRUE_,TRUE_,TRUE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,TRUE_,TRUE_,TRUE_,TRUE_,TRUE_,TRUE_,TRUE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,
+ FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_,FALSE_ };
+
+ /* System generated locals */
+ integer i__1, i__2, i__3, i__4;
+ real r__1, r__2;
+
+ /* Builtin functions */
+ integer lbit_shift(integer, integer), s_wsle(cilist *), do_lio(integer *,
+ integer *, char *, ftnlen), e_wsle(void);
+ double r_mod(real *, real *);
+
+ /* Local variables */
+ static integer ib, ip, ir, it, is, ib1, ib2, ir1, is1, is2, it2, iip, ipr[
+ 248], itr[248], mape, mapm, irep, maps, nreal, itend, itoff,
+ maskm, nodue[248], itseg, mtemp;
+ static logical short__[248];
+ static integer itnow, ithalf, numnew;
+ extern /* Subroutine */ int logbeam_(integer *, integer *, integer *);
+ static integer masknow;
+
+ /* Fortran I/O blocks */
+ static cilist io___532 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Called once per voice per bar, after setting forced beams. */
+
+/* integer numbms(nm),ipr(48),nip1(0:47),nip2(0:47),mapfb(16), */
+/* * itr(48),nodue(48) */
+/* logical short(48),eqonly */
+ /* Parameter adjustments */
+ --mapfb;
+ --numbms;
+
+ /* Function Body */
+ ip = 0;
+ nreal = 0;
+ itnow = 0;
+L1:
+ ++ip;
+ if (ip > all_1.nn[commvl_1.ivx - 1]) {
+ goto L9;
+ }
+L11:
+ if (all_1.nodur[commvl_1.ivx + ip * 24 - 25] == 0) {
+
+/* Ignore all xtup notes except the last, the one with nodur > 0 . */
+/* Xtups are irrelevant here since they are already all in forced beams. */
+/* Will update itnow by nodur at the END of this loop */
+
+ ++ip;
+ goto L11;
+ }
+ ++nreal;
+ nodue[nreal - 1] = all_1.nodur[commvl_1.ivx + ip * 24 - 25];
+ short__[nreal - 1] = nodue[nreal - 1] < 16 && ! bit_test(all_1.irest[
+ commvl_1.ivx + ip * 24 - 25],0) && ! bit_test(all_1.islur[
+ commvl_1.ivx + ip * 24 - 25],18);
+
+/* Rule out notes that have 'alone'-flag set */
+
+ ipr[nreal - 1] = ip;
+ itr[nreal - 1] = itnow;
+ if (nodue[nreal - 1] == 1) {
+
+/* 64th gap */
+
+ if (itnow % 2 == 0) {
+
+/* Start of 32nd gap, lump with following note */
+
+ ++ip;
+ nodue[nreal - 1] = all_1.nodur[commvl_1.ivx + ip * 24 - 25] + 1;
+ itnow += nodue[nreal - 1];
+ } else {
+
+/* End of 32nd gap, lump with preceeding note */
+
+ --nreal;
+ ++nodue[nreal - 1];
+ ++itnow;
+ }
+ } else {
+ itnow += all_1.nodur[commvl_1.ivx + ip * 24 - 25];
+ }
+ goto L1;
+L9:
+ ir1 = 1;
+ itseg = all_1.lenbar / *ibmrep;
+ i__1 = *ibmrep;
+ for (irep = 1; irep <= i__1; ++irep) {
+
+/* Set bitmaps for all shorts neighbored by a short. Each bit represents a */
+/* span of 32nd note. maps, mapm, mape record start, full duration, and end */
+/* of consecutive span of beamable (<1/4) notes. */
+
+ maps = 0;
+ mapm = 0;
+ mape = 0;
+ itend = itseg * irep;
+ itoff = itend - itseg;
+ i__2 = nreal;
+ for (ir = ir1; ir <= i__2; ++ir) {
+ it2 = itr[ir - 1] + nodue[ir - 1] - 2;
+ if (it2 >= itend) {
+ ir1 = ir;
+ goto L14;
+ }
+/* if (short(ir).and.((ir.gt.1.and.short(ir-1)).or.(ir.lt.nreal */
+/* Computing MAX */
+ i__3 = ir - 1;
+ if (short__[ir - 1] && (ir > 1 && short__[max(i__3,1) - 1] || ir <
+ nreal && short__[ir])) {
+ ib1 = (itr[ir - 1] - itoff) / 2;
+ ib2 = (it2 - itoff) / 2;
+ if (max(ib1,ib2) > 47 || ir > 48 || min(ib1,ib2) < 0) {
+ return 0;
+ }
+
+/* Must have an odd number obe beats in a long bar. Auto-beam won't work */
+
+ nip1[ib1] = ipr[ir - 1];
+ nip2[ib2] = ipr[ir - 1];
+
+/* nip1,2(ib) = 0 unless a real note starts,ends on bit ib; then = ip */
+
+ maps = bit_set(maps,ib1);
+ mape = bit_set(mape,ib2);
+ i__3 = ib2;
+ for (ib = ib1; ib <= i__3; ++ib) {
+ mapm = bit_set(mapm,ib);
+/* L3: */
+ }
+ }
+/* L2: */
+ }
+L14:
+ if (mapm == 0) {
+ goto L13;
+ }
+
+/* Zero out bits from forced beams */
+
+ maps &= ~ mapfb[irep];
+ mapm &= ~ mapfb[irep];
+ mape &= ~ mapfb[irep];
+
+/* Compare map with template. */
+
+ i__2 = nummask[combeam_1.ibmtyp - 1];
+ for (it = 1; it <= i__2; ++it) {
+ masknow = mask[it + combeam_1.ibmtyp * 49 - 50];
+ if ((masknow & mapm) == masknow) {
+
+/* Find least significant bit in the mask to check start time */
+
+ mtemp = masknow;
+ maskm = masknow;
+ for (is1 = 0; is1 <= 47; ++is1) {
+ if ((1 & mtemp) == 1) {
+ goto L6;
+ }
+ mtemp = lbit_shift(mtemp, (ftnlen)-1);
+/* L5: */
+ }
+L6:
+ if ((lbit_shift((ftnlen)1, is1) & maps) == 0) {
+ goto L4;
+ }
+
+/* is1 is the bit where the beam starts. Continue shifting to */
+/* find most significant bit in the mask to check ending time */
+
+ for (is2 = is1; is2 <= 47; ++is2) {
+ mtemp = lbit_shift(mtemp, (ftnlen)-1);
+ if ((1 & ~ mtemp) == 1) {
+ goto L8;
+ }
+/* L7: */
+ }
+L8:
+
+/* is2 is now the bit on which the beam ends. */
+
+ if ((lbit_shift((ftnlen)1, is2) & mape) == 0) {
+ goto L4;
+ }
+
+/* Did we pick out a single note from the middle of a longer sequence? */
+
+ if (nip1[is1] == nip2[is2]) {
+ goto L4;
+ }
+
+/* We almost have a beam. Check equality of notes if needed. */
+
+ if (eqonly[it + combeam_1.ibmtyp * 49 - 50]) {
+ i__3 = nip2[is2];
+ for (ip = nip1[is1]; ip <= i__3; ++ip) {
+ if (all_1.nodur[commvl_1.ivx + ip * 24 - 25] != 8) {
+
+/* There is a non-1/8th note in this beam. Exit if not 2 quarters */
+
+ if (is2 - is1 != 15) {
+ goto L4;
+ }
+
+/* Beam is 2 quarters long. Check if can split in half. */
+
+ ithalf = 0;
+ i__4 = nip2[is2];
+ for (iip = nip1[is1]; iip <= i__4; ++iip) {
+ ithalf += all_1.nodur[commvl_1.ivx + iip * 24
+ - 25];
+ if (ithalf > 16) {
+ goto L4;
+ }
+ if (ithalf == 16) {
+ goto L21;
+ }
+/* L20: */
+ }
+ s_wsle(&io___532);
+ do_lio(&c__9, &c__1, "Problem in findbeam, pleas"
+ "e call Dr. Don", (ftnlen)40);
+ e_wsle();
+ goto L4;
+L21:
+
+/* Otherwise, split in half by keeping only the first half. Other half will */
+/* be picked up later, assuming masks are listed longest first. */
+
+ is2 = is1 + 7;
+
+/* Reset maskm (since only used part of mask), used later to zero out */
+/* bits that contain beams */
+
+ maskm = 0;
+ i__4 = is2;
+ for (is = is1; is <= i__4; ++is) {
+ maskm = bit_set(maskm,is);
+/* L15: */
+ }
+ goto L16;
+ }
+/* L10: */
+ }
+ }
+L16:
+
+/* This is a beam. If last "effective" ends on odd 64th, add 1 more */
+
+/* if (abs(mod(to(iand(255,ipl(ivx,nip2(is2)))) */
+/* * +nodur(ivx,nip2(is2)),2.)) .gt. tol) then */
+ r__2 = all_1.to[comipl2_1.ipl2[commvl_1.ivx + nip2[is2] * 24
+ - 25] - 1] + all_1.nodur[commvl_1.ivx + nip2[is2] *
+ 24 - 25] + comtol_1.tol * .5f;
+ if ((r__1 = r_mod(&r__2, &c_b1633), dabs(r__1)) >
+ comtol_1.tol) {
+ ++nip2[is2];
+ }
+ ++numbms[commvl_1.ivx];
+ numnew = numbms[commvl_1.ivx];
+ logbeam_(&numnew, &nip1[is1], &nip2[is2]);
+
+/* Zero out the appropriate bits so these notes don't get used again */
+
+ mapm &= ~ maskm;
+ if (mapm == 0) {
+ goto L13;
+ }
+ maps &= ~ maskm;
+ mape &= ~ maskm;
+ }
+L4:
+ ;
+ }
+L13:
+ ;
+ }
+ return 0;
+} /* findbeam_ */
+
+/* Subroutine */ int findeonk_(integer *nptr1, integer *nptr2, real *wovera,
+ real *xelsk, real *dtmin, real *dtmax, real *eonk0)
+{
+ /* System generated locals */
+ integer i__1;
+ real r__1;
+ doublereal d__1, d__2;
+
+ /* Builtin functions */
+ double pow_dd(doublereal *, doublereal *), sqrt(doublereal), log(
+ doublereal);
+
+ /* Local variables */
+ static real f, fp;
+ extern doublereal feon_(real *);
+ static real targ, esum;
+ static integer iptr;
+ extern doublereal f1eon_(real *);
+ static real desum, dsoln;
+ static integer niter;
+ static real detarg;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+
+
+/* Compute an exponent eonk for use in the "flattened" formula for elemskips */
+/* vs time. We must solve the eqution f = 0. Initial quess is eonk0. */
+
+ comeon_1.eonk = *eonk0;
+ niter = 0;
+L1:
+ d__1 = (doublereal) f1eon_(dtmax);
+ d__2 = (doublereal) comeon_1.eonk;
+ comeon_1.ewmxk = pow_dd(&d__1, &d__2);
+ ++niter;
+ esum = 0.f;
+ desum = 0.f;
+ i__1 = *nptr2;
+ for (iptr = *nptr1; iptr <= i__1; ++iptr) {
+ targ = c1omnotes_1.durb[iptr - 1] / c1omnotes_1.sqzb[iptr - 1];
+ esum += c1omnotes_1.nnpd[iptr - 1] * c1omnotes_1.sqzb[iptr - 1] *
+ feon_(&targ);
+ d__1 = (doublereal) (*dtmax / targ);
+ d__2 = (doublereal) comeon_1.eonk;
+ detarg = sqrt(targ / 2 * pow_dd(&d__1, &d__2)) * log(*dtmax / targ);
+ desum += c1omnotes_1.nnpd[iptr - 1] * c1omnotes_1.sqzb[iptr - 1] *
+ detarg;
+/* L2: */
+ }
+ f = *wovera * feon_(dtmin) - *xelsk - esum;
+ d__1 = (doublereal) (*dtmax / *dtmin);
+ d__2 = (doublereal) comeon_1.eonk;
+ fp = *wovera * sqrt(*dtmin / 2 * pow_dd(&d__1, &d__2)) * log(*dtmax / *
+ dtmin) - desum;
+ if (dabs(fp) < comtol_1.tol || (r__1 = comeon_1.eonk - .5f, dabs(r__1)) >
+ .5f || niter > 100) {
+ printl_("Error in findeonk. Please send source to Dr. Don", (ftnlen)
+ 49);
+ comeon_1.eonk = 0.f;
+ comeon_1.ewmxk = 1.f;
+ return 0;
+ }
+ dsoln = -f / fp;
+ if (dabs(dsoln) < comtol_1.tol * .1f) {
+ return 0;
+ }
+
+/* Not converged yet, try again */
+
+ comeon_1.eonk += dsoln;
+ goto L1;
+} /* findeonk_ */
+
+doublereal fnote_(integer *nodur, integer *ivx, integer *ip, integer *nacc)
+{
+ /* System generated locals */
+ real ret_val;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+
+ /* Local variables */
+ static integer iip, ip1m1;
+ extern /* Subroutine */ int stop1_(void);
+ static integer ndoub, ipback;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___548 = { 0, 6, 0, 0, 0 };
+
+
+
+/* This return the real duration of a note */
+
+ /* Parameter adjustments */
+ nacc -= 25;
+ nodur -= 25;
+
+ /* Function Body */
+ ipback = *ip;
+ if (nodur[*ivx + *ip * 24] > 0) {
+ if (*ip > 1) {
+
+/* Check if this is last note of xtup */
+
+ if (nodur[*ivx + (*ip - 1) * 24] == 0) {
+ ipback = *ip - 1;
+ goto L2;
+ }
+ }
+ ret_val = (real) nodur[*ivx + *ip * 24];
+ return ret_val;
+ }
+L2:
+
+/* Count back to prior non zero note. Start at ip to avoid neg index if ip=1. */
+/* Count how many doubled xtups notes there are from ip-1 to first note. */
+
+ ndoub = 0;
+ for (ip1m1 = ipback; ip1m1 >= 1; --ip1m1) {
+ if (nodur[*ivx + ip1m1 * 24] > 0) {
+ goto L4;
+ }
+ if (ip1m1 < *ip && bit_test(nacc[*ivx + ip1m1 * 24],18)) {
+ ++ndoub;
+ }
+/* L1: */
+ }
+L4:
+
+/* count forward to next non-0 nodur. Start at ip in case last note of xtup. */
+
+ for (iip = *ip; iip <= 200; ++iip) {
+
+/* Count doubled xtup notes from ip to end. */
+
+ if (bit_test(nacc[*ivx + iip * 24],18)) {
+ ++ndoub;
+ }
+ if (nodur[*ivx + iip * 24] > 0) {
+/* fnote = nodur(ivx,iip)/float(iip-ip1m1) */
+ ret_val = nodur[*ivx + iip * 24] / (real) (iip - ip1m1 + ndoub);
+ if (bit_test(nacc[*ivx + *ip * 24],18)) {
+ ret_val *= 2;
+ } else if (bit_test(nacc[*ivx + *ip * 24],27)) {
+ ret_val *= 1.5f;
+ } else if (*ip > 1) {
+ if (bit_test(nacc[*ivx + (*ip - 1) * 24],27)) {
+ ret_val *= .5f;
+ }
+ }
+ return ret_val;
+ }
+/* L3: */
+ }
+ s_wsle(&io___548);
+ do_lio(&c__9, &c__1, " ", (ftnlen)1);
+ e_wsle();
+ printl_("Probable misplaced barline or incorrect meter, stopping", (
+ ftnlen)55);
+/* call printl('Program error in fnote, send source to Dr. Don') */
+ stop1_();
+ return ret_val;
+} /* fnote_ */
+
+/* Subroutine */ int g1etchar_(char *lineq, integer *iccount, char *charq,
+ ftnlen lineq_len, ftnlen charq_len)
+{
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer ndxm;
+ extern /* Subroutine */ int read10_(char *, logical *, ftnlen), m1rec1_(
+ char *, integer *, integer *, integer *, integer *, integer *,
+ ftnlen);
+ static integer nbars, ibaroff, ibarcnt;
+
+
+/* Gets the next character out of lineq*128. If pointer iccount=128 on entry, */
+/* then reads in a new line. Resets iccount. Ends program if no more input. */
+
+ if (*iccount == 128) {
+ read10_(lineq, &c1omget_1.lastchar, (ftnlen)128);
+ if (c1omget_1.lastchar) {
+ return 0;
+ }
+ if (! commac_1.endmac) {
+ *iccount = 0;
+ if (! commac_1.mplay) {
+ ++c1omget_1.nline;
+ }
+ } else {
+ commac_1.endmac = FALSE_;
+ *iccount = commac_1.icchold;
+ s_copy(lineq, commac_1.lnholdq, (ftnlen)128, (ftnlen)128);
+ }
+ if (commac_1.mrecord) {
+ m1rec1_(lineq, iccount, &ibarcnt, &ibaroff, &nbars, &ndxm, (
+ ftnlen)128);
+ }
+ }
+ ++(*iccount);
+ *(unsigned char *)charq = *(unsigned char *)&lineq[*iccount - 1];
+ return 0;
+} /* g1etchar_ */
+
+/* Subroutine */ int g1etnote_(logical *loop, integer *ifig, logical *
+ optimize, logical *fulltrans)
+{
+ /* Initialized data */
+
+ static char literq[51*3] = "Literal TeX string cannot start with 4 backs"
+ "lashes!" "TeX string must have <129 char, end with backslash!"
+ "Type 2 or 3 TeX string can only start in column 1! ";
+
+ /* System generated locals */
+ address a__1[3], a__2[2], a__3[4];
+ integer i__1, i__2[3], i__3[2], i__4, i__5, i__6, i__7, i__8[4];
+ real r__1;
+ char ch__1[42], ch__2[1], ch__3[55], ch__4[54], ch__5[46];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_wsle(cilist *), e_wsle(
+ void), do_lio(integer *, integer *, char *, ftnlen), s_wsfe(
+ cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_fio(integer *, char *, ftnlen), e_wsfe(void), s_cmp(char *,
+ char *, ftnlen, ftnlen), i_nint(real *);
+ double log(doublereal);
+ integer pow_ii(integer *, integer *), s_rsfe(cilist *), e_rsfe(void),
+ s_rsfi(icilist *), e_rsfi(void);
+
+ /* Local variables */
+ extern integer i1fnodur_(integer *, char *, ftnlen);
+ extern /* Subroutine */ int checkdyn_(char *, integer *, integer *,
+ ftnlen);
+ static integer idotform, ndxquote, i__, j;
+ extern /* Subroutine */ int readmeter_(char *, integer *, integer *,
+ integer *, ftnlen), getpmxmod_(logical *, char *, ftnlen);
+ static integer ic, igr, ipm;
+ static real dum;
+ static integer ngr, iiv, nbb4, num1, num2;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static logical cdot;
+ static real fnum;
+ static char dumq[1], dotq[1], durq[1];
+ static integer itup;
+ static real snum;
+ static integer ntup;
+ extern /* Subroutine */ int g1etx_(char *, integer *, logical *, logical *
+ , integer *, real *, real *, ftnlen), stop1_(void), read10_(char *
+ , logical *, ftnlen);
+ static real dimen;
+ static char charq[1];
+ static integer indxb;
+ static char lineq[128];
+ static integer icsav, ndoub, iorig, iinow, iposn, ninow;
+ extern /* Subroutine */ int getitransinfo_(logical *, integer *, char *,
+ integer *, integer *, integer *, integer *, integer *, ftnlen);
+ static integer icclhw;
+ static char charlq[1];
+ extern /* Subroutine */ int setmac_(char *, integer *, integer *, integer
+ *, integer *, char *, char *, integer *, integer *, ftnlen,
+ ftnlen, ftnlen), chklit_(char *, integer *, integer *, ftnlen);
+ static logical fulbrp;
+ extern /* Subroutine */ int errmsg_(char *, integer *, integer *, char *,
+ ftnlen, ftnlen);
+ static integer literr, mtrdnp;
+ static real sysflb;
+ static integer numint, mtrnmp, numnum;
+ static logical ztrans;
+ static real fnsyst;
+ static integer lenbeat;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), getmidi_(integer *, char *, integer *, integer *,
+ integer *, integer *, integer *, integer *, logical *, ftnlen),
+ readnum_(char *, integer *, char *, real *, ftnlen, ftnlen);
+ static integer mtrdenl, lenmult, numshft;
+ static logical plusmin;
+ static real tintstf;
+ extern /* Subroutine */ int g1etchar_(char *, integer *, char *, ftnlen,
+ ftnlen);
+ static integer lvoltxt;
+
+ /* Fortran I/O blocks */
+ static cilist io___558 = { 0, 6, 0, 0, 0 };
+ static cilist io___559 = { 0, 6, 0, 0, 0 };
+ static cilist io___560 = { 0, 6, 0, 0, 0 };
+ static cilist io___561 = { 0, 6, 0, 0, 0 };
+ static cilist io___562 = { 0, 15, 0, "(/a)", 0 };
+ static cilist io___563 = { 0, 15, 0, "(a11,2x,i3)", 0 };
+ static cilist io___564 = { 0, 15, 0, 0, 0 };
+ static cilist io___565 = { 0, 6, 0, 0, 0 };
+ static cilist io___573 = { 0, 6, 0, 0, 0 };
+ static cilist io___574 = { 0, 6, 0, 0, 0 };
+ static cilist io___575 = { 0, 6, 0, 0, 0 };
+ static cilist io___580 = { 0, 6, 0, 0, 0 };
+ static cilist io___581 = { 0, 6, 0, 0, 0 };
+ static cilist io___582 = { 0, 6, 0, 0, 0 };
+ static cilist io___595 = { 0, 6, 0, 0, 0 };
+ static cilist io___598 = { 0, 6, 0, 0, 0 };
+ static cilist io___599 = { 0, 6, 0, 0, 0 };
+ static cilist io___600 = { 0, 6, 0, 0, 0 };
+ static cilist io___603 = { 0, 6, 0, 0, 0 };
+ static cilist io___609 = { 0, 6, 0, 0, 0 };
+ static cilist io___610 = { 0, 6, 0, 0, 0 };
+ static cilist io___611 = { 0, 15, 0, "(/,a)", 0 };
+ static cilist io___612 = { 0, 6, 0, 0, 0 };
+ static cilist io___613 = { 0, 6, 0, 0, 0 };
+ static cilist io___614 = { 0, 15, 0, "(a)", 0 };
+ static cilist io___615 = { 0, 15, 0, "(a)", 0 };
+ static cilist io___623 = { 0, 6, 0, 0, 0 };
+ static cilist io___624 = { 0, 6, 0, 0, 0 };
+ static cilist io___625 = { 0, 6, 0, 0, 0 };
+ static cilist io___626 = { 0, 6, 0, "(1x,a21,i3,a23)", 0 };
+ static cilist io___630 = { 0, 6, 0, 0, 0 };
+ static cilist io___631 = { 0, 6, 0, 0, 0 };
+ static cilist io___632 = { 0, 5, 0, "(a)", 0 };
+ static cilist io___636 = { 0, 6, 0, 0, 0 };
+ static cilist io___637 = { 0, 6, 0, 0, 0 };
+
+
+ cdot = FALSE_;
+L1:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq != ' ') {
+ *(unsigned char *)charlq = *(unsigned char *)charq;
+ }
+ if (c1omget_1.lastchar) {
+ if (i_indx("/%", charlq, (ftnlen)2, (ftnlen)1) == 0) {
+ s_wsle(&io___558);
+ e_wsle();
+ s_wsle(&io___559);
+ do_lio(&c__9, &c__1, "WARNING:", (ftnlen)8);
+ e_wsle();
+ s_wsle(&io___560);
+ do_lio(&c__9, &c__1, "Last non-blank character is \"", (ftnlen)29)
+ ;
+ do_lio(&c__9, &c__1, charlq, (ftnlen)1);
+ do_lio(&c__9, &c__1, "\", not \"/,%\"", (ftnlen)12);
+ e_wsle();
+ s_wsle(&io___561);
+ do_lio(&c__9, &c__1, "ASCII code:", (ftnlen)11);
+ i__1 = *(unsigned char *)charlq;
+ do_lio(&c__3, &c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsle();
+ s_wsfe(&io___562);
+/* Writing concatenation */
+ i__2[0] = 29, a__1[0] = "Last non-blank character is \"";
+ i__2[1] = 1, a__1[1] = charlq;
+ i__2[2] = 12, a__1[2] = "\", not \"/,%\"";
+ s_cat(ch__1, a__1, i__2, &c__3, (ftnlen)42);
+ do_fio(&c__1, ch__1, (ftnlen)42);
+ e_wsfe();
+ s_wsfe(&io___563);
+ do_fio(&c__1, "ASCII code:", (ftnlen)11);
+ i__1 = *(unsigned char *)charlq;
+ do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsfe();
+
+/* Append " /" to last line. NB lastchar=.true. => ilbuf=nlbuf+1. */
+
+ --inbuff_1.ilbuf;
+ inbuff_1.lbuf[inbuff_1.ilbuf - 1] = (shortint) (inbuff_1.lbuf[
+ inbuff_1.ilbuf - 1] + 2);
+/* Writing concatenation */
+ i__3[0] = inbuff_1.ipbuf, a__2[0] = inbuff_1.bufq;
+ i__3[1] = 2, a__2[1] = " /";
+ s_cat(inbuff_1.bufq, a__2, i__3, &c__2, (ftnlen)65536);
+ s_wsle(&io___564);
+ do_lio(&c__9, &c__1, "appending <blank>/", (ftnlen)18);
+ e_wsle();
+ s_wsle(&io___565);
+ do_lio(&c__9, &c__1, "appending <blank>/", (ftnlen)18);
+ e_wsle();
+/* Writing concatenation */
+ i__3[0] = a1ll_2.iccount, a__2[0] = lineq;
+ i__3[1] = 2, a__2[1] = " /";
+ s_cat(lineq, a__2, i__3, &c__2, (ftnlen)128);
+ c1omget_1.lastchar = FALSE_;
+ goto L1;
+ }
+ return 0;
+ }
+ if (*(unsigned char *)charq == ' ') {
+ goto L1;
+ } else if (*(unsigned char *)charq == '%' && a1ll_2.iccount == 1) {
+ a1ll_2.iccount = 128;
+ goto L1;
+
+/* Replacement 1/22/12 since gfortran 4.7 with -O was choking here! */
+
+/* else if ((ichar(charq).ge.97.and.ichar(charq).le.103) .or. */
+ } else if (i_indx("abcdefg", charq, (ftnlen)7, (ftnlen)1) > 0 || *(
+ unsigned char *)charq == 'r') {
+
+/* This is a note/rest. gotclef is only used for checking for clef before "/" */
+
+ if (cdot) {
+ goto L28;
+ }
+ if (c1omnotes_1.gotclef) {
+ c1omnotes_1.gotclef = FALSE_;
+ }
+ idotform = 0;
+ numnum = 0;
+ plusmin = FALSE_;
+L28:
+ ++a1ll_2.nnl[c1ommvl_1.ivx - 1];
+ if (a1ll_2.nnl[c1ommvl_1.ivx - 1] > 200) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, ">200 notes in line of mu"
+ "sic. Use smaller blocks!", (ftnlen)128, (ftnlen)48);
+ stop1_();
+ }
+ *(unsigned char *)dotq = 'x';
+
+/* Check if this is 'r ' and previous note was full-bar-pause */
+
+ i__1 = a1ll_2.iccount;
+/* Computing MAX */
+ i__4 = 1, i__5 = a1ll_2.nnl[c1ommvl_1.ivx - 1] - 1;
+/* Computing MAX */
+ i__6 = 1, i__7 = a1ll_2.nnl[c1ommvl_1.ivx - 1] - 1;
+ fulbrp = *(unsigned char *)charq == 'r' && s_cmp(lineq + i__1, " ",
+ a1ll_2.iccount + 1 - i__1, (ftnlen)1) == 0 && a1ll_2.nnl[
+ c1ommvl_1.ivx - 1] > 1 && a1ll_2.rest[c1ommvl_1.ivx + max(
+ i__4,i__5) * 24 - 25] && a1ll_2.nodur[c1ommvl_1.ivx + max(
+ i__6,i__7) * 24 - 25] == a1ll_2.lenbar;
+L2:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ ic = *(unsigned char *)durq;
+ if (ic <= 57 && ic >= 48) {
+
+/* Digit */
+
+ if (numnum == 0) {
+ c1omnotes_1.nnodur = ic - 48;
+ numnum = 1;
+ goto L2;
+ } else if (numnum == 1) {
+ if (*(unsigned char *)charq == 'r') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only one digit a"
+ "llowed after rest symbol \"r\"!", (ftnlen)128, (
+ ftnlen)45);
+ stop1_();
+ }
+ numnum = 2;
+ if (plusmin) {
+ s_wsle(&io___573);
+ e_wsle();
+ s_wsle(&io___574);
+ do_lio(&c__9, &c__1, "*********WARNING*********", (ftnlen)
+ 25);
+ e_wsle();
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Before version 1"
+ ".2, +/- was ignored if octave was!", (ftnlen)128,
+ (ftnlen)50);
+ s_wsle(&io___575);
+ do_lio(&c__9, &c__1, "explicitly specified. May need to"
+ " edit old editions", (ftnlen)52);
+ e_wsle();
+ }
+ goto L2;
+ } else {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, ">2 digits in note sy"
+ "mbol!", (ftnlen)128, (ftnlen)25);
+ stop1_();
+ }
+ } else if (*(unsigned char *)durq == 'd') {
+ *(unsigned char *)dotq = *(unsigned char *)durq;
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, "d", a1ll_2.iccount + 1 - i__1, (ftnlen)1)
+ == 0) {
+ c1omnotes_1.iddot = 1;
+ ++a1ll_2.iccount;
+
+/* Since we flow out, double dots won't work with other dot options */
+
+ }
+ i__1 = a1ll_2.iccount;
+ if (i_indx("+-", lineq + i__1, (ftnlen)2, a1ll_2.iccount + 1 -
+ i__1) > 0) {
+
+/* move a dot, provided a number follows. */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("0123456789-.", durq, (ftnlen)12, (ftnlen)1) == 0)
+ {
+
+/* Backup, exit the loop normally */
+
+ a1ll_2.iccount += -2;
+ goto L2;
+ }
+ readnum_(lineq, &a1ll_2.iccount, dumq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Vertical shift also */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("0123456789-.", durq, (ftnlen)12, (ftnlen)1) ==
+ 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected num"
+ "ber after 2nd +/- (shift dot)!", (ftnlen)128,
+ (ftnlen)42);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128,
+ (ftnlen)1);
+ }
+ --a1ll_2.iccount;
+ }
+ goto L2;
+ } else if (i_indx("<>", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Accidental shift */
+
+/* if (index('fsn',lineq(iccount-1:iccount-1)) .eq. 0) then */
+ i__1 = a1ll_2.iccount - 2;
+ if (i_indx("fsnA", lineq + i__1, (ftnlen)4, a1ll_2.iccount - 1 -
+ i__1) == 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Expected \"f\", \"s\", \"n\" o"
+ "r \"A\" before \"<\" or \">\"!", (ftnlen)128, (ftnlen)
+ 48);
+/* * 'Expected "f", "s", or "n" before "<" or ">"!') */
+ stop1_();
+ }
+ ipm = 1;
+ if (*(unsigned char *)durq == '<') {
+ ipm = -1;
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789.0", durq, (ftnlen)11, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected number afte"
+ "r </> (accidental shift)!", (ftnlen)128, (ftnlen)45);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ fnum = ipm * fnum;
+ if (fnum < -5.35f || fnum > 1.f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Horizontal accidental shift mu"
+ "st be >-5.35 and <1.0!", (ftnlen)128, (ftnlen)52);
+ stop1_();
+ }
+ --a1ll_2.iccount;
+ goto L2;
+ } else if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ if (*(unsigned char *)charq != 'r') {
+ i__1 = a1ll_2.iccount - 2;
+ if (i_indx("fsnA", lineq + i__1, (ftnlen)4, a1ll_2.iccount -
+ 1 - i__1) > 0) {
+ ipm = 1;
+ if (*(unsigned char *)durq == '-') {
+ ipm = -1;
+ }
+ i__1 = a1ll_2.iccount;
+ if (i_indx("0123456789", lineq + i__1, (ftnlen)10,
+ a1ll_2.iccount + 1 - i__1) > 0) {
+
+/* This may be start of accidental shift, but may be octave jump; then duration */
+
+ icsav = a1ll_2.iccount;
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* This is an accid shift since there's a 2nd consecutive signed number. */
+/* Check size of 1st number. */
+
+ if (fnum > 30.5f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__1, &i__4, "Vertical accid"
+ "ental shift must be less than 31!", (
+ ftnlen)128, (ftnlen)47);
+ stop1_();
+ }
+ ipm = 1;
+ if (*(unsigned char *)durq == '-') {
+ ipm = -1;
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)
+ 128, (ftnlen)1);
+ if (i_indx("1234567890.", durq, (ftnlen)11, (
+ ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expe"
+ "cted 2nd number of accidental shift)!"
+ , (ftnlen)128, (ftnlen)41);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (
+ ftnlen)128, (ftnlen)1);
+ fnum = ipm * fnum;
+ if (fnum < -5.35f || fnum > 1.f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__1, &i__4, "Horiz. acciden"
+ "tal shift must be >-5.35 and <1.0!", (
+ ftnlen)128, (ftnlen)48);
+ stop1_();
+ }
+ --a1ll_2.iccount;
+ goto L2;
+ } else {
+
+/* Not accid shift, reset, then flow out */
+
+ a1ll_2.iccount = icsav;
+ }
+ }
+ }
+ plusmin = TRUE_;
+ if (numnum == 2) {
+ s_wsle(&io___580);
+ e_wsle();
+ s_wsle(&io___581);
+ do_lio(&c__9, &c__1, "*********WARNING*********", (ftnlen)
+ 25);
+ e_wsle();
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Before version 1"
+ ".2, +/- was ignored if octave was!", (ftnlen)128,
+ (ftnlen)50);
+ s_wsle(&io___582);
+ do_lio(&c__9, &c__1, "explicitly specified. May need to"
+ " edit old editions", (ftnlen)52);
+ e_wsle();
+ }
+ goto L2;
+
+/* It's a rest containing +|- . Must refer to a vertical shift. Read past. */
+
+ } else {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ readnum_(lineq, &a1ll_2.iccount, durq, &dum, (ftnlen)128, (
+ ftnlen)1);
+ --a1ll_2.iccount;
+ goto L2;
+ }
+/* else if (index('ulare',durq) .gt. 0) then */
+ } else if (i_indx("ularec", durq, (ftnlen)6, (ftnlen)1) > 0) {
+ goto L2;
+ } else if (*(unsigned char *)durq == 'S') {
+
+/* Stemlength change */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx(".0123456789:", durq, (ftnlen)12, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "There must be a numb"
+ "er or colon here!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ if (*(unsigned char *)durq == ':') {
+ if (! comkeys_1.stickys) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Turned off stick"
+ "y stemshrinks without turning on!", (ftnlen)128, (
+ ftnlen)49);
+ stop1_();
+ }
+ comkeys_1.stickys = FALSE_;
+ goto L2;
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &dum, (ftnlen)128, (ftnlen)
+ 1);
+ if (dum < .5f || dum > 4.f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Stemlength shortening must be "
+ "from .5 to 4!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ if (*(unsigned char *)durq != ':') {
+ --a1ll_2.iccount;
+ } else {
+ if (comkeys_1.stickys) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Turned on sticky"
+ " stemshrinks when already on!", (ftnlen)128, (
+ ftnlen)45);
+ stop1_();
+ }
+ comkeys_1.stickys = TRUE_;
+ }
+ goto L2;
+ } else if (i_indx("fsn", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Check for midi-only accid. CANNOT coesist with accidental position tweaks, so */
+/* MUST come right after "f,s,n" */
+
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, "i", a1ll_2.iccount + 1 - i__1, (ftnlen)1)
+ == 0) {
+ ++a1ll_2.iccount;
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == 'p') {
+ fulbrp = *(unsigned char *)charq == 'r';
+ if (! fulbrp) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "The option \"p\" onl"
+ "y works with \"r\" (rest)!", (ftnlen)128, (ftnlen)42);
+ stop1_();
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == 'b') {
+ if (*(unsigned char *)charq != 'r') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "You entered \"b\"; I"
+ " expected \"rb\"!", (ftnlen)128, (ftnlen)33);
+ stop1_();
+ } else if (numnum == 2) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "You entered \"r\" &"
+ " \"b\" with two numbers!", (ftnlen)128, (ftnlen)39);
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == 'x') {
+
+/* Xtuplet. Count number of doubled notes (for unequal xtups) */
+
+ if (bit_test(c1ommvl_1.nacc[c1ommvl_1.ivx + a1ll_2.nnl[
+ c1ommvl_1.ivx - 1] * 24 - 25],18)) {
+ ndoub = 1;
+ } else {
+ ndoub = 0;
+ }
+
+/* Will set all durations to 0 except last one. */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "First char after \""
+ "x\" in xtuplet must be \"1\"-\"9\"!", (ftnlen)128, (
+ ftnlen)48);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (fnum > 99.f) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Xtuplet cannot have "
+ "more than 99 notes!", (ftnlen)128, (ftnlen)39);
+ stop1_();
+ } else if (i_indx(" DFnd", durq, (ftnlen)5, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only legal character"
+ "s here are \" \",\"D\",\"F\",\"n\"!", (ftnlen)128, (
+ ftnlen)47);
+ stop1_();
+ }
+
+/* End of mandatory xtup inputs. Check for options. Note D,F,d must precede n. */
+
+ if (i_indx("DF", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Double xtup note to make an un= xtup. Here, number already set, but may also */
+/* have used this before number was set. */
+
+ c1ommvl_1.nacc[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = bit_set(c1ommvl_1.nacc[c1ommvl_1.ivx +
+ a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 - 25],18);
+ ndoub = 1;
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ } else if (*(unsigned char *)durq == 'd') {
+ c1ommvl_1.nacc[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = bit_set(c1ommvl_1.nacc[c1ommvl_1.ivx +
+ a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 - 25],27);
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ }
+ if (*(unsigned char *)durq == 'n') {
+
+/* Number alteration stuff. After 'n', require '+-123456789fs ', no more 'DF'. */
+
+ numshft = 0;
+L30:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)durq == 'f') {
+ goto L30;
+ } else if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++numshft;
+ if (numshft == 3) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only 2 shift"
+ "s are allowed after \"n\" in xtup!", (ftnlen)
+ 128, (ftnlen)44);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("0123456789.", durq, (ftnlen)11, (ftnlen)1) ==
+ 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "This charact"
+ "er should be a digit or \".\"!", (ftnlen)128,
+ (ftnlen)40);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &snum, (ftnlen)128,
+ (ftnlen)1);
+ --a1ll_2.iccount;
+ if (numshft == 1 && snum > 15.1f || numshft == 2 && snum
+ > 1.51f) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Shift number"
+ " after \"n\" in xtup is out of range!", (
+ ftnlen)128, (ftnlen)47);
+ stop1_();
+ }
+ goto L30;
+ } else if (*(unsigned char *)durq == 's') {
+
+/* Slope alteration for bracket */
+
+ getchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "For slope ad"
+ "justment, this character must be \"+\" or \"-"
+ "\"!", (ftnlen)128, (ftnlen)56);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0)
+ {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "This charact"
+ "er should be a digit!", (ftnlen)128, (ftnlen)
+ 33);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &snum, (ftnlen)128,
+ (ftnlen)1);
+ --a1ll_2.iccount;
+ if (i_nint(&snum) > 15) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Slope adjust"
+ "ment cannot exceed 15!", (ftnlen)128, (ftnlen)
+ 34);
+ stop1_();
+ }
+ goto L30;
+ } else if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) >
+ 0) {
+
+/* Unsigned integer => alternate printed number */
+
+ readnum_(lineq, &a1ll_2.iccount, durq, &snum, (ftnlen)128,
+ (ftnlen)1);
+ if (snum > 15.1f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Alternate xtup number "
+ "after \"n\" must be <16!", (ftnlen)128, (
+ ftnlen)44);
+ stop1_();
+ }
+ --a1ll_2.iccount;
+ goto L30;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal characte"
+ "r after \"n\" in xtup!", (ftnlen)128, (ftnlen)36);
+ stop1_();
+ }
+ }
+ ntup = i_nint(&fnum);
+ i__1 = ntup;
+ for (itup = 2; itup <= i__1; ++itup) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = 0;
+ ++a1ll_2.nnl[c1ommvl_1.ivx - 1];
+L110:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)durq == ' ') {
+ goto L110;
+ } else if (*(unsigned char *)durq == 'o') {
+
+/* Ornament in xtup. "o" symbol must come AFTER the affected note */
+
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("(stmx+Tup._)e:>^bc", dumq, (ftnlen)18, (
+ ftnlen)1) == 0) {
+ if (i_indx("fg", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Fermata "
+ "or segno not allowed in xtuplet!", (
+ ftnlen)128, (ftnlen)40);
+ } else {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Illegal "
+ "ornament!", (ftnlen)128, (ftnlen)17);
+ }
+ stop1_();
+ }
+ if (*(unsigned char *)dumq == 'T') {
+
+/* Trill. may be followed by 't' and/or number. read 'til blank */
+
+L29:
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)dumq != ' ') {
+ goto L29;
+ }
+ } else if (*(unsigned char *)dumq == 'e') {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("sfn?", dumq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Illegal "
+ "character after \"e\" in edit. accid. sy"
+ "mbol!", (ftnlen)128, (ftnlen)51);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)dumq == '?') {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)
+ 128, (ftnlen)1);
+ }
+ } else if (*(unsigned char *)dumq == ':') {
+ i__4 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__4, " ", a1ll_2.iccount + 1 -
+ i__4, (ftnlen)1) != 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "\":\" mu"
+ "st be followed by blank in \"o: \"!", (
+ ftnlen)128, (ftnlen)39);
+ stop1_();
+ } else if (! comkeys_1.ornrpt) {
+ i__4 = a1ll_2.iccount - 1;
+ i__5 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__4, &i__5, "Turned off repeate"
+ "d ornaments before they were on!", (
+ ftnlen)128, (ftnlen)50);
+ stop1_();
+ }
+ comkeys_1.ornrpt = FALSE_;
+ } else {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ }
+ if (i_indx("+- :", dumq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Illegal char"
+ "acter in ornament symbol!", (ftnlen)128, (
+ ftnlen)37);
+ stop1_();
+ }
+ if (*(unsigned char *)dumq == ':') {
+ i__4 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__4, " ", a1ll_2.iccount + 1 -
+ i__4, (ftnlen)1) != 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "\":\" mu"
+ "st be followed by blank in \"o: \"!", (
+ ftnlen)128, (ftnlen)39);
+ stop1_();
+ } else if (comkeys_1.ornrpt) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Turned o"
+ "n repeated ornaments but already on!", (
+ ftnlen)128, (ftnlen)44);
+ stop1_();
+ }
+ comkeys_1.ornrpt = TRUE_;
+ }
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+ i__4 = a1ll_2.iccount;
+ if (i_indx("0123456789", lineq + i__4, (ftnlen)10,
+ a1ll_2.iccount + 1 - i__4) == 0) {
+ i__4 = a1ll_2.iccount + 1;
+ i__5 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__4, &i__5, "There should be an"
+ " integer here!", (ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ if (*(unsigned char *)durq == ':') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Cannot s"
+ "hift AND repeat an ornament!", (ftnlen)
+ 128, (ftnlen)36);
+ stop1_();
+ }
+
+/* 12/7/03 Allow horizontal shift on any ornament, not just breath and ceas. */
+
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ i__4 = a1ll_2.iccount;
+ if (i_indx(".0123456789", lineq + i__4, (ftnlen)
+ 11, a1ll_2.iccount + 1 - i__4) == 0) {
+ i__4 = a1ll_2.iccount + 1;
+ i__5 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__4, &i__5, "There should b"
+ "e a number here!", (ftnlen)128, (
+ ftnlen)30);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (
+ ftnlen)128, (ftnlen)1);
+ }
+ }
+ goto L110;
+ } else if (i_indx("st(){}", durq, (ftnlen)6, (ftnlen)1) > 0) {
+
+/* Slur in xtup */
+
+ iposn = 0;
+ numint = 0;
+L15:
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ ++iposn;
+ if (i_indx("udlbfnht", dumq, (ftnlen)8, (ftnlen)1) > 0) {
+ if (*(unsigned char *)dumq == 't' && *(unsigned char *
+ )durq == 't') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Cannot u"
+ "se \"t\" as an option on a tie!", (ftnlen)
+ 128, (ftnlen)37);
+ stop1_();
+ }
+ goto L15;
+ } else if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++numint;
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ if (numint == 1) {
+ if (i_nint(&fnum) > 30) {
+ i__4 = a1ll_2.iccount - 1;
+ i__5 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__4, &i__5, "Magnitude of s"
+ "lur height adjustment cannot exceed "
+ "30!", (ftnlen)128, (ftnlen)53);
+ stop1_();
+ }
+ } else if (numint == 2) {
+ if (dabs(fnum) > 6.3f) {
+ i__4 = a1ll_2.iccount - 1;
+ i__5 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__4, &i__5, "Slur horiz shi"
+ "ft must be in the range (-6.3,6.3)!",
+ (ftnlen)128, (ftnlen)49);
+ stop1_();
+ }
+ } else {
+
+/* Third signed integer, must be a midslur or curve spec. */
+
+ if (dabs(fnum) > 31.f) {
+ i__4 = a1ll_2.iccount - 1;
+ i__5 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__4, &i__5, "Slur midheight"
+ " must be in the range (-31,31)!", (
+ ftnlen)128, (ftnlen)45);
+ stop1_();
+ }
+ if (*(unsigned char *)durq == ':') {
+
+/* Expecting curve parameters. Get two numbers */
+
+ for (i__ = 1; i__ <= 2; ++i__) {
+ ++a1ll_2.iccount;
+ fnum = (real) (*(unsigned char *)&lineq[
+ a1ll_2.iccount - 1] - 48);
+ if ((r__1 = fnum - 3.5f, dabs(r__1)) >
+ 3.6f) {
+ i__4 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4,
+ "Slur curve parameter must "
+ "be in range (0,7)!", (ftnlen)
+ 128, (ftnlen)44);
+ stop1_();
+ }
+/* L40: */
+ }
+ ++a1ll_2.iccount;
+ }
+ }
+ --a1ll_2.iccount;
+ goto L15;
+ } else if (*(unsigned char *)dumq == 's') {
+
+/* What follows should be one or two signed numbers for adjustment of line break */
+/* slur, end of 1st segment or start of second. */
+
+ if (comslur_1.fontslur) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "May not "
+ "use linebreak slur options with font-bas"
+ "ed slurs!", (ftnlen)128, (ftnlen)57);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "This cha"
+ "racter must be \"+\" or \"-\"!", (ftnlen)
+ 128, (ftnlen)34);
+ stop1_();
+ }
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, dumq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ if (i_nint(&fnum) > 30) {
+ i__4 = a1ll_2.iccount - 1;
+ i__5 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__4, &i__5, "Magnitude of slur "
+ "height adjustment cannot exceed 30!", (
+ ftnlen)128, (ftnlen)53);
+ stop1_();
+ }
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, dumq, &fnum, (
+ ftnlen)128, (ftnlen)1);
+ if (dabs(fnum) > 6.3f) {
+ i__4 = a1ll_2.iccount - 1;
+ i__5 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__4, &i__5, "Slur horiz shi"
+ "ft must be in range (-6.3,6.3)!", (
+ ftnlen)128, (ftnlen)45);
+ stop1_();
+ }
+ }
+ --a1ll_2.iccount;
+ goto L15;
+ } else if (*(unsigned char *)dumq == 'H' && iposn > 1) {
+ i__4 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__4, "H", a1ll_2.iccount + 1 -
+ i__4, (ftnlen)1) == 0) {
+ ++a1ll_2.iccount;
+ }
+ goto L15;
+ } else if (*(unsigned char *)dumq == 'p') {
+
+/* local change in postscript slur/tie adjustment default */
+
+ if (comslur_1.fontslur) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Must use"
+ " postscript slurs (\"Ap\") to use this o"
+ "ption!", (ftnlen)128, (ftnlen)52);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Expect"
+ "ed \"+\" or \"-\" here!", (ftnlen)128, (
+ ftnlen)25);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("st", dumq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Expect"
+ "ed \"s\" or \"t\" here!", (ftnlen)128, (
+ ftnlen)25);
+ stop1_();
+ }
+ goto L15;
+ } else if (*(unsigned char *)dumq != ' ') {
+ ic = *(unsigned char *)dumq;
+ if (ic >= 48 && ic <= 57 || ic >= 65 && ic <= 90) {
+ if (iposn == 1) {
+ if (*(unsigned char *)durq == 't' &&
+ comslur_1.fontslur) {
+ i__4 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4,
+ "Slur ID not allowed on non-post"
+ "script tie!", (ftnlen)128, (
+ ftnlen)42);
+ stop1_();
+ }
+ goto L15;
+ }
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Slur ID "
+ "must be 2nd character in slur symbol!", (
+ ftnlen)128, (ftnlen)45);
+ stop1_();
+ }
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Illegal char"
+ "acter in slur symbol!", (ftnlen)128, (ftnlen)
+ 33);
+ stop1_();
+ }
+ goto L110;
+ } else if (i_indx("0123456789#-nx_", durq, (ftnlen)15, (
+ ftnlen)1) > 0) {
+
+/* We have a figure. Only allow on 1st note of xtup */
+
+ if (itup != 2) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Figure in xt"
+ "up only allowed on 1st note!", (ftnlen)128, (
+ ftnlen)40);
+ stop1_();
+ } else if (*(unsigned char *)durq == 'x') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "No floating "
+ "figures in xtuplets!", (ftnlen)128, (ftnlen)
+ 32);
+ stop1_();
+ }
+ if (compage_1.usefig && c1ommvl_1.ivx == 1) {
+ *ifig = 1;
+ }
+L26:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("0123456789#-n_.:", durq, (ftnlen)16, (ftnlen)
+ 1) > 0) {
+ goto L26;
+ } else if (*(unsigned char *)durq == 's') {
+ comligfont_1.isligfont = TRUE_;
+ goto L26;
+ } else if (*(unsigned char *)durq == '+') {
+
+/* vertical offset, must be integer then blank */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) !=
+ 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Integer "
+ "for vertical offset expected here!", (
+ ftnlen)128, (ftnlen)42);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Vertical"
+ " offset must terminate figure!", (ftnlen)
+ 128, (ftnlen)38);
+ stop1_();
+ }
+ --a1ll_2.iccount;
+ goto L26;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Illegal char"
+ "acter in figure in xtuplet!", (ftnlen)128, (
+ ftnlen)39);
+ stop1_();
+ }
+ goto L110;
+ } else if (*(unsigned char *)durq == 'G') {
+ ngr = 1;
+L79:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("123456789", charq, (ftnlen)9, (ftnlen)1) > 0)
+ {
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ ngr = i_nint(&fnum);
+ --a1ll_2.iccount;
+ goto L79;
+ } else if (i_indx("AWulxs", charq, (ftnlen)6, (ftnlen)1)
+ > 0) {
+ goto L79;
+ } else if (*(unsigned char *)charq == 'm') {
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128,
+ (ftnlen)1);
+ if (i_indx("01234", charq, (ftnlen)5, (ftnlen)1) == 0)
+ {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "A digit "
+ "less than 5 must follow \"m\" in a grace"
+ " note!", (ftnlen)128, (ftnlen)52);
+ stop1_();
+ }
+ goto L79;
+ } else if (*(unsigned char *)charq == 'X') {
+
+/* Space before main note */
+
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128,
+ (ftnlen)1);
+ if (i_indx("0123456789.", charq, (ftnlen)11, (ftnlen)
+ 1) > 0) {
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (
+ ftnlen)128, (ftnlen)1);
+ --a1ll_2.iccount;
+ goto L79;
+ } else {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "A number"
+ " must follow \"X\" in a grace note!", (
+ ftnlen)128, (ftnlen)41);
+ stop1_();
+ }
+ }
+
+/* At this point, charq is first note name in rest (grace?) */
+
+ i__4 = ngr;
+ for (igr = 1; igr <= i__4; ++igr) {
+ numnum = 0;
+ if (igr > 1) {
+L75:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)
+ 128, (ftnlen)1);
+ if (*(unsigned char *)charq == ' ') {
+ goto L75;
+ }
+ }
+ if (i_indx("abcdefg", charq, (ftnlen)7, (ftnlen)1) ==
+ 0) {
+ i__5 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__5, "In grace"
+ ", expected \"a\"-\"g\"!", (ftnlen)128, (
+ ftnlen)27);
+ stop1_();
+ }
+L78:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128,
+ (ftnlen)1);
+ if (*(unsigned char *)charq != ' ') {
+ if (i_indx("1234567", charq, (ftnlen)7, (ftnlen)1)
+ > 0) {
+ if (numnum == 1) {
+ i__5 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__5,
+ "Only one of \"+-1234567\" allow"
+ "ed here in grace!", (ftnlen)128, (
+ ftnlen)46);
+ stop1_();
+ }
+ numnum = 1;
+ goto L78;
+ } else if (i_indx("+-nfs", charq, (ftnlen)5, (
+ ftnlen)1) > 0) {
+ goto L78;
+ }
+
+/* Digits are possible octave numbers */
+
+ i__5 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__5, "Illegal "
+ "character after note name in grace!", (
+ ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+/* L71: */
+ }
+ goto L110;
+ } else /* if(complicated condition) */ {
+ chax_(ch__2, (ftnlen)1, &c__92);
+ if (*(unsigned char *)durq == *(unsigned char *)&ch__2[0])
+ {
+ chklit_(lineq, &a1ll_2.iccount, &literr, (ftnlen)128);
+ if (literr > 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, literq + (
+ literr - 1) * 51, (ftnlen)128, (ftnlen)51)
+ ;
+ stop1_();
+ }
+ goto L110;
+ } else if (*(unsigned char *)durq == 'M') {
+
+/* Temporary trap until I get around putting this in pmxb */
+
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Macros not y"
+ "et allowed in xtuplets!", (ftnlen)128, (
+ ftnlen)35);
+ stop1_();
+ } else if (*(unsigned char *)durq == 'X') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ g1etx_(lineq, &a1ll_2.iccount, &c_false, &
+ comkeys_1.shifton, &i__4, &c1omnotes_1.udsp[
+ c1omnotes_1.ibarcnt + a1ll_2.nbars], &
+ c1omnotes_1.wheadpt, (ftnlen)128);
+ goto L110;
+ } else if (*(unsigned char *)durq == 'z') {
+
+/* Chord note in xtup. Read past for now. */
+
+L33:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+ goto L33;
+ }
+ goto L110;
+ } else if (*(unsigned char *)durq == 'D') {
+
+/* Dynamic mark */
+
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ checkdyn_(lineq, &a1ll_2.iccount, &i__4, (ftnlen)128);
+ goto L110;
+ } else if (*(unsigned char *)durq == '%') {
+ if (a1ll_2.iccount != 1) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Comment "
+ "must have \"%\" in column 1!", (ftnlen)
+ 128, (ftnlen)34);
+ stop1_();
+ }
+ a1ll_2.iccount = 128;
+ goto L110;
+ } else if (*(unsigned char *)durq == '?') {
+ getchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == ' ') {
+ --a1ll_2.iccount;
+ goto L110;
+ }
+ if (*(unsigned char *)durq != '-') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Expectin"
+ "g \"-\"", (ftnlen)128, (ftnlen)13);
+ stop1_();
+ }
+ getchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("0123456789.", durq, (ftnlen)11, (ftnlen)1)
+ == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Expectin"
+ "g number", (ftnlen)128, (ftnlen)16);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ --a1ll_2.iccount;
+ goto L110;
+/* +++ */
+ } else /* if(complicated condition) */ {
+ i__4 = a1ll_2.iccount;
+ i__5 = a1ll_2.iccount + 1;
+ if (*(unsigned char *)durq == ']' && s_cmp(lineq +
+ i__4, "[", a1ll_2.iccount + 1 - i__4, (ftnlen)
+ 1) == 0 && s_cmp(lineq + i__5, " ",
+ a1ll_2.iccount + 2 - i__5, (ftnlen)1) == 0) {
+ a1ll_2.iccount += 2;
+ goto L110;
+/* +++ */
+ }
+ }
+ }
+
+/* End of xtup options. At this point symbol can only be note or rest */
+
+ if (i_indx("abcdefgr", durq, (ftnlen)8, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "In xtup, this ch"
+ "aracter is not allowed!", (ftnlen)128, (ftnlen)39)
+ ;
+ stop1_();
+ } else if (*(unsigned char *)durq == 'r' && itup == ntup) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Sorry, PMX canno"
+ "t end an xtuplet with a rest!", (ftnlen)128, (
+ ftnlen)45);
+ stop1_();
+ }
+L7:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("2345678ulcb", durq, (ftnlen)11, (ftnlen)1) > 0) {
+ goto L7;
+ } else if (i_indx("sfn", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Check for MIDI-only accidental. Cannot coexist with accid. pos'n shift. */
+
+ i__4 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__4, "i", a1ll_2.iccount + 1 - i__4, (
+ ftnlen)1) == 0) {
+ ++a1ll_2.iccount;
+ }
+ goto L7;
+ } else if (i_indx("+-<>", durq, (ftnlen)4, (ftnlen)1) > 0) {
+
+/* May have either octave jump or shifted accid. on main xtup note */
+
+ i__4 = a1ll_2.iccount;
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0 &&
+ i_indx("01234567890", lineq + i__4, (ftnlen)11,
+ a1ll_2.iccount + 1 - i__4) == 0) {
+ goto L7;
+ }
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128,
+ (ftnlen)1);
+ --a1ll_2.iccount;
+ goto L7;
+ } else if (i_indx("DF", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Double an xtup note to make an unequal xtup */
+
+ c1ommvl_1.nacc[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx -
+ 1] * 24 - 25] = bit_set(c1ommvl_1.nacc[
+ c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25],18);
+ ++ndoub;
+ goto L7;
+ } else if (*(unsigned char *)durq == 'd') {
+ c1ommvl_1.nacc[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx -
+ 1] * 24 - 25] = bit_set(c1ommvl_1.nacc[
+ c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25],27);
+ goto L7;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Illegal option o"
+ "n xtuplet note!", (ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+ if (itup == ntup - ndoub) {
+ goto L3;
+ }
+/* L6: */
+ }
+L3:
+
+/* 6==End of loop for xtuplet input */
+
+ ;
+ } else if (*(unsigned char *)durq == 'm') {
+
+/* Multi-bar rest: next 1 or two digits are # of bars. */
+
+ if (a1ll_2.itsofar[a1ll_2.iv - 1] % a1ll_2.lenbar != 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Multibar rest must start at be"
+ "ginning of bar!", (ftnlen)128, (ftnlen)45);
+ stop1_();
+ } else if (a1ll_2.iv == 1 && c1omnotes_1.ibarmbr > 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Multibar rest only OK at one t"
+ "ime per block!", (ftnlen)128, (ftnlen)44);
+ stop1_();
+ }
+
+/* For some purposes, pretend its one bar only */
+
+ a1ll_2.nodur[a1ll_2.iv + a1ll_2.nnl[a1ll_2.iv - 1] * 24 - 25] =
+ a1ll_2.lenbar;
+ c1omnotes_1.ibarmbr = a1ll_2.nbars + 1;
+ c1omnotes_1.mbrest = 0;
+/* 20 call g1etchar(lineq,iccount,durq) */
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected an integer "
+ "after \"rm\"!", (ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ c1omnotes_1.mbrest = i_nint(&fnum);
+ --a1ll_2.iccount;
+/* if (ichar(durq).ge.48.and.ichar(durq).le.57) then */
+/* mbrest = 10*mbrest+ichar(durq)-48 */
+/* go to 20 */
+/* end if */
+ if (a1ll_2.nv > 1) {
+ if (a1ll_2.iv == 1) {
+ comkeys_1.mbrestsav = c1omnotes_1.mbrest;
+ } else {
+ if (c1omnotes_1.mbrest != comkeys_1.mbrestsav) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must enter s"
+ "ame multi-bar rest in every voice!", (ftnlen)
+ 128, (ftnlen)46);
+ stop1_();
+ }
+ }
+
+/* Zero out mbrestsav so can check at end of input block whether */
+/* all voices have one */
+
+ if (a1ll_2.iv == a1ll_2.nv) {
+ comkeys_1.mbrestsav = 0;
+ }
+ }
+ if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character af"
+ "ter \"rm\"!", (ftnlen)128, (ftnlen)29);
+ stop1_();
+ }
+ } else if (*(unsigned char *)durq == '.') {
+
+/* Dotted pattern. Close out note. Mult time by 3/4. */
+/* Set time for next note to 1/4. Start the note. */
+
+ idotform = 1;
+ } else if (*(unsigned char *)durq == ',') {
+ idotform = 3;
+
+/* Now flow to duration setting, as if durq=' ' */
+
+ } else if (i_indx("oL", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Suppress full bar rest, or look left for height */
+
+ if (*(unsigned char *)charq != 'r') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"o\",\"L\" options "
+ "only legal for rest, not note!", (ftnlen)128, (ftnlen)
+ 46);
+ stop1_();
+ }
+ goto L2;
+ } else if (i_indx("DF", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Double note for xtup. Must check here in case "D" or "F" came before "x" or on */
+/* last note of xtup. Need to flag it in pmxa since affects horiz. spacing. */
+
+ c1ommvl_1.nacc[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24
+ - 25] = bit_set(c1ommvl_1.nacc[c1ommvl_1.ivx + a1ll_2.nnl[
+ c1ommvl_1.ivx - 1] * 24 - 25],18);
+ goto L2;
+ } else if (*(unsigned char *)durq == 'A') {
+
+/* Main note accidental option */
+
+ getchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("o+-<>", durq, (ftnlen)5, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"o\",+\",\"-\",\""
+ "<\",\">\" are the only legal options here!", (ftnlen)
+ 128, (ftnlen)51);
+ stop1_();
+ }
+
+/* Need more stuff here */
+
+ if (*(unsigned char *)durq != 'o') {
+
+/* Back up 1, flow out, will get +|-|<|> next loop preceded by "A", and will */
+/* proceed to number input checking */
+
+ --a1ll_2.iccount;
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character!", (
+ ftnlen)128, (ftnlen)18);
+ s_wsle(&io___595);
+ do_lio(&c__9, &c__1, "ASCII code:", (ftnlen)11);
+ i__1 = *(unsigned char *)durq;
+ do_lio(&c__3, &c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsle();
+ stop1_();
+ }
+
+/* End of block for note options. */
+
+/* Set the duration */
+
+ if (idotform > 0) {
+ if (idotform == 1) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = i1fnodur_(&c1omnotes_1.nnodur, dotq, (
+ ftnlen)1) * 3 / 2;
+ } else if (idotform == 2) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = a1ll_2.nodur[c1ommvl_1.ivx + (a1ll_2.nnl[
+ c1ommvl_1.ivx - 1] - 1) * 24 - 25] / 3;
+ } else if (idotform == 3) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = i1fnodur_(&c1omnotes_1.nnodur, dotq, (
+ ftnlen)1);
+ } else if (idotform == 4) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = a1ll_2.nodur[c1ommvl_1.ivx + (a1ll_2.nnl[
+ c1ommvl_1.ivx - 1] - 1) * 24 - 25] / 2;
+ }
+ } else if (c1omnotes_1.ibarmbr != a1ll_2.nbars + 1 && ! fulbrp) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 -
+ 25] = i1fnodur_(&c1omnotes_1.nnodur, dotq, (ftnlen)1);
+
+/* Check for double dot */
+
+ if (c1omnotes_1.iddot == 1) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[
+ c1ommvl_1.ivx - 1] * 24 - 25] * 7 / 6;
+ c1omnotes_1.iddot = 0;
+ }
+ } else if (fulbrp) {
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 -
+ 25] = a1ll_2.lenbar;
+
+/* Use a one-line function to set nnodur. It gives inverse of ifnodur. */
+
+ i__1 = (integer) (log(a1ll_2.lenbar + .1f) / .69315f) + 48;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ c1omnotes_1.nnodur = i_indx("62514x0x37", ch__2, (ftnlen)10, (
+ ftnlen)1) - 1;
+ fulbrp = FALSE_;
+ }
+ a1ll_2.rest[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 - 25] =
+ *(unsigned char *)charq == 'r';
+
+/* If inside forced beam, check if note is beamable */
+
+ if (c1omget_1.fbon) {
+ if (a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] < 16) {
+ goto L120;
+ }
+ if (a1ll_2.nnl[c1ommvl_1.ivx - 1] > 1) {
+ if (a1ll_2.nodur[c1ommvl_1.ivx + (a1ll_2.nnl[c1ommvl_1.ivx -
+ 1] - 1) * 24 - 25] == 0) {
+ goto L120;
+ }
+ }
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Unbeamable thing in forc"
+ "ed beam!", (ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+L120:
+
+/* Get number of prior bars for later check on whether note spans bar line */
+
+ nbb4 = a1ll_2.itsofar[c1ommvl_1.ivx - 1] / a1ll_2.lenbar;
+ a1ll_2.itsofar[c1ommvl_1.ivx - 1] += a1ll_2.nodur[c1ommvl_1.ivx +
+ a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 - 25];
+ if (a1ll_2.itsofar[c1ommvl_1.ivx - 1] % a1ll_2.lenbar == 0) {
+ ++a1ll_2.nbars;
+ if (comkeys_1.shifton) {
+ comkeys_1.barend = TRUE_;
+ }
+
+/* Will check barend when 1st note of next bar is entered. */
+
+ if (a1ll_2.nbars > 15) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Cannot have more tha"
+ "n 15 bars in an input block!", (ftnlen)128, (ftnlen)
+ 48);
+ stop1_();
+ }
+ a1ll_2.nib[c1ommvl_1.ivx + a1ll_2.nbars * 24 - 25] = a1ll_2.nnl[
+ c1ommvl_1.ivx - 1];
+ if (a1ll_2.firstline && a1ll_2.lenbar != a1ll_2.lenbr1) {
+
+/* Just finished the pickup bar for this voice. */
+
+ if (a1ll_2.itsofar[c1ommvl_1.ivx - 1] != a1ll_2.lenbr0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Pickup bar lengt"
+ "h disagrees with mtrnum0!", (ftnlen)128, (ftnlen)
+ 41);
+ stop1_();
+ }
+ a1ll_2.lenbar = a1ll_2.lenbr1;
+ a1ll_2.itsofar[c1ommvl_1.ivx - 1] = 0;
+ }
+ } else if (comkeys_1.barend) {
+ if (comkeys_1.shifton) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Bar ended with user-"
+ "defined shift still on!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ comkeys_1.barend = FALSE_;
+ } else if (a1ll_2.itsofar[c1ommvl_1.ivx - 1] / a1ll_2.lenbar > nbb4) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &i__1, &i__4, "This note spans a bar line!", (
+ ftnlen)128, (ftnlen)27);
+ stop1_();
+ }
+ if (idotform == 1 || idotform == 3) {
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("abcedfgr", charq, (ftnlen)8, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected note name o"
+ "r \"r\" here!", (ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+ ++idotform;
+ numnum = 1;
+ goto L28;
+ }
+
+/* End of sub block for note-rest */
+
+ } else if (*(unsigned char *)charq == 'z') {
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("abcdefg", charq, (ftnlen)7, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected chord note name"
+ " here!", (ftnlen)128, (ftnlen)30);
+ stop1_();
+ }
+L25:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+/* if (index('dre12345678',durq) .gt. 0) then */
+ if (i_indx("dre12345678c", durq, (ftnlen)12, (ftnlen)1) > 0) {
+ goto L25;
+ } else if (i_indx("fsn", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Check for midi-only accid. CANNOT coesist with accidental position tweaks, so */
+/* MUST come right after "f,s,n" */
+
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, "i", a1ll_2.iccount + 1 - i__1, (ftnlen)1)
+ == 0) {
+ ++a1ll_2.iccount;
+ }
+ goto L25;
+ } else if (*(unsigned char *)durq == 'A') {
+ i__1 = a1ll_2.iccount - 2;
+ if (i_indx("fsn", lineq + i__1, (ftnlen)3, a1ll_2.iccount - 1 -
+ i__1) == 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Must have \"f,s,n\" before \""
+ "A\" in chord note!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ goto L25;
+ } else if (i_indx("<>", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ i__1 = a1ll_2.iccount - 2;
+ if (i_indx("fsnA", lineq + i__1, (ftnlen)4, a1ll_2.iccount - 1 -
+ i__1) == 0) {
+/* if (index('fsncA',lineq(iccount-1:iccount-1)) .eq. 0) then ! Causes problems */
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Must have \"f,s,n,A\" before"
+ " \"<\" or \">\"!", (ftnlen)128, (ftnlen)38);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("1234567890.", durq, (ftnlen)11, (ftnlen)1) == 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Expected a number to start her"
+ "e for accidental shift!", (ftnlen)128, (ftnlen)53);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ --a1ll_2.iccount;
+ goto L25;
+ } else if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ i__1 = a1ll_2.iccount;
+ if (i_indx("1234567890.", lineq + i__1, (ftnlen)11,
+ a1ll_2.iccount + 1 - i__1) == 0) {
+ goto L25;
+ }
+
+/* Number or '.' (durq) follows +/- . Get it. */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ i__1 = a1ll_2.iccount;
+ if (*(unsigned char *)durq == '.' && i_indx("1234567890", lineq +
+ i__1, (ftnlen)10, a1ll_2.iccount + 1 - i__1) == 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "\".\" here must be followed by"
+ " a digit!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ } else /* if(complicated condition) */ {
+ i__1 = a1ll_2.iccount - 3;
+ if (i_indx("sfndA", lineq + i__1, (ftnlen)5, a1ll_2.iccount -
+ 2 - i__1) == 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Number after +/- must foll"
+ "ow \"d,s,f,n,A\"!", (ftnlen)128, (ftnlen)41);
+ stop1_();
+ }
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ --a1ll_2.iccount;
+ goto L25;
+ }
+
+/* 2nd +/- */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == '.') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ }
+ if (i_indx("1234567890", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Expected a number here!", (
+ ftnlen)128, (ftnlen)23);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ --a1ll_2.iccount;
+ goto L25;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character in cho"
+ "rd note!", (ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == 'G') {
+ ngr = 1;
+L9:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", charq, (ftnlen)9, (ftnlen)1) > 0) {
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ ngr = i_nint(&fnum);
+ --a1ll_2.iccount;
+ goto L9;
+ } else if (i_indx("AWulxs", charq, (ftnlen)6, (ftnlen)1) > 0) {
+ goto L9;
+ } else if (*(unsigned char *)charq == 'm') {
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("01234", charq, (ftnlen)5, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "A digit less than 5 "
+ "must follow \"m\" in a grace note!", (ftnlen)128, (
+ ftnlen)52);
+ stop1_();
+ }
+ goto L9;
+ } else if (*(unsigned char *)charq == 'X') {
+
+/* Space before main note */
+
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789.", charq, (ftnlen)11, (ftnlen)1) > 0) {
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ --a1ll_2.iccount;
+ goto L9;
+ } else {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "A number must foll"
+ "ow \"X\" in a grace note!", (ftnlen)128, (ftnlen)41);
+ stop1_();
+ }
+ }
+
+/* At this point, charq is first note name in rest (grace?) */
+
+ i__1 = ngr;
+ for (igr = 1; igr <= i__1; ++igr) {
+ numnum = 0;
+ if (igr > 1) {
+L55:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)charq == ' ') {
+ goto L55;
+ }
+ }
+ if (i_indx("abcdefg", charq, (ftnlen)7, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "In grace, expected"
+ " \"a\"-\"g\"!", (ftnlen)128, (ftnlen)27);
+ stop1_();
+ }
+L18:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq != ' ') {
+ if (i_indx("1234567", charq, (ftnlen)7, (ftnlen)1) > 0) {
+ if (numnum == 1) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Only one of"
+ " \"+-1234567\" allowed here in grace!", (
+ ftnlen)128, (ftnlen)46);
+ stop1_();
+ }
+ numnum = 1;
+ goto L18;
+/* else if (index('nfs',charq) .gt. 0) then */
+ } else if (i_indx("+-nfs", charq, (ftnlen)5, (ftnlen)1) > 0) {
+ goto L18;
+ }
+
+/* Digits are possible octave numbers */
+
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Illegal character af"
+ "ter note name in grace!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+/* L19: */
+ }
+ } else /* if(complicated condition) */ {
+ chax_(ch__2, (ftnlen)1, &c__92);
+ if (*(unsigned char *)charq == *(unsigned char *)&ch__2[0]) {
+ chklit_(lineq, &a1ll_2.iccount, &literr, (ftnlen)128);
+ if (literr > 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, literq + (literr - 1) *
+ 51, (ftnlen)128, (ftnlen)51);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == 'o') {
+
+/* Ornament on non-xtup note. "o" symbol must come AFTER the affected note */
+
+ if (a1ll_2.nnl[c1ommvl_1.ivx - 1] == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"o\" must be in sam"
+ "e input block, after affected note!", (ftnlen)128, (
+ ftnlen)53);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("(stmgx+Tupf._)e:>^bc", dumq, (ftnlen)20, (ftnlen)1) ==
+ 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal ornament!", (
+ ftnlen)128, (ftnlen)17);
+ stop1_();
+ }
+ if (*(unsigned char *)dumq == ':') {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)dumq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected blank a"
+ "fter \"o:\"!", (ftnlen)128, (ftnlen)26);
+ stop1_();
+ } else if (! comkeys_1.ornrpt) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Turned off repeated orname"
+ "nts before they were on!", (ftnlen)128, (ftnlen)
+ 50);
+ stop1_();
+ }
+ comkeys_1.ornrpt = FALSE_;
+ } else if (*(unsigned char *)dumq == 'g') {
+ if (c1omget_1.issegno) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Sorry, only one"
+ " \"segno\" per input block!", (ftnlen)128, (
+ ftnlen)40);
+ stop1_();
+ } else if (c1ommvl_1.ivx != 1) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "segno can only b"
+ "e in voice 1!", (ftnlen)128, (ftnlen)29);
+ stop1_();
+ }
+ c1omget_1.issegno = TRUE_;
+L12:
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)dumq == '-' || *(unsigned char *)dumq >=
+ 48 && *(unsigned char *)dumq <= 58) {
+ goto L12;
+ }
+ if (*(unsigned char *)dumq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal characte"
+ "r in segno ornament symbol!", (ftnlen)128, (
+ ftnlen)43);
+ stop1_();
+ }
+ } else if (*(unsigned char *)dumq == 'T') {
+
+/* Trill. may be followed by 't' and/or number. read 'til blank */
+
+L22:
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)dumq == ':') {
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, " ", a1ll_2.iccount + 1 - i__1, (
+ ftnlen)1) != 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected bla"
+ "nk after \":\"!", (ftnlen)128, (ftnlen)25);
+ stop1_();
+ }
+ goto L32;
+ } else if (*(unsigned char *)dumq != ' ') {
+ goto L22;
+ }
+ } else if (*(unsigned char *)dumq == 'f') {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx(" d+-:", dumq, (ftnlen)5, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal characte"
+ "r after \"f\" in fermata ornament symbol!", (
+ ftnlen)128, (ftnlen)55);
+ stop1_();
+ }
+ if (*(unsigned char *)dumq == 'd') {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ }
+ if (*(unsigned char *)dumq == ':') {
+ goto L32;
+ }
+ } else if (*(unsigned char *)dumq == 'e') {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("sfn?", dumq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal characte"
+ "r after \"e\" in edit. accid. symbol!", (ftnlen)
+ 128, (ftnlen)51);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)dumq == '?') {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ }
+ } else {
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ }
+ if (i_indx("+- :", dumq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character in"
+ " ornament symbol!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+ i__1 = a1ll_2.iccount;
+ if (i_indx("0123456789", lineq + i__1, (ftnlen)10,
+ a1ll_2.iccount + 1 - i__1) == 0) {
+ i__1 = a1ll_2.iccount + 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "There should be an integer"
+ " here!", (ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == ':') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Cannot shift AND"
+ " repeat an ornament!", (ftnlen)128, (ftnlen)36);
+ stop1_();
+ }
+
+/* 12/7/03 Allow horizontal shift on any ornament, not just breath and caes. */
+
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ i__1 = a1ll_2.iccount;
+ if (i_indx(".0123456789", lineq + i__1, (ftnlen)11,
+ a1ll_2.iccount + 1 - i__1) == 0) {
+ i__1 = a1ll_2.iccount + 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "There should be a numb"
+ "er here!", (ftnlen)128, (ftnlen)30);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128,
+ (ftnlen)1);
+ }
+ }
+L32:
+ if (*(unsigned char *)dumq == ':') {
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, " ", a1ll_2.iccount + 1 - i__1, (
+ ftnlen)1) != 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\":\" must be fo"
+ "llowed by blank in \"o: \"!", (ftnlen)128, (
+ ftnlen)39);
+ stop1_();
+ } else if (comkeys_1.ornrpt) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Turned on repeat"
+ "ed ornaments but already on!", (ftnlen)128, (
+ ftnlen)44);
+ stop1_();
+ }
+ comkeys_1.ornrpt = TRUE_;
+ }
+ } else if (i_indx("st(){}", charq, (ftnlen)6, (ftnlen)1) > 0) {
+ numint = 0;
+ iposn = 0;
+L8:
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)1);
+ ++iposn;
+ if (*(unsigned char *)charq == 't' && *(unsigned char *)dumq ==
+ 't') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Cannot use \"t\" as "
+ "an option on a tie!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ if (i_indx("udltb+-fnhHps ", dumq, (ftnlen)14, (ftnlen)1) == 0) {
+
+/* Check for explicit ID code. */
+
+ ic = *(unsigned char *)dumq;
+ if (ic < 48 || ic > 57 && ic < 65 || ic > 90) {
+
+/* Not 0-9 or A-Z, so exit */
+
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal characte"
+ "r in slur symbol!", (ftnlen)128, (ftnlen)33);
+ stop1_();
+ } else {
+
+/* It is a possible ID code. Right place? */
+
+ if (iposn != 1) {
+
+/* Slur ID is not 2nd! */
+
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Slur ID must"
+ " be second character in slur symbol!", (
+ ftnlen)128, (ftnlen)48);
+ stop1_();
+ } else if (*(unsigned char *)charq == 't' &&
+ comslur_1.fontslur) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Slur ID not "
+ "allowed on non-postscript tie!", (ftnlen)128,
+ (ftnlen)42);
+ stop1_();
+ }
+ }
+
+/* Slur ID is OK. Note it cannot be "H" at this point.. */
+
+ goto L8;
+ } else if (*(unsigned char *)dumq == 'H') {
+ if (iposn == 1) {
+ goto L8;
+ }
+
+/* "H" is NOT an ID code. */
+
+ if (! comslur_1.fontslur && *(unsigned char *)charq == 't') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Cannot reshape p"
+ "ostscript ties this way!", (ftnlen)128, (ftnlen)
+ 40);
+ stop1_();
+ }
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, "H", a1ll_2.iccount + 1 - i__1, (
+ ftnlen)1) == 0) {
+ ++a1ll_2.iccount;
+ ++iposn;
+ }
+ goto L8;
+ } else if (i_indx("fh", dumq, (ftnlen)2, (ftnlen)1) > 0 && !
+ comslur_1.fontslur && *(unsigned char *)charq == 't') {
+
+/* 3/9/03 Can't reshape postscript tie. */
+
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Cannot reshape posts"
+ "cript ties this way!", (ftnlen)128, (ftnlen)40);
+ stop1_();
+ } else if (*(unsigned char *)dumq == 'p') {
+
+/* local change in postscript slur/tie adjustment default */
+
+ if (comslur_1.fontslur) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must use postscr"
+ "ipt slurs (\"Ap\") to use this option!", (ftnlen)
+ 128, (ftnlen)52);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected \"+\" o"
+ "r \"-\" here!", (ftnlen)128, (ftnlen)25);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("st", dumq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected \"s\" o"
+ "r \"t\" here!", (ftnlen)128, (ftnlen)25);
+ stop1_();
+ }
+ iposn += 2;
+ goto L8;
+ }
+ if (i_indx("udltbfnh", dumq, (ftnlen)8, (ftnlen)1) > 0) {
+ goto L8;
+ } else if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++numint;
+ if (comslur_1.fontslur && *(unsigned char *)charq == 't') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"+|-\" for slur"
+ " height only allowed in \"s\"-slurs!", (ftnlen)
+ 128, (ftnlen)48);
+ stop1_();
+ }
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (numint == 1) {
+ if (i_nint(&fnum) > 30) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Magnitude of slur heig"
+ "ht adjustment cannot exceed 30!", (ftnlen)128,
+ (ftnlen)53);
+ stop1_();
+ }
+ } else if (numint == 2) {
+ if (dabs(fnum) > 6.3f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Slur horiz shift must "
+ "be in range (-6.3,6.3)!", (ftnlen)128, (
+ ftnlen)45);
+ stop1_();
+ }
+ } else {
+
+/* Third signed integer, must be a midslur or curve spec. */
+
+ if (dabs(fnum) > 31.f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Slur midheight must be"
+ " in the range (-31,31)!", (ftnlen)128, (
+ ftnlen)45);
+ stop1_();
+ }
+ if (*(unsigned char *)durq == ':') {
+
+/* Expecting curve parameters. Get two numbers */
+
+ for (i__ = 1; i__ <= 2; ++i__) {
+ ++a1ll_2.iccount;
+ fnum = (real) (*(unsigned char *)&lineq[
+ a1ll_2.iccount - 1] - 48);
+ if ((r__1 = fnum - 3.5f, dabs(r__1)) > 3.6f) {
+ i__1 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Slur"
+ " curve parameter must be in range (0"
+ ",7)!", (ftnlen)128, (ftnlen)44);
+ stop1_();
+ }
+/* L41: */
+ }
+ ++a1ll_2.iccount;
+ }
+ }
+ --a1ll_2.iccount;
+ goto L8;
+ } else if (*(unsigned char *)dumq == 's') {
+
+/* What follows should be one or two signed numbers for adjustment of line break */
+/* slur, end of 1st segment or start of second. */
+
+ if (comslur_1.fontslur) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "May not use line"
+ "break slur options with font-based slurs!", (
+ ftnlen)128, (ftnlen)57);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "This character m"
+ "ust be \"+\" or \"-\"!", (ftnlen)128, (ftnlen)34);
+ stop1_();
+ }
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, dumq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (i_nint(&fnum) > 30) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Magnitude of slur height a"
+ "djustment cannot exceed 30!", (ftnlen)128, (
+ ftnlen)53);
+ stop1_();
+ }
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, dumq, &fnum, (ftnlen)128,
+ (ftnlen)1);
+ if (dabs(fnum) > 6.3f) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Slur horiz shift must "
+ "be in range (-6.3,6.3)!", (ftnlen)128, (
+ ftnlen)45);
+ stop1_();
+ }
+ }
+ --a1ll_2.iccount;
+ goto L8;
+ } else if (*(unsigned char *)dumq == 'H' && iposn > 1) {
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, "H", a1ll_2.iccount + 1 - i__1, (
+ ftnlen)1) == 0) {
+ ++a1ll_2.iccount;
+ }
+ goto L8;
+ }
+ } else if (*(unsigned char *)charq == '?') {
+ getchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == ' ') {
+ --a1ll_2.iccount;
+ } else {
+ if (*(unsigned char *)durq != '-') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expecting \"-\"!",
+ (ftnlen)128, (ftnlen)14);
+ stop1_();
+ }
+ getchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1)
+ ;
+ if (i_indx("0123456789.", durq, (ftnlen)11, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expecting number!"
+ , (ftnlen)128, (ftnlen)17);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ --a1ll_2.iccount;
+ }
+ } else if (*(unsigned char *)charq >= 48 && *(unsigned char *)charq <=
+ 57 || i_indx("#-nx_", charq, (ftnlen)5, (ftnlen)1) > 0) {
+
+/* We have a figure. Must come AFTER the note it goes under */
+
+ if (a1ll_2.itsofar[c1ommvl_1.ivx - 1] == 0 && (! a1ll_2.firstline
+ || a1ll_2.lenbr0 == 0 || a1ll_2.lenbar == a1ll_2.lenbr0))
+ {
+
+/* Figure before first note in block */
+
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Cannot put figure be"
+ "fore first note in block!", (ftnlen)128, (ftnlen)45);
+ stop1_();
+ }
+ if (*(unsigned char *)charq == 'x') {
+ indxb = i_indx(lineq + (a1ll_2.iccount - 1), " ", 128 - (
+ a1ll_2.iccount - 1), (ftnlen)1);
+ if (indxb < 5) {
+ i__1 = a1ll_2.iccount + indxb - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Cannot have a blank here i"
+ "n floating figure!", (ftnlen)128, (ftnlen)44);
+ stop1_();
+ }
+ }
+ if (compage_1.usefig) {
+ *ifig = 1;
+ }
+L5:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx(" 0123456789#-nx_.:+s", charq, (ftnlen)20, (ftnlen)1)
+ == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character in"
+ " figure!", (ftnlen)128, (ftnlen)28);
+ stop1_();
+ } else if (*(unsigned char *)charq == '+') {
+
+/* vertical offset, must be integer, then blank */
+
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("123456789", charq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Integer for vert"
+ "ical offset expected here!", (ftnlen)128, (ftnlen)
+ 42);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, charq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)charq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Vertical offset "
+ "must terminate figure!", (ftnlen)128, (ftnlen)38);
+ stop1_();
+ }
+ --a1ll_2.iccount;
+ goto L5;
+ } else if (*(unsigned char *)charq == 's') {
+ comligfont_1.isligfont = TRUE_;
+ }
+ if (*(unsigned char *)charq != ' ') {
+ goto L5;
+ }
+ } else if (*(unsigned char *)charq == '[') {
+ if (c1omget_1.fbon) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Started forced beam "
+ "while another was open!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ c1omget_1.fbon = TRUE_;
+L17:
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("uljhf:", charq, (ftnlen)6, (ftnlen)1) > 0) {
+ goto L17;
+ } else if (i_indx("+-", charq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++a1ll_2.iccount;
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ --a1ll_2.iccount;
+ goto L17;
+ } else if (*(unsigned char *)charq == 'm') {
+
+/* Forced multiplicity, next char should be 1-4 */
+
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("1234", charq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Forced multiplic"
+ "ity for a beam must be 1, 2, 3, or 4!", (ftnlen)
+ 128, (ftnlen)53);
+ stop1_();
+ }
+ goto L17;
+ } else if (*(unsigned char *)charq != ' ') {
+ if (i_indx("0123456789", charq, (ftnlen)10, (ftnlen)1) > 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "After \"[\", dig"
+ "its must now be preceeded by \"+\" or \"-\"!", (
+ ftnlen)128, (ftnlen)54);
+ s_wsle(&io___598);
+ do_lio(&c__9, &c__1, "You will have to edit older source"
+ "s to meet this rqmt,", (ftnlen)54);
+ e_wsle();
+ s_wsle(&io___599);
+ do_lio(&c__9, &c__1, "but it was needed to allow 2-digit"
+ " height adjustments.", (ftnlen)54);
+ e_wsle();
+ s_wsle(&io___600);
+ do_lio(&c__9, &c__1, "Sorry for the inconvenience. --Th"
+ "e Management", (ftnlen)46);
+ e_wsle();
+ } else {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal characte"
+ "r after [!", (ftnlen)128, (ftnlen)26);
+ }
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == ']') {
+ if (! c1omget_1.fbon) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Forced beam stop wit"
+ "h no corresponding start!", (ftnlen)128, (ftnlen)45);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq == '-') {
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, "[ ", a1ll_2.iccount + 2 - i__1, (
+ ftnlen)2) != 0) {
+ i__1 = a1ll_2.iccount + 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Only sequence allowed here"
+ " is \"[ \"!", (ftnlen)128, (ftnlen)35);
+ stop1_();
+ } else {
+ a1ll_2.iccount += 2;
+ }
+ } else if (*(unsigned char *)charq == '[') {
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, " ", a1ll_2.iccount + 1 - i__1, (
+ ftnlen)1) != 0) {
+ i__1 = a1ll_2.iccount + 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "This character must be a b"
+ "lank!", (ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+ } else {
+
+/* Forced beam is really ending */
+
+ c1omget_1.fbon = FALSE_;
+ if (*(unsigned char *)charq == 'j') {
+ i__1 = a1ll_2.iccount;
+ if (s_cmp(lineq + i__1, " ", a1ll_2.iccount + 1 - i__1, (
+ ftnlen)1) != 0) {
+ i__1 = a1ll_2.iccount + 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "This character must be"
+ " a blank!", (ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"]\" must be fo"
+ "llowed by blank, \"j\", \"-\", or \"[\"!", (
+ ftnlen)128, (ftnlen)48);
+ stop1_();
+ }
+ }
+ } else if (*(unsigned char *)charq == 'D') {
+
+/* Dynamic mark */
+
+ if (a1ll_2.nnl[c1ommvl_1.ivx - 1] == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"D\" must not come "
+ "before any notes have been entered!", (ftnlen)128, (
+ ftnlen)53);
+ stop1_();
+ }
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ checkdyn_(lineq, &a1ll_2.iccount, &i__1, (ftnlen)128);
+ } else if (i_indx("lhw", charq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Save position for later check */
+
+ icclhw = a1ll_2.iccount;
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789.+- ", durq, (ftnlen)14, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character af"
+ "ter \"l\", \"w\", or \"h\"!", (ftnlen)128, (ftnlen)41)
+ ;
+ stop1_();
+ }
+ c1omget_1.isheadr = c1omget_1.isheadr || *(unsigned char *)charq
+ == 'h';
+ if (i_indx(" +-", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* There is a header (or lower string?) */
+
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* User-defined vert offset (\internote). */
+
+ if (*(unsigned char *)charq != 'h') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"+\" or \""
+ "-\" not permitted here!", (ftnlen)128, (
+ ftnlen)30);
+ stop1_();
+ }
+
+/* Have "h" followed by +/- . Check for digit. */
+/* Can blow durq since not using fnum for now, but... */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0)
+ {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "There must b"
+ "e a digit here!", (ftnlen)128, (ftnlen)27);
+ stop1_();
+ }
+
+/* Have "h" followed by +/- followed by a digit. No need to get the number. */
+
+/* call readnum(lineq,iccount,durq,fnum) */
+ }
+ if (*(unsigned char *)charq != 'w') {
+
+/* Header or lower string. */
+
+ if (icclhw != 1) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "\"h\" or \"l\" must be"
+ " first character in line!", (ftnlen)128, (
+ ftnlen)43);
+ stop1_();
+ }
+
+/* Read past the next line, which has the string. */
+
+ read10_(charq, &c1omget_1.lastchar, (ftnlen)1);
+ ++c1omget_1.nline;
+ a1ll_2.iccount = 128;
+ } else {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Symbol \"w\" (wi"
+ "dth) must be followed by a digit!", (ftnlen)128, (
+ ftnlen)47);
+ stop1_();
+ }
+ } else {
+
+/* Height or width change spec. Check if at start of piece. */
+
+ if (c1omnotes_1.ibarcnt > 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Symbol must go a"
+ "t top of first input block!", (ftnlen)128, (
+ ftnlen)43);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &dimen, (ftnlen)128, (
+ ftnlen)1);
+
+/* Check units. Convert to points */
+
+ if (*(unsigned char *)durq == ' ' || *(unsigned char *)durq ==
+ 'p') {
+ dimen += .5f;
+ } else if (*(unsigned char *)durq == 'i') {
+ dimen = dimen * 72 + .5f;
+ } else if (*(unsigned char *)durq == 'm') {
+ dimen = dimen / 25.4f * 72 + .5f;
+ } else {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal unit; mu"
+ "st be \"p\",\"i\",or\"m\"!", (ftnlen)128, (ftnlen)
+ 36);
+ stop1_();
+ }
+ if (*(unsigned char *)charq == 'h') {
+ compage_1.ptheight = (real) ((integer) dimen);
+ } else {
+ compage_1.widthpt = (real) ((integer) dimen);
+ }
+ }
+ } else if (*(unsigned char *)charq == 'm') {
+
+/* Time signature change. Only allow at beginning of block. */
+/* mtrnuml, mtrdenl (logical) and p (printable) will be input. */
+/* mtrnuml=0 initially. (In common) */
+
+/* Check whether at beginning of a block */
+
+ if (c1ommvl_1.ivx != 1 || a1ll_2.nnl[0] != 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Meter change only OK"
+ " in voice 1, at start of block!", (ftnlen)128, (
+ ftnlen)51);
+ s_wsle(&io___603);
+ do_lio(&c__9, &c__1, "voice number is", (ftnlen)15);
+ do_lio(&c__3, &c__1, (char *)&c1ommvl_1.ivx, (ftnlen)sizeof(
+ integer));
+ e_wsle();
+ stop1_();
+ }
+ a1ll_2.newmeter = TRUE_;
+ readmeter_(lineq, &a1ll_2.iccount, &a1ll_2.mtrnuml, &mtrdenl, (
+ ftnlen)128);
+ if (a1ll_2.mtrnuml == 0) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Digit 0 not allowed here!", (
+ ftnlen)128, (ftnlen)25);
+ stop1_();
+/* else if (mtrdenl .eq. 1) then */
+/* c */
+/* c Kluge!!! */
+/* c */
+/* mtrdenl = 2 */
+/* mtrnuml = 2*mtrnuml */
+ }
+ readmeter_(lineq, &a1ll_2.iccount, &mtrnmp, &mtrdnp, (ftnlen)128);
+
+/* Read past printed time signature; not used in pmxa. */
+
+ lenbeat = i1fnodur_(&mtrdenl, "x", (ftnlen)1);
+ lenmult = 1;
+ if (mtrdenl == 2) {
+ lenbeat = 16;
+ lenmult = 2;
+ }
+ a1ll_2.lenbar = lenmult * a1ll_2.mtrnuml * lenbeat;
+ a1ll_2.mtrnuml = 0;
+ } else if (*(unsigned char *)charq == 'C') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (! (i_indx("tsmanrbf", durq, (ftnlen)8, (ftnlen)1) > 0 || *(
+ unsigned char *)durq >= 48 && *(unsigned char *)durq <=
+ 55)) {
+/* * (ichar(durq).ge.48 .and. ichar(durq).le.54))) then */
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must have t,s,m,a,n,"
+ "r,b,f or 1-7 after C!", (ftnlen)128, (ftnlen)41);
+/* * 'Must have t,s,m,a,n,r,b,f or 1-6 after C!') */
+ stop1_();
+ }
+ c1omnotes_1.gotclef = TRUE_;
+ } else if (*(unsigned char *)charq == 'R') {
+ if (c1ommvl_1.ivx != 1) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Repeats can only go "
+ "in voice 1!", (ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+L10:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("lrdDbz", durq, (ftnlen)6, (ftnlen)1) > 0) {
+ goto L10;
+ }
+ if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character af"
+ "ter \"R\" (repeat/double bar)!", (ftnlen)128, (ftnlen)
+ 48);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == 'V') {
+
+/* Ending */
+
+ if (a1ll_2.iv != 1) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Voltas are only allo"
+ "wed in voice #1!", (ftnlen)128, (ftnlen)36);
+ stop1_();
+ } else if (c1omget_1.isvolt) {
+ s_wsle(&io___609);
+ e_wsle();
+ s_wsle(&io___610);
+ do_lio(&c__9, &c__1, "*******WARNING********", (ftnlen)22);
+ e_wsle();
+ s_wsfe(&io___611);
+ do_fio(&c__1, "*******WARNING********", (ftnlen)22);
+ e_wsfe();
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "There is more than o"
+ "ne volta in this input block.!", (ftnlen)128, (ftnlen)
+ 50);
+ s_wsle(&io___612);
+ do_lio(&c__9, &c__1, "This may work in a score, but WILL NOT"
+ " work in parts.", (ftnlen)53);
+ e_wsle();
+ s_wsle(&io___613);
+ do_lio(&c__9, &c__1, "Safest to have only 1 volta per block,"
+ " at the start of the block", (ftnlen)64);
+ e_wsle();
+ s_wsfe(&io___614);
+ do_fio(&c__1, "This may work in a score, but WILL NOT work i"
+ "n parts.", (ftnlen)53);
+ e_wsfe();
+ s_wsfe(&io___615);
+ do_fio(&c__1, "Safest to have only 1 volta per block, at the"
+ " start of the block", (ftnlen)64);
+ e_wsfe();
+ }
+ c1omget_1.isvolt = TRUE_;
+ lvoltxt = 0;
+L11:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+ goto L11;
+ }
+ } else if (*(unsigned char *)charq == 'B') {
+ } else if (*(unsigned char *)charq == 'P') {
+ if (c1ommvl_1.ivx != 1 || a1ll_2.nnl[0] != 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only allowed at begi"
+ "nning of block!", (ftnlen)128, (ftnlen)35);
+ stop1_();
+ }
+L16:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 'l' || *(unsigned char *)durq ==
+ 'r' || *(unsigned char *)durq >= 48 && *(unsigned char *)
+ durq <= 57) {
+ goto L16;
+ }
+ if (*(unsigned char *)durq == 'c') {
+
+/* Expect a centered name, and it has to be last option */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)durq == '"') {
+
+/* Quoted name, go to next quote mark */
+
+ for (++a1ll_2.iccount; a1ll_2.iccount <= 127;
+ ++a1ll_2.iccount) {
+ if (*(unsigned char *)&lineq[a1ll_2.iccount - 1] ==
+ '"') {
+ goto L36;
+ }
+/* L35: */
+ }
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Missing close qu"
+ "ote after page number command (P)!", (ftnlen)128,
+ (ftnlen)50);
+ stop1_();
+L36:
+ ;
+ } else if (*(unsigned char *)durq != ' ') {
+
+/* Space-delimited name, look for next blank */
+
+ for (++a1ll_2.iccount; a1ll_2.iccount <= 127;
+ ++a1ll_2.iccount) {
+ if (*(unsigned char *)&lineq[a1ll_2.iccount - 1] ==
+ ' ') {
+ goto L38;
+ }
+/* L37: */
+ }
+L38:
+ ;
+ }
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only \"l\",\"r\",\""
+ "c\" or digit allowed after \"P\"!", (ftnlen)128, (
+ ftnlen)44);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == 'W') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx(".0123456789", durq, (ftnlen)11, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Expected a number to"
+ " start here!", (ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &c1omnotes_1.wminnh[
+ c1omnotes_1.ibarcnt + a1ll_2.nbars], (ftnlen)128, (ftnlen)
+ 1);
+ } else if (*(unsigned char *)charq == 'T') {
+
+/* Titles */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("itc", durq, (ftnlen)3, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must put \"i\", \""
+ "t\", or \"c\" after \"T\"!", (ftnlen)128, (ftnlen)36);
+ stop1_();
+ }
+ i__1 = i_indx("itc", durq, (ftnlen)3, (ftnlen)1) - 1;
+ c1omget_1.ihead += pow_ii(&c__2, &i__1);
+
+/* Maybe a number after 'Tt', but ignore here. Read past string on next line. */
+
+ read10_(charq, &c1omget_1.lastchar, (ftnlen)1);
+ ++c1omget_1.nline;
+ a1ll_2.iccount = 128;
+ } else if (*(unsigned char *)charq == 'A') {
+L27:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("rbsdeK", durq, (ftnlen)6, (ftnlen)1) > 0) {
+ goto L27;
+ } else if (*(unsigned char *)durq == 'v') {
+ if (c1omnotes_1.ibarcnt == 0) {
+ comnvst_1.novshrinktop = TRUE_;
+ }
+ goto L27;
+ } else if (*(unsigned char *)durq == 'a') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ readnum_(lineq, &a1ll_2.iccount, durq, &c1ommvl_1.fbar, (
+ ftnlen)128, (ftnlen)1);
+ --a1ll_2.iccount;
+ goto L27;
+ } else if (*(unsigned char *)durq == 'i') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+
+/* Local interstaff correction. Set to -1. if not specifiec, or after use, */
+/* or anytime except at top, since pmxb handles all times except at top. */
+
+ readnum_(lineq, &a1ll_2.iccount, durq, &tintstf, (ftnlen)128,
+ (ftnlen)1);
+ if (c1omnotes_1.ibarcnt == 0) {
+ compage_1.fintstf = tintstf;
+ }
+ --a1ll_2.iccount;
+ goto L27;
+ } else if (*(unsigned char *)durq == 'I') {
+
+/* Global interstaff correction. Use in place of fintstf if fintstf<0 */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ readnum_(lineq, &a1ll_2.iccount, durq, &compage_1.gintstf, (
+ ftnlen)128, (ftnlen)1);
+ --a1ll_2.iccount;
+ goto L27;
+ } else if (*(unsigned char *)durq == 'o') {
+ *optimize = TRUE_;
+ goto L27;
+ } else if (*(unsigned char *)durq == 'S') {
+ i__1 = a1ll_2.nv;
+ for (iiv = 1; iiv <= i__1; ++iiv) {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("-0st", durq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "After \"AS\""
+ ", need nv instances of \"s,t,-,0\"!", (ftnlen)
+ 128, (ftnlen)43);
+ stop1_();
+ }
+ if (*(unsigned char *)durq == '-' || *(unsigned char *)
+ durq == 's') {
+ comsize_1.isize[iiv - 1] = 1;
+ } else if (*(unsigned char *)durq == 't') {
+ comsize_1.isize[iiv - 1] = 2;
+ }
+/* L50: */
+ }
+ goto L27;
+ } else if (*(unsigned char *)durq == 'p') {
+ comslur_1.fontslur = FALSE_;
+L42:
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Characters to change defaults for ps slurs */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("shtc", durq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only letters"
+ " allowed here are \"s\",\"h\",\"t\",\"c\"!", (
+ ftnlen)128, (ftnlen)46);
+ stop1_();
+ }
+
+/* Now check for another default modifier */
+
+ goto L42;
+ } else if (i_indx("lh", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Flags for optional linebreak ties or header specials */
+
+ goto L42;
+ } else {
+ --a1ll_2.iccount;
+ }
+ goto L27;
+ } else if (*(unsigned char *)durq == 'N') {
+
+/* Override default name for a part file. Must have part number, then */
+/* partname in quotes. Must be on line by itself, and start in column 1. */
+/* Will only be passed thru to scor2prt. */
+
+ if (a1ll_2.iccount != 2) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"AN\" must star"
+ "t in column 1!", (ftnlen)128, (ftnlen)28);
+ stop1_();
+ }
+ ndxquote = i_indx(lineq, "\"", (ftnlen)128, (ftnlen)1);
+ if (ndxquote < 4 || ndxquote > 5 || i_indx("123456789", lineq
+ + 2, (ftnlen)9, (ftnlen)1) == 0 || ndxquote == 5 &&
+ i_indx("012", lineq + 3, (ftnlen)3, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"AN\" must be f"
+ "ollowed by inst. #, then quote!", (ftnlen)128, (
+ ftnlen)45);
+ stop1_();
+ }
+ i__1 = ndxquote;
+ ndxquote = i_indx(lineq + i__1, "\"", 128 - i__1, (ftnlen)1);
+ if (ndxquote == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "In \"AN\", file "
+ "name must be in quotes!", (ftnlen)128, (ftnlen)37)
+ ;
+ stop1_();
+ }
+ a1ll_2.iccount = 128;
+ } else if (*(unsigned char *)durq == 'T') {
+ comnvst_1.cstuplet = TRUE_;
+ } else if (*(unsigned char *)durq == 'R') {
+
+/* Get full name of normal include file; must occupy remainder of line */
+
+ i__1 = a1ll_2.iccount;
+ getpmxmod_(&c_false, lineq + i__1, 128 - i__1);
+ a1ll_2.iccount = 128;
+ } else if (*(unsigned char *)durq == 'c') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("l4", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only \"l\" or"
+ " \"4\" is allowed here!", (ftnlen)128, (ftnlen)32)
+ ;
+ stop1_();
+ }
+ if (*(unsigned char *)durq == 'l') {
+ compage_1.hoffpt = -25.f;
+ compage_1.voffpt = -45.f;
+ } else if (*(unsigned char *)durq == '4') {
+ compage_1.ptheight = 745.f;
+ compage_1.widthpt = 499.f;
+ compage_1.hoffpt = -24.f;
+ compage_1.voffpt = -24.f;
+ }
+ goto L27;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "After \"A\" must fol"
+ "low one of the letters abcdeiINprRsST!", (ftnlen)128,
+ (ftnlen)56);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == 'K') {
+
+/* Rules and function of K command */
+
+/* Only 1 K +/-n +/-m allowed per block if n.ne.0 (transposition). isig1 is */
+/* initial sig, and must be passed to pmxb because it is needed when topfile */
+/* is called, which is before the K+n+m command is read in pmxb. Also, we */
+/* compute and save ibrkch and newkey for each syst, accounting for key changes, */
+/* then adjust fbar to make poenom much more accurate. */
+/* Jan 02: Now K-0+[n] is used to transpose e.g. from f to f#. */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("+-i", durq, (ftnlen)3, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"K\" (transpose or "
+ "key change) must be followed by \"+,-,i\"!", (ftnlen)
+ 128, (ftnlen)58);
+ stop1_();
+ }
+ if (*(unsigned char *)durq != 'i') {
+
+/* Normal key change and/or transposition) */
+
+/* iccount = iccount+1 */
+ num1 = 44 - *(unsigned char *)durq;
+
+/* num1= +1 or -1 */
+
+ ztrans = num1 == -1;
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("0123456789", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "1st +/- must be "
+ "followed by a number!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+/* iccount = iccount+1 */
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ num1 = i_nint(&fnum) * num1;
+ ztrans = ztrans && num1 == 0;
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "1st number aft"
+ "er \"K\" must be followed by \"+,-\"!", (ftnlen)
+ 128, (ftnlen)47);
+ stop1_();
+ }
+ ++a1ll_2.iccount;
+ num2 = 44 - *(unsigned char *)durq;
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ num2 *= (integer) (fnum + .1f);
+ if (num1 == 0 && ! ztrans) {
+
+/* Key change, only one per block allowed */
+
+ if (comkeys_1.iskchb) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Only one key"
+ " change allowed per input block!", (ftnlen)
+ 128, (ftnlen)44);
+ stop1_();
+ }
+ comkeys_1.iskchb = TRUE_;
+ ++comkeys_1.nkeys;
+ comkeys_1.kchmid[comkeys_1.nkeys - 1] = a1ll_2.itsofar[
+ c1ommvl_1.ivx - 1] % a1ll_2.lenbar != 0;
+
+/* Make ibrkch = barnum-1 if at start of bar, so fsyst advances ok at linebreak. */
+
+ comkeys_1.ibrkch[comkeys_1.nkeys - 1] =
+ c1omnotes_1.ibarcnt + a1ll_2.nbars;
+ if (comkeys_1.kchmid[comkeys_1.nkeys - 1]) {
+ ++comkeys_1.ibrkch[comkeys_1.nkeys - 1];
+ }
+ comkeys_1.newkey[comkeys_1.nkeys - 1] = num2 +
+ comkeys_1.idsig;
+ } else {
+
+/* Transposition */
+
+ *fulltrans = TRUE_;
+ if (c1omnotes_1.ibarcnt > 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Transpositio"
+ "n must be at top of first input block!", (
+ ftnlen)128, (ftnlen)50);
+ stop1_();
+ }
+ comkeys_1.isig1 = num2;
+ comkeys_1.idsig = comkeys_1.isig1 - comkeys_1.newkey[0];
+
+/* idsig is the difference between sig after transposition, and sig in setup. */
+/* It may alter # of accid's in key changes if there is transposition. */
+
+ }
+ } else {
+
+/* 110522/110529 */
+/* Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey] */
+/* and repeat i[...] for multiple instruments. Store info here if ibarcnt=0 */
+/* so can pass to topfile (via comInstTrans), which is called before getnote. */
+/* Otherwise, will store info from getnote. Initialize EarlyTransOn and */
+/* LaterInstTrans to .false. in blockdata. Set EarlyTransOn from here; */
+/* LaterInstTrans from g1etnote. Zero both out after use. nInstTrans really */
+/* only needed for instrument-signatures, not transpositions. iTransAmt is */
+/* ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for */
+/* each staff. */
+
+/* if (fulltrans) then */
+/* call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1, */
+/* * 'Cannot yet combine full and instrument transposition!') */
+/* call stop1() */
+/* end if */
+/* durq='i' */
+ getitransinfo_(&c_true, &c1omnotes_1.ibarcnt, lineq, &
+ a1ll_2.iccount, &c1omnotes_1.ibaroff, &a1ll_2.nbars, &
+ comkeys_1.noinst, &a1ll_2.iv, (ftnlen)128);
+ }
+ } else if (*(unsigned char *)charq == '|') {
+
+/* Optional bar symbol */
+
+ if (a1ll_2.itsofar[c1ommvl_1.ivx - 1] % a1ll_2.lenbar != 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Bar line marker out "
+ "of place!", (ftnlen)128, (ftnlen)29);
+ stop1_();
+ } else if (comkeys_1.shifton) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Bar ended with user-"
+ "defined shift still on!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == '/') {
+ if (comkeys_1.ornrpt) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "WARNING: Block ended"
+ " with repeated ornament still on!", (ftnlen)128, (
+ ftnlen)53);
+ comkeys_1.ornrpt = FALSE_;
+ }
+ if (comkeys_1.stickys) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "WARNING: Block ended"
+ " with sticky stemshrink still on!", (ftnlen)128, (
+ ftnlen)53);
+ comkeys_1.stickys = FALSE_;
+ }
+ if (c1omget_1.fbon) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Block ended with for"
+ "ced beam open!", (ftnlen)128, (ftnlen)34);
+ stop1_();
+ } else if (comkeys_1.shifton) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Bar ended with user-"
+ "defined shift still on!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ } else if (c1omnotes_1.gotclef) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "May not enter clef a"
+ "t end of input block!", (ftnlen)128, (ftnlen)41);
+ stop1_();
+ }
+ comkeys_1.barend = FALSE_;
+
+/* Perform time checks */
+
+ if (a1ll_2.itsofar[c1ommvl_1.ivx - 1] % a1ll_2.lenbar != 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Block duration not d"
+ "ivisible by lenbar!", (ftnlen)128, (ftnlen)39);
+ s_wsle(&io___623);
+ do_lio(&c__9, &c__1, "lenbar is ", (ftnlen)10);
+ do_lio(&c__3, &c__1, (char *)&a1ll_2.lenbar, (ftnlen)sizeof(
+ integer));
+ e_wsle();
+ stop1_();
+ } else if (c1ommvl_1.ivx > 1 && a1ll_2.itsofar[c1ommvl_1.ivx - 1]
+ != a1ll_2.itsofar[0]) {
+ s_wsle(&io___624);
+ e_wsle();
+ s_wsle(&io___625);
+ do_lio(&c__9, &c__1, "# of bars in voice 1, current voice:", (
+ ftnlen)36);
+ i__1 = a1ll_2.itsofar[0] / a1ll_2.lenbar;
+ do_lio(&c__3, &c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ i__4 = a1ll_2.itsofar[c1ommvl_1.ivx - 1] / a1ll_2.lenbar;
+ do_lio(&c__3, &c__1, (char *)&i__4, (ftnlen)sizeof(integer));
+ e_wsle();
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Block duration not e"
+ "qual to voice 1!", (ftnlen)128, (ftnlen)36);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == ' ' && a1ll_2.iv == a1ll_2.nv) {
+
+/* End of input block */
+
+ *loop = FALSE_;
+ } else {
+
+/* Start a new voice */
+
+ if (a1ll_2.lenbr0 != 0 && a1ll_2.firstline) {
+ a1ll_2.lenbar = a1ll_2.lenbr0;
+ }
+ a1ll_2.nbars = 0;
+ if (*(unsigned char *)durq == ' ') {
+
+/* New voice is on next staff */
+
+ ++a1ll_2.iv;
+ c1ommvl_1.ivx = a1ll_2.iv;
+ } else {
+
+/* New voice is on same staff. Set up for it */
+
+ c1ommvl_1.ivx = a1ll_2.nv + 1;
+ i__1 = a1ll_2.nv;
+ for (iiv = 1; iiv <= i__1; ++iiv) {
+ if (c1ommvl_1.nvmx[iiv - 1] == 2) {
+ ++c1ommvl_1.ivx;
+ }
+/* L23: */
+ }
+ if (c1ommvl_1.ivx > 24) {
+ s_wsfe(&io___626);
+ do_fio(&c__1, "Cannot have more than", (ftnlen)21);
+ do_fio(&c__1, (char *)&c__24, (ftnlen)sizeof(integer))
+ ;
+ do_fio(&c__1, " lines of music at once", (ftnlen)23);
+ e_wsfe();
+ stop1_();
+ }
+ c1ommvl_1.nvmx[a1ll_2.iv - 1] = 2;
+ c1ommvl_1.ivmx[a1ll_2.iv + 23] = c1ommvl_1.ivx;
+ a1ll_2.itsofar[c1ommvl_1.ivx - 1] = 0;
+ a1ll_2.nnl[c1ommvl_1.ivx - 1] = 0;
+ for (j = 1; j <= 200; ++j) {
+ a1ll_2.rest[c1ommvl_1.ivx + j * 24 - 25] = FALSE_;
+ c1ommvl_1.nacc[c1ommvl_1.ivx + j * 24 - 25] = 0;
+/* L24: */
+ }
+
+/* For midi stuff, record that there is a 2nd line of music in this voice */
+
+ if (commidi_1.ismidi) {
+ commidi_1.twoline[a1ll_2.iv - 1] = TRUE_;
+ }
+ }
+ }
+ a1ll_2.iccount = 128;
+ } else if (*(unsigned char *)charq == 'S') {
+
+/* New nsyst: for use with partmaker scor2prt, for parts w/ diff # of systs. */
+
+ if (c1omnotes_1.ibarcnt > 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "\"S\" can only be in"
+ " first input block!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789 ", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "A digit must follow"
+ " \"S\"!", (ftnlen)128, (ftnlen)24);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnsyst, (ftnlen)128, (
+ ftnlen)1);
+ compage_1.nsyst = i_nint(&fnsyst);
+L14:
+ if (*(unsigned char *)durq == 'P') {
+
+/* New npages for parts. */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("123456789 ", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must have a numb"
+ "er here!", (ftnlen)128, (ftnlen)24);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnsyst, (ftnlen)128, (
+ ftnlen)1);
+ compage_1.npages = i_nint(&fnsyst);
+ goto L14;
+ } else if (*(unsigned char *)durq == 'm') {
+
+/* Reset musize (musicsize). */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("123456789 ", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must have a numb"
+ "er here!", (ftnlen)128, (ftnlen)24);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnsyst, (ftnlen)128, (
+ ftnlen)1);
+ commus_1.musize = i_nint(&fnsyst);
+ c1omnotes_1.wheadpt = commus_1.whead20 * commus_1.musize;
+ goto L14;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character "
+ "in \"S\" symbol!", (ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+ } else if (*(unsigned char *)charq == 'L') {
+ ++compage_1.nflb;
+ compage_1.ibarflb[compage_1.nflb] = c1omnotes_1.ibarcnt +
+ a1ll_2.nbars + 1;
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Need integer to defi"
+ "ne forced line break!", (ftnlen)128, (ftnlen)41);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &sysflb, (ftnlen)128, (
+ ftnlen)1);
+ compage_1.isysflb[compage_1.nflb] = i_nint(&sysflb);
+ if (compage_1.nflb > 1) {
+
+/* Check if new number is > prior one */
+
+ if (compage_1.isysflb[compage_1.nflb] <= compage_1.isysflb[
+ compage_1.nflb - 1]) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "You already forced a line "
+ "break at a later line!", (ftnlen)128, (ftnlen)48);
+ stop1_();
+ }
+ }
+ if (compage_1.npages == 0) {
+ s_wsle(&io___630);
+ e_wsle();
+ s_wsle(&io___631);
+ do_lio(&c__9, &c__1, "WARNING! You forced a line break at li"
+ "ne ", (ftnlen)41);
+ do_lio(&c__3, &c__1, (char *)&compage_1.isysflb[
+ compage_1.nflb], (ftnlen)sizeof(integer));
+ do_lio(&c__9, &c__1, " but npage = 0. Continue?", (ftnlen)26)
+ ;
+ e_wsle();
+ s_rsfe(&io___632);
+ do_fio(&c__1, charq, (ftnlen)1);
+ e_rsfe();
+ if (i_indx("yY", charq, (ftnlen)2, (ftnlen)1) == 0) {
+ stop1_();
+ }
+ } else if (compage_1.isysflb[compage_1.nflb] > compage_1.nsyst) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Forced line break at"
+ " line num > nsyst!", (ftnlen)128, (ftnlen)38);
+ stop1_();
+ } else if (i_indx(" PM", durq, (ftnlen)3, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must have \" \", \""
+ "P\", or \"M\" here!", (ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+ if (*(unsigned char *)durq == 'P') {
+
+/* Forced page break here, get page number. */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Need integer to "
+ "define forced page break!", (ftnlen)128, (ftnlen)
+ 41);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ ++compage_1.nfpb;
+ compage_1.ipagfpb[compage_1.nfpb] = i_nint(&fnum);
+ compage_1.isysfpb[compage_1.nfpb] = compage_1.isysflb[
+ compage_1.nflb];
+ if (compage_1.ipagfpb[compage_1.nfpb] > compage_1.npages) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Forced page break at page "
+ "num > npages!", (ftnlen)128, (ftnlen)39);
+ stop1_();
+ } else if (compage_1.nfpb > 1) {
+ if (compage_1.ipagfpb[compage_1.nfpb] <=
+ compage_1.ipagfpb[compage_1.nfpb - 1]) {
+ i__1 = a1ll_2.iccount - 1;
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &i__1, &i__4, "Forced page break numb"
+ "ers must increase!", (ftnlen)128, (ftnlen)40);
+ stop1_();
+ }
+ }
+ }
+ if (i_indx(" M", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal character in"
+ " linebreak symbol!", (ftnlen)128, (ftnlen)38);
+ stop1_();
+ } else if (*(unsigned char *)durq == 'M') {
+ ++compage_1.nmovbrk;
+ compage_1.isysmb[compage_1.nmovbrk] = compage_1.isysflb[
+ compage_1.nflb];
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (ftnlen)
+ 1);
+L31:
+ if (*(unsigned char *)durq == '+') {
+
+/* Vertical spacing, read past number. */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0)
+ {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Integer requ"
+ "ired here!", (ftnlen)128, (ftnlen)22);
+ stop1_();
+ }
+ readnum_(lineq, &a1ll_2.iccount, durq, &fnum, (ftnlen)128,
+ (ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'i') {
+
+/* Change indentation, */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx(".123456789", durq, (ftnlen)10, (ftnlen)1) ==
+ 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Decimal numb"
+ "er required here!", (ftnlen)128, (ftnlen)29);
+ stop1_();
+ }
+
+/* fracsys was initialized in block data to all 0.'s */
+
+ readnum_(lineq, &a1ll_2.iccount, durq, &compage_1.fracsys[
+ compage_1.nmovbrk - 1], (ftnlen)128, (ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'c') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'r') {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Must have"
+ " \"+\" or \"-\" after \"r\" as movement brea"
+ "k option!", (ftnlen)128, (ftnlen)56);
+ stop1_();
+ }
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'n') {
+
+/* Change # of voices. Input ninow, iorig(1...ninow). Will use names, */
+/* staves per inst. and clefs corr. to iorig in original list of instruments. */
+
+ a1ll_2.nv = 0;
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == ':') {
+
+/* Signals a 2-digit number, get next two characters */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)128, (
+ ftnlen)1);
+ if (i_indx("12", durq, (ftnlen)2, (ftnlen)1) == 0 ||
+ i_indx("0123456789", dumq, (ftnlen)10, (
+ ftnlen)1) == 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+/* Writing concatenation */
+ i__8[0] = 34, a__3[0] = "Illegal new number of i"
+ "nstruments ";
+ i__8[1] = 1, a__3[1] = durq;
+ i__8[2] = 1, a__3[2] = dumq;
+ i__8[3] = 19, a__3[3] = " at movement break!";
+ s_cat(ch__3, a__3, i__8, &c__4, (ftnlen)55);
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, ch__3, (
+ ftnlen)128, (ftnlen)55);
+ stop1_();
+ }
+ i__1 = a1ll_2.iccount - 2;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = a1ll_2.iccount - i__1;
+ ici__1.iciunit = lineq + i__1;
+ ici__1.icifmt = "(i2)";
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&ninow, (ftnlen)sizeof(integer))
+ ;
+ e_rsfi();
+ } else {
+
+/* durq is a single digit number for noinow */
+
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) ==
+ 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+/* Writing concatenation */
+ i__2[0] = 34, a__1[0] = "Illegal new number of i"
+ "nstruments ";
+ i__2[1] = 1, a__1[1] = durq;
+ i__2[2] = 19, a__1[2] = " at movement break!";
+ s_cat(ch__4, a__1, i__2, &c__3, (ftnlen)54);
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, ch__4, (
+ ftnlen)128, (ftnlen)54);
+ stop1_();
+ }
+ ninow = *(unsigned char *)durq - 48;
+ }
+ if (ninow > comkeys_1.noinst) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "New number o"
+ "f instruments must be <= original!", (ftnlen)
+ 128, (ftnlen)46);
+ stop1_();
+ }
+ i__1 = ninow;
+ for (iinow = 1; iinow <= i__1; ++iinow) {
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == ':') {
+
+/* Signals a 2-digit number */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)
+ 128, (ftnlen)1);
+ g1etchar_(lineq, &a1ll_2.iccount, dumq, (ftnlen)
+ 128, (ftnlen)1);
+ if (i_indx("12", durq, (ftnlen)2, (ftnlen)1) == 0
+ || i_indx("0123456789", dumq, (ftnlen)10,
+ (ftnlen)1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+/* Writing concatenation */
+ i__8[0] = 34, a__3[0] = "Illegal 2-digit ins"
+ "trument number ";
+ i__8[1] = 1, a__3[1] = durq;
+ i__8[2] = 1, a__3[2] = dumq;
+ i__8[3] = 19, a__3[3] = " at movement break!";
+ s_cat(ch__3, a__3, i__8, &c__4, (ftnlen)55);
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, ch__3,
+ (ftnlen)128, (ftnlen)55);
+ stop1_();
+ }
+ i__4 = a1ll_2.iccount - 2;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = a1ll_2.iccount - i__4;
+ ici__1.iciunit = lineq + i__4;
+ ici__1.icifmt = "(i2)";
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&iorig, (ftnlen)sizeof(
+ integer));
+ e_rsfi();
+ } else {
+
+/* durq is a single digit number for iorig */
+
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)
+ 1) == 0) {
+ i__4 = c1omnotes_1.ibarcnt -
+ c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+/* Writing concatenation */
+ i__2[0] = 26, a__1[0] = "Illegal instrument "
+ "number ";
+ i__2[1] = 1, a__1[1] = durq;
+ i__2[2] = 19, a__1[2] = " at movement break!";
+ s_cat(ch__5, a__1, i__2, &c__3, (ftnlen)46);
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, ch__5,
+ (ftnlen)128, (ftnlen)46);
+ stop1_();
+ }
+ iorig = *(unsigned char *)durq - 48;
+ }
+ if (iorig > comkeys_1.noinst) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "New inst"
+ "rument number must be <= original noinst!"
+ , (ftnlen)128, (ftnlen)49);
+ stop1_();
+ }
+ a1ll_2.nv += c1omget_1.nsperi[iorig - 1];
+/* L63: */
+ }
+ i__1 = a1ll_2.nv;
+ for (iiv = 1; iiv <= i__1; ++iiv) {
+
+/* Get clef names */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (! (i_indx("tsmanrbf", durq, (ftnlen)8, (ftnlen)1)
+ > 0 || *(unsigned char *)durq >= 48 && *(
+ unsigned char *)durq <= 55)) {
+ i__4 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff
+ + a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__4, "Must hav"
+ "e t,s,m,a,n,r,b,f or 1-7 as clef symbol "
+ "here!", (ftnlen)128, (ftnlen)53);
+ stop1_();
+ }
+
+/* Initialize new voices */
+
+ c1ommvl_1.nvmx[iiv - 1] = 1;
+ c1ommvl_1.ivmx[iiv - 1] = iiv;
+ a1ll_2.itsofar[iiv - 1] = 0;
+ a1ll_2.nnl[iiv - 1] = 0;
+ for (j = 1; j <= 200; ++j) {
+ a1ll_2.rest[iiv + j * 24 - 25] = FALSE_;
+/* L62: */
+ }
+/* L61: */
+ }
+
+/* Loop back up, this might not be last option in M */
+
+ g1etchar_(lineq, &a1ll_2.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Illegal characte"
+ "r after Movement break symbol!", (ftnlen)128, (
+ ftnlen)46);
+ stop1_();
+ }
+ if (compage_1.fracsys[compage_1.nmovbrk - 1] < .001f) {
+
+/* Since fracsys was not explicitly set, set it to prior value. */
+
+ if (compage_1.nmovbrk == 1) {
+ compage_1.fracsys[compage_1.nmovbrk - 1] =
+ c1omget_1.fracindent;
+ } else {
+ compage_1.fracsys[compage_1.nmovbrk - 1] =
+ compage_1.fracsys[compage_1.nmovbrk - 2];
+ }
+ }
+ }
+
+/* Just before exiting if-block for forced line breaks, set counter to use when */
+/* dealing with vertical space calcs */
+
+ compage_1.nistaff[compage_1.nflb] = a1ll_2.nv - 1;
+ } else if (*(unsigned char *)charq == 'F') {
+ compage_1.usefig = FALSE_;
+ } else if (*(unsigned char *)charq == 'X') {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ g1etx_(lineq, &a1ll_2.iccount, &c_true, &comkeys_1.shifton, &i__1,
+ &c1omnotes_1.udsp[c1omnotes_1.ibarcnt + a1ll_2.nbars], &
+ c1omnotes_1.wheadpt, (ftnlen)128);
+ } else if (*(unsigned char *)charq == 'I') {
+
+/* MIDI settings. */
+
+ if (c1ommvl_1.ivx != 1 || a1ll_2.nnl[0] != 0) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "MIDI stuff only allo"
+ "wed at start of block!", (ftnlen)128, (ftnlen)42);
+ stop1_();
+ }
+ if (a1ll_2.nv > 15) {
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ a1ll_2.nbars + 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "Sorry but MIDI does "
+ "not work with more than 15 voices!", (ftnlen)128, (
+ ftnlen)54);
+ stop1_();
+ }
+ commidi_1.ismidi = TRUE_;
+ getmidi_(&a1ll_2.nv, lineq, &a1ll_2.iccount, &c1omnotes_1.ibarcnt,
+ &c1omnotes_1.ibaroff, &a1ll_2.nbars, &a1ll_2.lenbar, &
+ mtrdenl, &c_true, (ftnlen)128);
+ } else if (*(unsigned char *)charq == 'M') {
+ setmac_(lineq, &a1ll_2.iccount, &c1omnotes_1.ibarcnt, &
+ c1omnotes_1.ibaroff, &a1ll_2.nbars, charq, durq, &
+ c1ommvl_1.ivx, &c1omget_1.nline, (ftnlen)128, (ftnlen)1, (
+ ftnlen)1);
+ } else if (i_indx(",.", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Continued rhythmic shortcut */
+
+ idotform = i_indx(". ,", charq, (ftnlen)3, (ftnlen)1);
+ if (idotform == 1) {
+
+/* Change duration of prior note */
+
+ a1ll_2.itsofar[c1ommvl_1.ivx - 1] -= a1ll_2.nodur[
+ c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 -
+ 25];
+ a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] *
+ 24 - 25] = a1ll_2.nodur[c1ommvl_1.ivx + a1ll_2.nnl[
+ c1ommvl_1.ivx - 1] * 24 - 25] * 3 / 2;
+ a1ll_2.itsofar[c1ommvl_1.ivx - 1] += a1ll_2.nodur[
+ c1ommvl_1.ivx + a1ll_2.nnl[c1ommvl_1.ivx - 1] * 24 -
+ 25];
+ }
+ ++idotform;
+ numnum = 1;
+ cdot = TRUE_;
+ goto L1;
+ } else {
+ s_wsle(&io___636);
+ do_lio(&c__9, &c__1, "ASCII code:", (ftnlen)11);
+ i__1 = *(unsigned char *)charq;
+ do_lio(&c__3, &c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsle();
+ i__1 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff + a1ll_2.nbars +
+ 1;
+ errmsg_(lineq, &a1ll_2.iccount, &i__1, "This character is not al"
+ "lowed here!", (ftnlen)128, (ftnlen)35);
+ s_wsle(&io___637);
+ do_lio(&c__9, &c__1, "ASCII code:", (ftnlen)11);
+ i__1 = *(unsigned char *)charq;
+ do_lio(&c__3, &c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsle();
+ stop1_();
+ }
+ }
+ return 0;
+} /* g1etnote_ */
+
+/* Subroutine */ int g1etset_(integer *nv, integer *noinst, integer *mtrnuml,
+ integer *mtrdenl, integer *mtrnmp, integer *mtrdnp, real *xmtrnum0,
+ integer *newkey, integer *npages, integer *nsyst, integer *musize,
+ logical *bottreb)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3];
+ integer i__1, i__2[2], i__3[3];
+ real r__1;
+ char ch__1[3], ch__2[1], ch__3[50];
+
+ /* Builtin functions */
+ integer s_cmp(char *, char *, ftnlen, ftnlen), s_wsle(cilist *), do_lio(
+ integer *, integer *, char *, ftnlen), e_wsle(void), i_nint(real *
+ ), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(
+ void), i_indx(char *, char *, ftnlen, ftnlen);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ static integer i__, iv;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ extern /* Subroutine */ int stop1_(void);
+ static char lineq[128];
+ static integer lpath, iinst;
+ extern doublereal readin_(char *, integer *, integer *, ftnlen);
+ extern /* Subroutine */ int getbuf_(char *, ftnlen), errmsg_(char *,
+ integer *, integer *, char *, ftnlen, ftnlen), printl_(char *,
+ ftnlen);
+ static logical newway;
+ static integer iccount;
+
+ /* Fortran I/O blocks */
+ static cilist io___640 = { 0, 6, 0, 0, 0 };
+ static cilist io___641 = { 0, 6, 0, "(1x,a46,i3)", 0 };
+ static cilist io___642 = { 0, 6, 0, "(a)", 0 };
+ static cilist io___645 = { 0, 6, 0, "(a)", 0 };
+ static cilist io___646 = { 0, 6, 0, "(a)", 0 };
+ static cilist io___647 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Get the first line */
+
+ iccount = 0;
+ c1omget_1.nline = 1;
+L9:
+ getbuf_(lineq, (ftnlen)128);
+ if (*(unsigned char *)lineq == '%') {
+ ++c1omget_1.nline;
+ goto L9;
+ }
+ if (s_cmp(lineq, "---", (ftnlen)3, (ftnlen)3) == 0) {
+
+/* Have TeX input until next line that starts with '---' */
+
+L3:
+ ++c1omget_1.nline;
+ getbuf_(lineq, (ftnlen)128);
+ if (inbuff_1.ilbuf > inbuff_1.nlbuf) {
+ goto L1;
+ }
+ goto L2;
+L1:
+ s_wsle(&io___640);
+ do_lio(&c__9, &c__1, "You did not terminate type 0 TeX input with \""
+ "---\"", (ftnlen)49);
+ e_wsle();
+ stop1_();
+L2:
+ if (s_cmp(lineq, "---", (ftnlen)3, (ftnlen)3) != 0) {
+ goto L3;
+ }
+
+/* Force a new line read on first call to readin */
+
+ iccount = 128;
+ }
+
+/* Here, lineq and nline are first non-TeX lines. */
+
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *nv = i_nint(&r__1);
+ if (*nv > 24) {
+ s_wsfe(&io___641);
+ do_fio(&c__1, "In setup data, number of voices cannot exceed", (
+ ftnlen)45);
+ do_fio(&c__1, (char *)&c__24, (ftnlen)sizeof(integer));
+ e_wsfe();
+ stop1_();
+ }
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *noinst = i_nint(&r__1);
+ if (*noinst > *nv) {
+ s_wsfe(&io___642);
+ do_fio(&c__1, "In setup data, cannot have more instruments than stav"
+ "es", (ftnlen)55);
+ e_wsfe();
+ stop1_();
+ }
+ newway = *noinst <= 0;
+ if (newway) {
+ *noinst = -(*noinst);
+ }
+ i__1 = *noinst;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+
+/* Seve # of staves per inst in case later drop some inst's. */
+
+ if (newway) {
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ c1omget_1.nsperi[iinst - 1] = i_nint(&r__1);
+ } else if (iinst > 1) {
+ c1omget_1.nsperi[iinst - 1] = 1;
+ } else {
+ c1omget_1.nsperi[iinst - 1] = *nv - *noinst + 1;
+ }
+/* L10: */
+ }
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *mtrnuml = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *mtrdenl = i_nint(&r__1);
+/* c */
+/* c Kluge!!! */
+/* c */
+/* if (mtrdenl .eq. 1) then */
+/* mtrdenl = 2 */
+/* mtrnuml = mtrnuml*2 */
+/* end if */
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *mtrnmp = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *mtrdnp = i_nint(&r__1);
+ if (*mtrnmp == 0 && *mtrdnp >= 8) {
+ s_wsfe(&io___645);
+ do_fio(&c__1, "In setup data, with mtrnmp=0, mtrdnp must be <8", (
+ ftnlen)47);
+ e_wsfe();
+ stop1_();
+ }
+ *xmtrnum0 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *newkey = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *npages = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *nsyst = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)128);
+ *musize = i_nint(&r__1);
+ c1omget_1.fracindent = readin_(lineq, &iccount, &c1omget_1.nline, (ftnlen)
+ 128);
+ if (c1omget_1.fracindent >= 1.f) {
+ s_wsfe(&io___646);
+ do_fio(&c__1, "In setup data, fracindent must be <1", (ftnlen)36);
+ e_wsfe();
+ stop1_();
+ }
+ if (*npages > *nsyst) {
+ s_wsle(&io___647);
+ do_lio(&c__9, &c__1, "Error in input file: npages > nsyst", (ftnlen)
+ 35);
+ e_wsle();
+ stop1_();
+ } else if ((*musize - 16) * (*musize - 20) * (*musize - 24) * (*musize -
+ 29) != 0) {
+ printl_("Musicsize must be 16, 20, 24, or 29", (ftnlen)35);
+ stop1_();
+ }
+
+/* Next noinst non-comment lines are names of instruments. */
+
+ i__1 = abs(*noinst);
+ for (i__ = 1; i__ <= i__1; ++i__) {
+L5:
+ getbuf_(lineq, (ftnlen)128);
+ ++c1omget_1.nline;
+ if (*(unsigned char *)lineq == '%') {
+ goto L5;
+ }
+/* L4: */
+ }
+
+/* Mext non-comment line has nv clef names */
+
+L6:
+ getbuf_(lineq, (ftnlen)128);
+ ++c1omget_1.nline;
+ if (*(unsigned char *)lineq == '%') {
+ goto L6;
+ }
+ i__1 = *nv;
+ for (iv = 1; iv <= i__1; ++iv) {
+/* if (index('brnamstf0123456',lineq(iv:iv)) .eq. 0) then */
+ if (i_indx("brnamstf01234567", lineq + (iv - 1), (ftnlen)16, (ftnlen)
+ 1) == 0) {
+ errmsg_(lineq, &iv, &c__0, "There should be a clef symbol here!",
+ (ftnlen)128, (ftnlen)35);
+ stop1_();
+ }
+/* L7: */
+ }
+ i__1 = *nv;
+ if (s_cmp(lineq + i__1, " ", *nv + 1 - i__1, (ftnlen)1) != 0) {
+ i__1 = *nv + 1;
+ errmsg_(lineq, &i__1, &c__0, "There should be a blank here!", (ftnlen)
+ 128, (ftnlen)29);
+ stop1_();
+ }
+
+/* Set flag if voice 1 is treble, since it affects vertical spacing */
+
+ *bottreb = *(unsigned char *)lineq == 't';
+
+/* Mext non-comment line has path name */
+
+L8:
+ getbuf_(lineq, (ftnlen)128);
+ ++c1omget_1.nline;
+ if (*(unsigned char *)lineq == '%') {
+ goto L8;
+ }
+ lpath = i_indx(lineq, " ", (ftnlen)128, (ftnlen)1) - 1;
+/* Writing concatenation */
+ i__2[0] = 2, a__1[0] = "/:";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__2[1] = 1, a__1[1] = ch__2;
+ s_cat(ch__1, a__1, i__2, &c__2, (ftnlen)3);
+ if (i_indx(ch__1, lineq + (lpath - 1), (ftnlen)3, (ftnlen)1) == 0) {
+/* Writing concatenation */
+ i__3[0] = 47, a__2[0] = "Last character of pathname is not \"/\",\""
+ ":\", or \"";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__2[1] = ch__2;
+ i__3[2] = 2, a__2[2] = "\"!";
+ s_cat(ch__3, a__2, i__3, &c__3, (ftnlen)50);
+ errmsg_(lineq, &lpath, &c__0, ch__3, (ftnlen)128, (ftnlen)50);
+ stop1_();
+ }
+ return 0;
+} /* g1etset_ */
+
+/* Subroutine */ int g1etx_(char *lineq, integer *iccount, logical *notxtup,
+ logical *shifton, integer *ibar, real *udsp, real *wheadpt, ftnlen
+ lineq_len)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static real fnum;
+ static char dumq[1];
+ extern /* Subroutine */ int stop1_(void);
+ static char charq[1];
+ static integer ipbsc, npbsc;
+ static logical number;
+ extern /* Subroutine */ int errmsg_(char *, integer *, integer *, char *,
+ ftnlen, ftnlen), readnum_(char *, integer *, char *, real *,
+ ftnlen, ftnlen), g1etchar_(char *, integer *, char *, ftnlen,
+ ftnlen);
+
+
+/* Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol. */
+/* In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols. */
+
+ number = FALSE_;
+ npbsc = 0;
+L1:
+ g1etchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("PBS:", charq, (ftnlen)4, (ftnlen)1) > 0) {
+
+/* Continue checking here even if "P". */
+
+ ipbsc = i_indx("PBS:", charq, (ftnlen)4, (ftnlen)1);
+ if (bit_test(npbsc,ipbsc)) {
+ errmsg_(lineq, iccount, ibar, "Only one allowed per symbol!", (
+ ftnlen)128, (ftnlen)28);
+ stop1_();
+/* else if (.not.notxtup .and. ipbsc.gt.2) then */
+/* call errmsg(lineq,iccount,ibar,'Not allowed in xtuplet!') */
+/* call stop1() */
+ }
+ npbsc = bit_set(npbsc,ipbsc);
+ goto L1;
+ } else if (i_indx("+-.0123456789", charq, (ftnlen)13, (ftnlen)1) > 0) {
+ number = TRUE_;
+ if (i_indx("+-", charq, (ftnlen)2, (ftnlen)1) > 0) {
+ g1etchar_(lineq, iccount, dumq, (ftnlen)128, (ftnlen)1);
+ if (i_indx(".0123456789", dumq, (ftnlen)11, (ftnlen)1) == 0) {
+ errmsg_(lineq, iccount, ibar, "Expected a number here!", (
+ ftnlen)128, (ftnlen)23);
+ stop1_();
+ }
+ }
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq == '-') {
+ fnum = -fnum;
+ }
+ if (*(unsigned char *)dumq != 'p') {
+ --(*iccount);
+ fnum *= *wheadpt;
+ }
+ goto L1;
+ } else if (*(unsigned char *)charq != ' ') {
+ errmsg_(lineq, iccount, ibar, "Not allowed in \"X\" symbol!", (ftnlen)
+ 128, (ftnlen)26);
+ stop1_();
+ }
+
+/* Done with parsing. Other checks */
+
+ if ((6 & npbsc) == 6 || (24 & npbsc) == 24) {
+ i__1 = *iccount - 1;
+ errmsg_(lineq, &i__1, ibar, "Cannot have both \"P\" and \"B\" or \""
+ "S\" and \":\"!", (ftnlen)128, (ftnlen)44);
+ stop1_();
+ }
+ if (bit_test(npbsc,4)) {
+ if (number) {
+ if (*shifton) {
+ i__1 = *iccount - 1;
+ errmsg_(lineq, &i__1, ibar, "Started a group shift without s"
+ "topping prior one!", (ftnlen)128, (ftnlen)49);
+ stop1_();
+ } else {
+ *shifton = TRUE_;
+ }
+ } else {
+ if (! (*shifton)) {
+ i__1 = *iccount - 1;
+ errmsg_(lineq, &i__1, ibar, "Ended a group shift without sta"
+ "rting one!", (ftnlen)128, (ftnlen)41);
+ stop1_();
+ } else {
+ *shifton = FALSE_;
+ }
+ }
+ }
+
+/* P off, S off, c off => normal user-defined space. Add to udsp (later fsyst) */
+
+ if ((npbsc & 26) == 0) {
+ *udsp += fnum;
+ }
+ if (! number && ! bit_test(npbsc,4)) {
+ i__1 = *iccount - 1;
+ errmsg_(lineq, &i__1, ibar, "Must have either a number or a colon "
+ "in \"X\" symbol!", (ftnlen)128, (ftnlen)51);
+ stop1_();
+ }
+ return 0;
+} /* g1etx_ */
+
+/* integer*4 function mytime() */
+/* CHARACTER(10) tq */
+/* CALL DATE_AND_TIME(TIME=tq) */
+/* read(tq,'(2i2,f6.3)')ih,im,ts */
+/* mytime = 1000*(ts+60*(im+60*ih)) */
+/* return */
+/* end */
+/* Subroutine */ int getbuf_(char *lineq, ftnlen lineq_len)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ i__1 = inbuff_1.ipbuf;
+ s_copy(lineq, inbuff_1.bufq + i__1, lineq_len, inbuff_1.ipbuf +
+ inbuff_1.lbuf[inbuff_1.ilbuf - 1] - i__1);
+ inbuff_1.ipbuf += inbuff_1.lbuf[inbuff_1.ilbuf - 1];
+ ++inbuff_1.ilbuf;
+ return 0;
+} /* getbuf_ */
+
+/* Subroutine */ int getchar_(char *lineq, integer *iccount, char *charq,
+ ftnlen lineq_len, ftnlen charq_len)
+{
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer ndxm;
+ extern /* Subroutine */ int mrec1_(char *, integer *, integer *, ftnlen),
+ read10_(char *, logical *, ftnlen);
+
+
+/* Gets the next character out of lineq*128. If pointer iccount=128 on entry, */
+/* then reads in a new line. Resets iccount. Ends program if no more input. */
+
+ if (*iccount == 128) {
+ read10_(lineq, &comget_1.lastchar, (ftnlen)128);
+ if (comget_1.lastchar) {
+ return 0;
+ }
+ if (! commac_1.endmac) {
+ *iccount = 0;
+ } else {
+ commac_1.endmac = FALSE_;
+ *iccount = commac_1.icchold;
+ s_copy(lineq, commac_1.lnholdq, (ftnlen)128, (ftnlen)128);
+ }
+ if (commac_1.mrecord) {
+ mrec1_(lineq, iccount, &ndxm, (ftnlen)128);
+ }
+ }
+ ++(*iccount);
+ *(unsigned char *)charq = *(unsigned char *)&lineq[*iccount - 1];
+ return 0;
+/* L999: */
+ comget_1.lastchar = TRUE_;
+ return 0;
+} /* getchar_ */
+
+/* Subroutine */ int getdyn_(integer *ivx, integer *ip, integer *irest,
+ integer *iornq, char *lineq, integer *iccount, ftnlen lineq_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1, i__2[3], i__3;
+ real r__1;
+ char ch__1[4], ch__2[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_cmp(char *, char *, ftnlen, ftnlen), i_indx(char *, char *,
+ ftnlen, ftnlen);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+ integer s_rsfi(icilist *), do_fio(integer *, char *, ftnlen), e_rsfi(void)
+ , i_nint(real *);
+
+ /* Local variables */
+ static integer ipm, iend;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer idno, idyn;
+ static real fnum;
+ static char durq[1];
+ static integer idno1;
+ extern /* Subroutine */ int stop1_(void), printl_(char *, ftnlen),
+ readnum_(char *, integer *, char *, real *, ftnlen, ftnlen),
+ setbits_(integer *, integer *, integer *, integer *);
+ static char dynsymq[4];
+
+
+/* Get info for dynamic mark. Enter after getting "D", iccount sits on "D" */
+/* Bits in idyndat are as follows */
+/* 00-03 ivx */
+/* 04-11 ip */
+/* 12-15 code for type of mark */
+/* 0 => arbitrary text */
+/* 1-12 => pppp,ppp,pp,p,mp,mf,f,fp,sfz,ff,fff,ffff */
+/* If (.not. fontslur) */
+/* 13 => hairpin start, 14,15 => <,> (ending) */
+/* else */
+/* 13 < start, 14 > start, 15 ending */
+/* end if */
+/* 16 flag for vertical offset */
+/* 17-23 vertical offset + 64 , \internote */
+/* 31 Hairpin start (0), stop (1) */
+
+/* idynda2 */
+
+/* 00 flag for horizontal offset */
+/* 01-09 (horizontal offset)/10 + 25.6 notehead widths */
+/* 10 5th bit for ivx (5/15/10) */
+
+ *irest = bit_set(*irest,26);
+ ++comdyn_1.ndyn;
+ idyn = *ivx;
+ comdyn_1.idynda2[comdyn_1.ndyn - 1] = 0;
+ if (*ivx >= 16) {
+ setbits_(&comdyn_1.idynda2[comdyn_1.ndyn - 1], &c__1, &c__10, &c__1);
+ }
+ setbits_(&idyn, &c__8, &c__4, ip);
+ i__1 = *iccount;
+ if (s_cmp(lineq + i__1, "\"", *iccount + 1 - i__1, (ftnlen)1) == 0) {
+
+/* text-dynamic */
+
+ ++comdyn_1.ntxtdyn;
+ i__1 = *iccount + 1;
+ iend = *iccount + i_indx(lineq + i__1, "\"", 128 - i__1, (ftnlen)1) +
+ 2;
+ i__1 = *iccount + 1;
+ s_copy(comdyn_1.txtdynq + (comdyn_1.ntxtdyn - 1 << 7), lineq + i__1, (
+ ftnlen)128, iend - 2 - i__1);
+
+/* c Store ivx, ip in bits 0-11 */
+/* Store ivx, ip in bits 0-12 */
+
+/* ivxiptxt(ntxtdyn) = idyn */
+ comdyn_1.ivxiptxt[comdyn_1.ntxtdyn - 1] = *ivx + (*ip << 5);
+ ipm = i_indx("- +", lineq + (iend - 1), (ftnlen)3, (ftnlen)1);
+ idno = 0;
+ } else {
+
+/* Word-group or hairpin */
+
+ for (iend = *iccount + 2; iend <= 128; ++iend) {
+ ipm = i_indx("- +", lineq + (iend - 1), (ftnlen)3, (ftnlen)1);
+
+/* Exit the loop at first blank, "+", or "-" */
+
+ if (ipm > 0) {
+ goto L2;
+ }
+/* L1: */
+ }
+L2:
+ i__1 = *iccount;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = iend - 1 - i__1;
+ ici__1.iciunit = lineq + i__1;
+/* Writing concatenation */
+ i__2[0] = 2, a__1[0] = "(a";
+ i__3 = iend + 47 - *iccount;
+ chax_(ch__2, (ftnlen)1, &i__3);
+ i__2[1] = 1, a__1[1] = ch__2;
+ i__2[2] = 1, a__1[2] = ")";
+ ici__1.icifmt = (s_cat(ch__1, a__1, i__2, &c__3, (ftnlen)4), ch__1);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, dynsymq, (ftnlen)4);
+ e_rsfi();
+ idno = (i_indx("ppppppp pp p mp mf f fp sfz ff fff ffff "
+ "< > ", dynsymq, (ftnlen)60, (ftnlen)4) + 3) / 4;
+
+/* Save for later down */
+
+ idno1 = idno;
+ }
+
+/* Set flag to check level later if in beam */
+
+ *iornq = bit_set(*iornq,23);
+ if (idno >= 14) {
+
+/* Hairpin here. Check if opposite type from one that's already on */
+
+ if (idno == 14 && bit_test(comdyn_1.listdecresc,*ivx) || idno == 15 &&
+ bit_test(comdyn_1.listcresc,*ivx)) {
+ printl_(" ", (ftnlen)1);
+ printl_("Started one kind of hairpin while other is on", (ftnlen)
+ 45);
+ stop1_();
+ }
+
+/* Start or stop? */
+
+ if (bit_test(comdyn_1.listcresc,*ivx) || bit_test(
+ comdyn_1.listdecresc,*ivx)) {
+
+/* Cresc/decresc is on, this is an ending. If fontslur, leave idno as is. */
+
+ if (! comslur_1.fontslur) {
+ idno = 15;
+ }
+ } else if (comslur_1.fontslur) {
+
+/* Start of font slur */
+
+ idno = 13;
+ } else {
+
+/* Start of postscript slur */
+
+ --idno;
+ }
+ }
+
+/* Now that we used list[de]cresc, update */
+
+ if (idno >= 13) {
+ if (idno == 15 || comslur_1.fontslur && idno == 14) {
+
+/* Something's ending */
+
+ if (bit_test(comdyn_1.listcresc,*ivx)) {
+
+/* It's a cresc! */
+
+ comdyn_1.listcresc = bit_clear(comdyn_1.listcresc,*ivx);
+ } else {
+ comdyn_1.listdecresc = bit_clear(comdyn_1.listdecresc,*ivx);
+ }
+ } else {
+
+/* Something's starting */
+
+ if (idno1 == 14) {
+
+/* It's a cresc! */
+
+ comdyn_1.listcresc = bit_set(comdyn_1.listcresc,*ivx);
+ } else {
+ comdyn_1.listdecresc = bit_set(comdyn_1.listdecresc,*ivx);
+ }
+ }
+ }
+ setbits_(&idyn, &c__4, &c__12, &idno);
+ *iccount = iend;
+ if (ipm != 2) {
+
+/* There is a vertical shift */
+
+ idyn = bit_set(idyn,16);
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ idno = i_nint(&fnum);
+ i__1 = (ipm - 2) * idno + 64;
+ setbits_(&idyn, &c__7, &c__17, &i__1);
+ ipm = i_indx("- +", durq, (ftnlen)3, (ftnlen)1);
+ if (ipm != 2) {
+
+/* There is a horizontal shift */
+
+/* idynda2(ndyn) = ibset(idyn,23) */
+ comdyn_1.idynda2[comdyn_1.ndyn - 1] = bit_set(comdyn_1.idynda2[
+ comdyn_1.ndyn - 1],0);
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ r__1 = fnum * 10;
+ idno = i_nint(&r__1);
+ i__1 = (ipm - 2) * idno + 256;
+ setbits_(&comdyn_1.idynda2[comdyn_1.ndyn - 1], &c__9, &c__1, &
+ i__1);
+ }
+
+/* iccount should be on the blank at the end of the entire symbol */
+
+ }
+ comdyn_1.idyndat[comdyn_1.ndyn - 1] = idyn;
+ return 0;
+} /* getdyn_ */
+
+/* Subroutine */ int getfig_(integer *itoff, char *charq, char *lineq,
+ integer *iccount, logical *isfig, integer *itfig, integer *itsofar,
+ integer *nodur, char *figq, integer *ivupfig, integer *nfigs, ftnlen
+ charq_len, ftnlen lineq_len, ftnlen figq_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer i__1[2];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_rsfi(icilist *), do_fio(integer *, char *, ftnlen), e_rsfi(void)
+ ;
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer i_nint(real *);
+
+ /* Local variables */
+ static integer lfig, loff, noff;
+ static real fnum;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), readnum_(char *, integer *, char *, real *, ftnlen,
+ ftnlen);
+ extern integer ifnodur_(integer *, char *, ftnlen);
+
+
+/* As of 11/26/08, trapped extra figures in getnote, so no need here. */
+
+/* if (ivx .gt. 2) then */
+/* c */
+/* c Read past the figure */
+/* c */
+/* 6 call getchar(lineq,iccount,charq) */
+/* if (charq .ne. ' ') go to 6 */
+/* return */
+/* end if */
+ ++(*nfigs);
+ *ivupfig = 0;
+ *itoff = 0;
+ if (*(unsigned char *)charq == 'x') {
+
+/* Floating figure. */
+
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 1;
+ ici__1.iciunit = charq;
+ ici__1.icifmt = "(i1)";
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&noff, (ftnlen)sizeof(integer));
+ e_rsfi();
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 1;
+ ici__1.iciunit = charq;
+ ici__1.icifmt = "(i1)";
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&loff, (ftnlen)sizeof(integer));
+ e_rsfi();
+ *itoff = noff * ifnodur_(&loff, "x", (ftnlen)1);
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ } else {
+
+/* Figure on a note */
+
+ *isfig = TRUE_;
+ }
+ *itfig = *itsofar + *itoff - *nodur;
+ lfig = 1;
+ s_copy(figq, charq, (ftnlen)10, (ftnlen)1);
+L5:
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+/* if (charq .ne. ' ') then */
+ if (i_indx(" +", charq, (ftnlen)2, (ftnlen)1) == 0) {
+/* Writing concatenation */
+ i__1[0] = lfig, a__1[0] = figq;
+ i__1[1] = 1, a__1[1] = charq;
+ s_cat(figq, a__1, i__1, &c__2, (ftnlen)10);
+ ++lfig;
+ goto L5;
+ } else if (*(unsigned char *)charq == '+') {
+
+/* Get vertical offset for figure. Next character after number has to be blank. */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, charq, &fnum, (ftnlen)128, (ftnlen)1);
+ *ivupfig = i_nint(&fnum);
+ }
+ return 0;
+} /* getfig_ */
+
+/* Subroutine */ int getgrace_(integer *ivx, integer *nnl, char *lineq,
+ integer *iccount, integer *islur, integer *iornq, integer *ipl,
+ integer *ndlev, integer *lastlev, integer *iv, integer *nv, ftnlen
+ lineq_len)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), i_nint(real *);
+
+ /* Local variables */
+ static integer iclastlev, kv, ing, ioct;
+ static real fnum;
+ static char durq[1], charq[1];
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), readnum_(char *, integer *, char *, real *, ftnlen,
+ ftnlen);
+ extern integer ifnolev_(char *, integer *, integer *, ftnlen);
+
+
+/* Grace, comes *before* main note: */
+/* UNLESS there's an 'A' or 'W' after the 'G' */
+/* ngrace = # of grace note groups so far in block */
+/* ivg(ngrace), ipg(ngrace) */
+/* nng(ngrace) = # of notes in this group: default = 1 */
+/* ngstrt(ngrace) = starting position in nolevg of levels for this grace */
+/* multg(ngrace) = multiplicity: default = 1; input as 'm(digit)' */
+/* upg(ngrace) = logical for beam or stem dirn: default T, input'u,l' */
+/* slurg(ngrace) = logical for slur; default F, input 's' */
+/* slashg(ngrace) = T if slash; default is F, input 'x' */
+/* These data MUST precede note name of first note */
+/* nolevg, naccg: lists of levels and accid's, indexed as described above. */
+
+ /* Parameter adjustments */
+ ndlev -= 25;
+ ipl -= 25;
+ --iornq;
+ islur -= 25;
+ --nnl;
+
+ /* Function Body */
+ ++comgrace_1.ngrace;
+ comgrace_1.ivg[comgrace_1.ngrace - 1] = *ivx;
+ comgrace_1.ipg[comgrace_1.ngrace - 1] = nnl[*ivx] + 1;
+ if (comgrace_1.ngrace == 1) {
+ comgrace_1.ngstrt[comgrace_1.ngrace - 1] = 1;
+ } else {
+ comgrace_1.ngstrt[comgrace_1.ngrace - 1] = comgrace_1.ngstrt[
+ comgrace_1.ngrace - 2] + comgrace_1.nng[comgrace_1.ngrace - 2]
+ ;
+ }
+ islur[*ivx + (nnl[*ivx] + 1) * 24] = bit_set(islur[*ivx + (nnl[*ivx] + 1)
+ * 24],4);
+ comgrace_1.nng[comgrace_1.ngrace - 1] = 1;
+ comgrace_1.multg[comgrace_1.ngrace - 1] = 1;
+ comgrace_1.upg[comgrace_1.ngrace - 1] = TRUE_;
+ comgrace_1.slurg[comgrace_1.ngrace - 1] = FALSE_;
+ comgrace_1.slashg[comgrace_1.ngrace - 1] = FALSE_;
+L18:
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("WA", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Grace is on note that was already done, so shift flags forward one note. */
+/* This puts flag on actual note with grace; later for W will go ahead one more. */
+
+ comgrace_1.ipg[comgrace_1.ngrace - 1] = nnl[*ivx];
+ islur[*ivx + (nnl[*ivx] + 1) * 24] = bit_clear(islur[*ivx + (nnl[*ivx]
+ + 1) * 24],4);
+ islur[*ivx + nnl[*ivx] * 24] = bit_set(islur[*ivx + nnl[*ivx] * 24],4)
+ ;
+ if (comgrace_1.slurg[comgrace_1.ngrace - 1]) {
+ iornq[*ivx + nnl[*ivx] * 24] = bit_set(iornq[*ivx + nnl[*ivx] *
+ 24],24);
+ }
+ if (*(unsigned char *)charq == 'A') {
+
+/* close After, clear way-after bit, to ensure priority of most recent A/W */
+
+ ipl[*ivx + nnl[*ivx] * 24] = bit_set(bit_clear(ipl[*ivx + nnl[*
+ ivx] * 24],31),29);
+ } else {
+
+/* Way after; later assign to following note, and position like normal grace. */
+
+ ipl[*ivx + nnl[*ivx] * 24] = bit_set(bit_clear(ipl[*ivx + nnl[*
+ ivx] * 24],29),31);
+ }
+ } else if (*(unsigned char *)charq == 'm') {
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ comgrace_1.multg[comgrace_1.ngrace - 1] = *(unsigned char *)charq -
+ 48;
+ } else if (i_indx("123456789", charq, (ftnlen)9, (ftnlen)1) > 0) {
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ comgrace_1.nng[comgrace_1.ngrace - 1] = i_nint(&fnum);
+ } else if (*(unsigned char *)charq == 'l') {
+ comgrace_1.upg[comgrace_1.ngrace - 1] = FALSE_;
+ } else if (*(unsigned char *)charq == 's') {
+ comgrace_1.slurg[comgrace_1.ngrace - 1] = TRUE_;
+ if (nnl[*ivx] > 0) {
+
+/* If A- or W-grace, set signal to start slur on main note. */
+
+ if (bit_test(ipl[*ivx + nnl[*ivx] * 24],31) || bit_test(ipl[*ivx
+ + nnl[*ivx] * 24],29)) {
+ iornq[*ivx + nnl[*ivx] * 24] = bit_set(iornq[*ivx + nnl[*ivx]
+ * 24],24);
+ }
+ }
+ } else if (*(unsigned char *)charq == 'x') {
+ comgrace_1.slashg[comgrace_1.ngrace - 1] = TRUE_;
+ } else if (*(unsigned char *)charq == 'u') {
+ } else if (*(unsigned char *)charq == 'X') {
+
+/* Space before main note of grace. Number will come next. */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &comgrace_1.graspace[comgrace_1.ngrace
+ - 1], (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ }
+ if (i_indx("abcdefg", charq, (ftnlen)7, (ftnlen)1) == 0) {
+ goto L18;
+ }
+
+/* At this point, charq is first note name in grace */
+
+ i__1 = comgrace_1.ngstrt[comgrace_1.ngrace - 1] + comgrace_1.nng[
+ comgrace_1.ngrace - 1] - 1;
+ for (ing = comgrace_1.ngstrt[comgrace_1.ngrace - 1]; ing <= i__1; ++ing) {
+ comgrace_1.naccg[ing - 1] = 0;
+ ioct = 0;
+ if (ing > comgrace_1.ngstrt[comgrace_1.ngrace - 1]) {
+L55:
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq == ' ') {
+ goto L55;
+ }
+ }
+ iclastlev = 0;
+L9:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+ if (*(unsigned char *)durq == '+') {
+ *lastlev += 7;
+ iclastlev += 7;
+ } else if (*(unsigned char *)durq == '-') {
+ *lastlev += -7;
+ iclastlev += -7;
+ } else if (i_indx("fsn", durq, (ftnlen)3, (ftnlen)1) > 0) {
+ if (comgrace_1.naccg[ing - 1] == 0) {
+ comgrace_1.naccg[ing - 1] = i_indx("fsn", durq, (ftnlen)3,
+ (ftnlen)1);
+ } else {
+
+/* Double accidental */
+
+ comgrace_1.naccg[ing - 1] = bit_set(comgrace_1.naccg[ing
+ - 1],2);
+ }
+ } else {
+ ioct = *(unsigned char *)durq - 48;
+ }
+ goto L9;
+ }
+ if (ioct > 0) {
+ *lastlev = ifnolev_(charq, &ioct, &cominsttrans_1.itransamt[
+ cominsttrans_1.instno[*iv - 1] - 1], (ftnlen)1);
+ } else {
+ if (nnl[*ivx] == 0 && ing == comgrace_1.ngstrt[comgrace_1.ngrace
+ - 1]) {
+ if (*ivx <= *nv) {
+ kv = 1;
+ } else {
+ kv = 2;
+ }
+ *lastlev = ndlev[*iv + kv * 24] + iclastlev;
+ }
+ *lastlev = *lastlev - 3 + (ifnolev_(charq, &c__10, &
+ cominsttrans_1.itransamt[cominsttrans_1.instno[*iv - 1] -
+ 1], (ftnlen)1) - *lastlev + 3) % 7;
+ }
+ comgrace_1.nolevg[ing - 1] = *lastlev;
+/* L19: */
+ }
+
+/* Grace could come before first note of block, so reset end level. */
+
+ if (nnl[*ivx] == 0) {
+ if (*ivx <= *nv) {
+ kv = 1;
+ } else {
+ kv = 2;
+ }
+ ndlev[*iv + kv * 24] = *lastlev;
+ }
+ return 0;
+} /* getgrace_ */
+
+/* Subroutine */ int getitransinfo_(logical *from1, integer *ibarcnt, char *
+ lineq, integer *iccount, integer *ibaroff, integer *nbars, integer *
+ noinst, integer *iv, ftnlen lineq_len)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), i_nint(real *);
+
+ /* Local variables */
+ static integer ikey;
+ static real fnum;
+ static char durq[1];
+ extern /* Subroutine */ int stop1_(void);
+ static integer instn;
+ static logical store;
+ extern /* Subroutine */ int errmsg_(char *, integer *, integer *, char *,
+ ftnlen, ftnlen);
+ static integer itramt;
+ extern /* Subroutine */ int readnum_(char *, integer *, char *, real *,
+ ftnlen, ftnlen), g1etchar_(char *, integer *, char *, ftnlen,
+ ftnlen);
+
+/* ccccccccccccccccccccccc */
+/* c */
+/* c GetiTransInfo.for */
+/* c */
+/* ccccccccccccccccccccccc */
+
+/* Called from both g1etnote and getnote, after first 'i' in Ki[...] */
+/* On entry, iccount points to last char retrieved, which is 'i' */
+
+/* From1: locgical, true if called from g1etnote */
+/* ibarcnt: tells whether to set EarlyTransOn to true. */
+/* EarlyTransOn set false in blkdata, true here, back to false in topfile. */
+
+/* 110522/110529 */
+/* Instrument-wise transposition Ki[iInstTrans][+/-][iTransAmt][+/-][iTransKey] */
+/* and repeat i[...] for multiple instruments. Store info in g1etnot if ibarcnt=0 */
+/* so can pass to topfile (via comInstTrans), which is called before getnote. */
+/* Otherwise, will store info from getnote. Initialize EarlyTransOn and */
+/* LaterInstTrans to .false. in blockdata. Set EarlyTransOn from g1etnote; */
+/* LaterInstTrans from getnote. Zero both out after use. nInstTrans really */
+/* only needed for instrument-signatures, not transpositions. iTransAmt is */
+/* ALWAYS active per instrument. Set up instno(iv) so can fetch iTransAmt for */
+/* each staff. */
+
+/* iTransAmt stored as fn of instrument #, not like iTransKey which is */
+/* fn. of nm, just a counter, where corr. inst num is iInstTrans(nm). This */
+/* simplifies use of iTransAmt for all calls to ifnolev. */
+
+ *(unsigned char *)durq = 'x';
+/* Can't initialize in declaration stmt, only works onc */
+ if (! cominsttrans_1.earlytranson) {
+ cominsttrans_1.earlytranson = *from1 && *ibarcnt == 0;
+ }
+ store = cominsttrans_1.earlytranson && *ibarcnt == 0 || *ibarcnt > 0 && !
+ (*from1);
+ cominsttrans_1.laterinsttrans = ! (*from1) && *ibarcnt > 0;
+ if (store) {
+ cominsttrans_1.ninsttrans = 0;
+ }
+L1:
+ if (*(unsigned char *)durq == ' ') {
+ return 0;
+ }
+ g1etchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "There must be an instrument number h"
+ "ere!", (ftnlen)128, (ftnlen)40);
+ stop1_();
+ }
+ if (store) {
+ ++cominsttrans_1.ninsttrans;
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ instn = i_nint(&fnum);
+ if (instn > *noinst) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Instrument number out of range!", (
+ ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+ if (store) {
+ cominsttrans_1.iinsttrans[cominsttrans_1.ninsttrans - 1] = instn;
+ }
+
+/* durq is +/- following inst # (for iTransAmt), iccount is on it. */
+
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "1st character after instrument numbe"
+ "r must be \"+,-\"!", (ftnlen)128, (ftnlen)52);
+ stop1_();
+ }
+ itramt = 44 - *(unsigned char *)durq;
+/* +1/-1 for itramt */
+ g1etchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "There must be a transposition amount"
+ " here!", (ftnlen)128, (ftnlen)42);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (store) {
+ cominsttrans_1.itransamt[instn - 1] = i_nint(&fnum) * itramt;
+ }
+
+/* durq is +/- following iTransAmt (for iTransKey), iccount is on it. */
+
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "1st character after transposition am"
+ "ount must be \"+,-\"!", (ftnlen)128, (ftnlen)55);
+ stop1_();
+ }
+ ikey = 44 - *(unsigned char *)durq;
+/* +1/-1 */
+ g1etchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "There must be a key indicator here!",
+ (ftnlen)128, (ftnlen)35);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (store) {
+ cominsttrans_1.itranskey[cominsttrans_1.ninsttrans - 1] = i_nint(&
+ fnum) * ikey;
+ }
+
+/* durq is now 1st character after iTransKey, should be either 'i' or ' ' */
+
+ if (*(unsigned char *)durq != 'i' && *(unsigned char *)durq != ' ') {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "There must be blank or \"i\" here!", (
+ ftnlen)128, (ftnlen)32);
+ stop1_();
+ }
+ goto L1;
+} /* getitransinfo_ */
+
+/* Subroutine */ int getmidi_(integer *nv, char *lineq, integer *iccount,
+ integer *ibarcnt, integer *ibaroff, integer *nbars, integer *lenbar,
+ integer *mtrdenl, logical *first, ftnlen lineq_len)
+{
+ /* Initialized data */
+
+ static shortint midinum[26] = { 1,5,7,13,20,25,33,41,42,43,44,57,58,59,61,
+ 65,66,67,68,69,71,72,74,75,8,55 };
+
+ /* System generated locals */
+ address a__1[2];
+ integer i__1, i__2[2], i__3, i__4;
+ real r__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), i_nint(real *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ static real pausemid;
+ extern /* Subroutine */ int midievent_(char *, integer *, integer *,
+ ftnlen);
+ static integer icm, ipm;
+ static real qpm;
+ static integer ivx;
+ static real fnum;
+ static char durq[1];
+ extern /* Subroutine */ int stop1_(void);
+ static integer iname, numb16;
+ static char instq[2];
+ extern /* Subroutine */ int errmsg_(char *, integer *, integer *, char *,
+ ftnlen, ftnlen), addmidi_(integer *, integer *, integer *,
+ integer *, real *, logical *, logical *), getchar_(char *,
+ integer *, char *, ftnlen, ftnlen), readnum_(char *, integer *,
+ char *, real *, ftnlen, ftnlen);
+
+
+/* Use this from both pmxa and pmxb to input and check midi data. "first" tells */
+/* whether pmxa or pmxb. If .not.first, then tempo and pause commands cause */
+/* things to be written immediately into the midi storage buffers. */
+
+
+/* immac(i) is the index of i-th macro, i=1,nmac. Also make a list containing */
+/* nmidsec section starts and stops based on PLAYING macros (not recording). */
+
+
+/* Instrument codes */
+
+/* XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbXtuXfrXsoXalXteX */
+
+/* bsXobXbaXclXflXreXctXvo */
+
+L1:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 't') {
+
+/* Tempo in beats ber minute */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Expected an integer here for the"
+ " pause!", (ftnlen)128, (ftnlen)39);
+ stop1_();
+/* else if (mmacrec) then */
+/* call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1, */
+/* * 'Cannot change MIDI tempo while recording a MidiMacro!') */
+/* call stop1() */
+ }
+ readnum_(lineq, iccount, durq, &qpm, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ if (! (*first)) {
+ i__1 = i_nint(&qpm);
+ midievent_("t", &i__1, &c__0, (ftnlen)1);
+ commmac_1.gottempo = TRUE_;
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 'p') {
+
+/* Insert a pause. pausemid = pause in 1/4's */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789.", durq, (ftnlen)11, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Expected a number here for the p"
+ "ause!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &pausemid, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ if (! (*first)) {
+
+/* Compute a meter for the pause. This is only to keep MidiNotate on track. */
+/* Round pause to nearest 16th. Let denominator always be 16. */
+
+ r__1 = pausemid * 4;
+ numb16 = i_nint(&r__1);
+ midievent_("m", &numb16, &c__16, (ftnlen)1);
+
+/* Put in pausemid beats of rest */
+
+ i__1 = commidi_1.numchan - 1;
+ for (icm = 0; icm <= i__1; ++icm) {
+ r__1 = numb16 * 4.f;
+ addmidi_(&icm, &c__0, &c__0, &c__0, &r__1, &c_true, &c_false);
+/* L3: */
+ }
+ r__1 = pausemid * 240;
+ comevent_1.miditime += i_nint(&r__1);
+
+/* Restore meter */
+
+ i__1 = *mtrdenl * *lenbar / 64;
+ midievent_("m", &i__1, mtrdenl, (ftnlen)1);
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 'i') {
+
+/* Instrument numbers or letters. Expect nv of them. */
+
+ i__1 = *nv;
+ for (ivx = 1; ivx <= i__1; ++ivx) {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq > 96) {
+
+/* It's a lowercase letter. Get another, find corr. instrument #. */
+
+ *(unsigned char *)instq = *(unsigned char *)durq;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+/* Writing concatenation */
+ i__2[0] = 1, a__1[0] = instq;
+ i__2[1] = 1, a__1[1] = durq;
+ s_cat(instq, a__1, i__2, &c__2, (ftnlen)2);
+ iname = i_indx("XXpiXrhXhaXmaXorXguXabXvlXvaXvcXcbXtrXtbXtuX"
+ "frXsoXalXteXbsXobXbaXclXflXreXctXvo", instq, (ftnlen)
+ 79, (ftnlen)2) / 3;
+ if (iname == 0) {
+ i__3 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__3, "Unrecognized 2-letter mi"
+ "di instrument name!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ commidi_1.midinst[ivx - 1] = midinum[iname - 1] - 1;
+ } else {
+
+/* Expect a number, followed by ":" if that is followed by another number. */
+/* I.e., if after call to readnum, durq is not ":", it must be either blank */
+/* or next instrument letter. */
+
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__3 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__3, "Expected a midi instrume"
+ "nt number here!", (ftnlen)128, (ftnlen)39);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ commidi_1.midinst[ivx - 1] = i_nint(&fnum) - 1;
+ if (commidi_1.midinst[ivx - 1] < 0 || commidi_1.midinst[ivx -
+ 1] > 255) {
+ i__3 = *iccount - 1;
+ i__4 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, &i__3, &i__4, "Midi instrument number mus"
+ "t be in range 1-128!", (ftnlen)128, (ftnlen)46);
+ stop1_();
+ }
+ if (*(unsigned char *)durq != ':') {
+ --(*iccount);
+ }
+ }
+/* L2: */
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 'v') {
+
+/* Get volumes for each instrument. Expect nv of them. */
+/* Follow same pattern as for insttrument numbers above. */
+
+ i__1 = *nv;
+ for (ivx = 1; ivx <= i__1; ++ivx) {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__3 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__3, "Expected a midi velocity num"
+ "ber here!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ commvel_1.midivel[ivx - 1] = i_nint(&fnum) - 1;
+ if (commvel_1.midivel[ivx - 1] < 0 || commvel_1.midivel[ivx - 1]
+ > 127) {
+ i__3 = *iccount - 1;
+ i__4 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, &i__3, &i__4, "Midi velocity must be in range"
+ " 1-128!", (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ if (*(unsigned char *)durq != ':') {
+ --(*iccount);
+ }
+/* L7: */
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 'b') {
+
+/* Get balance for each instrument. Expect nv of them. */
+/* Follow same pattern as for instrument numbers above. */
+
+ i__1 = *nv;
+ for (ivx = 1; ivx <= i__1; ++ivx) {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__3 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__3, "Expected a balance number he"
+ "re!", (ftnlen)128, (ftnlen)31);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ commvel_1.midibal[ivx - 1] = i_nint(&fnum) - 1;
+ if (commvel_1.midibal[ivx - 1] < 0 || commvel_1.midibal[ivx - 1]
+ > 127) {
+ i__3 = *iccount - 1;
+ i__4 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, &i__3, &i__4, "Midi balance must be in range "
+ "1-128!", (ftnlen)128, (ftnlen)36);
+ stop1_();
+ }
+ if (*(unsigned char *)durq != ':') {
+ --(*iccount);
+ }
+/* L8: */
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 'T') {
+
+/* Get transposition for each instrument. Expect nv of them. */
+/* Follow similar pattern as above, but separator is +|-. */
+
+ i__1 = *nv;
+ for (ivx = 1; ivx <= i__1; ++ivx) {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ ipm = i_indx("-+", durq, (ftnlen)2, (ftnlen)1);
+ if (ipm == 0) {
+ i__3 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__3, "Expected \"+\" or \"-\" for "
+ "midi transposition here!", (ftnlen)128, (ftnlen)48);
+ stop1_();
+ }
+ ipm = (ipm << 1) - 3;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__3 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__3, "Expected a number here!", (
+ ftnlen)128, (ftnlen)23);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ commvel_1.miditran[ivx - 1] = ipm * i_nint(&fnum);
+/* if (mod(miditran(ivx),12).ne. 0) then */
+/* call errmsg(lineq,iccount,ibarcnt-ibaroff+nbars+1, */
+/* * 'Midi transposition limited to multiples of 12!') */
+/* call stop1() */
+/* end if */
+ --(*iccount);
+/* L9: */
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 'g') {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789", durq, (ftnlen)10, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Expected an integer here for the"
+ " midi gap!", (ftnlen)128, (ftnlen)42);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ commidi_1.mgap = i_nint(&fnum);
+ --(*iccount);
+ goto L1;
+ } else if (*(unsigned char *)durq == 'M') {
+
+/* MidiMacros */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 'R') {
+
+/* Start recording */
+
+ if (commmac_1.mmacrec) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "You tried to record a MidiMa"
+ "cro while already recording!", (ftnlen)128, (ftnlen)
+ 56);
+ stop1_();
+ }
+ commmac_1.mmacrec = TRUE_;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Expected MidiMacro ID number"
+ " here!", (ftnlen)128, (ftnlen)34);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ if (! (*first)) {
+ commmac_1.immac = i_nint(&fnum);
+ if (commmac_1.immac > 20) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "MidiMacro ID cannot exce"
+ "ed 20!", (ftnlen)128, (ftnlen)30);
+ stop1_();
+ }
+
+/* Save the start time */
+
+ commmac_1.mmactime[commmac_1.immac - 1] = comevent_1.miditime;
+ i__1 = commidi_1.numchan;
+ for (icm = 0; icm <= i__1; ++icm) {
+ if (icm < commidi_1.numchan) {
+ if (commidi_1.restpend[icm]) {
+
+/* Adjust if there's a rest at end of prior section. Insert dummy turnoff. */
+/* (This causes two turn-offs in a row, which testmidi sees as an error). */
+
+/* Before: section1 ------rest------- section2(to be recorded) */
+/* After: section1 rest1 now rest2 section2(recorded) */
+
+ addmidi_(&icm, &c__30, &c__0, &c__0, &
+ commidi_1.trest[icm], &c_false, &c_true);
+ commidi_1.trest[icm] = 0.f;
+ commidi_1.restpend[icm] = FALSE_;
+ }
+ } else {
+ if (comevent_1.miditime > comevent_1.lasttime) {
+
+/* Insert a dummy turnoff in conductor track */
+
+ r__1 = (comevent_1.miditime - comevent_1.lasttime)
+ / 15.f;
+ addmidi_(&icm, &c__30, &c__0, &c__0, &r__1, &
+ c_false, &c_true);
+ comevent_1.lasttime = comevent_1.miditime;
+ }
+ }
+ commmac_1.mmacstrt[icm + commmac_1.immac * 25 - 25] =
+ commidi_1.imidi[icm] + 1;
+/* L4: */
+ }
+ }
+ goto L1;
+ } else if (i_indx("123456789P", durq, (ftnlen)10, (ftnlen)1) == 0) {
+
+/* End recording; close the open macro. Get immac from common. */
+
+ if (! commmac_1.mmacrec) {
+ i__1 = *iccount - 1;
+ i__3 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, &i__1, &i__3, "You tried to end a MidiMacro b"
+ "efore starting one!", (ftnlen)128, (ftnlen)49);
+ stop1_();
+ }
+ commmac_1.mmacrec = FALSE_;
+ --(*iccount);
+ if (! (*first)) {
+
+/* Save the macro duration */
+
+ commmac_1.mmactime[commmac_1.immac - 1] = comevent_1.miditime
+ - commmac_1.mmactime[commmac_1.immac - 1];
+ i__1 = commidi_1.numchan;
+ for (icm = 0; icm <= i__1; ++icm) {
+ if (icm < commidi_1.numchan) {
+ if (commidi_1.restpend[icm]) {
+ addmidi_(&icm, &c__30, &c__0, &c__0, &
+ commidi_1.trest[icm], &c_false, &c_true);
+ commidi_1.trest[icm] = 0.f;
+ commidi_1.restpend[icm] = FALSE_;
+ }
+ } else {
+ if (comevent_1.miditime > comevent_1.lasttime) {
+
+/* Insert a dummy turnoff in conductor track if needed. */
+
+ r__1 = (comevent_1.miditime - comevent_1.lasttime)
+ / 15.f;
+ addmidi_(&icm, &c__30, &c__0, &c__0, &r__1, &
+ c_false, &c_true);
+ comevent_1.lasttime = comevent_1.miditime;
+ }
+ }
+ commmac_1.mmacend[icm + commmac_1.immac * 25 - 25] =
+ commidi_1.imidi[icm];
+/* L5: */
+ }
+ }
+ if (*(unsigned char *)durq != ' ') {
+ goto L1;
+ }
+ } else if (*(unsigned char *)durq == 'P') {
+
+/* Play Back a Macro */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Expected MidiMacro ID number"
+ " here!", (ftnlen)128, (ftnlen)34);
+ stop1_();
+ }
+ if (commmac_1.mmacrec) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "You tried to play a MidiMacr"
+ "o before ending recording!", (ftnlen)128, (ftnlen)54);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ if (! (*first)) {
+ commmac_1.immac = i_nint(&fnum);
+ if (commmac_1.mmactime[commmac_1.immac - 1] == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Cannot play a MIDI macro"
+ " before recording it!", (ftnlen)128, (ftnlen)45);
+ stop1_();
+ }
+ i__1 = commidi_1.numchan;
+ for (icm = 0; icm <= i__1; ++icm) {
+ if (icm < commidi_1.numchan) {
+ if (commidi_1.restpend[icm]) {
+ addmidi_(&icm, &c__30, &c__0, &c__0, &
+ commidi_1.trest[icm], &c_false, &c_true);
+ commidi_1.trest[icm] = 0.f;
+ commidi_1.restpend[icm] = FALSE_;
+ }
+ } else {
+ if (comevent_1.miditime > comevent_1.lasttime) {
+
+/* Insert a dummy turnoff in conductor track */
+
+ r__1 = (comevent_1.miditime - comevent_1.lasttime)
+ / 15.f;
+ addmidi_(&icm, &c__30, &c__0, &c__0, &r__1, &
+ c_false, &c_true);
+ }
+ }
+ commmac_1.msecend[icm + commmac_1.nmidsec * 25 - 25] =
+ commidi_1.imidi[icm];
+ commmac_1.msecstrt[icm + (commmac_1.nmidsec + 1) * 25 -
+ 25] = commmac_1.mmacstrt[icm + commmac_1.immac *
+ 25 - 25];
+ commmac_1.msecend[icm + (commmac_1.nmidsec + 1) * 25 - 25]
+ = commmac_1.mmacend[icm + commmac_1.immac * 25 -
+ 25];
+ commmac_1.msecstrt[icm + (commmac_1.nmidsec + 2) * 25 -
+ 25] = commidi_1.imidi[icm] + 1;
+/* L6: */
+ }
+ commmac_1.nmidsec += 2;
+
+/* Update running time */
+
+ comevent_1.miditime += commmac_1.mmactime[commmac_1.immac - 1]
+ ;
+ comevent_1.lasttime = comevent_1.miditime;
+ }
+ goto L1;
+ } else {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Illegal character in MidiMacro s"
+ "ub-command!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ } else if (*(unsigned char *)durq == 'd') {
+ commidi_1.debugmidi = TRUE_;
+ goto L1;
+ } else if (*(unsigned char *)durq != ' ') {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Illegal character in MIDI input data!"
+ , (ftnlen)128, (ftnlen)37);
+ stop1_();
+ }
+ if (! commmac_1.gottempo && ! (*first)) {
+
+/* If no tempo is set on first call on the pmxb pass, then set it */
+
+ midievent_("t", &c__96, &c__0, (ftnlen)1);
+ commmac_1.gottempo = TRUE_;
+ }
+ return 0;
+} /* getmidi_ */
+
+/* Subroutine */ int getnote_(logical *loop)
+{
+ /* System generated locals */
+ address a__1[4], a__2[2], a__3[3], a__4[5], a__5[6], a__6[8], a__7[13];
+ integer i__1, i__2, i__3, i__4[4], i__5[2], i__6[3], i__7[5], i__8[6],
+ i__9[8], i__10[13];
+ real r__1;
+ char ch__1[1], ch__2[11], ch__3[8], ch__4[12], ch__5[10], ch__6[13],
+ ch__7[1], ch__8[69], ch__9[3], ch__10[9], ch__11[61], ch__12[82],
+ ch__13[83], ch__14[62], ch__15[122], ch__16[15], ch__17[59],
+ ch__18[70], ch__19[36];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_wsfe(cilist *), do_fio(
+ integer *, char *, ftnlen), e_wsfe(void);
+ double r_mod(real *, real *);
+ integer s_cmp(char *, char *, ftnlen, ftnlen), s_wsle(cilist *), do_lio(
+ integer *, integer *, char *, ftnlen), e_wsle(void), i_nint(real *
+ ), lbit_shift(integer, integer);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ double log(doublereal);
+ integer s_rsfi(icilist *), e_rsfi(void);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen),
+ s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsfi(icilist *), e_wsfi(void);
+
+ /* Local variables */
+ static integer lentemp;
+ extern /* Subroutine */ int g1etchar_(char *, integer *, char *, ftnlen,
+ ftnlen), getgrace_(integer *, integer *, char *, integer *,
+ integer *, integer *, integer *, integer *, integer *, integer *,
+ integer *, ftnlen);
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer idotform;
+ extern /* Subroutine */ int newvoice_(integer *, char *, logical *,
+ ftnlen);
+ static integer j;
+ extern /* Subroutine */ int readmeter_(char *, integer *, integer *,
+ integer *, ftnlen), midievent_(char *, integer *, integer *,
+ ftnlen);
+ static integer ic, jv, kv, ipm, ivf, ndx;
+ static real dum;
+ static integer iiv, iis, isl, iip, npg1, num1, iadj, nadj, lclf;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static logical cdot;
+ static integer nole, ioct;
+ static real fnum;
+ static char dotq[1], durq[1], dumq[1];
+ extern /* Subroutine */ int getx_(char *, integer *, integer *, logical *,
+ real *, integer *, integer *, integer *, integer *, integer *,
+ integer *, integer *, char *, integer *, ftnlen, ftnlen);
+ static integer itup, nnnl, ntup, ndxm, nfig1;
+ extern /* Subroutine */ int mrec1_(char *, integer *, integer *, ftnlen);
+ static integer ipg1r;
+ extern /* Subroutine */ int stop1_(void);
+ static integer lhead;
+ static char charq[1], lineq[128];
+ static logical moved;
+ static integer ndoub;
+ static char tempq[24];
+ extern /* Subroutine */ int sslur_(char *, integer *, integer *, integer *
+ , integer *, integer *, integer *, integer *, integer *, logical *
+ , integer *, char *, ftnlen, ftnlen);
+ static integer ifnum, nvold, iinow, iinst;
+ extern /* Subroutine */ int getitransinfo_(logical *, integer *, char *,
+ integer *, integer *, integer *, integer *, integer *, ftnlen);
+ static logical quoted;
+ static char hdlndq[59];
+ extern integer lenstr_(char *, integer *, ftnlen);
+ static integer numnum;
+ extern /* Subroutine */ int getorn_(char *, integer *, integer *, integer
+ *, logical *, integer *, integer *, integer *, logical *, logical
+ *, integer *, ftnlen);
+ static integer nnlivx;
+ extern /* Subroutine */ int littex_(integer *, integer *, integer *,
+ logical *, char *, integer *, ftnlen), getfig_(integer *, char *,
+ char *, integer *, logical *, integer *, integer *, integer *,
+ char *, integer *, integer *, ftnlen, ftnlen, ftnlen);
+ static integer nactmp;
+ extern /* Subroutine */ int getdyn_(integer *, integer *, integer *,
+ integer *, char *, integer *, ftnlen), getbuf_(char *, ftnlen);
+ extern integer ncmidf_(char *, ftnlen);
+ static integer nnliiv;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer ibaroff, lenbeat;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), getmidi_(integer *, char *, integer *, integer *,
+ integer *, integer *, integer *, integer *, logical *, ftnlen),
+ readnum_(char *, integer *, char *, real *, ftnlen, ftnlen);
+ static integer iofforn;
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *), chkpm4ac_(char *, integer *, integer *, logical *,
+ ftnlen);
+ static integer numshft;
+ static real xofforn;
+ extern integer ifnolev_(char *, integer *, integer *, ftnlen), ifnodur_(
+ integer *, char *, ftnlen);
+ static real fmovbrk;
+ extern integer numclef_(char *, ftnlen);
+ static integer itother;
+ extern /* Subroutine */ int spsslur_(char *, integer *, integer *,
+ integer *, integer *, integer *, integer *, integer *, integer *,
+ integer *, logical *, integer *, char *, ftnlen, ftnlen);
+ static integer lvoltxt, ltopnam, namstrt;
+ static real tintstf;
+
+ /* Fortran I/O blocks */
+ static cilist io___697 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___705 = { 0, 6, 0, 0, 0 };
+ static cilist io___719 = { 0, 6, 0, 0, 0 };
+ static cilist io___720 = { 0, 6, 0, 0, 0 };
+ static cilist io___725 = { 0, 6, 0, 0, 0 };
+ static cilist io___727 = { 0, 6, 0, 0, 0 };
+ static cilist io___728 = { 0, 6, 0, 0, 0 };
+ static cilist io___731 = { 0, 6, 0, 0, 0 };
+ static cilist io___737 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___738 = { 0, 11, 0, "(a8,i2,a2)", 0 };
+ static cilist io___739 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___740 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___743 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___744 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___745 = { 0, 11, 0, "(a11,i2,a)", 0 };
+ static cilist io___746 = { 0, 11, 0, "(a9,i2,a)", 0 };
+ static cilist io___748 = { 0, 11, 0, "(a8,i1,a3)", 0 };
+ static cilist io___749 = { 0, 11, 0, "(a9,i2,a4)", 0 };
+ static cilist io___750 = { 0, 11, 0, "(a8,i1,a)", 0 };
+ static cilist io___751 = { 0, 11, 0, "(a9,i2,a)", 0 };
+ static cilist io___752 = { 0, 6, 0, 0, 0 };
+ static cilist io___753 = { 0, 6, 0, 0, 0 };
+ static cilist io___766 = { 0, 6, 0, 0, 0 };
+ static cilist io___768 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___769 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___770 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___771 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___773 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___776 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___777 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___778 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___779 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___780 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___781 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___782 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___783 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* nvmx is either 1 or 2. ivmx(iv,1)=iv, ; ivmx(iv,2)>nv if defined */
+/* ivx is current ivmx, and is the index for all notes, acc's etc. */
+
+ cdot = FALSE_;
+L1:
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (comget_1.lastchar) {
+ return 0;
+ }
+ if (*(unsigned char *)charq == ' ') {
+ goto L1;
+ }
+ if (*(unsigned char *)charq == '%') {
+
+/* Check for a bar number format: */
+
+ if (all_1.iccount == 1 && *(unsigned char *)&lineq[1] == ' ' &&
+ i_indx("bB1234567890", lineq + 2, (ftnlen)12, (ftnlen)1) > 0)
+ {
+ if (comlast_1.islast) {
+ s_wsfe(&io___697);
+ do_fio(&c__1, lineq, lenstr_(lineq, &c__128, (ftnlen)128));
+ e_wsfe();
+ }
+ }
+ all_1.iccount = 128;
+ goto L1;
+ }
+
+/* Closing repeat iff charq='/' and the prev. char was 'R' with 'd' or 'r' */
+
+ if (comget_1.rptprev) {
+ comget_1.rptnd1 = *(unsigned char *)charq == '/';
+ comget_1.rptprev = FALSE_;
+ }
+
+/* Repeat at end of a piece */
+
+ if (*(unsigned char *)charq >= 97 && *(unsigned char *)charq <= 103 || *(
+ unsigned char *)charq == 'r') {
+ if (cdot) {
+ goto L28;
+ }
+
+/* This is a note/rest. */
+
+ idotform = 0;
+ numnum = 0;
+
+/* If start of line of music, set pitch from previous */
+
+ if (commvl_1.ivx <= all_1.nv) {
+ kv = 1;
+ } else {
+ kv = 2;
+ }
+ if (all_1.nnl[commvl_1.ivx - 1] == 0) {
+ comnotes_1.lastlev = comnotes_1.ndlev[all_1.iv + kv * 24 - 25];
+ }
+
+/* notcrd is used to tell if orn. goes on main note or chord note */
+
+/* notcrd = .true. !Move dow. Was not observed if dotted shortcut. */
+
+/* Increase note count, then loop 'til blank. Label 28 is for dotted shortcuts. */
+
+L28:
+
+/* Moved this from just above, 2 Feb 02 */
+
+ comnotes_1.notcrd = TRUE_;
+ ++all_1.nnl[commvl_1.ivx - 1];
+ if (comget_1.ornrpt) {
+
+/* Replicate ornament bits, also bit 23 for beam handling if chord. */
+
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 1]
+ |= all_1.iornq[commvl_1.ivx - 1];
+ if ((all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24
+ - 1] & 32896) > 0) {
+
+/* This is a trill (bit 7 or 15) so must dup the parameters */
+
+ ++comtrill_1.ntrill;
+ comtrill_1.ivtrill[comtrill_1.ntrill - 1] = commvl_1.ivx;
+ comtrill_1.iptrill[comtrill_1.ntrill - 1] = all_1.nnl[
+ commvl_1.ivx - 1];
+ comtrill_1.xnsktr[comtrill_1.ntrill - 1] = comtrill_1.xnsktr[
+ comtrill_1.ntrill - 2];
+ }
+ }
+ if (comget_1.stickys) {
+
+/* Grab stemlength shortening parameters from prior note */
+
+ all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],27);
+ i__1 = igetbits_(&all_1.mult[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25], &c__3, &c__28);
+ setbits_(&all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25], &c__3, &c__28, &i__1);
+ }
+ if (comfb_1.autofbon && comfb_1.tautofb > comtol_1.tol && !
+ comget_1.fbon) {
+
+/* Doing auto forced beams, and period has been set, so check if this note */
+/* starts a period. */
+
+/* if (mod(1.*itsofar(ivx),tautofb) .lt. tol) then */
+ r__1 = all_1.itsofar[commvl_1.ivx - 1] - comfb_1.t1autofb;
+ if (r_mod(&r__1, &comfb_1.tautofb) < comtol_1.tol) {
+
+/* Start a forced beam here */
+
+ ++comfb_1.nfb[commvl_1.ivx - 1];
+ comget_1.fbon = TRUE_;
+ *(unsigned char *)&comfb_1.ulfbq[commvl_1.ivx + comfb_1.nfb[
+ commvl_1.ivx - 1] * 24 - 25] = 'x';
+ comfb_1.t1fb[commvl_1.ivx + comfb_1.nfb[commvl_1.ivx - 1] *
+ 24 - 25] = (real) all_1.itsofar[commvl_1.ivx - 1];
+ }
+ }
+ if (comget_1.fbon) {
+ all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx -
+ 1] * 24 - 25],30);
+ }
+ *(unsigned char *)dotq = 'x';
+ if (*(unsigned char *)charq == 'r') {
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],0);
+ }
+ if (bit_test(all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],0)) {
+
+/* Rest stuff. First check if previous note was full-bar-pause */
+
+ i__1 = all_1.iccount;
+ if (s_cmp(lineq + i__1, " ", all_1.iccount + 1 - i__1, (ftnlen)1)
+ == 0 && all_1.nnl[commvl_1.ivx - 1] > 1) {
+ if (bit_test(all_1.islur[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25],19)) {
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = bit_set(all_1.islur[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],19);
+ }
+ }
+
+/* Set default rest level at 0 unless 2 voices/staff in which case it's -4 or 2 */
+/* for voice a or b. Set a-types at 0 as encountered and adjust later */
+/* after '//'. (Override heights will be set to 100+offset) */
+
+ if (commvl_1.ivx <= all_1.nv) {
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = 0;
+ } else {
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = 2;
+ }
+ }
+L2:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ ic = *(unsigned char *)durq;
+ if (ic <= 57 && ic >= 48) {
+
+/* Digit */
+
+ if (numnum == 0) {
+ comnotes_1.nnodur = ic - 48;
+ numnum = 1;
+ goto L2;
+ } else if (numnum == 1) {
+ ioct = ic - 48;
+ numnum = 2;
+ goto L2;
+ } else {
+ s_wsle(&io___705);
+ do_lio(&c__9, &c__1, ">2 digits in note sym., ivx,nn:", (
+ ftnlen)31);
+ do_lio(&c__3, &c__1, (char *)&commvl_1.ivx, (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&all_1.nnl[commvl_1.ivx - 1], (
+ ftnlen)sizeof(integer));
+ e_wsle();
+ stop1_();
+ }
+ } else if (*(unsigned char *)durq == 'd') {
+ *(unsigned char *)dotq = *(unsigned char *)durq;
+ i__1 = all_1.iccount;
+ if (s_cmp(lineq + i__1, "d", all_1.iccount + 1 - i__1, (ftnlen)1)
+ == 0) {
+
+/* Double dot. */
+
+ ++all_1.iccount;
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],3);
+ }
+ i__1 = all_1.iccount;
+ if (i_indx("+-", lineq + i__1, (ftnlen)2, all_1.iccount + 1 -
+ i__1) > 0) {
+
+/* move a dot, unless next char is not part of a number */
+
+ i__1 = all_1.iccount + 1;
+ if (i_indx("0123456789.", lineq + i__1, (ftnlen)11,
+ all_1.iccount + 2 - i__1) == 0) {
+ goto L2;
+ }
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],19);
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ ++comcc_1.ndotmv[commvl_1.ivx - 1];
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, dumq, &comcc_1.updot[
+ commvl_1.ivx + comcc_1.ndotmv[commvl_1.ivx - 1] * 24
+ - 25], (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == '-') {
+ comcc_1.updot[commvl_1.ivx + comcc_1.ndotmv[commvl_1.ivx
+ - 1] * 24 - 25] = -comcc_1.updot[commvl_1.ivx +
+ comcc_1.ndotmv[commvl_1.ivx - 1] * 24 - 25];
+ }
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Vertical shift also */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &comcc_1.rtdot[
+ commvl_1.ivx + comcc_1.ndotmv[commvl_1.ivx - 1] *
+ 24 - 25], (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)dumq == '-') {
+ comcc_1.rtdot[commvl_1.ivx + comcc_1.ndotmv[
+ commvl_1.ivx - 1] * 24 - 25] = -comcc_1.rtdot[
+ commvl_1.ivx + comcc_1.ndotmv[commvl_1.ivx -
+ 1] * 24 - 25];
+ }
+ } else {
+ comcc_1.rtdot[commvl_1.ivx + comcc_1.ndotmv[commvl_1.ivx
+ - 1] * 24 - 25] = 0.f;
+ }
+ --all_1.iccount;
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == 'p') {
+
+/* Full-bar rest as pause */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],19);
+ goto L2;
+ } else if (*(unsigned char *)durq == 'b') {
+
+/* Blank rest */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],29);
+ goto L2;
+ } else if (i_indx("fsn", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Accidental */
+
+ if (all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] == 0) {
+
+/* No accidental has been set yet */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = i_indx("fsn", durq, (ftnlen)3, (ftnlen)1);
+ } else {
+
+/* Repeated accid, so must be double */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],2);
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == 'i') {
+
+/* Set flag for MIDI-only accidental. */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],17);
+ goto L2;
+ } else if (*(unsigned char *)durq == 'c') {
+
+/* Set flags for cautionary accidental */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],31);
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 1] =
+ bit_set(all_1.iornq[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 1],31);
+ goto L2;
+ } else if (i_indx("+-<>", durq, (ftnlen)4, (ftnlen)1) > 0) {
+ ipm = i_indx("- +", durq, (ftnlen)3, (ftnlen)1) - 2;
+ if (! bit_test(all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],0)) {
+
+/* A note, not a rest. */
+
+ chkpm4ac_(lineq, &all_1.iccount, &all_1.nacc[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25], &moved, (
+ ftnlen)128);
+ if (moved) {
+ goto L2;
+ }
+
+/* Octave jump with a note */
+
+ if (numnum < 2) {
+ comnotes_1.lastlev += ipm * 7;
+ } else {
+ ioct += ipm;
+ }
+ goto L2;
+ } else {
+
+/* Override default height of a rest */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ i__1 = all_1.iccount - 2;
+ if (s_cmp(lineq + i__1, ".", all_1.iccount - 1 - i__1, (
+ ftnlen)1) == 0) {
+
+/* Kluge in case there is a shortcut ".". It will have been sucked up by */
+/* readnum. (Same doesn't hold for ",") */
+
+ all_1.iccount += -2;
+ goto L2;
+ }
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = ipm * i_nint(&fnum) + 100;
+
+/* There may be more characters for this rest */
+
+ --all_1.iccount;
+ goto L2;
+ }
+ } else if (*(unsigned char *)durq == 'x') {
+
+/* Xtuplet. Count number of doubled notes (for unequal xtups) */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],18)) {
+ ndoub = 1;
+ } else {
+ ndoub = 0;
+ }
+
+/* Will set all durations to 0 except last one. Set flag on this note. */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],28);
+
+/* Next input will be digit */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ ntup = i_nint(&fnum);
+ if (i_indx("DF", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Double xtup note to make an un= xtup. Here xtup number already set but may also */
+/* have this command before. */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],18);
+ if (*(unsigned char *)durq == 'F') {
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = bit_set(all_1.nacc[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],19);
+ }
+ ndoub = 1;
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ } else if (*(unsigned char *)durq == 'd') {
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],27);
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ }
+
+/* Only other possibilities here are ' ' or 'n' */
+
+ if (*(unsigned char *)durq == 'n') {
+
+/* Alter xtup number */
+
+ i__1 = all_1.iccount;
+ if (s_cmp(lineq + i__1, " ", all_1.iccount + 1 - i__1, (
+ ftnlen)1) == 0) {
+
+/* If the only modifier is 'n', cancel the number */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = bit_set(all_1.islur[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],31);
+ } else {
+ numshft = 0;
+L30:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == 'f') {
+
+/* Flip up-down-ness */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.irest[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],14);
+ goto L30;
+ } else if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Vertical or horiz shift */
+
+ ++numshft;
+ iofforn = 1;
+ if (*(unsigned char *)durq == '-') {
+ iofforn = -1;
+ }
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &xofforn, (
+ ftnlen)128, (ftnlen)1);
+ --all_1.iccount;
+ if (numshft == 1) {
+
+/* Vertical shift */
+
+ iofforn = iofforn * i_nint(&xofforn) + 16;
+
+/* Turn on bit 1; set bits 2-6 to iofforn */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] |= (iofforn << 2) + 2;
+ } else {
+
+/* Horizontal shift */
+
+ r__1 = xofforn * 10;
+ iofforn = iofforn * i_nint(&r__1) + 16;
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = bit_set(all_1.irest[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],7);
+ setbits_(&all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25], &c__5, &
+ c__9, &iofforn);
+ }
+ goto L30;
+ } else if (*(unsigned char *)durq == 's') {
+
+/* Slope adjustment for bracket */
+
+ all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.mult[commvl_1.ivx
+ + all_1.nnl[commvl_1.ivx - 1] * 24 - 25],4);
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ iofforn = i_indx("- +", durq, (ftnlen)3, (ftnlen)1) -
+ 2;
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &xofforn, (
+ ftnlen)128, (ftnlen)1);
+ --all_1.iccount;
+ r__1 = iofforn * xofforn + 16;
+ iofforn = i_nint(&r__1);
+ setbits_(&all_1.mult[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25], &c__5, &c__5, &
+ iofforn);
+ } else if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1)
+ > 0) {
+
+/* Replacement printed number */
+
+ readnum_(lineq, &all_1.iccount, durq, &xofforn, (
+ ftnlen)128, (ftnlen)1);
+ i__1 = i_nint(&xofforn);
+ setbits_(&all_1.nacc[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25], &c__5, &c__22, &
+ i__1);
+ --all_1.iccount;
+ goto L30;
+ }
+ }
+ }
+
+/* Set note level of 1st note of xtup, provided not a rest */
+
+ if (! bit_test(all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],0)) {
+ if (numnum == 2) {
+ comnotes_1.lastlev = ifnolev_(charq, &ioct, &
+ cominsttrans_1.itransamt[cominsttrans_1.instno[
+ all_1.iv - 1] - 1], (ftnlen)1);
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = comnotes_1.lastlev;
+ } else {
+ comnotes_1.lastlev = comnotes_1.lastlev - 3 + (ifnolev_(
+ charq, &c__10, &cominsttrans_1.itransamt[
+ cominsttrans_1.instno[all_1.iv - 1] - 1], (ftnlen)
+ 1) - comnotes_1.lastlev + 3) % 7;
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = comnotes_1.lastlev;
+ }
+ }
+ for (comnotes_1.npreslur = comnotes_1.npreslur;
+ comnotes_1.npreslur >= 1; --comnotes_1.npreslur) {
+
+/* Set note level for preslur on starting note of xtuplet */
+
+ setbits_(&all_1.isdat2[all_1.nsdat - comnotes_1.npreslur], &
+ c__7, &c__19, &comnotes_1.lastlev);
+/* L40: */
+ }
+ numnum = 0;
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = 0;
+ i__1 = ntup;
+ for (itup = 2; itup <= i__1; ++itup) {
+ if (comget_1.ornrpt) {
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 1] |= all_1.iornq[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 1] & 10026991;
+ if ((all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx -
+ 1] * 24 - 1] & 32896) > 0) {
+
+/* This is a trill (bit 7 or 15) so must dup the parameters */
+
+ ++comtrill_1.ntrill;
+ comtrill_1.ivtrill[comtrill_1.ntrill - 1] =
+ commvl_1.ivx;
+ comtrill_1.iptrill[comtrill_1.ntrill - 1] = all_1.nnl[
+ commvl_1.ivx - 1];
+ comtrill_1.xnsktr[comtrill_1.ntrill - 1] =
+ comtrill_1.xnsktr[comtrill_1.ntrill - 2];
+ }
+ }
+ ++all_1.nnl[commvl_1.ivx - 1];
+ if (comget_1.fbon) {
+ all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24
+ - 25] = bit_set(all_1.ipl[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],30);
+ }
+L7:
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1)
+ ;
+ if (*(unsigned char *)charq == ' ') {
+ goto L7;
+ } else if (*(unsigned char *)charq == '%') {
+ all_1.iccount = 128;
+ goto L7;
+ } else if (*(unsigned char *)charq == 'o') {
+
+/* Ornament in xtuplet. "o" symbol must come AFTER the affected note */
+
+ if (comnotes_1.notcrd) {
+ nole = all_1.nolev[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25];
+ } else {
+ nole = 127 & lbit_shift(comtrill_1.icrdat[
+ comtrill_1.ncrd - 1], (ftnlen)-12);
+ }
+ i__2 = all_1.nnl[commvl_1.ivx - 1] - 1;
+ getorn_(lineq, &all_1.iccount, &all_1.iornq[commvl_1.ivx
+ + (all_1.nnl[commvl_1.ivx - 1] - 1) * 24 - 1], &
+ all_1.iornq[commvl_1.ivx - 1], &comget_1.ornrpt, &
+ comgrace_1.noffseg, &i__2, &commvl_1.ivx, &
+ c_false, &comnotes_1.notcrd, &nole, (ftnlen)128);
+ goto L7;
+ } else if (i_indx("st(){}", charq, (ftnlen)6, (ftnlen)1) > 0)
+ {
+ nnlivx = all_1.nnl[commvl_1.ivx - 1] - 1;
+ if (*(unsigned char *)charq == '(' || *(unsigned char *)
+ charq == '{') {
+
+/* Detected preslur in xtuplet loop, non-chord note */
+
+ ++nnlivx;
+ ++comnotes_1.npreslur;
+ }
+ all_1.islur[commvl_1.ivx + nnlivx * 24 - 25] = bit_set(
+ all_1.islur[commvl_1.ivx + nnlivx * 24 - 25],0);
+ if (*(unsigned char *)charq == 't') {
+ all_1.islur[commvl_1.ivx + nnlivx * 24 - 25] =
+ bit_set(all_1.islur[commvl_1.ivx + nnlivx *
+ 24 - 25],1);
+ }
+ if (commvl_1.ivx <= all_1.nv) {
+ kv = 1;
+ } else {
+ kv = 2;
+ }
+ if (comslur_1.fontslur) {
+ sslur_(lineq, &all_1.iccount, &all_1.iv, &kv, &nnlivx,
+ all_1.isdat1, all_1.isdat2, all_1.isdat3, &
+ all_1.nsdat, &comnotes_1.notcrd, &all_1.nolev[
+ commvl_1.ivx + nnlivx * 24 - 25], charq, (
+ ftnlen)128, (ftnlen)1);
+ } else {
+ spsslur_(lineq, &all_1.iccount, &all_1.iv, &kv, &
+ nnlivx, all_1.isdat1, all_1.isdat2,
+ all_1.isdat3, all_1.isdat4, &all_1.nsdat, &
+ comnotes_1.notcrd, &all_1.nolev[commvl_1.ivx
+ + nnlivx * 24 - 25], charq, (ftnlen)128, (
+ ftnlen)1);
+ }
+ goto L7;
+ } else if (*(unsigned char *)charq == 'G') {
+
+/* Kluge to get grace in xtup at right location */
+
+ --all_1.nnl[commvl_1.ivx - 1];
+ getgrace_(&commvl_1.ivx, all_1.nnl, lineq, &all_1.iccount,
+ all_1.islur, all_1.iornq, all_1.ipl,
+ comnotes_1.ndlev, &comnotes_1.lastlev, &all_1.iv,
+ &all_1.nv, (ftnlen)128);
+ ++all_1.nnl[commvl_1.ivx - 1];
+ goto L7;
+ } else if (*(unsigned char *)charq == *(unsigned char *)
+ all_1.sq) {
+ littex_(all_1.islur, &all_1.nnl[commvl_1.ivx - 1], &
+ commvl_1.ivx, &comas3_1.topmods, lineq, &
+ all_1.iccount, (ftnlen)128);
+ goto L7;
+ } else if (i_indx("0123456789#-nx_", charq, (ftnlen)15, (
+ ftnlen)1) > 0) {
+
+/* Figure. Must come AFTER the first note of xtup */
+
+ ivf = 1;
+ if (commvl_1.ivx > 1) {
+ if (comfig_1.ivxfig2 == 0) {
+ comfig_1.ivxfig2 = commvl_1.ivx;
+ } else if (commvl_1.ivx != comfig_1.ivxfig2) {
+ s_wsle(&io___719);
+ e_wsle();
+ s_wsle(&io___720);
+ do_lio(&c__9, &c__1, "Figures not allowed in >1 "
+ "voice above first", (ftnlen)43);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ ivf = 2;
+ }
+ nfig1 = comfig_1.nfigs[ivf - 1] + 1;
+ getfig_(&comgrace_1.itoff[ivf + (nfig1 << 1) - 3], charq,
+ lineq, &all_1.iccount, &all_1.isfig[ivf + (
+ all_1.nnl[commvl_1.ivx - 1] - 1 << 1) - 3], &
+ comfig_1.itfig[ivf + (nfig1 << 1) - 3], &
+ all_1.itsofar[commvl_1.ivx - 1], &c__0,
+ comfig_1.figq + (ivf + (nfig1 << 1) - 3) * 10, &
+ comfig_1.ivupfig[ivf + (nfig1 << 1) - 3], &
+ comfig_1.nfigs[ivf - 1], (ftnlen)1, (ftnlen)128, (
+ ftnlen)10);
+ goto L7;
+ } else if (*(unsigned char *)charq == 'X') {
+/* Computing MAX */
+ i__2 = 1, i__3 = all_1.nnl[commvl_1.ivx - 1] - 1;
+ getx_(lineq, &all_1.iccount, &all_1.irest[commvl_1.ivx +
+ max(i__2,i__3) * 24 - 25], &comnotes_1.shifton, &
+ comask_1.wheadpt, &all_1.iornq[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 1], &
+ commvl_1.ivx, &all_1.irest[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25], &
+ all_1.itsofar[commvl_1.ivx - 1], &ntup, &itup, &
+ comnotes_1.nnodur, dotq, &ndoub, (ftnlen)128, (
+ ftnlen)1);
+ goto L7;
+ } else if (*(unsigned char *)charq == 'z') {
+
+/* Chord note in xtup. Goes with *prior* note. */
+
+ comnotes_1.notcrd = FALSE_;
+ ++comtrill_1.ncrd;
+ all_1.ipl[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] - 1)
+ * 24 - 25] = bit_set(all_1.ipl[commvl_1.ivx + (
+ all_1.nnl[commvl_1.ivx - 1] - 1) * 24 - 25],10);
+ numnum = 0;
+/* icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8)) */
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = all_1.nnl[
+ commvl_1.ivx - 1] - 1;
+ i__2 = commvl_1.ivx % 16;
+ setbits_(&comtrill_1.icrdat[comtrill_1.ncrd - 1], &c__4, &
+ c__8, &i__2);
+ if (commvl_1.ivx >= 16) {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],28);
+ }
+ comtrill_1.icrdorn[comtrill_1.ncrd - 1] = 0;
+
+/* Get note name */
+
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (
+ ftnlen)1);
+
+/* Get optional inputs */
+
+L34:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+
+/* When chord note is done, will get ' ', making ndx=0, so go past this block */
+
+ ndx = i_indx("fsn+-<>12345678reic", durq, (ftnlen)19, (
+ ftnlen)1);
+ if (ndx > 0) {
+ if (ndx <= 3) {
+ if (! bit_test(comtrill_1.icrdat[comtrill_1.ncrd
+ - 1],19)) {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] =
+ bit_set(comtrill_1.icrdat[
+ comtrill_1.ncrd - 1],19);
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] |= ndx
+ << 20;
+ } else {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] =
+ bit_set(comtrill_1.icrdat[
+ comtrill_1.ncrd - 1],22);
+ }
+ } else if (ndx == 19) {
+
+/* Set flags for cautionary accidental */
+
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],31)
+ ;
+ all_1.iornq[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 1] =
+ bit_set(all_1.iornq[commvl_1.ivx + (
+ all_1.nnl[commvl_1.ivx - 1] - 1) * 24 - 1]
+ ,31);
+ } else if (ndx <= 7) {
+
+/* +/-/</> Check whether octave or accidental shift */
+
+ nactmp = 0;
+ chkpm4ac_(lineq, &all_1.iccount, &nactmp, &moved,
+ (ftnlen)128);
+ if (moved) {
+
+/* Transfer accidental shift values */
+
+ i__2 = igetbits_(&nactmp, &c__6, &c__4);
+ setbits_(&comtrill_1.icrdot[comtrill_1.ncrd -
+ 1], &c__6, &c__14, &i__2);
+ i__2 = igetbits_(&nactmp, &c__7, &c__10);
+ setbits_(&comtrill_1.icrdot[comtrill_1.ncrd -
+ 1], &c__7, &c__20, &i__2);
+ } else {
+ if (*(unsigned char *)durq == '+') {
+ comnotes_1.lastlev += 7;
+ } else if (*(unsigned char *)durq == '-') {
+ comnotes_1.lastlev += -7;
+ }
+ }
+ } else if (*(unsigned char *)durq == 'e') {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],23)
+ ;
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = bit_set(all_1.irest[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],27);
+ } else if (*(unsigned char *)durq == 'r') {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],24)
+ ;
+ all_1.irest[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25] =
+ bit_set(all_1.irest[commvl_1.ivx + (
+ all_1.nnl[commvl_1.ivx - 1] - 1) * 24 -
+ 25],20);
+ } else if (*(unsigned char *)durq == 'i') {
+
+/* Midi-only accidental */
+
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],27)
+ ;
+ } else {
+
+/* must be a number, save it in ioct */
+
+ numnum = 1;
+ ioct = ndx - 7;
+ }
+ goto L34;
+ }
+ if (numnum == 1) {
+ comnotes_1.lastlev = ifnolev_(charq, &ioct, &
+ cominsttrans_1.itransamt[
+ cominsttrans_1.instno[all_1.iv - 1] - 1], (
+ ftnlen)1);
+ } else {
+ comnotes_1.lastlev = comnotes_1.lastlev - 3 + (
+ ifnolev_(charq, &c__10, &
+ cominsttrans_1.itransamt[
+ cominsttrans_1.instno[all_1.iv - 1] - 1], (
+ ftnlen)1) - comnotes_1.lastlev + 3) % 7;
+ }
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] |=
+ comnotes_1.lastlev << 12;
+ for (comnotes_1.npreslur = comnotes_1.npreslur;
+ comnotes_1.npreslur >= 1; --comnotes_1.npreslur) {
+
+/* Set note level for preslur on chord note in xtup */
+
+ setbits_(&all_1.isdat2[all_1.nsdat -
+ comnotes_1.npreslur], &c__7, &c__19, &
+ comnotes_1.lastlev);
+
+/* Following lines copied from loop for non-xtup, chord note, preslur */
+/* Initially I assigned the slur(s) to next note, so fix. */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_clear(all_1.islur[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],0);
+ all_1.islur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx -
+ 1] - 1) * 24 - 25] = bit_set(all_1.islur[
+ commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] -
+ 1) * 24 - 25],0);
+ all_1.isdat2[all_1.nsdat - comnotes_1.npreslur] =
+ bit_set(all_1.isdat2[all_1.nsdat -
+ comnotes_1.npreslur],0);
+ i__2 = igetbits_(&all_1.isdat1[all_1.nsdat -
+ comnotes_1.npreslur], &c__8, &c__3) - 1;
+ setbits_(&all_1.isdat1[all_1.nsdat -
+ comnotes_1.npreslur], &c__8, &c__3, &i__2);
+/* L41: */
+ }
+ goto L7;
+ } else if (*(unsigned char *)charq == '?') {
+
+/* Arpeggio */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25],10)) {
+
+/* This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note */
+/* of chord, will not set icrdat(25), but iornq(27) */
+
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],25);
+ } else {
+ all_1.iornq[commvl_1.ivx + (all_1.nnl[commvl_1.ivx -
+ 1] - 1) * 24 - 1] = bit_set(all_1.iornq[
+ commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] -
+ 1) * 24 - 1],27);
+ }
+
+/* Check for shift */
+
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == ' ') {
+ --all_1.iccount;
+ } else {
+
+/* durq must be "-" */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ --all_1.iccount;
+
+/* record the shift */
+
+ ++comarpshift_1.numarpshift;
+ comarpshift_1.ivarpshift[comarpshift_1.numarpshift -
+ 1] = commvl_1.ivx;
+ comarpshift_1.iparpshift[comarpshift_1.numarpshift -
+ 1] = all_1.nnl[commvl_1.ivx - 1] - 1;
+ comarpshift_1.arpshift[comarpshift_1.numarpshift - 1]
+ = fnum;
+ }
+ goto L7;
+ } else if (*(unsigned char *)charq == 'D') {
+ i__2 = all_1.nnl[commvl_1.ivx - 1] - 1;
+ getdyn_(&commvl_1.ivx, &i__2, &all_1.irest[commvl_1.ivx +
+ (all_1.nnl[commvl_1.ivx - 1] - 1) * 24 - 25], &
+ all_1.iornq[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 1], lineq, &
+ all_1.iccount, (ftnlen)128);
+ goto L7;
+/* +++ */
+ } else if (*(unsigned char *)charq == ']') {
+
+/* Multiplicity up-down, must have '][ ' */
+
+ all_1.islur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] -
+ 1) * 24 - 25] = bit_set(all_1.islur[commvl_1.ivx
+ + (all_1.nnl[commvl_1.ivx - 1] - 1) * 24 - 25],20)
+ ;
+ all_1.iccount += 2;
+ goto L7;
+/* c+++ */
+ }
+
+/* End of loop for xtup options. If here, charq must be a (non-crd) note name. */
+/* or rest */
+
+ if (*(unsigned char *)charq == 'r') {
+
+/* Rest in xtup */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = bit_set(all_1.irest[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],0);
+ i__2 = all_1.iccount;
+ if (i_indx("+-b", lineq + i__2, (ftnlen)3, all_1.iccount
+ + 1 - i__2) > 0) {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == 'b') {
+
+/* Blank rest in middle of xtup */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = bit_set(all_1.islur[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],29);
+ } else {
+
+/* Override height of embedded xtup rest */
+
+ ipm = i_indx("- +", durq, (ftnlen)3, (ftnlen)1) -
+ 2;
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (
+ ftnlen)128, (ftnlen)1);
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = ipm * i_nint(&fnum) +
+ 100;
+ --all_1.iccount;
+ }
+ } else if (commvl_1.ivx <= all_1.nv) {
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = 0;
+ } else {
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = 2;
+ }
+ }
+ comnotes_1.notcrd = TRUE_;
+L8:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+ if (i_indx("+-<>", durq, (ftnlen)4, (ftnlen)1) > 0) {
+
+/* Accidental horizontal shift */
+
+ chkpm4ac_(lineq, &all_1.iccount, &all_1.nacc[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25], &moved, (ftnlen)128);
+ if (! moved) {
+ if (*(unsigned char *)durq == '+') {
+ comnotes_1.lastlev += 7;
+ } else if (*(unsigned char *)durq == '-') {
+ comnotes_1.lastlev += -7;
+ }
+ }
+ } else if (i_indx("fsn", durq, (ftnlen)3, (ftnlen)1) > 0)
+ {
+ if (all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] == 0) {
+
+/* No accid set yet */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = i_indx("fsn", durq, (
+ ftnlen)3, (ftnlen)1);
+ } else {
+
+/* Symbol must be repeated, so it's a double */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = bit_set(all_1.nacc[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],2);
+ }
+ } else if (*(unsigned char *)durq == 'i') {
+
+/* Set flag for midi-only accidental */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.nacc[commvl_1.ivx
+ + all_1.nnl[commvl_1.ivx - 1] * 24 - 25],17);
+ } else if (*(unsigned char *)durq == 'c') {
+
+/* Set flags for cautionary accidental */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.irest[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],31);
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 1] = bit_set(all_1.iornq[commvl_1.ivx
+ + all_1.nnl[commvl_1.ivx - 1] * 24 - 1],31);
+ } else if (i_indx("ul", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Force stem direction for non-beamed xtup note */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.islur[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],30);
+ if (*(unsigned char *)durq == 'u') {
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = bit_set(all_1.islur[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],17);
+ }
+ } else if (*(unsigned char *)durq == 'e') {
+
+/* Left-shift main xtup note */
+
+ all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = bit_set(all_1.ipl[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],8);
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.irest[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],27);
+ } else if (*(unsigned char *)durq == 'r') {
+
+/* Right-shift main xtup note */
+
+ all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = bit_set(all_1.ipl[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],9);
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.irest[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],20);
+ } else if (i_indx("DF", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Double an xtup note to make an unequal xtup */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.nacc[commvl_1.ivx
+ + all_1.nnl[commvl_1.ivx - 1] * 24 - 25],18);
+ if (*(unsigned char *)durq == 'F') {
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25] = bit_set(all_1.nacc[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],19);
+ }
+ ++ndoub;
+ } else if (*(unsigned char *)durq == 'd') {
+
+/* Dotted xtup note */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = bit_set(all_1.nacc[commvl_1.ivx
+ + all_1.nnl[commvl_1.ivx - 1] * 24 - 25],27);
+ } else {
+
+/* Must be an octave number */
+
+ i__2 = *(unsigned char *)durq - 48;
+ comnotes_1.lastlev = ifnolev_(charq, &i__2, &
+ cominsttrans_1.itransamt[
+ cominsttrans_1.instno[all_1.iv - 1] - 1], (
+ ftnlen)1);
+ }
+ goto L8;
+ }
+ if (itup < ntup) {
+
+/* Last note is handled *after* flowing out of the xtup if block, but still */
+/* within block for a note-rest. Set note level now (rest already done). */
+/* Could have problem here if rests & doubled notes are combined in xtup, */
+/* since might exit the loop at the wrong place. Worry about it later. */
+
+ if (! bit_test(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],0)) {
+ comnotes_1.lastlev = comnotes_1.lastlev - 3 + (
+ ifnolev_(charq, &c__10, &
+ cominsttrans_1.itransamt[
+ cominsttrans_1.instno[all_1.iv - 1] - 1], (
+ ftnlen)1) - comnotes_1.lastlev + 3) % 7;
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25] = comnotes_1.lastlev;
+ }
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] = 0;
+ for (comnotes_1.npreslur = comnotes_1.npreslur;
+ comnotes_1.npreslur >= 1; --comnotes_1.npreslur) {
+
+/* Set note level for preslur on internal xtup note */
+
+ setbits_(&all_1.isdat2[all_1.nsdat -
+ comnotes_1.npreslur], &c__7, &c__19, &
+ comnotes_1.lastlev);
+/* L42: */
+ }
+ }
+ if (itup == ntup - ndoub) {
+ goto L12;
+ }
+/* L6: */
+ }
+L12:
+ if (comget_1.ornrpt) {
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 1] |= all_1.iornq[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 1] & 10026991;
+ if ((all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 1] & 32896) > 0) {
+
+/* This is a trill (bit 7 or 15) so must dup the parameters */
+
+ ++comtrill_1.ntrill;
+ comtrill_1.ivtrill[comtrill_1.ntrill - 1] = commvl_1.ivx;
+ comtrill_1.iptrill[comtrill_1.ntrill - 1] = all_1.nnl[
+ commvl_1.ivx - 1];
+ comtrill_1.xnsktr[comtrill_1.ntrill - 1] =
+ comtrill_1.xnsktr[comtrill_1.ntrill - 2];
+ }
+ }
+
+/* End of if-block for xtuplet input */
+
+ } else if (*(unsigned char *)durq == 'm') {
+
+/* Multi-bar rest: next 1 or two digits are # of bars. */
+/* For some purposes, pretend its one bar only */
+
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = all_1.lenbar;
+ comgrace_1.ibarmbr = all_1.nbars + 1;
+ comgrace_1.mbrest = 0;
+ comgrace_1.xb4mbr = 0.f;
+L20:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq >= 48 && *(unsigned char *)durq <= 57)
+ {
+ comgrace_1.mbrest = comgrace_1.mbrest * 10 + *(unsigned char *
+ )durq - 48;
+ goto L20;
+ }
+ } else if (i_indx("ul", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Set stem flipper */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],30);
+ if (*(unsigned char *)durq == 'u') {
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],17);
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == 'a') {
+
+/* "Alone", i.e., prohibit beam */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],18);
+ goto L2;
+ } else if (*(unsigned char *)durq == 'r') {
+
+/* Right offset by one notehead */
+
+ all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx -
+ 1] * 24 - 25],9);
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],20);
+ goto L2;
+ } else if (*(unsigned char *)durq == 'e') {
+
+/* Left offset by one notehead */
+
+ all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx -
+ 1] * 24 - 25],8);
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],27);
+ goto L2;
+ } else if (*(unsigned char *)durq == 'S') {
+
+/* Stemlength change. Get -dstemlen in \internotes. Allowable values are .5 to 4 */
+/* Set mult(27). Map value to 0 to 7, store in mult(28-30). Later convert to */
+/* interbeams = internotes*2/3. */
+
+ all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],27);
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == ':') {
+
+/* End stickyS. Grab data now from prior note, since we have to shut off stickyS. */
+
+ i__1 = igetbits_(&all_1.mult[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25], &c__3, &c__28);
+ setbits_(&all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx -
+ 1] * 24 - 25], &c__3, &c__28, &i__1);
+ comget_1.stickys = FALSE_;
+ goto L2;
+ }
+
+/* If durq .ne. ':' then iccount is now on the start of the number */
+
+ readnum_(lineq, &all_1.iccount, durq, &dum, (ftnlen)128, (ftnlen)
+ 1);
+ r__1 = (dum - .5f) * 2;
+ i__1 = i_nint(&r__1);
+ setbits_(&all_1.mult[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25], &c__3, &c__28, &i__1);
+ if (*(unsigned char *)durq == ':') {
+ comget_1.stickys = TRUE_;
+ } else {
+ --all_1.iccount;
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == ',') {
+
+/* 2:1 pattern */
+
+ idotform = 3;
+
+/* Now flow to duration setting, as if durq=' ' */
+
+ } else if (*(unsigned char *)durq == '.') {
+
+/* Dotted pattern. Close out note. Mult time by 3/4. */
+/* Set time for next note to 1/4. Start the note. */
+
+ idotform = 1;
+ } else if (*(unsigned char *)durq == 'o') {
+
+/* Suppress rest centering */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],25);
+ goto L2;
+ } else if (*(unsigned char *)durq == 'L') {
+
+/* With keyboard rest option, look left */
+
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 1] =
+ bit_set(all_1.iornq[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 1],30);
+ goto L2;
+ } else if (i_indx("DF", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Double note for xtup. Must check here in case "D" came before "x" or on */
+/* last note of xtup. Need to flag it in pmxa since affects horiz. spacing. */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],18);
+ if (*(unsigned char *)durq == 'F') {
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],19);
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq == 'A') {
+
+/* Accidental option */
+
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+
+ if (*(unsigned char *)durq == 'o') {
+
+/* Ordered accidentals in a chord. Mark the main note. */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],28);
+ } else {
+
+/* Only other possibility is +-<> . Set tag, reduce iccount and loop to get #'s */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],29);
+ --all_1.iccount;
+ }
+ goto L2;
+ } else if (*(unsigned char *)durq != ' ') {
+ s_wsle(&io___725);
+ do_lio(&c__9, &c__1, "Illegal character in note: ", (ftnlen)27);
+ do_lio(&c__9, &c__1, durq, (ftnlen)1);
+ do_lio(&c__9, &c__1, ", ivx,nn:", (ftnlen)9);
+ do_lio(&c__3, &c__1, (char *)&commvl_1.ivx, (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&all_1.nnl[commvl_1.ivx - 1], (
+ ftnlen)sizeof(integer));
+ e_wsle();
+ stop1_();
+ }
+
+/* Done with note/rest options. Set level and duration. */
+
+ if (! bit_test(all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1]
+ * 24 - 25],0)) {
+ if (numnum == 2) {
+ comnotes_1.lastlev = ifnolev_(charq, &ioct, &
+ cominsttrans_1.itransamt[cominsttrans_1.instno[
+ all_1.iv - 1] - 1], (ftnlen)1);
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = comnotes_1.lastlev;
+ } else {
+ comnotes_1.lastlev = comnotes_1.lastlev - 3 + (ifnolev_(charq,
+ &c__10, &cominsttrans_1.itransamt[
+ cominsttrans_1.instno[all_1.iv - 1] - 1], (ftnlen)1)
+ - comnotes_1.lastlev + 3) % 7;
+ all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = comnotes_1.lastlev;
+ }
+ for (comnotes_1.npreslur = comnotes_1.npreslur;
+ comnotes_1.npreslur >= 1; --comnotes_1.npreslur) {
+
+/* Set level for preslur on normal note, non-chord */
+
+ setbits_(&all_1.isdat2[all_1.nsdat - comnotes_1.npreslur], &
+ c__7, &c__19, &comnotes_1.lastlev);
+/* L43: */
+ }
+ }
+ if (idotform > 0) {
+ if (idotform == 1) {
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = ifnodur_(&comnotes_1.nnodur, dotq, (ftnlen)1) *
+ 3 / 2;
+ } else if (idotform == 2) {
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = all_1.nodur[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25] / 3;
+ } else if (idotform == 3) {
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = ifnodur_(&comnotes_1.nnodur, dotq, (ftnlen)1);
+ } else if (idotform == 4) {
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = all_1.nodur[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] - 1) * 24 - 25] / 2;
+ }
+ } else if (bit_test(all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],19)) {
+
+/* Set duration of full-bar rest as pause */
+
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = all_1.lenbar;
+
+/* Use a one-line function to set nnodur. It gives inverse of ifnodur. */
+
+ i__1 = (integer) (log(all_1.lenbar + .1f) / .69315f) + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ comnotes_1.nnodur = i_indx("62514x0x37", ch__1, (ftnlen)10, (
+ ftnlen)1) - 1;
+ } else if (comgrace_1.ibarmbr != all_1.nbars + 1) {
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = ifnodur_(&comnotes_1.nnodur, dotq, (ftnlen)1);
+ if (bit_test(all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx -
+ 1] * 24 - 25],3)) {
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = all_1.nodur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25] * 7 / 6;
+ }
+ }
+ if (comnotes_1.shifton && ! bit_test(all_1.irest[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25],16)) {
+
+/* Shift is on, and this is not first shifted note. Check for duration change */
+
+ if (all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] != all_1.nodur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx
+ - 1] - 1) * 24 - 25]) {
+
+/* Must stop and restart the offset. */
+
+ all_1.irest[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] - 1) *
+ 24 - 25] = bit_set(all_1.irest[commvl_1.ivx + (
+ all_1.nnl[commvl_1.ivx - 1] - 1) * 24 - 25],17);
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],16);
+ ++comudsp_1.nudoff[commvl_1.ivx - 1];
+ comudsp_1.udoff[commvl_1.ivx + comudsp_1.nudoff[commvl_1.ivx
+ - 1] * 24 - 25] = comudsp_1.udoff[commvl_1.ivx + (
+ comudsp_1.nudoff[commvl_1.ivx - 1] - 1) * 24 - 25];
+ }
+ }
+ all_1.itsofar[commvl_1.ivx - 1] += all_1.nodur[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25];
+ if (comfb_1.autofbon && comfb_1.tautofb > comtol_1.tol &&
+ comget_1.fbon) {
+
+/* Check to see if need to terminate auto forced beam */
+
+ r__1 = all_1.itsofar[commvl_1.ivx - 1] - comfb_1.t1autofb;
+ if (r_mod(&r__1, &comfb_1.tautofb) < comtol_1.tol) {
+
+/* Terminate autofb */
+
+ comfb_1.t2fb[commvl_1.ivx + comfb_1.nfb[commvl_1.ivx - 1] *
+ 24 - 25] = (real) all_1.itsofar[commvl_1.ivx - 1];
+ comget_1.fbon = FALSE_;
+ }
+ }
+ if ((all_1.itsofar[commvl_1.ivx - 1] - all_1.lenb0) % all_1.lenbar ==
+ 0) {
+
+/* Finished a bar */
+
+ ++all_1.nbars;
+ all_1.nib[commvl_1.ivx + all_1.nbars * 24 - 25] = all_1.nnl[
+ commvl_1.ivx - 1];
+ if (all_1.firstgulp && all_1.lenb0 != 0 && all_1.nbars == 1) {
+
+/* Just finished the pickup bar for this voice. */
+
+ all_1.lenbar = all_1.lenb1;
+ }
+ }
+ if (idotform == 1) {
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ idotform = 2;
+ numnum = 1;
+ goto L28;
+ } else if (idotform == 3) {
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ idotform = 4;
+ numnum = 1;
+ goto L28;
+ }
+
+/* End of sub block for note-rest */
+
+ } else if (*(unsigned char *)charq == 'z') {
+
+/* Chord note. Must have note name, may have octave#,+,-,s,f,n,d */
+/* Actually the 'd' is not used, since time value comes from */
+/* basic note. Unless dot is to be shifted! */
+/* Doesn't increase # of notes, so must handle separately */
+/* ncrd: index of crd */
+/* Set bit 10 of ipl on main note as flag */
+/* Bits in icrdat: */
+/* 0-7 ip within voice */
+/* 8-11 ivx */
+/* 12-18 note level */
+/* 19 accidental? */
+/* 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp) */
+/* 23 shift left */
+/* 24 shift right */
+/* 25 arpeggio start or stop */
+/* 26 flag for moved dot (here, not icrdot, since this is always reset!) */
+/* 27 Midi-only accidental */
+/* 29 Tag for accidental shift...means add to autoshifts. */
+/* 31 Cautionary accidental */
+
+/* Bits in icrdot: */
+/* 0-6 10*abs(vertical dot shift in \internote) + 64 */
+/* 7-13 10*abs(horizontal dot shift in \internote) + 64 */
+/* 14-19 vert accidental shift-32 */
+/* 20-26 20*(horiz accidental shift+3.2) */
+/* 27-29 top-down level rank of chord note w/accid. Set in crdaccs. */
+
+/* Bits in icrdorn are same as in iornq, even tho most orns won't go in crds. */
+
+ ++comtrill_1.ncrd;
+ all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],10);
+ numnum = 0;
+/* icrdat(ncrd) = ior(nnl(ivx)-1,ishft(ivx,8)) */
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = all_1.nnl[commvl_1.ivx - 1];
+ i__1 = commvl_1.ivx % 16;
+ setbits_(&comtrill_1.icrdat[comtrill_1.ncrd - 1], &c__4, &c__8, &i__1)
+ ;
+ if (commvl_1.ivx >= 16) {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],28);
+ }
+ comtrill_1.icrdot[comtrill_1.ncrd - 1] = 0;
+ comtrill_1.icrdorn[comtrill_1.ncrd - 1] = 0;
+
+/* Get note name */
+
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+
+/* Get optional inputs */
+
+L25:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+/* ndx = index('fsn+-<>12345678rediA',durq) */
+ ndx = i_indx("fsn+-<>12345678rediAc", durq, (ftnlen)21, (ftnlen)1);
+ if (ndx == 20) {
+
+/* Expect +|-|<|> , set tag, loop */
+
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],29);
+ goto L25;
+ } else if (ndx > 0) {
+ if (ndx <= 3) {
+ if (! bit_test(comtrill_1.icrdat[comtrill_1.ncrd - 1],19)) {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],19);
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] |= ndx << 20;
+ } else {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],22);
+ }
+ } else if (ndx == 21) {
+
+/* Set flags for cautionary accidental */
+
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],31);
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 1] = bit_set(all_1.iornq[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 1],31);
+ } else if (ndx <= 7) {
+
+/* +/-/</> Check whether octave or accidental shift */
+
+ nactmp = 0;
+ chkpm4ac_(lineq, &all_1.iccount, &nactmp, &moved, (ftnlen)128)
+ ;
+ if (moved) {
+
+/* Transfer accidental shift values */
+
+ i__1 = igetbits_(&nactmp, &c__6, &c__4);
+ setbits_(&comtrill_1.icrdot[comtrill_1.ncrd - 1], &c__6, &
+ c__14, &i__1);
+ i__1 = igetbits_(&nactmp, &c__7, &c__10);
+ setbits_(&comtrill_1.icrdot[comtrill_1.ncrd - 1], &c__7, &
+ c__20, &i__1);
+ } else {
+ if (*(unsigned char *)durq == '+') {
+ comnotes_1.lastlev += 7;
+ } else if (*(unsigned char *)durq == '-') {
+ comnotes_1.lastlev += -7;
+ }
+ }
+ } else if (*(unsigned char *)durq == 'e') {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],23);
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],27);
+ } else if (*(unsigned char *)durq == 'r') {
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],24);
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],20);
+ } else if (*(unsigned char *)durq == 'i') {
+
+/* Midi-only accidental on chord note */
+
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],27);
+ } else if (*(unsigned char *)durq == 'd') {
+
+/* Must keep 'd' optional (backward compatibility), unless it is moved! */
+
+ i__1 = all_1.iccount;
+ if (i_indx("+-", lineq + i__1, (ftnlen)2, all_1.iccount + 1 -
+ i__1) > 0) {
+
+/* move a dot, unless next char is not part of a number */
+
+ i__1 = all_1.iccount + 1;
+ if (i_indx("0123456789.", lineq + i__1, (ftnlen)11,
+ all_1.iccount + 2 - i__1) == 0) {
+ goto L25;
+ }
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],26);
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, dumq, &fnum, (ftnlen)128,
+ (ftnlen)1);
+ if (*(unsigned char *)durq == '+') {
+ r__1 = fnum * 10;
+ comtrill_1.icrdot[comtrill_1.ncrd - 1] |= i_nint(&
+ r__1) + 64;
+ } else {
+ r__1 = fnum * 10;
+ comtrill_1.icrdot[comtrill_1.ncrd - 1] |= -i_nint(&
+ r__1) + 64;
+ }
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Vertical shift specified also */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)
+ 128, (ftnlen)1);
+ if (*(unsigned char *)dumq == '+') {
+ r__1 = fnum * 10;
+ ifnum = i_nint(&r__1) + 64;
+ } else {
+ r__1 = fnum * 10;
+ ifnum = -i_nint(&r__1) + 64;
+ }
+ } else {
+ ifnum = 64;
+ }
+ comtrill_1.icrdot[comtrill_1.ncrd - 1] |= ifnum << 7;
+ --all_1.iccount;
+ }
+ } else {
+
+/* must be a single digit, save it in ioct */
+
+ numnum = 1;
+ ioct = ndx - 7;
+ }
+ goto L25;
+ }
+ if (numnum == 1) {
+ comnotes_1.lastlev = ifnolev_(charq, &ioct, &
+ cominsttrans_1.itransamt[cominsttrans_1.instno[all_1.iv -
+ 1] - 1], (ftnlen)1);
+ } else {
+ comnotes_1.lastlev = comnotes_1.lastlev - 3 + (ifnolev_(charq, &
+ c__10, &cominsttrans_1.itransamt[cominsttrans_1.instno[
+ all_1.iv - 1] - 1], (ftnlen)1) - comnotes_1.lastlev + 3) %
+ 7;
+ }
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] |= comnotes_1.lastlev << 12;
+ for (comnotes_1.npreslur = comnotes_1.npreslur; comnotes_1.npreslur >=
+ 1; --comnotes_1.npreslur) {
+ setbits_(&all_1.isdat2[all_1.nsdat - comnotes_1.npreslur], &c__7,
+ &c__19, &comnotes_1.lastlev);
+
+/* Set level for chord note. */
+/* Initially I assigned the slur(s) to next note, so fix. */
+
+ all_1.islur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24
+ - 25] = bit_clear(all_1.islur[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] + 1) * 24 - 25],0);
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],0);
+ all_1.isdat2[all_1.nsdat - comnotes_1.npreslur] = bit_set(
+ all_1.isdat2[all_1.nsdat - comnotes_1.npreslur],0);
+ i__1 = igetbits_(&all_1.isdat1[all_1.nsdat - comnotes_1.npreslur],
+ &c__8, &c__3) - 1;
+ setbits_(&all_1.isdat1[all_1.nsdat - comnotes_1.npreslur], &c__8,
+ &c__3, &i__1);
+/* L44: */
+ }
+ if (comnotes_1.notcrd) {
+
+/* This is the first chord note in this chord. */
+
+/* Computing MIN */
+ i__1 = all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25];
+ comtrill_1.minlev = min(i__1,comnotes_1.lastlev);
+/* Computing MAX */
+ i__1 = all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25];
+ comtrill_1.maxlev = max(i__1,comnotes_1.lastlev);
+ } else {
+ comtrill_1.minlev = min(comtrill_1.minlev,comnotes_1.lastlev);
+ comtrill_1.maxlev = max(comtrill_1.maxlev,comnotes_1.lastlev);
+ }
+ comnotes_1.notcrd = FALSE_;
+ } else if (*(unsigned char *)charq == 'G') {
+ getgrace_(&commvl_1.ivx, all_1.nnl, lineq, &all_1.iccount,
+ all_1.islur, all_1.iornq, all_1.ipl, comnotes_1.ndlev, &
+ comnotes_1.lastlev, &all_1.iv, &all_1.nv, (ftnlen)128);
+
+/* Grace, comes *before* main note: */
+/* UNLESS there's an 'A' or 'W' after the 'G' */
+/* ngrace = # of grace note groups so far in block */
+/* ivg(ngrace), ipg(ngrace) */
+/* nng(ngrace) = # of notes in this group: default = 1 */
+/* ngstrt(ngrace) = starting position in nolevg of levels for this grace */
+/* multg(ngrace) = multiplicity: default = 1; input as 'm(digit)' */
+/* upg(ngrace) = logical for beam or stem dirn: default T, input'u,l' */
+/* slurg(ngrace) = logical for slur; default F, input 's' */
+/* slashg(ngrace) = T if slash; default is F, input 'x' */
+/* These data MUST precede note name of first note */
+/* nolevg, naccg: lists of levels and accid's, indexed as described above. */
+
+/* ngrace = ngrace+1 */
+/* ivg(ngrace) = ivx */
+/* ipg(ngrace) = nnl(ivx)+1 */
+/* if (ngrace .eq. 1) then */
+/* ngstrt(ngrace) = 1 */
+/* else */
+/* ngstrt(ngrace) = ngstrt(ngrace-1)+nng(ngrace-1) */
+/* end if */
+/* islur(ivx,nnl(ivx)+1) = ibset(islur(ivx,nnl(ivx)+1),4) */
+/* nng(ngrace) = 1 */
+/* multg(ngrace) = 1 */
+/* upg(ngrace) = .true. */
+/* slurg(ngrace) = .false. */
+/* slashg(ngrace) = .false. */
+/* 18 call getchar(lineq,iccount,charq) */
+/* if (index('WA',charq) .gt. 0) then */
+/* c */
+/* c Grace is on note that was already done, so shift flags forward one note. */
+/* c This puts flag on actual note with grace; later for W will go ahead one more. */
+/* c */
+/* ipg(ngrace) = nnl(ivx) */
+/* islur(ivx,nnl(ivx)+1) = ibclr(islur(ivx,nnl(ivx)+1),4) */
+/* islur(ivx,nnl(ivx)) = ibset(islur(ivx,nnl(ivx)),4) */
+/* if (slurg(ngrace)) */
+/* * iornq(ivx,nnl(ivx)) = ibset(iornq(ivx,nnl(ivx)),24) */
+/* if (charq .eq. 'A') then */
+/* c */
+/* c close After, clear way-after bit, to ensure priority of most recent A/W */
+/* c */
+/* ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),31),29) */
+/* else */
+/* c */
+/* c Way after; later assign to following note, and position like normal grace. */
+/* c */
+/* ipl(ivx,nnl(ivx)) = ibset(ibclr(ipl(ivx,nnl(ivx)),29),31) */
+/* end if */
+/* else if (charq .eq. 'm') then */
+/* call getchar(lineq,iccount,charq) */
+/* multg(ngrace) = ichar(charq)-48 */
+/* else if (index('123456789',charq) .gt. 0) then */
+/* call readnum(lineq,iccount,durq,fnum) */
+/* iccount = iccount-1 */
+/* nng(ngrace) = nint(fnum) */
+/* else if (charq .eq. 'l') then */
+/* upg(ngrace) = .false. */
+/* else if (charq .eq. 's') then */
+/* slurg(ngrace) = .true. */
+/* if (nnl(ivx) .gt. 0) then */
+/* c */
+/* c If A- or W-grace, set signal to start slur on main note. */
+/* c */
+/* if(btest(ipl(ivx,nnl(ivx)),31) .or. */
+/* * btest(ipl(ivx,nnl(ivx)),29)) */
+/* * iornq(ivx,nnl(ivx))=ibset(iornq(ivx,nnl(ivx)),24) */
+/* end if */
+/* else if (charq .eq. 'x') then */
+/* slashg(ngrace) = .true. */
+/* else if (charq .eq. 'u') then */
+/* else if (charq .eq. 'X') then */
+/* c */
+/* c Space before main note of grace. Number will come next. */
+/* c */
+/* iccount = iccount+1 */
+/* call readnum(lineq,iccount,durq,graspace(ngrace)) */
+/* iccount = iccount-1 */
+/* end if */
+/* if (index('abcdefg',charq) .eq. 0) go to 18 */
+/* c */
+/* c At this point, charq is first note name in grace */
+/* c */
+/* do 19 ing = ngstrt(ngrace), ngstrt(ngrace)+nng(ngrace)-1 */
+/* naccg(ing) = 0 */
+/* ioct = 0 */
+/* if (ing .gt. ngstrt(ngrace)) then */
+/* 55 call getchar(lineq,iccount,charq) */
+/* if (charq .eq. ' ') go to 55 */
+/* endif */
+/* iclastlev = 0 */
+/* 9 call getchar(lineq,iccount,durq) */
+/* if (durq .ne. ' ') then */
+/* if (durq.eq.'+') then */
+/* lastlev = lastlev+7 */
+/* iclastlev = iclastlev+7 */
+/* else if (durq.eq.'-') then */
+/* lastlev = lastlev-7 */
+/* iclastlev = iclastlev-7 */
+/* else if (index('fsn',durq) .gt. 0) then */
+/* if (naccg(ing) .eq. 0) then */
+/* naccg(ing) = index('fsn',durq) */
+/* else */
+/* c */
+/* c Double accidental */
+/* c */
+/* naccg(ing) = ibset(naccg(ing),2) */
+/* end if */
+/* else */
+/* ioct = ichar(durq)-48 */
+/* end if */
+/* go to 9 */
+/* end if */
+/* if (ioct .gt. 0) then */
+/* lastlev = ifnolev(charq,ioct) */
+/* else */
+/* if (nnl(ivx).eq.0 .and. ing.eq.ngstrt(ngrace)) then */
+/* if (ivx .le. nv) then */
+/* kv = 1 */
+/* else */
+/* kv = 2 */
+/* end if */
+/* lastlev = ndlev(iv,kv)+iclastlev */
+/* end if */
+/* lastlev = lastlev-3+mod(ifnolev(charq,10)-lastlev+3,7) */
+/* end if */
+/* nolevg(ing) = lastlev */
+/* 19 continue */
+/* c */
+/* c Grace could come before first note of block, so reset end level. */
+/* c */
+/* if (nnl(ivx).eq.0) then */
+/* if (ivx .le. nv) then */
+/* kv = 1 */
+/* else */
+/* kv = 2 */
+/* end if */
+/* ndlev(iv,kv) = lastlev */
+/* end if */
+ } else if (*(unsigned char *)charq == *(unsigned char *)all_1.sq) {
+
+/* Literal TeX string */
+
+ i__1 = all_1.nnl[commvl_1.ivx - 1] + 1;
+ littex_(all_1.islur, &i__1, &commvl_1.ivx, &comas3_1.topmods, lineq, &
+ all_1.iccount, (ftnlen)128);
+ } else if (*(unsigned char *)charq == 'o') {
+
+/* Ornament on non-xtup note. Symbol must come AFTER the affected note */
+
+ if (comnotes_1.notcrd) {
+ nole = all_1.nolev[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25];
+ } else {
+ nole = 127 & lbit_shift(comtrill_1.icrdat[comtrill_1.ncrd - 1], (
+ ftnlen)-12);
+ }
+ getorn_(lineq, &all_1.iccount, &all_1.iornq[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 1], &all_1.iornq[commvl_1.ivx - 1], &
+ comget_1.ornrpt, &comgrace_1.noffseg, &all_1.nnl[commvl_1.ivx
+ - 1], &commvl_1.ivx, &c_true, &comnotes_1.notcrd, &nole, (
+ ftnlen)128);
+ } else if (i_indx("st(){}", charq, (ftnlen)6, (ftnlen)1) > 0) {
+ nnlivx = all_1.nnl[commvl_1.ivx - 1];
+ if (*(unsigned char *)charq == '(' || *(unsigned char *)charq == '{')
+ {
+
+/* Detect preslur on normal non-chord note */
+
+ ++nnlivx;
+ ++comnotes_1.npreslur;
+ }
+ all_1.islur[commvl_1.ivx + nnlivx * 24 - 25] = bit_set(all_1.islur[
+ commvl_1.ivx + nnlivx * 24 - 25],0);
+ if (*(unsigned char *)charq == 't') {
+ all_1.islur[commvl_1.ivx + nnlivx * 24 - 25] = bit_set(
+ all_1.islur[commvl_1.ivx + nnlivx * 24 - 25],1);
+ }
+ if (commvl_1.ivx <= all_1.nv) {
+ kv = 1;
+ } else {
+ kv = 2;
+ }
+ if (comslur_1.fontslur) {
+ sslur_(lineq, &all_1.iccount, &all_1.iv, &kv, &nnlivx,
+ all_1.isdat1, all_1.isdat2, all_1.isdat3, &all_1.nsdat, &
+ comnotes_1.notcrd, &all_1.nolev[commvl_1.ivx + nnlivx *
+ 24 - 25], charq, (ftnlen)128, (ftnlen)1);
+ } else {
+ spsslur_(lineq, &all_1.iccount, &all_1.iv, &kv, &nnlivx,
+ all_1.isdat1, all_1.isdat2, all_1.isdat3, all_1.isdat4, &
+ all_1.nsdat, &comnotes_1.notcrd, &all_1.nolev[
+ commvl_1.ivx + nnlivx * 24 - 25], charq, (ftnlen)128, (
+ ftnlen)1);
+ }
+ } else if (*(unsigned char *)charq == '?') {
+
+/* Arpeggio */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25],10)) {
+
+/* This is a chordal note. Set a bit in icrdat. But if *main* (spacing) note */
+/* of chord, will not set icrdat(25), but iornq(27) */
+
+ comtrill_1.icrdat[comtrill_1.ncrd - 1] = bit_set(
+ comtrill_1.icrdat[comtrill_1.ncrd - 1],25);
+ } else {
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 1] =
+ bit_set(all_1.iornq[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 1],27);
+ }
+
+/* Check for shift */
+
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == ' ') {
+ --all_1.iccount;
+ } else {
+
+/* durq must be "-" */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ --all_1.iccount;
+
+/* record the shift */
+
+ ++comarpshift_1.numarpshift;
+ comarpshift_1.ivarpshift[comarpshift_1.numarpshift - 1] =
+ commvl_1.ivx;
+ comarpshift_1.iparpshift[comarpshift_1.numarpshift - 1] =
+ all_1.nnl[commvl_1.ivx - 1];
+ comarpshift_1.arpshift[comarpshift_1.numarpshift - 1] = fnum;
+ }
+ } else if (i_indx("0123456789#-nx_", charq, (ftnlen)15, (ftnlen)1) > 0) {
+
+/* We have a figure. Must come AFTER the note it goes under */
+
+ ivf = 1;
+ if (commvl_1.ivx > 1) {
+ if (comfig_1.ivxfig2 == 0) {
+ comfig_1.ivxfig2 = commvl_1.ivx;
+ } else if (commvl_1.ivx != comfig_1.ivxfig2) {
+ s_wsle(&io___727);
+ e_wsle();
+ s_wsle(&io___728);
+ do_lio(&c__9, &c__1, "Figures not allowed in >1 voice above "
+ "first", (ftnlen)43);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ ivf = 2;
+ }
+ nfig1 = comfig_1.nfigs[ivf - 1] + 1;
+ getfig_(&comgrace_1.itoff[ivf + (nfig1 << 1) - 3], charq, lineq, &
+ all_1.iccount, &all_1.isfig[ivf + (all_1.nnl[commvl_1.ivx - 1]
+ << 1) - 3], &comfig_1.itfig[ivf + (nfig1 << 1) - 3], &
+ all_1.itsofar[commvl_1.ivx - 1], &all_1.nodur[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25], comfig_1.figq + (ivf
+ + (nfig1 << 1) - 3) * 10, &comfig_1.ivupfig[ivf + (nfig1 << 1)
+ - 3], &comfig_1.nfigs[ivf - 1], (ftnlen)1, (ftnlen)128, (
+ ftnlen)10);
+ } else if (*(unsigned char *)charq == '[') {
+
+/* Start forced beam. Record barno & time since start of inp. blk. Set signal */
+
+ ++comfb_1.nfb[commvl_1.ivx - 1];
+ comget_1.fbon = TRUE_;
+ *(unsigned char *)&comfb_1.ulfbq[commvl_1.ivx + comfb_1.nfb[
+ commvl_1.ivx - 1] * 24 - 25] = 'x';
+ comfb_1.t1fb[commvl_1.ivx + comfb_1.nfb[commvl_1.ivx - 1] * 24 - 25] =
+ (real) all_1.itsofar[commvl_1.ivx - 1];
+ nadj = 0;
+ if (comfb_1.autofbon) {
+ comfb_1.autofbon = FALSE_;
+ }
+L17:
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("ulf", charq, (ftnlen)3, (ftnlen)1) > 0) {
+ *(unsigned char *)&comfb_1.ulfbq[commvl_1.ivx + comfb_1.nfb[
+ commvl_1.ivx - 1] * 24 - 25] = *(unsigned char *)charq;
+ goto L17;
+ } else if (*(unsigned char *)charq == 'j') {
+
+/* Continuing a jumped beam here */
+
+ all_1.irest[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24
+ - 25] = bit_set(all_1.irest[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] + 1) * 24 - 25],24);
+
+/* Set flag to watch for END of this forced beam, so can set flag rest(30) on */
+/* NEXT note as signal to start a new notes group there. */
+
+ combjmp_1.isbj2 = TRUE_;
+ goto L17;
+ } else if (*(unsigned char *)charq == 'h') {
+ all_1.islur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24
+ - 25] = bit_set(all_1.islur[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] + 1) * 24 - 25],2);
+ goto L17;
+ } else if (*(unsigned char *)charq == 'm') {
+
+/* Force multiplicity. Next input is digit */
+
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ all_1.islur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24
+ - 25] = bit_set(all_1.islur[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] + 1) * 24 - 25],21);
+ i__1 = *(unsigned char *)charq - 48;
+ setbits_(&all_1.islur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1]
+ + 1) * 24 - 25], &c__3, &c__22, &i__1);
+ goto L17;
+ } else if (*(unsigned char *)charq == ':') {
+
+/* Start auto forced beam pattern */
+
+ comfb_1.autofbon = TRUE_;
+
+/* When forced later beam ends, check whether tautofv <=0; if so set it. */
+
+ comfb_1.tautofb = (real) (-all_1.itsofar[commvl_1.ivx - 1]);
+ comfb_1.t1autofb = (real) all_1.itsofar[commvl_1.ivx - 1];
+ goto L17;
+ } else if (*(unsigned char *)charq != ' ') {
+
+/* Must be '+/-' for height or slope shift */
+
+ ++nadj;
+
+/* nadj = 1,2, or 3 for normal start level, slope, or beam-thk start level. */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ --all_1.iccount;
+ iadj = i_nint(&fnum);
+ if (*(unsigned char *)charq == '-') {
+ iadj = -iadj;
+ }
+ if (nadj == 1) {
+
+/* This is a level shift. Note if 0 was entered, iadj = 30 */
+
+ i__1 = iadj + 30;
+ setbits_(&all_1.ipl[commvl_1.ivx + (all_1.nnl[commvl_1.ivx -
+ 1] + 1) * 24 - 25], &c__6, &c__11, &i__1);
+ } else if (nadj == 2) {
+
+/* Must be a slope shift */
+
+ i__1 = iadj + 30;
+ setbits_(&all_1.ipl[commvl_1.ivx + (all_1.nnl[commvl_1.ivx -
+ 1] + 1) * 24 - 25], &c__6, &c__17, &i__1);
+ } else {
+
+/* Beam-thk fine tune */
+
+ setbits_(&all_1.islur[commvl_1.ivx + (all_1.nnl[commvl_1.ivx
+ - 1] + 1) * 24 - 25], &c__2, &c__27, &iadj);
+ }
+ goto L17;
+ }
+ } else if (*(unsigned char *)charq == ']') {
+ if (comfb_1.autofbon && comfb_1.tautofb < comtol_1.tol) {
+ comfb_1.tautofb = all_1.itsofar[commvl_1.ivx - 1] +
+ comfb_1.tautofb;
+ }
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("j ", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Since ']' comes AFTER note, itsofar has been updated. Set ending signal. */
+
+ comfb_1.t2fb[commvl_1.ivx + comfb_1.nfb[commvl_1.ivx - 1] * 24 -
+ 25] = (real) all_1.itsofar[commvl_1.ivx - 1];
+ comget_1.fbon = FALSE_;
+ if (*(unsigned char *)charq == 'j') {
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 25] = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],23);
+ }
+ if (combjmp_1.isbj2) {
+
+/* This is the end of a fb segment of a jump beam. Set flag on NEXT note to */
+/* force start of new notes group, provided this is not last note in bar. */
+
+ if (all_1.itsofar[commvl_1.ivx - 1] % all_1.lenbar != 0) {
+ all_1.irest[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] +
+ 1) * 24 - 25] = bit_set(all_1.irest[commvl_1.ivx
+ + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24 - 25],30)
+ ;
+ }
+ combjmp_1.isbj2 = FALSE_;
+ }
+ } else if (*(unsigned char *)charq == '[') {
+
+/* Multiplicity down-up signal */
+
+ all_1.islur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.islur[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],20);
+ } else if (*(unsigned char *)charq == '-') {
+
+/* Set signals for gap in single-slope beam [...]-[...] */
+
+ all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25] =
+ bit_set(all_1.nacc[commvl_1.ivx + all_1.nnl[commvl_1.ivx
+ - 1] * 24 - 25],20);
+ all_1.nacc[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24
+ - 25] = bit_set(all_1.nacc[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] + 1) * 24 - 25],21);
+
+/* Next two characters must be "[ ". Skip over them. */
+
+ all_1.iccount += 2;
+ }
+ } else if (*(unsigned char *)charq == 'D') {
+ getdyn_(&commvl_1.ivx, &all_1.nnl[commvl_1.ivx - 1], &all_1.irest[
+ commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25], &
+ all_1.iornq[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 -
+ 1], lineq, &all_1.iccount, (ftnlen)128);
+ } else if (*(unsigned char *)charq == 'h') {
+
+/* Heading or height. For heading, only OK if at start of block */
+/* Check whether at beginning of a block */
+
+ if (all_1.iv != 1 || all_1.nnl[0] != 0) {
+ s_wsle(&io___731);
+ do_lio(&c__9, &c__1, "You entered \"h\" not at beginning of block"
+ , (ftnlen)41);
+ e_wsle();
+ stop1_();
+ }
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ comhead_1.ihdvrt = 0;
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Vertical offset */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, charq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ comhead_1.ihdvrt = fnum + .1f;
+ if (*(unsigned char *)durq == '-') {
+ comhead_1.ihdvrt = -comhead_1.ihdvrt;
+ }
+ *(unsigned char *)durq = *(unsigned char *)charq;
+ }
+ if (*(unsigned char *)durq != ' ') {
+
+/* Height symbol. Read past (until next blank) */
+
+L3:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+ goto L3;
+ }
+ } else {
+
+/* Set flag for header & read it in */
+
+ comhead_1.ihdht = 16;
+ getbuf_(comhead_1.headrq, (ftnlen)80);
+ all_1.iccount = 128;
+ }
+ } else if (*(unsigned char *)charq == 'L') {
+
+/* Linebreak, already handled in pmxa, but check for movement break */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fmovbrk, (ftnlen)128, (ftnlen)
+ 1);
+ if (*(unsigned char *)durq == 'P') {
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ }
+ if (*(unsigned char *)durq == 'M') {
+ comget_1.movbrk = i_nint(&fmovbrk);
+ comget_1.movgap = 0;
+ comget_1.parmov = -1.f;
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+L31:
+ if (*(unsigned char *)durq == '+') {
+
+/* Get vertical space (\internotes) */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ comget_1.movgap = i_nint(&fnum);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'i') {
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &comget_1.parmov, (
+ ftnlen)128, (ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'c') {
+ comnotes_1.nobar1 = TRUE_;
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'r') {
+
+/* "rename" can be set on or off. */
+
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ comnvi_1.rename = *(unsigned char *)durq == '+';
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ goto L31;
+ } else if (*(unsigned char *)durq == 'n') {
+
+/* Change # of voices. Input ninow, iiorig(1...ninow). Will use names, */
+/* staves per inst. and clefs corr. to iiorig in original list of instruments. */
+
+ nvold = all_1.nv;
+ all_1.nv = 0;
+ comnvi_1.rename = TRUE_;
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == ':') {
+ all_1.iccount += 2;
+ i__1 = all_1.iccount - 2;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = all_1.iccount - i__1;
+ ici__1.iciunit = lineq + i__1;
+ ici__1.icifmt = "(i2)";
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&comnotes_1.ninow, (ftnlen)sizeof(
+ integer));
+ e_rsfi();
+ } else {
+ comnotes_1.ninow = *(unsigned char *)durq - 48;
+ }
+ iiv = 0;
+ i__1 = comnotes_1.ninow;
+ for (iinow = 1; iinow <= i__1; ++iinow) {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (
+ ftnlen)1);
+ if (*(unsigned char *)durq == ':') {
+ all_1.iccount += 2;
+ i__2 = all_1.iccount - 2;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = all_1.iccount - i__2;
+ ici__1.iciunit = lineq + i__2;
+ ici__1.icifmt = "(i2)";
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&comnvi_1.iiorig[iinow - 1], (
+ ftnlen)sizeof(integer));
+ e_rsfi();
+ } else {
+ comnvi_1.iiorig[iinow - 1] = *(unsigned char *)durq -
+ 48;
+ }
+ comnvi_1.nspern[iinow - 1] = comnvi_1.nsperi[
+ comnvi_1.iiorig[iinow - 1] - 1];
+ all_1.nv += comnvi_1.nspern[iinow - 1];
+ *(unsigned char *)&all_1.sepsymq[iiv + comnvi_1.nspern[
+ iinow - 1] - 1] = '&';
+ if (comnvi_1.nspern[iinow - 1] > 1) {
+ i__2 = comnvi_1.nspern[iinow - 1] - 1;
+ for (iis = 1; iis <= i__2; ++iis) {
+ *(unsigned char *)&all_1.sepsymq[iiv + iis - 1] =
+ '|';
+/* L64: */
+ }
+ }
+ iiv += comnvi_1.nspern[iinow - 1];
+/* L63: */
+ }
+ if (comlast_1.islast) {
+ if (comnotes_1.ninow < 10) {
+ s_wsfe(&io___737);
+/* Writing concatenation */
+ i__4[0] = 1, a__1[0] = all_1.sq;
+ i__4[1] = 7, a__1[1] = "newnoi{";
+ i__1 = comnotes_1.ninow + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__4[2] = 1, a__1[2] = ch__1;
+ i__4[3] = 2, a__1[3] = "}%";
+ s_cat(ch__2, a__1, i__4, &c__4, (ftnlen)11);
+ do_fio(&c__1, ch__2, (ftnlen)11);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___738);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 7, a__2[1] = "newnoi{";
+ s_cat(ch__3, a__2, i__5, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__3, (ftnlen)8);
+ do_fio(&c__1, (char *)&comnotes_1.ninow, (ftnlen)
+ sizeof(integer));
+ do_fio(&c__1, "}%", (ftnlen)2);
+ e_wsfe();
+ }
+ }
+ if (all_1.nv == 1 && nvold > 1) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___739);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 11, a__2[1] = "nostartrule";
+ s_cat(ch__4, a__2, i__5, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__4, (ftnlen)12);
+ e_wsfe();
+ }
+ } else if (all_1.nv > 1 && nvold == 1) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___740);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 9, a__2[1] = "startrule";
+ s_cat(ch__5, a__2, i__5, &c__2, (ftnlen)10);
+ do_fio(&c__1, ch__5, (ftnlen)10);
+ e_wsfe();
+ }
+ }
+ iiv = 0;
+ i__1 = comnotes_1.ninow;
+ for (iinow = 1; iinow <= i__1; ++iinow) {
+ i__2 = comnvi_1.nspern[iinow - 1];
+ for (iis = 1; iis <= i__2; ++iis) {
+ ++iiv;
+
+/* May not really need to re-enter clefs, but it's easier to program since */
+/* clef names are not saved but are needed in newvoice to set ncmidcc. */
+
+ getchar_(lineq, &all_1.iccount, comclefq_1.clefq + (
+ iiv - 1), (ftnlen)128, (ftnlen)1);
+ newvoice_(&iiv, comclefq_1.clefq + (iiv - 1), &c_true,
+ (ftnlen)1);
+ if (comnvi_1.nspern[iinow - 1] == 1) {
+ i__3 = numclef_(comclefq_1.clefq + (iiv - 1), (
+ ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__3);
+ s_copy(hdlndq, ch__1, (ftnlen)59, (ftnlen)1);
+ lclf = 1;
+ } else if (iis == 1) {
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = "{";
+ i__3 = numclef_(comclefq_1.clefq + (iiv - 1), (
+ ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__3);
+ i__5[1] = 1, a__2[1] = ch__1;
+ s_cat(hdlndq, a__2, i__5, &c__2, (ftnlen)59);
+ lclf = 2;
+ } else if (iis < comnvi_1.nspern[iinow - 1]) {
+/* Writing concatenation */
+ i__5[0] = lclf, a__2[0] = hdlndq;
+ i__3 = numclef_(comclefq_1.clefq + (iiv - 1), (
+ ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__3);
+ i__5[1] = 1, a__2[1] = ch__1;
+ s_cat(hdlndq, a__2, i__5, &c__2, (ftnlen)59);
+ ++lclf;
+ } else {
+/* Writing concatenation */
+ i__6[0] = lclf, a__3[0] = hdlndq;
+ i__3 = numclef_(comclefq_1.clefq + (iiv - 1), (
+ ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__3);
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = 1, a__3[2] = "}";
+ s_cat(hdlndq, a__3, i__6, &c__3, (ftnlen)59);
+ lclf += 2;
+ }
+/* L61: */
+ }
+
+/* setstaffs & setclef go by instrument, not voice */
+
+ if (comlast_1.islast) {
+ if (iinow < 10) {
+ s_wsfe(&io___743);
+/* Writing concatenation */
+ i__7[0] = 1, a__4[0] = all_1.sq;
+ i__7[1] = 9, a__4[1] = "setstaffs";
+ i__2 = iinow + 48;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__7[2] = 1, a__4[2] = ch__1;
+ i__3 = comnvi_1.nspern[iinow - 1] + 48;
+ chax_(ch__7, (ftnlen)1, &i__3);
+ i__7[3] = 1, a__4[3] = ch__7;
+ i__7[4] = 1, a__4[4] = "%";
+ s_cat(ch__6, a__4, i__7, &c__5, (ftnlen)13);
+ do_fio(&c__1, ch__6, (ftnlen)13);
+ e_wsfe();
+ s_wsfe(&io___744);
+/* Writing concatenation */
+ i__7[0] = 1, a__4[0] = all_1.sq;
+ i__7[1] = 7, a__4[1] = "setclef";
+ i__2 = iinow + 48;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__7[2] = 1, a__4[2] = ch__1;
+ i__7[3] = lclf, a__4[3] = hdlndq;
+ i__7[4] = 1, a__4[4] = "%";
+ s_cat(ch__8, a__4, i__7, &c__5, (ftnlen)69);
+ do_fio(&c__1, ch__8, lclf + 10);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___745);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 10, a__2[1] = "setstaffs{";
+ s_cat(ch__2, a__2, i__5, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__2, (ftnlen)11);
+ do_fio(&c__1, (char *)&iinow, (ftnlen)sizeof(
+ integer));
+/* Writing concatenation */
+ i__6[0] = 1, a__3[0] = "}";
+ i__2 = comnvi_1.nspern[iinow - 1] + 48;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = 1, a__3[2] = "%";
+ s_cat(ch__9, a__3, i__6, &c__3, (ftnlen)3);
+ do_fio(&c__1, ch__9, (ftnlen)3);
+ e_wsfe();
+ s_wsfe(&io___746);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 8, a__2[1] = "setclef{";
+ s_cat(ch__10, a__2, i__5, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__10, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinow, (ftnlen)sizeof(
+ integer));
+/* Writing concatenation */
+ i__6[0] = 1, a__3[0] = "}";
+ i__6[1] = lclf, a__3[1] = hdlndq;
+ i__6[2] = 1, a__3[2] = "%";
+ s_cat(ch__11, a__3, i__6, &c__3, (ftnlen)61);
+ do_fio(&c__1, ch__11, lclf + 2);
+ e_wsfe();
+ }
+ }
+/* L60: */
+ }
+
+/* Loop back up, this may not be last option in M. Note flow out if durq=' ' */
+
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ goto L31;
+ }
+
+/* Write instrument names */
+
+ if (! comnvi_1.rename) {
+ i__1 = comnotes_1.ninow;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+ if (comlast_1.islast) {
+ if (iinst < 10) {
+ s_wsfe(&io___748);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 7, a__2[1] = "setname";
+ s_cat(ch__3, a__2, i__5, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__3, (ftnlen)8);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(
+ integer));
+ do_fio(&c__1, "{}%", (ftnlen)3);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___749);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 8, a__2[1] = "setname{";
+ s_cat(ch__10, a__2, i__5, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__10, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(
+ integer));
+ do_fio(&c__1, "}{}%", (ftnlen)4);
+ e_wsfe();
+ }
+ }
+/* L62: */
+ }
+ } else {
+ i__1 = comnotes_1.ninow;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+ if (comlast_1.islast) {
+ if (iinst < 10) {
+ s_wsfe(&io___750);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 7, a__2[1] = "setname";
+ s_cat(ch__3, a__2, i__5, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__3, (ftnlen)8);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(
+ integer));
+/* Writing concatenation */
+ i__6[0] = 1, a__3[0] = "{";
+ i__6[1] = comtop_1.lnam[comnvi_1.iiorig[iinst - 1]
+ - 1], a__3[1] = comtop_1.inameq + (
+ comnvi_1.iiorig[iinst - 1] - 1) * 79;
+ i__6[2] = 2, a__3[2] = "}%";
+ s_cat(ch__12, a__3, i__6, &c__3, (ftnlen)82);
+ do_fio(&c__1, ch__12, comtop_1.lnam[
+ comnvi_1.iiorig[iinst - 1] - 1] + 3);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___751);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 8, a__2[1] = "setname{";
+ s_cat(ch__10, a__2, i__5, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__10, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(
+ integer));
+/* Writing concatenation */
+ i__6[0] = 2, a__3[0] = "}{";
+ i__6[1] = comtop_1.lnam[comnvi_1.iiorig[iinst - 1]
+ - 1], a__3[1] = comtop_1.inameq + (
+ comnvi_1.iiorig[iinst - 1] - 1) * 79;
+ i__6[2] = 2, a__3[2] = "}%";
+ s_cat(ch__13, a__3, i__6, &c__3, (ftnlen)83);
+ do_fio(&c__1, ch__13, comtop_1.lnam[
+ comnvi_1.iiorig[iinst - 1] - 1] + 4);
+ e_wsfe();
+ }
+ }
+/* L65: */
+ }
+ comnvi_1.rename = FALSE_;
+ }
+ }
+ } else if (*(unsigned char *)charq == '|') {
+
+/* End of bar symbol. Check about end of bar hardspace. */
+
+ if (bit_test(all_1.iornq[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1]
+ + 1) * 24 - 1],26)) {
+
+/* There was a hardspace followed by a bar line. Remove it from the hardspace */
+/* list, store with shifts instead, set special bit. Need to repeat this code */
+/* at '/'. */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],18);
+ ++comudsp_1.nudoff[commvl_1.ivx - 1];
+ comudsp_1.udoff[commvl_1.ivx + comudsp_1.nudoff[commvl_1.ivx - 1]
+ * 24 - 25] = comudsp_1.udsp[comudsp_1.nudsp - 1];
+ --comudsp_1.nudsp;
+ all_1.iornq[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24
+ - 1] = bit_clear(all_1.iornq[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] + 1) * 24 - 1],26);
+ }
+ } else if (i_indx("wS", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Width symbol or new nsyst. Read past (until blank) */
+
+L4:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+ goto L4;
+ }
+ } else if (*(unsigned char *)charq == 'l') {
+
+/* Lower string. Only OK if at start of block */
+/* Check whether at beginning of a block */
+
+ if (all_1.iv != 1 || all_1.nnl[0] != 0) {
+ s_wsle(&io___752);
+ do_lio(&c__9, &c__1, "You entered \"l\" not at beginning of block"
+ , (ftnlen)41);
+ e_wsle();
+ stop1_();
+ }
+
+/* Set flag for lower string & read it in */
+
+ comhead_1.lower = TRUE_;
+ getbuf_(comhead_1.lowerq, (ftnlen)80);
+ all_1.iccount = 128;
+ } else if (*(unsigned char *)charq == 'm') {
+
+/* Meter change. Only allow at beginning of block. */
+/* mtrnuml, mtrdenl (logical) and p (printable) will be input. */
+/* mtrnuml=0 initially. (In common) */
+
+/* Check whether at beginning of a block */
+
+ if (all_1.iv != 1 || all_1.nnl[0] != 0) {
+ s_wsle(&io___753);
+ do_lio(&c__9, &c__1, "You entered \"m\" not at beginning of block"
+ , (ftnlen)41);
+ e_wsle();
+ stop1_();
+ }
+ readmeter_(lineq, &all_1.iccount, &all_1.mtrnuml, &all_1.mtrdenl, (
+ ftnlen)128);
+ readmeter_(lineq, &all_1.iccount, &all_1.mtrnmp, &all_1.mtrdnp, (
+ ftnlen)128);
+ lenbeat = ifnodur_(&all_1.mtrdenl, "x", (ftnlen)1);
+ if (all_1.mtrdenl == 2) {
+ lenbeat = 16;
+ }
+ all_1.lenbar = all_1.mtrnuml * lenbeat;
+ if (all_1.mtrdenl == 2) {
+ all_1.lenbar <<= 1;
+ }
+ all_1.lenb1 = all_1.lenbar;
+ all_1.lenb0 = 0;
+ if (commidi_1.ismidi) {
+ midievent_("m", &all_1.mtrnuml, &all_1.mtrdenl, (ftnlen)1);
+ }
+ } else if (*(unsigned char *)charq == 'C') {
+
+/* Clef change on next note. Set bits 11-15. Won't allow in 2nd line of music. */
+
+ if (all_1.nnl[all_1.iv - 1] > 0) {
+ ++comcc_1.ncc[all_1.iv - 1];
+ }
+ comcc_1.tcc[all_1.iv + comcc_1.ncc[all_1.iv - 1] * 24 - 25] = (real)
+ all_1.itsofar[all_1.iv - 1];
+ isl = bit_set(all_1.islur[all_1.iv + (all_1.nnl[all_1.iv - 1] + 1) *
+ 24 - 25],11);
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Store clef number, or 7 if clef number = 9 (French violin clef) */
+
+/* Computing MIN */
+ i__1 = numclef_(durq, (ftnlen)1);
+ isl |= min(i__1,7) << 12;
+ comcc_1.ncmidcc[all_1.iv + comcc_1.ncc[all_1.iv - 1] * 24 - 25] =
+ ncmidf_(durq, (ftnlen)1);
+
+/* Set marker on note with lowest voice # starting at same time. */
+
+ if (all_1.iv == 1) {
+ isl = bit_set(isl,15);
+ } else {
+ i__1 = all_1.iv;
+ for (iiv = 1; iiv <= i__1; ++iiv) {
+ nnliiv = all_1.nnl[iiv - 1];
+ if (iiv == all_1.iv) {
+ ++nnliiv;
+ }
+ itother = 0;
+ i__2 = nnliiv;
+ for (iip = 1; iip <= i__2; ++iip) {
+ if (itother < all_1.itsofar[all_1.iv - 1]) {
+ itother += all_1.nodur[iiv + iip * 24 - 25];
+ goto L14;
+ } else if (itother == all_1.itsofar[all_1.iv - 1]) {
+ all_1.islur[iiv + iip * 24 - 25] = bit_set(
+ all_1.islur[iiv + iip * 24 - 25],15);
+ goto L15;
+ }
+L14:
+ ;
+ }
+/* L13: */
+ }
+L15:
+ ;
+ }
+
+/* Need 'or' since may have set bit 15 in the above loop */
+
+ all_1.islur[all_1.iv + (all_1.nnl[all_1.iv - 1] + 1) * 24 - 25] = isl
+ | all_1.islur[all_1.iv + (all_1.nnl[all_1.iv - 1] + 1) * 24 -
+ 25];
+ } else if (*(unsigned char *)charq == 'R') {
+
+/* Repeats. set bits 5, 6, and/or 8 of islur(1,ip+1) */
+
+L10:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Save designator in case it's a terminal Rr or Rd */
+
+ if (*(unsigned char *)durq == 'l') {
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24] = bit_set(all_1.islur[(
+ all_1.nnl[0] + 1) * 24 - 24],5);
+ goto L10;
+ } else if (i_indx("rdDbz", durq, (ftnlen)5, (ftnlen)1) > 0) {
+ if (*(unsigned char *)durq == 'r') {
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24] = bit_set(
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24],6);
+ } else if (*(unsigned char *)durq == 'd') {
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24] = bit_set(
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24],8);
+ } else if (*(unsigned char *)durq == 'D') {
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24] = bit_set(
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24],26);
+ } else if (*(unsigned char *)durq == 'b') {
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24] = bit_set(
+ all_1.islur[(all_1.nnl[0] + 1) * 24 - 24],25);
+ } else if (*(unsigned char *)durq == 'z') {
+ all_1.iornq[(all_1.nnl[0] + 1) * 24] = bit_set(all_1.iornq[(
+ all_1.nnl[0] + 1) * 24],29);
+ }
+ comget_1.rptprev = TRUE_;
+ *(unsigned char *)comget_1.rptfq1 = *(unsigned char *)durq;
+ goto L10;
+ }
+ } else if (*(unsigned char *)charq == 'V') {
+
+/* Ending */
+
+ nnnl = all_1.nnl[0] + 1;
+ lvoltxt = 0;
+L11:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 'b' || *(unsigned char *)durq == 'x') {
+
+/* End Volta, set bit9, and bit10 on if 'b' (end w/ box) */
+
+ all_1.islur[nnnl * 24 - 24] = bit_set(all_1.islur[nnnl * 24 - 24],
+ 9);
+ if (*(unsigned char *)durq == 'b') {
+ all_1.islur[nnnl * 24 - 24] = bit_set(all_1.islur[nnnl * 24 -
+ 24],10);
+ }
+ goto L11;
+ } else if (*(unsigned char *)durq != ' ') {
+
+/* Start volta; Get text */
+
+ if (lvoltxt == 0) {
+
+/* First character for text */
+
+ lvoltxt = 1;
+ all_1.islur[nnnl * 24 - 24] = bit_set(all_1.islur[nnnl * 24 -
+ 24],7);
+ ++comgrace_1.nvolt;
+ s_copy(comgrace_1.voltxtq + (comgrace_1.nvolt - 1) * 20, durq,
+ (ftnlen)20, (ftnlen)1);
+ } else {
+/* Writing concatenation */
+ i__5[0] = lvoltxt, a__2[0] = comgrace_1.voltxtq + (
+ comgrace_1.nvolt - 1) * 20;
+ i__5[1] = 1, a__2[1] = durq;
+ s_cat(comgrace_1.voltxtq + (comgrace_1.nvolt - 1) * 20, a__2,
+ i__5, &c__2, (ftnlen)20);
+ ++lvoltxt;
+ }
+ goto L11;
+ }
+ } else if (*(unsigned char *)charq == 'B') {
+ combc_1.bcspec = ! combc_1.bcspec;
+ } else if (*(unsigned char *)charq == 'P') {
+
+/* Page numbers. Print stuff right now. */
+
+ npg1 = 0;
+
+/* Will use ltopnam to signal whether there's a centered heading */
+
+ ltopnam = 0;
+ ipg1r = 0;
+L16:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq >= 48 && *(unsigned char *)durq <= 57) {
+ npg1 = npg1 * 10 + *(unsigned char *)durq - 48;
+ goto L16;
+ } else if (*(unsigned char *)durq == 'l') {
+ if (npg1 == 0 || npg1 % 2 == 1) {
+ ipg1r = 1;
+ }
+ goto L16;
+ } else if (*(unsigned char *)durq == 'r') {
+ if (npg1 > 0 && npg1 % 2 == 0) {
+ ipg1r = 1;
+ }
+ goto L16;
+ } else if (*(unsigned char *)durq == 'c') {
+
+/* Top-centered name. Assume this is last option. Read the name. */
+/* May surround name in double quotes (to allow blanks). */
+
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == ' ') {
+ ltopnam = lenstr_(comtrans_1.cheadq, &c__60, (ftnlen)60);
+ } else {
+ namstrt = all_1.iccount;
+ if (*(unsigned char *)durq == '"') {
+
+/* Using quote delimiters. */
+
+ quoted = TRUE_;
+ ++namstrt;
+ } else {
+ quoted = FALSE_;
+ }
+ for (all_1.iccount = namstrt + 1; all_1.iccount <= 128;
+ ++all_1.iccount) {
+ if (quoted && *(unsigned char *)&lineq[all_1.iccount - 1]
+ == '"' || ! quoted && *(unsigned char *)&lineq[
+ all_1.iccount - 1] == ' ') {
+ goto L36;
+ }
+
+/* On exit, iccount is OK, and name is in (namstrt:iccount-1) */
+
+/* L35: */
+ }
+ s_wsle(&io___766);
+ do_lio(&c__9, &c__1, "Awww, cmon, should not be here.", (
+ ftnlen)31);
+ e_wsle();
+ stop1_();
+L36:
+ ltopnam = all_1.iccount - namstrt;
+ s_copy(comtrans_1.cheadq, lineq + (namstrt - 1), (ftnlen)60,
+ all_1.iccount - 1 - (namstrt - 1));
+ }
+ }
+
+/* Done getting data, now assemble the command */
+
+ if (npg1 == 0) {
+ npg1 = 1;
+ }
+
+/* 2/23/03 Don't use \atnextline if on first page and only one system */
+
+/* if (ipage.gt.1 .or. nsystp(1).gt.1) then */
+/* Writing concatenation */
+ i__8[0] = 1, a__5[0] = all_1.sq;
+ i__8[1] = 3, a__5[1] = "def";
+ i__8[2] = 1, a__5[2] = all_1.sq;
+ i__8[3] = 11, a__5[3] = "atnextline{";
+ i__8[4] = 1, a__5[4] = all_1.sq;
+ i__8[5] = 10, a__5[5] = "toppageno{";
+ s_cat(hdlndq, a__5, i__8, &c__6, (ftnlen)59);
+ lhead = 27;
+/* else */
+/* hdlndq = sq//'toppageno{' */
+/* lhead = 11 */
+/* end if */
+ if (npg1 < 10) {
+
+/* Note we are overwriting the last "{" */
+
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 1;
+ ici__1.iciunit = hdlndq + (lhead - 1);
+ ici__1.icifmt = "(i1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&npg1, (ftnlen)sizeof(integer));
+ e_wsfi();
+ } else if (npg1 < 100) {
+ lhead += 3;
+ i__1 = lhead - 3;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lhead - i__1;
+ ici__1.iciunit = hdlndq + i__1;
+ ici__1.icifmt = "(i2,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&npg1, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ } else {
+ lhead += 4;
+ i__1 = lhead - 4;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lhead - i__1;
+ ici__1.iciunit = hdlndq + i__1;
+ ici__1.icifmt = "(i3,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&npg1, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ }
+/* Writing concatenation */
+ i__6[0] = lhead, a__3[0] = hdlndq;
+ i__1 = ipg1r + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__6[1] = 1, a__3[1] = ch__1;
+ i__6[2] = 1, a__3[2] = "{";
+ s_cat(hdlndq, a__3, i__6, &c__3, (ftnlen)59);
+ lhead += 2;
+/* if (ipage.gt.1 .or. nsystp(1).gt.1) then */
+ if (ltopnam == 0) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___768);
+/* Writing concatenation */
+ i__5[0] = lhead, a__2[0] = hdlndq;
+ i__5[1] = 3, a__2[1] = "}}%";
+ s_cat(ch__14, a__2, i__5, &c__2, (ftnlen)62);
+ do_fio(&c__1, ch__14, lhead + 3);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___769);
+/* Writing concatenation */
+ i__6[0] = lhead, a__3[0] = hdlndq;
+ i__6[1] = ltopnam, a__3[1] = comtrans_1.cheadq;
+ i__6[2] = 3, a__3[2] = "}}%";
+ s_cat(ch__15, a__3, i__6, &c__3, (ftnlen)122);
+ do_fio(&c__1, ch__15, lhead + ltopnam + 3);
+ e_wsfe();
+ }
+ }
+/* else */
+/* if (ltopnam .eq. 0) then */
+/* if (islast) write(11,'(a)')hdlndq(1:lhead)//'}%' */
+/* else */
+/* if (islast) */
+/* * write(11,'(a)')hdlndq(1:lhead)//cheadq(1:ltopnam)//'}%' */
+/* end if */
+/* end if */
+ } else if (*(unsigned char *)charq == 'W') {
+
+/* Just eat the number that must follow, it was used in pmxa */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ } else if (*(unsigned char *)charq == 'T') {
+ comtitl_1.headlog = TRUE_;
+ comtitl_1.inhead = 0;
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 'i') {
+ getbuf_(comtitl_1.instrq, (ftnlen)120);
+
+/* A kluge for parts from separate score file for later movements. */
+
+ if (*(unsigned char *)comtitl_1.instrq == ' ') {
+ comtitl_1.headlog = FALSE_;
+ }
+ s_copy(comtrans_1.cheadq, comtitl_1.instrq, (ftnlen)60, (ftnlen)
+ 120);
+ } else if (*(unsigned char *)durq == 't') {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Optionally can include extra vertical \internotes above inbothd */
+
+ if (i_indx("-+0123456789", durq, (ftnlen)12, (ftnlen)1) > 0) {
+ ipm = 1;
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Don't trust readnum to round this negative integer properly */
+
+ ++all_1.iccount;
+ if (*(unsigned char *)durq == '-') {
+ ipm = -1;
+ }
+ }
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ comtitl_1.inhead = ipm * i_nint(&fnum);
+ }
+ getbuf_(comtitl_1.titleq, (ftnlen)120);
+ } else {
+ getbuf_(comtitl_1.compoq, (ftnlen)120);
+ }
+ comtitl_1.inhead += cominbot_1.inbothd;
+ all_1.iccount = 128;
+ } else if (*(unsigned char *)charq == 'A') {
+
+/* Accidental handling etc. */
+
+L27:
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 'r') {
+ if (comlast_1.islast) {
+ commidi_1.relacc = TRUE_;
+ s_wsfe(&io___770);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 14, a__2[1] = "relativeaccid%";
+ s_cat(ch__16, a__2, i__5, &c__2, (ftnlen)15);
+ do_fio(&c__1, ch__16, (ftnlen)15);
+ e_wsfe();
+ }
+ } else if (*(unsigned char *)durq == 's') {
+ spfacs_1.bacfac = 1e6f;
+ } else if (*(unsigned char *)durq == 'b') {
+ if (comlast_1.islast) {
+ s_wsfe(&io___771);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 9, a__2[1] = "bigaccid%";
+ s_cat(ch__5, a__2, i__5, &c__2, (ftnlen)10);
+ do_fio(&c__1, ch__5, (ftnlen)10);
+ e_wsfe();
+ }
+ spfacs_1.accfac = spfacs_1.bacfac;
+ } else if (*(unsigned char *)durq == 'a') {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ --all_1.iccount;
+ } else if (*(unsigned char *)durq == 'i') {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ readnum_(lineq, &all_1.iccount, durq, &tintstf, (ftnlen)128, (
+ ftnlen)1);
+ if (! all_1.firstgulp) {
+ comget_1.fintstf = tintstf;
+ }
+
+/* Local corrections for first page were handled by pmxa */
+
+ --all_1.iccount;
+ } else if (*(unsigned char *)durq == 'I') {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ readnum_(lineq, &all_1.iccount, durq, &comget_1.gintstf, (ftnlen)
+ 128, (ftnlen)1);
+ --all_1.iccount;
+ } else if (*(unsigned char *)durq == 'd') {
+ comarp_1.lowdot = TRUE_;
+ } else if (*(unsigned char *)durq == 'o') {
+ } else if (*(unsigned char *)durq == 'S') {
+ i__1 = all_1.nv;
+ for (iiv = 1; iiv <= i__1; ++iiv) {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("-s", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ comfig_1.fullsize[iiv - 1] = .8f;
+ } else if (*(unsigned char *)durq == 't') {
+ comfig_1.fullsize[iiv - 1] = .64f;
+ } else {
+ comfig_1.fullsize[commvl_1.ivx - 1] = 1.f;
+ }
+/* L50: */
+ }
+ } else if (*(unsigned char *)durq == 'e') {
+
+/* Line-spacing equalization */
+
+ comget_1.equalize = TRUE_;
+
+/* The following redefinition of \parskip was put into pmx.tex in version 2.25 or so. */
+/* But it causes problems with some older scores and when excerpts are combined */
+/* with LaTeX. So as of 2.352 we write it here. */
+
+ s_wsfe(&io___773);
+/* Writing concatenation */
+ i__9[0] = 1, a__6[0] = all_1.sq;
+ i__9[1] = 6, a__6[1] = "global";
+ i__9[2] = 1, a__6[2] = all_1.sq;
+ i__9[3] = 19, a__6[3] = "parskip 0pt plus 12";
+ i__9[4] = 1, a__6[4] = all_1.sq;
+ i__9[5] = 19, a__6[5] = "Interligne minus 99";
+ i__9[6] = 1, a__6[6] = all_1.sq;
+ i__9[7] = 11, a__6[7] = "Interligne%";
+ s_cat(ch__17, a__6, i__9, &c__8, (ftnlen)59);
+ do_fio(&c__1, ch__17, (ftnlen)59);
+ e_wsfe();
+ s_copy(tempq, all_1.sepsymq, (ftnlen)24, (ftnlen)1);
+ lentemp = 1;
+ i__1 = all_1.nv - 1;
+ for (iiv = 2; iiv <= i__1; ++iiv) {
+/* Writing concatenation */
+ i__5[0] = lentemp, a__2[0] = tempq;
+ i__5[1] = 1, a__2[1] = all_1.sepsymq + (iiv - 1);
+ s_cat(tempq, a__2, i__5, &c__2, (ftnlen)24);
+ ++lentemp;
+/* L51: */
+ }
+ s_wsfe(&io___776);
+/* Writing concatenation */
+ i__10[0] = 1, a__7[0] = all_1.sq;
+ i__10[1] = 3, a__7[1] = "def";
+ i__10[2] = 1, a__7[2] = all_1.sq;
+ i__10[3] = 8, a__7[3] = "upstrut{";
+ i__10[4] = 1, a__7[4] = all_1.sq;
+ i__10[5] = 6, a__7[5] = "znotes";
+ i__10[6] = lentemp, a__7[6] = tempq;
+ i__10[7] = 1, a__7[7] = all_1.sq;
+ i__10[8] = 10, a__7[8] = "zcharnote{";
+ i__10[9] = 1, a__7[9] = all_1.sq;
+ i__10[10] = 9, a__7[10] = "upamt}{~}";
+ i__10[11] = 1, a__7[11] = all_1.sq;
+ i__10[12] = 4, a__7[12] = "en}%";
+ s_cat(ch__18, a__7, i__10, &c__13, (ftnlen)70);
+ do_fio(&c__1, ch__18, lentemp + 46);
+ e_wsfe();
+ } else if (*(unsigned char *)durq == 'v') {
+
+/* Toggle usevshrink */
+
+ comlast_1.usevshrink = ! comlast_1.usevshrink;
+ } else if (*(unsigned char *)durq == 'p') {
+
+/* Postscript slurs. fontslur is already false (set in g1etnote) */
+
+ if (! comslur_1.wrotepsslurdefaults) {
+
+/* Set postscrirpt slur adjustment defaults */
+
+ s_wsfe(&io___777);
+/* Writing concatenation */
+ i__8[0] = 1, a__5[0] = all_1.sq;
+ i__8[1] = 12, a__5[1] = "Nosluradjust";
+ i__8[2] = 1, a__5[2] = all_1.sq;
+ i__8[3] = 11, a__5[3] = "Notieadjust";
+ i__8[4] = 1, a__5[4] = all_1.sq;
+ i__8[5] = 10, a__5[5] = "nohalfties";
+ s_cat(ch__19, a__5, i__8, &c__6, (ftnlen)36);
+ do_fio(&c__1, ch__19, (ftnlen)36);
+ e_wsfe();
+ comslur_1.wrotepsslurdefaults = TRUE_;
+ }
+L52:
+ g1etchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+/* might be "+", "-", "h" or */
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Characters to change defaults for ps slurs */
+
+ g1etchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)
+ 1);
+/* charq will be "s,t,h,c */
+ if (*(unsigned char *)durq == '+') {
+ if (*(unsigned char *)charq == 's') {
+ s_wsfe(&io___778);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 10, a__2[1] = "Sluradjust";
+ s_cat(ch__2, a__2, i__5, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__2, (ftnlen)11);
+ e_wsfe();
+ } else if (*(unsigned char *)charq == 't') {
+ s_wsfe(&io___779);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 9, a__2[1] = "Tieadjust";
+ s_cat(ch__5, a__2, i__5, &c__2, (ftnlen)10);
+ do_fio(&c__1, ch__5, (ftnlen)10);
+ e_wsfe();
+ } else if (*(unsigned char *)charq == 'h') {
+ s_wsfe(&io___780);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 8, a__2[1] = "halfties";
+ s_cat(ch__10, a__2, i__5, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__10, (ftnlen)9);
+ e_wsfe();
+ } else {
+ comslur_1.slurcurve += 1;
+ if (comslur_1.slurcurve > 3.1f) {
+ printl_("WARNING!", (ftnlen)8);
+ printl_("Default slur curvature advanced past HH"
+ ", resetting", (ftnlen)50);
+ comslur_1.slurcurve = 3.f;
+ }
+ }
+ } else {
+ if (*(unsigned char *)charq == 's') {
+ s_wsfe(&io___781);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 12, a__2[1] = "Nosluradjust";
+ s_cat(ch__6, a__2, i__5, &c__2, (ftnlen)13);
+ do_fio(&c__1, ch__6, (ftnlen)13);
+ e_wsfe();
+ } else if (*(unsigned char *)charq == 't') {
+ s_wsfe(&io___782);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 11, a__2[1] = "Notieadjust";
+ s_cat(ch__4, a__2, i__5, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__4, (ftnlen)12);
+ e_wsfe();
+ } else if (*(unsigned char *)charq == 'h') {
+ s_wsfe(&io___783);
+/* Writing concatenation */
+ i__5[0] = 1, a__2[0] = all_1.sq;
+ i__5[1] = 10, a__2[1] = "nohalfties";
+ s_cat(ch__2, a__2, i__5, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__2, (ftnlen)11);
+ e_wsfe();
+ } else {
+ comslur_1.slurcurve += -1;
+ if (comslur_1.slurcurve < -1.1f) {
+ printl_("WARNING!", (ftnlen)8);
+ printl_("Default slur curvature decremented belo"
+ "w f, resetting", (ftnlen)53);
+ comslur_1.slurcurve = -1.f;
+ }
+ }
+ }
+ goto L52;
+/* Check for another set of default changes */
+ } else if (*(unsigned char *)durq == 'l') {
+
+/* Set optional linebreak ties */
+
+ comnotes_1.optlinebreakties = TRUE_;
+ goto L52;
+ } else if (*(unsigned char *)durq == 'h') {
+
+/* Set flag to write header special on every page */
+
+ comnotes_1.headerspecial = TRUE_;
+ goto L52;
+ } else {
+ --all_1.iccount;
+ }
+ } else if (*(unsigned char *)durq == 'K') {
+
+/* Toggle keyboard rest placement flag */
+
+ comkbdrests_1.kbdrests = ! comkbdrests_1.kbdrests;
+ } else if (*(unsigned char *)durq == 'c') {
+ g1etchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Just eat the input; it was used in pmax */
+
+ goto L27;
+ }
+ if (i_indx("NR", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Override default part names for scor2prt, or normal include file. */
+/* Just bypass rest of input line */
+
+ all_1.iccount = 128;
+ } else if (*(unsigned char *)durq != ' ') {
+ goto L27;
+ }
+ } else if (*(unsigned char *)charq == 'K') {
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != 'i') {
+
+/* Normal, full-score key change and/or transposition */
+
+ num1 = 44 - *(unsigned char *)durq;
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ num1 *= i_nint(&fnum);
+
+/* On exit, durq='+','-'. But only need isig if after start, else done in pmxa */
+
+ ++all_1.iccount;
+ readnum_(lineq, &all_1.iccount, charq, &fnum, (ftnlen)128, (
+ ftnlen)1);
+ if (num1 == 0) {
+
+/* Key change, not transposition. */
+
+ all_1.ipl[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) *
+ 24 - 25] = bit_set(all_1.ipl[commvl_1.ivx + (
+ all_1.nnl[commvl_1.ivx - 1] + 1) * 24 - 25],28);
+ comtop_1.lastisig = comtop_1.isig;
+ comtop_1.isig = i_nint(&fnum);
+ if (*(unsigned char *)durq == '-') {
+ comtop_1.isig = -comtop_1.isig;
+ }
+ comtop_1.isig += comtop_1.idsig;
+ if (commidi_1.ismidi) {
+ midievent_("k", &comtop_1.isig, &c__0, (ftnlen)1);
+ }
+ } else {
+
+/* num1 .ne. 0, so transposition, so must be at beginning. isig came with K... */
+/* but was passed to pmxb through pmxtex.dat. isig0 comes from setup data */
+/* (signature before transposition). idsig must be added to future key changes. */
+
+ jv = 0;
+ while(jv < 24) {
+ ++jv;
+ cominsttrans_1.itransamt[jv - 1] = num1;
+ }
+ comtop_1.idsig = comtop_1.isig - comtop_1.isig0;
+ }
+ } else {
+
+/* Instrument specific transposition. */
+ getitransinfo_(&c_false, &combibarcnt_1.ibarcnt, lineq, &
+ all_1.iccount, &ibaroff, &all_1.nbars, &comkeys_2.noinst,
+ &all_1.iv, (ftnlen)128);
+ }
+ } else if (*(unsigned char *)charq == '/') {
+ if (bit_test(all_1.iornq[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1]
+ + 1) * 24 - 1],26)) {
+
+/* There was a hardspace followed by end of block. Remove it from the hardspace */
+/* list, store with shifts instead, set special bit. This code also at '|' */
+
+ all_1.irest[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = bit_set(all_1.irest[commvl_1.ivx + all_1.nnl[
+ commvl_1.ivx - 1] * 24 - 25],18);
+ ++comudsp_1.nudoff[commvl_1.ivx - 1];
+ comudsp_1.udoff[commvl_1.ivx + comudsp_1.nudoff[commvl_1.ivx - 1]
+ * 24 - 25] = comudsp_1.udsp[comudsp_1.nudsp - 1];
+ --comudsp_1.nudsp;
+ all_1.iornq[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) * 24
+ - 1] = bit_clear(all_1.iornq[commvl_1.ivx + (all_1.nnl[
+ commvl_1.ivx - 1] + 1) * 24 - 1],26);
+ }
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Save ending note level: */
+
+ if (commvl_1.ivx <= all_1.nv) {
+
+/* This is the first line of music on this staff. If previous block had only 1 */
+/* voice, save last pitch from line 1 of prev. block to line 2, in case a */
+/* 2nd line is started just below */
+
+ if (! comnotes_1.was2[all_1.iv - 1]) {
+ comnotes_1.ndlev[all_1.iv + 23] = comnotes_1.ndlev[all_1.iv -
+ 1];
+ }
+ comnotes_1.was2[all_1.iv - 1] = FALSE_;
+ comnotes_1.ndlev[all_1.iv - 1] = comnotes_1.lastlev;
+ } else {
+
+/* This is the 2nd line of music on this staff. */
+
+ comnotes_1.was2[all_1.iv - 1] = TRUE_;
+ comnotes_1.ndlev[all_1.iv + 23] = comnotes_1.lastlev;
+ }
+ if (*(unsigned char *)durq == ' ' && all_1.iv == all_1.nv) {
+
+/* End of input block */
+
+ *loop = FALSE_;
+ } else {
+
+/* Start a new line of music */
+
+ if (all_1.lenb0 != 0 && all_1.firstgulp) {
+ all_1.lenbar = all_1.lenb0;
+ }
+ all_1.nbars = 0;
+ if (*(unsigned char *)durq == ' ') {
+
+/* New line of music is on next staff */
+
+ ++all_1.iv;
+ commvl_1.ivx = all_1.iv;
+ } else {
+
+/* durq must be 2nd '/'. New line of music is on same staff. Set up for it */
+
+ commvl_1.ivx = all_1.nv + 1;
+ i__1 = all_1.nv;
+ for (iiv = 1; iiv <= i__1; ++iiv) {
+ if (commvl_1.nvmx[iiv - 1] == 2) {
+ ++commvl_1.ivx;
+ }
+/* L23: */
+ }
+ commvl_1.nvmx[all_1.iv - 1] = 2;
+ commvl_1.ivmx[all_1.iv + 23] = commvl_1.ivx;
+ all_1.itsofar[commvl_1.ivx - 1] = 0;
+ all_1.nnl[commvl_1.ivx - 1] = 0;
+ comfb_1.nfb[commvl_1.ivx - 1] = 0;
+ comudsp_1.nudoff[commvl_1.ivx - 1] = 0;
+ comcc_1.ndotmv[commvl_1.ivx - 1] = 0;
+ for (j = 1; j <= 200; ++j) {
+ all_1.irest[commvl_1.ivx + j * 24 - 25] = 0;
+ all_1.islur[commvl_1.ivx + j * 24 - 25] = 0;
+ all_1.nacc[commvl_1.ivx + j * 24 - 25] = 0;
+ all_1.iornq[commvl_1.ivx + j * 24 - 1] = 0;
+ all_1.ipl[commvl_1.ivx + j * 24 - 25] = 0;
+ all_1.mult[commvl_1.ivx + j * 24 - 25] = 0;
+/* L24: */
+ }
+
+/* Go back and lower the rests in voice "a" that don't have over-ridden heights */
+
+ i__1 = all_1.nnl[all_1.iv - 1];
+ for (j = 1; j <= i__1; ++j) {
+ if (bit_test(all_1.irest[all_1.iv + j * 24 - 25],0) &&
+ all_1.nolev[all_1.iv + j * 24 - 25] == 0) {
+ all_1.nolev[all_1.iv + j * 24 - 25] = -4;
+ }
+/* L26: */
+ }
+ }
+ }
+ all_1.iccount = 128;
+ } else if (*(unsigned char *)charq == 'X') {
+
+/* 3rd arg is only for termination of group shifts. Use "max" to avoid zero index, */
+/* which only happens for normal X at block start, and we took special measures to */
+/* keep group shifts for crossing block boundaries. */
+
+/* Computing MAX */
+ i__1 = 1, i__2 = all_1.nnl[commvl_1.ivx - 1];
+ getx_(lineq, &all_1.iccount, &all_1.irest[commvl_1.ivx + max(i__1,
+ i__2) * 24 - 25], &comnotes_1.shifton, &comask_1.wheadpt, &
+ all_1.iornq[commvl_1.ivx + (all_1.nnl[commvl_1.ivx - 1] + 1) *
+ 24 - 1], &commvl_1.ivx, &all_1.irest[commvl_1.ivx + (
+ all_1.nnl[commvl_1.ivx - 1] + 1) * 24 - 25], &all_1.itsofar[
+ commvl_1.ivx - 1], &c__0, &c__0, &c__0, " ", &ndoub, (ftnlen)
+ 128, (ftnlen)1);
+ } else if (*(unsigned char *)charq == 'I') {
+
+/* Midi controls. */
+
+ getmidi_(&all_1.nv, lineq, &all_1.iccount, &combibarcnt_1.ibarcnt, &
+ ibaroff, &all_1.nbars, &all_1.lenbar, &all_1.mtrdenl, &
+ c_false, (ftnlen)128);
+ } else if (*(unsigned char *)charq == 'M') {
+
+/* Macro action */
+
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("RS", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Record or save a macro. Get the number of the macro. */
+
+ getchar_(lineq, &all_1.iccount, durq, (ftnlen)128, (ftnlen)1);
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ commac_1.macnum = i_nint(&fnum);
+ commac_1.macuse = bit_set(commac_1.macuse,commac_1.macnum);
+ if (*(unsigned char *)charq == 'R') {
+ mrec1_(lineq, &all_1.iccount, &ndxm, (ftnlen)128);
+ } else {
+
+/* Save (Record but don't activate) */
+
+L5:
+ mrec1_(lineq, &all_1.iccount, &ndxm, (ftnlen)128);
+ if (commac_1.mrecord) {
+ getbuf_(lineq, (ftnlen)128);
+ all_1.iccount = 0;
+ goto L5;
+ }
+ all_1.iccount = all_1.iccount + ndxm + 1;
+ }
+ } else if (*(unsigned char *)charq == 'P') {
+
+/* Playback the macro */
+
+ getchar_(lineq, &all_1.iccount, charq, (ftnlen)128, (ftnlen)1);
+ readnum_(lineq, &all_1.iccount, durq, &fnum, (ftnlen)128, (ftnlen)
+ 1);
+ commac_1.macnum = i_nint(&fnum);
+ commac_1.icchold = all_1.iccount;
+ s_copy(commac_1.lnholdq, lineq, (ftnlen)128, (ftnlen)128);
+ all_1.iccount = 128;
+ c1ommac_1.ilmac = c1ommac_1.il1mac[commac_1.macnum - 1];
+ commac_1.mplay = TRUE_;
+ }
+ } else if (i_indx(",.", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Continued rhythmic shortcut */
+
+ idotform = i_indx(". ,", charq, (ftnlen)3, (ftnlen)1);
+ if (idotform == 1) {
+
+/* Check for start of forced beam on 2nd member of dotform=1 shortcut */
+
+ if (comget_1.fbon) {
+ if (comfb_1.t1fb[commvl_1.ivx + comfb_1.nfb[commvl_1.ivx - 1]
+ * 24 - 25] == (real) all_1.itsofar[commvl_1.ivx - 1])
+ {
+ comfb_1.t1fb[commvl_1.ivx + comfb_1.nfb[commvl_1.ivx - 1]
+ * 24 - 25] += all_1.nodur[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25] / 2;
+ }
+ }
+
+/* Change duration of prior note */
+
+ all_1.itsofar[commvl_1.ivx - 1] -= all_1.nodur[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25];
+ all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] * 24 - 25]
+ = all_1.nodur[commvl_1.ivx + all_1.nnl[commvl_1.ivx - 1] *
+ 24 - 25] * 3 / 2;
+ all_1.itsofar[commvl_1.ivx - 1] += all_1.nodur[commvl_1.ivx +
+ all_1.nnl[commvl_1.ivx - 1] * 24 - 25];
+ }
+ ++idotform;
+ numnum = 1;
+ cdot = TRUE_;
+ goto L1;
+ }
+ return 0;
+} /* getnote_ */
+
+/* Subroutine */ int getorn_(char *lineq, integer *iccount, integer *iornq,
+ integer *iornq0, logical *ornrpt, integer *noffseg, integer *ip,
+ integer *ivx, logical *noxtup, logical *notcrd, integer *nole, ftnlen
+ lineq_len)
+{
+ /* System generated locals */
+ integer i__1;
+ real r__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), i_nint(real *), s_wsle(
+ cilist *), do_lio(integer *, integer *, char *, ftnlen), e_wsle(
+ void);
+
+ /* Local variables */
+ static real fnum;
+ static integer korn;
+ static char durq[1];
+ extern /* Subroutine */ int stop1_(void);
+ static char charq[1];
+ static integer iorni;
+ static logical negseg;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), readnum_(char *, integer *, char *, real *, ftnlen,
+ ftnlen);
+ static integer iofforn;
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+ static real xofforn;
+
+ /* Fortran I/O blocks */
+ static cilist io___795 = { 0, 6, 0, 0, 0 };
+
+
+
+/* iornq: Main note. Do not alter if chord note, except turn on bit 23 */
+/* iornq0: Store iorni + bit 23, in case of repeated ornaments */
+/* iorni: Internal use, 1st 21 bits of iornq or icrdorn, dep. on notcrd. */
+/* noffseg: horiz. offset for segno */
+/* nole: level of note w/ orn, used to ID the note/orn if there's a level shift. */
+
+
+/* Bits 0-13: (stmgx+Tupf._), 14: Down fermata, was F, 15: Trill w/o "tr", was U */
+/* 16-18 Editorial sharp, flat, natural "oes,f,n"; 19-20: >^, 21 TBD */
+
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("bc", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* caesura or breath, handle specially and exit. Set up data in ibcdata(1...nbc) */
+/* ivx(0-3,28), ip(4-12), */
+/* vshift (vshift+32 in bits 13-18), */
+/* hshift (nint(10*vshift)+128 in bits 19-26) */
+/* bit 27 = 0 if caesura, 1 if breath */
+/* bit 28: 5th bit of ivx */
+
+ *iornq = bit_set(*iornq,28);
+ ++comcb_1.nbc;
+/* ibcdata(nbc) = ivx+16*ip */
+ comcb_1.ibcdata[comcb_1.nbc - 1] = *ivx % 16 + (*ip << 4);
+ if (*ivx >= 16) {
+ comcb_1.ibcdata[comcb_1.nbc - 1] = bit_set(comcb_1.ibcdata[
+ comcb_1.nbc - 1],28);
+ }
+ if (*(unsigned char *)charq == 'b') {
+ comcb_1.ibcdata[comcb_1.nbc - 1] = bit_set(comcb_1.ibcdata[
+ comcb_1.nbc - 1],27);
+ }
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* We have a vertical shift, get it */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, charq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == '-') {
+ fnum = -fnum;
+ }
+ r__1 = fnum + 32;
+ i__1 = i_nint(&r__1);
+ setbits_(&comcb_1.ibcdata[comcb_1.nbc - 1], &c__6, &c__13, &i__1);
+ if (i_indx("+-", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Horizontal shift, get it */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq == '-') {
+ fnum = -fnum;
+ }
+ r__1 = fnum * 10;
+ i__1 = i_nint(&r__1) + 128;
+ setbits_(&comcb_1.ibcdata[comcb_1.nbc - 1], &c__8, &c__19, &
+ i__1);
+ }
+ }
+ return 0;
+ }
+
+/* Set signal on main note that some note at this time has ornament. ONLY used */
+/* in beamstrt to activate further tests for whether ihornb is needed. */
+
+ *iornq = bit_set(*iornq,23);
+
+/* Isolate 21 bits defining exisiting ornaments */
+
+ if (*notcrd) {
+ iorni = 4194303 & *iornq;
+ } else {
+ iorni = 4194303 & comtrill_1.icrdorn[comtrill_1.ncrd - 1];
+ }
+ korn = i_indx("stmgx+Tupf._)e:XXX>^", charq, (ftnlen)20, (ftnlen)1);
+ if (korn != 15) {
+ iorni = bit_set(iorni,korn);
+ }
+
+/* Note that korn=0 => charq='(', and we set bit 0. if "e" (14), alter later */
+/* as follows: korn=16-18 for sfn, and or 21 for bare ?. */
+/* When this if-block is done, korn will = bit# of actual ornament (unless "?"). */
+
+ if (korn == 15) {
+
+/* c Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-20 prev iornq */
+/* Turn off repeated ornament ('o:'), Replicate bits 0-3,5-15,19-21 prev iornq */
+
+/* iorni = ior(iorni,iand(iornq0,1638383)) */
+ iorni |= *iornq0 & 3735535;
+ *ornrpt = FALSE_;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* durq will be ' ' */
+
+ } else if (korn == 14) {
+
+/* Editorial accidental */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+/* korn = 15+index('sfn',durq) */
+ korn = i_indx("sfn?", durq, (ftnlen)4, (ftnlen)1) + 15;
+ if (korn == 19) {
+ korn = 21;
+ }
+ iorni = bit_set(bit_clear(iorni,14),korn);
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == '?') {
+
+/* This is "oe[s|f|n]?". Set 21st bit also. */
+
+ iorni = bit_set(iorni,21);
+ korn += 6;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ }
+/* iorni = ibset(ibclr(iorni,14),korn) */
+ } else if (korn == 4 && *noxtup) {
+
+/* segno. Check in pmxa for just 1/block & notcrd. Get horiz. offset in points */
+
+ *noffseg = 0;
+ negseg = FALSE_;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+
+/* Segno shift is specified */
+
+ if (*(unsigned char *)durq == '-') {
+ negseg = TRUE_;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ *noffseg = (integer) fnum;
+ if (negseg) {
+ *noffseg = -(*noffseg);
+ }
+ }
+ } else if (korn == 7) {
+
+/* Trill. Check in pmxa for notcrd. Default is 1 noteskip long, with "tr" */
+
+ ++comtrill_1.ntrill;
+ comtrill_1.ivtrill[comtrill_1.ntrill - 1] = *ivx;
+ comtrill_1.iptrill[comtrill_1.ntrill - 1] = *ip;
+ comtrill_1.xnsktr[comtrill_1.ntrill - 1] = 1.f;
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 't') {
+
+/* Convert to new internal symbol for non-'"tr" trill */
+
+ korn = 15;
+ iorni = bit_set(bit_clear(iorni,7),15);
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ }
+ if (i_indx("0123456789.", durq, (ftnlen)11, (ftnlen)1) > 0) {
+
+/* We have a number for the length */
+
+ readnum_(lineq, iccount, durq, &comtrill_1.xnsktr[
+ comtrill_1.ntrill - 1], (ftnlen)128, (ftnlen)1);
+ }
+ } else if (korn == 10 && *noxtup) {
+
+/* Fermata */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 'd') {
+ korn = 14;
+ iorni = bit_set(bit_clear(iorni,10),14);
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ }
+ } else {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ }
+ if (i_indx("+- :", durq, (ftnlen)4, (ftnlen)1) == 0) {
+ s_wsle(&io___795);
+ do_lio(&c__9, &c__1, "Unexpected character at end of ornament: ", (
+ ftnlen)41);
+ do_lio(&c__9, &c__1, durq, (ftnlen)1);
+ e_wsle();
+ stop1_();
+ }
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Shift ornament up or down */
+
+ ++comtrill_1.nudorn;
+
+/* Set bit 25 in iorni as a signal. This may not really be necessary. */
+
+ iorni = bit_set(iorni,25);
+
+/* Assemble info to put in kudorn(nudorn) Bits 0-7:ip, 8-11:ivx, 12-18:nolev, */
+/* 19-24: type of ornament to be shifted, 25-30: shift+32, 31:h-shft present */
+
+ xofforn = (real) (44 - *(unsigned char *)durq);
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ r__1 = xofforn * fnum;
+ iofforn = i_nint(&r__1);
+ comtrill_1.kudorn[comtrill_1.nudorn - 1] = *ip + (*ivx % 16 << 8) + (*
+ nole << 12) + (korn << 19) + (iofforn + 32 << 25);
+ comivxudorn_1.ivxudorn[comtrill_1.nudorn - 1] = *ivx;
+ if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Horizontal shift */
+
+ comtrill_1.kudorn[comtrill_1.nudorn - 1] = bit_set(
+ comtrill_1.kudorn[comtrill_1.nudorn - 1],31);
+ xofforn = (real) (44 - *(unsigned char *)durq);
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ r__1 = xofforn * fnum;
+ comtrill_1.ornhshft[comtrill_1.nudorn - 1] = (real) i_nint(&r__1);
+ }
+ } else if (*(unsigned char *)durq == ':') {
+
+/* Turn on repeated ornaments */
+
+ *ornrpt = TRUE_;
+
+/* Save the ornament value just set */
+
+ *iornq0 = iorni;
+ }
+ if (*notcrd) {
+ *iornq |= iorni;
+ } else {
+ comtrill_1.icrdorn[comtrill_1.ncrd - 1] |= iorni;
+ }
+ return 0;
+} /* getorn_ */
+
+/* Subroutine */ int getpmxmod_(logical *global, char *includeq, ftnlen
+ includeq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2];
+ integer i__1[3], i__2[2], i__3;
+ char ch__1[114], ch__2[106], ch__3[108], ch__4[88];
+ olist o__1;
+ cllist cl__1;
+ inlist ioin__1;
+
+ /* Builtin functions */
+ integer f_inqu(inlist *);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsle(cilist *), e_wsle(void), s_wsfe(cilist *), e_wsfe(void);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer f_open(olist *), s_rsfe(cilist *), do_fio(integer *, char *,
+ ftnlen), e_rsfe(void), f_clos(cllist *);
+
+ /* Local variables */
+ static integer ilbufmod, ipbufmod, lenbufmod, lenmodline;
+ static char pmxmoddirq[80];
+ static integer lpmxmoddirq;
+ extern /* Subroutine */ int stop1_(void);
+ static integer ilbuff;
+ extern /* Subroutine */ int getenv_(char *, char *, ftnlen, ftnlen);
+ static logical fexist;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static char lnholdq[128];
+
+ /* Fortran I/O blocks */
+ static cilist io___801 = { 0, 6, 0, 0, 0 };
+ static cilist io___802 = { 0, 15, 0, "()", 0 };
+ static cilist io___806 = { 0, 18, 1, "(a)", 0 };
+
+
+
+/* If global=.true., checks for environment variable with path to pmx.mod. */
+/* Then, if variable exists and points to pmx.mod, insert lines from */
+/* pmx.mod into buffer */
+/* If global=.false., checks for existence of includeq and uses it. */
+
+/* lenbuf0 = total length of bufq on entry */
+/* lbuf(i) = length of line (i) */
+/* nlbuf = number of lines stored in bufq */
+/* ilbuf = index of first line after setup stuff (on entry). In general, index of */
+/* next line to be sucked from buffer. */
+/* ilbufmod = counter for lines in pmx.mod as they are grabbed. */
+/* Starts at ilbuf. Points to position of next line after */
+/* pmx.mod stuff in bufq on exiting loop 1 */
+/* ilbuff = transient counter for shifting operations */
+/* ipbuf = on entry, points to last character in setup stuff. In general, points */
+/* to last character of most recent line sucked from buffer. */
+/* ipbufmod = points to last character of most recent inserted line */
+/* from pmx.mod */
+
+ c1omget_1.line1pmxmod = inbuff_1.ilbuf;
+ if (! (*global)) {
+ ioin__1.inerr = 0;
+ ioin__1.infilen = includeq_len;
+ ioin__1.infile = includeq;
+ ioin__1.inex = &fexist;
+ ioin__1.inopen = 0;
+ ioin__1.innum = 0;
+ ioin__1.innamed = 0;
+ ioin__1.inname = 0;
+ ioin__1.inacc = 0;
+ ioin__1.inseq = 0;
+ ioin__1.indir = 0;
+ ioin__1.infmt = 0;
+ ioin__1.inform = 0;
+ ioin__1.inunf = 0;
+ ioin__1.inrecl = 0;
+ ioin__1.innrec = 0;
+ ioin__1.inblank = 0;
+ f_inqu(&ioin__1);
+
+/* Transfer includeq to temporary char variable with known length */
+
+ s_copy(pmxmoddirq, includeq, (ftnlen)80, includeq_len);
+ lpmxmoddirq = lenstr_(pmxmoddirq, &c__80, (ftnlen)80);
+ s_wsle(&io___801);
+ e_wsle();
+ s_wsfe(&io___802);
+ e_wsfe();
+ if (! fexist) {
+/* Writing concatenation */
+ i__1[0] = 15, a__1[0] = "Could not find ";
+ i__1[1] = lpmxmoddirq, a__1[1] = pmxmoddirq;
+ i__1[2] = 19, a__1[2] = ", checking further.";
+ s_cat(ch__1, a__1, i__1, &c__3, (ftnlen)114);
+ printl_(ch__1, lpmxmoddirq + 34);
+
+/* File named includeq doesn't not exist. Get directory from PMXMODDIR and */
+/* see if it's there */
+
+ getenv_("PMXMODDIR", pmxmoddirq, (ftnlen)9, (ftnlen)80);
+ lpmxmoddirq = lenstr_(pmxmoddirq, &c__80, (ftnlen)80);
+ if (lpmxmoddirq > 0) {
+/* Writing concatenation */
+ i__2[0] = lpmxmoddirq, a__2[0] = pmxmoddirq;
+ i__2[1] = includeq_len, a__2[1] = includeq;
+ s_cat(pmxmoddirq, a__2, i__2, &c__2, (ftnlen)80);
+ lpmxmoddirq = lenstr_(pmxmoddirq, &c__80, (ftnlen)80);
+ } else {
+ printl_("No other directory defined by PMXMODDIR, stopping", (
+ ftnlen)49);
+ stop1_();
+ }
+ ioin__1.inerr = 0;
+ ioin__1.infilen = 80;
+ ioin__1.infile = pmxmoddirq;
+ ioin__1.inex = &fexist;
+ ioin__1.inopen = 0;
+ ioin__1.innum = 0;
+ ioin__1.innamed = 0;
+ ioin__1.inname = 0;
+ ioin__1.inacc = 0;
+ ioin__1.inseq = 0;
+ ioin__1.indir = 0;
+ ioin__1.infmt = 0;
+ ioin__1.inform = 0;
+ ioin__1.inunf = 0;
+ ioin__1.inrecl = 0;
+ ioin__1.innrec = 0;
+ ioin__1.inblank = 0;
+ f_inqu(&ioin__1);
+ if (! fexist) {
+/* Writing concatenation */
+ i__1[0] = 15, a__1[0] = "Could not find ";
+ i__1[1] = lpmxmoddirq, a__1[1] = pmxmoddirq;
+ i__1[2] = 11, a__1[2] = ", stopping.";
+ s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)106);
+ printl_(ch__2, lpmxmoddirq + 26);
+ stop1_();
+ }
+ }
+/* Writing concatenation */
+ i__2[0] = 28, a__2[0] = "Opening normal include file ";
+ i__2[1] = lpmxmoddirq, a__2[1] = pmxmoddirq;
+ s_cat(ch__3, a__2, i__2, &c__2, (ftnlen)108);
+ printl_(ch__3, lpmxmoddirq + 28);
+ o__1.oerr = 0;
+ o__1.ounit = 18;
+ o__1.ofnmlen = 80;
+ o__1.ofnm = pmxmoddirq;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ } else {
+
+/* Check for existence of pmx.mod */
+
+ getenv_("PMXMODDIR", pmxmoddirq, (ftnlen)9, (ftnlen)80);
+ lpmxmoddirq = lenstr_(pmxmoddirq, &c__80, (ftnlen)80);
+ if (lpmxmoddirq == 0) {
+ return 0;
+ }
+/* Writing concatenation */
+ i__2[0] = lpmxmoddirq, a__2[0] = pmxmoddirq;
+ i__2[1] = 7, a__2[1] = "pmx.mod";
+ s_cat(pmxmoddirq, a__2, i__2, &c__2, (ftnlen)80);
+ lpmxmoddirq += 7;
+ ioin__1.inerr = 0;
+ ioin__1.infilen = 80;
+ ioin__1.infile = pmxmoddirq;
+ ioin__1.inex = &fexist;
+ ioin__1.inopen = 0;
+ ioin__1.innum = 0;
+ ioin__1.innamed = 0;
+ ioin__1.inname = 0;
+ ioin__1.inacc = 0;
+ ioin__1.inseq = 0;
+ ioin__1.indir = 0;
+ ioin__1.infmt = 0;
+ ioin__1.inform = 0;
+ ioin__1.inunf = 0;
+ ioin__1.inrecl = 0;
+ ioin__1.innrec = 0;
+ ioin__1.inblank = 0;
+ f_inqu(&ioin__1);
+ if (! fexist) {
+ return 0;
+ }
+/* Writing concatenation */
+ i__2[0] = 28, a__2[0] = "Opening global include file ";
+ i__2[1] = lpmxmoddirq, a__2[1] = pmxmoddirq;
+ s_cat(ch__3, a__2, i__2, &c__2, (ftnlen)108);
+ printl_(ch__3, lpmxmoddirq + 28);
+ o__1.oerr = 0;
+ o__1.ounit = 18;
+ o__1.ofnmlen = lpmxmoddirq;
+ o__1.ofnm = pmxmoddirq;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ }
+ printl_("Adding include data", (ftnlen)19);
+
+/* Read lines in from pmx.mod one at a time */
+
+ ipbufmod = inbuff_1.ipbuf;
+ lenbufmod = c1omget_1.lenbuf0;
+ for (ilbufmod = inbuff_1.ilbuf; ilbufmod <= 4000; ++ilbufmod) {
+ i__3 = s_rsfe(&io___806);
+ if (i__3 != 0) {
+ goto L3;
+ }
+ i__3 = do_fio(&c__1, lnholdq, (ftnlen)128);
+ if (i__3 != 0) {
+ goto L3;
+ }
+ i__3 = e_rsfe();
+ if (i__3 != 0) {
+ goto L3;
+ }
+
+/* A line was read. Slide all existing lengths from here forward ahead by 1 */
+
+ i__3 = ilbufmod;
+ for (ilbuff = inbuff_1.nlbuf; ilbuff >= i__3; --ilbuff) {
+ inbuff_1.lbuf[ilbuff] = inbuff_1.lbuf[ilbuff - 1];
+/* L2: */
+ }
+
+/* Get length of line from include file */
+
+ lenmodline = lenstr_(lnholdq, &c__128, (ftnlen)128);
+ if (lenmodline == 0) {
+
+/* Blank line. Make it a single blank with length 1 */
+
+ lenmodline = 1;
+ s_copy(lnholdq, " ", (ftnlen)128, (ftnlen)1);
+ }
+ inbuff_1.lbuf[ilbufmod - 1] = (shortint) lenmodline;
+ printl_(lnholdq, lenmodline);
+
+/* Insert new stuff into bufq */
+
+ i__3 = ipbufmod;
+/* Writing concatenation */
+ i__1[0] = ipbufmod, a__1[0] = inbuff_1.bufq;
+ i__1[1] = lenmodline, a__1[1] = lnholdq;
+ i__1[2] = lenbufmod - i__3, a__1[2] = inbuff_1.bufq + i__3;
+ s_cat(inbuff_1.bufq, a__1, i__1, &c__3, (ftnlen)65536);
+
+/* Update internal parameters */
+
+ ipbufmod += inbuff_1.lbuf[ilbufmod - 1];
+ lenbufmod += inbuff_1.lbuf[ilbufmod - 1];
+ ++inbuff_1.nlbuf;
+/* L1: */
+ }
+L3:
+/* Writing concatenation */
+ i__2[0] = 8, a__2[0] = "Closing ";
+ i__2[1] = lpmxmoddirq, a__2[1] = pmxmoddirq;
+ s_cat(ch__4, a__2, i__2, &c__2, (ftnlen)88);
+ printl_(ch__4, lpmxmoddirq + 8);
+ cl__1.cerr = 0;
+ cl__1.cunit = 18;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ c1omget_1.linesinpmxmod = c1omget_1.linesinpmxmod + ilbufmod -
+ inbuff_1.ilbuf;
+ c1omget_1.lenbuf0 = lenbufmod;
+
+/* Fix Andre's error reporting problem 101211 leading to log(neg#) due */
+/* to nline being 2 bigger than it should be */
+
+ c1omget_1.nline += -2;
+
+ return 0;
+} /* getpmxmod_ */
+
+/* Subroutine */ int getset_(integer *nv, integer *noinst, integer *mtrnuml,
+ integer *mtrdenl, integer *mtrnmp, integer *mtrdnp, real *xmtrnum0,
+ integer *npages, integer *nsyst, integer *musicsize, real *fracindent,
+ logical *istype0, char *inameq, char *clefq, char *sepsymq, char *
+ pathnameq, integer *lpath, integer *isig0, ftnlen inameq_len, ftnlen
+ clefq_len, ftnlen sepsymq_len, ftnlen pathnameq_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+ real r__1;
+ olist o__1;
+
+ /* Builtin functions */
+ integer s_cmp(char *, char *, ftnlen, ftnlen), f_open(olist *), s_wsfe(
+ cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void),
+ i_nint(real *), i_indx(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer i__, iv, ivi, nline;
+ static char lineq[128];
+ static integer iinst, jinst;
+ extern doublereal readin_(char *, integer *, integer *, ftnlen);
+ extern /* Subroutine */ int getbuf_(char *, ftnlen);
+ static logical newway;
+ static integer iccount, nvsofar;
+
+ /* Fortran I/O blocks */
+ static cilist io___812 = { 0, 17, 0, "(a)", 0 };
+
+
+
+/* Get the first line */
+
+ /* Parameter adjustments */
+ --sepsymq;
+ --clefq;
+ inameq -= 79;
+
+ /* Function Body */
+ iccount = 0;
+L9:
+ getbuf_(lineq, (ftnlen)128);
+ if (*(unsigned char *)lineq == '%') {
+ goto L9;
+ }
+ *istype0 = s_cmp(lineq, "---", (ftnlen)3, (ftnlen)3) == 0;
+ if (*istype0) {
+
+/* Have TeX input until next line that starts with '---'. Save in scratch. */
+
+ o__1.oerr = 0;
+ o__1.ounit = 17;
+ o__1.ofnm = 0;
+ o__1.orl = 0;
+ o__1.osta = "SCRATCH";
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+L3:
+ getbuf_(lineq, (ftnlen)128);
+ if (s_cmp(lineq, "---", (ftnlen)3, (ftnlen)3) != 0) {
+ s_wsfe(&io___812);
+ do_fio(&c__1, lineq, (ftnlen)128);
+ e_wsfe();
+ goto L3;
+ }
+
+/* Force a new line read on first call to readin */
+
+ iccount = 128;
+ }
+
+/* Here, lineq is first line w/ numerical setup data. */
+
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *nv = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *noinst = i_nint(&r__1);
+ newway = *noinst <= 0;
+ if (newway) {
+ *noinst = -(*noinst);
+ }
+ i__1 = *noinst;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+
+/* Seve # of staves per inst in case later drop some inst's. */
+
+ if (newway) {
+
+/* Read in nvi for each instrument */
+
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ comnvi_1.nsperi[iinst - 1] = i_nint(&r__1);
+ } else if (iinst > 1) {
+ comnvi_1.nsperi[iinst - 1] = 1;
+ } else {
+ comnvi_1.nsperi[iinst - 1] = *nv - *noinst + 1;
+ }
+ comnvi_1.iiorig[iinst - 1] = iinst;
+ comnvi_1.nspern[iinst - 1] = comnvi_1.nsperi[iinst - 1];
+/* L2: */
+ }
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *mtrnuml = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *mtrdenl = i_nint(&r__1);
+/* c */
+/* c Kluge to make mtrdenl work */
+/* c */
+/* if (mtrdenl .eq. 1) then */
+/* mtrdenl = 2 */
+/* mtrnuml = mtrnuml*2 */
+/* end if */
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *mtrnmp = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *mtrdnp = i_nint(&r__1);
+ *xmtrnum0 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+
+/* Original key sig (before any trnasposition) in next position. Transposed */
+/* sig for topfile was transferred thru pmxtex.dat. Need isig0 for key */
+/* changes if transposed. */
+
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *isig0 = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *npages = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *nsyst = i_nint(&r__1);
+ r__1 = readin_(lineq, &iccount, &nline, (ftnlen)128);
+ *musicsize = i_nint(&r__1);
+ *fracindent = readin_(lineq, &iccount, &nline, (ftnlen)128);
+
+/* Next noinst non-comment lines are names of instruments. */
+
+ i__1 = *noinst;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+L5:
+ getbuf_(inameq + i__ * 79, (ftnlen)79);
+ if (*(unsigned char *)&inameq[i__ * 79] == '%') {
+ goto L5;
+ }
+/* L4: */
+ }
+
+/* Mext non-comment line has nv clef names */
+
+L6:
+ getbuf_(lineq, (ftnlen)128);
+ if (*(unsigned char *)lineq == '%') {
+ goto L6;
+ }
+ iv = 0;
+ nvsofar = 0;
+ i__1 = *noinst;
+ for (jinst = 1; jinst <= i__1; ++jinst) {
+ nvsofar += comnvi_1.nsperi[jinst - 1];
+ i__2 = comnvi_1.nsperi[jinst - 1];
+ for (ivi = 1; ivi <= i__2; ++ivi) {
+ ++iv;
+ *(unsigned char *)&clefq[iv] = *(unsigned char *)&lineq[iv - 1];
+ if (iv == nvsofar) {
+ *(unsigned char *)&sepsymq[iv] = '&';
+ } else {
+ *(unsigned char *)&sepsymq[iv] = '|';
+ }
+/* L10: */
+ }
+/* L1: */
+ }
+
+/* Mext non-comment line has path name */
+
+L8:
+ getbuf_(pathnameq, (ftnlen)40);
+ if (*(unsigned char *)pathnameq == '%') {
+ goto L8;
+ }
+ *lpath = i_indx(pathnameq, " ", (ftnlen)40, (ftnlen)1) - 1;
+ return 0;
+} /* getset_ */
+
+doublereal getsquez_(integer *n, integer *ntot, real *space, real *tnote,
+ real *to)
+{
+ /* System generated locals */
+ integer i__1;
+ real ret_val, r__1, r__2;
+
+ /* Local variables */
+ static integer in;
+ static real tend, tgovern;
+
+
+/* Get the squez factor by checking space against tgovern=minimum duration */
+/* of all notes sounding at time of n-th note in the list. */
+/* The starting time of base increment is to(n) and ending time is to(n)+space */
+/* Sounding notes are those that start at or before to(n) .and. end at or */
+/* after tend=to(n)+space */
+/* Since notes are ordered by increasing start times, as soon as we find one */
+/* that starts too late, we are done checking. */
+
+ /* Parameter adjustments */
+ --to;
+ --tnote;
+
+ /* Function Body */
+ tgovern = 1e3f;
+ tend = to[*n] + *space;
+ i__1 = *ntot;
+ for (in = 1; in <= i__1; ++in) {
+
+/* Since to() is ordered by start times, exit loop after first note that */
+/* starts later than note of interest. */
+
+ if (to[in] > to[*n] + comtol_1.tol) {
+ goto L2;
+ }
+ if (to[in] + tnote[in] > tend - comtol_1.tol) {
+
+/* If here, this note overlaps and must be tested. */
+
+/* Computing MIN */
+ r__1 = tgovern, r__2 = tnote[in];
+ tgovern = dmin(r__1,r__2);
+ }
+/* L1: */
+ }
+L2:
+ ret_val = *space / tgovern;
+ return ret_val;
+} /* getsquez_ */
+
+/* Subroutine */ int getx_(char *lineq, integer *iccount, integer *irest,
+ logical *shifton, real *wheadpt, integer *iornq1, integer *ivx,
+ integer *irest1, integer *itsofar, integer *ntup, integer *itup,
+ integer *nnodur, char *dotq, integer *ndoub, ftnlen lineq_len, ftnlen
+ dotq_len)
+{
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static logical ess;
+ static real fnum;
+ static char durq[1], charq[1];
+ static logical colon, number;
+ static integer nextbl;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), readnum_(char *, integer *, char *, real *, ftnlen,
+ ftnlen);
+ extern integer ifnodur_(integer *, char *, ftnlen);
+
+
+/* Parse "X" commands. Ignore all "B"; "P" means to ignore whole symbol. */
+/* In scor2prt, must strip out "P", copy only "B" and "P"-type "X"-symbols. */
+/* Since during getnote phase time is integer itsofar, which is not updated */
+/* during xtups, we use itup and ntup to get actual time. On entry, ntup=0 if */
+/* not in xtup. */
+
+ colon = FALSE_;
+ ess = FALSE_;
+ number = FALSE_;
+ nextbl = *iccount + i_indx(lineq + (*iccount - 1), " ", 128 - (*iccount -
+ 1), (ftnlen)1) - 1;
+ if (i_indx(lineq + (*iccount - 1), "P", nextbl - (*iccount - 1), (ftnlen)
+ 1) > 0) {
+
+/* "Parts only", ignore entire symbol */
+
+ *iccount = nextbl;
+ return 0;
+ }
+L1:
+ getchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq == 'B') {
+
+/* "Both parts and score," ignore character */
+
+ goto L1;
+ } else if (*(unsigned char *)charq == ':') {
+ colon = TRUE_;
+ goto L1;
+ } else if (*(unsigned char *)charq == 'S') {
+ ess = TRUE_;
+ goto L1;
+ } else if (i_indx("+-.0123456789", charq, (ftnlen)13, (ftnlen)1) > 0) {
+ number = TRUE_;
+ if (*(unsigned char *)charq == '-') {
+ ++(*iccount);
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq == '-') {
+ fnum = -fnum;
+ }
+ if (*(unsigned char *)durq != 'p') {
+ fnum *= *wheadpt;
+ --(*iccount);
+ }
+ goto L1;
+ }
+
+/* charq must be blank, so done parsing */
+
+ if (! ess && ! colon) {
+
+/* Ordinary hardspace. Goes before next note. */
+/* (Later, at "|" or "/", check for presence and switch to udoff if there!) */
+
+ ++comudsp_1.nudsp;
+ *iornq1 = bit_set(*iornq1,26);
+ comudsp_1.udsp[comudsp_1.nudsp - 1] = fnum;
+ comudsp_1.tudsp[comudsp_1.nudsp - 1] = (real) (*itsofar);
+ if (*ntup > 0) {
+ comudsp_1.tudsp[comudsp_1.nudsp - 1] += (real) (*itup - 1 + *
+ ndoub) / *ntup * ifnodur_(nnodur, dotq, (ftnlen)1);
+ }
+/* * +float(itup-1)/ntup*ifnodur(nnodur,dotq) */
+ } else if (! number) {
+
+/* Must be "X:" End a group offset. */
+
+ *irest = bit_set(*irest,17);
+ *shifton = FALSE_;
+ return 0;
+ } else {
+
+/* Only other possibility is start offset, "S" for single, ':' for multiple */
+
+ ++comudsp_1.nudoff[*ivx - 1];
+ comudsp_1.udoff[*ivx + comudsp_1.nudoff[*ivx - 1] * 24 - 25] = fnum;
+ if (ess) {
+ *irest1 = bit_set(*irest1,15);
+ } else {
+ *irest1 = bit_set(*irest1,16);
+ *shifton = TRUE_;
+ }
+ }
+ return 0;
+} /* getx_ */
+
+integer i1fnodur_(integer *idur, char *dotq, ftnlen dotq_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int stop1_(void);
+
+ /* Fortran I/O blocks */
+ static cilist io___831 = { 0, 6, 0, 0, 0 };
+ static cilist io___832 = { 0, 6, 0, 0, 0 };
+
+
+ if (*idur == 6) {
+ ret_val = 1;
+ } else if (*idur == 3) {
+ ret_val = 2;
+ } else if (*idur == 1) {
+ ret_val = 4;
+ } else if (*idur == 8) {
+ ret_val = 8;
+ } else if (*idur == 4) {
+ ret_val = 16;
+ } else if (*idur == 2) {
+ ret_val = 32;
+ } else if (*idur == 0) {
+ ret_val = 64;
+ } else if (*idur == 16) {
+
+/* Only used for denominator of time signatures, not for notes */
+
+ ret_val = 4;
+ } else if (*idur == 9) {
+ ret_val = 128;
+ } else {
+ s_wsle(&io___831);
+ e_wsle();
+ s_wsle(&io___832);
+ do_lio(&c__9, &c__1, "You entered an invalid note-length value:", (
+ ftnlen)41);
+ do_lio(&c__3, &c__1, (char *)&(*idur), (ftnlen)sizeof(integer));
+ e_wsle();
+ stop1_();
+ }
+ if (*(unsigned char *)dotq == 'd') {
+ ret_val = ret_val * 3 / 2;
+ }
+ return ret_val;
+} /* i1fnodur_ */
+
+/* integer*4 function longi(ishort) */
+/* integer*2 ishort */
+/* longi = ishort */
+/* return */
+/* end */
+integer iashft_(integer *nacc)
+{
+ /* Initialized data */
+
+ static integer ias[6] = { -1,1,0,0,-2,2 };
+
+ /* System generated locals */
+ integer ret_val;
+
+ ret_val = ias[(0 + (0 + (*nacc - 1 << 2))) / 4];
+ return ret_val;
+} /* iashft_ */
+
+integer ifnodur_(integer *idur, char *dotq, ftnlen dotq_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___834 = { 0, 6, 0, 0, 0 };
+
+
+ if (*idur == 6) {
+ ret_val = 1;
+ } else if (*idur == 3) {
+ ret_val = 2;
+ } else if (*idur == 1) {
+ ret_val = 4;
+ } else if (*idur == 8) {
+ ret_val = 8;
+ } else if (*idur == 4) {
+ ret_val = 16;
+ } else if (*idur == 2) {
+ ret_val = 32;
+ } else if (*idur == 0) {
+ ret_val = 64;
+ } else if (*idur == 9) {
+ ret_val = 128;
+ } else if (*idur == 16) {
+
+/* Only used for denominator of time signatures, not for notes */
+
+ ret_val = 4;
+ } else {
+ s_wsle(&io___834);
+ do_lio(&c__9, &c__1, "You entered an invalid note value", (ftnlen)33);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ if (*(unsigned char *)dotq == 'd') {
+ ret_val = ret_val * 3 / 2;
+ }
+ return ret_val;
+} /* ifnodur_ */
+
+integer ifnolev_(char *noq, integer *oct, integer *ntrans, ftnlen noq_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ ret_val = *oct * 7 + (*(unsigned char *)noq - 92) % 7 + 1 + *ntrans;
+ return ret_val;
+} /* ifnolev_ */
+
+/* subroutine report(nsdat,isdat1,isdat2) */
+/* integer*4 isdat1(202),isdat2(202) */
+/* write(*,'(a)') */
+/* * ' isd on? iv kv ip id ud1 ud2 ndx ivo iho lev crd lhd rhd' */
+/* do 1 isdat = 1 , nsdat */
+/* isdata = isdat1(isdat) */
+/* ionoff = igetbits(isdata,1,11) */
+/* c iv = iand(7,isdata) */
+/* iv = igetbits(isdata,5,13) */
+/* kv = igetbits(isdata,1,12)+1 */
+/* ip = igetbits(isdata,8,3) */
+/* idcode = igetbits(isdata,7,19) */
+/* iud1 = igetbits(isdata,1,26) */
+/* iud2 = igetbits(isdata,1,27) */
+/* ndxslur = igetbits(isdata,4,28) */
+/* isdatb = isdat2(isdat) */
+/* ivo = igetbits(isdatb,6,6)-32 */
+/* iho = igetbits(isdatb,7,12)-64 */
+/* lev = igetbits(isdatb,7,19) */
+/* icrd = igetbits(isdatb,1,0) */
+/* lhd = igetbits(isdatb,1,1) */
+/* irhd = igetbits(isdatb,7,2) */
+/* write(*,'(17i4)')isdat,ionoff,iv,kv,ip,idcode,iud1,iud2,ndxslur, */
+/* * ivo,iho,lev,icrd,lhd,irhd */
+/* 1 continue */
+/* print* */
+/* return */
+/* end */
+integer igetbits_(integer *isdata, integer *iwidbit, integer *ishift)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *), lbit_shift(integer, integer);
+
+
+/* Extracts integer given by iwidbit bits of isdata, shifted by ishift, and */
+/* then added to ioff */
+
+ ret_val = pow_ii(&c__2, iwidbit) - 1 & lbit_shift(*isdata, -(*ishift));
+ return ret_val;
+} /* igetbits_ */
+
+integer igetvarlen_(shortint *mmidi, integer *icm, integer *imidi, integer *
+ nbytes)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+
+ /* Local variables */
+ extern /* Subroutine */ int stop1_(void);
+
+ /* Fortran I/O blocks */
+ static cilist io___835 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Gets variable-length integer starting in mmidi at imidi+1. Returns nbytes. */
+
+ /* Parameter adjustments */
+ mmidi -= 25;
+
+ /* Function Body */
+ ret_val = 0;
+ for (*nbytes = 1; *nbytes <= 4; ++(*nbytes)) {
+ ret_val = (ret_val << 7) + (127 & mmidi[*icm + (*imidi + *nbytes) *
+ 25]);
+/* * +iand(127,longi(mmidi(icm,imidi+nbytes))) */
+ if (! bit_test(mmidi[*icm + (*imidi + *nbytes) * 25],7)) {
+ return ret_val;
+ }
+/* if (.not.btest(longi(mmidi(icm,imidi+nbytes)),7)) return */
+/* L1: */
+ }
+ s_wsle(&io___835);
+ do_lio(&c__9, &c__1, "Messup in igetvarlen", (ftnlen)20);
+ e_wsle();
+ stop1_();
+ return ret_val;
+} /* igetvarlen_ */
+
+logical isdotted_(integer *nodur, integer *ivx, integer *ip)
+{
+ /* System generated locals */
+ real r__1;
+ logical ret_val;
+
+ /* Builtin functions */
+ double log(doublereal), r_mod(real *, real *);
+
+
+/* Function returns true if note is dotted or double-dotted. */
+/* Return false for any xtuplet. */
+
+ /* Parameter adjustments */
+ nodur -= 25;
+
+ /* Function Body */
+ if (nodur[*ivx + *ip * 24] == 0) {
+ ret_val = FALSE_;
+ return ret_val;
+ } else if (*ip > 1) {
+ if (nodur[*ivx + (*ip - 1) * 24] == 0) {
+ ret_val = FALSE_;
+ return ret_val;
+ }
+ }
+
+/* Ruled out all xtups, so is dotted or double-dotted if not a power of 2. */
+
+ r__1 = log((real) nodur[*ivx + *ip * 24]) / .69314718f + comtol_1.tol *
+ .5f;
+ ret_val = r_mod(&r__1, &c_b781) > comtol_1.tol;
+ return ret_val;
+} /* isdotted_ */
+
+integer isetvarlen_(integer *idur, integer *nbytes)
+{
+ /* System generated locals */
+ integer ret_val, i__1;
+
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *), lbit_shift(integer, integer),
+ s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+
+ /* Local variables */
+ extern /* Subroutine */ int stop1_(void);
+ static integer itemp;
+
+ /* Fortran I/O blocks */
+ static cilist io___837 = { 0, 6, 0, 0, 0 };
+
+
+ ret_val = 0;
+ itemp = *idur;
+ for (*nbytes = 1; *nbytes <= 4; ++(*nbytes)) {
+ i__1 = *nbytes - 1;
+ ret_val += (itemp & 127) * pow_ii(&c__256, &i__1);
+ itemp = lbit_shift(itemp, (ftnlen)-7);
+ if (itemp > 0) {
+ i__1 = (*nbytes << 3) + 7;
+ ret_val += pow_ii(&c__2, &i__1);
+ } else {
+ return ret_val;
+ }
+/* L1: */
+ }
+ s_wsle(&io___837);
+ do_lio(&c__9, &c__1, "Problem in function isetvarlen", (ftnlen)30);
+ e_wsle();
+ stop1_();
+ return ret_val;
+} /* isetvarlen_ */
+
+/* Subroutine */ int istring_(integer *i__, char *string, integer *len,
+ ftnlen string_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2];
+ integer i__1[3], i__2[2];
+ real r__1;
+ char ch__1[1], ch__2[4];
+ icilist ici__1;
+
+ /* Builtin functions */
+ double r_lg10(real *);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+
+/* Returns string with integer only if length is 1, otherwise enclosed in */
+/* brackets. */
+
+ if (*i__ != 0) {
+ r__1 = abs(*i__) * 1.0001f;
+ *len = r_lg10(&r__1) + 1;
+ if (*i__ < 0) {
+ ++(*len);
+ }
+ } else {
+ s_copy(string, "0", string_len, (ftnlen)1);
+ *len = 1;
+ return 0;
+ }
+ if (*len == 1) {
+ *(unsigned char *)&ch__1[0] = *i__ + 48;
+ s_copy(string, ch__1, string_len, (ftnlen)1);
+ } else {
+ s_copy(string, "{", string_len, (ftnlen)1);
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *len;
+ ici__1.iciunit = string + 1;
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "(i";
+ *(unsigned char *)&ch__1[0] = *len + 48;
+ i__1[1] = 1, a__1[1] = ch__1;
+ i__1[2] = 1, a__1[2] = ")";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)4), ch__2);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*i__), (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__2[0] = *len + 1, a__2[0] = string;
+ i__2[1] = 1, a__2[1] = "}";
+ s_cat(string, a__2, i__2, &c__2, string_len);
+ *len += 2;
+ }
+ return 0;
+} /* istring_ */
+
+integer lenstr_(char *string, integer *n, ftnlen string_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ for (ret_val = *n; ret_val >= 1; --ret_val) {
+ if (*(unsigned char *)&string[ret_val - 1] != ' ') {
+ return ret_val;
+ }
+/* L1: */
+ }
+ ret_val = 0;
+ return ret_val;
+} /* lenstr_ */
+
+integer levrn_(integer *nolev, integer *irest, integer *iud, integer *ncm,
+ integer *mult)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Local variables */
+ static integer ioff;
+
+
+/* Used for placing numbers in xtups. Returns note level if not a rest, */
+/* else level of top or bottom of rest symbol opposite beam. iud=-1 for upstm. */
+
+ if (! bit_test(*irest,0)) {
+ ret_val = *nolev;
+ } else {
+
+/* Restlevel is -4, 0, 2 or 100+offset. First get offset from 1-voice default. */
+
+ if (*mult > 0) {
+ if (*mult == 2) {
+ ioff = (*iud << 1) - 1;
+ } else if (*mult != 4) {
+ ioff = *iud * *mult;
+ } else {
+ ioff = (*iud << 2) + 1;
+ }
+ } else {
+
+/* May need to futz with this later for non-beamed xtups (quarter, half rests) */
+
+ ioff = *iud << 1;
+ }
+ ret_val = (*nolev + 20) % 100 - 20 + *ncm + ioff;
+ }
+ return ret_val;
+} /* levrn_ */
+
+integer lfmt1_(real *x)
+{
+ /* System generated locals */
+ integer ret_val;
+ real r__1;
+
+ /* Builtin functions */
+ double r_sign(real *, real *), r_lg10(real *);
+
+ /* Local variables */
+ static real y;
+
+
+/* Computes total length of an "f" format with one decimal place. */
+/* First round to nearest 0.1 */
+
+ if (dabs(*x) < .001f) {
+ ret_val = 2;
+ } else {
+ r__1 = (integer) (dabs(*x) * 10 + .5f) * .1f;
+ y = r_sign(&r__1, x);
+ r__1 = dabs(y) * 1000 + .001f;
+ ret_val = (integer) r_lg10(&r__1);
+ if (y < 0.f) {
+ ++ret_val;
+ }
+ }
+ return ret_val;
+} /* lfmt1_ */
+
+/* Subroutine */ int linebreakties_(integer *isdat1, integer *isdat2, integer
+ *isdat3, integer *isdat4, integer *nsdat, logical *ispstie, char *
+ sepsymq, ftnlen sepsymq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3], a__3[5], a__4[4];
+ integer i__1, i__2[2], i__3[3], i__4[5], i__5[4];
+ real r__1;
+ char ch__1[1], ch__2[1];
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ extern /* Subroutine */ int writflot_(real *, char *, integer *, ftnlen);
+ static integer iv, kv, ncm;
+ static logical tie;
+ static integer iiv;
+ static char udq[1];
+ static integer ndx, ilb12;
+ static real hoff;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer imid, ihoff, isdat, ivoff, lnote;
+ static char noteq[8];
+ static integer idcode, islhgt;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten;
+ static char notexq[128];
+
+ /* Fortran I/O blocks */
+ static cilist io___859 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* This is called twice from pmxb after having input an entire block, before */
+/* making a bar that starts a new system. So nsdat reflects all slur starts */
+/* and stops in new block, while listslur, which is only set when bars are */
+/* made, reflects only open slurs from the old block. So we must check */
+/* listslur to find open ties, not all nsdat. */
+/* First of two calls (ispstie=.false. on entry) terminates tie at end of line. */
+/* Second (ispstie=.true. on entry) restarts tie at start of new line. Only */
+/* need data from original tie-start for both of these. Tie/slur data from */
+/* closing of full tie are not used except for shape alterations. */
+
+/* do 1 ndx = 0 , 11 */
+ /* Parameter adjustments */
+ --sepsymq;
+ --isdat4;
+ --isdat3;
+ --isdat2;
+ --isdat1;
+
+ /* Function Body */
+ for (ndx = 0; ndx <= 23; ++ndx) {
+ if (bit_test(comslur_1.listslur,ndx)) {
+
+/* Slur or tie with index ndx is open. Find the one with right ndxb, see if tie */
+
+ i__1 = *nsdat;
+ for (isdat = 1; isdat <= i__1; ++isdat) {
+/* if (igetbits(isdat1(isdat),4,28) .ne. ndx) go to 2 ! Wrong index */
+ if (igetbits_(&isdat1[isdat], &c__4, &c__28) + (igetbits_(&
+ isdat1[isdat], &c__1, &c__18) << 4) != ndx) {
+ goto L2;
+ }
+/* Wron */
+ if (! bit_test(isdat1[isdat],11)) {
+ goto L2;
+ }
+/* Bypass if stop */
+ if (bit_test(isdat2[isdat],3)) {
+ goto L3;
+ }
+/* "st" */
+ idcode = igetbits_(&isdat1[isdat], &c__7, &c__19);
+ if (idcode == 1) {
+ goto L3;
+ }
+/* "t" */
+ tie = FALSE_;
+ goto L5;
+L2:
+ ;
+ }
+ }
+ goto L1;
+L3:
+ tie = TRUE_;
+L5:
+
+/* A slur or tie is open, with index ndx */
+
+ iv = igetbits_(&isdat1[isdat], &c__5, &c__13);
+ kv = igetbits_(&isdat1[isdat], &c__1, &c__12) + 1;
+ *(unsigned char *)udq = 'd';
+ if (bit_test(isdat1[isdat],27)) {
+ *(unsigned char *)udq = 'u';
+ }
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 6, a__1[1] = "znotes";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ lnote = 7;
+ i__1 = iv - 1;
+ for (iiv = 1; iiv <= i__1; ++iiv) {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = sepsymq + iiv;
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ ++lnote;
+/* L4: */
+ }
+ if (kv == 2) {
+/* Writing concatenation */
+ i__3[0] = lnote, a__2[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 9, a__2[2] = "nextvoice";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)128);
+ lnote += 10;
+ }
+
+/* Compute horiz and vert offsets */
+
+/* nolev = igetbits(isdat2(isdat),7,19) */
+ islhgt = igetbits_(&isdat3[isdat], &c__8, &c__14);
+ ilb12 = 0;
+ if (*ispstie) {
+ ilb12 = 1;
+ }
+ i__1 = ilb12 << 4;
+ ivoff = igetbits_(&isdat4[isdat], &c__6, &i__1) - 32;
+ if (ivoff == -32) {
+ ivoff = 0;
+ }
+/* nolev = nolev+ivoff */
+ islhgt += ivoff;
+ i__1 = (ilb12 << 4) + 6;
+ ihoff = igetbits_(&isdat4[isdat], &c__7, &i__1) - 64;
+/* This is 10X */
+ if (ihoff == -64) {
+ ihoff = 0;
+ }
+
+/* Add starting stuff for command */
+
+ if (! (*ispstie)) {
+/* End 1st segment */
+/* Writing concatenation */
+ i__3[0] = lnote, a__2[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 8, a__2[2] = "roffset{";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)128);
+ lnote += 9;
+/* hoff = ihoff*.1-.5 */
+/* hoff = ihoff*.1-.8 */
+ hoff = ihoff * .1f - .4f;
+ if (hoff < 0.f) {
+ hoff = -hoff;
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "-";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ ++lnote;
+ }
+ writflot_(&hoff, notexq, &lnote, (ftnlen)128);
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 2, a__1[1] = "}{";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ lnote += 2;
+ } else {
+/* Writing concatenation */
+ i__4[0] = lnote, a__3[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 5, a__3[2] = "off{-";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__4[3] = 1, a__3[3] = ch__2;
+ i__4[4] = 14, a__3[4] = "afterruleskip}";
+ s_cat(notexq, a__3, i__4, &c__5, (ftnlen)128);
+ lnote += 21;
+
+/* 091025 add dotting for 2nd segment if needed */
+
+ if (bit_test(isdat2[isdat],4)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__2[0] = ch__1;
+ i__3[1] = 6, a__2[1] = "dotted";
+ i__3[2] = lnote, a__2[2] = notexq;
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)128);
+ lnote += 7;
+ }
+ }
+ if (*ispstie && tie) {
+/* Writing concatenation */
+ i__5[0] = lnote, a__4[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__5[1] = 1, a__4[1] = ch__1;
+ i__5[2] = 8, a__4[2] = "tieforis";
+ i__5[3] = 1, a__4[3] = udq;
+ s_cat(notexq, a__4, i__5, &c__4, (ftnlen)128);
+ lnote += 10;
+ }
+ if (bit_test(isdat3[isdat],0)) {
+
+/* Curvature tweak on termination of 1st seg */
+
+ imid = igetbits_(&isdat3[isdat], &c__6, &c__2) - 32;
+
+/* Invoke macro (from pmx.tex) that redefines \tslur as r'qd. mapping: */
+/* Abs(imid) Postscript slur type */
+/* 1 f */
+/* 4 h */
+/* 5 H */
+/* 6 HH */
+
+/* Writing concatenation */
+ i__5[0] = lnote, a__4[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__5[1] = 1, a__4[1] = ch__1;
+ i__5[2] = 7, a__4[2] = "psforts";
+ i__1 = imid + 48;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ i__5[3] = 1, a__4[3] = ch__2;
+ s_cat(notexq, a__4, i__5, &c__4, (ftnlen)128);
+ lnote += 9;
+
+/* Zero out the flag in case there's a different curv on term of 2nd, */
+
+ isdat3[isdat] = bit_clear(isdat3[isdat],0);
+ }
+
+/* Add the command name */
+
+ if (*ispstie) {
+/* Writing concatenation */
+ i__5[0] = lnote, a__4[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__5[1] = 1, a__4[1] = ch__1;
+ i__5[2] = 2, a__4[2] = "is";
+ i__5[3] = 1, a__4[3] = udq;
+ s_cat(notexq, a__4, i__5, &c__4, (ftnlen)128);
+ lnote += 4;
+ } else if (tie) {
+/* Writing concatenation */
+ i__3[0] = lnote, a__2[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 4, a__2[2] = "ttie";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)128);
+ lnote += 5;
+ } else {
+/* Writing concatenation */
+ i__3[0] = lnote, a__2[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 5, a__2[2] = "tslur";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)128);
+ lnote += 6;
+ }
+
+/* Add index */
+
+/* if (11-ndx .lt. 10) then */
+/* notexq = notexq(1:lnote)//chax(59-ndx) */
+/* lnote = lnote+1 */
+/* else */
+/* notexq = notexq(1:lnote)//'{1'//chax(49-ndx)//'}' */
+/* lnote = lnote+4 */
+/* end if */
+ if (23 - ndx < 10) {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__1 = 71 - ndx;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__2[1] = 1, a__1[1] = ch__1;
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ ++lnote;
+ } else if (23 - ndx < 20) {
+/* Writing concatenation */
+ i__5[0] = lnote, a__4[0] = notexq;
+ i__5[1] = 2, a__4[1] = "{1";
+ i__1 = 61 - ndx;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__5[2] = 1, a__4[2] = ch__1;
+ i__5[3] = 1, a__4[3] = "}";
+ s_cat(notexq, a__4, i__5, &c__4, (ftnlen)128);
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__5[0] = lnote, a__4[0] = notexq;
+ i__5[1] = 2, a__4[1] = "{2";
+ i__1 = 51 - ndx;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__5[2] = 1, a__4[2] = ch__1;
+ i__5[3] = 1, a__4[3] = "}";
+ s_cat(notexq, a__4, i__5, &c__4, (ftnlen)128);
+ lnote += 4;
+ }
+ if (*ispstie || ! tie) {
+
+/* Add note name for slur height */
+
+ comoct_1.noctup = 0;
+ ncm = igetbits_(&isdat3[isdat], &c__8, &c__22);
+ if (ncm == 23) {
+ comoct_1.noctup = -2;
+ }
+/* call notefq(noteq,lnoten,nolev,ncm) */
+ notefq_(noteq, &lnoten, &islhgt, &ncm, (ftnlen)8);
+/* Writing concatenation */
+ i__5[0] = lnote, a__4[0] = notexq;
+ i__5[1] = 1, a__4[1] = "{";
+ i__5[2] = lnoten, a__4[2] = noteq;
+ i__5[3] = 1, a__4[3] = "}";
+ s_cat(notexq, a__4, i__5, &c__4, (ftnlen)128);
+ lnote = lnote + 1 + lnoten + 1;
+ }
+ if (*ispstie) {
+
+/* Horizontal shift start of new thing */
+
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "{";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ ++lnote;
+/* ihoff = ihoff-13 */
+ if (tie) {
+ ihoff += -12;
+ } else {
+ ihoff += -7;
+ }
+ if (ihoff < 0) {
+ ihoff = -ihoff;
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "-";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ ++lnote;
+ }
+ r__1 = ihoff * .1f;
+ writflot_(&r__1, notexq, &lnote, (ftnlen)128);
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ ++lnote;
+ }
+
+/* Add closing stuff */
+
+ if (*ispstie) {
+/* Writing concatenation */
+ i__4[0] = lnote, a__3[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 4, a__3[2] = "off{";
+ chax_(ch__2, (ftnlen)1, &c__92);
+ i__4[3] = 1, a__3[3] = ch__2;
+ i__4[4] = 14, a__3[4] = "afterruleskip}";
+ s_cat(notexq, a__3, i__4, &c__5, (ftnlen)128);
+ lnote += 20;
+ } else {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)128);
+ ++lnote;
+ }
+/* Writing concatenation */
+ i__3[0] = lnote, a__2[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__2[1] = ch__1;
+ i__3[2] = 3, a__2[2] = "en%";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)128);
+ lnote += 4;
+ s_wsfe(&io___859);
+ do_fio(&c__1, notexq, lnote);
+ e_wsfe();
+L1:
+ ;
+ }
+ *ispstie = ! (*ispstie);
+ return 0;
+} /* linebreakties_ */
+
+/* Subroutine */ int littex_(integer *islur, integer *nnl, integer *iv,
+ logical *topmods, char *lineq, integer *iccount, ftnlen lineq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3];
+ integer i__1[2], i__2[3];
+ char ch__1[1], ch__2[129];
+ olist o__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void), f_open(olist *);
+
+ /* Local variables */
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static char durq[1];
+ extern /* Subroutine */ int stop1_(void);
+ static logical merge;
+ static integer itype;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___863 = { 0, 6, 0, 0, 0 };
+ static cilist io___864 = { 0, 6, 0, 0, 0 };
+ static cilist io___865 = { 0, 15, 0, "(/,a)", 0 };
+ static cilist io___866 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___867 = { 0, 16, 0, "(a)", 0 };
+
+
+ /* Parameter adjustments */
+ islur -= 25;
+
+ /* Function Body */
+ merge = FALSE_;
+ if (comgrace_1.nlit > 0) {
+ merge = *iv == comgrace_1.ivlit[comgrace_1.nlit - 1] && *nnl ==
+ comgrace_1.iplit[comgrace_1.nlit - 1];
+ }
+ ++comgrace_1.nlit;
+ comgrace_1.ivlit[comgrace_1.nlit - 1] = *iv;
+ comgrace_1.iplit[comgrace_1.nlit - 1] = *nnl;
+ itype = 1;
+L17:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ chax_(ch__1, (ftnlen)1, &c__92);
+ if (*(unsigned char *)durq == *(unsigned char *)&ch__1[0]) {
+ ++itype;
+ goto L17;
+ }
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__1[0] = 1, a__1[0] = ch__1;
+ i__1[1] = 1, a__1[1] = durq;
+ s_cat(comgrace_1.litq + (comgrace_1.nlit - 1 << 7), a__1, i__1, &c__2, (
+ ftnlen)128);
+ comgrace_1.lenlit[comgrace_1.nlit - 1] = 2;
+L18:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ chax_(ch__1, (ftnlen)1, &c__92);
+ if (*(unsigned char *)durq == *(unsigned char *)&ch__1[0]) {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq != ' ') {
+
+/* Starting a new tex command within the string */
+
+/* Writing concatenation */
+ i__2[0] = comgrace_1.lenlit[comgrace_1.nlit - 1], a__2[0] =
+ comgrace_1.litq + (comgrace_1.nlit - 1 << 7);
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[1] = 1, a__2[1] = ch__1;
+ i__2[2] = 1, a__2[2] = durq;
+ s_cat(comgrace_1.litq + (comgrace_1.nlit - 1 << 7), a__2, i__2, &
+ c__3, (ftnlen)128);
+ comgrace_1.lenlit[comgrace_1.nlit - 1] += 2;
+ goto L18;
+ }
+ } else {
+/* Writing concatenation */
+ i__1[0] = comgrace_1.lenlit[comgrace_1.nlit - 1], a__1[0] =
+ comgrace_1.litq + (comgrace_1.nlit - 1 << 7);
+ i__1[1] = 1, a__1[1] = durq;
+ s_cat(comgrace_1.litq + (comgrace_1.nlit - 1 << 7), a__1, i__1, &c__2,
+ (ftnlen)128);
+ ++comgrace_1.lenlit[comgrace_1.nlit - 1];
+ goto L18;
+ }
+
+/* If here, just read backslash-blank so string is done */
+
+ if (itype == 1) {
+ islur[*iv + *nnl * 24] = bit_set(islur[*iv + *nnl * 24],16);
+ if (merge) {
+
+/* There are 2 separate strings on the same note, so merge them. */
+
+ --comgrace_1.nlit;
+/* Writing concatenation */
+ i__1[0] = comgrace_1.lenlit[comgrace_1.nlit - 1], a__1[0] =
+ comgrace_1.litq + (comgrace_1.nlit - 1 << 7);
+ i__1[1] = comgrace_1.lenlit[comgrace_1.nlit], a__1[1] =
+ comgrace_1.litq + (comgrace_1.nlit << 7);
+ s_cat(comgrace_1.litq + (comgrace_1.nlit - 1 << 7), a__1, i__1, &
+ c__2, (ftnlen)128);
+ comgrace_1.lenlit[comgrace_1.nlit - 1] += comgrace_1.lenlit[
+ comgrace_1.nlit];
+ if (comgrace_1.lenlit[comgrace_1.nlit - 1] > 128) {
+ s_wsle(&io___863);
+ e_wsle();
+ s_wsle(&io___864);
+ do_lio(&c__9, &c__1, "Merged type-1 TeX strings longer than "
+ "128 characters", (ftnlen)52);
+ e_wsle();
+ s_wsfe(&io___865);
+ do_fio(&c__1, "Merged type-1 TeX strings longer than 128 cha"
+ "racters", (ftnlen)52);
+ e_wsfe();
+ stop1_();
+ }
+ }
+ } else {
+ if (itype == 3) {
+
+/* Write the string NOW */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___866);
+/* Writing concatenation */
+ i__1[0] = comgrace_1.lenlit[comgrace_1.nlit - 1], a__1[0] =
+ comgrace_1.litq + (comgrace_1.nlit - 1 << 7);
+ i__1[1] = 1, a__1[1] = "%";
+ s_cat(ch__2, a__1, i__1, &c__2, (ftnlen)129);
+ do_fio(&c__1, ch__2, comgrace_1.lenlit[comgrace_1.nlit - 1] +
+ 1);
+ e_wsfe();
+ }
+ } else {
+
+/* Must go at top */
+
+ if (! (*topmods)) {
+ *topmods = TRUE_;
+ o__1.oerr = 0;
+ o__1.ounit = 16;
+ o__1.ofnm = 0;
+ o__1.orl = 0;
+ o__1.osta = "SCRATCH";
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ }
+
+/* Must write '%' here rather than later, in case string ends with blank. */
+
+ s_wsfe(&io___867);
+/* Writing concatenation */
+ i__1[0] = comgrace_1.lenlit[comgrace_1.nlit - 1], a__1[0] =
+ comgrace_1.litq + (comgrace_1.nlit - 1 << 7);
+ i__1[1] = 1, a__1[1] = "%";
+ s_cat(ch__2, a__1, i__1, &c__2, (ftnlen)129);
+ do_fio(&c__1, ch__2, comgrace_1.lenlit[comgrace_1.nlit - 1] + 1);
+ e_wsfe();
+ }
+ --comgrace_1.nlit;
+ }
+ return 0;
+} /* littex_ */
+
+integer llen_(char *strq, integer *n, ftnlen strq_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ for (ret_val = *n; ret_val >= 0; --ret_val) {
+ if (*(unsigned char *)&strq[ret_val - 1] != ' ') {
+ return ret_val;
+ }
+/* L1: */
+ }
+ return ret_val;
+} /* llen_ */
+
+integer log2_(integer *n)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ double log(doublereal);
+
+
+/* 5/25/08 Modify to allow more slurs */
+
+/* log2 = alog(1.*n)/0.6931472+.0001 */
+/* log2 = dlog(1.d0*n)/0.693147181d0+.00000001d0 */
+ ret_val = (integer) (log(*n * 1.) / .693147181 + 2e-8);
+ return ret_val;
+} /* log2_ */
+
+/* Subroutine */ int logbeam_(integer *numnew, integer *nip1, integer *nip2)
+{
+ /* System generated locals */
+ integer i__1, i__2, i__3;
+ real r__1;
+ char ch__1[1];
+
+ /* Builtin functions */
+ double log(doublereal);
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer ib, iip;
+ static real sum;
+ static integer iip1;
+ extern integer log2_(integer *);
+ static integer iiip;
+ extern /* Character */ VOID ulfq_(char *, ftnlen, real *, integer *);
+ extern integer ncmid_(integer *, integer *);
+ static integer ndoub, multx, nrests, numnow;
+ static logical isxtup;
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+
+ all_1.ibm1[commvl_1.ivx + *numnew * 24 - 25] = *nip1;
+ all_1.ibm2[commvl_1.ivx + *numnew * 24 - 25] = *nip2;
+ numnow = *numnew;
+ if (*numnew > 1) {
+
+/* If it starts before any others, must put it in order */
+
+ for (ib = *numnew - 1; ib >= 1; --ib) {
+ if (all_1.ibm1[commvl_1.ivx + ib * 24 - 25] < *nip1) {
+ goto L12;
+ }
+ all_1.ibm1[commvl_1.ivx + (ib + 1) * 24 - 25] = all_1.ibm1[
+ commvl_1.ivx + ib * 24 - 25];
+ all_1.ibm2[commvl_1.ivx + (ib + 1) * 24 - 25] = all_1.ibm2[
+ commvl_1.ivx + ib * 24 - 25];
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + (ib + 1) * 24 - 25] =
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + ib * 24 - 25];
+ all_1.ibm1[commvl_1.ivx + ib * 24 - 25] = *nip1;
+ all_1.ibm2[commvl_1.ivx + ib * 24 - 25] = *nip2;
+ numnow = ib;
+/* L11: */
+ }
+L12:
+ ;
+ }
+ sum = 0.f;
+
+/* Beam has non-xtup within */
+
+ nrests = 0;
+ isxtup = FALSE_;
+ i__1 = *nip2;
+ for (iip = *nip1; iip <= i__1; ++iip) {
+ if (bit_test(all_1.islur[commvl_1.ivx + *nip1 * 24 - 25],21)) {
+
+/* Forced multiplicity */
+
+/* mult(ivx,iip) = igetbits(islur(ivx,nip1),3,22) */
+ i__2 = igetbits_(&all_1.islur[commvl_1.ivx + *nip1 * 24 - 25], &
+ c__3, &c__22) + 8;
+ setbits_(&all_1.mult[commvl_1.ivx + iip * 24 - 25], &c__4, &c__0,
+ &i__2);
+ } else if (! isxtup) {
+ if (all_1.nodur[commvl_1.ivx + iip * 24 - 25] > 0) {
+/* mult(ivx,iip) = 4-log2(nodur(ivx,iip)) */
+ i__2 = 4 - log2_(&all_1.nodur[commvl_1.ivx + iip * 24 - 25])
+ + 8;
+ setbits_(&all_1.mult[commvl_1.ivx + iip * 24 - 25], &c__4, &
+ c__0, &i__2);
+ } else {
+
+/* Start xtup within forced beam */
+
+ isxtup = TRUE_;
+ iip1 = iip;
+ }
+ } else if (isxtup && all_1.nodur[commvl_1.ivx + iip * 24 - 25] > 0) {
+
+/* End of xtup within forced beam. Must count doubled notes */
+
+ ndoub = 0;
+ i__2 = iip;
+ for (iiip = iip1; iiip <= i__2; ++iiip) {
+ if (bit_test(all_1.nacc[commvl_1.ivx + iiip * 24 - 25],18)) {
+ ++ndoub;
+ }
+/* L1: */
+ }
+ multx = (integer) ((log(iip + 1.f - iip1 + ndoub) * .952f - log(
+ all_1.nodur[commvl_1.ivx + iip * 24 - 25] / 2.f)) /
+ .69315f + 13.429f) - 10;
+ i__2 = iip;
+ for (iiip = iip1; iiip <= i__2; ++iiip) {
+/* mult(ivx,iiip) = multx */
+ i__3 = multx + 8;
+ setbits_(&all_1.mult[commvl_1.ivx + iiip * 24 - 25], &c__4, &
+ c__0, &i__3);
+
+/* Note the following still works after making mult only the 1st 4 bits. */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + iiip * 24 - 25],18)) {
+ --all_1.mult[commvl_1.ivx + iiip * 24 - 25];
+ }
+ if (bit_test(all_1.nacc[commvl_1.ivx + iiip * 24 - 25],19)) {
+ ++all_1.mult[commvl_1.ivx + iiip * 24 - 25];
+ } else if (iiip > 1) {
+ if (bit_test(all_1.nacc[commvl_1.ivx + (iiip - 1) * 24 -
+ 25],19)) {
+ ++all_1.mult[commvl_1.ivx + iiip * 24 - 25];
+ }
+ }
+/* L74: */
+ }
+ isxtup = FALSE_;
+ }
+ if (bit_test(all_1.irest[commvl_1.ivx + iip * 24 - 25],0)) {
+ ++nrests;
+ } else {
+ sum += all_1.nolev[commvl_1.ivx + iip * 24 - 25];
+ }
+/* L9: */
+ }
+
+/* Set beam up-down-ness */
+
+ if (comfb_1.ifb > 0 && *(unsigned char *)&comfb_1.ulfbq[commvl_1.ivx +
+ max(1,comfb_1.ifb) * 24 - 25] != 'x') {
+ if (*(unsigned char *)&comfb_1.ulfbq[commvl_1.ivx + comfb_1.ifb * 24
+ - 25] == 'f') {
+
+/* Get default, then trade "l" and "u" */
+
+ r__1 = sum / (*nip2 - *nip1 + 1 - nrests);
+ i__1 = ncmid_(&all_1.iv, nip1);
+ ulfq_(ch__1, (ftnlen)1, &r__1, &i__1);
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + numnow * 24 - 25] = (
+ char) (225 - *(unsigned char *)&ch__1[0]);
+ } else {
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + comfb_1.ifb * 24 - 25]
+ = *(unsigned char *)&comfb_1.ulfbq[commvl_1.ivx +
+ comfb_1.ifb * 24 - 25];
+ }
+
+/* This probably works only because forced beams are done first, so they */
+/* don't have to be re-sorted within each voice. ???? */
+
+ } else if (commvl_1.nvmx[all_1.iv - 1] == 2) {
+
+/* Multi-voice per staff */
+
+ if (commvl_1.ivx <= all_1.nv) {
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + numnow * 24 - 25] =
+ 'l';
+ } else {
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + numnow * 24 - 25] =
+ 'u';
+ }
+ } else {
+
+/* Defaults */
+
+ r__1 = sum / (*nip2 - *nip1 + 1 - nrests);
+ i__1 = ncmid_(&all_1.iv, nip1);
+ ulfq_(ch__1, (ftnlen)1, &r__1, &i__1);
+ *(unsigned char *)&all_1.ulq[commvl_1.ivx + numnow * 24 - 25] = *(
+ unsigned char *)&ch__1[0];
+ }
+ return 0;
+} /* logbeam_ */
+
+/* Subroutine */ int m1rec1_(char *lineq, integer *iccount, integer *ibarcnt,
+ integer *ibaroff, integer *nbars, integer *ndxm, ftnlen lineq_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_cmp(char *, char *,
+ ftnlen, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int stop1_(void), errmsg_(char *, integer *,
+ integer *, char *, ftnlen, ftnlen);
+ extern integer ntindex_(char *, char *, integer *, ftnlen, ftnlen);
+
+
+/* This is called when (a) macro recording is just starting and */
+/* (b) at the start of a new line, if recording is on */
+
+ inbuff_1.lbuf[0] = inbuff_1.lbuf[0];
+ if (! commac_1.mrecord) {
+
+/* Starting the macro */
+
+ c1ommac_1.ip1mac[commac_1.macnum - 1] = inbuff_1.ipbuf -
+ inbuff_1.lbuf[inbuff_1.ilbuf - 2] + *iccount;
+ c1ommac_1.il1mac[commac_1.macnum - 1] = inbuff_1.ilbuf - 1;
+ c1ommac_1.ic1mac[commac_1.macnum - 1] = *iccount;
+ commac_1.mrecord = TRUE_;
+ }
+ if (*iccount < 128) {
+ i__1 = *iccount;
+ *ndxm = i_indx(lineq + i__1, "M", 128 - i__1, (ftnlen)1);
+ if (*ndxm > 0) {
+ i__1 = *iccount;
+ i__2 = 128 - *iccount;
+ *ndxm = ntindex_(lineq + i__1, "M", &i__2, 128 - i__1, (ftnlen)1);
+ }
+ if (*ndxm > 0) {
+
+/* This line ends the macro. */
+
+ i__1 = *iccount + *ndxm;
+ if (s_cmp(lineq + i__1, " ", *iccount + *ndxm + 1 - i__1, (ftnlen)
+ 1) != 0) {
+ i__1 = *iccount + *ndxm + 1;
+ i__2 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, &i__1, &i__2, "Improper macro termination!", (
+ ftnlen)128, (ftnlen)27);
+ stop1_();
+ }
+ c1ommac_1.ip2mac[commac_1.macnum - 1] = inbuff_1.ipbuf -
+ inbuff_1.lbuf[inbuff_1.ilbuf - 2] + *iccount + *ndxm;
+ c1ommac_1.il2mac[commac_1.macnum - 1] = inbuff_1.ilbuf - 1;
+ commac_1.mrecord = FALSE_;
+ }
+ }
+ return 0;
+} /* m1rec1_ */
+
+/* Subroutine */ int make1bar_(integer *ibmrep, real *tglp1, real *tstart,
+ logical *cwrest, real *squez, integer *istop, integer *numbms,
+ integer *istart)
+{
+ /* System generated locals */
+ integer i__1, i__2, i__3, i__4, i__5, i__6;
+ real r__1, r__2;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void);
+
+ /* Local variables */
+ extern /* Subroutine */ int findbeam_(integer *, integer *, integer *);
+ extern integer igetbits_(integer *, integer *, integer *);
+ extern doublereal getsquez_(integer *, integer *, real *, real *, real *);
+ static integer ib, in, ip, kp, kv, ib1, ib2, ip1, cnn[24], inj, iin, iiv,
+ isl;
+ static real xit[24];
+ extern doublereal feon_(real *);
+ static integer irep;
+ static real tmin;
+ static integer iivx, itbb1, itbb2, itbb3, inip1;
+ static real tglp2;
+ extern /* Subroutine */ int addfb_(integer *, integer *, real *, real *,
+ real *, char *, integer *, ftnlen);
+ static integer mapfb[16];
+ static real deskb;
+ extern doublereal fnote_(integer *, integer *, integer *, integer *);
+ static real eskzb;
+ static integer ibrep;
+ static real tminn;
+ static integer nxtup, nip1fb, nip2fb, ib1now, ib2now, ifbadd;
+ static real t1xtup[20];
+ static integer nfbbar;
+ static logical infbmx[24];
+ static integer ifbnow[24], numnew;
+ static logical inxtup[24];
+ static integer mapnow, nxtnow[24];
+ static real xsquez;
+ extern /* Subroutine */ int logbeam_(integer *, integer *, integer *),
+ setbits_(integer *, integer *, integer *, integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___912 = { 0, 6, 0, 0, 0 };
+ static cilist io___913 = { 0, 6, 0, 0, 0 };
+ static cilist io___914 = { 0, 15, 0, "(/a)", 0 };
+
+
+
+/* Above are factors for grace note, clef spacing. (fraction of wheadpt) */
+/* In 1.04, moved to block data subprogram */
+
+ /* Parameter adjustments */
+ --istart;
+ --numbms;
+ --istop;
+ --squez;
+ --cwrest;
+ --tstart;
+
+ /* Function Body */
+ if (commidi_1.ismidi) {
+
+/* Initialize for this bar the accidental counter for the midi file. */
+/* naccim(icm) = # of accidentals from earlier in the bar */
+
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ i__2 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ commidi_1.naccim[commidi_1.midchan[all_1.iv + kv * 24 - 25]] =
+ 0;
+/* L45: */
+ }
+ }
+ }
+
+/* Time from start of gulp to end of bar, used with forced beams */
+
+ tglp2 = (real) (all_1.lenb0 + all_1.ibar * all_1.lenb1);
+ if (all_1.lenb0 > 0) {
+ tglp2 -= all_1.lenb1;
+ }
+ *tglp1 = tglp2 - all_1.lenbar;
+
+/* infbmx will only be true if in xtup that is NOT in explicit forced beam. */
+
+ i__2 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__2; ++all_1.iv) {
+ i__1 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__1; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ cwrest[commvl_1.ivx] = FALSE_;
+ infbmx[commvl_1.ivx - 1] = FALSE_;
+ inxtup[commvl_1.ivx - 1] = FALSE_;
+ if (all_1.ibar > 1) {
+ all_1.nn[commvl_1.ivx - 1] = all_1.nib[commvl_1.ivx +
+ all_1.ibar * 24 - 25] - all_1.nib[commvl_1.ivx + (
+ all_1.ibar - 1) * 24 - 25];
+ } else {
+ all_1.nn[commvl_1.ivx - 1] = all_1.nib[commvl_1.ivx +
+ all_1.ibar * 24 - 25];
+ }
+/* L1: */
+ }
+ }
+
+/* initialize list note counter, time(iv), curr. note(iv). The loop to 4 */
+/* ONLY initializes each voice. */
+
+ in = 1;
+ nxtup = 0;
+ comarp_1.narp = 0;
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ i__2 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ comcwrf_1.cwrferm[commvl_1.ivx - 1] = FALSE_;
+ cnn[commvl_1.ivx - 1] = 1;
+ all_1.ivxo[in - 1] = commvl_1.ivx;
+ all_1.ipo[in - 1] = cnn[commvl_1.ivx - 1];
+ all_1.tnote[in - 1] = fnote_(all_1.nodur, &commvl_1.ivx, &c__1,
+ all_1.nacc);
+ all_1.to[in - 1] = 0.f;
+ xit[commvl_1.ivx - 1] = all_1.tnote[in - 1];
+
+/* Note that xit(ivx) is to END of note in voice, but it1xtup is start time. */
+
+ if (all_1.nodur[commvl_1.ivx + all_1.ipo[in - 1] * 24 - 25] == 0)
+ {
+
+/* First note of xtuplet at start of bar in voice ivx. */
+
+ ++nxtup;
+ nxtnow[commvl_1.ivx - 1] = nxtup;
+ inxtup[commvl_1.ivx - 1] = TRUE_;
+ t1xtup[nxtup - 1] = 0.f;
+
+/* Xtup at start of bar. If no explicit forced beam, start one, set */
+/* signal infbmx, and save number ifbnow for use at termination. */
+
+ if (comfb_1.nfb[commvl_1.ivx - 1] > 0) {
+ i__3 = comfb_1.nfb[commvl_1.ivx - 1];
+ for (comfb_1.ifb = 1; comfb_1.ifb <= i__3; ++comfb_1.ifb)
+ {
+ if (comfb_1.t1fb[commvl_1.ivx + comfb_1.ifb * 24 - 25]
+ > *tglp1 + xit[commvl_1.ivx - 1] +
+ comtol_1.tol) {
+
+/* No explicit fb here; so exit loop and insert one. */
+
+ goto L61;
+ } else if (comfb_1.t1fb[commvl_1.ivx + comfb_1.ifb *
+ 24 - 25] < *tglp1 + xit[commvl_1.ivx - 1] +
+ comtol_1.tol && comfb_1.t2fb[commvl_1.ivx +
+ comfb_1.ifb * 24 - 25] > *tglp1 + xit[
+ commvl_1.ivx - 1] + comtol_1.tol) {
+
+/* IS explicit fb here; must NOT insert one */
+
+ goto L62;
+ }
+/* L60: */
+ }
+ }
+L61:
+
+/* If here, xtup isn't in explicit fb, so must insert one */
+
+ infbmx[commvl_1.ivx - 1] = TRUE_;
+ r__1 = t1xtup[nxtup - 1] + *tglp1;
+ addfb_(comfb_1.nfb, &commvl_1.ivx, &r__1, comfb_1.t1fb,
+ comfb_1.t2fb, comfb_1.ulfbq, &ifbadd, (ftnlen)1);
+ ifbnow[commvl_1.ivx - 1] = ifbadd;
+ }
+L62:
+ if ((r__1 = xit[commvl_1.ivx - 1] - all_1.lenbar, dabs(r__1)) <
+ comtol_1.tol) {
+ xit[commvl_1.ivx - 1] = 1e3f;
+ }
+ ++in;
+/* L4: */
+ }
+ }
+
+/* Build the list: This is a manual loop starting at 5 */
+
+L5:
+
+/* Determine which voice comes next from end of notes done so far. */
+/* tmin is the earliest ending time of notes done so far */
+
+ tmin = 1e3f;
+ i__2 = all_1.nv;
+ for (iiv = 1; iiv <= i__2; ++iiv) {
+ i__1 = commvl_1.nvmx[iiv - 1];
+ for (kv = 1; kv <= i__1; ++kv) {
+ iivx = commvl_1.ivmx[iiv + kv * 24 - 25];
+/* Computing MIN */
+ r__1 = tmin, r__2 = xit[iivx - 1];
+ tminn = dmin(r__1,r__2);
+ if (tminn < tmin - comtol_1.tol) {
+ tmin = tminn;
+ commvl_1.ivx = iivx;
+ }
+/* L6: */
+ }
+ }
+ if ((r__1 = tmin - 1e3f, dabs(r__1)) < comtol_1.tol) {
+ goto L7;
+ }
+ all_1.ivxo[in - 1] = commvl_1.ivx;
+ ++cnn[commvl_1.ivx - 1];
+ all_1.ipo[in - 1] = cnn[commvl_1.ivx - 1];
+ all_1.to[in - 1] = tmin;
+
+/* Check if this voice is done */
+
+ all_1.tnote[in - 1] = fnote_(all_1.nodur, &commvl_1.ivx, &cnn[
+ commvl_1.ivx - 1], all_1.nacc);
+ if (cnn[commvl_1.ivx - 1] == all_1.nn[commvl_1.ivx - 1]) {
+ xit[commvl_1.ivx - 1] = 1e3f;
+ } else {
+ xit[commvl_1.ivx - 1] += all_1.tnote[in - 1];
+ }
+
+/* Flag xtups */
+
+ if (all_1.nodur[commvl_1.ivx + cnn[commvl_1.ivx - 1] * 24 - 25] == 0) {
+ if (! inxtup[commvl_1.ivx - 1]) {
+
+/* First note of xtup, not at start of bar. */
+
+ ++nxtup;
+ nxtnow[commvl_1.ivx - 1] = nxtup;
+ inxtup[commvl_1.ivx - 1] = TRUE_;
+ t1xtup[nxtup - 1] = xit[commvl_1.ivx - 1] - all_1.tnote[in - 1];
+
+/* (Note: can't be on last note in voice, so xit(ivx) <> 1000) */
+/* Put xtuplet in a forced beam if not already in forced beam */
+
+ if (comfb_1.nfb[commvl_1.ivx - 1] > 0) {
+ i__1 = comfb_1.nfb[commvl_1.ivx - 1];
+ for (comfb_1.ifb = 1; comfb_1.ifb <= i__1; ++comfb_1.ifb) {
+ if (comfb_1.t1fb[commvl_1.ivx + comfb_1.ifb * 24 - 25] > *
+ tglp1 + xit[commvl_1.ivx - 1] + comtol_1.tol) {
+
+/* NO explicit bm; put one in */
+
+ goto L71;
+ } else if (comfb_1.t1fb[commvl_1.ivx + comfb_1.ifb * 24 -
+ 25] < *tglp1 + xit[commvl_1.ivx - 1] +
+ comtol_1.tol && comfb_1.t2fb[commvl_1.ivx +
+ comfb_1.ifb * 24 - 25] > *tglp1 + xit[
+ commvl_1.ivx - 1] + comtol_1.tol) {
+
+/* IS explicit bm. Don't put one */
+
+ goto L72;
+ }
+/* L70: */
+ }
+ }
+L71:
+
+/* If here, no explicit bm, so put one in */
+
+ infbmx[commvl_1.ivx - 1] = TRUE_;
+ r__1 = t1xtup[nxtup - 1] + *tglp1;
+ addfb_(comfb_1.nfb, &commvl_1.ivx, &r__1, comfb_1.t1fb,
+ comfb_1.t2fb, comfb_1.ulfbq, &ifbadd, (ftnlen)1);
+ ifbnow[commvl_1.ivx - 1] = ifbadd;
+ }
+L72:
+ ;
+ } else if (inxtup[commvl_1.ivx - 1]) {
+
+/* This test is sufficient because already know nodur>0 */
+
+ inxtup[commvl_1.ivx - 1] = FALSE_;
+ if (infbmx[commvl_1.ivx - 1]) {
+
+/* Xtup is in auto-forced beam, so end it */
+
+ comfb_1.t2fb[commvl_1.ivx + ifbnow[commvl_1.ivx - 1] * 24 - 25] =
+ t1xtup[nxtnow[commvl_1.ivx - 1] - 1] + all_1.nodur[
+ commvl_1.ivx + cnn[commvl_1.ivx - 1] * 24 - 25] + *tglp1;
+ infbmx[commvl_1.ivx - 1] = FALSE_;
+ }
+ }
+ if (bit_test(all_1.irest[all_1.ivxo[in - 1] + all_1.ipo[in - 1] * 24 - 25]
+ ,24) || bit_test(all_1.irest[all_1.ivxo[in - 1] + all_1.ipo[in -
+ 1] * 24 - 25],30)) {
+
+/* For staff jumped beam, flag the first note (lowest voice) at same time. */
+/* Later will start new notes group here. */
+
+ inj = in;
+ if (all_1.ivxo[in - 1] > 1) {
+ for (iin = in - 1; iin >= 1; --iin) {
+ if (all_1.to[iin - 1] + comtol_1.tol < all_1.to[in - 1]) {
+ goto L41;
+ }
+ if ((r__1 = all_1.to[iin - 1] - all_1.to[in - 1], dabs(r__1))
+ < comtol_1.tol) {
+ inj = iin;
+ goto L40;
+ }
+L40:
+ ;
+ }
+ }
+L41:
+ all_1.irest[all_1.ivxo[inj - 1] + all_1.ipo[inj - 1] * 24 - 25] =
+ bit_set(all_1.irest[all_1.ivxo[inj - 1] + all_1.ipo[inj - 1] *
+ 24 - 25],29);
+ }
+ ++in;
+ goto L5;
+L7:
+ comntot_1.ntot = in - 1;
+ i__1 = comntot_1.ntot - 1;
+ for (in = 1; in <= i__1; ++in) {
+ all_1.tno[in - 1] = all_1.to[in] - all_1.to[in - 1];
+/* L8: */
+ }
+ all_1.tno[comntot_1.ntot - 1] = all_1.tnote[comntot_1.ntot - 1];
+
+/* Debug writes */
+
+/* write(*,'()') */
+/* write(*,'(a)')' Greetings from PMXB' */
+/* write(*,'(16i5)')(ivxo(in),in=1,ntot) */
+/* write(*,'(16i5)')(ipo(in),in=1,ntot) */
+/* write(*,'(16f5.1)')(to(in),in=1,ntot) */
+/* write(*,'(16f5.1)')(tno(in),in=1,ntot) */
+/* write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot) */
+/* write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot) */
+
+/* Done w/ list. Loop for parsing into note blocks: */
+
+ ib = 1;
+ istart[1] = 1;
+ comnsp_2.space[0] = 0.f;
+ in = 1;
+
+/* A manual loop to set space(ib) and istop(ib) */
+
+L9:
+/* Computing MIN */
+ i__1 = in + 1;
+ commvl_1.ivx = all_1.ivxo[min(i__1,comntot_1.ntot) - 1];
+/* Computing MIN */
+ i__1 = in + 1;
+ ip = all_1.ipo[min(i__1,comntot_1.ntot) - 1];
+ isl = all_1.islur[commvl_1.ivx + ip * 24 - 25];
+ if (in == comntot_1.ntot || (commvl_1.ivx == 1 && ((isl & 67109216) > 0 ||
+ bit_test(all_1.ipl[ip * 24 - 24],28) || bit_test(all_1.iornq[ip *
+ 24],4)) || bit_test(isl,15)) || bit_test(all_1.irest[
+ commvl_1.ivx + ip * 24 - 25],29)) {
+/* * .or. ornq(1,ip).eq.'g')) .or. btest(isl,15) )) then */
+/* Bits 1-13: stmgx+Tupf._) */
+/* 14: Down fermata, was F */
+/* 15: Trill w/o "tr", was U */
+
+/* Checking for start of 2nd part of jumped beam */
+
+
+/* Bar end, segno, int. rpt or sig change, clef,end of 1st part of jumped beam; */
+/* flow out of if-loop and into block-wrapup */
+
+/* 10/18/97: Problem with clef alignment. Got isl{15} set on lowest-numbered */
+/* voice, but it wasn't first in the list at the same time. So check if */
+/* prior notes in list have same time */
+/* 5/25/98: This stuff causes trouble with just "c2 Ct c", maybe when clef */
+/* changes on last note in the list? */
+
+ if (bit_test(isl,15) && in < comntot_1.ntot) {
+ for (iin = in; iin >= 1; --iin) {
+ if (all_1.tno[iin - 1] > comtol_1.tol) {
+ in = iin;
+ all_1.islur[commvl_1.ivx + ip * 24 - 25] = bit_clear(
+ all_1.islur[commvl_1.ivx + ip * 24 - 25],15);
+ all_1.islur[all_1.ivxo[in] + all_1.ipo[in] * 24 - 25] =
+ bit_set(all_1.islur[all_1.ivxo[in] + all_1.ipo[in]
+ * 24 - 25],15);
+ goto L51;
+ }
+/* L50: */
+ }
+L51:
+ ;
+ }
+ if (comnsp_2.space[ib - 1] < comtol_1.tol) {
+ comnsp_2.space[ib - 1] = all_1.tno[in - 1];
+ squez[ib] = 1.f;
+ }
+ istop[ib] = in;
+ } else if (comnsp_2.space[ib - 1] < comtol_1.tol) {
+
+/* space hasn't been set yet, so tentatively set: */
+
+ comnsp_2.space[ib - 1] = all_1.tno[in - 1];
+ if (comnsp_2.space[ib - 1] < comtol_1.tol) {
+ ++in;
+ } else {
+ squez[ib] = getsquez_(&in, &comntot_1.ntot, &comnsp_2.space[ib -
+ 1], all_1.tnote, all_1.to);
+ istop[ib] = in;
+ }
+ goto L9;
+ } else if (all_1.tno[in] < comtol_1.tol) {
+
+/* This is not the last note in the group, so */
+
+ ++in;
+ goto L9;
+ } else if ((r__1 = all_1.tno[in] - comnsp_2.space[ib - 1], dabs(r__1)) <
+ comtol_1.tol) {
+ i__1 = in + 1;
+ xsquez = getsquez_(&i__1, &comntot_1.ntot, &comnsp_2.space[ib - 1],
+ all_1.tnote, all_1.to);
+ if ((r__1 = xsquez - squez[ib], dabs(r__1)) < comtol_1.tol) {
+
+/* Keep spacing the same, update tentative stop point */
+
+ ++in;
+ istop[ib] = in;
+ goto L9;
+ }
+ }
+
+/* At this point istart and istop are good, so finalize block */
+
+ tstart[ib] = all_1.to[istart[ib] - 1];
+ if (istop[ib] == comntot_1.ntot) {
+ goto L15;
+ }
+ ++ib;
+ istart[ib] = istop[ib - 1] + 1;
+ in = istart[ib];
+
+/* Set tentative block space and squeeze-factor for upcoming block */
+
+ comnsp_2.space[ib - 1] = all_1.tno[in - 1];
+ if (comnsp_2.space[ib - 1] > comtol_1.tol) {
+ squez[ib] = getsquez_(&in, &comntot_1.ntot, &comnsp_2.space[ib - 1],
+ all_1.tnote, all_1.to);
+ }
+ istop[ib] = in;
+ goto L9;
+L15:
+ comnsp_2.nb = ib;
+
+/* Invert the list of places into ipl(0-7), making it easier to analyze a voice */
+
+ i__1 = comntot_1.ntot;
+ for (in = 1; in <= i__1; ++in) {
+
+/* ??? This may fix extra \loff's (bit 8 of ipl) in measures with >255 notes. */
+
+/* ipl(ivxo(in),ipo(in)) = ior(ipl(ivxo(in),ipo(in)),in) */
+ comipl2_1.ipl2[all_1.ivxo[in - 1] + all_1.ipo[in - 1] * 24 - 25] = in;
+/* L13: */
+ }
+
+/* Compute elemskips from start of bar to each note in the bar, for beam slopes */
+
+ eskzb = 0.f;
+ ib = 1;
+ i__1 = comntot_1.ntot;
+ for (in = 1; in <= i__1; ++in) {
+ if (in == istart[ib]) {
+ r__1 = comnsp_2.space[ib - 1] / squez[ib];
+ deskb = squez[ib] * feon_(&r__1);
+ } else if (all_1.tno[in - 2] > comtol_1.tol) {
+ eskzb += deskb;
+ }
+ all_1.eskz[all_1.ivxo[in - 1] + all_1.ipo[in - 1] * 24 - 25] = eskzb;
+ comeskz2_1.eskz2[all_1.ivxo[in - 1] + all_1.ipo[in - 1] * 24 - 25] =
+ eskzb;
+ if (in == istop[ib]) {
+ eskzb += deskb;
+ ++ib;
+ }
+/* L30: */
+ }
+
+/* Debug writes */
+
+/* print* */
+/* write(*,'(16f5.1)')(eskz(ivxo(in),ipo(in)),in=1,ntot) */
+/* print*,'PMXB has now got blocks' */
+/* write(*,'(16i5)')(istart(ib),ib=1,nb) */
+/* write(*,'(16i5)')(istop(ib),ib=1,nb) */
+/* write(*,'(16f5.1)')(space(ib),ib=1,nb) */
+/* write(*,'(16f5.1)')(squez(ib),ib=1,nb) */
+/* write(*,'(16f5.1)')(fnote(nodur,ivxo(in),ipo(in),nacc),in=1,ntot) */
+/* c write(*,'(26i3)')(iand(islur(ivxo(in),ipo(in)),30720)/2048, */
+/* * in=1,ntot) */
+/* write(*,'(1x,26a3)')(ornq(ivxo(in),ipo(in)),in=1,ntot) */
+
+
+/* Analyze for beams. */
+
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ i__2 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ numbms[commvl_1.ivx] = 0;
+ mapfb[0] = 0;
+ mapfb[1] = 0;
+ mapfb[2] = 0;
+ mapfb[3] = 0;
+
+/* First forced beams. */
+
+ if (comfb_1.nfb[commvl_1.ivx - 1] > 0) {
+
+/* tglp2 is time from start of gulp to end of current bar. */
+
+ nfbbar = 0;
+ i__3 = comfb_1.nfb[commvl_1.ivx - 1];
+ for (comfb_1.ifb = 1; comfb_1.ifb <= i__3; ++comfb_1.ifb) {
+ if (comfb_1.t1fb[commvl_1.ivx + comfb_1.ifb * 24 - 25] >
+ tglp2 - comtol_1.tol) {
+ goto L81;
+ }
+ ++nfbbar;
+ ++numbms[commvl_1.ivx];
+ numnew = numbms[commvl_1.ivx];
+
+/* Times from beginning of bar */
+
+ itbb1 = (integer) (comfb_1.t1fb[commvl_1.ivx +
+ comfb_1.ifb * 24 - 25] - *tglp1 + comtol_1.tol);
+ itbb2 = (integer) (comfb_1.t2fb[commvl_1.ivx +
+ comfb_1.ifb * 24 - 25] - *tglp1 + comtol_1.tol);
+ i__4 = all_1.nn[commvl_1.ivx - 1];
+ for (ip = 1; ip <= i__4; ++ip) {
+ if ((integer) (all_1.to[comipl2_1.ipl2[commvl_1.ivx +
+ ip * 24 - 25] - 1] + comtol_1.tol) == itbb1) {
+ nip1fb = ip;
+ i__5 = all_1.nn[commvl_1.ivx - 1];
+ for (ip1 = ip; ip1 <= i__5; ++ip1) {
+ inip1 = comipl2_1.ipl2[commvl_1.ivx + ip1 *
+ 24 - 25];
+ if ((r__1 = all_1.to[inip1 - 1] + all_1.tnote[
+ inip1 - 1] - itbb2, dabs(r__1)) <
+ comtol_1.tol) {
+ nip2fb = ip1;
+ itbb3 = itbb2 - 2;
+ goto L85;
+ }
+/* L84: */
+ }
+ }
+/* L83: */
+ }
+ s_wsle(&io___912);
+ e_wsle();
+ s_wsle(&io___913);
+ do_lio(&c__9, &c__1, "Timing problem w/ forced beams", (
+ ftnlen)30);
+ e_wsle();
+ s_wsfe(&io___914);
+ do_fio(&c__1, "Timing problem w/ forced beams", (ftnlen)
+ 30);
+ e_wsfe();
+L85:
+ logbeam_(&numnew, &nip1fb, &nip2fb);
+
+/* Set up mapfb for forced beam just logged: */
+
+ ib1 = itbb1 / 2;
+ ib2 = itbb3 / 2;
+ ibrep = all_1.lenbar / *ibmrep / 2;
+ i__4 = *ibmrep;
+ for (irep = 1; irep <= i__4; ++irep) {
+/* Computing MAX */
+ i__5 = 0, i__6 = ib1 - (irep - 1) * ibrep;
+ ib1now = max(i__5,i__6);
+/* Computing MIN */
+ i__5 = irep * ibrep - 1, i__6 = ib2 - (irep - 1) *
+ ibrep;
+ ib2now = min(i__5,i__6);
+ mapnow = 0;
+ i__5 = ib2now;
+ for (ib = ib1now; ib <= i__5; ++ib) {
+ mapnow = bit_set(mapnow,ib);
+/* L87: */
+ }
+ mapfb[irep - 1] |= mapnow;
+/* L86: */
+ }
+
+/* Since we are cycling thru forced beams, for those that start with a rest and */
+/* have height & slope adjustments, move adjustments to next note. */
+/* 060924: Copy to ALL later notes in fb, in case there's more than 1 rest at */
+/* start of beam */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + nip1fb * 24 - 25],
+ 0)) {
+/* call setbits(ipl(ivx,nip1fb+1),6,11, */
+/* * igetbits(ipl(ivx,nip1fb),6,11)) */
+/* call setbits(ipl(ivx,nip1fb+1),6,17, */
+/* * igetbits(ipl(ivx,nip1fb),6,17)) */
+/* call setbits(islur(ivx,nip1fb+1),2,27, */
+/* * igetbits(islur(ivx,nip1fb),2,27)) */
+ i__4 = nip2fb;
+ for (kp = nip1fb + 1; kp <= i__4; ++kp) {
+ i__5 = igetbits_(&all_1.ipl[commvl_1.ivx + nip1fb
+ * 24 - 25], &c__6, &c__11);
+ setbits_(&all_1.ipl[commvl_1.ivx + kp * 24 - 25],
+ &c__6, &c__11, &i__5);
+ i__5 = igetbits_(&all_1.ipl[commvl_1.ivx + nip1fb
+ * 24 - 25], &c__6, &c__17);
+ setbits_(&all_1.ipl[commvl_1.ivx + kp * 24 - 25],
+ &c__6, &c__17, &i__5);
+ i__5 = igetbits_(&all_1.islur[commvl_1.ivx +
+ nip1fb * 24 - 25], &c__2, &c__27);
+ setbits_(&all_1.islur[commvl_1.ivx + kp * 24 - 25]
+ , &c__2, &c__27, &i__5);
+/* L88: */
+ }
+ }
+/* L80: */
+ }
+L81:
+
+/* Slide down, reduce nfb(ivx). This lets us count up from 1 for each new bar. */
+/* Remember, makeabar is called 1/bar, and it calls findbeam once per voice. */
+
+ if (nfbbar > 0) {
+ comfb_1.nfb[commvl_1.ivx - 1] -= nfbbar;
+ i__3 = comfb_1.nfb[commvl_1.ivx - 1];
+ for (comfb_1.ifb = 1; comfb_1.ifb <= i__3; ++comfb_1.ifb)
+ {
+ comfb_1.t1fb[commvl_1.ivx + comfb_1.ifb * 24 - 25] =
+ comfb_1.t1fb[commvl_1.ivx + (comfb_1.ifb +
+ nfbbar) * 24 - 25];
+ comfb_1.t2fb[commvl_1.ivx + comfb_1.ifb * 24 - 25] =
+ comfb_1.t2fb[commvl_1.ivx + (comfb_1.ifb +
+ nfbbar) * 24 - 25];
+ *(unsigned char *)&comfb_1.ulfbq[commvl_1.ivx +
+ comfb_1.ifb * 24 - 25] = *(unsigned char *)&
+ comfb_1.ulfbq[commvl_1.ivx + (comfb_1.ifb +
+ nfbbar) * 24 - 25];
+/* L82: */
+ }
+ }
+ }
+ comfb_1.ifb = 0;
+
+/* Done with forced beam masks for this bar and voice. Now get normal beams. */
+
+ findbeam_(ibmrep, &numbms[1], mapfb);
+/* L20: */
+ }
+ }
+ return 0;
+} /* make1bar_ */
+
+/* Subroutine */ int make2bar_(integer *ninow, real *tglp1, real *tstart,
+ logical *cwrest, real *squez, integer *istop, integer *numbms,
+ integer *istart, char *clefq, ftnlen clefq_len)
+{
+ /* System generated locals */
+ address a__1[6], a__2[2], a__3[5], a__4[3], a__5[4], a__6[8], a__7[7];
+ integer i__1, i__2, i__3[6], i__4[2], i__5[5], i__6[3], i__7, i__8[4],
+ i__9, i__10[8], i__11, i__12, i__13[7];
+ real r__1, r__2;
+ logical L__1;
+ char ch__1[80], ch__2[82], ch__3[12], ch__4[1], ch__5[17], ch__6[16],
+ ch__7[11], ch__8[10], ch__9[44], ch__10[81], ch__11[113], ch__12[
+ 3], ch__13[9], ch__14[129], ch__15[6], ch__16[5], ch__17[4],
+ ch__18[14], ch__19[22];
+ cilist ci__1;
+
+ /* Builtin functions */
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfe(cilist *), e_wsfe(void), lbit_shift(integer, integer),
+ i_nint(real *), s_wsle(cilist *), do_lio(integer *, integer *,
+ char *, ftnlen), e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ integer pow_ii(integer *, integer *), i_sign(integer *, integer *);
+ double r_lg10(real *);
+ integer s_cmp(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ extern logical isdotted_(integer *, integer *, integer *);
+ extern /* Subroutine */ int beamstrt_(char *, integer *, integer *,
+ integer *, real *, real *, integer *, ftnlen);
+ static real ptsavail;
+ static integer levother;
+ extern /* Subroutine */ int dopsslur_(integer *, integer *, integer *,
+ integer *, integer *, integer *, integer *, integer *, integer *,
+ integer *, logical *, integer *, char *, integer *, char *,
+ integer *, integer *, integer *, integer *, real *, integer *,
+ ftnlen, ftnlen), midievent_(char *, integer *, integer *, ftnlen);
+ static real stemshort;
+ static integer ib, ig, il, in, ip, kv;
+ extern /* Subroutine */ int adjusteskz_(integer *, real *, integer *,
+ integer *, real *);
+ static integer iib, icm, ing, len;
+ static real esk, xnd;
+ static integer ivf, kkp;
+ static real wgr;
+ static integer iiv;
+ static real pts;
+ static logical secondgrace;
+ extern integer log2_(integer *);
+ static integer iacc, kacc, macc, ifig[2], icrd, ndig;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ extern doublereal feon_(real *);
+ static integer lcwr[24];
+ extern /* Character */ VOID udqq_(char *, ftnlen, integer *, integer *,
+ integer *, integer *, integer *, integer *);
+ static char cwrq[79*24];
+ static real ptgr[37], spgr, ptsl, zero, tnow;
+ static integer nodu;
+ extern /* Subroutine */ int eskb4_(integer *, integer *, integer *,
+ integer *, real *, real *, real *, integer *, real *), stop1_(
+ void), doacc_(integer *, integer *, char *, integer *, integer *,
+ integer *, integer *, logical *, ftnlen);
+ static logical isacc;
+ static integer nclef, iaskb[24];
+ static logical iscln, issig;
+ static integer nornb[24];
+ static logical isarp, isdot;
+ static integer lnote;
+ static char noteq[8];
+ static logical iscwr;
+ static char soutq[80];
+ static integer lsout, itrpt, itsig;
+ extern integer ncmid_(integer *, integer *);
+ static integer iirpt, lclow;
+ extern /* Subroutine */ int dodyn_(integer *, integer *, integer *,
+ integer *, integer *, integer *, integer *, integer *, integer *,
+ logical *, integer *, integer *, char *, integer *, logical *,
+ char *, integer *, ftnlen, ftnlen), docrd_(integer *, integer *,
+ integer *, integer *, integer *, real *, char *, integer *, char *
+ , integer *, integer *, integer *, integer *, logical *, integer *
+ , integer *, integer *, real *, logical *, integer *, ftnlen,
+ ftnlen), putcb_(integer *, integer *, char *, integer *, ftnlen),
+ beamn1_(char *, integer *, ftnlen), notex_(char *, integer *,
+ ftnlen);
+ static integer indxr;
+ static logical iscacc;
+ extern /* Subroutine */ int addask_(real *, real *, real *, real *, real *
+ , real *, logical *);
+ static logical isclef, isflag, isaccs, bspend, isgaft;
+ static real ptclef[24];
+ static integer ihornb[576] /* was [24][24] */;
+ static real eskndg[24], ptsndg[24];
+ static logical rpndot;
+ static char notexq[79];
+ static logical stemup, beamon1[24];
+ static integer ibmcnt1[24], lnoten;
+ extern /* Subroutine */ int wsclef_(integer *, integer *, char *, integer
+ *, ftnlen);
+ static real eonsqz;
+ extern /* Subroutine */ int precrd_(integer *, integer *, integer *,
+ integer *, integer *, integer *, char *, logical *, integer *,
+ ftnlen), chkarp_(integer *, integer *, integer *, integer *,
+ logical *, logical *);
+ static integer ibmchk;
+ static real esksav, taccfac, ptsadd;
+ static integer ihshft;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static integer lchead;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ static integer islhgt;
+ static real offnsk;
+ extern /* Subroutine */ int putfig_(integer *, integer *, real *, logical
+ *, char *, integer *, ftnlen), putarp_(real *, integer *, integer
+ *, integer *, integer *, char *, integer *, ftnlen), doslur_(
+ integer *, integer *, integer *, integer *, integer *, integer *,
+ integer *, integer *, integer *, logical *, integer *, char *,
+ integer *, char *, integer *, integer *, integer *, integer *,
+ real *, integer *, ftnlen, ftnlen);
+ static integer iphold;
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen), addmidi_(integer *, integer *, integer *, integer *,
+ real *, logical *, logical *), dograce_(integer *, integer *,
+ real *, char *, integer *, integer *, integer *, integer *,
+ integer *, logical *, logical *, integer *, integer *, integer *,
+ integer *, integer *, integer *, real *, char *, ftnlen, ftnlen),
+ putorn_(integer *, integer *, integer *, integer *, integer *,
+ char *, integer *, integer *, integer *, integer *, integer *,
+ integer *, integer *, real *, char *, integer *, integer *,
+ integer *, logical *, logical *, ftnlen, ftnlen), dotmov_(real *,
+ real *, char *, integer *, integer *, ftnlen), beamend_(char *,
+ integer *, ftnlen), beamid_(char *, integer *, ftnlen);
+ static real tother;
+ static integer levtop, iraise1;
+ static logical isgrace;
+ static integer icashft;
+ static real ptbneed;
+ static integer iraise2, iraise, levbot, itleft, itendb;
+ extern integer iashft_(integer *);
+ static real ptsneed;
+ extern /* Subroutine */ int clefsym_(integer *, char *, integer *,
+ integer *, ftnlen);
+ static logical isrshft, isfirst, nofirst;
+ extern /* Subroutine */ int endslur_(logical *, logical *, integer *,
+ integer *, integer *, integer *, integer *, char *, integer *,
+ logical *, ftnlen);
+ static char slurudq[1];
+ extern /* Subroutine */ int putshft_(integer *, logical *, char *,
+ integer *, ftnlen), setbits_(integer *, integer *, integer *,
+ integer *);
+ static integer levnext, iupdown, ivother, itright, nolevc, ivlast;
+ static real wheadpt1;
+ extern /* Subroutine */ int istring_(integer *, char *, integer *, ftnlen)
+ ;
+ static integer mtrspc;
+
+ /* Fortran I/O blocks */
+ static icilist io___934 = { 0, noteq, 0, "(1H{,i3,1H})", 5, 1 };
+ static icilist io___936 = { 0, noteq, 0, "(1H{,i2,1H})", 4, 1 };
+ static icilist io___937 = { 0, noteq, 0, "(i1)", 1, 1 };
+ static cilist io___940 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___941 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___944 = { 0, 11, 0, "(a)", 0 };
+ static icilist io___947 = { 0, soutq+8, 0, "(f4.1)", 4, 1 };
+ static icilist io___948 = { 0, soutq+8, 0, "(f4.2)", 4, 1 };
+ static icilist io___949 = { 0, soutq+10, 0, "(i2)", 2, 1 };
+ static icilist io___950 = { 0, soutq+11, 0, "(i1)", 1, 1 };
+ static cilist io___955 = { 0, 6, 0, 0, 0 };
+ static cilist io___956 = { 0, 6, 0, 0, 0 };
+ static cilist io___976 = { 0, 6, 0, 0, 0 };
+ static cilist io___992 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___993 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___994 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___995 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___996 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___997 = { 0, 6, 0, 0, 0 };
+ static cilist io___998 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___999 = { 0, 11, 0, "(a)", 0 };
+ static icilist io___1003 = { 0, notexq+11, 0, "(i2)", 2, 1 };
+ static icilist io___1009 = { 0, notexq+6, 0, "(f3.1)", 3, 1 };
+ static icilist io___1010 = { 0, notexq+6, 0, "(f4.1)", 4, 1 };
+ static icilist io___1012 = { 0, notexq+5, 0, "(f3.1)", 3, 1 };
+ static icilist io___1013 = { 0, notexq+5, 0, "(f4.1)", 4, 1 };
+ static cilist io___1015 = { 0, 6, 0, 0, 0 };
+ static cilist io___1016 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1017 = { 0, 11, 0, "(a)", 0 };
+ static icilist io___1024 = { 0, notexq, 0, "(f4.2)", 79, 1 };
+ static cilist io___1039 = { 0, 6, 0, 0, 0 };
+ static cilist io___1052 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1055 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1058 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1060 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* Factors for grace note, clef spacing. (fraction of wheadpt) */
+/* In 1.04, moved to block data subprogram */
+
+
+
+
+/* Set up main ib loop within which a block (notes group) is written */
+
+ /* Parameter adjustments */
+ --clefq;
+ --istart;
+ --numbms;
+ --istop;
+ --squez;
+ --cwrest;
+ --tstart;
+
+ /* Function Body */
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ i__2 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ all_1.ibmcnt[commvl_1.ivx - 1] = 1;
+ ibmcnt1[commvl_1.ivx - 1] = 1;
+ all_1.beamon[commvl_1.ivx - 1] = FALSE_;
+ beamon1[commvl_1.ivx - 1] = FALSE_;
+ nornb[commvl_1.ivx - 1] = 0;
+ iaskb[commvl_1.ivx - 1] = 1;
+ comxtup_1.vxtup[commvl_1.ivx - 1] = FALSE_;
+ comdraw_1.drawbm[commvl_1.ivx - 1] = TRUE_;
+/* L25: */
+ }
+ }
+ comas1_1.naskb = 0;
+ ifig[0] = 1;
+ ifig[1] = 1;
+ comxtup_1.ixtup = 0;
+ bspend = FALSE_;
+ iscwr = FALSE_;
+ rpndot = FALSE_;
+ i__2 = comnsp_2.nb;
+ for (ib = 1; ib <= i__2; ++ib) {
+
+/* Check for segno */
+
+ if (bit_test(all_1.iornq[all_1.ipo[istart[ib] - 1] * 24],4) &&
+ all_1.ivxo[istart[ib] - 1] == 1) {
+ if (comgrace_1.noffseg <= -10) {
+ s_wsfi(&io___934);
+ do_fio(&c__1, (char *)&comgrace_1.noffseg, (ftnlen)sizeof(
+ integer));
+ e_wsfi();
+ lnoten = 5;
+ } else if (comgrace_1.noffseg < 0 || comgrace_1.noffseg >= 10) {
+ s_wsfi(&io___936);
+ do_fio(&c__1, (char *)&comgrace_1.noffseg, (ftnlen)sizeof(
+ integer));
+ e_wsfi();
+ lnoten = 4;
+ } else {
+ s_wsfi(&io___937);
+ do_fio(&c__1, (char *)&comgrace_1.noffseg, (ftnlen)sizeof(
+ integer));
+ e_wsfi();
+ lnoten = 1;
+ }
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 6, a__1[1] = "znotes";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 6, a__1[3] = "segnoo";
+ i__3[4] = lnoten, a__1[4] = noteq;
+ i__3[5] = 1, a__1[5] = "9";
+ s_cat(notexq, a__1, i__3, &c__6, (ftnlen)79);
+ lnote = lnoten + 15;
+ i__1 = all_1.nv;
+ for (all_1.iv = 2; all_1.iv <= i__1; ++all_1.iv) {
+ if (lnote > 60) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___940);
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "%";
+ s_cat(ch__1, a__2, i__4, &c__2, (ftnlen)80);
+ do_fio(&c__1, ch__1, lnote + 1);
+ e_wsfe();
+ }
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sepsymq + (all_1.iv - 2);
+ i__5[1] = 1, a__3[1] = all_1.sq;
+ i__5[2] = 6, a__3[2] = "segnoo";
+ i__5[3] = lnoten, a__3[3] = noteq;
+ i__5[4] = 1, a__3[4] = "9";
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ lnote = lnoten + 9;
+ } else {
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 1, a__1[1] = all_1.sepsymq + (all_1.iv - 2);
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 6, a__1[3] = "segnoo";
+ i__3[4] = lnoten, a__1[4] = noteq;
+ i__3[5] = 1, a__1[5] = "9";
+ s_cat(notexq, a__1, i__3, &c__6, (ftnlen)79);
+ lnote = lnote + lnoten + 9;
+ }
+/* L130: */
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___941);
+/* Writing concatenation */
+ i__6[0] = lnote, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = all_1.sq;
+ i__6[2] = 2, a__4[2] = "en";
+ s_cat(ch__2, a__4, i__6, &c__3, (ftnlen)82);
+ do_fio(&c__1, ch__2, lnote + 3);
+ e_wsfe();
+ }
+ lnote = 0;
+ }
+
+/* Check for new clefs */
+
+ isclef = FALSE_;
+ if (bit_test(all_1.islur[all_1.ivxo[istart[ib] - 1] + all_1.ipo[
+ istart[ib] - 1] * 24 - 25],15)) {
+
+/* In preceding line, fl32 gave wrong result for ... .gt.0 !!! */
+
+ i__1 = istop[ib];
+ for (in = istart[ib]; in <= i__1; ++in) {
+ if (bit_test(all_1.islur[all_1.ivxo[in - 1] + all_1.ipo[in -
+ 1] * 24 - 25],11)) {
+ i__7 = lbit_shift(all_1.islur[all_1.ivxo[in - 1] +
+ all_1.ipo[in - 1] * 24 - 25], (ftnlen)-12) & 7;
+ wsclef_(&all_1.ivxo[in - 1], ninow, clefq + 1, &i__7, (
+ ftnlen)1);
+ }
+/* L140: */
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___944);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 11, a__2[1] = "pmxnewclefs";
+ s_cat(ch__3, a__2, i__4, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__3, (ftnlen)12);
+ e_wsfe();
+ }
+ isclef = TRUE_;
+ }
+
+/* Start a notes group. We're just gonna define every one using pnotes{n}, */
+/* where \def\pnotes#1{\vnotes#1\elemskip} */
+
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 7, a__2[1] = "pnotes{";
+ s_cat(soutq, a__2, i__4, &c__2, (ftnlen)80);
+ r__1 = comnsp_2.space[ib - 1] / squez[ib];
+ eonsqz = squez[ib] * feon_(&r__1);
+ if (eonsqz > 9.995f) {
+ s_wsfi(&io___947);
+ do_fio(&c__1, (char *)&eonsqz, (ftnlen)sizeof(real));
+ e_wsfi();
+ } else if (eonsqz > .995f) {
+ s_wsfi(&io___948);
+ do_fio(&c__1, (char *)&eonsqz, (ftnlen)sizeof(real));
+ e_wsfi();
+ } else if (eonsqz > .095f) {
+/* Writing concatenation */
+ i__4[0] = 8, a__2[0] = soutq;
+ i__4[1] = 2, a__2[1] = "0.";
+ s_cat(soutq, a__2, i__4, &c__2, (ftnlen)80);
+ s_wsfi(&io___949);
+ r__1 = eonsqz * 100;
+ i__1 = i_nint(&r__1);
+ do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsfi();
+ } else {
+/* Writing concatenation */
+ i__4[0] = 8, a__2[0] = soutq;
+ i__4[1] = 3, a__2[1] = "0.0";
+ s_cat(soutq, a__2, i__4, &c__2, (ftnlen)80);
+ s_wsfi(&io___950);
+ r__1 = eonsqz * 100;
+ i__1 = i_nint(&r__1);
+ do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsfi();
+ }
+/* Writing concatenation */
+ i__4[0] = 12, a__2[0] = soutq;
+ i__4[1] = 1, a__2[1] = "}";
+ s_cat(soutq, a__2, i__4, &c__2, (ftnlen)80);
+ lsout = 13;
+
+/* Check whole block, flag accidentals etc that are too close, one per *time*. */
+/* Note about bar starts and after rpt's/boublebars: There is an afterruleskip */
+/* (fbar*wheadpt) following, but rpts seem to occupy some of that gap, so */
+/* (dotsfac*wheadpt) is presumed to be filled up. */
+
+ in = istart[ib] - 1;
+ itrpt = -1;
+ itsig = -1;
+
+/* Begin big manual loop over notes in this block; ends at 112 */
+
+L111:
+ ++in;
+ if (in > istop[ib]) {
+ goto L112;
+ }
+ ip = all_1.ipo[in - 1];
+ commvl_1.ivx = all_1.ivxo[in - 1];
+ if (commvl_1.ivx <= all_1.nv) {
+ all_1.iv = commvl_1.ivx;
+ } else {
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ if (commvl_1.nvmx[all_1.iv - 1] == 2 && commvl_1.ivmx[
+ all_1.iv + 23] == commvl_1.ivx) {
+ goto L129;
+ }
+/* L128: */
+ }
+ s_wsle(&io___955);
+ do_lio(&c__9, &c__1, "Trouble finding iv!, ivx,nvmx,ivmx:", (
+ ftnlen)35);
+ do_lio(&c__3, &c__1, (char *)&commvl_1.ivx, (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&commvl_1.nvmx[0], (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&commvl_1.nvmx[1], (ftnlen)sizeof(
+ integer));
+ e_wsle();
+ s_wsle(&io___956);
+ do_lio(&c__3, &c__1, (char *)&commvl_1.ivmx[0], (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&commvl_1.ivmx[24], (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&commvl_1.ivmx[1], (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&commvl_1.ivmx[25], (ftnlen)sizeof(
+ integer));
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+L129:
+
+/* Call precrd here so we know how much space to add for accid's in chords */
+/* After calling precrd, icashft>0 means there is a shifted chordal accid (incl. */
+/* main note. */
+
+/* To call precrd, need up-downness, so must track if in beam. */
+
+/* Deal w/ staff-jumping beams later */
+/* if ((numbms(ivx).gt.0 .and. ibmcnt(ivx).le.numbms(ivx) */
+/* * .and. ibm1(ivx,ibmcnt(ivx)) .eq. ip) .or. */
+/* * btest(nacc(ivx,ip),21)) then */
+/* if (.not.btest(irest(ivx,ip),24)) then */
+ if (numbms[commvl_1.ivx] > 0 && ibmcnt1[commvl_1.ivx - 1] <= numbms[
+ commvl_1.ivx] && all_1.ibm1[commvl_1.ivx + ibmcnt1[
+ commvl_1.ivx - 1] * 24 - 25] == ip) {
+ beamon1[commvl_1.ivx - 1] = TRUE_;
+ }
+ icashft = 0;
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],10)) {
+
+/* There is a chord on this note. Need up-down-ness in precrd to auto shift for 2nds. */
+
+ if (beamon1[commvl_1.ivx - 1]) {
+ precrd_(&commvl_1.ivx, &ip, &all_1.nolev[commvl_1.ivx + ip *
+ 24 - 25], &all_1.nacc[commvl_1.ivx + ip * 24 - 25], &
+ all_1.ipl[commvl_1.ivx + ip * 24 - 25], &all_1.irest[
+ commvl_1.ivx + ip * 24 - 25], all_1.ulq + (
+ commvl_1.ivx + ibmcnt1[commvl_1.ivx - 1] * 24 - 25), &
+ c_false, &icashft, (ftnlen)1);
+ } else {
+ i__1 = ncmid_(&all_1.iv, &ip);
+ udqq_(ch__4, (ftnlen)1, &all_1.nolev[commvl_1.ivx + ip * 24 -
+ 25], &i__1, &all_1.islur[commvl_1.ivx + ip * 24 - 25],
+ &commvl_1.nvmx[all_1.iv - 1], &commvl_1.ivx, &
+ all_1.nv);
+ precrd_(&commvl_1.ivx, &ip, &all_1.nolev[commvl_1.ivx + ip *
+ 24 - 25], &all_1.nacc[commvl_1.ivx + ip * 24 - 25], &
+ all_1.ipl[commvl_1.ivx + ip * 24 - 25], &all_1.irest[
+ commvl_1.ivx + ip * 24 - 25], ch__4, &c_false, &
+ icashft, (ftnlen)1);
+ }
+ }
+
+/* Turn beam off? */
+
+ if (beamon1[commvl_1.ivx - 1] && all_1.ibm2[commvl_1.ivx + ibmcnt1[
+ commvl_1.ivx - 1] * 24 - 25] == ip) {
+ beamon1[commvl_1.ivx - 1] = FALSE_;
+ ++ibmcnt1[commvl_1.ivx - 1];
+ }
+
+/* Remember, rpts & internal sigs can only come at start of (internal) block */
+
+ isacc = (all_1.nacc[commvl_1.ivx + ip * 24 - 25] & 3) > 0 && !
+ bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],17) && !
+ bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],10);
+
+/* i.e., do not set for chord. Now check for "(" as ornament on main note, */
+
+/* !!! Need to do this for chord notes too. Maybe in chkarp? */
+
+ isaccs = isacc || bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],0);
+
+/* 5/15/02 Add check for ) ornament of prior note. */
+/* 5/16 Nope...fails when grace intervenes. */
+/* if (ip .gt. 1) then */
+/* isaccs = isaccs .or. btest(iornq(ivx,ip-1),13) */
+/* end if */
+ isarp = bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],27);
+ iscacc = FALSE_;
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],10)) {
+
+/* There is a chord here; check for arpeggios and accidentals. Note accid shifts are */
+/* not of concern here, only whether there's an accid, whick causes iscacc=.true. */
+
+ iscacc = igetbits_(&all_1.nacc[commvl_1.ivx + ip * 24 - 25], &
+ c__3, &c__0) > 0 && ! bit_test(all_1.nacc[commvl_1.ivx +
+ ip * 24 - 25],17);
+ chkarp_(&comtrill_1.ncrd, comtrill_1.icrdat, &commvl_1.ivx, &ip, &
+ iscacc, &isarp);
+ }
+
+/* When we get motivated, will do spacing for arpeggios here. */
+
+ if (commvl_1.ivx == 1 && (all_1.islur[commvl_1.ivx + ip * 24 - 25] &
+ 96) > 0) {
+ itrpt = i_nint(&all_1.to[in - 1]);
+ }
+ issig = bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],28);
+ if (commvl_1.ivx == 1 && issig) {
+ itsig = i_nint(&all_1.to[in - 1]);
+ }
+ isgrace = bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],4) && !
+ bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],29) && !
+ bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],31);
+ isgaft = FALSE_;
+ if (ip > 1) {
+ xnd = all_1.tnote[comipl2_1.ipl2[commvl_1.ivx + (ip - 1) * 24 -
+ 25] - 1];
+ isgaft = bit_test(all_1.ipl[commvl_1.ivx + (ip - 1) * 24 - 25],29)
+ || bit_test(all_1.ipl[commvl_1.ivx + (ip - 1) * 24 - 25],
+ 31);
+ isgrace = isgrace || isgaft;
+ }
+ iscln = isclef && bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],
+ 11);
+
+/* Is prev. note non-beamed, up-stemmed, & flagged? Recall if ip>1, have nd */
+
+ isflag = ip > 1 && xnd > comtol_1.tol && xnd < 16.f - comtol_1.tol;
+ if (isflag) {
+ i__7 = ip - 1;
+ i__1 = ncmid_(&all_1.iv, &i__7);
+ udqq_(ch__4, (ftnlen)1, &all_1.nolev[commvl_1.ivx + (ip - 1) * 24
+ - 25], &i__1, &all_1.islur[commvl_1.ivx + (ip - 1) * 24 -
+ 25], &commvl_1.nvmx[all_1.iv - 1], &commvl_1.ivx, &
+ all_1.nv);
+ isflag = ! bit_test(all_1.irest[commvl_1.ivx + (ip - 1) * 24 - 25]
+ ,0) && *(unsigned char *)&ch__4[0] == 'u';
+ }
+ if (isflag) {
+ i__1 = numbms[commvl_1.ivx];
+ for (ibmchk = 1; ibmchk <= i__1; ++ibmchk) {
+ if (ip - 1 < all_1.ibm1[commvl_1.ivx + ibmchk * 24 - 25]) {
+ goto L117;
+
+/* Add check for non-beamed xtuplets. May be problem with stem direction. */
+
+/* else if (ip-1.le.ibm2(ivx,ibmchk)) then */
+ } else if (ip - 1 <= all_1.ibm2[commvl_1.ivx + ibmchk * 24 -
+ 25] && ! bit_test(all_1.islur[commvl_1.ivx +
+ all_1.ibm1[commvl_1.ivx + ibmchk * 24 - 25] * 24 - 25]
+ ,18)) {
+ isflag = FALSE_;
+ goto L117;
+ }
+/* L116: */
+ }
+ }
+L117:
+
+/* If isflag, then won't need to check for dot on prev. note. */
+
+/* 5/16/02 ??? Try using this for ) ornament. */
+
+ isflag = isflag || bit_test(all_1.iornq[commvl_1.ivx + (ip - 1) * 24
+ - 1],13);
+ isdot = ip > 1;
+ if (isdot) {
+ i__1 = ip - 1;
+ isdot = isdotted_(all_1.nodur, &commvl_1.ivx, &i__1);
+ }
+ isrshft = ip > 1;
+ if (isrshft) {
+ isrshft = bit_test(all_1.irest[commvl_1.ivx + (ip - 1) * 24 - 25],
+ 20);
+ }
+ if (! (isaccs || isgrace || iscln || isflag || isrshft || isdot ||
+ bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],26) ||
+ bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],21) ||
+ isarp || bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],27)
+ || iscacc)) {
+ goto L111;
+ }
+
+/* Here is an accid,grace,clef,flag,rtshft,dot,udsp,arpeg,left-shift. */
+/* Compute pts, the total occupied space including prior notehead. */
+
+ wheadpt1 = comask_1.wheadpt * comfig_1.fullsize[all_1.iv - 1];
+ pts = wheadpt1;
+
+/* Set up for possible cautionary accidental here */
+
+ if (isaccs || iscacc) {
+ if (! bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],31)) {
+ taccfac = spfacs_1.accfac;
+ } else {
+ taccfac = spfacs_1.accfac * 1.4f;
+ }
+ }
+ if (isgrace) {
+ secondgrace = FALSE_;
+ i__1 = comgrace_1.ngrace;
+ for (ig = 1; ig <= i__1; ++ig) {
+ if (! isgaft) {
+ if (comgrace_1.ipg[ig - 1] == ip && comgrace_1.ivg[ig - 1]
+ == commvl_1.ivx) {
+ goto L123;
+ }
+ } else if (ip > 1) {
+ if (comgrace_1.ipg[ig - 1] == ip - 1 && comgrace_1.ivg[ig
+ - 1] == commvl_1.ivx) {
+ goto L123;
+ }
+ }
+/* L122: */
+ }
+ s_wsle(&io___976);
+ do_lio(&c__9, &c__1, "Problem finding grace index in makeabar", (
+ ftnlen)39);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+L123:
+
+/* wgr = distance to backspace (in headwidths), less main acc. */
+/* ptgr = same in pts,+ main acc. Not used for after-grace. Distance to backspace. */
+/* spgr = total space needed (w/o main acc). */
+/* Also, spgr is same for b4 or after, but xb4fac-space will be in diff. place. */
+
+ if (comgrace_1.nng[ig - 1] == 1) {
+ wgr = spfacs_1.grafac;
+ if (comgrace_1.multg[ig - 1] == 0) {
+ wgr += -.4f;
+ }
+ } else {
+ wgr = comgrace_1.nng[ig - 1] * spfacs_1.emgfac;
+ i__1 = comgrace_1.nng[ig - 1];
+ for (ing = 2; ing <= i__1; ++ing) {
+ if (comgrace_1.naccg[comgrace_1.ngstrt[ig - 1] - 1 + ing
+ - 1] > 0) {
+ wgr += spfacs_1.acgfac;
+ }
+/* L126: */
+ }
+ }
+ if (comgrace_1.graspace[ig - 1] > 0.f) {
+
+/* User-defined space before grace */
+
+ wgr += comgrace_1.graspace[ig - 1];
+ }
+ ptgr[ig - 1] = wgr * wheadpt1;
+ spgr = ptgr[ig - 1] + spfacs_1.xb4fac * wheadpt1;
+
+/* !!! May need to mod for chord accid's */
+
+ if (isaccs || iscacc) {
+ ptgr[ig - 1] += taccfac * wheadpt1;
+ }
+ if (comgrace_1.naccg[comgrace_1.ngstrt[ig - 1] - 1] > 0) {
+ spgr += wheadpt1 * spfacs_1.agc1fac;
+ }
+ pts += spgr;
+
+/* Special check for after-grace on ip-1 and normal on ip. Must go back thru */
+/* loop again for the normal grace. */
+
+ if (isgaft && ig < comgrace_1.ngrace && ! secondgrace) {
+ if (comgrace_1.ipg[ig] == ip) {
+ secondgrace = TRUE_;
+ ++ig;
+ goto L123;
+ }
+ }
+ }
+ if (iscln) {
+ pts += spfacs_1.clefac * wheadpt1;
+
+/* How far to backspace when printing the clef */
+
+ ptclef[commvl_1.ivx - 1] = 0.f;
+
+/* !!! May need to mod for chord accid's */
+
+ if (isaccs || iscacc) {
+ ptclef[commvl_1.ivx - 1] += taccfac * wheadpt1;
+ }
+ if (isgrace) {
+ ptclef[commvl_1.ivx - 1] += spgr;
+ }
+ }
+ if (isrshft) {
+ pts += spfacs_1.rtshfac * wheadpt1;
+ } else if (isflag) {
+ pts += spfacs_1.flagfac * wheadpt1;
+ } else if (isdot) {
+ pts += spfacs_1.dotfac * wheadpt1;
+ }
+ if ((r__1 = all_1.to[in - 1] - itrpt, dabs(r__1)) < comtol_1.tol) {
+
+/* Repeat, need a little extra space */
+
+ pts += spfacs_1.dotsfac * wheadpt1;
+ }
+ if (isarp) {
+ pts += spfacs_1.arpfac * wheadpt1;
+ }
+
+/* Add in padding space */
+
+ pts += spfacs_1.xspfac * wheadpt1;
+
+/* Now done with all items needing space except accidentals, */
+/* accidental shifts, and left-notehead-shifts, and will later */
+/* subtract a notehead if at start of bar. */
+
+/* Get available space in elemskips (esk) */
+
+/* isfirst = ip.eq.1 .or. to(in).eq.itrpt .or. */
+/* * to(in) .eq. itsig */
+ isfirst = ip == 1 || (r__1 = all_1.to[in - 1] - itrpt, dabs(r__1)) <
+ comtol_1.tol || (r__2 = all_1.to[in - 1] - itsig, dabs(r__2))
+ < comtol_1.tol;
+ if (isfirst) {
+
+/* At start of bar or after repeat sign or new signature */
+
+/* if (to(in) .eq. itsig) then */
+ if ((r__1 = all_1.to[in - 1] - itsig, dabs(r__1)) < comtol_1.tol)
+ {
+ esk = 0.f;
+ } else {
+ esk = comask_1.fbar;
+ }
+ } else {
+
+/* Not 1st note of bar */
+
+ esk = all_1.eskz[commvl_1.ivx + ip * 24 - 25] - all_1.eskz[
+ commvl_1.ivx + (ip - 1) * 24 - 25];
+ }
+ if (isgrace) {
+
+/* Since graces can be very long, cannot assume no interference if prior */
+/* note uses >1 noteskip. So must get elsk's back to prior note, whether or */
+/* not it used only one noteskip. */
+/* <<But if it was xtup. don't need to call eskb4.>>???? */
+
+/* 10/8/05 Kluge to not zero out esk if in xtup */
+
+ esksav = esk;
+/* Computing MAX */
+ i__1 = 1, i__7 = ip - 2;
+ if ((ip <= 2 || all_1.nodur[commvl_1.ivx + max(i__1,i__7) * 24 -
+ 25] > 0) && (r__1 = all_1.to[in - 1] - itsig, dabs(r__1))
+ > comtol_1.tol) {
+ eskb4_(&ip, &commvl_1.ivx, &in, &ib, comnsp_2.space, &tstart[
+ 1], &comask_1.fbar, &itrpt, &esk);
+ }
+/* * to(in).ne.itsig) */
+ if (dabs(esk) < comtol_1.tol) {
+ esk = esksav;
+ }
+ }
+
+/* Done getting available elemskips. Remove headwidth if first. Must do here */
+/* rather than earlier since check uses isfirst */
+
+ if (isfirst) {
+ pts -= wheadpt1;
+ }
+
+/* Deal with accidental shifts and left-notehead shifts */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],10)) {
+
+/* In a chord */
+
+ ptsl = 0.f;
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],27)) {
+ ptsl = wheadpt1;
+ }
+/* Computing MAX */
+ r__1 = ptsl, r__2 = icashft * .05f * wheadpt1;
+ ptsadd = dmax(r__1,r__2);
+
+/* Note: may have icashft=-20000 (if shftmin=-1000 in crdacc) but that's OK */
+
+ } else {
+
+/* Not in a chord */
+
+ ihshft = 0;
+ if (isaccs) {
+ ihshft = igetbits_(&all_1.nacc[commvl_1.ivx + ip * 24 - 25], &
+ c__7, &c__10);
+/* if (ihshft .ne. 0) ihshft = max(0,64-ihshft) */
+ if (ihshft != 0) {
+/* Computing MAX */
+ i__1 = 0, i__7 = 107 - ihshft;
+ ihshft = max(i__1,i__7);
+ }
+ }
+
+/* Check for left-shifted main note */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],8)) {
+ ihshft = max(20,ihshft);
+ }
+ ptsadd = ihshft * .05f * wheadpt1;
+ }
+ pts += ptsadd;
+ if (isgrace) {
+ ptgr[ig - 1] += ptsadd;
+ }
+ if (iscln) {
+ ptclef[commvl_1.ivx - 1] += ptsadd;
+ }
+
+/* Left-shifted, non-chord note before? */
+
+ if (ip > 1) {
+ if (! bit_test(all_1.ipl[commvl_1.ivx + (ip - 1) * 24 - 25],10) &&
+ bit_test(all_1.irest[commvl_1.ivx + (ip - 1) * 24 - 25],
+ 27)) {
+ pts -= wheadpt1;
+ }
+ }
+
+/* Try big accidentals first */
+
+ ptbneed = pts;
+ if (isaccs || iscacc) {
+ ptbneed += wheadpt1 * spfacs_1.bacfac;
+ }
+ if (comask_1.poenom * esk > ptbneed) {
+
+/* Set flag for big accidental */
+
+ if (isacc) {
+ all_1.nacc[commvl_1.ivx + ip * 24 - 25] = bit_set(all_1.nacc[
+ commvl_1.ivx + ip * 24 - 25],3);
+ }
+ goto L99;
+ }
+
+/* Cannot use big, so try small */
+
+ ptsneed = pts;
+ if (isaccs || iscacc) {
+ ptsneed += taccfac * wheadpt1;
+ }
+ if (comask_1.poenom * esk < ptsneed) {
+ addask_(&all_1.to[in - 1], &ptsneed, &esk, &comask_1.fixednew, &
+ comask_1.scaldold, &c_b736, &c_false);
+ }
+L99:
+ if (bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],26)) {
+
+/* User-defined space. Warning, "zero" may change value in addask! */
+
+ zero = 0.f;
+ addask_(&all_1.to[in - 1], &ptsneed, &zero, &comask_1.fixednew, &
+ comask_1.scaldold, tglp1, &c_true);
+ }
+
+/* End of big manual loop over "in" for accidental checking */
+
+ goto L111;
+L112:
+
+/* End of ask analysis for this block. */
+
+/* Adjust eskz if there are added spaces. Corrects length of xtup brackets. */
+
+ if (comas1_1.naskb > 0) {
+ adjusteskz_(&ib, &squez[1], &istart[1], &istop[1], &
+ comask_1.poenom);
+ }
+
+/* Check for internal repeat or sig change. */
+
+ if (ib > 1 && all_1.ivxo[istart[ib] - 1] == 1) {
+ iirpt = all_1.islur[all_1.ipo[istart[ib] - 1] * 24 - 24] &
+ 67109216;
+ if (iirpt > 0) {
+
+/* Internal repeat */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___992);
+/* Writing concatenation */
+ i__8[0] = 1, a__5[0] = all_1.sq;
+ i__8[1] = 7, a__5[1] = "advance";
+ i__8[2] = 1, a__5[2] = all_1.sq;
+ i__8[3] = 8, a__5[3] = "barno-1%";
+ s_cat(ch__5, a__5, i__8, &c__4, (ftnlen)17);
+ do_fio(&c__1, ch__5, (ftnlen)17);
+ e_wsfe();
+ }
+ if (iirpt == 96) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___993);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 15, a__2[1] = "leftrightrepeat";
+ s_cat(ch__6, a__2, i__4, &c__2, (ftnlen)16);
+ do_fio(&c__1, ch__6, (ftnlen)16);
+ e_wsfe();
+ }
+ comask_1.fixednew += spfacs_1.lrrptfac * comask_1.wheadpt;
+ } else if (bit_test(iirpt,5)) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___994);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 10, a__2[1] = "leftrepeat";
+ s_cat(ch__7, a__2, i__4, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__7, (ftnlen)11);
+ e_wsfe();
+ }
+ comask_1.fixednew += spfacs_1.rptfac * comask_1.wheadpt;
+ } else if (bit_test(iirpt,6)) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___995);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 11, a__2[1] = "rightrepeat";
+ s_cat(ch__3, a__2, i__4, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__3, (ftnlen)12);
+ e_wsfe();
+ }
+ comask_1.fixednew += spfacs_1.rptfac * comask_1.wheadpt;
+ } else if (bit_test(iirpt,8)) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___996);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 9, a__2[1] = "doublebar";
+ s_cat(ch__8, a__2, i__4, &c__2, (ftnlen)10);
+ do_fio(&c__1, ch__8, (ftnlen)10);
+ e_wsfe();
+ }
+ } else {
+ s_wsle(&io___997);
+ do_lio(&c__9, &c__1, "Unexpected mid-bar repeat command "
+ "R*", (ftnlen)36);
+ e_wsle();
+ stop1_();
+ }
+ comask_1.scaldold -= comask_1.fbar;
+ }
+ if (bit_test(all_1.ipl[all_1.ipo[istart[ib] - 1] * 24 - 24],28)) {
+
+/* Internal signature change. */
+
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 17, a__2[1] = "generalsignature{";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote = 18;
+ if (comtop_1.isig < 0) {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "-";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___998);
+/* Writing concatenation */
+ i__6[0] = lnote, a__4[0] = notexq;
+ i__1 = abs(comtop_1.isig) + 48;
+ chax_(ch__4, (ftnlen)1, &i__1);
+ i__6[1] = 1, a__4[1] = ch__4;
+ i__6[2] = 2, a__4[2] = "}%";
+ s_cat(ch__2, a__4, i__6, &c__3, (ftnlen)82);
+ do_fio(&c__1, ch__2, lnote + 3);
+ e_wsfe();
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___999);
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 14, a__1[1] = "zchangecontext";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 12, a__1[3] = "addspace{-.5";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 15, a__1[5] = "afterruleskip}%";
+ s_cat(ch__9, a__1, i__3, &c__6, (ftnlen)44);
+ do_fio(&c__1, ch__9, (ftnlen)44);
+ e_wsfe();
+ }
+ lnote = 0;
+ }
+ }
+ comnsp_2.flgndb = FALSE_;
+
+/* Done with start-of-block stuff. Begin main loop over voices. */
+
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ i__7 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__7; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ icm = commidi_1.midchan[all_1.iv + kv * 24 - 25];
+
+/* A rather klugey way to set flag for figure in this voice */
+/* Must always check figbass before figchk. */
+
+ if (all_1.figbass) {
+ ivf = 0;
+ if (commvl_1.ivx == 1) {
+ ivf = 1;
+ } else if (commvl_1.ivx == comfig_1.ivxfig2) {
+ ivf = 2;
+ }
+ if (ivf > 0) {
+ all_1.figchk[ivf - 1] = comfig_1.nfigs[ivf - 1] > 0;
+ }
+ }
+ if (commvl_1.ivx > 1) {
+ if (commvl_1.ivx <= all_1.nv) {
+ addstr_(all_1.sepsymq + (all_1.iv - 2), &c__1, soutq,
+ &lsout, (ftnlen)1, (ftnlen)80);
+ } else {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 9, a__2[1] = "nextvoice";
+ s_cat(ch__8, a__2, i__4, &c__2, (ftnlen)10);
+ addstr_(ch__8, &c__10, soutq, &lsout, (ftnlen)10, (
+ ftnlen)80);
+ }
+ }
+ if (comhead_1.ihdht > 0 && commvl_1.ivx == all_1.nv) {
+
+/* Write header. First adjust height if needed to miss barno. */
+
+ if (comask_1.bar1syst && all_1.iline != 1) {
+ comhead_1.ihdht = comsln_1.irzbnd + 15 +
+ comsln_1.isnx;
+ }
+
+/* Add user-defined vertical shift */
+
+ comhead_1.ihdht += comhead_1.ihdvrt;
+ lchead = lenstr_(comhead_1.headrq, &c__80, (ftnlen)80);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 10, a__2[1] = "zcharnote{";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ s_wsfi(&io___1003);
+ do_fio(&c__1, (char *)&comhead_1.ihdht, (ftnlen)sizeof(
+ integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 13, a__1[0] = notexq;
+ i__3[1] = 2, a__1[1] = "}{";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 7, a__1[3] = "bigfont";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 10, a__1[5] = "kern-30pt ";
+ s_cat(notexq, a__1, i__3, &c__6, (ftnlen)79);
+ addstr_(notexq, &c__34, soutq, &lsout, (ftnlen)79, (
+ ftnlen)80);
+/* Writing concatenation */
+ i__4[0] = lchead, a__2[0] = comhead_1.headrq;
+ i__4[1] = 1, a__2[1] = "}";
+ s_cat(ch__10, a__2, i__4, &c__2, (ftnlen)81);
+ i__9 = lchead + 1;
+ addstr_(ch__10, &i__9, soutq, &lsout, lchead + 1, (ftnlen)
+ 80);
+ comhead_1.ihdht = 0;
+ }
+ if (comhead_1.lower && commvl_1.ivx == all_1.nv) {
+ lclow = lenstr_(comhead_1.lowerq, &c__80, (ftnlen)80);
+/* Writing concatenation */
+ i__10[0] = 1, a__6[0] = all_1.sq;
+ i__10[1] = 14, a__6[1] = "zcharnote{-6}{";
+ i__10[2] = 1, a__6[2] = all_1.sq;
+ i__10[3] = 5, a__6[3] = "tempo";
+ i__10[4] = 1, a__6[4] = all_1.sq;
+ i__10[5] = 10, a__6[5] = "kern-10pt ";
+ i__10[6] = lclow, a__6[6] = comhead_1.lowerq;
+ i__10[7] = 1, a__6[7] = "}";
+ s_cat(ch__11, a__6, i__10, &c__8, (ftnlen)113);
+ i__9 = lclow + 33;
+ addstr_(ch__11, &i__9, soutq, &lsout, lclow + 33, (ftnlen)
+ 80);
+ comhead_1.lower = FALSE_;
+ }
+ tnow = tstart[ib];
+ nofirst = TRUE_;
+
+/* Done setting up voice ivx for start of block ib. Loop over notes in voice. */
+
+ i__9 = istop[ib];
+ for (all_1.jn = istart[ib]; all_1.jn <= i__9; ++all_1.jn) {
+ if (all_1.ivxo[all_1.jn - 1] != commvl_1.ivx) {
+ goto L10;
+ }
+ ip = all_1.ipo[all_1.jn - 1];
+
+/* May have problem with not initializing islhgt, so do it here */
+
+ islhgt = 0;
+
+ if (nofirst) {
+ comoct_1.noctup = 0;
+ if (ncmid_(&all_1.iv, &ip) == 23) {
+ comoct_1.noctup = -2;
+ }
+ nofirst = FALSE_;
+ }
+
+/* Check for internal floating figure (before last note of group). */
+
+L12:
+ if (all_1.figbass) {
+ if (commvl_1.ivx == 1 || commvl_1.ivx ==
+ comfig_1.ivxfig2) {
+ ivf = 1;
+ if (commvl_1.ivx > 1) {
+ ivf = 2;
+ }
+ if (all_1.figchk[ivf - 1] && (real)
+ comfig_1.itfig[ivf + (ifig[ivf - 1] << 1)
+ - 3] < tnow - comtol_1.tol) {
+
+/* Bypassed figure location. Backup, place fig, return. */
+
+ offnsk = (tnow - comfig_1.itfig[ivf + (ifig[
+ ivf - 1] << 1) - 3]) / comnsp_2.space[
+ ib - 1];
+ putfig_(&ivf, &ifig[ivf - 1], &offnsk, &
+ all_1.figchk[ivf - 1], soutq, &lsout,
+ (ftnlen)80);
+ goto L12;
+ }
+ }
+ }
+
+/* Put in \sk if needed */
+
+ if (all_1.to[all_1.jn - 1] > tnow + comtol_1.tol) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 2, a__2[1] = "sk";
+ s_cat(ch__12, a__2, i__4, &c__2, (ftnlen)3);
+ addstr_(ch__12, &c__3, soutq, &lsout, (ftnlen)3, (
+ ftnlen)80);
+ tnow += comnsp_2.space[ib - 1];
+ goto L12;
+ }
+
+/* Check for user-defined shifts */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],15)
+ || bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],16)) {
+ putshft_(&commvl_1.ivx, &c_true, soutq, &lsout, (
+ ftnlen)80);
+ }
+L21:
+ if (iaskb[commvl_1.ivx - 1] <= comas1_1.naskb && tnow >
+ comas1_1.task[iaskb[commvl_1.ivx - 1] - 1] -
+ comtol_1.tol) {
+ if (comas1_1.task[iaskb[commvl_1.ivx - 1] - 1] >
+ tstart[ib] - comtol_1.tol) {
+
+/* Insert placeholder for accidental skip */
+
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 8, a__2[1] = "ask ";
+ s_cat(ch__13, a__2, i__4, &c__2, (ftnlen)9);
+ addstr_(ch__13, &c__9, soutq, &lsout, (ftnlen)9, (
+ ftnlen)80);
+ ++comas2_1.nasksys;
+ comas2_1.wasksys[comas2_1.nasksys - 1] =
+ comas1_1.wask[iaskb[commvl_1.ivx - 1] - 1]
+ ;
+ if (comas1_1.wask[iaskb[commvl_1.ivx - 1] - 1] >
+ 0.f) {
+ comas2_1.elasksys[comas2_1.nasksys - 1] =
+ comas1_1.elask[iaskb[commvl_1.ivx - 1]
+ - 1];
+ } else {
+
+/* This is a signal to permit negative ask's. Should really have elask>=0. */
+
+ comas2_1.elasksys[comas2_1.nasksys - 1] =
+ -comas1_1.elask[iaskb[commvl_1.ivx -
+ 1] - 1];
+ }
+ }
+
+/* May have skipped some task's in earlier blocks (due to void voice) */
+
+ ++iaskb[commvl_1.ivx - 1];
+ goto L21;
+ }
+ if (all_1.figbass) {
+ if (commvl_1.ivx == 1 || commvl_1.ivx ==
+ comfig_1.ivxfig2) {
+ ivf = 1;
+ if (commvl_1.ivx > 1) {
+ ivf = 2;
+ }
+ if (all_1.figchk[ivf - 1] && (r__1 =
+ comfig_1.itfig[ivf + (ifig[ivf - 1] << 1)
+ - 3] - tnow, dabs(r__1)) < comtol_1.tol) {
+
+/* Figure on a note. NB: later special check for late figs. */
+
+ putfig_(&ivf, &ifig[ivf - 1], &c_b736, &
+ all_1.figchk[ivf - 1], soutq, &lsout,
+ (ftnlen)80);
+ }
+ }
+ }
+
+/* Check for new clef here. */
+
+ if (isclef && bit_test(all_1.islur[commvl_1.ivx + ip * 24
+ - 25],11)) {
+/* print*,'At clef insertion, ptclef:',ptclef(iv) */
+ if (ptclef[all_1.iv - 1] > 0.f) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 5, a__2[1] = "off{-";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ if (ptclef[all_1.iv - 1] < 9.95f) {
+ s_wsfi(&io___1009);
+ do_fio(&c__1, (char *)&ptclef[all_1.iv - 1], (
+ ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 9;
+ } else {
+ s_wsfi(&io___1010);
+ do_fio(&c__1, (char *)&ptclef[all_1.iv - 1], (
+ ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 10;
+ }
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 3, a__2[1] = "pt}";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote += 3;
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79,
+ (ftnlen)80);
+/* print*,'Just added: ',notexq(1:lnote) */
+ }
+ clefsym_(&all_1.islur[all_1.iv + ip * 24 - 25],
+ notexq, &lnote, &nclef, (ftnlen)79);
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79, (
+ ftnlen)80);
+ if (ptclef[all_1.iv - 1] > 0.f) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 4, a__2[1] = "off{";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ if (ptclef[all_1.iv - 1] < 9.95f) {
+ s_wsfi(&io___1012);
+ do_fio(&c__1, (char *)&ptclef[all_1.iv - 1], (
+ ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 8;
+ } else {
+ s_wsfi(&io___1013);
+ do_fio(&c__1, (char *)&ptclef[all_1.iv - 1], (
+ ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 9;
+ }
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 3, a__2[1] = "pt}";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote += 3;
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79,
+ (ftnlen)80);
+ }
+ }
+
+/* Checking for literal TeX string BEFORE starting beams!! */
+
+ if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],16))
+ {
+ i__11 = comgrace_1.nlit;
+ for (il = 1; il <= i__11; ++il) {
+ if (comgrace_1.iplit[il - 1] == ip &&
+ comgrace_1.ivlit[il - 1] == commvl_1.ivx)
+ {
+ goto L125;
+ }
+/* L124: */
+ }
+ s_wsle(&io___1015);
+ do_lio(&c__9, &c__1, "Problem finding index for lite"
+ "ral string", (ftnlen)40);
+ e_wsle();
+ stop1_();
+L125:
+
+/* Write a type 1 tex string. */
+
+ if (comgrace_1.lenlit[il - 1] < 71) {
+
+/* Add normally */
+
+ addstr_(comgrace_1.litq + (il - 1 << 7), &
+ comgrace_1.lenlit[il - 1], soutq, &lsout,
+ (ftnlen)128, (ftnlen)80);
+ } else {
+
+/* Longer than 71. Write souq, Write string, start new soutq. */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___1016);
+/* Writing concatenation */
+ i__4[0] = lsout, a__2[0] = soutq;
+ i__4[1] = 1, a__2[1] = "%";
+ s_cat(ch__10, a__2, i__4, &c__2, (ftnlen)81);
+ do_fio(&c__1, ch__10, lsout + 1);
+ e_wsfe();
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1017);
+/* Writing concatenation */
+ i__4[0] = comgrace_1.lenlit[il - 1], a__2[0] =
+ comgrace_1.litq + (il - 1 << 7);
+ i__4[1] = 1, a__2[1] = "%";
+ s_cat(ch__14, a__2, i__4, &c__2, (ftnlen)129);
+ do_fio(&c__1, ch__14, comgrace_1.lenlit[il -
+ 1] + 1);
+ e_wsfe();
+ }
+ lsout = 0;
+ }
+ }
+
+/* Arpeggio on a main (non-chordal) note? */
+
+ if (bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],27))
+ {
+/* call putarp(tnow,iv,ip,nolev(ivx,ip),ncmid(iv,ip), */
+ i__11 = ncmid_(&all_1.iv, &ip);
+ putarp_(&tnow, &commvl_1.ivx, &ip, &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &i__11, soutq, &
+ lsout, (ftnlen)80);
+ }
+
+/* See if a beam starts here */
+
+ if (numbms[commvl_1.ivx] > 0 && all_1.ibmcnt[commvl_1.ivx
+ - 1] <= numbms[commvl_1.ivx] && all_1.ibm1[
+ commvl_1.ivx + all_1.ibmcnt[commvl_1.ivx - 1] *
+ 24 - 25] == ip || bit_test(all_1.nacc[
+ commvl_1.ivx + ip * 24 - 25],21)) {
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],24)) {
+
+/* Not a jump start */
+
+ beamstrt_(notexq, &lnote, nornb, ihornb,
+ comnsp_2.space, &squez[1], &ib, (ftnlen)
+ 79);
+
+/* Shift beam start if notehead was shifted */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 -
+ 25],8)) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 5, a__2[1] = "loff{";
+ s_cat(ch__15, a__2, i__4, &c__2, (ftnlen)6);
+ addstr_(ch__15, &c__6, soutq, &lsout, (ftnlen)
+ 6, (ftnlen)80);
+ } else if (bit_test(all_1.ipl[commvl_1.ivx + ip *
+ 24 - 25],9)) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 5, a__2[1] = "roff{";
+ s_cat(ch__15, a__2, i__4, &c__2, (ftnlen)6);
+ addstr_(ch__15, &c__6, soutq, &lsout, (ftnlen)
+ 6, (ftnlen)80);
+ }
+ if (lnote > 0) {
+ addstr_(notexq, &lnote, soutq, &lsout, (
+ ftnlen)79, (ftnlen)80);
+ }
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 -
+ 25],8) || bit_test(all_1.ipl[commvl_1.ivx
+ + ip * 24 - 25],9)) {
+ addstr_("}", &c__1, soutq, &lsout, (ftnlen)1,
+ (ftnlen)80);
+ }
+ } else {
+
+/* Jump start. Set marker for second part of a jump beam. Note ivbj2 was set */
+/* to 0 at end of first part of jump beam */
+
+ combjmp_1.ivbj2 = commvl_1.ivx;
+
+/* Check for xtup since we bypassed beamstrt wherein vxtup is normally set */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],28) && strtmid_1.ixrest[commvl_1.ivx
+ - 1] != 2) {
+ comxtup_1.vxtup[commvl_1.ivx - 1] = TRUE_;
+ }
+
+/* Since beamstrt is not called, and drawbm is normally set there, need to set */
+/* it here. This could cause problems if someone tries a staff-jumping, */
+/* unbarred beam, which I'll deal with when it comes up. */
+
+ comdraw_1.drawbm[commvl_1.ivx - 1] = TRUE_;
+ }
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 0) {
+ all_1.beamon[commvl_1.ivx - 1] = TRUE_;
+ bspend = TRUE_;
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24
+ - 25],24)) {
+ bspend = TRUE_;
+ }
+ }
+ }
+
+/* Setup for chords and possible slurs in chords */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],10)) {
+
+/* There is a chord on this note. Just rerun precrd. Klunky, but saves */
+/* me from tracking down errors instroduced when I moved 1st call */
+/* forward for accidental spacing analysis. */
+
+ if (all_1.beamon[commvl_1.ivx - 1]) {
+ precrd_(&commvl_1.ivx, &ip, &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &all_1.nacc[
+ commvl_1.ivx + ip * 24 - 25], &all_1.ipl[
+ commvl_1.ivx + ip * 24 - 25], &
+ all_1.irest[commvl_1.ivx + ip * 24 - 25],
+ all_1.ulq + (commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25), &c_true, &
+ icashft, (ftnlen)1);
+ } else {
+ i__11 = ncmid_(&all_1.iv, &ip);
+ udqq_(ch__4, (ftnlen)1, &all_1.nolev[commvl_1.ivx
+ + ip * 24 - 25], &i__11, &all_1.islur[
+ commvl_1.ivx + ip * 24 - 25], &
+ commvl_1.nvmx[all_1.iv - 1], &
+ commvl_1.ivx, &all_1.nv);
+ precrd_(&commvl_1.ivx, &ip, &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &all_1.nacc[
+ commvl_1.ivx + ip * 24 - 25], &all_1.ipl[
+ commvl_1.ivx + ip * 24 - 25], &
+ all_1.irest[commvl_1.ivx + ip * 24 - 25],
+ ch__4, &c_true, &icashft, (ftnlen)1);
+ }
+ }
+
+/* Is there slur or grace activity? */
+
+ isgrace = bit_test(all_1.islur[commvl_1.ivx + ip * 24 -
+ 25],4);
+ if (ip > 1) {
+ isgrace = isgrace || bit_test(all_1.ipl[commvl_1.ivx
+ + (ip - 1) * 24 - 25],31);
+ }
+
+/* isgrace if not 1st note in bar and previous note has Way-after grace. */
+
+ if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],0)
+ || isgrace) {
+ if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],
+ 0)) {
+ if (comslur_1.fontslur) {
+
+/* Call routine for non-postscript slurs */
+
+ i__11 = ncmid_(&all_1.iv, &ip);
+ doslur_(&all_1.nolev[commvl_1.ivx + ip * 24 -
+ 25], all_1.isdat1, all_1.isdat2,
+ all_1.isdat3, &all_1.nsdat, &ip, &
+ all_1.iv, &kv, &all_1.nv, &
+ all_1.beamon[commvl_1.ivx - 1], &
+ i__11, soutq, &lsout, all_1.ulq + (
+ commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25), &
+ all_1.islur[commvl_1.ivx + ip * 24 -
+ 25], &all_1.ipl[commvl_1.ivx + ip *
+ 24 - 25], &all_1.iornq[commvl_1.ivx +
+ ip * 24 - 1], &islhgt, &all_1.tnote[
+ comipl2_1.ipl2[commvl_1.ivx + ip * 24
+ - 25] - 1], &all_1.nacc[commvl_1.ivx
+ + ip * 24 - 25], (ftnlen)80, (ftnlen)
+ 1);
+ } else {
+
+/* Postscript slurs */
+
+ i__11 = ncmid_(&all_1.iv, &ip);
+ dopsslur_(&all_1.nolev[commvl_1.ivx + ip * 24
+ - 25], all_1.isdat1, all_1.isdat2,
+ all_1.isdat3, all_1.isdat4, &
+ all_1.nsdat, &ip, &all_1.iv, &kv, &
+ all_1.nv, &all_1.beamon[commvl_1.ivx
+ - 1], &i__11, soutq, &lsout,
+ all_1.ulq + (commvl_1.ivx +
+ all_1.ibmcnt[commvl_1.ivx - 1] * 24 -
+ 25), &all_1.islur[commvl_1.ivx + ip *
+ 24 - 25], &all_1.ipl[commvl_1.ivx +
+ ip * 24 - 25], &all_1.iornq[
+ commvl_1.ivx + ip * 24 - 1], &islhgt,
+ &all_1.tnote[comipl2_1.ipl2[
+ commvl_1.ivx + ip * 24 - 25] - 1], &
+ all_1.nacc[commvl_1.ivx + ip * 24 -
+ 25], (ftnlen)80, (ftnlen)1);
+ }
+ }
+ if (isgrace) {
+
+/* Grace note. */
+
+ iphold = ip;
+ isgrace = FALSE_;
+ if (ip > 1) {
+ isgrace = bit_test(all_1.ipl[commvl_1.ivx + (
+ ip - 1) * 24 - 25],31);
+ }
+ if (isgrace) {
+ --iphold;
+ }
+ isgrace = isgrace || ! bit_test(all_1.ipl[
+ commvl_1.ivx + ip * 24 - 25],31) && !
+ bit_test(all_1.ipl[commvl_1.ivx + ip * 24
+ - 25],29);
+
+/* Place grace now if (a) Way-after from prev note and ip>1 or (b) Pre-grace */
+/* on current note. Do A-grace on current note, and W-grace at barend, later. */
+
+ if (isgrace) {
+ i__11 = ncmid_(&all_1.iv, &ip);
+ i__12 = ncmid_(&all_1.iv, &ip);
+ dograce_(&commvl_1.ivx, &iphold, ptgr, soutq,
+ &lsout, &i__11, &all_1.nacc[
+ commvl_1.ivx + ip * 24 - 25], &ig, &
+ all_1.ipl[commvl_1.ivx + iphold * 24
+ - 25], &c_false, &all_1.beamon[
+ commvl_1.ivx - 1], &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &i__12,
+ &all_1.islur[commvl_1.ivx + ip * 24 -
+ 25], &commvl_1.nvmx[all_1.iv - 1], &
+ all_1.nv, &all_1.ibmcnt[commvl_1.ivx
+ - 1], &all_1.tnote[comipl2_1.ipl2[
+ commvl_1.ivx + ip * 24 - 25] - 1],
+ all_1.ulq, (ftnlen)80, (ftnlen)1);
+ if (comgrace_1.slurg[ig - 1]) {
+
+/* Terminate slur started in dograce. Get direction of main note stem */
+
+ if (! all_1.beamon[commvl_1.ivx - 1]) {
+
+/* Separate note. Get stem direction. */
+
+ i__11 = ncmid_(&all_1.iv, &ip);
+ udqq_(ch__4, (ftnlen)1, &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25],
+ &i__11, &all_1.islur[
+ commvl_1.ivx + ip * 24 - 25],
+ &commvl_1.nvmx[all_1.iv - 1],
+ &commvl_1.ivx, &all_1.nv);
+ stemup = *(unsigned char *)&ch__4[0]
+ == 'u';
+ } else {
+
+/* In a beam */
+
+ stemup = *(unsigned char *)&all_1.ulq[
+ commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25]
+ == 'u';
+ }
+
+/* Stop the shift if whole note */
+
+ stemup = stemup || all_1.tnote[
+ comipl2_1.ipl2[commvl_1.ivx + ip *
+ 24 - 25] - 1] > 63.f;
+ L__1 = ! comgrace_1.upg[ig - 1];
+ i__11 = ncmid_(&all_1.iv, &ip);
+ endslur_(&stemup, &L__1, &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &
+ c__0, &comslur_1.ndxslur, &c__0, &
+ i__11, soutq, &lsout, &
+ comslur_1.fontslur, (ftnlen)80);
+ }
+ }
+ }
+ if (bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],
+ 24)) {
+
+/* Start slur on main note for After- or Way-after-grace. */
+
+/* ???? ndxslur = log2(33554431-listslur) */
+ i__11 = 16777215 - comslur_1.listslur;
+ comslur_1.ndxslur = log2_(&i__11);
+
+/* Get note name */
+
+ i__11 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &all_1.nolev[commvl_1.ivx
+ + ip * 24 - 25], &i__11, (ftnlen)8);
+
+/* Get slur direction */
+
+ *(unsigned char *)slurudq = 'u';
+ if (! all_1.beamon[commvl_1.ivx - 1]) {
+ i__11 = ncmid_(&all_1.iv, &ip);
+ udqq_(ch__4, (ftnlen)1, &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &i__11,
+ &all_1.islur[commvl_1.ivx + ip * 24 -
+ 25], &commvl_1.nvmx[all_1.iv - 1], &
+ commvl_1.ivx, &all_1.nv);
+ if (*(unsigned char *)&ch__4[0] == 'u') {
+ *(unsigned char *)slurudq = 'd';
+ }
+ } else {
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx
+ + all_1.ibmcnt[commvl_1.ivx - 1] * 24
+ - 25] == 'u') {
+ *(unsigned char *)slurudq = 'd';
+ }
+ }
+
+/* c Replace ndxslur by 11-ndxslur when printing only. */
+/* Replace ndxslur by 23-ndxslur when printing only. */
+
+/* if (11-ndxslur .lt. 10) then */
+ if (23 - comslur_1.ndxslur < 10) {
+/* notexq = sq//'islur'//slurudq//chax(59-ndxslur) */
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 5, a__3[1] = "islur";
+ i__5[2] = 1, a__3[2] = slurudq;
+ i__11 = 71 - comslur_1.ndxslur;
+ chax_(ch__4, (ftnlen)1, &i__11);
+ i__5[3] = 1, a__3[3] = ch__4;
+ i__5[4] = lnoten, a__3[4] = noteq;
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ i__11 = lnoten + 8;
+ addstr_(notexq, &i__11, soutq, &lsout, (
+ ftnlen)79, (ftnlen)80);
+ } else if (23 - comslur_1.ndxslur < 20) {
+/* Writing concatenation */
+ i__13[0] = 1, a__7[0] = all_1.sq;
+ i__13[1] = 5, a__7[1] = "islur";
+ i__13[2] = 1, a__7[2] = slurudq;
+ i__13[3] = 2, a__7[3] = "{1";
+ i__11 = 61 - comslur_1.ndxslur;
+ chax_(ch__4, (ftnlen)1, &i__11);
+ i__13[4] = 1, a__7[4] = ch__4;
+ i__13[5] = 1, a__7[5] = "}";
+ i__13[6] = lnoten, a__7[6] = noteq;
+ s_cat(notexq, a__7, i__13, &c__7, (ftnlen)79);
+ i__11 = lnoten + 11;
+ addstr_(notexq, &i__11, soutq, &lsout, (
+ ftnlen)79, (ftnlen)80);
+ } else {
+/* Writing concatenation */
+ i__13[0] = 1, a__7[0] = all_1.sq;
+ i__13[1] = 5, a__7[1] = "islur";
+ i__13[2] = 1, a__7[2] = slurudq;
+ i__13[3] = 2, a__7[3] = "{2";
+ i__11 = 51 - comslur_1.ndxslur;
+ chax_(ch__4, (ftnlen)1, &i__11);
+ i__13[4] = 1, a__7[4] = ch__4;
+ i__13[5] = 1, a__7[5] = "}";
+ i__13[6] = lnoten, a__7[6] = noteq;
+ s_cat(notexq, a__7, i__13, &c__7, (ftnlen)79);
+ i__11 = lnoten + 11;
+ addstr_(notexq, &i__11, soutq, &lsout, (
+ ftnlen)79, (ftnlen)80);
+ }
+/* call setbits(ipl(ivx,ip),4,23,ndxslur) */
+ setbits_(&all_1.ipl[commvl_1.ivx + ip * 24 - 25],
+ &c__5, &c__23, &comslur_1.ndxslur);
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 -
+ 25],31)) {
+ comslur_1.listslur = bit_set(
+ comslur_1.listslur,comslur_1.ndxslur);
+ }
+
+/* Starting slur on W-grace on THIS note. Record ndxslur. */
+
+ }
+ }
+
+/* Process dynamic marks */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],26))
+ {
+ i__11 = ncmid_(&all_1.iv, &ip);
+ L__1 = all_1.nodur[commvl_1.ivx + ip * 24 - 25] >= 64;
+ dodyn_(&commvl_1.ivx, &ip, &all_1.nolev[commvl_1.ivx
+ + ip * 24 - 25], &i__11, &all_1.ipl[
+ commvl_1.ivx + ip * 24 - 25], &all_1.islur[
+ commvl_1.ivx + ip * 24 - 25], &all_1.irest[
+ commvl_1.ivx + ip * 24 - 25], &commvl_1.nvmx[
+ all_1.iv - 1], &all_1.nv, &all_1.beamon[
+ commvl_1.ivx - 1], ihornb, nornb, all_1.ulq, &
+ all_1.ibmcnt[commvl_1.ivx - 1], &L__1, soutq,
+ &lsout, (ftnlen)1, (ftnlen)80);
+ }
+
+/* Check for chord notes. Moved up from below, 10/27/96 so chord orns done 1st. */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],10)) {
+
+/* Need a duration to set type of note head */
+
+/* if (.not. vxtup(ivx)) then */
+
+/* Clumsy test, but vxtup is not set until main note is processed. */
+
+ if (! (comxtup_1.vxtup[commvl_1.ivx - 1] || bit_test(
+ all_1.irest[commvl_1.ivx + ip * 24 - 25],28)))
+ {
+ nodu = all_1.nodur[commvl_1.ivx + ip * 24 - 25];
+/* else if (mult(ivx,ip) .lt. 0) then */
+ } else if ((all_1.mult[commvl_1.ivx + ip * 24 - 25] &
+ 15) - 8 < 0) {
+ nodu = 32;
+ } else {
+ nodu = 16;
+ }
+ i__11 = ncmid_(&all_1.iv, &ip);
+ L__1 = bit_test(all_1.nacc[commvl_1.ivx + ip * 24 -
+ 25],27);
+ docrd_(&commvl_1.ivx, &ip, &nodu, &i__11, &all_1.iv, &
+ tnow, soutq, &lsout, all_1.ulq, &all_1.ibmcnt[
+ commvl_1.ivx - 1], &all_1.islur[commvl_1.ivx
+ + ip * 24 - 25], &commvl_1.nvmx[all_1.iv - 1],
+ &all_1.nv, &all_1.beamon[commvl_1.ivx - 1], &
+ all_1.nolev[commvl_1.ivx + ip * 24 - 25],
+ ihornb, nornb, &all_1.stemlen, &L__1, &
+ all_1.nacc[commvl_1.ivx + ip * 24 - 25], (
+ ftnlen)80, (ftnlen)1);
+ }
+
+/* Now that chords are done, add stuff to midi file */
+
+/* if (ismidi) call addmidi(icm,nolev(ivx,ip), */
+ if (commidi_1.ismidi) {
+ i__11 = all_1.nolev[commvl_1.ivx + ip * 24 - 25] -
+ cominsttrans_1.itransamt[
+ cominsttrans_1.instno[all_1.iv - 1] - 1];
+ i__12 = all_1.nacc[commvl_1.ivx + ip * 24 - 25] & 7;
+ L__1 = bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],0);
+ addmidi_(&icm, &i__11, &i__12, &comtop_1.isig, &
+ all_1.tnote[comipl2_1.ipl2[commvl_1.ivx + ip *
+ 24 - 25] - 1], &L__1, &c_false);
+ }
+
+
+/* Check for breath or caesura */
+
+ if (bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],28))
+ {
+ putcb_(&commvl_1.ivx, &ip, notexq, &lnote, (ftnlen)79)
+ ;
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79, (
+ ftnlen)80);
+ }
+
+/* Check for main-note ornaments. ')' on dotted notes go in with note, not here. */
+/* Bits 0-13: (stmgx+Tupf._) ; 14: Down fermata, was F */
+/* 15: Trill w/o "tr", was U , 16-18 edit. accid., 19-21 TBD */
+
+ isacc = (all_1.iornq[commvl_1.ivx + ip * 24 - 1] &
+ 4194287) > 0;
+
+/* isacc=.true. if any ornament except segno */
+
+ if (bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],13)
+ && all_1.nodur[commvl_1.ivx + ip * 24 - 25] > 0) {
+
+/* If ). is only ornament, bypass. If with others, temporarirly zero the bit. */
+
+ i__11 = log2_(&all_1.nodur[commvl_1.ivx + ip * 24 -
+ 25]);
+ if (pow_ii(&c__2, &i__11) != all_1.nodur[commvl_1.ivx
+ + ip * 24 - 25]) {
+ if ((all_1.iornq[commvl_1.ivx + ip * 24 - 1] &
+ 516079) == 0) {
+
+/* ). is the only non-segno ornament */
+
+ isacc = FALSE_;
+ } else {
+
+/* There are other ornaments in addition */
+
+ rpndot = TRUE_;
+ all_1.iornq[commvl_1.ivx + ip * 24 - 1] =
+ bit_clear(all_1.iornq[commvl_1.ivx +
+ ip * 24 - 1],13);
+ }
+ }
+ }
+ if (isacc && ! comcwrf_1.cwrferm[commvl_1.ivx - 1]) {
+
+/* Check for centered whole-bar rest with fermata (bits 10 or 14). */
+
+ if ((all_1.iornq[commvl_1.ivx + ip * 24 - 1] & 17408)
+ > 0 && bit_test(all_1.irest[commvl_1.ivx + ip
+ * 24 - 25],0) && all_1.nodur[commvl_1.ivx +
+ ip * 24 - 25] == all_1.lenbar && ! (
+ all_1.firstgulp && all_1.ibar == 1 &&
+ all_1.lenb0 > 0)) {
+ comcwrf_1.cwrferm[commvl_1.ivx - 1] = TRUE_;
+ goto L30;
+ }
+ i__11 = ncmid_(&all_1.iv, &ip);
+ L__1 = bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25]
+ ,10);
+ putorn_(&all_1.iornq[commvl_1.ivx + ip * 24 - 1], &
+ all_1.nolev[commvl_1.ivx + ip * 24 - 25], &
+ all_1.nolev[commvl_1.ivx + ip * 24 - 25], &
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25],
+ nornb, all_1.ulq, &all_1.ibmcnt[commvl_1.ivx
+ - 1], &commvl_1.ivx, &i__11, &all_1.islur[
+ commvl_1.ivx + ip * 24 - 25], &commvl_1.nvmx[
+ all_1.iv - 1], &all_1.nv, ihornb, &
+ all_1.stemlen, notexq, &lnote, &ip, &islhgt, &
+ all_1.beamon[commvl_1.ivx - 1], &L__1, (
+ ftnlen)1, (ftnlen)79);
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79, (
+ ftnlen)80);
+ }
+ if (rpndot) {
+ all_1.iornq[commvl_1.ivx + ip * 24 - 1] = bit_set(
+ all_1.iornq[commvl_1.ivx + ip * 24 - 1],13);
+ rpndot = FALSE_;
+ }
+L30:
+
+/* Check for main note accidental */
+
+ if ((all_1.nacc[commvl_1.ivx + ip * 24 - 25] & 3) > 0 && !
+ bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],
+ 17)) {
+ ihshft = igetbits_(&all_1.nacc[commvl_1.ivx + ip * 24
+ - 25], &c__7, &c__10);
+ if (ihshft != 0) {
+ ihshft += -107;
+ }
+ if (! bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],
+ 10) && bit_test(all_1.ipl[commvl_1.ivx + ip *
+ 24 - 25],8)) {
+ ihshft += -20;
+ }
+
+/* Not a chord, and left-shifted main note, so left-shift accid */
+
+ i__11 = igetbits_(&all_1.nacc[commvl_1.ivx + ip * 24
+ - 25], &c__6, &c__4);
+ i__12 = ncmid_(&all_1.iv, &ip);
+ L__1 = bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],31);
+ doacc_(&ihshft, &i__11, notexq, &lnote, &all_1.nacc[
+ commvl_1.ivx + ip * 24 - 25], &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &i__12, &L__1, (
+ ftnlen)79);
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79, (
+ ftnlen)80);
+ }
+
+/* Lower dot for lower-voice notes. Conditions are: */
+/* 1. Dotted time value */
+/* 2. Lower voice of two */
+/* 3. Note is on a line */
+/* 4. Not a rest */
+/* . 5. Flag (lowdot) is set to true */
+/* 6. Not in an xtuplet */
+
+ if (comarp_1.lowdot && commvl_1.nvmx[all_1.iv - 1] == 2 &&
+ commvl_1.ivx <= all_1.nv && all_1.nodur[
+ commvl_1.ivx + ip * 24 - 25] != 0) {
+ i__11 = log2_(&all_1.nodur[commvl_1.ivx + ip * 24 -
+ 25]);
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],0) && pow_ii(&c__2, &i__11) !=
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] && (
+ all_1.nolev[commvl_1.ivx + ip * 24 - 25] -
+ ncmid_(&commvl_1.ivx, &ip)) % 2 == 0) {
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],19)) {
+
+/* Note already in movdot list. Drop by 2. */
+
+ comcc_1.updot[commvl_1.ivx + (comcc_1.ndotmv[
+ commvl_1.ivx - 1] + 1) * 24 - 25] +=
+ -2.f;
+ } else {
+
+/* Not in list so just move it right now */
+
+ i__11 = igetbits_(&all_1.islur[commvl_1.ivx +
+ ip * 24 - 25], &c__1, &c__3);
+ dotmov_(&c_b735, &c_b736, soutq, &lsout, &
+ i__11, (ftnlen)80);
+ }
+ }
+ }
+
+/* Check for dotted notes with moved dots */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],19))
+ {
+ ++comcc_1.ndotmv[commvl_1.ivx - 1];
+ i__11 = igetbits_(&all_1.islur[commvl_1.ivx + ip * 24
+ - 25], &c__1, &c__3);
+ dotmov_(&comcc_1.updot[commvl_1.ivx + comcc_1.ndotmv[
+ commvl_1.ivx - 1] * 24 - 25], &comcc_1.rtdot[
+ commvl_1.ivx + comcc_1.ndotmv[commvl_1.ivx -
+ 1] * 24 - 25], soutq, &lsout, &i__11, (ftnlen)
+ 80);
+ }
+
+/* Stemlength shortening? */
+
+ if (bit_test(all_1.mult[commvl_1.ivx + ip * 24 - 25],27))
+ {
+ stemshort = 4.66f - (igetbits_(&all_1.mult[
+ commvl_1.ivx + ip * 24 - 25], &c__3, &c__28)
+ + 1) * .667f * .5f;
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 11, a__2[1] = "stemlength{";
+ s_cat(ch__3, a__2, i__4, &c__2, (ftnlen)12);
+ addstr_(ch__3, &c__12, soutq, &lsout, (ftnlen)12, (
+ ftnlen)80);
+ s_wsfi(&io___1024);
+ do_fio(&c__1, (char *)&stemshort, (ftnlen)sizeof(real)
+ );
+ e_wsfi();
+/* Writing concatenation */
+ i__4[0] = 4, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "}";
+ s_cat(ch__16, a__2, i__4, &c__2, (ftnlen)5);
+ addstr_(ch__16, &c__5, soutq, &lsout, (ftnlen)5, (
+ ftnlen)80);
+ } else if (ip > 1) {
+ if (bit_test(all_1.mult[commvl_1.ivx + (ip - 1) * 24
+ - 25],27)) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 16, a__2[1] = "stemlength{4.66}";
+ s_cat(ch__5, a__2, i__4, &c__2, (ftnlen)17);
+ addstr_(ch__5, &c__17, soutq, &lsout, (ftnlen)17,
+ (ftnlen)80);
+ }
+
+/* Cancel shortening. Looks like it gets automatically restored if new inst. or */
+/* new line, so no need to worry about affecting other lines */
+
+ }
+
+/* Zero out slur-height marker for raising ornaments */
+
+ islhgt = 0;
+
+/* Now start with spacing notes. Is a beam start pending? */
+
+ if (bspend && all_1.ibm2[commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25] > all_1.ibm1[
+ commvl_1.ivx + all_1.ibmcnt[commvl_1.ivx - 1] *
+ 24 - 25]) {
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 4) {
+
+/* Special path for single note at end of otherwise beamed xtup */
+
+ strtmid_1.ixrest[commvl_1.ivx - 1] = 0;
+ } else {
+ beamn1_(notexq, &lnote, (ftnlen)79);
+ }
+ bspend = FALSE_;
+
+/* Is a beam ending? */
+
+ } else if (numbms[commvl_1.ivx] > 0 && all_1.ibmcnt[
+ commvl_1.ivx - 1] <= numbms[commvl_1.ivx] && (
+ all_1.ibm2[commvl_1.ivx + all_1.ibmcnt[
+ commvl_1.ivx - 1] * 24 - 25] == ip || bit_test(
+ all_1.nacc[commvl_1.ivx + ip * 24 - 25],20))) {
+/* * .and. ibm2(ivx,ibmcnt(ivx)) .eq. ip) then */
+ if (bspend) {
+
+/* Must be a single-note ending of a jump-beam */
+
+ bspend = FALSE_;
+ }
+ beamend_(notexq, &lnote, (ftnlen)79);
+ if (! bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25]
+ ,20)) {
+ comxtup_1.vxtup[commvl_1.ivx - 1] = FALSE_;
+ nornb[commvl_1.ivx - 1] = 0;
+ ++all_1.ibmcnt[commvl_1.ivx - 1];
+ all_1.beamon[commvl_1.ivx - 1] = FALSE_;
+ }
+
+/* Or if we're in the middle of a beam */
+
+ } else if (numbms[commvl_1.ivx] > 0 && all_1.beamon[
+ commvl_1.ivx - 1]) {
+ beamid_(notexq, &lnote, (ftnlen)79);
+
+/* Or whole-bar rest */
+
+ } else if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],0) && all_1.nodur[commvl_1.ivx + ip * 24 - 25]
+ == all_1.lenbar && ! (all_1.firstgulp &&
+ all_1.ibar == 1 && all_1.lenb0 > 0) && ! bit_test(
+ all_1.irest[commvl_1.ivx + ip * 24 - 25],25) && !
+ bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],
+ 29)) {
+
+/* Rule out pickup bar, blank rests, non-centered. Remember islur b19=> rp */
+
+ cwrest[commvl_1.ivx] = TRUE_;
+ iscwr = TRUE_;
+ notex_(cwrq + (commvl_1.ivx - 1) * 79, &lcwr[
+ commvl_1.ivx - 1], (ftnlen)79);
+ tnow += all_1.lenbar;
+ goto L10;
+ } else if (strtmid_1.ixrest[commvl_1.ivx - 1] == 0) {
+
+/* Before writing note or rest, check for keyboard rest height adjustment. */
+/* Conditions are 0. This is a non-blank rest */
+/* 1. kbdrests = .true. */
+/* 2. There are two voices on the staff */
+/* 3. No user-def height adjustments have been applied (nolev<50) */
+/* c 4. Not last note in bar */
+/* c 5. Followed by note (add better test later) */
+
+ if (comkbdrests_1.kbdrests && bit_test(all_1.irest[
+ commvl_1.ivx + ip * 24 - 25],0) && ! bit_test(
+ all_1.islur[commvl_1.ivx + ip * 24 - 25],29)
+ && commvl_1.nvmx[all_1.iv - 1] == 2 &&
+ all_1.nolev[commvl_1.ivx + ip * 24 - 25] <=
+ 50) {
+/* * nolev(ivx,ip).le.50 .and. ip.ne.nn(ivx) */
+/* * .and. .not.(btest(irest(ivx,ip+1),0))) then */
+
+/* Get reference level: next following note if no intervening blank rests, */
+/* otherwise next prior note. */
+
+/* levnext = nolev(ivx,ip+1)-ncmid(iv,ip)+4 ! Relative to bottom line */
+ if (ip != all_1.nn[commvl_1.ivx - 1] && !
+ bit_test(all_1.iornq[commvl_1.ivx + ip *
+ 24 - 1],30)) {
+
+/* Not the last note and not "look-left" for level */
+
+ i__11 = all_1.nn[commvl_1.ivx - 1];
+ for (kkp = ip + 1; kkp <= i__11; ++kkp) {
+ if (bit_test(all_1.islur[commvl_1.ivx +
+ kkp * 24 - 25],29)) {
+ goto L4;
+ }
+ if (! bit_test(all_1.irest[commvl_1.ivx +
+ kkp * 24 - 25],0)) {
+ levnext = all_1.nolev[commvl_1.ivx +
+ kkp * 24 - 25] - ncmid_(&
+ all_1.iv, &kkp) + 4;
+/* Relativ */
+ goto L9;
+ }
+/* L8: */
+ }
+ }
+L4:
+
+/* If here, there were no following notes or came to a blank rest, or */
+/* "look-left" option set. So look before */
+
+ if (ip == 1) {
+ goto L2;
+ }
+/* Get out if this is the first no */
+ for (kkp = ip - 1; kkp >= 1; --kkp) {
+ if (! bit_test(all_1.irest[commvl_1.ivx + kkp
+ * 24 - 25],0)) {
+ levnext = all_1.nolev[commvl_1.ivx + kkp *
+ 24 - 25] - ncmid_(&all_1.iv, &
+ kkp) + 4;
+/* Relative */
+ goto L9;
+ }
+/* L3: */
+ }
+ goto L2;
+/* Pretty odd, should never be here, but get out */
+L9:
+
+/* Find note in other voice at same time */
+
+ i__11 = commvl_1.ivx - all_1.nv - 1;
+ iupdown = i_sign(&c__1, &i__11);
+ ivother = commvl_1.ivmx[all_1.iv + (3 - iupdown) /
+ 2 * 24 - 25];
+ tother = 0.f;
+ i__11 = all_1.nib[ivother + all_1.ibar * 24 - 25];
+ for (kkp = 1; kkp <= i__11; ++kkp) {
+ if ((r__1 = tother - tnow, dabs(r__1)) <
+ comtol_1.tol) {
+ goto L6;
+ }
+ tother += all_1.nodur[ivother + kkp * 24 - 25]
+ ;
+/* L5: */
+ }
+
+/* If here, then no note starts in other voice at same time, so set default */
+
+ levother = -iupdown * 50;
+ goto L7;
+L6:
+
+/* If here, have just identified a simultaneous note or rest in other voice */
+
+ if (! bit_test(all_1.irest[ivother + kkp * 24 -
+ 25],0)) {
+/* Not a rest, */
+ levother = all_1.nolev[ivother + kkp * 24 -
+ 25] - ncmid_(&all_1.iv, &ip) + 4;
+ } else {
+ if (all_1.nodur[ivother + kkp * 24 - 25] ==
+ all_1.nodur[commvl_1.ivx + ip * 24 -
+ 25]) {
+
+/* Rest in other voice has same duration, get out (so defualt spacing is used) */
+
+ goto L2;
+ }
+ levother = -iupdown * 50;
+ }
+L7:
+ indxr = log2_(&all_1.nodur[commvl_1.ivx + ip * 24
+ - 25]) + 1;
+ if (iupdown < 0) {
+ levtop = comkbdrests_1.levtopr[indxr - 1];
+ iraise1 = levother - levtop - 3;
+/* Based on other note */
+ iraise2 = levnext - levtop;
+/* Based on following note */
+ if (indxr == 5 && levnext < 1) {
+ iraise2 += 2;
+ }
+ iraise = min(iraise1,iraise2);
+ if ((iraise + 50) % 2 == 1 && iraise + levtop
+ > -1) {
+ --iraise;
+ }
+ } else {
+ levbot = comkbdrests_1.levbotr[indxr - 1];
+ iraise1 = levother - levbot + 3;
+ iraise2 = levnext - levbot;
+ if (indxr == 5 && levnext > 8) {
+ --iraise2;
+ }
+ iraise = max(iraise1,iraise2);
+ if ((iraise + 50) % 2 == 1 && iraise + levbot
+ <= 9) {
+ --iraise;
+ }
+ }
+ all_1.nolev[commvl_1.ivx + ip * 24 - 25] = iraise
+ + 100;
+ }
+L2:
+
+/* Write a separate note or rest */
+
+ notex_(notexq, &lnote, (ftnlen)79);
+ }
+
+/* Right offset? This may cause trouble */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],8)) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 5, a__2[1] = "loff{";
+ s_cat(ch__15, a__2, i__4, &c__2, (ftnlen)6);
+ addstr_(ch__15, &c__6, soutq, &lsout, (ftnlen)6, (
+ ftnlen)80);
+ } else if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25]
+ ,9)) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 5, a__2[1] = "roff{";
+ s_cat(ch__15, a__2, i__4, &c__2, (ftnlen)6);
+ addstr_(ch__15, &c__6, soutq, &lsout, (ftnlen)6, (
+ ftnlen)80);
+ }
+ if (strtmid_1.ixrest[commvl_1.ivx - 1] == 0 && lnote > 0)
+ {
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79, (
+ ftnlen)80);
+ }
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],8) ||
+ bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],9)
+ ) {
+ addstr_("}", &c__1, soutq, &lsout, (ftnlen)1, (ftnlen)
+ 80);
+ }
+
+/* Terminate user-defined offsets. Fix format */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],15)
+ || bit_test(all_1.irest[commvl_1.ivx + ip * 24 -
+ 25],17)) {
+ putshft_(&commvl_1.ivx, &c_false, soutq, &lsout, (
+ ftnlen)80);
+ }
+
+/* Deal with After- and Way-after-graces. First, if end of bar, compute space */
+/* needed since it wasn't done during general ask-checks. If extra space is */
+/* rq'd, convert GW to GA. Therefore GW at end of bar never needs extra sp. */
+/* But will still need to add extra space as hardspace. */
+
+ if (ip == all_1.nn[commvl_1.ivx - 1] && (bit_test(
+ all_1.ipl[commvl_1.ivx + ip * 24 - 25],31) ||
+ bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],
+ 29))) {
+ i__11 = comgrace_1.ngrace;
+ for (ig = 1; ig <= i__11; ++ig) {
+ if (comgrace_1.ipg[ig - 1] == ip &&
+ comgrace_1.ivg[ig - 1] == commvl_1.ivx) {
+ goto L78;
+ }
+/* L77: */
+ }
+ s_wsle(&io___1039);
+ do_lio(&c__9, &c__1, "Problem finding grace index "
+ "at \"do 77\"", (ftnlen)38);
+ e_wsle();
+ stop1_();
+L78:
+
+/* Get elemskip to end of bar. WON'T WORK IF XTUPS !! */
+
+ esk = 0.f;
+ i__11 = comnsp_2.nb;
+ for (iib = ib; iib <= i__11; ++iib) {
+ if (iib == ib) {
+ itleft = i_nint(&all_1.to[comipl2_1.ipl2[
+ commvl_1.ivx + ip * 24 - 25] - 1]);
+ } else {
+ itleft = i_nint(&tstart[ib]);
+ }
+ if (iib < comnsp_2.nb) {
+ itright = i_nint(&tstart[iib + 1]);
+ } else {
+ itright = all_1.lenbar;
+ }
+ esk += feon_(&comnsp_2.space[ib - 1]) * (itright
+ - itleft) / comnsp_2.space[ib - 1];
+/* L40: */
+ }
+ ptsavail = comask_1.poenom * esk - comask_1.wheadpt;
+ if (comgrace_1.nng[ig - 1] == 1) {
+ wgr = spfacs_1.grafac;
+ } else {
+ wgr = comgrace_1.nng[ig - 1] * spfacs_1.emgfac;
+ i__11 = comgrace_1.nng[ig - 1];
+ for (ing = 1; ing <= i__11; ++ing) {
+ if (comgrace_1.naccg[comgrace_1.ngstrt[ig - 1]
+ - 1 + ing - 1] > 0) {
+ wgr += spfacs_1.acgfac;
+ }
+/* L41: */
+ }
+ }
+ ptgr[ig - 1] = wgr * comask_1.wheadpt;
+ ptsneed = (wgr + .5f) * comask_1.wheadpt;
+ ptsndg[commvl_1.ivx - 1] = 0.f;
+ if (ptsavail < ptsneed) {
+ ptsndg[commvl_1.ivx - 1] = ptsneed;
+ eskndg[commvl_1.ivx - 1] = esk;
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 -
+ 25],31)) {
+
+/* Convert GW to GA */
+
+ all_1.ipl[commvl_1.ivx + ip * 24 - 25] =
+ bit_set(bit_clear(all_1.ipl[
+ commvl_1.ivx + ip * 24 - 25],31),29);
+ }
+ }
+ }
+
+/* Check for GA */
+
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],29)) {
+ i__11 = ncmid_(&all_1.iv, &ip);
+ dograce_(&commvl_1.ivx, &ip, ptgr, soutq, &lsout, &
+ i__11, &all_1.nacc[commvl_1.ivx + ip * 24 -
+ 25], &ig, &all_1.ipl[commvl_1.ivx + ip * 24 -
+ 25], &c_false, &c_false, &c__0, &c__0, &c__0,
+ &c__0, &c__0, &c__0, &c_b736, all_1.ulq, (
+ ftnlen)80, (ftnlen)1);
+ }
+
+/* Update running time */
+
+ tnow += comnsp_2.space[ib - 1];
+L10:
+ ;
+ }
+
+/* Have finished last note in this voice and block */
+
+ r__1 = all_1.to[istop[ib] - 1] + comnsp_2.space[ib - 1];
+ itendb = i_nint(&r__1);
+ if (all_1.figbass && commvl_1.ivx == 1 || commvl_1.ivx ==
+ comfig_1.ivxfig2) {
+ ivf = 1;
+ if (commvl_1.ivx > 1) {
+ ivf = 2;
+ }
+L17:
+ if (all_1.figchk[ivf - 1] && comfig_1.itfig[ivf + (ifig[
+ ivf - 1] << 1) - 3] < itendb) {
+
+/* There's at least one figure left. offnsk could be <0 */
+
+ offnsk = (tnow - comfig_1.itfig[ivf + (ifig[ivf - 1]
+ << 1) - 3]) / comnsp_2.space[ib - 1];
+ putfig_(&ivf, &ifig[ivf - 1], &offnsk, &all_1.figchk[
+ ivf - 1], soutq, &lsout, (ftnlen)80);
+ goto L17;
+ }
+ }
+
+/* Check for flag, dot, or upstem on last note of bar. */
+
+ if (ib == comnsp_2.nb) {
+ ip = all_1.ipo[comipl2_1.ipl2[commvl_1.ivx + all_1.nn[
+ commvl_1.ivx - 1] * 24 - 25] - 1];
+ comnsp_2.flgndv[commvl_1.ivx - 1] = 0.f;
+ if ((r__1 = all_1.tnote[comipl2_1.ipl2[commvl_1.ivx + ip *
+ 24 - 25] - 1] - comnsp_2.space[ib - 1], dabs(
+ r__1)) < comtol_1.tol) {
+ if (comnsp_2.space[ib - 1] < 16.f - comtol_1.tol) {
+
+/* Note in last space, smaller than a quarter note. */
+
+ i__9 = ncmid_(&all_1.iv, &ip);
+ udqq_(ch__4, (ftnlen)1, &all_1.nolev[commvl_1.ivx
+ + ip * 24 - 25], &i__9, &all_1.islur[
+ commvl_1.ivx + ip * 24 - 25], &
+ commvl_1.nvmx[all_1.iv - 1], &
+ commvl_1.ivx, &all_1.nv);
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24
+ - 25],0) && *(unsigned char *)&ch__4[0] ==
+ 'u' || isdotted_(all_1.nodur, &
+ commvl_1.ivx, &ip)) {
+
+/* Upstem non-rest, or dotted */
+
+/* Computing MAX */
+ i__9 = 1, i__11 = numbms[commvl_1.ivx];
+ if (numbms[commvl_1.ivx] > 0 && ip ==
+ all_1.ibm2[commvl_1.ivx + max(i__9,
+ i__11) * 24 - 25] && ! isdotted_(
+ all_1.nodur, &commvl_1.ivx, &ip)) {
+
+/* In beam and not dotted, so use smaller space */
+
+ comnsp_2.flgndv[commvl_1.ivx - 1] =
+ spfacs_1.upstmfac;
+ } else {
+ comnsp_2.flgndv[commvl_1.ivx - 1] =
+ spfacs_1.flagfac;
+ }
+ }
+ } else {
+
+/* Last space, nonflagged (no beam) only worry dot or up */
+
+ if (isdotted_(all_1.nodur, &commvl_1.ivx, &ip)) {
+ comnsp_2.flgndv[commvl_1.ivx - 1] =
+ spfacs_1.flagfac;
+ } else /* if(complicated condition) */ {
+ i__9 = ncmid_(&all_1.iv, &ip);
+ udqq_(ch__4, (ftnlen)1, &all_1.nolev[
+ commvl_1.ivx + ip * 24 - 25], &i__9, &
+ all_1.islur[commvl_1.ivx + ip * 24 -
+ 25], &commvl_1.nvmx[all_1.iv - 1], &
+ commvl_1.ivx, &all_1.nv);
+ if (all_1.tnote[comipl2_1.ipl2[commvl_1.ivx +
+ ip * 24 - 25] - 1] < 64.f && *(
+ unsigned char *)&ch__4[0] == 'u') {
+
+/* Upstem on last note , non-flagged */
+
+ comnsp_2.flgndv[commvl_1.ivx - 1] =
+ spfacs_1.upstmfac;
+ }
+ }
+ }
+ }
+
+/* Check for right-shifted chordal note */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],20))
+ {
+ comnsp_2.flgndv[commvl_1.ivx - 1] = spfacs_1.rtshfac;
+ }
+ comnsp_2.flgndb = comnsp_2.flgndb || comnsp_2.flgndv[
+ commvl_1.ivx - 1] > 0.f;
+ if (commidi_1.ismidi) {
+
+/* For midi, set flags for accidentals on last note of bar. Assume they affect */
+/* first note of next bar whether or not tied. */
+/* Note has already been done, so next entry into addmidi is 1st in new bar. */
+/* First do main note, then chord notes */
+
+/* Gyrations needed to account for multi-bar tied full-bar notes? */
+/* c Old old lbacc(icm) = iand(nacc(ivx,ip),7) */
+/* New old if (lbacc(icm).eq.0) lbacc(icm) = iand(nacc(ivx,ip),7) */
+
+ if ((all_1.nacc[commvl_1.ivx + ip * 24 - 25] & 7) > 0)
+ {
+
+/* Explicit accidental on last main note in bar */
+
+ i__9 = comslm_1.naccbl[icm];
+ for (kacc = 1; kacc <= i__9; ++kacc) {
+ if (comslm_1.laccbl[icm + kacc * 25 - 25] ==
+ all_1.nolev[commvl_1.ivx + ip * 24 -
+ 25]) {
+ goto L56;
+ }
+/* L55: */
+ }
+ ++comslm_1.naccbl[icm];
+ comslm_1.laccbl[icm + comslm_1.naccbl[icm] * 25 -
+ 25] = all_1.nolev[commvl_1.ivx + ip * 24
+ - 25];
+ i__9 = all_1.nacc[commvl_1.ivx + ip * 24 - 25] &
+ 7;
+ comslm_1.jaccbl[icm + comslm_1.naccbl[icm] * 25 -
+ 25] = iashft_(&i__9);
+ }
+L56:
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 - 25],
+ 10) && commidi_1.crdacc) {
+ i__9 = comtrill_1.icrd2;
+ for (icrd = comtrill_1.icrd1; icrd <= i__9;
+ ++icrd) {
+ iacc = igetbits_(&comtrill_1.icrdat[icrd - 1],
+ &c__3, &c__20);
+ if (iacc > 0) {
+
+/* Explicit accidental on chord note at end of bar */
+
+ nolevc = igetbits_(&comtrill_1.icrdat[
+ icrd - 1], &c__7, &c__12);
+ i__11 = comslm_1.naccbl[icm];
+ for (kacc = 1; kacc <= i__11; ++kacc) {
+ if (comslm_1.laccbl[icm + kacc * 25 -
+ 25] == nolevc) {
+ goto L59;
+ }
+/* L58: */
+ }
+ ++comslm_1.naccbl[icm];
+ comslm_1.laccbl[icm + comslm_1.naccbl[icm]
+ * 25 - 25] = nolevc;
+ comslm_1.jaccbl[icm + comslm_1.naccbl[icm]
+ * 25 - 25] = iashft_(&iacc);
+ }
+L59:
+/* L57: */
+ ;
+ }
+ }
+/* if (lbacc(icm).eq.0 .and. accb4(icm)) then */
+ i__9 = commidi_1.naccim[icm];
+ for (kacc = 1; kacc <= i__9; ++kacc) {
+
+/* If naccim(icm)>0, */
+/* possible implicit accidental from earlier in the bar. Check for prior accid */
+/* in this bar at relevant note levels, main and chord notes. Only act if no */
+/* explicit action from just above. Assuming any accid on last note in bar, */
+/* either explicit or implicit, has same effect on 1st note of next bar. */
+
+ if (all_1.nolev[commvl_1.ivx + ip * 24 - 25] ==
+ commidi_1.laccim[icm + kacc * 25 - 25]) {
+ goto L66;
+ }
+ if (bit_test(all_1.ipl[commvl_1.ivx + ip * 24 -
+ 25],10)) {
+ i__11 = comtrill_1.icrd2;
+ for (icrd = comtrill_1.icrd1; icrd <= i__11;
+ ++icrd) {
+ if ((lbit_shift(comtrill_1.icrdat[icrd -
+ 1], (ftnlen)-12) & 127) ==
+ commidi_1.laccim[icm + kacc * 25
+ - 25]) {
+ goto L66;
+ }
+/* L67: */
+ }
+ }
+ goto L65;
+L66:
+
+/* So far we know there is a main or chord note at level laccim(icm,kacc). So */
+/* it will get a bl-accid if it didn't just already get one. */
+
+ i__11 = comslm_1.naccbl[icm];
+ for (macc = 1; macc <= i__11; ++macc) {
+ if (comslm_1.laccbl[icm + macc * 25 - 25] ==
+ commidi_1.laccim[icm + kacc * 25 - 25]
+ ) {
+ goto L65;
+ }
+/* L68: */
+ }
+ ++comslm_1.naccbl[icm];
+ comslm_1.laccbl[icm + comslm_1.naccbl[icm] * 25 -
+ 25] = commidi_1.laccim[icm + kacc * 25 -
+ 25];
+ comslm_1.jaccbl[icm + comslm_1.naccbl[icm] * 25 -
+ 25] = commidi_1.jaccim[icm + kacc * 25 -
+ 25];
+L65:
+ ;
+ }
+ }
+ }
+/* L11: */
+ }
+ }
+
+/* Close out the notes group */
+
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 2, a__2[1] = "en";
+ s_cat(ch__12, a__2, i__4, &c__2, (ftnlen)3);
+ addstr_(ch__12, &c__3, soutq, &lsout, (ftnlen)3, (ftnlen)80);
+ if (comlast_1.islast && lsout > 0) {
+ s_wsfe(&io___1052);
+/* Writing concatenation */
+ i__4[0] = lsout, a__2[0] = soutq;
+ i__4[1] = 1, a__2[1] = "%";
+ s_cat(ch__10, a__2, i__4, &c__2, (ftnlen)81);
+ do_fio(&c__1, ch__10, lsout + 1);
+ e_wsfe();
+ }
+/* L16: */
+ }
+
+/* Check for way-after graces at end of bar. We could not link these to notes */
+/* as in midbar since there is no note following grace! Also, set flag if */
+/* hardspace is needed. Also, save nvmx, ivmx for use in space checks on reloop. */
+
+ isgrace = FALSE_;
+ i__2 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__2; ++all_1.iv) {
+ comnsp_2.nvmxsav[all_1.iv - 1] = commvl_1.nvmx[all_1.iv - 1];
+ i__7 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__7; ++kv) {
+ comnsp_2.ivmxsav[all_1.iv + kv * 24 - 25] = commvl_1.ivmx[
+ all_1.iv + kv * 24 - 25];
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ comnsp_2.ptsgnd = 0.f;
+ if ((bit_test(all_1.ipl[commvl_1.ivx + all_1.nn[commvl_1.ivx - 1]
+ * 24 - 25],29) || bit_test(all_1.ipl[commvl_1.ivx +
+ all_1.nn[commvl_1.ivx - 1] * 24 - 25],31)) && ptsndg[
+ commvl_1.ivx - 1] > 0.f) {
+ comnsp_2.flgndb = TRUE_;
+ if (ptsndg[commvl_1.ivx - 1] > comnsp_2.ptsgnd) {
+ comnsp_2.ptsgnd = ptsndg[commvl_1.ivx - 1];
+ comnsp_2.eskgnd = eskndg[commvl_1.ivx - 1];
+ }
+ }
+ if (bit_test(all_1.ipl[commvl_1.ivx + all_1.nn[commvl_1.ivx - 1] *
+ 24 - 25],31)) {
+
+/* This voice has a way-after grace here at end of bar */
+
+ if (! isgrace) {
+
+/* This is the first one, so set up the string */
+
+ isgrace = TRUE_;
+ ivlast = 1;
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 6, a__2[1] = "znotes";
+ s_cat(soutq, a__2, i__4, &c__2, (ftnlen)80);
+ lsout = 7;
+ }
+ i__1 = all_1.iv - 1;
+ for (iiv = ivlast; iiv <= i__1; ++iiv) {
+ addstr_(all_1.sepsymq + (iiv - 1), &c__1, soutq, &lsout, (
+ ftnlen)1, (ftnlen)80);
+/* L76: */
+ }
+ ivlast = all_1.iv;
+
+/* No need to put in 'nextvoice', even if 2 lines/staff */
+
+ i__1 = ncmid_(&all_1.iv, &all_1.nn[commvl_1.ivx - 1]);
+ dograce_(&commvl_1.ivx, &all_1.nn[commvl_1.ivx - 1], ptgr,
+ soutq, &lsout, &i__1, &all_1.nacc[commvl_1.ivx +
+ all_1.nn[commvl_1.ivx - 1] * 24 - 25], &ig, &
+ all_1.ipl[commvl_1.ivx + all_1.nn[commvl_1.ivx - 1] *
+ 24 - 25], &c_true, &c_false, &c__0, &c__0, &c__0, &
+ c__0, &c__0, &c__0, &c_b736, all_1.ulq, (ftnlen)80, (
+ ftnlen)1);
+ }
+/* L75: */
+ }
+ }
+ if (isgrace) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 3, a__2[1] = "en%";
+ s_cat(ch__17, a__2, i__4, &c__2, (ftnlen)4);
+ addstr_(ch__17, &c__4, soutq, &lsout, (ftnlen)4, (ftnlen)80);
+ if (comlast_1.islast && lsout > 0) {
+ s_wsfe(&io___1055);
+ do_fio(&c__1, soutq, lsout);
+ e_wsfe();
+ }
+ }
+ lsout = 0;
+
+/* Write multibar rest. Assuming nv = 1 and do not worry about cwbrest */
+/* This has to be the only use of atnextbar */
+
+/* if (ibar .eq. ibarmbr) then */
+ if (all_1.ibar == comgrace_1.ibarmbr && comlast_1.islast) {
+/* call addstr(sq//'def'//sq//'atnextbar{'//sq//'znotes'//sq// */
+/* * 'mbrest{',30,soutq,lsout) */
+/* ndig = int(alog10(mbrest+.01))+1 */
+/* write(soutq(31:33),'(i'//chax(48+ndig)//')')mbrest */
+/* lsout = lsout+ndig */
+/* call addstr('}{',2,soutq,lsout) */
+/* mtrspc = .5+xb4mbr */
+/* xb4mbr = 0. */
+/* if (mtrspc .eq. 0) then */
+/* ndig = 1 */
+/* else */
+/* ndig = int(alog10(mtrspc+.01))+1 */
+/* end if */
+/* write(soutq(lsout+1:lsout+2),'(i'//chax(48+ndig)//')')mtrspc */
+/* lsout = lsout+ndig */
+/* call addstr('}0'//sq//'en}%',7,soutq,lsout) */
+/* if (islast) write(11,'(a)')soutq(1:lsout) */
+/* lsout = 0 */
+/* ndig = int(alog10(mbrest-1+.01))+1 */
+/* if (mbrest.eq.1) ndig=1 */
+/* if (islast) write(11,'(a14,i'//chax(48+ndig)//',a1)') */
+/* * sq//'advance'//sq//'barno',mbrest-1,'%' */
+/* ++ */
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 3, a__1[1] = "def";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 10, a__1[3] = "atnextbar{";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 6, a__1[5] = "znotes";
+ s_cat(soutq, a__1, i__3, &c__6, (ftnlen)80);
+ lsout = 22;
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 6, a__2[1] = "mbrest";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote = 7;
+ istring_(&comgrace_1.mbrest, noteq, &len, (ftnlen)8);
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = len, a__2[1] = noteq;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote += len;
+ mtrspc = comgrace_1.xb4mbr + .5f;
+ comgrace_1.xb4mbr = 0.f;
+ istring_(&mtrspc, noteq, &len, (ftnlen)8);
+/* Writing concatenation */
+ i__6[0] = lnote, a__4[0] = notexq;
+ i__6[1] = len, a__4[1] = noteq;
+ i__6[2] = 1, a__4[2] = "0";
+ s_cat(notexq, a__4, i__6, &c__3, (ftnlen)79);
+ lnote = lnote + len + 1;
+ i__7 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__7; ++all_1.iv) {
+ addstr_(notexq, &lnote, soutq, &lsout, (ftnlen)79, (ftnlen)80);
+ if (all_1.iv < all_1.nv) {
+ addstr_(all_1.sepsymq + (all_1.iv - 1), &c__1, soutq, &lsout,
+ (ftnlen)1, (ftnlen)80);
+ }
+/* L62: */
+ }
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 4, a__2[1] = "en}%";
+ s_cat(ch__16, a__2, i__4, &c__2, (ftnlen)5);
+ addstr_(ch__16, &c__5, soutq, &lsout, (ftnlen)5, (ftnlen)80);
+ s_wsfe(&io___1058);
+ do_fio(&c__1, soutq, lsout);
+ e_wsfe();
+ lsout = 0;
+ if (comgrace_1.mbrest > 1) {
+ r__1 = comgrace_1.mbrest - 1 + .01f;
+ ndig = (integer) r_lg10(&r__1) + 1;
+ ci__1.cierr = 0;
+ ci__1.ciunit = 11;
+/* Writing concatenation */
+ i__6[0] = 6, a__4[0] = "(a14,i";
+ i__7 = ndig + 48;
+ chax_(ch__4, (ftnlen)1, &i__7);
+ i__6[1] = 1, a__4[1] = ch__4;
+ i__6[2] = 4, a__4[2] = ",a1)";
+ ci__1.cifmt = (s_cat(ch__7, a__4, i__6, &c__3, (ftnlen)11), ch__7)
+ ;
+ s_wsfe(&ci__1);
+/* Writing concatenation */
+ i__8[0] = 1, a__5[0] = all_1.sq;
+ i__8[1] = 7, a__5[1] = "advance";
+ i__8[2] = 1, a__5[2] = all_1.sq;
+ i__8[3] = 5, a__5[3] = "barno";
+ s_cat(ch__18, a__5, i__8, &c__4, (ftnlen)14);
+ do_fio(&c__1, ch__18, (ftnlen)14);
+ i__2 = comgrace_1.mbrest - 1;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "%", (ftnlen)1);
+ e_wsfe();
+ }
+ } else if (iscwr) {
+
+/* Centered whole-bar rests */
+
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 3, a__1[1] = "def";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 10, a__1[3] = "atnextbar{";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 6, a__1[5] = "znotes";
+ s_cat(ch__19, a__1, i__3, &c__6, (ftnlen)22);
+ addstr_(ch__19, &c__22, soutq, &lsout, (ftnlen)22, (ftnlen)80);
+ i__7 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__7; ++all_1.iv) {
+ lnote = 0;
+ i__2 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ if (cwrest[commvl_1.ivx]) {
+ if (lnote == 0) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 10, a__2[1] = "centerbar{";
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote = 11;
+ }
+ if (! comcwrf_1.cwrferm[commvl_1.ivx - 1]) {
+ if (lcwr[commvl_1.ivx - 1] >= 11 && *(unsigned char *)
+ &cwrq[(commvl_1.ivx - 1) * 79 + 10] != 'p') {
+
+/* Kluge to use new definitions for centered, stacked rests */
+
+ if (s_cmp(cwrq + ((commvl_1.ivx - 1) * 79 + 1),
+ "liftpause", (ftnlen)9, (ftnlen)9) == 0 ||
+ s_cmp(cwrq + ((commvl_1.ivx - 1) * 79 +
+ 1), "liftPAuse", (ftnlen)9, (ftnlen)9) ==
+ 0) {
+ *(unsigned char *)&cwrq[(commvl_1.ivx - 1) *
+ 79 + 9] = 'c';
+ }
+ }
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = lcwr[commvl_1.ivx - 1], a__2[1] = cwrq + (
+ commvl_1.ivx - 1) * 79;
+ s_cat(notexq, a__2, i__4, &c__2, (ftnlen)79);
+ lnote += lcwr[commvl_1.ivx - 1];
+ } else {
+
+/* Fermata on centered rest. Will need to fix up level. */
+/* 12/6/07 shift it left so it's centered over rest */
+
+/* notexq = notexq(1:lnote) */
+/* * //sq//'fermataup7'//cwrq(ivx)(1:lcwr(ivx)) */
+/* lnote = lnote+11+lcwr(ivx) */
+
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = 1, a__1[1] = all_1.sq;
+ i__3[2] = 13, a__1[2] = "loffset{.39}{";
+ i__3[3] = 1, a__1[3] = all_1.sq;
+ i__3[4] = 11, a__1[4] = "fermataup7}";
+ i__3[5] = lcwr[commvl_1.ivx - 1], a__1[5] = cwrq + (
+ commvl_1.ivx - 1) * 79;
+ s_cat(notexq, a__1, i__3, &c__6, (ftnlen)79);
+ lnote = lnote + 26 + lcwr[commvl_1.ivx - 1];
+ comcwrf_1.cwrferm[commvl_1.ivx - 1] = FALSE_;
+ }
+ }
+/* L61: */
+ }
+ if (lnote > 0) {
+/* Writing concatenation */
+ i__4[0] = lnote, a__2[0] = notexq;
+ i__4[1] = 1, a__2[1] = "}";
+ s_cat(ch__1, a__2, i__4, &c__2, (ftnlen)80);
+ i__2 = lnote + 1;
+ addstr_(ch__1, &i__2, soutq, &lsout, lnote + 1, (ftnlen)80);
+ }
+ if (all_1.iv != all_1.nv) {
+ addstr_(all_1.sepsymq + (all_1.iv - 1), &c__1, soutq, &lsout,
+ (ftnlen)1, (ftnlen)80);
+ }
+/* L60: */
+ }
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 3, a__2[1] = "en}";
+ s_cat(ch__17, a__2, i__4, &c__2, (ftnlen)4);
+ addstr_(ch__17, &c__4, soutq, &lsout, (ftnlen)4, (ftnlen)80);
+ if (comlast_1.islast && lsout > 0) {
+ s_wsfe(&io___1060);
+/* Writing concatenation */
+ i__4[0] = lsout, a__2[0] = soutq;
+ i__4[1] = 1, a__2[1] = "%";
+ s_cat(ch__10, a__2, i__4, &c__2, (ftnlen)81);
+ do_fio(&c__1, ch__10, lsout + 1);
+ e_wsfe();
+ }
+ }
+
+/* End of block for centered whole-bar rests and multi-bar rests */
+
+/* If at end of block, save durations of last notes in bar, for possible use */
+/* if clef changes at start of next bar */
+
+ if (all_1.ibar == all_1.nbars) {
+ i__7 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__7; ++all_1.iv) {
+ i__2 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+/* prevtn(ivx) = tnote(iand(ipl(ivx,nn(ivx)),255)) */
+ comnsp_2.prevtn[commvl_1.ivx - 1] = all_1.tnote[
+ comipl2_1.ipl2[commvl_1.ivx + all_1.nn[commvl_1.ivx -
+ 1] * 24 - 25] - 1];
+/* L63: */
+ }
+ }
+ }
+
+/* Update time for midi. This is only used for the event track */
+
+ if (commidi_1.ismidi) {
+ comevent_1.miditime += all_1.lenbar * 15;
+
+/* If pickup, write the real time signature to the event track. Cannot use */
+/* mtrnuml since it was reset to 0, have to recompute it */
+
+ if (all_1.lenb0 == all_1.lenbar) {
+ i__2 = all_1.mtrdenl * all_1.lenb1 / 64;
+ midievent_("m", &i__2, &all_1.mtrdenl, (ftnlen)1);
+ }
+ }
+ return 0;
+} /* make2bar_ */
+
+/* Subroutine */ int makeabar_(void)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+ real r__1, r__2, r__3;
+
+ /* Builtin functions */
+ integer i_nint(real *);
+
+ /* Local variables */
+ extern /* Subroutine */ int catspace_(real *, real *, integer *);
+ static real elsperns;
+ extern doublereal getsquez_(integer *, integer *, real *, real *, real *);
+ static integer ib, in, kv, cnn[24];
+ static real xit[24];
+ static integer ilnc;
+ static real tmin;
+ static integer nnsk, ntot;
+ extern doublereal f1eon_(real *);
+ extern /* Subroutine */ int stop1_(void);
+ static real space[80];
+ extern doublereal fnote_(integer *, integer *, integer *, integer *);
+ static real tminn, tnote[600];
+ static integer istop[80];
+ static real squez[80];
+ static integer istart[80];
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer ivnext;
+ static real tstart[80], xsquez;
+
+
+/* On input, have pseudo-durations in nodur(ivx,ip). Not real durations for */
+/* xtups, since only last note of xtup gets non-zero nodur, which */
+/* corresponds to single note of full length of xtup. */
+/* In this subroutine we make an ordered list of all notes in all voices. */
+/* ilnc = list note counter */
+/* ivxo(ilnc), ipo(ilnc) = voice# and position in voice of ilnc-th note. */
+/* to(ilnc) = real start time of note in PMX-units (64=whole note) */
+/* tno(ilnc) = time to next event in the bar. */
+/* tnote(ilnc) = actual duration of note */
+/* Then run thru list, grouping consecutive notes into \notes groups ib. */
+/* space(ib) = real time unit for the \notes group */
+/* squez(ib) = factor on space to get effective space. This will be 1 if */
+/* there is a note exactly spanning each interval of space, and */
+/* <1 if not. */
+/* Details: let eon = elemskips per noteskip (like length). Basic formula is */
+/* eon = sqrt(space/2.) */
+/* If tgovern >= space, then */
+/* eon = sqrt(tgovern/2)*(space/tgovern) = space/sqrt(2*tgovern). */
+/* Time needed to give this eon using basic formula is */
+/* teq = space**2/tgovern */
+/* Factor on space to get teq is */
+/* squez(ib) = space/tgovern */
+/* The eon for each ib can then be computed based on time of space*squez. */
+/* Iff squez = 1, there is a note spanning every increment in the \notes group. */
+
+/* tnminb = minimum time span in the bar for increments spanned by notes, */
+/* i.e., with squez=1. Use after parsing into line to decide if */
+/* spacing needs to be "flattened" among notes groups. */
+
+ linecom_1.elskb = 0.f;
+ linecom_1.tnminb[c1omnotes_1.ibarcnt - 1] = 1e3f;
+ i__1 = a1ll_2.nv;
+ for (a1ll_2.iv = 1; a1ll_2.iv <= i__1; ++a1ll_2.iv) {
+ i__2 = c1ommvl_1.nvmx[a1ll_2.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ c1ommvl_1.ivx = c1ommvl_1.ivmx[a1ll_2.iv + kv * 24 - 25];
+ if (a1ll_2.ibar > 1) {
+ a1ll_2.nn[c1ommvl_1.ivx - 1] = a1ll_2.nib[c1ommvl_1.ivx +
+ a1ll_2.ibar * 24 - 25] - a1ll_2.nib[c1ommvl_1.ivx + (
+ a1ll_2.ibar - 1) * 24 - 25];
+ } else {
+ a1ll_2.nn[c1ommvl_1.ivx - 1] = a1ll_2.nib[c1ommvl_1.ivx +
+ a1ll_2.ibar * 24 - 25];
+ }
+/* L1: */
+ }
+ }
+
+/* initialize list note counter, time(iv), curr. note(iv) */
+
+ ilnc = 1;
+ i__2 = a1ll_2.nv;
+ for (a1ll_2.iv = 1; a1ll_2.iv <= i__2; ++a1ll_2.iv) {
+ i__1 = c1ommvl_1.nvmx[a1ll_2.iv - 1];
+ for (kv = 1; kv <= i__1; ++kv) {
+ c1ommvl_1.ivx = c1ommvl_1.ivmx[a1ll_2.iv + kv * 24 - 25];
+ cnn[c1ommvl_1.ivx - 1] = 1;
+ a1ll_2.ivxo[ilnc - 1] = c1ommvl_1.ivx;
+ a1ll_2.ipo[ilnc - 1] = 1;
+ a1ll_2.to[ilnc - 1] = 0.f;
+ tnote[ilnc - 1] = fnote_(a1ll_2.nodur, &c1ommvl_1.ivx, &c__1,
+ c1ommvl_1.nacc);
+ xit[c1ommvl_1.ivx - 1] = tnote[ilnc - 1];
+ if ((r__1 = xit[c1ommvl_1.ivx - 1] - a1ll_2.lenbar, dabs(r__1)) <
+ comtol_1.tol) {
+ xit[c1ommvl_1.ivx - 1] = 1e3f;
+ }
+ ++ilnc;
+/* L4: */
+ }
+ }
+
+/* Build the list */
+
+L5:
+
+/* Determine which voice comes next from end of notes done so far. */
+/* tmin is the earliest ending time of notes done so far */
+
+ tmin = 1e3f;
+ i__1 = a1ll_2.nv;
+ for (a1ll_2.iv = 1; a1ll_2.iv <= i__1; ++a1ll_2.iv) {
+ i__2 = c1ommvl_1.nvmx[a1ll_2.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ c1ommvl_1.ivx = c1ommvl_1.ivmx[a1ll_2.iv + kv * 24 - 25];
+/* Computing MIN */
+ r__1 = tmin, r__2 = xit[c1ommvl_1.ivx - 1];
+ tminn = dmin(r__1,r__2);
+ if (tminn < tmin) {
+ tmin = tminn;
+ ivnext = c1ommvl_1.ivx;
+ }
+/* L6: */
+ }
+ }
+ if (tmin > 999.f) {
+ goto L7;
+ }
+ a1ll_2.ivxo[ilnc - 1] = ivnext;
+ ++cnn[ivnext - 1];
+ a1ll_2.ipo[ilnc - 1] = cnn[ivnext - 1];
+ a1ll_2.to[ilnc - 1] = tmin;
+
+/* Check if this voice is done */
+
+ tnote[ilnc - 1] = fnote_(a1ll_2.nodur, &ivnext, &cnn[ivnext - 1],
+ c1ommvl_1.nacc);
+ if (cnn[ivnext - 1] == a1ll_2.nn[ivnext - 1]) {
+ xit[ivnext - 1] = 1e3f;
+ } else {
+ xit[ivnext - 1] += tnote[ilnc - 1];
+ }
+ ++ilnc;
+ goto L5;
+L7:
+ ntot = ilnc - 1;
+ if (ntot > 600) {
+ printl_(" ", (ftnlen)1);
+ printl_("Cannot have more than 600 notes per bar, stopping", (ftnlen)
+ 49);
+ stop1_();
+ }
+ i__2 = ntot - 1;
+ for (in = 1; in <= i__2; ++in) {
+ a1ll_2.tno[in - 1] = a1ll_2.to[in] - a1ll_2.to[in - 1];
+/* L8: */
+ }
+ a1ll_2.tno[ntot - 1] = fnote_(a1ll_2.nodur, &a1ll_2.ivxo[ntot - 1], &
+ a1ll_2.ipo[ntot - 1], c1ommvl_1.nacc);
+ tnote[ntot - 1] = a1ll_2.tno[ntot - 1];
+
+/* Debug writes */
+
+/* write(*,'()') */
+/* write(*,'(16i5)')(ivxo(in),in=1,ntot) */
+/* write(*,'(16i5)')(ipo(in),in=1,ntot) */
+/* write(*,'(16f5.1)')(to(in),in=1,ntot) */
+/* write(*,'(16f5.1)')(tno(in),in=1,ntot) */
+/* write(*,'(16i5)')(nodur(ivxo(in),ipo(in)),in=1,ntot) */
+/* write(*,'(16f5.1)')(tnote(in),in=1,ntot) */
+
+/* Done w/ list. Initialize loop for building note blocks: */
+
+ ib = 1;
+ istart[0] = 1;
+ space[0] = 0.f;
+ in = 1;
+
+/* Start the loop */
+
+L9:
+ if (in == ntot) {
+ if (space[ib - 1] < comtol_1.tol) {
+ space[ib - 1] = a1ll_2.tno[in - 1];
+
+/* Last gap in bar is spanned by a note, so cannot need a squeeze. */
+
+ squez[ib - 1] = 1.f;
+ }
+ istop[ib - 1] = ntot;
+
+/* From here flow out of this if block and into block-setup */
+
+ } else if (space[ib - 1] < comtol_1.tol) {
+
+/* space hasn't been set yet, so tentatively set: */
+
+ space[ib - 1] = a1ll_2.tno[in - 1];
+ if (space[ib - 1] < comtol_1.tol) {
+ ++in;
+ } else {
+
+/* Tentative space tno(in) is non-zero. Set squez, which will be kept (since */
+/* it is a unique property of the particular increment starting here) : */
+
+ squez[ib - 1] = getsquez_(&in, &ntot, &space[ib - 1], tnote,
+ a1ll_2.to);
+ istop[ib - 1] = in;
+ }
+ goto L9;
+ } else if (a1ll_2.tno[in] < comtol_1.tol) {
+
+/* This is not the last note in the space, so */
+
+ ++in;
+ goto L9;
+ } else if ((r__1 = a1ll_2.tno[in] - space[ib - 1], dabs(r__1)) <
+ comtol_1.tol) {
+
+/* Next increment has same space. Does it have same squez? */
+
+ i__2 = in + 1;
+ xsquez = getsquez_(&i__2, &ntot, &space[ib - 1], tnote, a1ll_2.to);
+
+/* If it does have the same squez, loop, otherwise flow out */
+
+ if ((r__1 = xsquez - squez[ib - 1], dabs(r__1)) < comtol_1.tol) {
+
+/* Keep spacing the same, update tentative stop point */
+
+ ++in;
+ istop[ib - 1] = in;
+ goto L9;
+ }
+ }
+
+/* At this point istart, istop, space, and squez are good, so close out block */
+
+ tstart[ib - 1] = a1ll_2.to[istart[ib - 1] - 1];
+
+/* Compute elemskips assuming no flattening to increase min space. The formula */
+/* is only correct if f1eon(t) = sqrt(t/2); more generally (after possible */
+/* flattening in pmxb), elsperns = squez*feon(space/squez) */
+
+ r__1 = space[ib - 1] * squez[ib - 1];
+ elsperns = f1eon_(&r__1);
+ if (istop[ib - 1] == ntot) {
+ r__1 = (a1ll_2.lenbar - tstart[ib - 1]) / space[ib - 1];
+ nnsk = i_nint(&r__1);
+ } else {
+ r__1 = (a1ll_2.to[istop[ib - 1]] - tstart[ib - 1]) / space[ib - 1];
+ nnsk = i_nint(&r__1);
+ }
+ linecom_1.elskb += elsperns * nnsk;
+ if (c1omnotes_1.nptr[c1omnotes_1.ibarcnt] > c1omnotes_1.nptr[
+ c1omnotes_1.ibarcnt - 1]) {
+ catspace_(&space[ib - 1], &squez[ib - 1], &nnsk);
+ } else {
+
+/* This is the first entry for this bar */
+
+ c1omnotes_1.nnpd[c1omnotes_1.nptr[c1omnotes_1.ibarcnt - 1] - 1] =
+ nnsk;
+ c1omnotes_1.durb[c1omnotes_1.nptr[c1omnotes_1.ibarcnt - 1] - 1] =
+ space[ib - 1];
+ c1omnotes_1.sqzb[c1omnotes_1.nptr[c1omnotes_1.ibarcnt - 1] - 1] =
+ squez[ib - 1];
+ ++c1omnotes_1.nptr[c1omnotes_1.ibarcnt];
+ }
+
+/* Update minimum space spanned by a note */
+
+ if ((r__1 = squez[ib - 1] - 1, dabs(r__1)) < comtol_1.tol) {
+/* Computing MIN */
+ r__2 = linecom_1.tnminb[c1omnotes_1.ibarcnt - 1], r__3 = space[ib - 1]
+ ;
+ linecom_1.tnminb[c1omnotes_1.ibarcnt - 1] = dmin(r__2,r__3);
+ }
+ if (istop[ib - 1] == ntot) {
+ goto L15;
+ }
+
+/* End of spatial accounting for now */
+
+ ++ib;
+ istart[ib - 1] = istop[ib - 2] + 1;
+ in = istart[ib - 1];
+
+/* Set tentative block space for new block */
+
+ space[ib - 1] = a1ll_2.tno[in - 1];
+ if (space[ib - 1] > comtol_1.tol) {
+ squez[ib - 1] = getsquez_(&in, &ntot, &space[ib - 1], tnote,
+ a1ll_2.to);
+ }
+ istop[ib - 1] = in;
+ goto L9;
+L15:
+/* nb = ib */
+
+/* Debug writes */
+
+/* write(*,'(16i5)')(istart(ib),ib=1,nb) */
+/* write(*,'(16i5)')(istop(ib),ib=1,nb) */
+/* write(*,'(16f5.1)')(space(ib),ib=1,nb) */
+/* write(*,'(16f5.1)')(squez(ib),ib=1,nb) */
+
+ return 0;
+} /* makeabar_ */
+
+/* Subroutine */ int midievent_(char *typeq, integer *in1, integer *in2,
+ ftnlen typeq_len)
+{
+ /* System generated locals */
+ integer i__1;
+ real r__1;
+
+ /* Builtin functions */
+ integer lbit_shift(integer, integer), i_nint(real *), s_wsle(cilist *),
+ do_lio(integer *, integer *, char *, ftnlen), e_wsle(void);
+
+ /* Local variables */
+ static integer i__;
+ extern integer isetvarlen_(integer *, integer *), log2_(integer *);
+ static integer idur;
+ extern /* Subroutine */ int stop1_(void);
+ static integer nbytes, misperq;
+
+ /* Fortran I/O blocks */
+ static cilist io___1084 = { 0, 6, 0, 0, 0 };
+
+
+
+/* We now store "conductor" events in mmidi(numchan,.), and count bytes */
+/* with imidi(numchan) */
+
+ i__1 = comevent_1.miditime - comevent_1.lasttime;
+ idur = isetvarlen_(&i__1, &nbytes);
+ commidi_1.imidi[commidi_1.numchan] = commidi_1.imidi[commidi_1.numchan] +
+ nbytes + 1;
+ i__1 = nbytes;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] - i__) * 25 - 25] = (shortint) (idur % 256)
+ ;
+ idur = lbit_shift(idur, (ftnlen)-8);
+/* L1: */
+ }
+ commidi_1.mmidi[commidi_1.numchan + commidi_1.imidi[commidi_1.numchan] *
+ 25 - 25] = 255;
+ if (*(unsigned char *)typeq == 't') {
+
+/* Tempo event. in1 = quarters per minute (integer) */
+
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 1) * 25 - 25] = 81;
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 2) * 25 - 25] = 3;
+ r__1 = 6e7f / *in1;
+ misperq = i_nint(&r__1);
+ for (i__ = 1; i__ <= 3; ++i__) {
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 6 - i__) * 25 - 25] = (shortint) (
+ misperq % 256);
+ misperq = lbit_shift(misperq, (ftnlen)-8);
+/* L2: */
+ }
+ commidi_1.imidi[commidi_1.numchan] += 5;
+ } else if (*(unsigned char *)typeq == 'm') {
+
+/* Meter event. in1=numerator, in2=denom (power of 2) */
+
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 1) * 25 - 25] = 88;
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 2) * 25 - 25] = 4;
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 3) * 25 - 25] = (shortint) (*in1);
+ if (*in2 > 0) {
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 4) * 25 - 25] = (shortint) log2_(in2)
+ ;
+ } else {
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 4) * 25 - 25] = 0;
+ }
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 5) * 25 - 25] = 24;
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 6) * 25 - 25] = 8;
+ commidi_1.imidi[commidi_1.numchan] += 6;
+ } else if (*(unsigned char *)typeq == 'k') {
+
+/* Keychange event. in1 = isig */
+
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 1) * 25 - 25] = 89;
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 2) * 25 - 25] = 2;
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 3) * 25 - 25] = (shortint) ((*in1 + 256)
+ % 256);
+ commidi_1.mmidi[commidi_1.numchan + (commidi_1.imidi[
+ commidi_1.numchan] + 4) * 25 - 25] = 0;
+ commidi_1.imidi[commidi_1.numchan] += 4;
+ } else {
+ s_wsle(&io___1084);
+ do_lio(&c__9, &c__1, "Program flameout in midievent", (ftnlen)29);
+ e_wsle();
+ stop1_();
+ }
+ comevent_1.lasttime = comevent_1.miditime;
+ return 0;
+} /* midievent_ */
+
+/* Subroutine */ int moveln_(integer *iuin, integer *iuout, logical *done)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ integer s_rsfe(cilist *), do_fio(integer *, char *, ftnlen), e_rsfe(void),
+ s_wsfe(cilist *), e_wsfe(void);
+
+ /* Local variables */
+ extern integer llen_(char *, integer *, ftnlen);
+ static char outq[129];
+ static integer lenout;
+
+ /* Fortran I/O blocks */
+ static cilist io___1085 = { 0, 0, 1, "(a)", 0 };
+ static cilist io___1088 = { 0, 0, 0, "(a)", 0 };
+
+
+ *done = FALSE_;
+ io___1085.ciunit = *iuin;
+ i__1 = s_rsfe(&io___1085);
+ if (i__1 != 0) {
+ goto L1;
+ }
+ i__1 = do_fio(&c__1, outq, (ftnlen)129);
+ if (i__1 != 0) {
+ goto L1;
+ }
+ i__1 = e_rsfe();
+ if (i__1 != 0) {
+ goto L1;
+ }
+ lenout = llen_(outq, &c__129, (ftnlen)129);
+ io___1088.ciunit = *iuout;
+ s_wsfe(&io___1088);
+ do_fio(&c__1, outq, lenout);
+ e_wsfe();
+ return 0;
+L1:
+ *done = TRUE_;
+ return 0;
+} /* moveln_ */
+
+/* Subroutine */ int mrec1_(char *lineq, integer *iccount, integer *ndxm,
+ ftnlen lineq_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ extern integer ntindex_(char *, char *, integer *, ftnlen, ftnlen);
+
+
+/* This is called when (a) macro recording is just starting and */
+/* (b) at the start of a new line, if recording is on */
+
+ if (! commac_1.mrecord) {
+
+/* Starting the macro */
+
+ c1ommac_1.ip1mac[commac_1.macnum - 1] = inbuff_1.ipbuf -
+ inbuff_1.lbuf[inbuff_1.ilbuf - 2] + *iccount;
+ c1ommac_1.il1mac[commac_1.macnum - 1] = inbuff_1.ilbuf - 1;
+ c1ommac_1.ic1mac[commac_1.macnum - 1] = *iccount;
+ commac_1.mrecord = TRUE_;
+ }
+ if (*iccount < 128) {
+ i__1 = *iccount;
+ *ndxm = i_indx(lineq + i__1, "M", 128 - i__1, (ftnlen)1);
+ if (*ndxm > 0) {
+ i__1 = *iccount;
+ i__2 = 128 - *iccount;
+ *ndxm = ntindex_(lineq + i__1, "M", &i__2, 128 - i__1, (ftnlen)1);
+ }
+ if (*ndxm > 0) {
+
+/* This line ends the macro. */
+
+ c1ommac_1.ip2mac[commac_1.macnum - 1] = inbuff_1.ipbuf -
+ inbuff_1.lbuf[inbuff_1.ilbuf - 2] + *iccount + *ndxm;
+ c1ommac_1.il2mac[commac_1.macnum - 1] = inbuff_1.ilbuf - 1;
+ commac_1.mrecord = FALSE_;
+ }
+ }
+ return 0;
+} /* mrec1_ */
+
+integer ncmid_(integer *iv, integer *ip)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+
+ /* Local variables */
+ static integer icc;
+ static real xtime;
+
+ /* Fortran I/O blocks */
+ static cilist io___1091 = { 0, 6, 0, 0, 0 };
+
+
+ if (comcc_1.ncc[*iv - 1] == 1) {
+ ret_val = comcc_1.ncmidcc[*iv - 1];
+ } else {
+ xtime = all_2.to[comipl2_1.ipl2[commvl_1.ivx + *ip * 24 - 25] - 1];
+ for (icc = comcc_1.ncc[*iv - 1]; icc >= 1; --icc) {
+ if (xtime > comcc_1.tcc[*iv + icc * 24 - 25] - comtol_1.tol) {
+ ret_val = comcc_1.ncmidcc[*iv + icc * 24 - 25];
+ return ret_val;
+ }
+/* L1: */
+ }
+ s_wsle(&io___1091);
+ do_lio(&c__9, &c__1, "Problem in ncmid()", (ftnlen)18);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ return ret_val;
+} /* ncmid_ */
+
+integer ncmidf_(char *clefq, ftnlen clefq_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+
+
+/* Return middle line of a clef */
+
+/* if (clefq.eq.'t' .or. clefq.eq.'0') then */
+/* ncmidf = 35 */
+/* else if (clefq.eq.'s' .or. clefq.eq.'1') then */
+/* ncmidf = 33 */
+/* else if (clefq.eq.'m' .or. clefq.eq.'2') then */
+/* ncmidf = 31 */
+/* else if (clefq.eq.'a' .or. clefq.eq.'3') then */
+/* ncmidf = 29 */
+/* else if (clefq.eq.'n' .or. clefq.eq.'4') then */
+/* ncmidf = 27 */
+/* else if (clefq.eq.'r' .or. clefq.eq.'5') then */
+/* ncmidf = 25 */
+/* else if (clefq.eq.'f' .or. clefq.eq.'7') then */
+/* ncmidf = 37 */
+/* else */
+/* ncmidf = 23 */
+/* end if */
+ ret_val = (i_indx(" b6r5n4a3m2s1t0f7", clefq, (ftnlen)17, (ftnlen)1) / 2
+ << 1) + 21;
+ return ret_val;
+} /* ncmidf_ */
+
+/* Subroutine */ int newvoice_(integer *jv, char *clefq, logical *change,
+ ftnlen clefq_len)
+{
+ static integer j;
+ extern integer ncmidf_(char *, ftnlen);
+
+ commvl_1.nvmx[*jv - 1] = 1;
+ commvl_1.ivmx[*jv - 1] = *jv;
+ all_1.itsofar[*jv - 1] = 0;
+ all_1.nnl[*jv - 1] = 0;
+ comfb_1.nfb[*jv - 1] = 0;
+ if (all_1.firstgulp || *change) {
+ comcc_1.ncmidcc[*jv - 1] = ncmidf_(clefq, (ftnlen)1);
+ } else {
+ comcc_1.ncmidcc[*jv - 1] = comcc_1.ncmidcc[*jv + comcc_1.ncc[*jv - 1]
+ * 24 - 25];
+ }
+ comcc_1.tcc[*jv - 1] = 0.f;
+ comcc_1.ncc[*jv - 1] = 1;
+ comudsp_1.nudoff[*jv - 1] = 0;
+ comcc_1.ndotmv[*jv - 1] = 0;
+ for (j = 1; j <= 200; ++j) {
+ all_1.irest[*jv + j * 24 - 25] = 0;
+ all_1.islur[*jv + j * 24 - 25] = 0;
+ all_1.ipl[*jv + j * 24 - 25] = 0;
+ all_1.nacc[*jv + j * 24 - 25] = 0;
+ all_1.iornq[*jv + j * 24 - 1] = 0;
+ all_1.mult[*jv + j * 24 - 25] = 0;
+ if (*jv <= 2) {
+ all_1.isfig[*jv + (j << 1) - 3] = FALSE_;
+ }
+/* L5: */
+ }
+ return 0;
+} /* newvoice_ */
+
+/* Subroutine */ int notefq_(char *noteq, integer *lnote, integer *nolev,
+ integer *ncmid, ftnlen noteq_len)
+{
+ /* System generated locals */
+ integer i__1;
+ char ch__1[1], ch__2[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+ /* Local variables */
+ static integer nupfroma, i__;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer iname, ioctup;
+ static char noteqt[1];
+ extern /* Character */ VOID upcaseq_(char *, ftnlen, char *, ftnlen);
+
+
+/* Returns name of note level with octave transpositions, updates noctup. */
+
+ nupfroma = (*nolev + 1) % 7;
+ iname = nupfroma + 97;
+ ioctup = (*nolev + 1) / 7 - 4;
+ chax_(ch__1, (ftnlen)1, &iname);
+ *(unsigned char *)noteqt = *(unsigned char *)&ch__1[0];
+ if (*ncmid == 23) {
+ upcaseq_(ch__1, (ftnlen)1, noteqt, (ftnlen)1);
+ *(unsigned char *)noteqt = *(unsigned char *)&ch__1[0];
+ }
+ if (ioctup == comoct_1.noctup) {
+ s_copy(noteq, noteqt, (ftnlen)8, (ftnlen)1);
+ *lnote = 1;
+
+/* Must ALWAYS check if lnote=1 for use with functions requiring a blank */
+
+ } else if (ioctup > comoct_1.noctup) {
+
+/* Raise octave. Encase in {} */
+
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 8;
+ ici__1.iciunit = noteq;
+ ici__1.icifmt = "(8a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, "{", (ftnlen)1);
+ i__1 = ioctup - 1;
+ for (i__ = comoct_1.noctup; i__ <= i__1; ++i__) {
+ chax_(ch__2, (ftnlen)1, &c__39);
+ *(unsigned char *)&ch__1[0] = *(unsigned char *)&ch__2[0];
+ do_fio(&c__1, ch__1, (ftnlen)1);
+ }
+ do_fio(&c__1, noteqt, (ftnlen)1);
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ *lnote = ioctup + 3 - comoct_1.noctup;
+ comoct_1.noctup = ioctup;
+ } else {
+
+/* Lower octave */
+
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 8;
+ ici__1.iciunit = noteq;
+ ici__1.icifmt = "(8a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, "{", (ftnlen)1);
+ i__1 = comoct_1.noctup - 1;
+ for (i__ = ioctup; i__ <= i__1; ++i__) {
+ chax_(ch__2, (ftnlen)1, &c__96);
+ *(unsigned char *)&ch__1[0] = *(unsigned char *)&ch__2[0];
+ do_fio(&c__1, ch__1, (ftnlen)1);
+ }
+ do_fio(&c__1, noteqt, (ftnlen)1);
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ *lnote = comoct_1.noctup + 3 - ioctup;
+ comoct_1.noctup = ioctup;
+ }
+ return 0;
+} /* notefq_ */
+
+/* Subroutine */ int notex_(char *notexq, integer *lnote, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[4], a__2[3], a__3[5], a__4[2], a__5[8];
+ integer i__1, i__2, i__3[4], i__4[3], i__5[5], i__6[2], i__7[8];
+ real r__1;
+ char ch__1[1];
+
+ /* Builtin functions */
+ integer i_nint(real *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen),
+ s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ , pow_ii(integer *, integer *), i_sign(integer *, integer *);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ static real raisedot;
+ static integer ip;
+ static char udq[1];
+ extern integer log2_(integer *);
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static logical even;
+ static integer nole, ldot, nodu;
+ static char dotq[4];
+ extern /* Character */ VOID udqq_(char *, ftnlen, integer *, integer *,
+ integer *, integer *, integer *, integer *);
+ static real zmin;
+ static char numq[2];
+ extern integer ncmid_(integer *, integer *);
+ static real fnole;
+ static char noteq[8];
+ static integer lrest;
+ static char restq[40];
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten;
+
+ /* Fortran I/O blocks */
+ static icilist io___1110 = { 0, noteq, 0, "(i2)", 2, 1 };
+ static icilist io___1114 = { 0, numq, 0, "(i2)", 2, 1 };
+ static icilist io___1115 = { 0, noteq+1, 0, "(i2)", 2, 1 };
+ static icilist io___1116 = { 0, noteq+1, 0, "(i3)", 3, 1 };
+
+
+
+/* Returns non-beamed full note name */
+
+ ip = all_1.ipo[all_1.jn - 1];
+ nole = all_1.nolev[commvl_1.ivx + ip * 24 - 25];
+
+/* Check for special situations with 2nds (see precrd) */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],30)) {
+ --nole;
+ } else if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],31)) {
+ ++nole;
+ }
+ nodu = all_1.nodur[commvl_1.ivx + ip * 24 - 25];
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],0)) {
+ i__1 = ncmid_(&all_1.iv, &ip);
+ udqq_(ch__1, (ftnlen)1, &nole, &i__1, &all_1.islur[commvl_1.ivx + ip *
+ 24 - 25], &commvl_1.nvmx[all_1.iv - 1], &commvl_1.ivx, &
+ all_1.nv);
+ *(unsigned char *)udq = *(unsigned char *)&ch__1[0];
+ }
+
+/* Check figure level */
+
+/* if (figbass .and. isfig(ivx,ip) */
+/* * .and. .not.btest(irest(ivx,ip),0)) then */
+ if (all_1.figbass && ! bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],
+ 0) && (commvl_1.ivx == 1 && all_1.isfig[(ip << 1) - 2] ||
+ commvl_1.ivx == comfig_1.ivxfig2 && all_1.isfig[(ip << 1) - 1])) {
+ if (*(unsigned char *)udq == 'u' || nodu >= 64) {
+
+/* Upper or no stem, fnole (in noleunits) set by notehead */
+
+ fnole = (real) nole;
+ } else {
+
+/* Lower stem, fnole set by bottom of stem */
+
+ fnole = nole - all_1.stemlen;
+ }
+ zmin = fnole - ncmid_(&commvl_1.ivx, &ip) + 4;
+ if (commvl_1.ivx == 1) {
+/* Computing MAX */
+ r__1 = 4 - zmin;
+ i__1 = all_1.ifigdr[(all_1.iline << 1) - 2], i__2 = i_nint(&r__1);
+ all_1.ifigdr[(all_1.iline << 1) - 2] = max(i__1,i__2);
+ } else {
+/* Computing MAX */
+ r__1 = 4 - zmin;
+ i__1 = all_1.ifigdr[(all_1.iline << 1) - 1], i__2 = i_nint(&r__1);
+ all_1.ifigdr[(all_1.iline << 1) - 1] = max(i__1,i__2);
+ }
+ }
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],0)) {
+ i__1 = ncmid_(&all_1.iv, &ip);
+ notefq_(noteq, &lnoten, &nole, &i__1, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ if (nodu == 1) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 4, a__1[1] = "cccc";
+ i__3[2] = 1, a__1[2] = udq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 6;
+ } else if (nodu == 2) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 3, a__1[1] = "ccc";
+ i__3[2] = 1, a__1[2] = udq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 5;
+ } else if (nodu == 4) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 2, a__1[1] = "cc";
+ i__3[2] = 1, a__1[2] = udq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 4;
+ } else if (nodu == 8) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 1, a__1[1] = "c";
+ i__3[2] = 1, a__1[2] = udq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 3;
+ } else if (nodu == 16) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 1, a__1[1] = "q";
+ i__3[2] = 1, a__1[2] = udq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 3;
+ } else if (nodu == 32) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 1, a__1[1] = "h";
+ i__3[2] = 1, a__1[2] = udq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 3;
+ } else if (nodu == 64) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 2, a__2[1] = "wh";
+ i__4[2] = lnoten, a__2[2] = noteq;
+ s_cat(notexq, a__2, i__4, &c__3, (ftnlen)79);
+ *lnote = lnoten + 3;
+ } else if (nodu == 128) {
+/* notexq =sq//'zbreve'//noteq(1:lnoten)//sq//'sk' */
+/* lnote = lnoten+10 */
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 5, a__2[1] = "breve";
+ i__4[2] = lnoten, a__2[2] = noteq;
+ s_cat(notexq, a__2, i__4, &c__3, (ftnlen)79);
+ *lnote = lnoten + 6;
+ } else {
+ s_copy(dotq, "p", (ftnlen)4, (ftnlen)1);
+ ldot = 1;
+ if (bit_test(all_1.iornq[commvl_1.ivx + ip * 24 - 1],13)) {
+
+/* Dotted note with ')' ornament */
+
+ s_copy(dotq, "m", (ftnlen)4, (ftnlen)1);
+ } else if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],3)) {
+
+/* Double dot */
+
+ s_copy(dotq, "pp", (ftnlen)4, (ftnlen)2);
+ ldot = 2;
+ }
+ if (nodu >= 192) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 5, a__1[1] = "breve";
+ i__3[2] = ldot, a__1[2] = dotq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 6 + ldot;
+ } else if (nodu >= 96) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 2, a__1[1] = "wh";
+ i__3[2] = ldot, a__1[2] = dotq;
+ i__3[3] = lnoten, a__1[3] = noteq;
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote = lnoten + 3 + ldot;
+ } else if (nodu >= 48) {
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 1, a__3[1] = "h";
+ i__5[2] = 1, a__3[2] = udq;
+ i__5[3] = ldot, a__3[3] = dotq;
+ i__5[4] = lnoten, a__3[4] = noteq;
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ *lnote = lnoten + 3 + ldot;
+ } else if (nodu >= 24) {
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 1, a__3[1] = "q";
+ i__5[2] = 1, a__3[2] = udq;
+ i__5[3] = ldot, a__3[3] = dotq;
+ i__5[4] = lnoten, a__3[4] = noteq;
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ *lnote = lnoten + 3 + ldot;
+ } else if (nodu >= 12) {
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 1, a__3[1] = "c";
+ i__5[2] = 1, a__3[2] = udq;
+ i__5[3] = ldot, a__3[3] = dotq;
+ i__5[4] = lnoten, a__3[4] = noteq;
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ *lnote = lnoten + 3 + ldot;
+ } else if (nodu >= 6) {
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 2, a__3[1] = "cc";
+ i__5[2] = 1, a__3[2] = udq;
+ i__5[3] = ldot, a__3[3] = dotq;
+ i__5[4] = lnoten, a__3[4] = noteq;
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ *lnote = lnoten + 4 + ldot;
+ compoi_1.ispoi = TRUE_;
+ } else {
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 3, a__3[1] = "ccc";
+ i__5[2] = 1, a__3[2] = udq;
+ i__5[3] = ldot, a__3[3] = dotq;
+ i__5[4] = lnoten, a__3[4] = noteq;
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ *lnote = lnoten + 5 + ldot;
+ compoi_1.ispoi = TRUE_;
+ }
+ if (*(unsigned char *)dotq == 'm') {
+
+/* Need another call to the note, in case the first one has octave shifts */
+
+ if (lnoten == 2) {
+/* Writing concatenation */
+ i__3[0] = *lnote, a__1[0] = notexq;
+ i__3[1] = 1, a__1[1] = "{";
+ i__3[2] = 1, a__1[2] = noteq + 1;
+ i__3[3] = 1, a__1[3] = "}";
+ s_cat(notexq, a__1, i__3, &c__4, (ftnlen)79);
+ *lnote += 3;
+ } else {
+ i__1 = lnoten - 2;
+/* Writing concatenation */
+ i__6[0] = *lnote, a__4[0] = notexq;
+ i__6[1] = lnoten - 1 - i__1, a__4[1] = noteq + i__1;
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ }
+ }
+ } else if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],29)) {
+
+/* Blank rest */
+
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 2, a__4[1] = "sk";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 3;
+ } else {
+
+/* Non-blank rest */
+
+ *lnote = 0;
+ nole = (nole + 20) % 100 - 20;
+
+/* Kluge to get pause symbol for rp: */
+
+ if (bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],19)) {
+ nodu = 64;
+ }
+ if (nodu <= 28) {
+
+/* Normal rest < or = double-dotted quarter */
+
+ lrest = 3;
+ if (nodu > 14) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 2, a__4[1] = "qp";
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ } else if (nodu > 7) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 2, a__4[1] = "ds";
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ } else if (nodu > 3) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 2, a__4[1] = "qs";
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ } else if (nodu > 1) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 2, a__4[1] = "hs";
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ } else {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 3, a__4[1] = "qqs";
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ lrest = 4;
+ }
+/* if (2**log2(nodu) .ne. nodu) then */
+/* c */
+/* c One or two dots on rest */
+/* c */
+/* restq = restq(1:3)//'p' */
+/* lrest = 4 */
+/* if (2*nodu .gt. 3*2**log2(nodu)) then */
+/* c */
+/* c Double dotted rest */
+/* c */
+/* restq = restq(1:4)//'p' */
+/* lrest = 5 */
+/* end if */
+/* end if */
+ s_copy(notexq, restq, (ftnlen)79, (ftnlen)40);
+ *lnote = lrest;
+
+/* At this point notexq=restq,lnote=lrest are name of rest. Now raise if necc. */
+
+ if (nole != 0) {
+ if (abs(nole) < 10) {
+ i__1 = abs(nole) + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ s_copy(noteq, ch__1, (ftnlen)8, (ftnlen)1);
+ lnoten = 1;
+ } else {
+ s_wsfi(&io___1110);
+ i__1 = abs(nole);
+ do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsfi();
+ lnoten = 2;
+ }
+ if (nole > 0) {
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 5, a__3[1] = "raise";
+ i__5[2] = lnoten, a__3[2] = noteq;
+ i__5[3] = 1, a__3[3] = all_1.sq;
+ i__5[4] = 9, a__3[4] = "internote";
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 5, a__3[1] = "lower";
+ i__5[2] = lnoten, a__3[2] = noteq;
+ i__5[3] = 1, a__3[3] = all_1.sq;
+ i__5[4] = 9, a__3[4] = "internote";
+ s_cat(notexq, a__3, i__5, &c__5, (ftnlen)79);
+ }
+ *lnote = lnoten + 16;
+/* if (2**log2(nodu) .ne. nodu) then */
+/* c */
+/* c Have dot in raised rest. must put in hbox! */
+/* c */
+/* notexq = notexq(1:lnote)//sq//'hbox{' */
+/* lnote = lnote+6 */
+/* end if */
+/* Writing concatenation */
+ i__6[0] = *lnote, a__4[0] = notexq;
+ i__6[1] = lrest, a__4[1] = restq;
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote += lrest;
+/* if (2**log2(nodu) .ne. nodu) then */
+/* notexq = notexq(1:lnote)//'}' */
+/* lnote = lnote+1 */
+/* end if */
+ }
+ i__1 = log2_(&nodu);
+ if (pow_ii(&c__2, &i__1) != nodu) {
+
+/* Deal with dots (on rests shorter than half rest) */
+
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 2, a__4[1] = "pt";
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ lrest = 3;
+ i__1 = log2_(&nodu);
+ if (nodu << 1 > pow_ii(&c__2, &i__1) * 3) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 3, a__4[1] = "ppt";
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ lrest = 4;
+ }
+ nole += 4;
+ raisedot = 0.f;
+
+/* Tweak dot positions for special cases */
+
+ even = (nole + 100) % 2 == 0;
+/* if (.not.even.and.nodu.gt.8.and. */
+/* * (nole.lt.0.or.nole.gt.8)) then */
+ if (! even && (nole < 0 || nole > 8)) {
+ raisedot = 1.f;
+ }
+ if (nole >= 10 || nole <= -1) {
+ s_wsfi(&io___1114);
+ do_fio(&c__1, (char *)&nole, (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = lrest, a__1[0] = restq;
+ i__3[1] = 1, a__1[1] = "{";
+ i__3[2] = 2, a__1[2] = numq;
+ i__3[3] = 1, a__1[3] = "}";
+ s_cat(restq, a__1, i__3, &c__4, (ftnlen)40);
+ lrest += 4;
+ } else {
+/* Writing concatenation */
+ i__6[0] = lrest, a__4[0] = restq;
+ i__1 = nole + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__6[1] = 1, a__4[1] = ch__1;
+ s_cat(restq, a__4, i__6, &c__2, (ftnlen)40);
+ ++lrest;
+ }
+ if (raisedot > 0.f) {
+/* Writing concatenation */
+ i__7[0] = 1, a__5[0] = all_1.sq;
+ i__7[1] = 5, a__5[1] = "raise";
+ i__7[2] = 1, a__5[2] = all_1.sq;
+ i__7[3] = 9, a__5[3] = "internote";
+ i__7[4] = 1, a__5[4] = all_1.sq;
+ i__7[5] = 5, a__5[5] = "hbox{";
+ i__7[6] = lrest, a__5[6] = restq;
+ i__7[7] = 1, a__5[7] = "}";
+ s_cat(restq, a__5, i__7, &c__8, (ftnlen)40);
+ lrest += 23;
+ }
+/* Writing concatenation */
+ i__6[0] = lrest, a__4[0] = restq;
+ i__6[1] = *lnote, a__4[1] = notexq;
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote += lrest;
+ }
+ } else {
+
+/* Half rest or longer */
+
+ if (nole == 0) {
+
+/* Half or longer rest is not raised or lowered */
+
+ if (nodu <= 56) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 6, a__4[1] = "hpause";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 7;
+ } else if (nodu <= 112) {
+ if (! bit_test(all_1.islur[commvl_1.ivx + ip * 24 - 25],
+ 19) || bit_test(all_1.irest[commvl_1.ivx + ip *
+ 24 - 25],25)) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 5, a__4[1] = "pause";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 5, a__4[1] = "pausc";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ }
+ *lnote = 6;
+ } else {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 5, a__4[1] = "PAuse";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 6;
+ }
+ i__1 = log2_(&nodu);
+ if (pow_ii(&c__2, &i__1) != nodu) {
+
+/* Dotted rest, hpause or longer */
+
+/* Writing concatenation */
+ i__6[0] = *lnote, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = "p";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ ++(*lnote);
+ i__1 = log2_(&nodu);
+ if (nodu << 1 > pow_ii(&c__2, &i__1) * 3) {
+
+/* Double dotted long rest */
+
+/* Writing concatenation */
+ i__6[0] = *lnote, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = "p";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ }
+ } else {
+
+/* Raised or lowered half or whole rest */
+
+ if (nodu == 32) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "lifthpause";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 11;
+ } else if (nodu == 48) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "lifthpausep";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 12;
+ } else if (nodu == 56) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 12, a__4[1] = "lifthpausepp";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 13;
+ } else if (nodu == 64) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 9, a__4[1] = "liftpause";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 10;
+ } else if (nodu == 96) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "liftpausep";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 11;
+ } else if (nodu == 112) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "liftpausepp";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 12;
+ } else if (nodu == 128) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 9, a__4[1] = "liftPAuse";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 10;
+ } else {
+
+/* Assume dotted double whole rest */
+
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "liftPAusep";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote = 11;
+ }
+
+/* Set up height spec */
+
+ i__1 = abs(nole) / 2;
+ nole = i_sign(&i__1, &nole);
+ if (nole <= 9 && nole >= 0) {
+ i__1 = nole + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ s_copy(noteq, ch__1, (ftnlen)8, (ftnlen)1);
+ lnoten = 1;
+ } else {
+ s_copy(noteq, "{", (ftnlen)8, (ftnlen)1);
+ if (nole >= -9) {
+ s_wsfi(&io___1115);
+ do_fio(&c__1, (char *)&nole, (ftnlen)sizeof(integer));
+ e_wsfi();
+ lnoten = 3;
+ } else {
+ s_wsfi(&io___1116);
+ do_fio(&c__1, (char *)&nole, (ftnlen)sizeof(integer));
+ e_wsfi();
+ lnoten = 4;
+ }
+/* Writing concatenation */
+ i__6[0] = lnoten, a__4[0] = noteq;
+ i__6[1] = 1, a__4[1] = "}";
+ s_cat(noteq, a__4, i__6, &c__2, (ftnlen)8);
+ ++lnoten;
+ }
+/* Writing concatenation */
+ i__6[0] = *lnote, a__4[0] = notexq;
+ i__6[1] = lnoten, a__4[1] = noteq;
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ *lnote += lnoten;
+ }
+ }
+ }
+ return 0;
+} /* notex_ */
+
+integer ntindex_(char *line, char *s2q, integer *lenline, ftnlen line_len,
+ ftnlen s2q_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer ret_val, i__1, i__2, i__3[2];
+ char ch__1[1], ch__2[2];
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_cmp(char *, char *,
+ ftnlen, ftnlen);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ static integer ic, len;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer ndxs2, ndxbs;
+ static logical intex;
+ extern integer lenstr_(char *, integer *, ftnlen);
+
+
+/* Returns index(line,s2q) if NOT in TeX string, 0 otherwise */
+
+ ndxs2 = i_indx(line, s2q, line_len, s2q_len);
+ chax_(ch__1, (ftnlen)1, &c__92);
+ ndxbs = i_indx(line, ch__1, line_len, (ftnlen)1);
+ if (ndxbs == 0 || ndxs2 < ndxbs) {
+ ret_val = ndxs2;
+ } else {
+
+/* There are both bs and s2q, and bs is to the left of sq2. So check bs's to */
+/* right of first: End is '\ ', start is ' \' */
+
+ len = lenstr_(line, lenline, line_len);
+ intex = TRUE_;
+ i__1 = len;
+ for (ic = ndxbs + 1; ic <= i__1; ++ic) {
+ if (ic == ndxs2) {
+ if (intex) {
+ ret_val = 0;
+ i__2 = ic;
+ ndxs2 = i_indx(line + i__2, s2q, len - i__2, s2q_len) +
+ ic;
+ } else {
+ ret_val = ndxs2;
+ return ret_val;
+ }
+ } else /* if(complicated condition) */ {
+ i__2 = ic;
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__1[0] = ch__1;
+ i__3[1] = 1, a__1[1] = " ";
+ s_cat(ch__2, a__1, i__3, &c__2, (ftnlen)2);
+ if (intex && s_cmp(line + i__2, ch__2, ic + 2 - i__2, (ftnlen)
+ 2) == 0) {
+ intex = FALSE_;
+ } else /* if(complicated condition) */ {
+ i__2 = ic;
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = " ";
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[1] = 1, a__1[1] = ch__1;
+ s_cat(ch__2, a__1, i__3, &c__2, (ftnlen)2);
+ if (! intex && s_cmp(line + i__2, ch__2, ic + 2 - i__2, (
+ ftnlen)2) == 0) {
+ intex = TRUE_;
+ }
+ }
+ }
+/* L1: */
+ }
+ }
+ return ret_val;
+} /* ntindex_ */
+
+/* Subroutine */ int ntrbbb_(integer *n, char *char1q, char *ulqq, integer *
+ iv, char *notexq, integer *lnote, ftnlen char1q_len, ftnlen ulqq_len,
+ ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2];
+ integer i__1[3], i__2[2], i__3;
+ char ch__1[1];
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ static integer im, len;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ extern /* Subroutine */ int stop1_(void);
+ static char tempq[4];
+ extern /* Subroutine */ int printl_(char *, ftnlen), istring_(integer *,
+ char *, integer *, ftnlen);
+
+
+/* This appends to notexq e.g. '\ibbbu1' */
+
+ if (*n >= 5) {
+ combbm_1.isbbm = TRUE_;
+ }
+ if (*lnote > 0) {
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__1[1] = 1, a__1[1] = ch__1;
+ i__1[2] = 1, a__1[2] = char1q;
+ s_cat(notexq, a__1, i__1, &c__3, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__2[0] = ch__1;
+ i__2[1] = 1, a__2[1] = char1q;
+ s_cat(notexq, a__2, i__2, &c__2, (ftnlen)79);
+ }
+ *lnote += 2;
+ i__3 = *n;
+ for (im = 1; im <= i__3; ++im) {
+/* Writing concatenation */
+ i__2[0] = *lnote, a__2[0] = notexq;
+ i__2[1] = 1, a__2[1] = "b";
+ s_cat(notexq, a__2, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+/* L3: */
+ }
+
+/* add the number, 0 if 12 */
+
+/* 5/25/08 Allow >12 */
+
+/* call istring(mod(iv,12),tempq,len) */
+ if (*iv < 24) {
+ istring_(iv, tempq, &len, (ftnlen)4);
+ } else if (*iv == 24) {
+ *(unsigned char *)tempq = '0';
+ len = 1;
+ } else {
+ printl_("Sorry, too man open beams", (ftnlen)25);
+ stop1_();
+ }
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ i__1[1] = 1, a__1[1] = ulqq;
+ i__1[2] = len, a__1[2] = tempq;
+ s_cat(notexq, a__1, i__1, &c__3, (ftnlen)79);
+ *lnote = *lnote + 1 + len;
+ return 0;
+} /* ntrbbb_ */
+
+integer numclef_(char *clefq, ftnlen clefq_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+
+
+/* Returns the number to be used as argument of \setclef (for MusiXTeX only) */
+/* if (ichar(clefq) .lt. 55) then */
+ if (*(unsigned char *)clefq <= 55) {
+ ret_val = *(unsigned char *)clefq - 48;
+ if (ret_val == 7) {
+ ret_val = 9;
+ }
+ } else {
+ ret_val = i_indx("tsmanrbxxf", clefq, (ftnlen)10, (ftnlen)1) - 1;
+ }
+ return ret_val;
+} /* numclef_ */
+
+/* Subroutine */ int outbar_(integer *i__, integer *jlast)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1[3], i__2;
+ real r__1;
+ char ch__1[9], ch__2[1], ch__3[11];
+ cilist ci__1;
+
+ /* Builtin functions */
+ double r_lg10(real *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
+
+ /* Local variables */
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer nfmt;
+
+ r__1 = *i__ + .5f;
+ nfmt = r_lg10(&r__1) + 2;
+ if (*jlast + 5 + nfmt < 80) {
+ ci__1.cierr = 0;
+ ci__1.ciunit = 6;
+/* Writing concatenation */
+ i__1[0] = 5, a__1[0] = "(a5,i";
+ i__2 = nfmt + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__1[1] = 1, a__1[1] = ch__2;
+ i__1[2] = 3, a__1[2] = ",$)";
+ ci__1.cifmt = (s_cat(ch__1, a__1, i__1, &c__3, (ftnlen)9), ch__1);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, " Bar", (ftnlen)5);
+ do_fio(&c__1, (char *)&(*i__), (ftnlen)sizeof(integer));
+ e_wsfe();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 15;
+/* Writing concatenation */
+ i__1[0] = 5, a__1[0] = "(a5,i";
+ i__2 = nfmt + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__1[1] = 1, a__1[1] = ch__2;
+ i__1[2] = 3, a__1[2] = ",$)";
+ ci__1.cifmt = (s_cat(ch__1, a__1, i__1, &c__3, (ftnlen)9), ch__1);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, " Bar", (ftnlen)5);
+ do_fio(&c__1, (char *)&(*i__), (ftnlen)sizeof(integer));
+ e_wsfe();
+ *jlast = *jlast + 5 + nfmt;
+ } else {
+ ci__1.cierr = 0;
+ ci__1.ciunit = 6;
+/* Writing concatenation */
+ i__1[0] = 7, a__1[0] = "(/,a5,i";
+ i__2 = nfmt + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__1[1] = 1, a__1[1] = ch__2;
+ i__1[2] = 3, a__1[2] = ",$)";
+ ci__1.cifmt = (s_cat(ch__3, a__1, i__1, &c__3, (ftnlen)11), ch__3);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, " Bar", (ftnlen)5);
+ do_fio(&c__1, (char *)&(*i__), (ftnlen)sizeof(integer));
+ e_wsfe();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 15;
+/* Writing concatenation */
+ i__1[0] = 7, a__1[0] = "(/,a5,i";
+ i__2 = nfmt + 48;
+ chax_(ch__2, (ftnlen)1, &i__2);
+ i__1[1] = 1, a__1[1] = ch__2;
+ i__1[2] = 3, a__1[2] = ",$)";
+ ci__1.cifmt = (s_cat(ch__3, a__1, i__1, &c__3, (ftnlen)11), ch__3);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, " Bar", (ftnlen)5);
+ do_fio(&c__1, (char *)&(*i__), (ftnlen)sizeof(integer));
+ e_wsfe();
+ *jlast = nfmt + 5;
+ }
+ return 0;
+} /* outbar_ */
+
+/* Subroutine */ int pmxa_(char *basenameq, integer *lbase, logical *isfirst,
+ integer *nsyout, integer *nbarss, logical *optimize, ftnlen
+ basenameq_len)
+{
+ /* Initialized data */
+
+ static real wtimesig = .72f;
+ static real wclef = .8f;
+ static real wkeysig = .28f;
+
+ /* System generated locals */
+ integer i__1, i__2, i__3, i__4, i__5, i__6;
+ real r__1, r__2, r__3, r__4;
+ doublereal d__1, d__2;
+ olist o__1;
+ cllist cl__1;
+ alist al__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void), f_open(olist *), f_clos(cllist *), i_nint(real *);
+ double pow_dd(doublereal *, doublereal *);
+ integer f_rew(alist *);
+
+ /* Local variables */
+ extern /* Subroutine */ int g1etnote_(logical *, integer *, logical *,
+ logical *);
+ extern integer i1fnodur_(integer *, char *, ftnlen);
+ extern /* Subroutine */ int makeabar_(void);
+ static real xmtrnum0, heightil;
+ extern /* Subroutine */ int findeonk_(integer *, integer *, real *, real *
+ , real *, real *, real *);
+ static real elsstarg;
+ static logical cstuplet;
+ static real c__, d__;
+ static integer j, listcresc;
+ extern /* Subroutine */ int getpmxmod_(logical *, char *, ftnlen);
+ static integer isysendpg;
+ static logical fulltrans;
+ static integer ip, nomnsystp, kv;
+ static real xn;
+ static integer nns, isy, listdecresc, key1, key2;
+ static real diff;
+ static integer iflb, ifig, ifpb, ioff;
+ extern doublereal feon_(real *);
+ static real elsk[3999];
+ static integer ikey;
+ static real elss[125];
+ static logical loop;
+ static real wdpt;
+ static integer iptr;
+ static real diff1;
+ static integer ibar1;
+ extern doublereal f1eon_(real *);
+ extern /* Subroutine */ int stop1_(void);
+ static integer ipage, naccs;
+ static real celsk[4000];
+ static logical newmb[3999];
+ static integer ibars;
+ static real dtmin, dtmax, xelsk, wmins;
+ static integer ivnow, ibarb4;
+ static real fsyst;
+ static integer isyst;
+ static real elmin0, elmin1;
+ static integer isysb4;
+ static real omegag, facins, glueil;
+ extern /* Subroutine */ int outbar_(integer *, integer *);
+ static integer jprntb, nintpg, mtrdnp;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static real poenom;
+ static integer mtrnmp, nshort;
+ static real wminpt, celskb4, xiltxt;
+ static integer nsystp;
+ static real wsyspt;
+ extern /* Subroutine */ int g1etset_(integer *, integer *, integer *,
+ integer *, integer *, integer *, real *, integer *, integer *,
+ integer *, integer *, logical *);
+ static integer lenbeat, lastbar[126];
+ static real xilfrac;
+ static integer iflbnow;
+ static logical bottreb;
+ static integer mtrdenl, imovbrk, lenmult, iscount;
+ static real sumelsk;
+ static integer instnow, nsystpp;
+
+ /* Fortran I/O blocks */
+ static cilist io___1129 = { 0, 6, 0, 0, 0 };
+ static cilist io___1130 = { 0, 6, 0, 0, 0 };
+ static cilist io___1131 = { 0, 15, 0, "(a)", 0 };
+ static cilist io___1132 = { 0, 19, 0, "(i6)", 0 };
+ static cilist io___1144 = { 0, 6, 0, 0, 0 };
+ static cilist io___1148 = { 0, 6, 0, 0, 0 };
+ static cilist io___1154 = { 0, 15, 0, "(/,a20,i4,a1,i4)", 0 };
+ static cilist io___1155 = { 0, 6, 0, "(/,a20,i4,a1,i4)", 0 };
+ static cilist io___1160 = { 0, 6, 0, 0, 0 };
+ static cilist io___1162 = { 0, 6, 0, 0, 0 };
+ static cilist io___1163 = { 0, 6, 0, 0, 0 };
+ static cilist io___1164 = { 0, 6, 0, 0, 0 };
+ static cilist io___1165 = { 0, 15, 0, "(a,2i5)", 0 };
+ static cilist io___1166 = { 0, 15, 0, "(a)", 0 };
+ static cilist io___1168 = { 0, 12, 0, "(a)", 0 };
+ static cilist io___1169 = { 0, 12, 0, 0, 0 };
+ static cilist io___1170 = { 0, 12, 0, "(6f10.5/f10.5,3i5)", 0 };
+ static cilist io___1171 = { 0, 12, 0, 0, 0 };
+ static cilist io___1190 = { 0, 12, 0, 0, 0 };
+ static cilist io___1205 = { 0, 12, 0, "(i5)", 0 };
+ static cilist io___1223 = { 0, 12, 0, "(1pe12.5/i5,5e12.3)", 0 };
+ static cilist io___1224 = { 0, 13, 0, "(i5)", 0 };
+ static cilist io___1225 = { 0, 6, 0, "(/,a)", 0 };
+ static cilist io___1226 = { 0, 6, 0, 0, 0 };
+ static cilist io___1227 = { 0, 15, 0, "(/,a)", 0 };
+ static cilist io___1228 = { 0, 15, 0, "()", 0 };
+
+
+/* ccccccccccccccccccccccccccccccccccccccccccccccc */
+/* c cc */
+/* c Subroutine, combine with pmxb.for */
+/* c */
+/* ccccccccccccccccccccccccccccccccccccccccccccccc */
+/* c */
+/* c Need to consider X spaces in xtuplets when getting poenom, and */
+/* c maybe fbar? */
+/* c mx06a */
+/* c ID numbers for voices when number of voices is reduced. */
+/* c */
+/* c mx03a */
+/* c account for new fracindent for new movements. */
+/* c */
+/* c Known changes since pmxa. Version 1.1b (see pmxb for longer list) */
+/* c */
+/* c Check ID codes for slurs. */
+/* c Version 1.24 still does not have details for spacing/positioning */
+/* c arpeggios if there are accidentals or shifted notes or crowded scores. */
+/* c Fix problem in 1.22 with arpeggios across multi-line staves */
+/* c Fix problem in 1.22 with flat key signatures */
+/* c Read setup data as strings */
+/* c Warning for octave designation plus +/- */
+/* c Don't pause for volta warning, */
+/* c Macros */
+/* c Correct fsyst to account for transposition and key changes. */
+/* c Check for nbars > nsyst */
+/* c */
+/* cccccccccccccccccccccccccccccccccc */
+ /* Parameter adjustments */
+ --nbarss;
+
+ /* Function Body */
+ commus_1.whead20 = .3f;
+ if (! (*optimize)) {
+ s_wsle(&io___1129);
+ e_wsle();
+ s_wsle(&io___1130);
+ do_lio(&c__9, &c__1, "Starting first PMX pass", (ftnlen)23);
+ e_wsle();
+ s_wsfe(&io___1131);
+ do_fio(&c__1, " Starting first PMX pass", (ftnlen)24);
+ e_wsfe();
+ }
+ if (*isfirst) {
+ o__1.oerr = 0;
+ o__1.ounit = 19;
+ o__1.ofnmlen = 11;
+ o__1.ofnm = "pmxaerr.dat";
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ s_wsfe(&io___1132);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ e_wsfe();
+ cl__1.cerr = 0;
+ cl__1.cunit = 19;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ }
+ if (! (*optimize)) {
+ jprntb = 81;
+ }
+ commac_1.macuse = 0;
+ comkeys_1.ornrpt = FALSE_;
+ comkeys_1.stickys = FALSE_;
+ commac_1.mrecord = FALSE_;
+ commac_1.mplay = FALSE_;
+ c1omget_1.lastchar = FALSE_;
+ comnvst_2.novshrinktop = FALSE_;
+ cstuplet = FALSE_;
+ comslur_1.fontslur = TRUE_;
+ comligfont_1.isligfont = FALSE_;
+ fulltrans = FALSE_;
+ for (c1omnotes_1.ibarcnt = 1; c1omnotes_1.ibarcnt <= 3999;
+ ++c1omnotes_1.ibarcnt) {
+ c1omnotes_1.udsp[c1omnotes_1.ibarcnt - 1] = 0.f;
+ c1omnotes_1.wminnh[c1omnotes_1.ibarcnt - 1] = -1.f;
+/* L42: */
+ }
+
+/* Initialize input buffer */
+
+ c1omget_1.lenbuf0 = inbuff_1.ipbuf;
+ inbuff_1.ipbuf = 0;
+ inbuff_1.ilbuf = 1;
+ g1etset_(&a1ll_2.nv, &comkeys_1.noinst, &a1ll_2.mtrnuml, &mtrdenl, &
+ mtrnmp, &mtrdnp, &xmtrnum0, comkeys_1.newkey, &compage_1.npages, &
+ compage_1.nsyst, &commus_1.musize, &bottreb);
+
+/* Set up list of instrument numbers (iv) */
+
+ ivnow = 0;
+ i__1 = comkeys_1.noinst;
+ for (instnow = 1; instnow <= i__1; ++instnow) {
+ i__2 = c1omget_1.nsperi[instnow - 1];
+ for (iscount = 1; iscount <= i__2; ++iscount) {
+ ++ivnow;
+ cominsttrans_1.instno[ivnow - 1] = instnow;
+/* L14: */
+ }
+/* L13: */
+ }
+
+/* Save initial meter for midi */
+
+ if (! (*isfirst) && compage_1.npages == 0) {
+ s_wsle(&io___1144);
+ do_lio(&c__9, &c__1, "Sorry, must have npages>0 for optimization.", (
+ ftnlen)43);
+ e_wsle();
+ stop1_();
+ }
+ *nsyout = compage_1.nsyst;
+
+/* isig1 will be changed in getnote if there is a transposition */
+
+ comkeys_1.isig1 = comkeys_1.newkey[0];
+ if (compage_1.npages > compage_1.nsyst) {
+ printl_("npages > nsyst in input. Please fix the input.", (ftnlen)47)
+ ;
+ stop1_();
+ }
+
+/* fbar = afterruleskip/elemskip */
+/* apt = width of small accidental + space in points (= 6 at 20pt) =wheadpt */
+
+ c1ommvl_1.fbar = 1.f;
+ c1omnotes_1.wheadpt = commus_1.whead20 * commus_1.musize;
+ ifig = 0;
+ compage_1.usefig = TRUE_;
+ lenbeat = i1fnodur_(&mtrdenl, "x", (ftnlen)1);
+ lenmult = 1;
+ if (mtrdenl == 2) {
+ lenbeat = 16;
+ lenmult = 2;
+ }
+ a1ll_2.lenbr1 = lenmult * a1ll_2.mtrnuml * lenbeat;
+ r__1 = lenmult * xmtrnum0 * lenbeat;
+ a1ll_2.lenbr0 = i_nint(&r__1);
+ a1ll_2.mtrnuml = 0;
+ if (a1ll_2.lenbr0 != 0) {
+ c1omnotes_1.ibaroff = 1;
+ a1ll_2.lenbar = a1ll_2.lenbr0;
+ } else {
+ c1omnotes_1.ibaroff = 0;
+ a1ll_2.lenbar = a1ll_2.lenbr1;
+ }
+ c1omnotes_1.ibarcnt = 0;
+ c1omnotes_1.nptr[0] = 1;
+ a1ll_2.iccount = 128;
+ compage_1.nmovbrk = 0;
+ compage_1.nflb = 0;
+ compage_1.nfpb = 0;
+ compage_1.ipagfpb[0] = 1;
+ compage_1.isysfpb[0] = 1;
+ compage_1.ibarflb[0] = 1;
+ compage_1.isysflb[0] = 1;
+ compage_1.nistaff[0] = a1ll_2.nv - 1;
+
+/* Check for pmx.mod */
+
+ c1omget_1.linesinpmxmod = 0;
+/* line1pmxmod = ilbuf */
+ getpmxmod_(&c_true, " ", (ftnlen)1);
+ if (! (*isfirst) && c1omget_1.linesinpmxmod > 0) {
+ s_wsle(&io___1148);
+ do_lio(&c__9, &c__1, "Sorry, cannot optimize if there is a pmx.mod f"
+ "ile", (ftnlen)49);
+ e_wsle();
+ stop1_();
+ }
+
+/* Initialize for loop over lines */
+
+ comkeys_1.nkeys = 1;
+ comkeys_1.ibrkch[0] = 1;
+ comkeys_1.mbrestsav = 0;
+ comkeys_1.shifton = FALSE_;
+ a1ll_2.firstline = TRUE_;
+ a1ll_2.newmeter = FALSE_;
+ c1omget_1.ihead = 0;
+ c1omget_1.isheadr = FALSE_;
+ c1omnotes_1.gotclef = FALSE_;
+ comkeys_1.idsig = 0;
+ c1omnotes_1.iddot = 0;
+ compage_1.fintstf = -1.f;
+ compage_1.gintstf = 1.f;
+ listcresc = 0;
+ listdecresc = 0;
+L30:
+ loop = TRUE_;
+ comkeys_1.iskchb = FALSE_;
+ c1omget_1.issegno = FALSE_;
+ a1ll_2.nbars = 0;
+ c1omnotes_1.ibarmbr = 0;
+/* L3: */
+ i__1 = a1ll_2.nv;
+ for (a1ll_2.iv = 1; a1ll_2.iv <= i__1; ++a1ll_2.iv) {
+ c1ommvl_1.nvmx[a1ll_2.iv - 1] = 1;
+ c1ommvl_1.ivmx[a1ll_2.iv - 1] = a1ll_2.iv;
+ a1ll_2.itsofar[a1ll_2.iv - 1] = 0;
+ a1ll_2.nnl[a1ll_2.iv - 1] = 0;
+ for (j = 1; j <= 200; ++j) {
+ a1ll_2.rest[a1ll_2.iv + j * 24 - 25] = FALSE_;
+ c1ommvl_1.nacc[a1ll_2.iv + j * 24 - 25] = 0.f;
+/* L5: */
+ }
+/* L4: */
+ }
+ a1ll_2.iv = 1;
+ c1ommvl_1.ivx = 1;
+ c1omget_1.fbon = FALSE_;
+ comkeys_1.barend = FALSE_;
+ c1omget_1.isvolt = FALSE_;
+L2:
+ if (loop) {
+
+/* Within this short loop, nv voices are filled up for the duration of a block. */
+/* On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv) */
+/* nodur(..),rest(..). nnl will later be */
+/* increased and things slid around as accidental skips are added. */
+
+ g1etnote_(&loop, &ifig, optimize, &fulltrans);
+ if (c1omget_1.lastchar) {
+ goto L20;
+ }
+ goto L2;
+ }
+ if (comkeys_1.mbrestsav > 0) {
+ printl_(" ", (ftnlen)1);
+ printl_("You must enter the same multibar rest in ALL parts", (ftnlen)
+ 50);
+ stop1_();
+ }
+ i__1 = a1ll_2.nbars;
+ for (a1ll_2.ibar = 1; a1ll_2.ibar <= i__1; ++a1ll_2.ibar) {
+ ++c1omnotes_1.ibarcnt;
+
+/* The following is just a signal to start a new bar when cataloging spaces */
+/* for catspace(...) */
+
+ c1omnotes_1.nptr[c1omnotes_1.ibarcnt] = c1omnotes_1.nptr[
+ c1omnotes_1.ibarcnt - 1];
+ newmb[c1omnotes_1.ibarcnt - 1] = FALSE_;
+ if (a1ll_2.newmeter && a1ll_2.ibar == 1) {
+ newmb[c1omnotes_1.ibarcnt - 1] = TRUE_;
+ }
+
+/* Above is only for spacing calcs later on. Remember new meter can only occur */
+/* at START of a new input line (ibar = 1) */
+
+ if (a1ll_2.ibar != c1omnotes_1.ibarmbr) {
+ if (! (*optimize)) {
+ i__2 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff;
+ outbar_(&i__2, &jprntb);
+ }
+ } else {
+ if (! (*optimize)) {
+ s_wsfe(&io___1154);
+ do_fio(&c__1, " Multibar rest, bars", (ftnlen)20);
+ i__2 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "-", (ftnlen)1);
+ i__3 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ c1omnotes_1.mbrest - 1;
+ do_fio(&c__1, (char *)&i__3, (ftnlen)sizeof(integer));
+ e_wsfe();
+ s_wsfe(&io___1155);
+ do_fio(&c__1, " Multibar rest, bars", (ftnlen)20);
+ i__2 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "-", (ftnlen)1);
+ i__3 = c1omnotes_1.ibarcnt - c1omnotes_1.ibaroff +
+ c1omnotes_1.mbrest - 1;
+ do_fio(&c__1, (char *)&i__3, (ftnlen)sizeof(integer));
+ e_wsfe();
+ jprntb = 0;
+ }
+ c1omnotes_1.ibaroff = c1omnotes_1.ibaroff - c1omnotes_1.mbrest +
+ 1;
+ }
+ if (a1ll_2.firstline && a1ll_2.lenbr0 != 0) {
+ if (a1ll_2.ibar == 1) {
+ a1ll_2.lenbar = a1ll_2.lenbr0;
+ } else {
+ a1ll_2.lenbar = a1ll_2.lenbr1;
+ }
+ }
+ if (a1ll_2.ibar > 1) {
+
+/* For bars after first, slide all stuff down to beginning of arrays */
+
+ i__2 = a1ll_2.nv;
+ for (a1ll_2.iv = 1; a1ll_2.iv <= i__2; ++a1ll_2.iv) {
+ i__3 = c1ommvl_1.nvmx[a1ll_2.iv - 1];
+ for (kv = 1; kv <= i__3; ++kv) {
+ c1ommvl_1.ivx = c1ommvl_1.ivmx[a1ll_2.iv + kv * 24 - 25];
+ ioff = a1ll_2.nib[c1ommvl_1.ivx + (a1ll_2.ibar - 1) * 24
+ - 25];
+ i__4 = a1ll_2.nib[c1ommvl_1.ivx + a1ll_2.ibar * 24 - 25]
+ - ioff;
+ for (ip = 1; ip <= i__4; ++ip) {
+ a1ll_2.nodur[c1ommvl_1.ivx + ip * 24 - 25] =
+ a1ll_2.nodur[c1ommvl_1.ivx + (ip + ioff) * 24
+ - 25];
+ a1ll_2.rest[c1ommvl_1.ivx + ip * 24 - 25] =
+ a1ll_2.rest[c1ommvl_1.ivx + (ip + ioff) * 24
+ - 25];
+ c1ommvl_1.nacc[c1ommvl_1.ivx + ip * 24 - 25] =
+ c1ommvl_1.nacc[c1ommvl_1.ivx + (ip + ioff) *
+ 24 - 25];
+/* L12: */
+ }
+/* L11: */
+ }
+ }
+ }
+ i__3 = a1ll_2.nv;
+ for (a1ll_2.iv = 1; a1ll_2.iv <= i__3; ++a1ll_2.iv) {
+ i__2 = c1ommvl_1.nvmx[a1ll_2.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ ioff = 0;
+ if (a1ll_2.ibar > 1) {
+ ioff = a1ll_2.nib[c1ommvl_1.ivmx[a1ll_2.iv + kv * 24 - 25]
+ + (a1ll_2.ibar - 1) * 24 - 25];
+ }
+/* L67: */
+ }
+ }
+ makeabar_();
+ elsk[c1omnotes_1.ibarcnt - 1] = linecom_1.elskb + c1ommvl_1.fbar;
+/* L10: */
+ }
+ a1ll_2.newmeter = FALSE_;
+ a1ll_2.firstline = FALSE_;
+ goto L30;
+L20:
+
+/* Vertical analysis. */
+
+ if (compage_1.npages == 0) {
+ if (compage_1.nsyst == 0) {
+ s_wsle(&io___1160);
+ do_lio(&c__9, &c__1, "When npages=0, must set nsyst=bars/syst, n"
+ "ot 0", (ftnlen)46);
+ e_wsle();
+ stop1_();
+ }
+ compage_1.nsyst = (c1omnotes_1.ibarcnt - 1) / compage_1.nsyst + 1;
+ if (a1ll_2.nv == 1) {
+ nsystpp = 12;
+ } else if (a1ll_2.nv == 2) {
+ nsystpp = 7;
+ } else if (a1ll_2.nv == 3) {
+ nsystpp = 5;
+ } else if (a1ll_2.nv == 4) {
+ nsystpp = 3;
+ } else if (a1ll_2.nv <= 7) {
+ nsystpp = 2;
+ } else {
+ nsystpp = 1;
+ }
+ compage_1.npages = (compage_1.nsyst - 1) / nsystpp + 1;
+ }
+
+/* Check nsyst vs ibarcnt */
+
+ if (compage_1.nsyst > c1omnotes_1.ibarcnt) {
+ s_wsle(&io___1162);
+ e_wsle();
+ s_wsle(&io___1163);
+ do_lio(&c__9, &c__1, "nsyst,ibarcnt:", (ftnlen)14);
+ do_lio(&c__3, &c__1, (char *)&compage_1.nsyst, (ftnlen)sizeof(integer)
+ );
+ do_lio(&c__3, &c__1, (char *)&c1omnotes_1.ibarcnt, (ftnlen)sizeof(
+ integer));
+ e_wsle();
+ s_wsle(&io___1164);
+ do_lio(&c__9, &c__1, "There are more systems than bars.", (ftnlen)33);
+ e_wsle();
+ s_wsfe(&io___1165);
+ do_fio(&c__1, " nsyst,ibarcnt:", (ftnlen)15);
+ do_fio(&c__1, (char *)&compage_1.nsyst, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c1omnotes_1.ibarcnt, (ftnlen)sizeof(integer));
+ e_wsfe();
+ s_wsfe(&io___1166);
+ do_fio(&c__1, " There are more systems than bars.", (ftnlen)34);
+ e_wsfe();
+ stop1_();
+ }
+
+/* Set up dummy forced line & page breaks after last real one */
+
+ ++compage_1.nflb;
+ compage_1.ibarflb[compage_1.nflb] = c1omnotes_1.ibarcnt + 1;
+ compage_1.isysflb[compage_1.nflb] = compage_1.nsyst + 1;
+ ++compage_1.nfpb;
+ compage_1.ipagfpb[compage_1.nfpb] = compage_1.npages + 1;
+ compage_1.isysfpb[compage_1.nfpb] = compage_1.nsyst + 1;
+ heightil = compage_1.ptheight * 4.f / commus_1.musize;
+ o__1.oerr = 0;
+ o__1.ounit = 12;
+ o__1.ofnm = 0;
+ o__1.orl = 0;
+ o__1.osta = "SCRATCH";
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ s_wsfe(&io___1168);
+ do_fio(&c__1, basenameq, (*lbase));
+ e_wsfe();
+ s_wsle(&io___1169);
+ do_lio(&c__3, &c__1, (char *)&(*lbase), (ftnlen)sizeof(integer));
+ e_wsle();
+
+/* Pass to pmxb the initial signature, including effect of transposition. */
+
+ s_wsfe(&io___1170);
+ do_fio(&c__1, (char *)&c1ommvl_1.fbar, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&c1omnotes_1.wheadpt, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&cblock_1.etait, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&cblock_1.etatc, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&cblock_1.etacs1, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&cblock_1.etatop, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&cblock_1.etabot, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&cominbot_1.inbothd, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&cblock_1.inhnoh, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&comkeys_1.isig1, (ftnlen)sizeof(integer));
+ e_wsfe();
+ s_wsle(&io___1171);
+ do_lio(&c__3, &c__1, (char *)&compage_1.npages, (ftnlen)sizeof(integer));
+ do_lio(&c__4, &c__1, (char *)&compage_1.widthpt, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&compage_1.ptheight, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&compage_1.hoffpt, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&compage_1.voffpt, (ftnlen)sizeof(real));
+ do_lio(&c__3, &c__1, (char *)&compage_1.nsyst, (ftnlen)sizeof(integer));
+ e_wsle();
+ iflbnow = -1;
+ isysb4 = 0;
+ i__1 = compage_1.nfpb;
+ for (ifpb = 1; ifpb <= i__1; ++ifpb) {
+
+/* Each time thru this loop is like a single score with several pages */
+
+ compage_1.npages = compage_1.ipagfpb[ifpb] - compage_1.ipagfpb[ifpb -
+ 1];
+ compage_1.nsyst = compage_1.isysfpb[ifpb] - compage_1.isysfpb[ifpb -
+ 1];
+ nomnsystp = (compage_1.nsyst - 1) / compage_1.npages + 1;
+ nshort = nomnsystp * compage_1.npages - compage_1.nsyst;
+ i__2 = compage_1.npages;
+ for (ipage = 1; ipage <= i__2; ++ipage) {
+ nsystp = nomnsystp;
+ if (ipage <= nshort) {
+ --nsystp;
+ }
+
+/* Last system number on this page: */
+ isysendpg = isysb4 + nsystp;
+ nintpg = 0;
+ i__3 = isysendpg;
+ for (isy = isysb4 + 1; isy <= i__3; ++isy) {
+ if (compage_1.isysflb[iflbnow + 1] == isy) {
+ ++iflbnow;
+ }
+ nintpg += compage_1.nistaff[iflbnow];
+/* L15: */
+ }
+ xilfrac = 0.f;
+ xiltxt = 0.f;
+ if (ipage == 1 && c1omget_1.ihead > 0) {
+
+/* Needn't zero out ihead after printing titles if we only allow titles at top? */
+
+ if ((c1omget_1.ihead & 1) == 1) {
+ xiltxt += cblock_1.hgtin * 4 / commus_1.musize;
+ xilfrac += cblock_1.etait;
+ }
+ if ((c1omget_1.ihead & 2) == 2) {
+ xiltxt += cblock_1.hgtti * 4 / commus_1.musize;
+ xilfrac += cblock_1.etatc;
+ }
+ if ((c1omget_1.ihead & 4) == 4) {
+ xiltxt += cblock_1.hgtco * 4 / commus_1.musize;
+ xilfrac += cblock_1.etacs1;
+ } else {
+
+/* Use double the title-composer space if there is no composer */
+
+ xilfrac += cblock_1.etatc;
+ }
+ }
+ d__ = xilfrac + nsystp - 1 + cblock_1.etatop + cblock_1.etabot;
+/* C = nsystp*(nv-1) */
+ c__ = (real) nintpg;
+/* xN = heightil - xiltxt - 4*nsystp*nv - (nsystp-1)*xilbn */
+ xn = heightil - xiltxt - (nintpg + nsystp << 2) - (nsystp - 1) *
+ cblock_1.xilbn;
+ if (bottreb) {
+ xn -= (nsystp - 1) * cblock_1.xilbtc;
+ }
+ if (c1omget_1.ihead == 0 && c1omget_1.isheadr) {
+ xn -= cblock_1.xilhdr;
+ }
+ if (ifig == 1) {
+ xn -= nsystp * cblock_1.xilfig;
+ }
+ glueil = (xn - cblock_1.b * c__) / (d__ + cblock_1.a * c__);
+ omegag = (cblock_1.b * d__ + cblock_1.a * xn) / (d__ + cblock_1.a
+ * c__);
+
+/* G = \interlines between systems */
+/* omega*G = \interlines between staves of the same system */
+/* \interstaff = 4+omega*G */
+/* C = total number of interstaff spaces in the page */
+/* D = omega-indep factors for scalable height = nsy-1 (intersystem glue) */
+/* + etatop + etabot + etatxt + */
+/* N = scaleable height (\interlignes) = height - htext - staff heights - xil */
+/* xil = extra interliges = (nsy-1)*xilbn + 10 if header and no titles */
+/* + (nsy-1)*xiltcb for treble clef bottoms */
+/* + nsy*xilfig for figures */
+/* G = N/(D + omega * C) = glueil, (1) */
+/* But (empirically) omega*G = a*G + b (2) */
+/* with a=1.071 and b=2.714 */
+/* Solving (1) and (2) gives */
+/* G = (N-b*C)/(D+a*C) , omega*G = (b*D+a*N)/(D+a*C) */
+/* Pass to pmxb omega*G (=\interstaff-4) */
+/* (etatop,bot,it,tc,cx)*G as inputs to \titles */
+
+/* glueil = (heightil-xiltxt-nsystp*(xil+4*nv)) */
+/* * /(nsystp*(1+gfact*(nv-1))-1+etatop+etabot+xilfrac) */
+/* xnsttop = glueil*etatop */
+/* xintstaff = 4+gfact*glueil */
+
+/* Only the first page will get local adjustment now if needed, others in pmxb */
+
+ if (ifpb == 1 && ipage == 1 && compage_1.fintstf > 0.f) {
+ facins = compage_1.fintstf;
+ compage_1.fintstf = -1.f;
+ } else {
+
+/* gintstf = 1.0 by default, but may be changed with AI<x> */
+
+ facins = compage_1.gintstf;
+ }
+ s_wsle(&io___1190);
+ do_lio(&c__3, &c__1, (char *)&nsystp, (ftnlen)sizeof(integer));
+/* Computing MAX */
+ r__2 = 0.f, r__3 = cblock_1.etatop * glueil;
+ r__1 = dmax(r__2,r__3);
+ do_lio(&c__4, &c__1, (char *)&r__1, (ftnlen)sizeof(real));
+ r__4 = facins * (omegag + 4);
+ do_lio(&c__4, &c__1, (char *)&r__4, (ftnlen)sizeof(real));
+ e_wsle();
+ c1omget_1.ihead = 0;
+ c1omget_1.isheadr = FALSE_;
+ isysb4 = isysendpg;
+/* L7: */
+ }
+/* L8: */
+ }
+
+/* Done with vertical, now do horizontals */
+
+ celsk[1] = elsk[0];
+ i__1 = c1omnotes_1.ibarcnt;
+ for (a1ll_2.ibar = 2; a1ll_2.ibar <= i__1; ++a1ll_2.ibar) {
+ celsk[a1ll_2.ibar] = celsk[a1ll_2.ibar - 1] + elsk[a1ll_2.ibar - 1];
+/* L21: */
+ }
+ lastbar[0] = 0;
+ ibar1 = 1;
+ wmins = -1.f;
+ iflb = 1;
+ imovbrk = 0;
+ ikey = 1;
+
+/* Return nsyst to its *total* value */
+
+ compage_1.nsyst = compage_1.isysfpb[compage_1.nfpb] - 1;
+ i__1 = compage_1.nsyst;
+ for (isyst = 1; isyst <= i__1; ++isyst) {
+ if (isyst == compage_1.isysflb[iflb]) {
+ ++iflb;
+ }
+ if (compage_1.nmovbrk > 0 && imovbrk < compage_1.nmovbrk) {
+ if (isyst == compage_1.isysmb[imovbrk + 1]) {
+ ++imovbrk;
+ }
+ }
+ ibarb4 = lastbar[isyst - 1];
+ if (isyst == 1) {
+ if (*isfirst) {
+ elsstarg = celsk[compage_1.ibarflb[1] - 1] / (
+ compage_1.isysflb[1] - 1 - c1omget_1.fracindent) * (1
+ - c1omget_1.fracindent);
+ }
+ celskb4 = 0.f;
+ } else {
+ celskb4 = celsk[ibarb4];
+
+/* Must dimension isysmb(0:*) just so I can execute this test! */
+
+ if (*isfirst) {
+ if (compage_1.nmovbrk > 0 && isyst == compage_1.isysmb[
+ imovbrk]) {
+
+/* First syst after forced line break. There may be indentation. */
+
+ elsstarg = (celsk[compage_1.ibarflb[iflb] - 1] - celskb4)
+ / (compage_1.isysflb[iflb] - isyst -
+ compage_1.fracsys[imovbrk - 1]) * (1 -
+ compage_1.fracsys[imovbrk - 1]);
+ } else {
+
+/* There is no indentation to deal with */
+
+ elsstarg = (celsk[compage_1.ibarflb[iflb] - 1] - celskb4)
+ / (compage_1.isysflb[iflb] - isyst);
+ }
+ }
+ }
+ if (*isfirst) {
+ diff1 = (r__1 = elsstarg - elsk[ibarb4], dabs(r__1));
+ i__2 = c1omnotes_1.ibarcnt;
+ for (a1ll_2.ibar = ibarb4 + 2; a1ll_2.ibar <= i__2; ++a1ll_2.ibar)
+ {
+ diff = elsstarg - (celsk[a1ll_2.ibar] - celskb4);
+ if (dabs(diff) >= diff1) {
+ goto L24;
+ }
+ diff1 = dabs(diff);
+/* L23: */
+ }
+L24:
+ --a1ll_2.ibar;
+ lastbar[isyst] = a1ll_2.ibar;
+ nbarss[isyst] = a1ll_2.ibar - ibarb4;
+ } else {
+
+/* nbarss is given as an input, must compute lastbar and ibar */
+
+ lastbar[isyst] = nbarss[isyst] + ibarb4;
+ a1ll_2.ibar = lastbar[isyst];
+ }
+
+/* elss is # of elemskip in the syst. from notes & ars's, not ruleskips, ask's. */
+
+ elss[isyst - 1] = celsk[a1ll_2.ibar] - celskb4;
+ s_wsfe(&io___1205);
+ i__2 = lastbar[isyst - 1] + 1;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ e_wsfe();
+
+/* Transposed sigs are isig1, newkey(2,3,...). */
+
+ if (ikey == 1) {
+ key1 = comkeys_1.isig1;
+ } else {
+ key1 = comkeys_1.newkey[ikey - 1];
+ }
+ fsyst = wclef + abs(key1) * wkeysig + 2.f / commus_1.musize;
+ xelsk = 0.f;
+L1:
+ if (ikey < comkeys_1.nkeys) {
+ if (comkeys_1.ibrkch[ikey] <= lastbar[isyst]) {
+
+/* Add space for all key changes */
+
+ ++ikey;
+ key2 = comkeys_1.newkey[ikey - 1];
+/* Computing MAX */
+/* Computing MAX */
+ i__5 = abs(key1), i__6 = abs(key2);
+ i__3 = (i__2 = key2 - key1, abs(i__2)), i__4 = max(i__5,i__6);
+ naccs = max(i__3,i__4);
+ fsyst += naccs * wkeysig;
+
+/* Account for afterruleskips (fbar) */
+
+ xelsk += c1ommvl_1.fbar / 2;
+ if (comkeys_1.ibrkch[ikey - 1] < lastbar[isyst] && !
+ comkeys_1.kchmid[ikey - 1]) {
+ xelsk += -1.f;
+ }
+ key1 = key2;
+ goto L1;
+ }
+ }
+
+/* Add extra fixed space for double bar */
+
+ if (isyst == compage_1.nsyst) {
+ fsyst += 4.5f / commus_1.musize;
+ }
+
+/* Add extra fixed space for initial time signature */
+
+ if (isyst == 1) {
+ fsyst += wtimesig;
+ }
+
+/* Add extra fixed space for time signature changes & user-defined spaces */
+
+ i__2 = lastbar[isyst];
+ for (ibars = ibarb4 + 1; ibars <= i__2; ++ibars) {
+ if (newmb[ibars - 1]) {
+ fsyst += wtimesig;
+ }
+ fsyst += c1omnotes_1.udsp[ibars - 1] / commus_1.musize;
+/* L26: */
+ }
+ if (isyst == 1) {
+ wdpt = compage_1.widthpt * (1 - c1omget_1.fracindent);
+ } else {
+ if (compage_1.nmovbrk > 0 && imovbrk > 0 && isyst ==
+ compage_1.isysmb[imovbrk]) {
+ wdpt = compage_1.widthpt * (1 - compage_1.fracsys[imovbrk - 1]
+ );
+ } else {
+ wdpt = compage_1.widthpt;
+ }
+ }
+ wsyspt = wdpt - fsyst * commus_1.musize - nbarss[isyst] * .4f;
+
+/* Checks for min spacing */
+/* Get min allowable space */
+
+ dtmin = 1e3f;
+ i__2 = ibar1 + nbarss[isyst] - 1;
+ for (a1ll_2.ibar = ibar1; a1ll_2.ibar <= i__2; ++a1ll_2.ibar) {
+/* Computing MIN */
+ r__1 = dtmin, r__2 = linecom_1.tnminb[a1ll_2.ibar - 1];
+ dtmin = dmin(r__1,r__2);
+ if (c1omnotes_1.wminnh[a1ll_2.ibar - 1] >= 0.f) {
+ wmins = c1omnotes_1.wminnh[a1ll_2.ibar - 1];
+ }
+/* L45: */
+ }
+ if (wmins < 0.f) {
+ wmins = .3f;
+ }
+ wminpt = (wmins + 1) * .3f * commus_1.musize;
+
+/* Find max duration & # of notes for this system */
+
+ dtmax = 0.f;
+ nns = 0;
+ i__2 = c1omnotes_1.nptr[ibar1 + nbarss[isyst] - 1] - 1;
+ for (iptr = c1omnotes_1.nptr[ibar1 - 1]; iptr <= i__2; ++iptr) {
+/* Computing MAX */
+ r__1 = dtmax, r__2 = c1omnotes_1.durb[iptr - 1];
+ dtmax = dmax(r__1,r__2);
+ nns += c1omnotes_1.nnpd[iptr - 1];
+/* L43: */
+ }
+ elmin0 = wsyspt * f1eon_(&dtmin) / (elss[isyst - 1] + xelsk);
+ if (elmin0 >= wminpt) {
+
+/* Subtract out fbar stuff to keep old way of passing sumelsk to pmxb; */
+/* there is no need to "flatten" */
+
+ sumelsk = elss[isyst - 1] - c1ommvl_1.fbar * nbarss[isyst];
+ comeon_1.eonk = 0.f;
+ comeon_1.ewmxk = 1.f;
+ } else {
+ elmin1 = wsyspt / ((c1ommvl_1.fbar * nbarss[isyst] + xelsk) /
+ f1eon_(&dtmax) + nns);
+ if (elmin1 <= wminpt) {
+/* print* */
+/* print*,'In system #',isyst,' cannot meet min. space rqmt' */
+/* write(15,'(/a,i5,a)') */
+/* * 'In system #',isyst,' cannot meet min. space rqmt' */
+ comeon_1.eonk = .9f;
+ } else {
+
+/* Find eonk by Newton method */
+
+/* eonk = min(.9,(wminpt-elmin0)/(elmin1-elmin0)) */
+ i__2 = c1omnotes_1.nptr[ibar1 + nbarss[isyst] - 1] - 1;
+ r__1 = wsyspt / wminpt;
+ r__2 = c1ommvl_1.fbar * nbarss[isyst] + xelsk;
+ r__3 = (wminpt - elmin0) / (elmin1 - elmin0);
+ findeonk_(&c1omnotes_1.nptr[ibar1 - 1], &i__2, &r__1, &r__2, &
+ dtmin, &dtmax, &r__3);
+ comeon_1.eonk = dmin(.9f,comeon_1.eonk);
+ }
+ d__1 = (doublereal) f1eon_(&dtmax);
+ d__2 = (doublereal) comeon_1.eonk;
+ comeon_1.ewmxk = pow_dd(&d__1, &d__2);
+
+/* Recompute poenom! */
+
+ sumelsk = 0.f;
+ i__2 = c1omnotes_1.nptr[ibar1 + nbarss[isyst] - 1] - 1;
+ for (iptr = c1omnotes_1.nptr[ibar1 - 1]; iptr <= i__2; ++iptr) {
+ r__1 = c1omnotes_1.durb[iptr - 1] / c1omnotes_1.sqzb[iptr - 1]
+ ;
+ sumelsk += c1omnotes_1.nnpd[iptr - 1] * c1omnotes_1.sqzb[iptr
+ - 1] * feon_(&r__1);
+/* L44: */
+ }
+ }
+ poenom = wsyspt / (sumelsk + c1ommvl_1.fbar * nbarss[isyst] + xelsk);
+
+/* Set fracindent for output: orig if isyst=1, fracsys(imovbrk) if movbrk, else 0 */
+
+ if (isyst > 0) {
+ if (compage_1.nmovbrk > 0 && imovbrk > 0 && isyst ==
+ compage_1.isysmb[imovbrk]) {
+ c1omget_1.fracindent = compage_1.fracsys[imovbrk - 1];
+ } else {
+ c1omget_1.fracindent = 0.f;
+ }
+ }
+ s_wsfe(&io___1223);
+ do_fio(&c__1, (char *)&poenom, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&nbarss[isyst], (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&sumelsk, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&fsyst, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&c1omget_1.fracindent, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&comeon_1.eonk, (ftnlen)sizeof(real));
+ do_fio(&c__1, (char *)&comeon_1.ewmxk, (ftnlen)sizeof(real));
+ e_wsfe();
+ ibar1 += nbarss[isyst];
+/* L22: */
+ }
+ al__1.aerr = 0;
+ al__1.aunit = 12;
+ f_rew(&al__1);
+ o__1.oerr = 0;
+ o__1.ounit = 13;
+ o__1.ofnm = 0;
+ o__1.orl = 0;
+ o__1.osta = "SCRATCH";
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ s_wsfe(&io___1224);
+ do_fio(&c__1, (char *)&ifig, (ftnlen)sizeof(integer));
+ e_wsfe();
+ al__1.aerr = 0;
+ al__1.aunit = 13;
+ f_rew(&al__1);
+ inbuff_1.ilbuf = 1;
+ inbuff_1.ipbuf = 0;
+ if (! (*optimize)) {
+ s_wsfe(&io___1225);
+ do_fio(&c__1, " Done with first pass", (ftnlen)21);
+ e_wsfe();
+ s_wsle(&io___1226);
+ e_wsle();
+ s_wsfe(&io___1227);
+ do_fio(&c__1, " Done with first pass", (ftnlen)21);
+ e_wsfe();
+ s_wsfe(&io___1228);
+ e_wsfe();
+ }
+
+/* Following syntax is needed since pmxa is called with literal argument .false. */
+
+ if (*isfirst) {
+ *isfirst = FALSE_;
+ }
+ return 0;
+} /* pmxa_ */
+
+/* Subroutine */ int pmxb_(logical *inlast, real *poevec, integer *ncalls,
+ logical *optimize)
+{
+ /* System generated locals */
+ address a__1[12], a__2[6], a__3[4], a__4[2], a__5[3], a__6[10], a__7[9],
+ a__8[5], a__9[2], a__10[8], a__11[14];
+ integer i__1, i__2, i__3[12], i__4[6], i__5[4], i__6[2], i__7, i__8[3],
+ i__9[10], i__10[9], i__11[5], i__12[2], i__13, i__14[8], i__15[14]
+ ;
+ real r__1, r__2;
+ char ch__1[1], ch__2[46], ch__3[23], ch__4[26], ch__5[27], ch__6[20],
+ ch__7[29], ch__8[8], ch__9[35], ch__10[14], ch__11[19], ch__12[
+ 107], ch__13[12], ch__14[15], ch__15[13], ch__16[9], ch__17[11],
+ ch__18[32], ch__19[10], ch__20[4], ch__21[16], ch__22[33], ch__23[
+ 18], ch__24[82], ch__25[66], ch__26[60], ch__27[45], ch__28[6],
+ ch__29[17], ch__30[76], ch__31[40], ch__32[69], ch__33[41],
+ ch__34[44], ch__35[5], ch__36[7], ch__37[24], ch__38[22], ch__39[
+ 96];
+ cilist ci__1;
+ olist o__1;
+ cllist cl__1;
+ alist al__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void), s_rsfe(cilist *), e_rsfe(void), s_rsle(cilist *),
+ e_rsle(void);
+ double r_mod(real *, real *);
+ integer i_nint(real *), pow_ii(integer *, integer *), f_open(olist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ double r_lg10(real *);
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+ double r_dim(real *, real *);
+ integer i_dim(integer *, integer *);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer lbit_shift(integer, integer), f_clos(cllist *), f_rew(alist *);
+
+ /* Local variables */
+ static real elsktot;
+ static integer ndigbn, indsym;
+ extern /* Subroutine */ int wgmeter_(integer *, integer *);
+ static integer mtrnms;
+ static real xnstbot;
+ static integer iptemp, islide, ipnew, iudorn, idynd;
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+ static integer itxtdyn, isdata, iarps;
+ extern /* Subroutine */ int make1bar_(integer *, real *, real *, logical *
+ , real *, integer *, integer *, integer *), make2bar_(integer *,
+ real *, real *, logical *, real *, integer *, integer *, integer *
+ , char *, ftnlen);
+ static real hardb4;
+ extern /* Subroutine */ int askfig_(char *, integer *, char *, integer *,
+ logical *, logical *, ftnlen, ftnlen);
+ static real xmtrnum0;
+ extern integer igetbits_(integer *, integer *, integer *);
+ extern /* Subroutine */ int newvoice_(integer *, char *, logical *,
+ ftnlen);
+ static logical lrptpend;
+ extern /* Subroutine */ int setmeter_(integer *, integer *, integer *,
+ integer *), puttitle_(integer *, real *, real *, char *, real *,
+ real *, real *, integer *, logical *, char *, ftnlen, ftnlen);
+ static integer iornqnow, i__;
+ static char basenameq[44], pathnameq[40];
+ extern /* Subroutine */ int midievent_(char *, integer *, integer *,
+ ftnlen);
+ static real xintstaff[40];
+ static integer ia, ig, il, ip, it, kv, ip2, ibc, icc, ipa, ipi;
+ static real esk;
+ static integer iiv;
+ static real poe, frac;
+ static integer ifig, jfig, ndig;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static real hesk[23];
+ static integer ioff;
+ extern doublereal feon_(real *);
+ static char fmtq[24];
+ static logical loop;
+ static real hpts[23], wdpt;
+ static logical lrpt, rrpt;
+ static integer icrd, idyn;
+ static real tglp1;
+ extern /* Subroutine */ int stop1_(void);
+ static logical clchb;
+ static integer lbase, lclef;
+ static char charq[1];
+ static logical clchv[24], slint;
+ static integer istop[80];
+ static real squez[80];
+ static logical ismbr;
+ static real etait, etatc, etacs1;
+ static integer nsyst, lpath, iauto;
+ static real slfac1;
+ static integer lnote, nclef, ipnow;
+ extern /* Subroutine */ int linebreakties_(integer *, integer *, integer *
+ , integer *, integer *, logical *, char *, ftnlen);
+ static real fsyst;
+ static integer isdat;
+ extern integer ncmid_(integer *, integer *);
+ extern /* Subroutine */ int writesetsign_(integer *, integer *, integer *,
+ logical *);
+ static integer naccs;
+ static logical evolta;
+ static integer numbms[24], istart[80];
+ static logical cwrest[24], svolta;
+ static char notexq[79];
+ static logical onvolt;
+ static real tstart[80];
+ static logical putmbr;
+ static real etatop, etabot;
+ static integer inhnoh;
+ extern /* Subroutine */ int getset_(integer *, integer *, integer *,
+ integer *, integer *, integer *, real *, integer *, integer *,
+ integer *, real *, logical *, char *, char *, char *, char *,
+ integer *, integer *, ftnlen, ftnlen, ftnlen, ftnlen);
+ static integer noinst;
+ static logical istype0;
+ static integer npages, ibcoff, ibmrep, nhstot, jprntb, nhssys;
+ extern /* Subroutine */ int addmidi_(integer *, integer *, integer *,
+ integer *, real *, logical *, logical *);
+ static integer lenbeat;
+ extern /* Subroutine */ int outbar_(integer *, integer *);
+ static real ptsndb, ptsndv;
+ extern /* Subroutine */ int wsclef_(integer *, integer *, char *, integer
+ *, ftnlen);
+ static integer islnow;
+ extern /* Subroutine */ int topfile_(char *, integer *, integer *, char *,
+ integer *, integer *, real *, integer *, integer *, logical *,
+ real *, logical *, ftnlen, ftnlen);
+ static logical ispstie, vshrink;
+ static integer isyscnt;
+ static real xntrial;
+ extern integer ifnodur_(integer *, char *, ftnlen);
+ static integer isystpg;
+ extern /* Subroutine */ int getnote_(logical *);
+ static real ptsdflt;
+ extern /* Subroutine */ int clefsym_(integer *, char *, integer *,
+ integer *, ftnlen);
+ static integer lvoltxt, iplnow;
+ static real xnsttop[40];
+ static integer nbarss;
+
+ /* Fortran I/O blocks */
+ static cilist io___1229 = { 0, 6, 0, 0, 0 };
+ static cilist io___1230 = { 0, 6, 0, 0, 0 };
+ static cilist io___1231 = { 0, 6, 0, 0, 0 };
+ static cilist io___1232 = { 0, 15, 0, "(a)", 0 };
+ static cilist io___1235 = { 0, 12, 0, "(a)", 0 };
+ static cilist io___1237 = { 0, 12, 0, 0, 0 };
+ static cilist io___1239 = { 0, 12, 0, 0, 0 };
+ static cilist io___1255 = { 0, 6, 0, 0, 0 };
+ static cilist io___1256 = { 0, 12, 0, 0, 0 };
+ static cilist io___1262 = { 0, 13, 0, 0, 0 };
+ static cilist io___1264 = { 0, 14, 0, "(a)", 0 };
+ static cilist io___1267 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1268 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1269 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1272 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1282 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1284 = { 0, 6, 0, "(/,a20,i4,a1,i4)", 0 };
+ static cilist io___1285 = { 0, 15, 0, "(/,a20,i4,a1,i4)", 0 };
+ static cilist io___1289 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1290 = { 0, 11, 0, "(a14,f4.1,a)", 0 };
+ static cilist io___1299 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1308 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1309 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1310 = { 0, 12, 0, 0, 0 };
+ static cilist io___1313 = { 0, 6, 0, 0, 0 };
+ static cilist io___1314 = { 0, 6, 0, 0, 0 };
+ static cilist io___1317 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1318 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1319 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1320 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1321 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1322 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1325 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1326 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1328 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1329 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1339 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1340 = { 0, 12, 0, 0, 0 };
+ static cilist io___1342 = { 0, 14, 0, "(a9,i2,a10,i2,1x,a4)", 0 };
+ static cilist io___1345 = { 0, 11, 0, fmtq, 0 };
+ static cilist io___1347 = { 0, 6, 0, 0, 0 };
+ static cilist io___1348 = { 0, 6, 0, 0, 0 };
+ static cilist io___1349 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1350 = { 0, 11, 0, "(a12,2i1,a1)", 0 };
+ static cilist io___1351 = { 0, 11, 0, "(a13,i2,a1,i1,a1)", 0 };
+ static cilist io___1352 = { 0, 11, 0, "(a18,i1,a2)", 0 };
+ static cilist io___1353 = { 0, 11, 0, "(a18,i2,a2)", 0 };
+ static cilist io___1355 = { 0, 11, 0, "(a11,i1,a2)", 0 };
+ static cilist io___1356 = { 0, 11, 0, "(a11,i2,a2)", 0 };
+ static cilist io___1357 = { 0, 11, 0, "(a11,i3,a2)", 0 };
+ static cilist io___1359 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1360 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1361 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1362 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1363 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1365 = { 0, 11, 0, fmtq, 0 };
+ static cilist io___1366 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1367 = { 0, 11, 0, fmtq, 0 };
+ static cilist io___1368 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1369 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1370 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1371 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1372 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1373 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1374 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1375 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1376 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1377 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1378 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1379 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1380 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1381 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1382 = { 0, 11, 0, "(a16,i1,a14)", 0 };
+ static cilist io___1383 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1384 = { 0, 12, 1, 0, 0 };
+ static cilist io___1387 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1388 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1390 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1391 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1392 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1393 = { 0, 11, 0, "(a,2i1,a)", 0 };
+ static cilist io___1394 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1395 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1411 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1412 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1420 = { 0, 11, 0, "(a11,f5.1,a4)", 0 };
+ static cilist io___1421 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1422 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1423 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1424 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1425 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1426 = { 0, 6, 0, 0, 0 };
+ static cilist io___1427 = { 0, 6, 0, 0, 0 };
+ static cilist io___1428 = { 0, 15, 0, 0, 0 };
+ static cilist io___1429 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1430 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1431 = { 0, 11, 0, fmtq, 0 };
+ static cilist io___1432 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1433 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1434 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1435 = { 0, 14, 0, "(a9,i2,a10,i2,1x,a5)", 0 };
+ static cilist io___1436 = { 0, 6, 0, 0, 0 };
+ static cilist io___1437 = { 0, 6, 0, 0, 0 };
+ static cilist io___1438 = { 0, 6, 0, 0, 0 };
+ static cilist io___1439 = { 0, 15, 0, "(/,a)", 0 };
+ static cilist io___1440 = { 0, 15, 0, "(a)", 0 };
+
+
+/* ccccccccccccccccccccccccc */
+/* c */
+/* c To Do */
+/* c */
+/* c Resolve disagreement in final poe for 1st system, compared with *.mx2 */
+/* c Shift slurs on right- or left-shifted main notes (2/7/99) */
+/* c Various end-of-input-block repeat problems (ick142.pmx). */
+/* c Force multiplicity for un-beamed xtups. */
+/* c Clef change at end of piece */
+/* c Global "A" option to maximize "X" at a given time tick. */
+/* c Tighten test for end-of-bar hardspace, flgndv(ivx) due to right-shifted */
+/* c note. See trubl18.pmx */
+/* c Tab character as space. */
+/* c Clef interference with second line of music. */
+/* c Add space for interferences between *different* lines of music? */
+/* c Shift arpeggios, both automatic and manual. */
+/* c Different musicsize for different instruments. */
+/* c Spacing checks for accid's on left-shifted chord notes */
+/* c Spacing checks for double dots */
+/* c Allow forced line breaks w/o setting nsyst. */
+/* c Cresc-Decresc. (Enhance MusiXTeX first?) */
+/* c Dynamic Marks. */
+/* c Bug with Voltas at line end (MusiXTeX problem?). */
+/* c Subtle bug w/ slur hgt over line brk, see trubl15.pmx */
+/* c Stem-end slurs. */
+/* c Allow units in indentation. */
+/* c Make inline TeX more context sensitive. */
+/* c Werner's 4/2/98 problem with "o?" */
+/* c Scor2prt converts e.g. "r0+0" into "r0 0", which seems to be wrong. */
+/* c converts e.g. "r2db" into "r2d", which might be wrong. */
+/* c Werner's generalsignature problem with Key change and new transposition. */
+/* c (wibug8.pmx) */
+/* c Unequal xtuplets */
+/* c Print both sets of bar #'s in tex file. */
+/* c Make barlines invisible \def\xbar{\empty} , fix fbar. */
+/* c Auto-tie slurs 'At' */
+/* c Forced line break anywhere (e.g. at a mid-bar repeat). */
+/* c Clef change at very start of file. */
+/* c Tighten test for M as macro terminator. */
+/* c Fix title so not separate limit on author length + composer length. */
+/* c Arpeggios in xtups. */
+/* c */
+/* c mx10b */
+/* c Option for instrument name at top center. Last item in P command: */
+/* c P[n]c text is instrument name (use in parts) */
+/* c P[n]cstuff text is stuff (up to 1st blank) */
+/* c P[n]c"stuff with spaces" text is stuff with spaces */
+/* c */
+/* c Post version 1.43 */
+/* c Reduced space rqmt for multiplicity-0 graces (no flag) */
+/* c Removed last sepsym in centered whole-bar rests, fixes volta height bug. */
+/* c */
+/* c Version 1.43 */
+/* c Fix spacing for end-of-line signature change. */
+/* c Adjust left-shift of grace group for shifted accidentals. */
+/* c Put in extra space for left-shifted accidentals. */
+/* c Fix bug with dot-shift before accid-shift on chord note. */
+/* c Space-check for right-shifted main notes. */
+/* c Enable forcing stem direction of single notes in non-beamed xtups. */
+/* c Disallow clef change after last note before end of input block (pmxa) */
+/* c Print meter change before page break */
+/* c increase length of strings for \titles macro */
+/* c version 1.42 */
+/* c Loosen up input syntax for "X" commands. Subroutine getx() */
+/* c "B" and "P" in "X" commands */
+/* c mx09b */
+/* c Allow multiple rests at start of xtup */
+/* c Add 64th rest */
+/* c Fix xtup numbers over rests. (subroutine levrn) */
+/* c Initialize notcrd=.false. every gulp. Avoids undefined state with e.g. */
+/* c c za / ( c a ... */
+/* c Allow double dots to be shifted. */
+/* c Fix spacing with double dotted notes; permit splitting small note. */
+/* c Fix \dotted printout so it works with old compiler */
+/* c mx08b */
+/* c Automatic spaces if needed for shifted accidentals. */
+/* c Some Dynamics */
+/* c Increase accid. horiz. shift resolution to .o5 (use one more bit in nacc) */
+/* c version 1.41 */
+/* c Allow ":" as last char of path name */
+/* c Dotted slurs "sb" */
+/* c Continue bar numbering at movement break "L[integer]Mc" */
+/* c mx07b */
+/* c Whole-bar rests with double lines of music. Fixed all options ? */
+/* c Shift accidentals, either [+|-][integer][+|-][number] or [<|>][number]. */
+/* c Option to suppress centering full-bar rests. "o" */
+/* c mx06b */
+/* c Shift accid on left-shifted chord note. */
+/* c Rest as first note of xtup. */
+/* c Wrong slopes with small widths. Scale slfac1 by widthpt_default/widthpt */
+/* c Allow Rb for single bar at movemnet break or end of piece. (islur(25)) */
+/* c Change # of inst at a movement break. noinst is total # and must be used */
+/* c in 1st movement. ninow is current. nspern(1,...,ninow) is current */
+/* c staves/inst, nsperi(1,...,noinst) is original. rename tells whether to */
+/* c reprint names in parindent at a movement break. Default is .false. */
+/* c unless ninow changes, then .true. But can force either with r+/- as */
+/* c option in 'M' */
+/* c mx04b */
+/* c Double-dotted notes, separate+beamed, main+chord, still no extra space. */
+/* c ??? Don't shift slur ends on whole notes. */
+/* c (pmxa) Write line number of error in pmxaerr.dat */
+/* c mx02b */
+/* c Admit "RD" before "/" (search for "rptfq2:" ) */
+/* c In doslur, for multi-line staves, single notes, check forced stem dir'n */
+/* c before setting stemup (used to set horiz offset). */
+/* cccccccccccccccccccccccccccccc */
+
+/* FYI /all/ differs in appearance in function ncmid */
+
+/* cccccccccccc */
+/* c islur cc */
+/* cccccccccccc */
+/* bit meaning */
+/* 0 slur activity on this note */
+/* 1 t-slur here. */
+/* 2 force 0-slope beam starting on this note */
+/* 3 Double dotted note! */
+/* 4 grace before main note */
+/* 5 left repeat */
+/* 6 right repeat */
+/* 7 start Volta */
+/* 8 doublebar */
+/* 9 end Volta */
+/* 10 on=>endvoltabox */
+/* 11 on=>clefchange */
+/* 12-14 0=>treble, ... , 6=>bass */
+/* 15 on=> start new block for clef change (maybe diff. voice) */
+/* 16 literal TeX string */
+/* 17 1=up, 0=down stem for single note (override) See bit 30! */
+/* 18 if on, prohibit beaming */
+/* 19 if on, full bar rest as pause */
+/* 20 Beam multiplicity down-up */
+/* 21 Forced multiplicity for any beam including xtups */
+/* 22-24 Value of forced multiplicity */
+/* 25 single barline at movement break */
+/* 26 doubleBAR (see bits 5,6,8) */
+/* 27-28 Forced beam fine-tune height (1 to 3) */
+/* 29 Blank rest */
+/* 30 If on, get stem dir'n from bit 17 */
+/* 31 If on, suppress printing number with xtuplet starting here */
+/* cccccccccccc */
+/* c ipl cc */
+/* cccccccccccc */
+/* c 0-7 Location in list [0,200] */
+/* 0-7 Unused */
+/* 8 left offset main note one headwidth */
+/* 9 right offset main note one headwidth */
+/* 10 chord present? */
+/* 11-16 Forced beam height adjustment (-30 to +30) */
+/* 17-22 Forced beam slope adjustment (-30 to +30) */
+/* 23-26 Slur index for Way-after grace. Inserted when slur is started. */
+/* c 27 Unused? */
+/* 27 5th bit for slur index for Way-after grace (100712) */
+/* 28 key change: only in voice 1 */
+/* 29 Grace after main note. (Type A) */
+/* 30 In forced beam. Signals need to check beam heights */
+/* 31 Grace way after main note. (stretch to next note, type W) */
+/* cccccccccccc */
+/* c iornq cc */
+/* cccccccccccc */
+/* 0 Ornament "(". Was user-defined horizontal slur shift on this note */
+/* until 9/24/97; changed that to irest(21) */
+/* 1-13 stmgx+Tupf._) */
+/* 14 Down fermata, was F */
+/* 15 Trill w/o "tr", was U */
+/* 16-18 Editorial s,f,n */
+/* 19-20 >^ */
+/* 21 "?" for editorial accid, w/ or w/o s,f,n */
+/* 22 Set if ihornb governs ornament height. Same in icrdorn. */
+/* 23 Set in getorn if ANY note at time of this main note has ornament. */
+/* This is ONLY used in beamstrt to signal whether to do more */
+/* tests for whether ihornb is needed. (ihornb is only needed */
+/* if nonchord+upbm, chord+upbm+top_note, chord+dnbm+bot_note) */
+/* (7/1/00)Also set if any dynamic, as ihornb will be needed when dnbm. */
+/* 24 Slur on after or way-after grace. Use as signal to START slur. */
+/* 25 Tweak orn ht. Same in icrdorn for chord note */
+/* 26 Insert user-defined space before this note (was 22) */
+/* 27 Arpeggio stop or start (if 2 at same time), or all-in-this-chord */
+/* 28 caesura or breath */
+/* 29 blank barline (must be iv=1) (would have used islur but no room) */
+/* 30 "Look-left" option for keyboard rest */
+/* 31 Set if any note (main or chord) has cautionary accid, for space checks */
+/* cccccccccccc */
+/* c irest cc */
+/* cccccccccccc */
+/* 0 rest=1, no rest = 0 */
+/* 1 There will be a vertical shift for number of this xtup */
+/* 2-6 Height shift, 1 => -15, 31 => +15 Indicate by +/- [n] after 'n' */
+/* 7 There is a horizontal shift for xtup number */
+/* 9-13 Horiz shift, 1=>-1.5, ... , 31=>+1.5 */
+/* 14 Flip up/down-ness of xtup number */
+/* 15 Single-voice, single note shift X(...)[p]S */
+/* 16 Start single-voice, multinote shift with this note X(...)[p]: */
+/* 17 End single-voice, multinote shift after this note. Enter symbol */
+/* after note. X: */
+/* 18 User-defined hardspace after last note of bar, *after* this note. */
+/* Value still stored in udoff(ivx,nudoff(ivx)), not with other */
+/* hardspaces in udsp, to avoid confusion with time checks. */
+/* 19 Move the dot. Data stored in ndotmv,updot,rtdot */
+/* 20 Set if right-shifted main or chord note here. Use for space checks. */
+/* 21 User-defined hardspace in xtup */
+/* 22 User-defined slur shift horizontal slur shift. */
+/* 23 Set on last note before staff-jumping a beam. */
+/* 24 Set on first note after staff-jumping a beam */
+/* 25 Suppress rest centering. "ro" */
+/* 26 Dynamic on this note */
+/* 27 Set if left-shifted main or chord note here. Use for space checks. */
+/* 28 Set if xtup starts on this note. */
+/* 29 Set on lowest-voice note at same time as 1st note after jump-beam. */
+/* 30 Set on note after end of jump-beam segment, to force new note group */
+/* 31 Flag for cautionary accidental */
+/* cccccccccccc */
+/* c nacc cc */
+/* cccccccccccc */
+/* 0-1 0=no accid, 1=fl, 2=sh, 3=na */
+/* 2 double */
+/* 3 big */
+/* 4-9 vertshift-32 */
+/* 10-16 20*(horiz. shift + 5.35) (Recentered ver 2.32) */
+/* 17 Midi-only accidental */
+/* 18 2:1 xtup */
+/* 19 Together with nacc(18), increase multiplicity by 1 and dot 1st note. */
+/* 20 Set on last note of each seg except last seg of single-slope beam. */
+/* 21 Set on 1st note of each seg except 1st seg of single-slope beam. */
+/* 22-26 If .ne.0, printed xtup number for xtup starting on this note. */
+/* 27 Set for dotted xtup note. Mult dur by 1.5, mult next by .5 & increase */
+/* multiplicity by 1 */
+/* 28 Set on main note of chord if accidentals are ordered. */
+/* 29 Tag for chordal accidental shift...means add to autoshifts. */
+/* 30-31 Set 30|31 if main note in a chord is part of a 2nd and needs to be shifted. */
+/* If upstem|downstem, main is upper|lower member of 2nd */
+/* Action is to interchange pitches only when notes are placed. */
+/* cccccccccccc */
+/* c mult cc */
+/* cccccccccccc */
+/* 0-3 Multiplicity+8 (mult= # of flags) */
+/* 4 Set if slope adjustment for xtup bracket */
+/* 5-9 16+slope adjustment */
+/* 27 Stemlength override */
+/* 28-30 New stem length. */
+/* cccccccccccc */
+/* c isdat1 cc */
+/* cccccccccccc */
+/* 13-17 iv */
+/* 3-10 ip */
+/* 11 start/stop switch */
+/* 12 kv-1 */
+/* 19-25 ichar(code$) */
+/* 26 force direction? */
+/* 27 forced dir'n = up if on, set in sslur; also */
+/* final direction, set in doslur when beam is started, used on term. */
+/* 28-31 ndxslur, set in doslur when beam is started, used on term. */
+/* cccccccccccc */
+/* c isdat2 cc */
+/* cccccccccccc */
+/* 0 Chord switch. Not set on main note. */
+/* 1-2 left/right notehead shift. Set only for chord note. */
+/* 3 tie positioning */
+/* 4 dotted slur */
+/* 6-11 voff1 1-63 => -31...+31 */
+/* 12-18 hoff1 1-127 => -6.3...+6.3 */
+/* 19-25 nolev */
+/* 26 \sluradjust (p+s) */
+/* 27 \nosluradjust (p-s) */
+/* 28 \tieadjust (p+t) */
+/* 29 \notieadjust (p-t) */
+/* cccccccccccc */
+/* c isdat3 cc */
+/* cccccccccccc */
+/* 0 set if midslur (at least one argument) */
+/* 1 set if curve (2 more args) */
+/* 2-7 32+first arg (height correction) (1st arg may be negative) */
+/* 8-10 second arg (initial slope) */
+/* 11-13 third arg (closing slope) */
+/* 14-21 tie level for use in LineBreakTies */
+/* 22-29 ncm for use in LineBreakTies */
+/* cccccccccccc */
+/* c isdat4 cc Set these all at turn-on using s option */
+/* cccccccccccc */
+/* 0-5 Linebreak seg 1 voff 1-63 => -31...+31 */
+/* 6-12 Linebreak seg 1 hoff 1-127 => -6.3...+6.3 */
+/* 16-21 Linebreak seg 2 voff 1-63 => -31...+31 */
+/* 22-28 Linebreak seg 2 hoff 1-127 => -6.3...+6.3 */
+/* cccccccccccc */
+/* icrdat c */
+/* cccccccccccc */
+/* 0-7 ip within voice */
+/* 8-11 ivx (together with 28th bit) */
+/* 12-18 note level */
+/* 19 accidental? */
+/* 20-22 accidental value (1=natural, 2=flat, 3=sharp, 6=dflat, 7=dsharp) */
+/* 23 shift left */
+/* 24 shift right */
+/* 25 arpeggio start or stop */
+/* 26 flag for moved dot (here, not icrdot, since this is always reset!) */
+/* 27 Midi-only accidental */
+/* 28 (6/27/10) 5th bit for ivx, to allow up to 24 voices */
+/* 29 Tag for accidental shift...means add to autoshifts. */
+/* 31 Flag for cautionary accidental on chord note */
+/* cccccccccccc */
+/* icrdot c: */
+/* cccccccccccc */
+/* 0-6 10*abs(vertical dot shift in \internote) + 64 */
+/* 7-13 10*abs(horizontal dot shift in \internote) + 64 */
+/* 14-19 vert accidental shift-32 */
+/* 20-26 20*(horiz accidental shift+3.2) */
+/* 27-29 top-down level rank of chord note w/accid. Set in crdaccs. */
+
+/* Bits in icrdorn are same as in iornq, even tho most orns won't go in crds. */
+
+/* ccccccccccccccccccccccccccccccc */
+ /* Parameter adjustments */
+ --poevec;
+
+ /* Function Body */
+ if (! (*optimize)) {
+ s_wsle(&io___1229);
+ e_wsle();
+ s_wsle(&io___1230);
+ do_lio(&c__9, &c__1, "Starting second PMX pass", (ftnlen)24);
+ e_wsle();
+ s_wsle(&io___1231);
+ e_wsle();
+ s_wsfe(&io___1232);
+ do_fio(&c__1, "Starting second PMX pass", (ftnlen)24);
+ e_wsfe();
+ }
+ ++(*ncalls);
+ comlast_1.islast = *inlast;
+ commac_1.macuse = 0;
+ isyscnt = 0;
+ all_1.stemmax = 8.2f;
+ all_1.stemmin = 3.9f;
+ all_1.stemlen = 6.f;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)all_1.sq = *(unsigned char *)&ch__1[0];
+ combc_1.bcspec = TRUE_;
+ comas3_1.topmods = FALSE_;
+ ismbr = FALSE_;
+ s_rsfe(&io___1235);
+ do_fio(&c__1, basenameq, (ftnlen)44);
+ e_rsfe();
+ s_rsle(&io___1237);
+ do_lio(&c__3, &c__1, (char *)&lbase, (ftnlen)sizeof(integer));
+ e_rsle();
+ s_rsle(&io___1239);
+ do_lio(&c__4, &c__1, (char *)&comask_1.fbar, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&comask_1.wheadpt, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&etait, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&etatc, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&etacs1, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&etatop, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&etabot, (ftnlen)sizeof(real));
+ do_lio(&c__3, &c__1, (char *)&cominbot_1.inbothd, (ftnlen)sizeof(integer))
+ ;
+ do_lio(&c__3, &c__1, (char *)&inhnoh, (ftnlen)sizeof(integer));
+ do_lio(&c__3, &c__1, (char *)&comtop_1.isig, (ftnlen)sizeof(integer));
+ e_rsle();
+ inbuff_1.ilbuf = 1;
+ inbuff_1.ipbuf = 0;
+ getset_(&all_1.nv, &noinst, &all_1.mtrnuml, &all_1.mtrdenl, &all_1.mtrnmp,
+ &all_1.mtrdnp, &xmtrnum0, &npages, &nsyst, &all_1.musicsize, &
+ comtop_1.fracindent, &istype0, comtop_1.inameq, comclefq_1.clefq,
+ all_1.sepsymq, pathnameq, &lpath, &comtop_1.isig0, (ftnlen)79, (
+ ftnlen)1, (ftnlen)1, (ftnlen)40);
+ if (commidi_1.ismidi) {
+
+/* Initial key signature and meter for pickup bar */
+
+ midievent_("k", &comtop_1.isig, &c__0, (ftnlen)1);
+ if (xmtrnum0 > comtol_1.tol) {
+
+/* We have a pickup. Some tricky stuff to get a meter: */
+
+ xntrial = xmtrnum0;
+ for (ip2 = 0; ip2 <= 5; ++ip2) {
+ if ((r__1 = r_mod(&xntrial, &c_b781), dabs(r__1)) <
+ comtol_1.tol) {
+ goto L6;
+ }
+ xntrial *= 2;
+/* L5: */
+ }
+ s_wsle(&io___1255);
+ do_lio(&c__9, &c__1, "Problem finding meter for pickup bar", (
+ ftnlen)36);
+ e_wsle();
+ xntrial = 1.f;
+ ip2 = 0;
+L6:
+ i__1 = i_nint(&xntrial);
+ i__2 = pow_ii(&c__2, &ip2) * all_1.mtrdenl;
+ midievent_("m", &i__1, &i__2, (ftnlen)1);
+ } else {
+
+/* No pickup, enter the starting meter */
+
+ midievent_("m", &all_1.mtrnuml, &all_1.mtrdenl, (ftnlen)1);
+ }
+ }
+
+/* Set musicsize from value passed in common, due to possible reset by S[n]m16 */
+
+ all_1.musicsize = commus_1.musize;
+ s_rsle(&io___1256);
+ do_lio(&c__3, &c__1, (char *)&npages, (ftnlen)sizeof(integer));
+ do_lio(&c__4, &c__1, (char *)&comtop_1.widthpt, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&comtop_1.height, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&comtop_1.hoffpt, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&comtop_1.voffpt, (ftnlen)sizeof(real));
+ do_lio(&c__3, &c__1, (char *)&nsyst, (ftnlen)sizeof(integer));
+ i__1 = npages;
+ for (ipa = 1; ipa <= i__1; ++ipa) {
+ do_lio(&c__3, &c__1, (char *)&comnotes_1.nsystp[ipa - 1], (ftnlen)
+ sizeof(integer));
+ do_lio(&c__4, &c__1, (char *)&xnsttop[ipa - 1], (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&xintstaff[ipa - 1], (ftnlen)sizeof(real)
+ );
+ }
+ do_lio(&c__3, &c__1, (char *)&iauto, (ftnlen)sizeof(integer));
+ e_rsle();
+
+/* If default width ever changes, must adjust this stmt. */
+
+ slfac1 = 2.98156f / comtop_1.widthpt;
+ all_1.figbass = FALSE_;
+ s_rsle(&io___1262);
+ do_lio(&c__3, &c__1, (char *)&ifig, (ftnlen)sizeof(integer));
+ e_rsle();
+ if (ifig == 1) {
+ all_1.figbass = TRUE_;
+ o__1.oerr = 0;
+ o__1.ounit = 14;
+ o__1.ofnm = 0;
+ o__1.orl = 0;
+ o__1.osta = "SCRATCH";
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ s_wsfe(&io___1264);
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 3, a__1[1] = "def";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 8, a__1[3] = "fixdrop{";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 7, a__1[5] = "advance";
+ i__3[6] = 1, a__1[6] = all_1.sq;
+ i__3[7] = 10, a__1[7] = "sysno by 1";
+ i__3[8] = 1, a__1[8] = all_1.sq;
+ i__3[9] = 6, a__1[9] = "ifcase";
+ i__3[10] = 1, a__1[10] = all_1.sq;
+ i__3[11] = 6, a__1[11] = "sysno%";
+ s_cat(ch__2, a__1, i__3, &c__12, (ftnlen)46);
+ do_fio(&c__1, ch__2, (ftnlen)46);
+ e_wsfe();
+ }
+ comget_1.lastchar = FALSE_;
+ ibcoff = 0;
+ if (xmtrnum0 > 0.f) {
+ ibcoff = -1;
+ }
+ o__1.oerr = 0;
+ o__1.ounit = 11;
+ o__1.ofnm = 0;
+ o__1.orl = 0;
+ o__1.osta = "SCRATCH";
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+
+/* vshrink for the first page is calculated in topfile, */
+/* and if true set interstaff=10. vshrink affects Titles. */
+/* Must also save vshrink for page ending. */
+
+ topfile_(basenameq, &lbase, &all_1.nv, comclefq_1.clefq, &noinst, &
+ all_1.musicsize, xintstaff, &all_1.mtrnmp, &all_1.mtrdnp, &
+ vshrink, &comask_1.fbar, &comslur_1.fontslur, (ftnlen)44, (ftnlen)
+ 1);
+
+/* ninow is working value of # of instruments. noinst is max #, and # at start. */
+
+ comnotes_1.ninow = noinst;
+
+/* Save original printed meter in case movement breaks */
+
+ comget_1.movnmp = all_1.mtrnmp;
+ comget_1.movdnp = all_1.mtrdnp;
+
+ if (comlast_1.islast && all_1.figbass && all_1.musicsize == 16) {
+ s_wsfe(&io___1267);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 3, a__2[1] = "def";
+ i__4[2] = 1, a__2[2] = all_1.sq;
+ i__4[3] = 8, a__2[3] = "figfont{";
+ i__4[4] = 1, a__2[4] = all_1.sq;
+ i__4[5] = 9, a__2[5] = "eightrm}%";
+ s_cat(ch__3, a__2, i__4, &c__6, (ftnlen)23);
+ do_fio(&c__1, ch__3, (ftnlen)23);
+ e_wsfe();
+ }
+
+ if (comlast_1.islast && comligfont_1.isligfont) {
+ if (all_1.musicsize == 16) {
+ s_wsfe(&io___1268);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 4, a__3[1] = "font";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 20, a__3[3] = "ligfont=cmrj at 8pt%";
+ s_cat(ch__4, a__3, i__5, &c__4, (ftnlen)26);
+ do_fio(&c__1, ch__4, (ftnlen)26);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1269);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 4, a__3[1] = "font";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 21, a__3[3] = "ligfont=cmrj at 10pt%";
+ s_cat(ch__5, a__3, i__5, &c__4, (ftnlen)27);
+ do_fio(&c__1, ch__5, (ftnlen)27);
+ e_wsfe();
+ }
+ }
+ lenbeat = ifnodur_(&all_1.mtrdenl, "x", (ftnlen)1);
+ if (all_1.mtrdenl == 2) {
+ lenbeat = 16;
+ }
+ all_1.lenb1 = all_1.mtrnuml * lenbeat;
+ if (all_1.mtrdenl == 2) {
+ all_1.lenb1 <<= 1;
+ }
+ setmeter_(&all_1.mtrnuml, &all_1.mtrdenl, &combeam_1.ibmtyp, &ibmrep);
+ r__1 = xmtrnum0 * lenbeat;
+ all_1.lenb0 = i_nint(&r__1);
+ if (all_1.mtrdenl == 2) {
+ all_1.lenb0 <<= 1;
+ }
+ if (all_1.lenb0 != 0) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1272);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 7, a__3[1] = "advance";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 11, a__3[3] = "barno by -1";
+ s_cat(ch__6, a__3, i__5, &c__4, (ftnlen)20);
+ do_fio(&c__1, ch__6, (ftnlen)20);
+ e_wsfe();
+ }
+ all_1.lenbar = all_1.lenb0;
+ } else {
+ all_1.lenbar = all_1.lenb1;
+ }
+
+/* Initialize full-program variables */
+
+ comask_1.fixednew = 0.f;
+ comask_1.scaldold = 0.f;
+ comget_1.fintstf = -1.f;
+ comget_1.gintstf = 1.f;
+ comas2_1.nasksys = 0;
+ combibarcnt_1.ibarcnt = 0;
+ all_1.iline = 0;
+ comget_1.movbrk = 0;
+ isystpg = 0;
+ comnotes_1.ipage = 1;
+ all_1.iccount = 128;
+ comas3_1.iask = 0;
+ nhstot = 0;
+ comnsp_2.nb = 1;
+ if (! (*optimize)) {
+ jprntb = 81;
+ }
+ comtop_1.idsig = 0;
+
+/* Next 5 are raise-barno parameters. irzbnd is integer part of default level. */
+
+ comsln_1.irzbnd = 3;
+ if (comtop_1.isig == 3 && *(unsigned char *)&comclefq_1.clefq[all_1.nv -
+ 1] == 't') {
+ comsln_1.irzbnd = 4;
+ }
+ comsln_1.is1n1 = 0;
+ comsln_1.isnx = 0;
+ comslur_1.slurcurve = 0.f;
+
+/* 111109 Made global rather than per gulp */
+
+ comdyn_1.ndyn = 0;
+ compoi_1.ispoi = FALSE_;
+ slint = FALSE_;
+ lrptpend = FALSE_;
+ comget_1.rptnd1 = FALSE_;
+ *(unsigned char *)comget_1.rptfq2 = 'E';
+ comget_1.rptprev = FALSE_;
+ onvolt = FALSE_;
+ comnsp_2.flgndb = FALSE_;
+ comget_1.fbon = FALSE_;
+ comnotes_1.shifton = FALSE_;
+ comget_1.ornrpt = FALSE_;
+ comnotes_1.setis = FALSE_;
+ comarp_1.lowdot = FALSE_;
+ comnvi_1.rename = FALSE_;
+ comnotes_1.nobar1 = FALSE_;
+ comget_1.equalize = FALSE_;
+ comlast_1.usevshrink = TRUE_;
+ comslur_1.wrotepsslurdefaults = FALSE_;
+ comnotes_1.optlinebreakties = FALSE_;
+ comnotes_1.headerspecial = FALSE_;
+
+/* vshrink is initialized in topfile */
+
+ comget_1.stickys = FALSE_;
+
+/* ixrest = 1 or 2 if xtup has started with a rest */
+
+ for (commvl_1.ivx = 1; commvl_1.ivx <= 24; ++commvl_1.ivx) {
+ strtmid_1.ixrest[commvl_1.ivx - 1] = 0;
+ comfig_1.fullsize[commvl_1.ivx - 1] = 1.f;
+
+/* Set legacy note level to middle c as default */
+
+ comnotes_1.ndlev[commvl_1.ivx - 1] = 29;
+ comnotes_1.ndlev[commvl_1.ivx + 23] = 29;
+/* L1: */
+ }
+ comnotes_1.npreslur = 0;
+ nhssys = 0;
+ comslur_1.listslur = 0;
+ for (i__ = 1; i__ <= 202; ++i__) {
+ all_1.isdat1[i__ - 1] = 0;
+ all_1.isdat2[i__ - 1] = 0;
+/* L31: */
+ }
+ all_1.nsdat = 0;
+
+/* Initialize flag for figures in any other voice than 1 */
+
+ comfig_1.ivxfig2 = 0;
+
+/* Initialize for loop over gulps */
+
+ all_1.firstgulp = TRUE_;
+
+/* Start a gulp */
+
+L30:
+ loop = TRUE_;
+ comnotes_1.notcrd = TRUE_;
+ combjmp_1.isbjmp = FALSE_;
+ combjmp_1.isbj2 = FALSE_;
+ comfb_1.autofbon = FALSE_;
+ comfb_1.tautofb = 0.f;
+ all_1.nbars = 0;
+ comfig_1.nfigs[0] = 0;
+ comfig_1.nfigs[1] = 0;
+ comgrace_1.ngrace = 0;
+ comtrill_1.ntrill = 0;
+ comtrill_1.ncrd = 0;
+ comtrill_1.nudorn = 0;
+ comgrace_1.nlit = 0;
+ comgrace_1.nvolt = 0;
+ comgrace_1.ibarmbr = 0;
+ comudsp_1.nudsp = 0;
+/* ndyn = 0 ! 111109 */
+ comdyn_1.ntxtdyn = 0;
+ comcb_1.nbc = 0;
+ comarpshift_1.numarpshift = 0;
+ for (i__ = 1; i__ <= 37; ++i__) {
+ comgrace_1.graspace[i__ - 1] = 0.f;
+/* L3: */
+ }
+
+/* Now initialize up to nv. Do it in getnote as r'qd for 2nd voices per syst. */
+/* and also if nv increases in an 'M' directive. */
+
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ newvoice_(&all_1.iv, comclefq_1.clefq + (all_1.iv - 1), &c_false, (
+ ftnlen)1);
+/* L4: */
+ }
+
+/* Check if endsymbol was set earlier */
+
+ if (comget_1.rptnd1) {
+ comget_1.rptnd1 = FALSE_;
+ *(unsigned char *)comget_1.rptfq2 = *(unsigned char *)comget_1.rptfq1;
+ } else {
+
+/* Only use if movbrk>0, to signal default ('RD') */
+
+ *(unsigned char *)comget_1.rptfq2 = 'E';
+ }
+ all_1.iv = 1;
+ commvl_1.ivx = 1;
+L2:
+ if (loop) {
+
+/* Within this loop, nv voices are filled up for the duration of the block. */
+/* On exit (loop=.false.) the following are set: nnl(nv),itsofar(nv) */
+/* nolev(nv,nnl(nv)),nodur(..),accq(..),irest(..). */
+/* nbars is for this input block. */
+/* Only at the beginning of an input block will there be a possible mtr change, */
+/* signalled by a nonzero mtrnuml. (which will be re-zeroed right after change) */
+
+ getnote_(&loop);
+ if (comget_1.lastchar) {
+ goto L40;
+ }
+ goto L2;
+ }
+
+/* Finished an input block (gulp). */
+
+ if (commidi_1.ismidi) {
+
+/* Put rests into midi array for 2nd lines that were not used in this gulp. */
+
+ i__1 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__1; ++all_1.iv) {
+ if (commidi_1.twoline[all_1.iv - 1] && commvl_1.nvmx[all_1.iv - 1]
+ == 1) {
+ if (all_1.firstgulp && all_1.lenb0 != 0) {
+ r__1 = (all_1.nbars - 1.f) * all_1.lenbar + all_1.lenb0;
+ addmidi_(&commidi_1.midchan[all_1.iv + 23], &c__0, &c__0,
+ &c__0, &r__1, &c_true, &c_false);
+ } else {
+ r__1 = all_1.nbars * 1.f * all_1.lenbar;
+ addmidi_(&commidi_1.midchan[all_1.iv + 23], &c__0, &c__0,
+ &c__0, &r__1, &c_true, &c_false);
+ }
+ }
+/* L60: */
+ }
+ }
+ comgrace_1.nvolt = 0;
+ for (all_1.iv = 1; all_1.iv <= 24; ++all_1.iv) {
+ comudsp_1.nudoff[all_1.iv - 1] = 0;
+ comcc_1.ndotmv[all_1.iv - 1] = 0;
+/* L28: */
+ }
+
+/* Put stuff at top of p.1. Must wait until now to have read title info. */
+
+ if (combibarcnt_1.ibarcnt == 0) {
+ puttitle_(&inhnoh, &xnsttop[comnotes_1.ipage - 1], &etatop, all_1.sq,
+ &etait, &etatc, &etacs1, &all_1.nv, &vshrink, all_1.sepsymq, (
+ ftnlen)1, (ftnlen)1);
+ if (comnotes_1.headerspecial) {
+ s_wsfe(&io___1282);
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__6[0] = 1, a__4[0] = ch__1;
+ i__6[1] = 28, a__4[1] = "special{header=psslurs.pro}%";
+ s_cat(ch__7, a__4, i__6, &c__2, (ftnlen)29);
+ do_fio(&c__1, ch__7, (ftnlen)29);
+ e_wsfe();
+ }
+
+/* Write special header for first page */
+
+ }
+ i__1 = all_1.nbars;
+ for (all_1.ibar = 1; all_1.ibar <= i__1; ++all_1.ibar) {
+ ++combibarcnt_1.ibarcnt;
+ comask_1.bar1syst = combibarcnt_1.ibarcnt == iauto;
+/* Computing MAX */
+ r__1 = combibarcnt_1.ibarcnt + .001f + ibcoff;
+ i__2 = 0, i__7 = (integer) r_lg10(&r__1);
+ ndig = max(i__2,i__7);
+ if (comlast_1.islast) {
+ ci__1.cierr = 0;
+ ci__1.ciunit = 11;
+/* Writing concatenation */
+ i__8[0] = 6, a__5[0] = "(a11,i";
+ i__2 = ndig + 50;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__8[1] = 1, a__5[1] = ch__1;
+ i__8[2] = 1, a__5[2] = ")";
+ ci__1.cifmt = (s_cat(ch__8, a__5, i__8, &c__3, (ftnlen)8), ch__8);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, "% Bar count", (ftnlen)11);
+ i__7 = combibarcnt_1.ibarcnt + ibcoff;
+ do_fio(&c__1, (char *)&i__7, (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+ if (all_1.ibar != comgrace_1.ibarmbr) {
+ if (! (*optimize)) {
+ i__2 = combibarcnt_1.ibarcnt + ibcoff;
+ outbar_(&i__2, &jprntb);
+ }
+ } else {
+ if (! (*optimize)) {
+ s_wsfe(&io___1284);
+ do_fio(&c__1, " Multibar rest, bars", (ftnlen)20);
+ i__2 = combibarcnt_1.ibarcnt + ibcoff;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "-", (ftnlen)1);
+ i__7 = combibarcnt_1.ibarcnt + ibcoff + comgrace_1.mbrest - 1;
+ do_fio(&c__1, (char *)&i__7, (ftnlen)sizeof(integer));
+ e_wsfe();
+ s_wsfe(&io___1285);
+ do_fio(&c__1, " Multibar rest, bars", (ftnlen)20);
+ i__2 = combibarcnt_1.ibarcnt + ibcoff;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "-", (ftnlen)1);
+ i__7 = combibarcnt_1.ibarcnt + ibcoff + comgrace_1.mbrest - 1;
+ do_fio(&c__1, (char *)&i__7, (ftnlen)sizeof(integer));
+ e_wsfe();
+ jprntb = 0;
+ }
+ ibcoff = ibcoff + comgrace_1.mbrest - 1;
+ if (all_1.ibar == 1 && all_1.firstgulp && ! bit_test(all_1.islur[
+ 0],5)) {
+ comgrace_1.xb4mbr = comstart_1.facmtr * all_1.musicsize;
+ }
+
+/* The above may be he only case where the space-before option is used in \mbrest */
+
+ }
+
+/* Move the read to after end-of-bar hardspace checks, so we get right poenom */
+/* at end of a line. */
+/* if (bar1syst) read(12,*) poenom */
+
+/* Check for clef at start of bar. No slide yet. Also flags at end of prev. */
+/* bar. This block is run at the start of every bar. May fail for flag at */
+/* end of last bar. To account for necc. hardspaces, compute and store */
+/* nhssys = # of hard spaces for this system */
+/* hesk(nhssys) = elemskips avialable */
+/* hpts(nhssys) = hard points needed, including notehead */
+/* Here, merely insert placeholder into output. Later, when poe is computed, */
+/* compute additional pts and store them in hpttot(1...nhstot). Finally in */
+/* subroutine askfig, write true pts where placeholders are. */
+
+ ioff = 0;
+ if (all_1.ibar > 1) {
+ ioff = all_1.nib[(all_1.ibar - 1) * 24 - 24];
+ }
+ clchb = bit_test(all_1.islur[(ioff + 1) * 24 - 24],15);
+ putmbr = FALSE_;
+ if (ismbr) {
+ if (clchb) {
+
+/* Clef change and multi-bar rest coming up. Kluge to get space at end of rest. */
+
+ s_wsfe(&io___1289);
+/* Writing concatenation */
+ i__9[0] = 1, a__6[0] = all_1.sq;
+ i__9[1] = 3, a__6[1] = "let";
+ i__9[2] = 1, a__6[2] = all_1.sq;
+ i__9[3] = 4, a__6[3] = "mbrt";
+ i__9[4] = 1, a__6[4] = all_1.sq;
+ i__9[5] = 6, a__6[5] = "mbrest";
+ i__9[6] = 1, a__6[6] = all_1.sq;
+ i__9[7] = 3, a__6[7] = "def";
+ i__9[8] = 1, a__6[8] = all_1.sq;
+ i__9[9] = 14, a__6[9] = "mbrest#1#2#3{%";
+ s_cat(ch__9, a__6, i__9, &c__10, (ftnlen)35);
+ do_fio(&c__1, ch__9, (ftnlen)35);
+ e_wsfe();
+ s_wsfe(&io___1290);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 13, a__4[1] = "mbrt{#1}{#2}{";
+ s_cat(ch__10, a__4, i__6, &c__2, (ftnlen)14);
+ do_fio(&c__1, ch__10, (ftnlen)14);
+ r__1 = all_1.musicsize * .55f;
+ do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
+/* Writing concatenation */
+ i__10[0] = 1, a__7[0] = "}";
+ i__10[1] = 1, a__7[1] = all_1.sq;
+ i__10[2] = 6, a__7[2] = "global";
+ i__10[3] = 1, a__7[3] = all_1.sq;
+ i__10[4] = 3, a__7[4] = "let";
+ i__10[5] = 1, a__7[5] = all_1.sq;
+ i__10[6] = 6, a__7[6] = "mbrest";
+ i__10[7] = 1, a__7[7] = all_1.sq;
+ i__10[8] = 6, a__7[8] = "mbrt}%";
+ s_cat(ch__4, a__7, i__10, &c__9, (ftnlen)26);
+ do_fio(&c__1, ch__4, (ftnlen)26);
+ e_wsfe();
+ }
+ ismbr = FALSE_;
+ putmbr = TRUE_;
+ }
+ if (all_1.ibar == comgrace_1.ibarmbr) {
+ ismbr = TRUE_;
+ }
+
+/* Set flag here so at start of next bar, if there's a clef change, can add space */
+/* after the mbr with the above kluge */
+
+ if (! (clchb || comnsp_2.flgndb)) {
+ goto L23;
+ }
+
+/* Must check available space */
+
+ ptsndb = 0.f;
+
+/* Zero out block signal */
+
+ if (clchb) {
+ all_1.islur[(ioff + 1) * 24 - 24] = bit_clear(all_1.islur[(ioff +
+ 1) * 24 - 24],15);
+ }
+
+/* In this loop, we determine how much hardspace is needed (if any) */
+/* 9/7/97 Note that for last bar in input block, if number of lines of */
+/* music decreases in new block, highest numbered ones won't be checked */
+/* since the loop below covers the new nvmx(iv), not necessarily the old */
+/* one. */
+/* 4/18/98 Apparently nmxsav was a solution to the above problem */
+
+ i__2 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__2; ++all_1.iv) {
+ i__7 = comnsp_2.nvmxsav[all_1.iv - 1];
+ for (kv = 1; kv <= i__7; ++kv) {
+ commvl_1.ivx = comnsp_2.ivmxsav[all_1.iv + kv * 24 - 25];
+ ptsndv = comnsp_2.flgndv[commvl_1.ivx - 1] * comask_1.wheadpt;
+ ioff = 0;
+ if (all_1.ibar > 1) {
+ ioff = all_1.nib[commvl_1.ivx + (all_1.ibar - 1) * 24 -
+ 25];
+ ip = ioff;
+ if (all_1.ibar > 2) {
+ ip = ioff - all_1.nib[commvl_1.ivx + (all_1.ibar - 2)
+ * 24 - 25];
+ }
+/* prevtn(ivx) = tnote(iand(ipl(ivx,ip),255)) */
+ comnsp_2.prevtn[commvl_1.ivx - 1] = all_1.tnote[
+ comipl2_1.ipl2[commvl_1.ivx + ip * 24 - 25] - 1];
+
+/* If ibar=1 (1st bar in input block), prevtn(ivx) was set at end of makeabar. */
+
+ }
+
+/* Only allow clef changes when ivx <= nv */
+
+ if (commvl_1.ivx <= all_1.nv) {
+ clchv[all_1.iv - 1] = clchb && bit_test(all_1.islur[
+ all_1.iv + (ioff + 1) * 24 - 25],11);
+ if (clchv[all_1.iv - 1]) {
+
+/* Clef change in this voice. Turn off signal. Get space avail. */
+
+ all_1.islur[all_1.iv + (ioff + 1) * 24 - 25] =
+ bit_clear(all_1.islur[all_1.iv + (ioff + 1) *
+ 24 - 25],11);
+ if ((r__1 = comnsp_2.prevtn[all_1.iv - 1] -
+ comnsp_2.space[comnsp_2.nb - 1], dabs(r__1)) <
+ comtol_1.tol) {
+ ptsndv += combmh_1.clefend * comask_1.wheadpt;
+ }
+ }
+ }
+/* Computing MAX */
+ r__1 = ptsndb, r__2 = ptsndv + comask_1.wheadpt *
+ spfacs_1.xspfac;
+ ptsndb = dmax(r__1,r__2);
+/* L16: */
+ }
+ }
+
+/* ???? where is nb set??? nb probably in left over from makeabar */
+
+ r__1 = comnsp_2.space[comnsp_2.nb - 1] * squez[comnsp_2.nb - 1];
+ esk = feon_(&r__1);
+ ptsdflt = esk * comask_1.poenom - comask_1.wheadpt;
+/* if ((ptsndb.gt.ptsdflt.or.ptsgnd.gt.0.) .and. movbrk.eq.0) then */
+ if ((ptsndb > ptsdflt || comnsp_2.ptsgnd > 0.f) && comget_1.movbrk ==
+ 0 && ! putmbr) {
+
+/* Must ADD hardspace! So put in a placeholder, and store params for later. */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___1299);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 18, a__4[1] = "xardspace{ pt}%";
+ s_cat(ch__11, a__4, i__6, &c__2, (ftnlen)19);
+ do_fio(&c__1, ch__11, (ftnlen)19);
+ e_wsfe();
+ }
+ ++nhssys;
+ if (ptsndb - ptsdflt > comnsp_2.ptsgnd - comask_1.poenom *
+ comnsp_2.eskgnd) {
+ hesk[nhssys - 1] = esk;
+ hpts[nhssys - 1] = ptsndb + comask_1.wheadpt;
+ } else {
+ hesk[nhssys - 1] = comnsp_2.eskgnd;
+ hpts[nhssys - 1] = comnsp_2.ptsgnd + comask_1.wheadpt;
+ }
+ comask_1.fixednew += hpts[nhssys - 1];
+ comask_1.scaldold += hesk[nhssys - 1];
+ }
+ if (clchb) {
+ i__7 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__7; ++all_1.iv) {
+ if (clchv[all_1.iv - 1]) {
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 6, a__4[1] = "znotes";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ lnote = 7;
+ i__2 = all_1.iv;
+ for (iiv = 2; iiv <= i__2; ++iiv) {
+/* Writing concatenation */
+ i__6[0] = lnote, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = all_1.sepsymq + (iiv - 2);
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ ++lnote;
+/* L24: */
+ }
+
+/* Recompute ioff since it will vary from voice to voice */
+
+ if (all_1.ibar == 1) {
+ ioff = 0;
+ } else {
+ ioff = all_1.nib[all_1.iv + (all_1.ibar - 1) * 24 -
+ 25];
+ }
+
+/* Must call clefsym to get nclef, even if there is a movement break */
+
+ clefsym_(&all_1.islur[all_1.iv + (ioff + 1) * 24 - 25],
+ fmtq, &lclef, &nclef, (ftnlen)24);
+ if (comget_1.movbrk == 0 && comlast_1.islast) {
+ s_wsfe(&io___1308);
+/* Writing concatenation */
+ i__5[0] = lnote, a__3[0] = notexq;
+ i__5[1] = lclef, a__3[1] = fmtq;
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 3, a__3[3] = "en%";
+ s_cat(ch__12, a__3, i__5, &c__4, (ftnlen)107);
+ do_fio(&c__1, ch__12, lnote + lclef + 4);
+ e_wsfe();
+ }
+ wsclef_(&all_1.iv, &comnotes_1.ninow, comclefq_1.clefq, &
+ nclef, (ftnlen)1);
+ }
+/* L17: */
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1309);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "pmxnewclefs";
+ s_cat(ch__13, a__4, i__6, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__13, (ftnlen)12);
+ e_wsfe();
+ }
+ }
+L23:
+
+/* End of loop for end-of-bar hardspaces and non-movbrk clef symbol. */
+
+ if (comask_1.bar1syst) {
+ s_rsle(&io___1310);
+ do_lio(&c__4, &c__1, (char *)&comask_1.poenom, (ftnlen)sizeof(
+ real));
+ e_rsle();
+ }
+
+/* Repeat symbols. Haven't slid down yet, so use islur(1,nib(1,ibar-1)+1) */
+
+ if (all_1.ibar == 1) {
+ islnow = all_1.islur[0];
+ iornqnow = all_1.iornq[24];
+ } else {
+ islnow = all_1.islur[(all_1.nib[(all_1.ibar - 1) * 24 - 24] + 1) *
+ 24 - 24];
+ iornqnow = all_1.iornq[(all_1.nib[(all_1.ibar - 1) * 24 - 24] + 1)
+ * 24];
+ }
+
+/* Check for R-symbols set at end of prior input block */
+
+ if (comget_1.movbrk == 0 && *(unsigned char *)comget_1.rptfq2 != 'E')
+ {
+ if (*(unsigned char *)comget_1.rptfq2 == 'D') {
+ islnow = bit_set(islnow,26);
+ } else if (*(unsigned char *)comget_1.rptfq2 == 'r') {
+ islnow = bit_set(islnow,6);
+ } else if (*(unsigned char *)comget_1.rptfq2 == 'd') {
+ islnow = bit_set(islnow,8);
+ } else if (*(unsigned char *)comget_1.rptfq2 == 'b') {
+ islnow = bit_set(islnow,25);
+ } else {
+ s_wsle(&io___1313);
+ e_wsle();
+ s_wsle(&io___1314);
+ do_lio(&c__9, &c__1, "Illegal symbol with \"R\" at end of in"
+ "put block:", (ftnlen)46);
+ do_lio(&c__9, &c__1, comget_1.rptfq2, (ftnlen)1);
+ e_wsle();
+ stop1_();
+ }
+ *(unsigned char *)comget_1.rptfq2 = 'E';
+ }
+ if ((islnow & 352) != 0) {
+
+/* Bit 5(lrpt), 6(rrpt), or 8(doublebar) has been set */
+
+ lrpt = bit_test(islnow,5);
+ rrpt = bit_test(islnow,6);
+ lrptpend = lrpt && comask_1.bar1syst;
+ if (lrpt && ! lrptpend) {
+ if (rrpt) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1317);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 18, a__4[1] = "setleftrightrepeat";
+ s_cat(ch__11, a__4, i__6, &c__2, (ftnlen)19);
+ do_fio(&c__1, ch__11, (ftnlen)19);
+ e_wsfe();
+ }
+ comask_1.fixednew = comask_1.fixednew + comask_1.wheadpt *
+ spfacs_1.lrrptfac - .4f;
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1318);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 13, a__4[1] = "setleftrepeat";
+ s_cat(ch__10, a__4, i__6, &c__2, (ftnlen)14);
+ do_fio(&c__1, ch__10, (ftnlen)14);
+ e_wsfe();
+ }
+ comask_1.fixednew = comask_1.fixednew + comask_1.wheadpt *
+ spfacs_1.rptfac - .4f;
+ }
+ } else if (rrpt) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1319);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 14, a__4[1] = "setrightrepeat";
+ s_cat(ch__14, a__4, i__6, &c__2, (ftnlen)15);
+ do_fio(&c__1, ch__14, (ftnlen)15);
+ e_wsfe();
+ }
+ comask_1.fixednew = comask_1.fixednew + comask_1.wheadpt *
+ spfacs_1.rptfac - .4f;
+ } else if (bit_test(islnow,8)) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1320);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 12, a__4[1] = "setdoublebar";
+ s_cat(ch__15, a__4, i__6, &c__2, (ftnlen)13);
+ do_fio(&c__1, ch__15, (ftnlen)13);
+ e_wsfe();
+ }
+ comask_1.fixednew = comask_1.fixednew + comask_1.wheadpt *
+ spfacs_1.dbarfac - .4f;
+ }
+ } else if (bit_test(islnow,26)) {
+
+/* doubleBAR */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___1321);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 12, a__4[1] = "setdoubleBAR";
+ s_cat(ch__15, a__4, i__6, &c__2, (ftnlen)13);
+ do_fio(&c__1, ch__15, (ftnlen)13);
+ e_wsfe();
+ }
+ comask_1.fixednew = comask_1.fixednew + comask_1.wheadpt *
+ spfacs_1.ddbarfac - .4f;
+ } else if (bit_test(iornqnow,29)) {
+
+/* no bar line */
+
+/* -- if (islast) write(11,'(a)')sq//'setzalaligne' */
+/* ++ */
+ if (comlast_1.islast) {
+ if (comget_1.movbrk == 0) {
+ s_wsfe(&io___1322);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 12, a__4[1] = "setzalaligne";
+ s_cat(ch__15, a__4, i__6, &c__2, (ftnlen)13);
+ do_fio(&c__1, ch__15, (ftnlen)13);
+ e_wsfe();
+ } else {
+
+/* Encountered "Rz" at start of input block at start of new movement, Must */
+/* use newmovement macro with arg 4 rather than setzalaligne, since former */
+/* already redefines stoppiece. */
+
+ *(unsigned char *)comget_1.rptfq2 = 'z';
+ }
+ }
+/* ++ */
+ comask_1.fixednew += -.4f;
+ }
+
+/* 1st and 2nd endings */
+
+ svolta = bit_test(islnow,7);
+ evolta = bit_test(islnow,9);
+ if (evolta) {
+ if (bit_test(islnow,10)) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1325);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "endvoltabox";
+ s_cat(ch__13, a__4, i__6, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__13, (ftnlen)12);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1326);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "endvolta";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ }
+ onvolt = FALSE_;
+ }
+ if (svolta) {
+ ++comgrace_1.nvolt;
+ lvoltxt = i_indx(comgrace_1.voltxtq + (comgrace_1.nvolt - 1) * 20,
+ " ", (ftnlen)20, (ftnlen)1) - 1;
+ if (lvoltxt == 1) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1328);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 8, a__3[1] = "Setvolta";
+ i__5[2] = 1, a__3[2] = comgrace_1.voltxtq + (
+ comgrace_1.nvolt - 1) * 20;
+ i__5[3] = 1, a__3[3] = "%";
+ s_cat(ch__17, a__3, i__5, &c__4, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1329);
+/* Writing concatenation */
+ i__11[0] = 1, a__8[0] = all_1.sq;
+ i__11[1] = 8, a__8[1] = "Setvolta";
+ i__11[2] = 1, a__8[2] = "{";
+ i__11[3] = lvoltxt, a__8[3] = comgrace_1.voltxtq + (
+ comgrace_1.nvolt - 1) * 20;
+ i__11[4] = 2, a__8[4] = "}%";
+ s_cat(ch__18, a__8, i__11, &c__5, (ftnlen)32);
+ do_fio(&c__1, ch__18, lvoltxt + 12);
+ e_wsfe();
+ }
+ }
+ onvolt = TRUE_;
+ }
+ if (all_1.ibar > 1) {
+ ipnow = all_1.nib[(all_1.ibar - 1) * 24 - 24] + 1;
+ } else {
+ ipnow = 1;
+ }
+ iplnow = all_1.ipl[ipnow * 24 - 24];
+ if (comask_1.bar1syst) {
+
+/* If listslur>0, then there is at least one slur or tie carried over the break */
+
+ ispstie = FALSE_;
+ if (comnotes_1.optlinebreakties && ! comslur_1.fontslur &&
+ comslur_1.listslur != 0 && comlast_1.islast) {
+ linebreakties_(all_1.isdat1, all_1.isdat2, all_1.isdat3,
+ all_1.isdat4, &all_1.nsdat, &ispstie, all_1.sepsymq, (
+ ftnlen)1);
+ }
+ ++all_1.iline;
+
+/* End an old system, Start a new system */
+
+ if (all_1.iline != 1) {
+
+/* Not first line. */
+/* Get corrected poe = points/elemskip for *previous* system */
+
+ wdpt = comtop_1.widthpt * (1 - comtop_1.fracindent);
+ poe = (wdpt - fsyst * all_1.musicsize - nbarss * .4f -
+ comask_1.fixednew) / (elsktot + comask_1.fbar *
+ nbarss - comask_1.scaldold);
+ ++isyscnt;
+ poevec[isyscnt] = poe;
+
+/* Transfer data for system into global arrays to hold until very end */
+
+ i__7 = comas2_1.nasksys;
+ for (ia = 1; ia <= i__7; ++ia) {
+ ++comas3_1.iask;
+ comas3_1.ask[comas3_1.iask - 1] = comas2_1.wasksys[ia - 1]
+ / poe - (r__1 = comas2_1.elasksys[ia - 1], dabs(
+ r__1));
+
+/* Only admit negative ask if it was user-defined space, signalled by elask<=0. */
+
+ if (comas2_1.elasksys[ia - 1] > 0.f) {
+ comas3_1.ask[comas3_1.iask - 1] = r_dim(&comas3_1.ask[
+ comas3_1.iask - 1], &c_b736);
+ }
+/* L9: */
+ }
+ i__7 = nhssys;
+ for (ia = 1; ia <= i__7; ++ia) {
+ ++nhstot;
+/* Computing MAX */
+ r__1 = hpts[ia - 1] - hesk[ia - 1] * poe;
+ comhsp_1.hpttot[nhstot - 1] = dmax(r__1,0.f);
+/* L25: */
+ }
+
+/* Reset counters for new system */
+
+ comask_1.scaldold = 0.f;
+ comask_1.fixednew = 0.f;
+ comas2_1.nasksys = 0;
+ nhssys = 0;
+ }
+
+/* End of if block for first bar of non-first system. Still 1st bar, any system */
+
+ if (comlast_1.islast && all_1.figbass) {
+ s_wsfe(&io___1339);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "fixdrop%";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ ++isystpg;
+
+/* Try moving the next stmt way down, to fix a bug and get \eject printed at */
+/* end of single-system page. */
+/* if (isystpg .eq. nsystp(ipage)) isystpg = 0 */
+ s_rsle(&io___1340);
+ do_lio(&c__3, &c__1, (char *)&nbarss, (ftnlen)sizeof(integer));
+ do_lio(&c__4, &c__1, (char *)&elsktot, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&fsyst, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&frac, (ftnlen)sizeof(real));
+ do_lio(&c__4, &c__1, (char *)&comeon_1.eonk, (ftnlen)sizeof(real))
+ ;
+ do_lio(&c__4, &c__1, (char *)&comeon_1.ewmxk, (ftnlen)sizeof(real)
+ );
+ e_rsle();
+ if (all_1.iline > 1) {
+ comtop_1.fracindent = frac;
+ }
+ if (all_1.figbass) {
+ all_1.ifigdr[(all_1.iline << 1) - 2] = 4;
+ all_1.ifigdr[(all_1.iline << 1) - 1] = 4;
+ }
+ all_1.slfac = slfac1 * all_1.musicsize * elsktot;
+ if (all_1.iline != 1) {
+
+/* For the line just _finished_, put figdrop in separate file. */
+
+ if (all_1.figbass) {
+ s_wsfe(&io___1342);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "figdrop=";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ do_fio(&c__1, (char *)&all_1.ifigdr[(all_1.iline - 1 << 1)
+ - 2], (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__8[0] = 1, a__5[0] = " ";
+ i__8[1] = 1, a__5[1] = all_1.sq;
+ i__8[2] = 8, a__5[2] = "figdtwo=";
+ s_cat(ch__19, a__5, i__8, &c__3, (ftnlen)10);
+ do_fio(&c__1, ch__19, (ftnlen)10);
+ do_fio(&c__1, (char *)&all_1.ifigdr[(all_1.iline - 1 << 1)
+ - 1], (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__12[0] = 1, a__9[0] = all_1.sq;
+ i__12[1] = 3, a__9[1] = "or%";
+ s_cat(ch__20, a__9, i__12, &c__2, (ftnlen)4);
+ do_fio(&c__1, ch__20, (ftnlen)4);
+ e_wsfe();
+ }
+
+/* Check slurs in top staff for interference w/ barno. Only check when */
+/* # if digits in barno >= |isig| But to keep on/off phasing, must ALWAYS */
+/* keep track of ons and offs when |isig|<=3. */
+
+ r__1 = combibarcnt_1.ibarcnt + ibcoff + .01f;
+ ndigbn = (integer) r_lg10(&r__1) + 1;
+ comsln_1.isnx = 0;
+ if (ndigbn >= abs(comtop_1.isig) && comsln_1.is1n1 > 0) {
+
+/* There's a slur in top voice over the line break, hgt=is1n1, idcode=is2n1 */
+/* Look for termination in remainder of this input block. If not found, */
+/* just use is1n1. Remember, haven't slid down yet. */
+
+ ioff = 0;
+ if (all_1.ibar > 1) {
+ ioff = all_1.nib[commvl_1.ivmx[all_1.nv +
+ commvl_1.nvmx[all_1.nv - 1] * 24 - 25] + (
+ all_1.ibar - 1) * 24 - 25];
+ }
+ i__7 = all_1.nsdat;
+ for (isdat = 1; isdat <= i__7; ++isdat) {
+ if (igetbits_(&all_1.isdat1[isdat - 1], &c__5, &c__13)
+ == commvl_1.ivmx[all_1.nv + commvl_1.nvmx[
+ all_1.nv - 1] * 24 - 25] && ! bit_test(
+ all_1.isdat1[isdat - 1],11) && igetbits_(&
+ all_1.isdat1[isdat - 1], &c__7, &c__19) ==
+ comsln_1.is2n1) {
+
+/* Found slur ending. Just check note height, can't do fine adjustments. */
+
+/* is1n1 = max(is1n1,igetbits(isdat2(nsdat),7,19)) */
+/* Computing MAX */
+ i__2 = comsln_1.is1n1, i__13 = igetbits_(&
+ all_1.isdat2[isdat - 1], &c__7, &c__19);
+ comsln_1.is1n1 = max(i__2,i__13);
+ goto L51;
+ }
+/* L50: */
+ }
+
+/* If exiting loop normally, did not find end of slur. c'est la vie. */
+
+L51:
+ i__7 = ncmid_(&all_1.nv, &c__1) + 1 + comsln_1.irzbnd;
+ comsln_1.isnx = i_dim(&comsln_1.is1n1, &i__7);
+ if (comsln_1.isnx > 0) {
+
+/* AHA! Slur likely to interfere with barno. */
+
+/* Modified 090525 to use \bnrs */
+
+ slint = TRUE_;
+ s_copy(fmtq, "(a16,i1,a14)", (ftnlen)24, (ftnlen)12);
+ if (comsln_1.irzbnd + comsln_1.isnx > 9) {
+ s_copy(fmtq, "(a16,i2,a14)", (ftnlen)24, (ftnlen)
+ 12);
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1345);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 3, a__3[1] = "def";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 11, a__3[3] = "raisebarno{";
+ s_cat(ch__21, a__3, i__5, &c__4, (ftnlen)16);
+ do_fio(&c__1, ch__21, (ftnlen)16);
+ i__7 = comsln_1.irzbnd + comsln_1.isnx;
+ do_fio(&c__1, (char *)&i__7, (ftnlen)sizeof(
+ integer));
+/* Writing concatenation */
+ i__8[0] = 2, a__5[0] = ".5";
+ i__8[1] = 1, a__5[1] = all_1.sq;
+ i__8[2] = 11, a__5[2] = "internote}%";
+ s_cat(ch__10, a__5, i__8, &c__3, (ftnlen)14);
+ do_fio(&c__1, ch__10, (ftnlen)14);
+ e_wsfe();
+ }
+/* if (islast) then */
+/* if (isnx .le. 9) then */
+/* write(11,'(a5,i1,a2)')sq//'bnrs',isnx,'0%' */
+/* else */
+/* write(11,'(a6,i2,a3)')sq//'bnrs{',isnx,'}0%' */
+/* end if */
+/* end if */
+
+ }
+ }
+ if (comget_1.movbrk > 0) {
+
+/* movbrk = 0 */
+/* Move the reset down, so can use movbrk>0 to stop extra meter prints. */
+
+/* New movement. Redefine stoppiece, contpiece. These will be called either */
+/* explicitly or as part of alaligne. */
+/* indsym = 0,1,2 for doubleBAR , doublebar, rightrepeat. */
+/* This is passed to \newmovement. */
+
+ if (*(unsigned char *)comget_1.rptfq2 == 'E') {
+ *(unsigned char *)comget_1.rptfq2 = 'D';
+ }
+ indsym = i_indx("Ddrbz", comget_1.rptfq2, (ftnlen)5, (
+ ftnlen)1) - 1;
+ *(unsigned char *)comget_1.rptfq2 = 'E';
+
+/* Also check for Rd or Rr set the normal way */
+
+ if (bit_test(islnow,8)) {
+ indsym = 1;
+ } else if (bit_test(islnow,6)) {
+ indsym = 2;
+ }
+ if (indsym < 0) {
+ s_wsle(&io___1347);
+ e_wsle();
+ s_wsle(&io___1348);
+ do_lio(&c__9, &c__1, "Illegal end symbol before \"/\""
+ , (ftnlen)29);
+ e_wsle();
+ stop1_();
+ }
+
+/* Check for continuation (no bar number reset) */
+
+ if (comlast_1.islast && comnotes_1.nobar1) {
+ s_wsfe(&io___1349);
+/* Writing concatenation */
+ i__14[0] = 1, a__10[0] = all_1.sq;
+ i__14[1] = 7, a__10[1] = "advance";
+ i__14[2] = 1, a__10[2] = all_1.sq;
+ i__14[3] = 6, a__10[3] = "barno1";
+ i__14[4] = 1, a__10[4] = all_1.sq;
+ i__14[5] = 10, a__10[5] = "startbarno";
+ i__14[6] = 1, a__10[6] = all_1.sq;
+ i__14[7] = 6, a__10[7] = "barno%";
+ s_cat(ch__22, a__10, i__14, &c__8, (ftnlen)33);
+ do_fio(&c__1, ch__22, (ftnlen)33);
+ e_wsfe();
+ }
+ if (comget_1.movgap < 10) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1350);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "newmovement";
+ s_cat(ch__13, a__4, i__6, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__13, (ftnlen)12);
+ do_fio(&c__1, (char *)&comget_1.movgap, (ftnlen)
+ sizeof(integer));
+ do_fio(&c__1, (char *)&indsym, (ftnlen)sizeof(
+ integer));
+ do_fio(&c__1, "%", (ftnlen)1);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1351);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 12, a__4[1] = "newmovement{";
+ s_cat(ch__15, a__4, i__6, &c__2, (ftnlen)13);
+ do_fio(&c__1, ch__15, (ftnlen)13);
+ do_fio(&c__1, (char *)&comget_1.movgap, (ftnlen)
+ sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ do_fio(&c__1, (char *)&indsym, (ftnlen)sizeof(
+ integer));
+ do_fio(&c__1, "%", (ftnlen)1);
+ e_wsfe();
+ }
+ }
+
+/* Change generalmeter if necessary */
+
+ if (comlast_1.islast) {
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ }
+
+/* (Moved all name-writing to getnote, right when 'M' is detected) */
+
+ if (bit_test(iplnow,28)) {
+
+/* Key signature at movement break */
+
+ iplnow = bit_clear(iplnow,28);
+ if (comtop_1.isig > 0) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1352);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 17, a__4[1] = "generalsignature{";
+ s_cat(ch__23, a__4, i__6, &c__2, (ftnlen)18);
+ do_fio(&c__1, ch__23, (ftnlen)18);
+ do_fio(&c__1, (char *)&comtop_1.isig, (ftnlen)
+ sizeof(integer));
+ do_fio(&c__1, "}%", (ftnlen)2);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1353);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 17, a__4[1] = "generalsignature{";
+ s_cat(ch__23, a__4, i__6, &c__2, (ftnlen)18);
+ do_fio(&c__1, ch__23, (ftnlen)18);
+ do_fio(&c__1, (char *)&comtop_1.isig, (ftnlen)
+ sizeof(integer));
+ do_fio(&c__1, "}%", (ftnlen)2);
+ e_wsfe();
+ }
+ }
+ if (comlast_1.islast && cominsttrans_1.laterinsttrans)
+ {
+ writesetsign_(&cominsttrans_1.ninsttrans,
+ cominsttrans_1.iinsttrans,
+ cominsttrans_1.itranskey, &
+ cominsttrans_1.laterinsttrans);
+ }
+ }
+ if (comget_1.parmov >= -.1f) {
+
+/* Resent paragraph indentation */
+
+ ipi = comget_1.parmov * comtop_1.widthpt + .1f;
+ if (ipi < 10) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1355);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "parindent ";
+ s_cat(ch__17, a__4, i__6, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ do_fio(&c__1, (char *)&ipi, (ftnlen)sizeof(
+ integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ }
+ } else if (ipi < 100) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1356);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "parindent ";
+ s_cat(ch__17, a__4, i__6, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ do_fio(&c__1, (char *)&ipi, (ftnlen)sizeof(
+ integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1357);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "parindent ";
+ s_cat(ch__17, a__4, i__6, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ do_fio(&c__1, (char *)&ipi, (ftnlen)sizeof(
+ integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ }
+ }
+ }
+ }
+ if (isystpg == 1) {
+
+/* First line on a page (not 1st page, still first bar). Tidy up old page */
+/* then eject. */
+
+/* Removed this 5/13/01 as it was causing double endvoltas. This probably */
+/* is only needed at the end in case there is no endvolta specified. */
+/* if (onvolt) then */
+/* c if (islast) write(11,'(a)')sq//'endvoltabox%' */
+/* c onvolt = .false. */
+/* end if */
+
+
+/* Check for meter change at start of a new PAGE */
+
+ if (all_1.mtrnuml > 0) {
+
+/* Meter change at start of a new page. Ugly repeated coding here. */
+
+ mtrnms = all_1.mtrnuml;
+ setmeter_(&all_1.mtrnuml, &all_1.mtrdenl, &
+ combeam_1.ibmtyp, &ibmrep);
+ all_1.mtrnuml = mtrnms;
+ if (comget_1.movbrk == 0 && comlast_1.islast) {
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ }
+ }
+
+/* Key signature change? */
+
+ if (bit_test(iplnow,28) && comget_1.movbrk == 0) {
+/* Writing concatenation */
+ i__14[0] = 1, a__10[0] = all_1.sq;
+ i__14[1] = 4, a__10[1] = "xbar";
+ i__14[2] = 1, a__10[2] = all_1.sq;
+ i__14[3] = 10, a__10[3] = "addspace{-";
+ i__14[4] = 1, a__10[4] = all_1.sq;
+ i__14[5] = 14, a__10[5] = "afterruleskip}";
+ i__14[6] = 1, a__10[6] = all_1.sq;
+ i__14[7] = 17, a__10[7] = "generalsignature{";
+ s_cat(notexq, a__10, i__14, &c__8, (ftnlen)79);
+ lnote = 49;
+ if (comtop_1.isig < 0) {
+/* Writing concatenation */
+ i__6[0] = 49, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = "-";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ lnote = 50;
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1359);
+/* Writing concatenation */
+ i__8[0] = lnote, a__5[0] = notexq;
+ i__7 = abs(comtop_1.isig) + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ i__8[1] = 1, a__5[1] = ch__1;
+ i__8[2] = 2, a__5[2] = "}%";
+ s_cat(ch__24, a__5, i__8, &c__3, (ftnlen)82);
+ do_fio(&c__1, ch__24, lnote + 3);
+ e_wsfe();
+ }
+ if (comlast_1.islast && cominsttrans_1.laterinsttrans)
+ {
+ writesetsign_(&cominsttrans_1.ninsttrans,
+ cominsttrans_1.iinsttrans,
+ cominsttrans_1.itranskey, &
+ cominsttrans_1.laterinsttrans);
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1360);
+/* Writing concatenation */
+ i__9[0] = 1, a__6[0] = all_1.sq;
+ i__9[1] = 14, a__6[1] = "zchangecontext";
+ i__9[2] = 1, a__6[2] = all_1.sq;
+ i__9[3] = 10, a__6[3] = "addspace{-";
+ i__9[4] = 1, a__6[4] = all_1.sq;
+ i__9[5] = 14, a__6[5] = "afterruleskip}";
+ i__9[6] = 1, a__6[6] = all_1.sq;
+ i__9[7] = 10, a__6[7] = "zstoppiece";
+ i__9[8] = 1, a__6[8] = all_1.sq;
+ i__9[9] = 13, a__6[9] = "PMXbarnotrue%";
+ s_cat(ch__25, a__6, i__9, &c__10, (ftnlen)66);
+ do_fio(&c__1, ch__25, (ftnlen)66);
+ e_wsfe();
+ }
+ } else if (all_1.mtrnuml > 0 && comget_1.movbrk == 0) {
+
+/* Meter change but no signature change */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___1361);
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 14, a__1[1] = "xchangecontext";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 10, a__1[3] = "addspace{-";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 14, a__1[5] = "afterruleskip}";
+ i__3[6] = 1, a__1[6] = all_1.sq;
+ i__3[7] = 3, a__1[7] = "let";
+ i__3[8] = 1, a__1[8] = all_1.sq;
+ i__3[9] = 4, a__1[9] = "bnat";
+ i__3[10] = 1, a__1[10] = all_1.sq;
+ i__3[11] = 9, a__1[11] = "barnoadd%";
+ s_cat(ch__26, a__1, i__3, &c__12, (ftnlen)60);
+ do_fio(&c__1, ch__26, (ftnlen)60);
+ e_wsfe();
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1362);
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 3, a__1[1] = "def";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 9, a__1[3] = "barnoadd{";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 3, a__1[5] = "let";
+ i__3[6] = 1, a__1[6] = all_1.sq;
+ i__3[7] = 8, a__1[7] = "barnoadd";
+ i__3[8] = 1, a__1[8] = all_1.sq;
+ i__3[9] = 5, a__1[9] = "bnat}";
+ i__3[10] = 1, a__1[10] = all_1.sq;
+ i__3[11] = 11, a__1[11] = "zstoppiece%";
+ s_cat(ch__27, a__1, i__3, &c__12, (ftnlen)45);
+ do_fio(&c__1, ch__27, (ftnlen)45);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1363);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "stoppiece%";
+ s_cat(ch__17, a__4, i__6, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ e_wsfe();
+ }
+ }
+
+/* This is the key spot when vshrink is used. Value of vshrink here comes from */
+/* just after the prior pagebreak, i.e., it is not affected by "Av" */
+/* that may have been entered at this pagebreak, since that only affects usevshrink. */
+/* So choose page *ending* (with or without \vfill) depending on old vshrink. Then */
+/* check value of usevshrink to reset vshrink if necessary for the new page, where */
+/* we have to set \interstaff and later call puttitle. */
+/* Top of first page needs special treatment. For this we use */
+/* novshrinktop, which was set in g1etnote on the first pass, since on */
+/* second pass, vshrink at top of page one is dealt with in topfile, which is called */
+/* *before* any reading in any "Av" at the top of the first input block. */
+
+ if (! vshrink) {
+ xnstbot = xnsttop[comnotes_1.ipage - 1] * etabot /
+ etatop;
+ if (xnstbot < 9.95f) {
+ s_copy(fmtq, "(a,f3.1,a)", (ftnlen)24, (ftnlen)10)
+ ;
+ } else {
+ s_copy(fmtq, "(a,f4.1,a)", (ftnlen)24, (ftnlen)10)
+ ;
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1365);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 5, a__4[1] = "vskip";
+ s_cat(ch__28, a__4, i__6, &c__2, (ftnlen)6);
+ do_fio(&c__1, ch__28, (ftnlen)6);
+ do_fio(&c__1, (char *)&xnstbot, (ftnlen)sizeof(
+ real));
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 10, a__3[1] = "Interligne";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 6, a__3[3] = "eject%";
+ s_cat(ch__23, a__3, i__5, &c__4, (ftnlen)18);
+ do_fio(&c__1, ch__23, (ftnlen)18);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1366);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 5, a__3[1] = "vfill";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 6, a__3[3] = "eject%";
+ s_cat(ch__15, a__3, i__5, &c__4, (ftnlen)13);
+ do_fio(&c__1, ch__15, (ftnlen)13);
+ e_wsfe();
+ }
+ }
+ ++comnotes_1.ipage;
+
+/* Now that page is ejected, compute new vshrink */
+
+ vshrink = xintstaff[comnotes_1.ipage - 1] > 20.f &&
+ comlast_1.usevshrink;
+ if (vshrink) {
+ comarp_1.xinsnow = 10.f;
+ } else {
+ comarp_1.xinsnow = xintstaff[comnotes_1.ipage - 1];
+ }
+ if (comget_1.fintstf > 0.f && comnotes_1.ipage > 1) {
+ comarp_1.xinsnow = comarp_1.xinsnow *
+ comget_1.fintstf / comget_1.gintstf;
+ comget_1.fintstf = -1.f;
+ }
+ if (comarp_1.xinsnow < 9.95f) {
+ s_copy(fmtq, "(a,f3.1,a)", (ftnlen)24, (ftnlen)10);
+ } else if (comarp_1.xinsnow < 99.95f) {
+ s_copy(fmtq, "(a,f4.1,a)", (ftnlen)24, (ftnlen)10);
+ } else {
+ s_copy(fmtq, "(a,f5.1,a)", (ftnlen)24, (ftnlen)10);
+ }
+
+/* Vertical spacing parameters, then restart */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___1367);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "interstaff{";
+ s_cat(ch__13, a__4, i__6, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__13, (ftnlen)12);
+ do_fio(&c__1, (char *)&comarp_1.xinsnow, (ftnlen)
+ sizeof(real));
+/* Writing concatenation */
+ i__8[0] = 1, a__5[0] = "}";
+ i__8[1] = 1, a__5[1] = all_1.sq;
+ i__8[2] = 9, a__5[2] = "contpiece";
+ s_cat(ch__17, a__5, i__8, &c__3, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ e_wsfe();
+ }
+
+/* Check for meter change at start of a new PAGE */
+
+ if (all_1.mtrnuml > 0) {
+
+/* Meter change at start of a new page */
+
+ setmeter_(&all_1.mtrnuml, &all_1.mtrdenl, &
+ combeam_1.ibmtyp, &ibmrep);
+ if (comget_1.movbrk == 0) {
+ if (comlast_1.islast) {
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ }
+ if (all_1.mtrdnp > 0) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1368);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "newtimes2%";
+ s_cat(ch__17, a__4, i__6, &c__2, (ftnlen)
+ 11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ e_wsfe();
+ }
+ if (all_1.ibar == comgrace_1.ibarmbr) {
+ comgrace_1.xb4mbr = comstart_1.facmtr *
+ all_1.musicsize;
+ }
+ }
+ }
+ }
+
+/* If no real titles here, which there probably will never be, make vertical */
+/* space at page top with \titles{...}. headlog=.false.<=>no real titles */
+
+ puttitle_(&inhnoh, &xnsttop[comnotes_1.ipage - 1], &
+ etatop, all_1.sq, &etait, &etatc, &etacs1, &
+ all_1.nv, &vshrink, all_1.sepsymq, (ftnlen)1, (
+ ftnlen)1);
+ if (comnotes_1.headerspecial) {
+ s_wsfe(&io___1369);
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__6[0] = 1, a__4[0] = ch__1;
+ i__6[1] = 28, a__4[1] = "special{header=psslurs.pro}%"
+ ;
+ s_cat(ch__7, a__4, i__6, &c__2, (ftnlen)29);
+ do_fio(&c__1, ch__7, (ftnlen)29);
+ e_wsfe();
+ }
+
+/* Write special header for first page */
+
+ } else {
+
+/* First bar of system, not a new page, force line break */
+
+ if (bit_test(iplnow,28)) {
+
+/* Signature change */
+
+/* Writing concatenation */
+ i__14[0] = 1, a__10[0] = all_1.sq;
+ i__14[1] = 4, a__10[1] = "xbar";
+ i__14[2] = 1, a__10[2] = all_1.sq;
+ i__14[3] = 10, a__10[3] = "addspace{-";
+ i__14[4] = 1, a__10[4] = all_1.sq;
+ i__14[5] = 14, a__10[5] = "afterruleskip}";
+ i__14[6] = 1, a__10[6] = all_1.sq;
+ i__14[7] = 17, a__10[7] = "generalsignature{";
+ s_cat(notexq, a__10, i__14, &c__8, (ftnlen)79);
+ lnote = 49;
+ if (comtop_1.isig < 0) {
+/* Writing concatenation */
+ i__6[0] = 49, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = "-";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ lnote = 50;
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1370);
+/* Writing concatenation */
+ i__8[0] = lnote, a__5[0] = notexq;
+ i__7 = abs(comtop_1.isig) + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ i__8[1] = 1, a__5[1] = ch__1;
+ i__8[2] = 2, a__5[2] = "}%";
+ s_cat(ch__24, a__5, i__8, &c__3, (ftnlen)82);
+ do_fio(&c__1, ch__24, lnote + 3);
+ e_wsfe();
+ }
+ if (comlast_1.islast && cominsttrans_1.laterinsttrans)
+ {
+ writesetsign_(&cominsttrans_1.ninsttrans,
+ cominsttrans_1.iinsttrans,
+ cominsttrans_1.itranskey, &
+ cominsttrans_1.laterinsttrans);
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1371);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 7, a__3[1] = "advance";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 8, a__3[3] = "barno-1%";
+ s_cat(ch__29, a__3, i__5, &c__4, (ftnlen)17);
+ do_fio(&c__1, ch__29, (ftnlen)17);
+ e_wsfe();
+ }
+ if (all_1.mtrnuml != 0) {
+
+/* Meter+sig change, new line, may need mods if movement break here. */
+
+ setmeter_(&all_1.mtrnuml, &all_1.mtrdenl, &
+ combeam_1.ibmtyp, &ibmrep);
+ if (comlast_1.islast) {
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ s_wsfe(&io___1372);
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 14, a__1[1] = "xchangecontext";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 10, a__1[3] = "addspace{-";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 14, a__1[5] = "afterruleskip}";
+ i__3[6] = 1, a__1[6] = all_1.sq;
+ i__3[7] = 10, a__1[7] = "zstoppiece";
+ i__3[8] = 1, a__1[8] = all_1.sq;
+ i__3[9] = 12, a__1[9] = "PMXbarnotrue";
+ i__3[10] = 1, a__1[10] = all_1.sq;
+ i__3[11] = 10, a__1[11] = "contpiece%";
+ s_cat(ch__30, a__1, i__3, &c__12, (ftnlen)76);
+ do_fio(&c__1, ch__30, (ftnlen)76);
+ e_wsfe();
+/* * 'addspace{-'//sq//'afterruleskip}'//sq//'def' */
+/* * //sq//'writezbarno{}'//sq//'zalaligne%' */
+ s_wsfe(&io___1373);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 10, a__3[1] = "addspace{-";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 15, a__3[3] = "afterruleskip}%";
+ s_cat(ch__5, a__3, i__5, &c__4, (ftnlen)27);
+ do_fio(&c__1, ch__5, (ftnlen)27);
+ e_wsfe();
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ s_wsfe(&io___1374);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 14, a__4[1] = "zchangecontext";
+ s_cat(ch__14, a__4, i__6, &c__2, (ftnlen)15);
+ do_fio(&c__1, ch__14, (ftnlen)15);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1375);
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 14, a__1[1] = "xchangecontext";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 10, a__1[3] = "addspace{-";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 14, a__1[5] = "afterruleskip}";
+ i__3[6] = 1, a__1[6] = all_1.sq;
+ i__3[7] = 10, a__1[7] = "zstoppiece";
+ i__3[8] = 1, a__1[8] = all_1.sq;
+ i__3[9] = 12, a__1[9] = "PMXbarnotrue";
+ i__3[10] = 1, a__1[10] = all_1.sq;
+ i__3[11] = 10, a__1[11] = "contpiece%";
+ s_cat(ch__30, a__1, i__3, &c__12, (ftnlen)76);
+ do_fio(&c__1, ch__30, (ftnlen)76);
+ e_wsfe();
+ }
+/* * 'addspace{-'//sq//'afterruleskip}'//sq//'def'// */
+/* * sq//'writezbarno{}'//sq//'zalaligne%' */
+ }
+ } else if (all_1.mtrnuml == 0) {
+
+/* No meter change */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___1376);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "alaligne";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ } else {
+
+/* New meter, no new sig, end of line, not new page. */
+
+/* \generalmeter{\meterfrac{3}{4}}% */
+/* \xchangecontext\addspace{-\afterruleskip}% */
+/* \zalaligne\generalmeter{\meterfrac{3}{4}}\addspace{-\afterruleskip}% */
+/* \zchangecontext */
+
+ setmeter_(&all_1.mtrnuml, &all_1.mtrdenl, &
+ combeam_1.ibmtyp, &ibmrep);
+ if (comget_1.movbrk == 0) {
+ if (comlast_1.islast) {
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ }
+ if (all_1.mtrdnp > 0) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1377);
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = all_1.sq;
+ i__3[1] = 3, a__1[1] = "let";
+ i__3[2] = 1, a__1[2] = all_1.sq;
+ i__3[3] = 4, a__1[3] = "bnat";
+ i__3[4] = 1, a__1[4] = all_1.sq;
+ i__3[5] = 8, a__1[5] = "barnoadd";
+ i__3[6] = 1, a__1[6] = all_1.sq;
+ i__3[7] = 3, a__1[7] = "def";
+ i__3[8] = 1, a__1[8] = all_1.sq;
+ i__3[9] = 9, a__1[9] = "barnoadd{";
+ i__3[10] = 1, a__1[10] = all_1.sq;
+ i__3[11] = 7, a__1[11] = "empty}%";
+ s_cat(ch__31, a__1, i__3, &c__12, (ftnlen)
+ 40);
+ do_fio(&c__1, ch__31, (ftnlen)40);
+ e_wsfe();
+ s_wsfe(&io___1378);
+/* Writing concatenation */
+ i__15[0] = 1, a__11[0] = all_1.sq;
+ i__15[1] = 14, a__11[1] = "xchangecontext"
+ ;
+ i__15[2] = 1, a__11[2] = all_1.sq;
+ i__15[3] = 10, a__11[3] = "addspace{-";
+ i__15[4] = 1, a__11[4] = all_1.sq;
+ i__15[5] = 14, a__11[5] = "afterruleskip}"
+ ;
+ i__15[6] = 1, a__11[6] = all_1.sq;
+ i__15[7] = 9, a__11[7] = "zalaligne";
+ i__15[8] = 1, a__11[8] = all_1.sq;
+ i__15[9] = 3, a__11[9] = "let";
+ i__15[10] = 1, a__11[10] = all_1.sq;
+ i__15[11] = 8, a__11[11] = "barnoadd";
+ i__15[12] = 1, a__11[12] = all_1.sq;
+ i__15[13] = 4, a__11[13] = "bnat";
+ s_cat(ch__32, a__11, i__15, &c__14, (
+ ftnlen)69);
+ do_fio(&c__1, ch__32, (ftnlen)69);
+ e_wsfe();
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ s_wsfe(&io___1379);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 10, a__2[1] = "addspace{-";
+ i__4[2] = 1, a__2[2] = all_1.sq;
+ i__4[3] = 14, a__2[3] = "afterruleskip}";
+ i__4[4] = 1, a__2[4] = all_1.sq;
+ i__4[5] = 14, a__2[5] = "zchangecontext";
+ s_cat(ch__33, a__2, i__4, &c__6, (ftnlen)
+ 41);
+ do_fio(&c__1, ch__33, (ftnlen)41);
+ e_wsfe();
+ }
+ if (all_1.ibar == comgrace_1.ibarmbr) {
+ comgrace_1.xb4mbr = comstart_1.facmtr *
+ all_1.musicsize;
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1380);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "alaligne";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)
+ 9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1381);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "alaligne";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ }
+ }
+ }
+
+/* Modified 090525 to use \bnrs */
+
+ if (slint) {
+ slint = FALSE_;
+ if (comlast_1.islast) {
+ s_wsfe(&io___1382);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 3, a__3[1] = "def";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 11, a__3[3] = "raisebarno{";
+ s_cat(ch__21, a__3, i__5, &c__4, (ftnlen)16);
+ do_fio(&c__1, ch__21, (ftnlen)16);
+ do_fio(&c__1, (char *)&comsln_1.irzbnd, (ftnlen)
+ sizeof(integer));
+/* Writing concatenation */
+ i__8[0] = 2, a__5[0] = ".5";
+ i__8[1] = 1, a__5[1] = all_1.sq;
+ i__8[2] = 11, a__5[2] = "internote}%";
+ s_cat(ch__10, a__5, i__8, &c__3, (ftnlen)14);
+ do_fio(&c__1, ch__10, (ftnlen)14);
+ e_wsfe();
+ }
+ }
+ comget_1.movbrk = 0;
+ }
+
+/* Clean up if we squelched bar number reset at movement break */
+
+ if (comnotes_1.nobar1) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1383);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "startbarno1";
+ s_cat(ch__13, a__4, i__6, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__13, (ftnlen)12);
+ e_wsfe();
+ }
+ comnotes_1.nobar1 = FALSE_;
+ }
+ i__7 = s_rsle(&io___1384);
+ if (i__7 != 0) {
+ goto L14;
+ }
+ i__7 = do_lio(&c__3, &c__1, (char *)&iauto, (ftnlen)sizeof(
+ integer));
+ if (i__7 != 0) {
+ goto L14;
+ }
+ i__7 = e_rsle();
+ if (i__7 != 0) {
+ goto L14;
+ }
+L14:
+
+/* We come thru here for the 1st bar of every system, so initialize is1n1 */
+
+ comsln_1.is1n1 = 0;
+
+/* Brought down from above */
+
+ if (isystpg == comnotes_1.nsystp[comnotes_1.ipage - 1]) {
+ isystpg = 0;
+ }
+
+/* Check for linebreak ties */
+
+ if (ispstie) {
+ linebreakties_(all_1.isdat1, all_1.isdat2, all_1.isdat3,
+ all_1.isdat4, &all_1.nsdat, &ispstie, all_1.sepsymq, (
+ ftnlen)1);
+ }
+ } else {
+
+/* Not first bar of system */
+
+ if (bit_test(iplnow,28)) {
+
+/* Signature change */
+
+ if (all_1.mtrnuml != 0) {
+
+/* Meter+signature change mid line, assume no movement break */
+
+ setmeter_(&all_1.mtrnuml, &all_1.mtrdenl, &
+ combeam_1.ibmtyp, &ibmrep);
+ if (comlast_1.islast) {
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ }
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 17, a__4[1] = "generalsignature{";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ lnote = 18;
+ if (comtop_1.isig < 0) {
+/* Writing concatenation */
+ i__6[0] = 18, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = "-";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ lnote = 19;
+ }
+ if (comlast_1.islast) {
+ iptemp = abs(comtop_1.isig) + 48;
+ chax_(ch__1, (ftnlen)1, &iptemp);
+ *(unsigned char *)charq = *(unsigned char *)&ch__1[0];
+/* Writing concatenation */
+ i__8[0] = lnote, a__5[0] = notexq;
+ i__8[1] = 1, a__5[1] = charq;
+ i__8[2] = 2, a__5[2] = "}%";
+ s_cat(notexq, a__5, i__8, &c__3, (ftnlen)79);
+ lnote += 3;
+ s_wsfe(&io___1387);
+ do_fio(&c__1, notexq, lnote);
+ e_wsfe();
+ if (comlast_1.islast && cominsttrans_1.laterinsttrans)
+ {
+ writesetsign_(&cominsttrans_1.ninsttrans,
+ cominsttrans_1.iinsttrans,
+ cominsttrans_1.itranskey, &
+ cominsttrans_1.laterinsttrans);
+ }
+ s_wsfe(&io___1388);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 15, a__4[1] = "xchangecontext%";
+ s_cat(ch__21, a__4, i__6, &c__2, (ftnlen)16);
+ do_fio(&c__1, ch__21, (ftnlen)16);
+ e_wsfe();
+ }
+ if (all_1.ibar == comgrace_1.ibarmbr) {
+
+/* Compute space for multibar rest */
+
+ if (comtop_1.lastisig * comtop_1.isig >= 0) {
+/* Computing MAX */
+ i__7 = abs(comtop_1.lastisig), i__2 = abs(
+ comtop_1.isig);
+ naccs = max(i__7,i__2);
+ } else {
+ naccs = (i__7 = comtop_1.lastisig - comtop_1.isig,
+ abs(i__7));
+ }
+ comgrace_1.xb4mbr = (comstart_1.facmtr + naccs * .24f)
+ * all_1.musicsize;
+ }
+ } else {
+
+/* Signature change only */
+
+/* Writing concatenation */
+ i__14[0] = 1, a__10[0] = all_1.sq;
+ i__14[1] = 4, a__10[1] = "xbar";
+ i__14[2] = 1, a__10[2] = all_1.sq;
+ i__14[3] = 10, a__10[3] = "addspace{-";
+ i__14[4] = 1, a__10[4] = all_1.sq;
+ i__14[5] = 14, a__10[5] = "afterruleskip}";
+ i__14[6] = 1, a__10[6] = all_1.sq;
+ i__14[7] = 17, a__10[7] = "generalsignature{";
+ s_cat(notexq, a__10, i__14, &c__8, (ftnlen)79);
+ lnote = 49;
+ if (comtop_1.isig < 0) {
+/* Writing concatenation */
+ i__6[0] = 49, a__4[0] = notexq;
+ i__6[1] = 1, a__4[1] = "-";
+ s_cat(notexq, a__4, i__6, &c__2, (ftnlen)79);
+ lnote = 50;
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1390);
+/* Writing concatenation */
+ i__8[0] = lnote, a__5[0] = notexq;
+ i__7 = abs(comtop_1.isig) + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ i__8[1] = 1, a__5[1] = ch__1;
+ i__8[2] = 2, a__5[2] = "}%";
+ s_cat(ch__24, a__5, i__8, &c__3, (ftnlen)82);
+ do_fio(&c__1, ch__24, lnote + 3);
+ e_wsfe();
+ }
+ if (comlast_1.islast && cominsttrans_1.laterinsttrans) {
+ writesetsign_(&cominsttrans_1.ninsttrans,
+ cominsttrans_1.iinsttrans,
+ cominsttrans_1.itranskey, &
+ cominsttrans_1.laterinsttrans);
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1391);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 14, a__2[1] = "zchangecontext";
+ i__4[2] = 1, a__2[2] = all_1.sq;
+ i__4[3] = 12, a__2[3] = "addspace{-.5";
+ i__4[4] = 1, a__2[4] = all_1.sq;
+ i__4[5] = 15, a__2[5] = "afterruleskip}%";
+ s_cat(ch__34, a__2, i__4, &c__6, (ftnlen)44);
+ do_fio(&c__1, ch__34, (ftnlen)44);
+ e_wsfe();
+ }
+ if (all_1.ibar == comgrace_1.ibarmbr) {
+
+/* Compute space for multibar rest */
+
+ if (comtop_1.lastisig * comtop_1.isig >= 0) {
+/* Computing MAX */
+ i__7 = abs(comtop_1.lastisig), i__2 = abs(
+ comtop_1.isig);
+ naccs = max(i__7,i__2);
+ } else {
+ naccs = (i__7 = comtop_1.lastisig - comtop_1.isig,
+ abs(i__7));
+ }
+ comgrace_1.xb4mbr = naccs * .24f * all_1.musicsize;
+ }
+ }
+ } else if (all_1.mtrnuml == 0) {
+
+/* No meter change */
+
+ if (comlast_1.islast) {
+ s_wsfe(&io___1392);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 4, a__4[1] = "xbar";
+ s_cat(ch__35, a__4, i__6, &c__2, (ftnlen)5);
+ do_fio(&c__1, ch__35, (ftnlen)5);
+ e_wsfe();
+ }
+ } else {
+
+/* Change meter midline */
+
+ setmeter_(&all_1.mtrnuml, &all_1.mtrdenl, &combeam_1.ibmtyp, &
+ ibmrep);
+ if (comget_1.movbrk == 0) {
+ if (comlast_1.islast) {
+ wgmeter_(&all_1.mtrnmp, &all_1.mtrdnp);
+ }
+ if (all_1.mtrdnp > 0) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1393);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "newtimes0%";
+ s_cat(ch__17, a__4, i__6, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ e_wsfe();
+ }
+ if (all_1.ibar == comgrace_1.ibarmbr) {
+ comgrace_1.xb4mbr = comstart_1.facmtr *
+ all_1.musicsize;
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1394);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 4, a__4[1] = "xbar";
+ s_cat(ch__35, a__4, i__6, &c__2, (ftnlen)5);
+ do_fio(&c__1, ch__35, (ftnlen)5);
+ e_wsfe();
+ }
+ }
+ }
+ }
+ }
+
+/* Now that xbar's are written, can put in left-repeats at line beginnings */
+
+ if (lrptpend) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1395);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 7, a__2[1] = "advance";
+ i__4[2] = 1, a__2[2] = all_1.sq;
+ i__4[3] = 7, a__2[3] = "barno-1";
+ i__4[4] = 1, a__2[4] = all_1.sq;
+ i__4[5] = 10, a__2[5] = "leftrepeat";
+ s_cat(ch__5, a__2, i__4, &c__6, (ftnlen)27);
+ do_fio(&c__1, ch__5, (ftnlen)27);
+ e_wsfe();
+ }
+ lrptpend = FALSE_;
+ }
+ if (all_1.ibar > 1) {
+
+/* For bars after first, slide all stuff down to beginning of arrays */
+
+ i__7 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__7; ++all_1.iv) {
+ i__2 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__2; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ ioff = all_1.nib[commvl_1.ivx + (all_1.ibar - 1) * 24 -
+ 25];
+ i__13 = all_1.nib[commvl_1.ivx + all_1.ibar * 24 - 25] -
+ ioff;
+ for (ip = 1; ip <= i__13; ++ip) {
+ all_1.nolev[commvl_1.ivx + ip * 24 - 25] =
+ all_1.nolev[commvl_1.ivx + (ip + ioff) * 24 -
+ 25];
+ all_1.nodur[commvl_1.ivx + ip * 24 - 25] =
+ all_1.nodur[commvl_1.ivx + (ip + ioff) * 24 -
+ 25];
+ all_1.nacc[commvl_1.ivx + ip * 24 - 25] = all_1.nacc[
+ commvl_1.ivx + (ip + ioff) * 24 - 25];
+ all_1.irest[commvl_1.ivx + ip * 24 - 25] =
+ all_1.irest[commvl_1.ivx + (ip + ioff) * 24 -
+ 25];
+ all_1.islur[commvl_1.ivx + ip * 24 - 25] =
+ all_1.islur[commvl_1.ivx + (ip + ioff) * 24 -
+ 25];
+ all_1.ipl[commvl_1.ivx + ip * 24 - 25] = all_1.ipl[
+ commvl_1.ivx + (ip + ioff) * 24 - 25];
+ all_1.iornq[commvl_1.ivx + ip * 24 - 1] = all_1.iornq[
+ commvl_1.ivx + (ip + ioff) * 24 - 1];
+ all_1.mult[commvl_1.ivx + ip * 24 - 25] = all_1.mult[
+ commvl_1.ivx + (ip + ioff) * 24 - 25];
+/* if (ivx.le.2 .and. figbass) */
+/* * isfig(ivx,ip) = isfig(ivx,ip+ioff) */
+ if (all_1.figbass && commvl_1.ivx == 1 ||
+ commvl_1.ivx == comfig_1.ivxfig2) {
+ if (commvl_1.ivx == 1) {
+ all_1.isfig[(ip << 1) - 2] = all_1.isfig[(ip
+ + ioff << 1) - 2];
+ } else {
+ all_1.isfig[(ip << 1) - 1] = all_1.isfig[(ip
+ + ioff << 1) - 1];
+ }
+ }
+/* L12: */
+ }
+ if (commvl_1.ivx <= all_1.nv && comcc_1.ncc[all_1.iv - 1]
+ > 1) {
+ islide = 0;
+ i__13 = comcc_1.ncc[all_1.iv - 1];
+ for (icc = 1; icc <= i__13; ++icc) {
+ if (comcc_1.tcc[all_1.iv + icc * 24 - 25] <= (
+ real) all_1.lenbar) {
+
+/* This time will drop <=0 when slid. */
+
+ islide = icc - 1;
+ comcc_1.ncmidcc[all_1.iv - 1] =
+ comcc_1.ncmidcc[all_1.iv + icc * 24 -
+ 25];
+ } else {
+ comcc_1.tcc[all_1.iv + (icc - islide) * 24 -
+ 25] = comcc_1.tcc[all_1.iv + icc * 24
+ - 25] - all_1.lenbar;
+ comcc_1.ncmidcc[all_1.iv + (icc - islide) *
+ 24 - 25] = comcc_1.ncmidcc[all_1.iv +
+ icc * 24 - 25];
+ }
+/* L13: */
+ }
+ comcc_1.ncc[all_1.iv - 1] -= islide;
+ comcc_1.tcc[all_1.iv - 1] = 0.f;
+ }
+/* L11: */
+ }
+ }
+ i__2 = comgrace_1.ngrace;
+ for (ig = 1; ig <= i__2; ++ig) {
+ comgrace_1.ipg[ig - 1] -= all_1.nib[comgrace_1.ivg[ig - 1] + (
+ all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ comgrace_1.ipg[ig - 1] += all_1.nib[comgrace_1.ivg[ig - 1]
+ + (all_1.ibar - 2) * 24 - 25];
+ }
+/* L15: */
+ }
+ i__2 = comgrace_1.nlit;
+ for (il = 1; il <= i__2; ++il) {
+ comgrace_1.iplit[il - 1] -= all_1.nib[comgrace_1.ivlit[il - 1]
+ + (all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ comgrace_1.iplit[il - 1] += all_1.nib[comgrace_1.ivlit[il
+ - 1] + (all_1.ibar - 2) * 24 - 25];
+ }
+/* L21: */
+ }
+ i__2 = comtrill_1.ntrill;
+ for (it = 1; it <= i__2; ++it) {
+ comtrill_1.iptrill[it - 1] -= all_1.nib[comtrill_1.ivtrill[it
+ - 1] + (all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ comtrill_1.iptrill[it - 1] += all_1.nib[
+ comtrill_1.ivtrill[it - 1] + (all_1.ibar - 2) *
+ 24 - 25];
+ }
+/* L22: */
+ }
+ i__2 = comtrill_1.ncrd;
+ for (icrd = 1; icrd <= i__2; ++icrd) {
+/* ivx = iand(15,ishft(icrdat(icrd),-8)) */
+ commvl_1.ivx = (15 & lbit_shift(comtrill_1.icrdat[icrd - 1], (
+ ftnlen)-8)) + (igetbits_(&comtrill_1.icrdat[icrd - 1],
+ &c__1, &c__28) << 4);
+ ipnew = (255 & comtrill_1.icrdat[icrd - 1]) - all_1.nib[
+ commvl_1.ivx + (all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ ipnew += all_1.nib[commvl_1.ivx + (all_1.ibar - 2) * 24 -
+ 25];
+ }
+ comtrill_1.icrdat[icrd - 1] = -256 & comtrill_1.icrdat[icrd -
+ 1];
+ comtrill_1.icrdat[icrd - 1] = max(0,ipnew) |
+ comtrill_1.icrdat[icrd - 1];
+/* L27: */
+ }
+ i__2 = comtrill_1.nudorn;
+ for (iudorn = 1; iudorn <= i__2; ++iudorn) {
+/* ivx = iand(15,ishft(kudorn(iudorn),-8)) */
+ commvl_1.ivx = comivxudorn_1.ivxudorn[iudorn - 1];
+ ipnew = (255 & comtrill_1.kudorn[iudorn - 1]) - all_1.nib[
+ commvl_1.ivx + (all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ ipnew += all_1.nib[commvl_1.ivx + (all_1.ibar - 2) * 24 -
+ 25];
+ }
+ comtrill_1.kudorn[iudorn - 1] = -256 & comtrill_1.kudorn[
+ iudorn - 1];
+ comtrill_1.kudorn[iudorn - 1] = max(0,ipnew) |
+ comtrill_1.kudorn[iudorn - 1];
+/* L29: */
+ }
+ i__2 = comdyn_1.ndyn;
+ for (idyn = 1; idyn <= i__2; ++idyn) {
+ idynd = comdyn_1.idyndat[idyn - 1];
+/* ivx = iand(15,idynd) */
+ commvl_1.ivx = (15 & idynd) + (igetbits_(&comdyn_1.idynda2[
+ idyn - 1], &c__1, &c__10) << 4);
+ ipnew = igetbits_(&idynd, &c__8, &c__4) - all_1.nib[
+ commvl_1.ivx + (all_1.ibar - 1) * 24 - 25];
+
+/* The following construction avoids array bound errors in some compilers */
+
+ if (all_1.ibar > 2) {
+ ipnew += all_1.nib[commvl_1.ivx + (all_1.ibar - 2) * 24 -
+ 25];
+ }
+ ipnew = i_dim(&ipnew, &c__0);
+ setbits_(&idynd, &c__8, &c__4, &ipnew);
+ comdyn_1.idyndat[idyn - 1] = idynd;
+/* L42: */
+ }
+ i__2 = comdyn_1.ntxtdyn;
+ for (itxtdyn = 1; itxtdyn <= i__2; ++itxtdyn) {
+ idynd = comdyn_1.ivxiptxt[itxtdyn - 1];
+/* ivx = iand(15,idynd) */
+ commvl_1.ivx = 31 & idynd;
+/* ipnew = igetbits(idynd,8,4)-nib(ivx,ibar-1) */
+ ipnew = igetbits_(&idynd, &c__8, &c__5) - all_1.nib[
+ commvl_1.ivx + (all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ ipnew += all_1.nib[commvl_1.ivx + (all_1.ibar - 2) * 24 -
+ 25];
+ }
+ ipnew = i_dim(&ipnew, &c__0);
+/* call setbits(idynd,8,4,ipnew) */
+ setbits_(&idynd, &c__8, &c__5, &ipnew);
+ comdyn_1.ivxiptxt[itxtdyn - 1] = idynd;
+/* L43: */
+ }
+ i__2 = all_1.nsdat;
+ for (isdat = 1; isdat <= i__2; ++isdat) {
+ isdata = all_1.isdat1[isdat - 1];
+ commvl_1.ivx = commvl_1.ivmx[igetbits_(&isdata, &c__5, &c__13)
+ + (igetbits_(&isdata, &c__1, &c__12) + 1) * 24 - 25];
+ ipnew = igetbits_(&isdata, &c__8, &c__3) - all_1.nib[
+ commvl_1.ivx + (all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ ipnew += all_1.nib[commvl_1.ivx + (all_1.ibar - 2) * 24 -
+ 25];
+ }
+ ipnew = i_dim(&ipnew, &c__0);
+ setbits_(&isdata, &c__8, &c__3, &ipnew);
+ all_1.isdat1[isdat - 1] = isdata;
+/* L41: */
+ }
+ i__2 = comcb_1.nbc;
+ for (ibc = 1; ibc <= i__2; ++ibc) {
+/* ivx = iand(15,ibcdata(ibc)) */
+ commvl_1.ivx = (15 & comcb_1.ibcdata[ibc - 1]) + (igetbits_(&
+ comcb_1.ibcdata[ibc - 1], &c__1, &c__28) << 4);
+ ipnew = igetbits_(&comcb_1.ibcdata[ibc - 1], &c__8, &c__4) -
+ all_1.nib[commvl_1.ivx + (all_1.ibar - 1) * 24 - 25];
+ if (all_1.ibar > 2) {
+ ipnew += all_1.nib[commvl_1.ivx + (all_1.ibar - 2) * 24 -
+ 25];
+ }
+ ipnew = i_dim(&ipnew, &c__0);
+ setbits_(&comcb_1.ibcdata[ibc - 1], &c__8, &c__4, &ipnew);
+/* L44: */
+ }
+ i__2 = comarpshift_1.numarpshift;
+ for (iarps = 1; iarps <= i__2; ++iarps) {
+ comarpshift_1.iparpshift[iarps - 1] -= all_1.nib[
+ comarpshift_1.ivarpshift[iarps - 1] + (all_1.ibar - 1)
+ * 24 - 25];
+ if (all_1.ibar > 2) {
+ comarpshift_1.iparpshift[iarps - 1] += all_1.nib[
+ comarpshift_1.ivarpshift[iarps - 1] + (all_1.ibar
+ - 2) * 24 - 25];
+ }
+/* L45: */
+ }
+
+/* Bookkeeping for figures. This will set nfigs = 0 if there are no figs left. */
+/* If there are figs left, it will reset all times relative to start of */
+/* current bar. */
+
+ for (commvl_1.ivx = 1; commvl_1.ivx <= 2; ++commvl_1.ivx) {
+ if (all_1.figbass) {
+ islide = 0;
+ i__2 = comfig_1.nfigs[commvl_1.ivx - 1];
+ for (jfig = 1; jfig <= i__2; ++jfig) {
+ if (comfig_1.itfig[commvl_1.ivx + (jfig << 1) - 3] <
+ all_1.lenbar) {
+
+/* This figure was already used */
+
+ islide = jfig;
+ } else {
+ comfig_1.itfig[commvl_1.ivx + (jfig - islide << 1)
+ - 3] = comfig_1.itfig[commvl_1.ivx + (
+ jfig << 1) - 3] - all_1.lenbar;
+ s_copy(comfig_1.figq + (commvl_1.ivx + (jfig -
+ islide << 1) - 3) * 10, comfig_1.figq + (
+ commvl_1.ivx + (jfig << 1) - 3) * 10, (
+ ftnlen)10, (ftnlen)10);
+ comgrace_1.itoff[commvl_1.ivx + (jfig - islide <<
+ 1) - 3] = comgrace_1.itoff[commvl_1.ivx +
+ (jfig << 1) - 3];
+ comfig_1.ivupfig[commvl_1.ivx + (jfig - islide <<
+ 1) - 3] = comfig_1.ivupfig[commvl_1.ivx +
+ (jfig << 1) - 3];
+ }
+/* L20: */
+ }
+ comfig_1.nfigs[commvl_1.ivx - 1] -= islide;
+ }
+ if (comfig_1.nfigs[1] == 0) {
+ goto L47;
+ }
+/* L46: */
+ }
+L47:
+ ;
+ }
+
+/* End of sliding down for bars after first in gulp. */
+
+/* The following may not be needed by makeabar, but just in case... */
+
+ if (all_1.firstgulp && all_1.lenb0 != 0) {
+ if (all_1.ibar == 1) {
+ all_1.lenbar = all_1.lenb0;
+ } else {
+ all_1.lenbar = all_1.lenb1;
+ }
+ }
+
+/* Equal line spacing stuff */
+
+ if (comget_1.equalize && comask_1.bar1syst) {
+ if (isystpg == 1) {
+ s_wsfe(&io___1411);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "starteq%";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ } else if (isystpg == comnotes_1.nsystp[comnotes_1.ipage - 1] - 1)
+ {
+ s_wsfe(&io___1412);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 6, a__4[1] = "endeq%";
+ s_cat(ch__36, a__4, i__6, &c__2, (ftnlen)7);
+ do_fio(&c__1, ch__36, (ftnlen)7);
+ e_wsfe();
+ }
+ }
+ make1bar_(&ibmrep, &tglp1, tstart, cwrest, squez, istop, numbms,
+ istart);
+ make2bar_(&comnotes_1.ninow, &tglp1, tstart, cwrest, squez, istop,
+ numbms, istart, comclefq_1.clefq, (ftnlen)1);
+
+/* Hardspace before barline? */
+
+ hardb4 = 0.f;
+ i__2 = all_1.nv;
+ for (all_1.iv = 1; all_1.iv <= i__2; ++all_1.iv) {
+ i__7 = commvl_1.nvmx[all_1.iv - 1];
+ for (kv = 1; kv <= i__7; ++kv) {
+ commvl_1.ivx = commvl_1.ivmx[all_1.iv + kv * 24 - 25];
+ if (bit_test(all_1.irest[commvl_1.ivx + all_1.nn[commvl_1.ivx
+ - 1] * 24 - 25],18)) {
+ ++comudsp_1.nudoff[commvl_1.ivx - 1];
+/* Computing MAX */
+ r__1 = hardb4, r__2 = comudsp_1.udoff[commvl_1.ivx +
+ comudsp_1.nudoff[commvl_1.ivx - 1] * 24 - 25];
+ hardb4 = dmax(r__1,r__2);
+ }
+/* L35: */
+ }
+ }
+ if (hardb4 > 0.f) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1420);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 10, a__4[1] = "hardspace{";
+ s_cat(ch__17, a__4, i__6, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__17, (ftnlen)11);
+ do_fio(&c__1, (char *)&hardb4, (ftnlen)sizeof(real));
+ do_fio(&c__1, "pt}%", (ftnlen)4);
+ e_wsfe();
+ }
+ comask_1.fixednew -= hardb4;
+ }
+/* L10: */
+ }
+ all_1.firstgulp = FALSE_;
+ all_1.lenb0 = 0;
+ goto L30;
+L40:
+ cl__1.cerr = 0;
+ cl__1.cunit = 12;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ cl__1.cerr = 0;
+ cl__1.cunit = 13;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ inbuff_1.ilbuf = 1;
+ inbuff_1.ipbuf = 0;
+ wdpt = comtop_1.widthpt;
+ if (all_1.iline == 1) {
+ wdpt = comtop_1.widthpt * (1 - comtop_1.fracindent);
+ }
+ poe = (wdpt - fsyst * all_1.musicsize - nbarss * .4f - comask_1.fixednew)
+ / (elsktot + comask_1.fbar * nbarss - comask_1.scaldold);
+ poevec[nsyst] = poe;
+ if (! comlast_1.islast) {
+ cl__1.cerr = 0;
+ cl__1.cunit = 11;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ cl__1.cerr = 0;
+ cl__1.cunit = 16;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ if (all_1.figbass) {
+ cl__1.cerr = 0;
+ cl__1.cunit = 14;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ }
+ return 0;
+ }
+ i__1 = comas2_1.nasksys;
+ for (ia = 1; ia <= i__1; ++ia) {
+ ++comas3_1.iask;
+ comas3_1.ask[comas3_1.iask - 1] = comas2_1.wasksys[ia - 1] / poe - (
+ r__1 = comas2_1.elasksys[ia - 1], dabs(r__1));
+ if (comas2_1.elasksys[ia - 1] > 0.f) {
+ comas3_1.ask[comas3_1.iask - 1] = r_dim(&comas3_1.ask[
+ comas3_1.iask - 1], &c_b736);
+ }
+/* L19: */
+ }
+ i__1 = nhssys;
+ for (ia = 1; ia <= i__1; ++ia) {
+ ++nhstot;
+/* Computing MAX */
+ r__1 = hpts[ia - 1] - hesk[ia - 1] * poe;
+ comhsp_1.hpttot[nhstot - 1] = dmax(r__1,0.f);
+/* L26: */
+ }
+ if (comlast_1.islast && onvolt) {
+ s_wsfe(&io___1421);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 11, a__4[1] = "endvoltabox";
+ s_cat(ch__13, a__4, i__6, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__13, (ftnlen)12);
+ e_wsfe();
+ }
+ if (*(unsigned char *)comget_1.rptfq2 != 'E') {
+
+/* Terminal repeat. Right or double? */
+
+ if (*(unsigned char *)comget_1.rptfq2 == 'r') {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1422);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 14, a__3[1] = "setrightrepeat";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 8, a__3[3] = "endpiece";
+ s_cat(ch__37, a__3, i__5, &c__4, (ftnlen)24);
+ do_fio(&c__1, ch__37, (ftnlen)24);
+ e_wsfe();
+ }
+ } else if (*(unsigned char *)comget_1.rptfq2 == 'd') {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1423);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 12, a__3[1] = "setdoublebar";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 8, a__3[3] = "endpiece";
+ s_cat(ch__38, a__3, i__5, &c__4, (ftnlen)22);
+ do_fio(&c__1, ch__38, (ftnlen)22);
+ e_wsfe();
+ }
+ } else if (*(unsigned char *)comget_1.rptfq2 == 'b') {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1424);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "endpiece";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ } else if (*(unsigned char *)comget_1.rptfq2 == 'z') {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1425);
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = all_1.sq;
+ i__5[1] = 12, a__3[1] = "setzalaligne";
+ i__5[2] = 1, a__3[2] = all_1.sq;
+ i__5[3] = 8, a__3[3] = "Endpiece";
+ s_cat(ch__38, a__3, i__5, &c__4, (ftnlen)22);
+ do_fio(&c__1, ch__38, (ftnlen)22);
+ e_wsfe();
+ }
+ } else {
+/* else if (rptfq2 .ne. 'D') then */
+ s_wsle(&io___1426);
+ e_wsle();
+ s_wsle(&io___1427);
+ do_lio(&c__9, &c__1, "R? , ? not \"d\",\"r\",or\"b\",\"z\"; rptf"
+ "q2:", (ftnlen)37);
+ do_lio(&c__9, &c__1, comget_1.rptfq2, (ftnlen)1);
+ e_wsle();
+ s_wsle(&io___1428);
+ do_lio(&c__9, &c__1, "R? , ? not \"d\",\"r\",or\"b\",\"z\"; rptf"
+ "q2:", (ftnlen)37);
+ do_lio(&c__9, &c__1, comget_1.rptfq2, (ftnlen)1);
+ e_wsle();
+ if (comlast_1.islast) {
+ s_wsfe(&io___1429);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "Endpiece";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1430);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "Endpiece";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ e_wsfe();
+ }
+ }
+ if (! vshrink) {
+ xnstbot = xnsttop[comnotes_1.ipage - 1] * etabot / etatop;
+ if (xnstbot < 9.95f) {
+ s_copy(fmtq, "(a,f3.1,a)", (ftnlen)24, (ftnlen)10);
+ } else {
+ s_copy(fmtq, "(a,f4.1,a)", (ftnlen)24, (ftnlen)10);
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1431);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 5, a__4[1] = "vskip";
+ s_cat(ch__28, a__4, i__6, &c__2, (ftnlen)6);
+ do_fio(&c__1, ch__28, (ftnlen)6);
+ do_fio(&c__1, (char *)&xnstbot, (ftnlen)sizeof(real));
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 10, a__2[1] = "Interligne";
+ i__4[2] = 1, a__2[2] = all_1.sq;
+ i__4[3] = 5, a__2[3] = "eject";
+ i__4[4] = 1, a__2[4] = all_1.sq;
+ i__4[5] = 9, a__2[5] = "endmuflex";
+ s_cat(ch__5, a__2, i__4, &c__6, (ftnlen)27);
+ do_fio(&c__1, ch__5, (ftnlen)27);
+ e_wsfe();
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1432);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 3, a__4[1] = "bye";
+ s_cat(ch__20, a__4, i__6, &c__2, (ftnlen)4);
+ do_fio(&c__1, ch__20, (ftnlen)4);
+ e_wsfe();
+ }
+ } else {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1433);
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = all_1.sq;
+ i__4[1] = 5, a__2[1] = "vfill";
+ i__4[2] = 1, a__2[2] = all_1.sq;
+ i__4[3] = 5, a__2[3] = "eject";
+ i__4[4] = 1, a__2[4] = all_1.sq;
+ i__4[5] = 9, a__2[5] = "endmuflex";
+ s_cat(ch__38, a__2, i__4, &c__6, (ftnlen)22);
+ do_fio(&c__1, ch__38, (ftnlen)22);
+ e_wsfe();
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1434);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 3, a__4[1] = "bye";
+ s_cat(ch__20, a__4, i__6, &c__2, (ftnlen)4);
+ do_fio(&c__1, ch__20, (ftnlen)4);
+ e_wsfe();
+ }
+ }
+ al__1.aerr = 0;
+ al__1.aunit = 11;
+ f_rew(&al__1);
+ if (all_1.figbass) {
+ s_wsfe(&io___1435);
+/* Writing concatenation */
+ i__6[0] = 1, a__4[0] = all_1.sq;
+ i__6[1] = 8, a__4[1] = "figdrop=";
+ s_cat(ch__16, a__4, i__6, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__16, (ftnlen)9);
+ do_fio(&c__1, (char *)&all_1.ifigdr[(all_1.iline << 1) - 2], (ftnlen)
+ sizeof(integer));
+/* Writing concatenation */
+ i__8[0] = 1, a__5[0] = " ";
+ i__8[1] = 1, a__5[1] = all_1.sq;
+ i__8[2] = 8, a__5[2] = "figdtwo=";
+ s_cat(ch__19, a__5, i__8, &c__3, (ftnlen)10);
+ do_fio(&c__1, ch__19, (ftnlen)10);
+ do_fio(&c__1, (char *)&all_1.ifigdr[(all_1.iline << 1) - 1], (ftnlen)
+ sizeof(integer));
+/* Writing concatenation */
+ i__12[0] = 1, a__9[0] = all_1.sq;
+ i__12[1] = 4, a__9[1] = "fi}%";
+ s_cat(ch__35, a__9, i__12, &c__2, (ftnlen)5);
+ do_fio(&c__1, ch__35, (ftnlen)5);
+ e_wsfe();
+ al__1.aerr = 0;
+ al__1.aunit = 14;
+ f_rew(&al__1);
+ }
+ askfig_(pathnameq, &lpath, basenameq, &lbase, &all_1.figbass, &istype0, (
+ ftnlen)40, (ftnlen)44);
+ if (! (*optimize)) {
+ s_wsle(&io___1436);
+ e_wsle();
+ s_wsle(&io___1437);
+/* Writing concatenation */
+ i__5[0] = 8, a__3[0] = "Writing ";
+ i__5[1] = lpath, a__3[1] = pathnameq;
+ i__5[2] = lbase, a__3[2] = basenameq;
+ i__5[3] = 4, a__3[3] = ".tex";
+ s_cat(ch__39, a__3, i__5, &c__4, (ftnlen)96);
+ do_lio(&c__9, &c__1, ch__39, lpath + 8 + lbase + 4);
+ e_wsle();
+ s_wsle(&io___1438);
+ do_lio(&c__9, &c__1, "Done with second PMX pass.", (ftnlen)26);
+ e_wsle();
+ s_wsfe(&io___1439);
+/* Writing concatenation */
+ i__5[0] = 8, a__3[0] = "Writing ";
+ i__5[1] = lpath, a__3[1] = pathnameq;
+ i__5[2] = lbase, a__3[2] = basenameq;
+ i__5[3] = 4, a__3[3] = ".tex";
+ s_cat(ch__39, a__3, i__5, &c__4, (ftnlen)96);
+ do_fio(&c__1, ch__39, lpath + 8 + lbase + 4);
+ e_wsfe();
+ s_wsfe(&io___1440);
+ do_fio(&c__1, " Done with second PMX pass. Now run TeX", (ftnlen)40);
+ e_wsfe();
+ }
+ return 0;
+} /* pmxb_ */
+
+/* Subroutine */ int poestats_(integer *nsyst, real *poe, real *poebar, real *
+ devnorm)
+{
+ /* System generated locals */
+ integer i__1;
+ real r__1;
+
+ /* Builtin functions */
+ double sqrt(doublereal);
+
+ /* Local variables */
+ static real sumx;
+ static integer isyst;
+ static real sumxx;
+
+
+/* Compute avg. & norm. std. dev. of poe. */
+
+ /* Parameter adjustments */
+ --poe;
+
+ /* Function Body */
+ sumx = 0.f;
+ sumxx = 0.f;
+ i__1 = *nsyst;
+ for (isyst = 1; isyst <= i__1; ++isyst) {
+ sumx += poe[isyst];
+/* Computing 2nd power */
+ r__1 = poe[isyst];
+ sumxx += r__1 * r__1;
+/* L1: */
+ }
+/* L2: */
+/* Computing 2nd power */
+ r__1 = sumx;
+ *devnorm = sqrt(*nsyst * sumxx / (r__1 * r__1) - 1);
+ *poebar = sumx / *nsyst;
+ return 0;
+} /* poestats_ */
+
+/* Subroutine */ int precrd_(integer *ivx, integer *ip, integer *nolevm,
+ integer *nacc, integer *ipl, integer *irest, char *udq, logical *
+ twooftwo, integer *icashft, ftnlen udq_len)
+{
+ /* System generated locals */
+ integer i__1, i__2, i__3;
+
+ /* Builtin functions */
+ integer lbit_shift(integer, integer), s_wsle(cilist *), e_wsle(void),
+ do_lio(integer *, integer *, char *, ftnlen);
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer i__, levminacc, levmaxacc, ip1, ile, ivx1, iold, ilev;
+ static logical is2nd;
+ extern /* Subroutine */ int stop1_(void);
+ static integer kicrd[10], nolev, iaccid, naccid, iorder, icrdot0;
+ extern /* Subroutine */ int crdaccs_(integer *, integer *, integer *,
+ integer *, integer *, integer *, integer *, integer *, integer *,
+ logical *, integer *);
+ static integer levtabl[88];
+ extern /* Subroutine */ int setbits_(integer *, integer *, integer *,
+ integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___1448 = { 0, 6, 0, 0, 0 };
+ static cilist io___1449 = { 0, 6, 0, 0, 0 };
+ static cilist io___1460 = { 0, 6, 0, 0, 0 };
+ static cilist io___1461 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Analyzes chords, data to be used with slurs on chords and plain chords. */
+/* Check for 2nds, shift notes if neccesary. */
+/* ipl(10) chord present */
+/* irest(20) set if any note is right shifted */
+/* irest(27) set if any note is left shifted */
+/* ipl(8|9) left|right shift main note */
+/* icrdat(23|24) ditto chord note */
+/* udq is updown-ness, needed to analyze 2nds. */
+/* levtabl(i)=0 if no note at this level, -1 if main note, icrd if chord note. */
+/* icrdot(icrd)(27-29) sequence order of chord note if accid, top down */
+
+ for (i__ = 1; i__ <= 88; ++i__) {
+ levtabl[i__ - 1] = 0;
+/* L11: */
+ }
+ i__1 = comtrill_1.ncrd;
+ for (comtrill_1.icrd1 = 1; comtrill_1.icrd1 <= i__1; ++comtrill_1.icrd1) {
+ ivx1 = (15 & lbit_shift(comtrill_1.icrdat[comtrill_1.icrd1 - 1], (
+ ftnlen)-8)) + (igetbits_(&comtrill_1.icrdat[comtrill_1.icrd1
+ - 1], &c__1, &c__28) << 4);
+ ip1 = 255 & comtrill_1.icrdat[comtrill_1.icrd1 - 1];
+ if (ip1 == *ip && ivx1 == *ivx) {
+ goto L2;
+ }
+/* L1: */
+ }
+ s_wsle(&io___1448);
+ e_wsle();
+ s_wsle(&io___1449);
+ do_lio(&c__9, &c__1, "Cannot find first chord note in precrd. Send sourc"
+ "e to Dr. Don!", (ftnlen)63);
+ e_wsle();
+ stop1_();
+L2:
+ comtrill_1.maxlev = *nolevm;
+ comtrill_1.minlev = *nolevm;
+ levtabl[*nolevm - 1] = -1;
+ is2nd = FALSE_;
+ naccid = 0;
+ levmaxacc = -100;
+ levminacc = 1000;
+
+/* Check 1st 3 bits of nacc for accid on main note of chord. */
+
+ if ((7 & *nacc) > 0) {
+ naccid = 1;
+
+/* Start list of notes with accid's. There will be naccid of them. kicrd=0 if main, */
+/* otherwise icrd value for note with accidental. */
+
+ kicrd[0] = 0;
+ levmaxacc = *nolevm;
+ levminacc = *nolevm;
+
+/* Start the level-ranking */
+
+ icrdot0 = 1;
+ }
+ i__1 = comtrill_1.ncrd;
+ for (comtrill_1.icrd2 = comtrill_1.icrd1; comtrill_1.icrd2 <= i__1;
+ ++comtrill_1.icrd2) {
+ nolev = igetbits_(&comtrill_1.icrdat[comtrill_1.icrd2 - 1], &c__7, &
+ c__12);
+ levtabl[nolev - 1] = comtrill_1.icrd2;
+ comtrill_1.maxlev = max(comtrill_1.maxlev,nolev);
+ comtrill_1.minlev = min(comtrill_1.minlev,nolev);
+
+/* Check for accidental */
+
+ if (bit_test(comtrill_1.icrdat[comtrill_1.icrd2 - 1],19)) {
+ ++naccid;
+ levmaxacc = max(levmaxacc,nolev);
+ levminacc = min(levminacc,nolev);
+
+/* Add this icrd to list of values for notes with accid's. */
+
+ kicrd[naccid - 1] = comtrill_1.icrd2;
+ if (! bit_test(*nacc,28)) {
+
+/* Order not forced, so get the level-ranking, top down */
+
+ iorder = 1;
+ i__2 = naccid - 1;
+ for (iaccid = 1; iaccid <= i__2; ++iaccid) {
+ if (kicrd[iaccid - 1] == 0) {
+ if (*nolevm > nolev) {
+ ++iorder;
+ } else {
+ ++icrdot0;
+ }
+ } else {
+ if (igetbits_(&comtrill_1.icrdat[kicrd[iaccid - 1] -
+ 1], &c__7, &c__12) > nolev) {
+ ++iorder;
+ } else {
+ iold = igetbits_(&comtrill_1.icrdot[kicrd[iaccid
+ - 1] - 1], &c__3, &c__27);
+ i__3 = iold + 1;
+ setbits_(&comtrill_1.icrdot[kicrd[iaccid - 1] - 1]
+ , &c__3, &c__27, &i__3);
+ }
+ }
+/* L12: */
+ }
+ setbits_(&comtrill_1.icrdot[comtrill_1.icrd2 - 1], &c__3, &
+ c__27, &iorder);
+ }
+ }
+
+/* Exit loop if last note in this chord */
+
+ if (comtrill_1.icrd2 == comtrill_1.ncrd) {
+ goto L4;
+ }
+ if (igetbits_(&comtrill_1.icrdat[comtrill_1.icrd2], &c__8, &c__0) != *
+ ip || igetbits_(&comtrill_1.icrdat[comtrill_1.icrd2], &c__4, &
+ c__8) + (igetbits_(&comtrill_1.icrdat[comtrill_1.icrd2], &
+ c__1, &c__28) << 4) != *ivx) {
+ goto L4;
+ }
+/* * igetbits(icrdat(icrd2+1),4,8) .ne. ivx) go to 4 */
+/* L3: */
+ }
+ s_wsle(&io___1460);
+ e_wsle();
+ s_wsle(&io___1461);
+ do_lio(&c__9, &c__1, "Failed to find last chord note. Send source to Dr."
+ " Don!", (ftnlen)55);
+ e_wsle();
+ stop1_();
+L4:
+
+/* Now icrd1, icrd2 define range of icrd for this chord. */
+
+/* Bypass autos-shifting if any manual shifts are present */
+
+ if (bit_test(*irest,20) || bit_test(*irest,27)) {
+ goto L10;
+ }
+
+/* Check for 2nds */
+
+ for (ilev = 1; ilev <= 87; ++ilev) {
+ if (levtabl[ilev - 1] != 0 && levtabl[ilev] != 0) {
+
+/* There is at least one 2nd.. */
+
+ if (*(unsigned char *)udq == 'u') {
+
+/* Upstem. Start with 2nd just found and go up, rt-shifting upper */
+/* member of each pair */
+
+ ile = ilev;
+
+/* Set main-note flag for ANY right-shift */
+
+ *irest = bit_set(*irest,20);
+L7:
+ if (levtabl[ile] < 0) {
+
+/* Upstem, & upper member is main so must be rt-shifted. This would move */
+/* stem too, so we rt-shift the OTHER note, and set flag that signals */
+/* to interchange pitches just when these two notes are placed. */
+
+ *nacc = bit_set(*nacc,30);
+ comtrill_1.icrdat[levtabl[ile - 1] - 1] = bit_set(
+ comtrill_1.icrdat[levtabl[ile - 1] - 1],24);
+ } else {
+
+/* Upper member is chord note, must be rt-shifted */
+
+ comtrill_1.icrdat[levtabl[ile] - 1] = bit_set(
+ comtrill_1.icrdat[levtabl[ile] - 1],24);
+ }
+ ++ile;
+L8:
+ ++ile;
+ if (ile < 87) {
+ if (levtabl[ile - 1] != 0 && levtabl[ile] != 0) {
+ goto L7;
+ } else {
+ goto L8;
+ }
+ }
+ goto L10;
+ } else {
+
+/* Downstem. Start at top and work down, left-shifting lower member of each pair. */
+/* We know that lowest pair is at (ilev,ilev+1). */
+
+ ile = 88;
+
+/* Set main-note flag for ANY right-shift */
+
+ *irest = bit_set(*irest,27);
+L9:
+ if (levtabl[ile - 1] != 0 && levtabl[ile - 2] != 0) {
+ if (levtabl[ile - 2] < 0) {
+/* ipl = ibset(ipl,8) */
+
+/* Dnstem, & lower member is main so must be left-shifted. This would move */
+/* stem too, so we left-shift the OTHER note, and set flag that signals */
+/* to interchange pitches just when these two notes are placed. */
+
+ *nacc = bit_set(*nacc,31);
+ comtrill_1.icrdat[levtabl[ile - 1] - 1] = bit_set(
+ comtrill_1.icrdat[levtabl[ile - 1] - 1],23);
+ } else {
+
+/* Lower member is chord note, must be shifted */
+
+ comtrill_1.icrdat[levtabl[ile - 2] - 1] = bit_set(
+ comtrill_1.icrdat[levtabl[ile - 2] - 1],23);
+ }
+ --ile;
+ }
+ --ile;
+ if (ile >= ilev + 1) {
+ goto L9;
+ }
+ goto L10;
+ }
+ }
+/* L5: */
+ }
+L10:
+
+/* Done with 2nds, now do accid's. Call even if just one, in case left shifts. */
+
+/* if (naccid .gt. 1) call crdaccs(nacc,ipl,irest,naccid, */
+ if (naccid >= 1) {
+ crdaccs_(nacc, ipl, irest, &naccid, kicrd, nolevm, &levmaxacc, &
+ levminacc, &icrdot0, twooftwo, icashft);
+ }
+ return 0;
+} /* precrd_ */
+
+/* Subroutine */ int printl_(char *string, ftnlen string_len)
+{
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void), s_wsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_wsfe(void);
+
+ /* Fortran I/O blocks */
+ static cilist io___1464 = { 0, 6, 0, 0, 0 };
+ static cilist io___1465 = { 0, 15, 0, "(a)", 0 };
+
+
+
+/* Send string to console and to log file */
+
+ s_wsle(&io___1464);
+ do_lio(&c__9, &c__1, string, string_len);
+ e_wsle();
+ s_wsfe(&io___1465);
+ do_fio(&c__1, string, string_len);
+ e_wsfe();
+ return 0;
+} /* printl_ */
+
+/* Subroutine */ int putarp_(real *tnow, integer *iv, integer *ip, integer *
+ nolev, integer *ncm, char *soutq, integer *lsout, ftnlen soutq_len)
+{
+ /* Initialized data */
+
+ static char symq[8*2] = "raisearp" "arpeggio";
+
+ /* System generated locals */
+ address a__1[2], a__2[3], a__3[4];
+ integer i__1, i__2[2], i__3[3], i__4[4];
+ real r__1;
+ char ch__1[1], ch__2[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ , i_nint(real *);
+
+ /* Local variables */
+ static logical isarpshift;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer iarp, isym, iarps, lnote;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static integer levbot, ilvert, invert;
+ static char notexq[79];
+
+ /* Fortran I/O blocks */
+ static icilist io___1471 = { 0, notexq+9, 0, "(f3.1,a2)", 5, 1 };
+
+
+
+/* Find which iarp, if any */
+
+ i__1 = comarp_1.narp;
+ for (iarp = 1; iarp <= i__1; ++iarp) {
+ if ((r__1 = *tnow - comarp_1.tar[iarp - 1], dabs(r__1)) <
+ comtol_1.tol) {
+ goto L2;
+ }
+/* L1: */
+ }
+
+/* If here, this is the *first* call for this arp. */
+
+ ++comarp_1.narp;
+ comarp_1.tar[comarp_1.narp - 1] = *tnow + comtol_1.tol * .5f;
+ comarp_1.ivar1[comarp_1.narp - 1] = *iv;
+ comarp_1.ipar1[comarp_1.narp - 1] = *ip;
+ comarp_1.levar1[comarp_1.narp - 1] = *nolev;
+ comarp_1.ncmar1[comarp_1.narp - 1] = *ncm;
+ return 0;
+L2:
+
+/* If here, this is *second* call at this time, iarp points to values from 1st. */
+
+/* Check for shift. Set IsArpShift and iarps */
+
+ i__1 = comarpshift_1.numarpshift;
+ for (iarps = 1; iarps <= i__1; ++iarps) {
+ if (comarpshift_1.ivarpshift[iarps - 1] == comarp_1.ivar1[iarp - 1] &&
+ comarpshift_1.iparpshift[iarps - 1] == comarp_1.ipar1[iarp -
+ 1]) {
+ isarpshift = TRUE_;
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 8, a__1[1] = "loffset{";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ s_wsfi(&io___1471);
+ do_fio(&c__1, (char *)&comarpshift_1.arpshift[iarps - 1], (ftnlen)
+ sizeof(real));
+ do_fio(&c__1, "}{", (ftnlen)2);
+ e_wsfi();
+ lnote = 14;
+ goto L4;
+ }
+/* L3: */
+ }
+ isarpshift = FALSE_;
+ lnote = 0;
+L4:
+ if (*iv == comarp_1.ivar1[iarp - 1]) {
+
+/* Arp is in a single staff. */
+
+/* Computing MIN */
+ i__1 = comarp_1.levar1[iarp - 1];
+ levbot = min(i__1,*nolev) - *ncm + 3;
+ invert = (i__1 = comarp_1.levar1[iarp - 1] - *nolev, abs(i__1)) + 1;
+ } else {
+
+/* Arp covers >1 staff. Lower staff has to be the first, upper is current and */
+/* is where the symbol will be written. */
+
+ r__1 = comarp_1.xinsnow * 2;
+ levbot = -i_nint(&r__1) + 3 + comarp_1.levar1[iarp - 1] -
+ comarp_1.ncmar1[iarp - 1];
+ invert = -levbot + 4 + *nolev - *ncm;
+/* print*,'xinsnow,levar1,ncmar1,levbot,nolev,ncm:' */
+/* write(*,'(f5.1,5i5)')xinsnow,levar1(iarp),ncmar1(iarp), */
+/* *levbot,nolev,ncm */
+ }
+
+/* isym will be (1,2) if invert is (even,odd). If even, raise .5\internote */
+
+ isym = invert % 2 + 1;
+ ilvert = (invert + 1) / 2;
+ if (levbot >= 0 && levbot <= 9) {
+
+/* Single digit */
+
+ if (! isarpshift) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__2[0] = ch__1;
+ i__3[1] = 8, a__2[1] = symq + (isym - 1 << 3);
+ i__1 = levbot + 48;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ i__3[2] = 1, a__2[2] = ch__2;
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__4[0] = lnote, a__3[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 8, a__3[2] = symq + (isym - 1 << 3);
+ i__1 = levbot + 48;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ i__4[3] = 1, a__3[3] = ch__2;
+ s_cat(notexq, a__3, i__4, &c__4, (ftnlen)79);
+ }
+ lnote += 10;
+ } else {
+ if (! isarpshift) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__2[0] = ch__1;
+ i__3[1] = 8, a__2[1] = symq + (isym - 1 << 3);
+ i__3[2] = 1, a__2[2] = "{";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__4[0] = lnote, a__3[0] = notexq;
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__4[1] = 1, a__3[1] = ch__1;
+ i__4[2] = 8, a__3[2] = symq + (isym - 1 << 3);
+ i__4[3] = 1, a__3[3] = "{";
+ s_cat(notexq, a__3, i__4, &c__4, (ftnlen)79);
+ }
+ lnote += 10;
+ if (levbot >= -9) {
+
+/* Need two spaces for number */
+
+ i__1 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 3 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i2,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&levbot, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ lnote += 3;
+ } else {
+ i__1 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 4 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i3,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&levbot, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ lnote += 4;
+ }
+ }
+/* if (ilvert .le. 9) then */
+/* call addstr(notexq(1:lnote)//chax(48+ilvert),lnote+1, */
+/* * soutq,lsout) */
+/* else */
+/* write(notexq(lnote+1:lnote+4),'(a1,i2,a1)')'{',ilvert,'}' */
+/* call addstr(notexq(1:lnote+4),lnote+4,soutq,lsout) */
+/* end if */
+ if (ilvert > 9) {
+ i__1 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 4 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(a1,i2,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, "{", (ftnlen)1);
+ do_fio(&c__1, (char *)&ilvert, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__1 = ilvert + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__2[1] = 1, a__1[1] = ch__1;
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ if (isarpshift) {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ addstr_(notexq, &lnote, soutq, lsout, lnote, (ftnlen)80);
+
+/* cancel out the stored time, to permit two arps at same time! */
+
+ comarp_1.tar[iarp - 1] = -1.f;
+ return 0;
+} /* putarp_ */
+
+/* Subroutine */ int putast_(real *elask, integer *indxask, char *outq,
+ ftnlen outq_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1, i__2[3];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+
+ /* Local variables */
+ static integer lp;
+ static char tag[129], fmtq[9];
+
+ /* Fortran I/O blocks */
+ static icilist io___1479 = { 0, fmtq, 0, "(a5,i1,a3)", 9, 1 };
+
+
+ if (*elask >= 0.f) {
+ if (*elask < .995f) {
+ lp = 3;
+ } else if (*elask < 9.995f) {
+ lp = 4;
+ } else {
+ lp = 5;
+ }
+ s_wsfi(&io___1479);
+ do_fio(&c__1, "(a2,f", (ftnlen)5);
+ do_fio(&c__1, (char *)&lp, (ftnlen)sizeof(integer));
+ do_fio(&c__1, ".2)", (ftnlen)3);
+ e_wsfi();
+ } else {
+ lp = 5;
+ s_copy(fmtq, "(a2,f5.1)", (ftnlen)9, (ftnlen)9);
+ }
+
+/* Overwrite as follows: ...xyz*ask *lmnop... -> */
+/* ...xyz*ast{.nn}*lmnop... */
+/* ...xyz*ast{n.nn}*lmnop... */
+/* ...xyz*ast{nn.nn}*lmnop... */
+/* or for negative, ...xyz*ast{-nn.n}*lmnop... */
+ i__1 = *indxask + 8;
+ s_copy(tag, outq + i__1, (ftnlen)129, 129 - i__1);
+ i__1 = *indxask + 2;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 129 - i__1;
+ ici__1.iciunit = outq + i__1;
+ ici__1.icifmt = fmtq;
+ s_wsfi(&ici__1);
+ do_fio(&c__1, "t{", (ftnlen)2);
+ do_fio(&c__1, (char *)&(*elask), (ftnlen)sizeof(real));
+ e_wsfi();
+/* Writing concatenation */
+ i__2[0] = *indxask + 4 + lp, a__1[0] = outq;
+ i__2[1] = 1, a__1[1] = "}";
+ i__2[2] = 129, a__1[2] = tag;
+ s_cat(outq, a__1, i__2, &c__3, (ftnlen)129);
+ return 0;
+} /* putast_ */
+
+/* Subroutine */ int putcb_(integer *ivx, integer *ip, char *notexq, integer *
+ lnote, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer i__1, i__2[2];
+ char ch__1[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_stop(char *, ftnlen), s_copy(char *, char *,
+ ftnlen, ftnlen), s_cat(char *, char **, integer *, integer *,
+ ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer ibc, ipbc, ivxbc;
+ static real hshft;
+ static integer ihshft, ivshft;
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+
+/* ivxip = ivx+16*ip */
+ i__1 = comcb_1.nbc;
+ for (ibc = 1; ibc <= i__1; ++ibc) {
+/* if (ivxip .eq. iand(1023,ibcdata(ibc))) go to 2 */
+/* if (ivx.eq.iand(15,ibcdata(ibc))+16*igetbits(ibcdata(ibc),1,28) */
+/* * .and. ip.eq.iand(1008,ibcdata(ibc))) go to 2 */
+ ivxbc = (15 & comcb_1.ibcdata[ibc - 1]) + (igetbits_(&comcb_1.ibcdata[
+ ibc - 1], &c__1, &c__28) << 4);
+ ipbc = igetbits_(&comcb_1.ibcdata[ibc - 1], &c__8, &c__4);
+ if (*ivx == ivxbc && *ip == ipbc) {
+ goto L2;
+ }
+/* L1: */
+ }
+ printl_("Error in putbc, Call Dr. Don", (ftnlen)28);
+ s_stop("", (ftnlen)0);
+L2:
+ if (bit_test(comcb_1.ibcdata[ibc - 1],27)) {
+ *lnote = 8;
+ s_copy(notexq, "\\pbreath", (ftnlen)79, (ftnlen)8);
+ } else {
+ *lnote = 9;
+ s_copy(notexq, "\\pcaesura", (ftnlen)79, (ftnlen)9);
+ }
+ ivshft = igetbits_(&comcb_1.ibcdata[ibc - 1], &c__6, &c__13);
+/* ?? ivshft = igetbits(ibcdata(ibc),6,13)-32 */
+ if (ivshft > 0) {
+ ivshft += -32;
+ }
+ if (ivshft < 0 || ivshft > 9) {
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "{";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+ if (ivshft < -9) {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 3 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i3)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&ivshft, (ftnlen)sizeof(integer));
+ e_wsfi();
+ *lnote += 3;
+ } else {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 2 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(i2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&ivshft, (ftnlen)sizeof(integer));
+ e_wsfi();
+ *lnote += 2;
+ }
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+ } else {
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ *(unsigned char *)&ch__1[0] = ivshft + 48;
+ i__2[1] = 1, a__1[1] = ch__1;
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ ihshft = igetbits_(&comcb_1.ibcdata[ibc - 1], &c__8, &c__19);
+ if (ihshft == 0) {
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "0";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+ } else {
+ hshft = (ihshft - 128) * .1f;
+
+/* -12.8<hshft<12.8 */
+
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "{";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+ if (hshft < -9.95f) {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 5 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f5.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&hshft, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote += 5;
+ } else if (hshft < -.05f || hshft > 9.95f) {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 4 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f4.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&hshft, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote += 4;
+ } else {
+ i__1 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 3 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f3.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&hshft, (ftnlen)sizeof(real));
+ e_wsfi();
+ *lnote += 3;
+ }
+/* Writing concatenation */
+ i__2[0] = *lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++(*lnote);
+ }
+ return 0;
+} /* putcb_ */
+
+/* Subroutine */ int putfig_(integer *ivx, integer *ifig, real *offnsk,
+ logical *figcheck, char *soutq, integer *lsout, ftnlen soutq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3], a__3[6], a__4[4];
+ integer i__1[2], i__2[3], i__3, i__4[6], i__5[4];
+ real r__1;
+ char ch__1[1], ch__2[22], ch__3[21], ch__4[20], ch__5[19], ch__6[18],
+ ch__7[13], ch__8[11], ch__9[8], ch__10[2];
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ , i_indx(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer ic;
+ static char sq[1];
+ static integer nof;
+ static char ch1q[1], ch2q[1];
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer nofa;
+ static char figq[10];
+ static integer lnof;
+ static char nofq[5];
+ static integer lnum, lnofa;
+ static char nofaq[5];
+ static integer icnum, lnote;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static char figutq[4], conttq[4], notexq[80];
+ extern /* Subroutine */ int istring_(integer *, char *, integer *, ftnlen)
+ ;
+
+ /* Fortran I/O blocks */
+ static icilist io___1491 = { 0, notexq+5, 0, "(f6.2)", 6, 1 };
+ static icilist io___1493 = { 0, notexq+5, 0, "(f5.2)", 5, 1 };
+ static icilist io___1494 = { 0, notexq+5, 0, "(f4.2)", 4, 1 };
+ static icilist io___1495 = { 0, notexq+5, 0, "(f3.2)", 3, 1 };
+ static icilist io___1508 = { 0, notexq+5, 0, "(f6.2)", 6, 1 };
+ static icilist io___1509 = { 0, notexq+5, 0, "(f5.2)", 5, 1 };
+ static icilist io___1510 = { 0, notexq+5, 0, "(f4.2)", 4, 1 };
+ static icilist io___1511 = { 0, notexq+5, 0, "(f3.2)", 3, 1 };
+
+
+ if (*ivx == 1) {
+ s_copy(figutq, "Figu", (ftnlen)4, (ftnlen)4);
+ s_copy(conttq, "Cont", (ftnlen)4, (ftnlen)4);
+ } else {
+ s_copy(figutq, "Figt", (ftnlen)4, (ftnlen)4);
+ s_copy(conttq, "Cott", (ftnlen)4, (ftnlen)4);
+ }
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ if (dabs(*offnsk) > 1e-4f) {
+
+/* Write offset for floating figure, to two decimal places */
+
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 4, a__1[1] = "off{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)80);
+ if (-(*offnsk) < -9.995f) {
+ s_wsfi(&io___1491);
+ r__1 = -(*offnsk);
+ do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 11;
+ } else if (-(*offnsk) < -.995f || -(*offnsk) > 9.995f) {
+ s_wsfi(&io___1493);
+ r__1 = -(*offnsk);
+ do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 10;
+ } else if (-(*offnsk) < -1e-4f || -(*offnsk) > .995f) {
+ s_wsfi(&io___1494);
+ r__1 = -(*offnsk);
+ do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 9;
+ } else {
+ s_wsfi(&io___1495);
+ r__1 = -(*offnsk);
+ do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 8;
+ }
+/* Writing concatenation */
+ i__2[0] = lnote, a__2[0] = notexq;
+ i__2[1] = 1, a__2[1] = sq;
+ i__2[2] = 9, a__2[2] = "noteskip}";
+ s_cat(notexq, a__2, i__2, &c__3, (ftnlen)80);
+ i__3 = lnote + 10;
+ addstr_(notexq, &i__3, soutq, lsout, (ftnlen)80, (ftnlen)80);
+ }
+ s_copy(figq, comfig_2.figqq + (*ivx + (*ifig << 1) - 3) * 10, (ftnlen)10,
+ (ftnlen)10);
+ ic = 1;
+/* nof = 0 */
+/* nofa = -1 */
+ nof = -comfig_2.ivupfig[*ivx + (*ifig << 1) - 3];
+ nofa = -comfig_2.ivupfig[*ivx + (*ifig << 1) - 3] - 1;
+
+/* Beginning of manual loop */
+
+L1:
+ *(unsigned char *)ch1q = *(unsigned char *)&figq[ic - 1];
+
+/* Exit when first blank is encountered */
+
+ if (*(unsigned char *)ch1q == ' ') {
+ goto L2;
+ }
+
+/* Starting a level. Set up vertical offset. */
+
+/* lnof = 1 */
+/* nofq = chax(nof+48) */
+/* if (nof .gt. 9) then */
+/* lnof = 2 */
+/* nofq = '1'//chax(nof-10+48) */
+/* end if */
+/* if (nofa .eq.-1) then */
+/* lnofa = 2 */
+/* nofaq = '-1' */
+/* else if (nofa .lt. 10) then */
+/* lnofa = 1 */
+/* nofaq = chax(nofa+48) */
+/* else */
+/* lnofa = 2 */
+/* nofaq = '1'//chax(nofa+38) */
+/* end if */
+ istring_(&nof, nofq, &lnof, (ftnlen)5);
+ istring_(&nofa, nofaq, &lnofa, (ftnlen)5);
+ if (*(unsigned char *)ch1q == '0') {
+
+/* Continuation figure. Next number is length (in noteskips). The number will */
+/* end at the first blank or char that is not digit or decimal point. If */
+/* colon, it is a separator and must be skipped */
+
+ icnum = ic + 1;
+L3:
+ ++ic;
+ if (i_indx("0123456789.", figq + (ic - 1), (ftnlen)11, (ftnlen)1) > 0)
+ {
+ goto L3;
+ }
+ lnum = ic - icnum;
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = conttq;
+ i__4[2] = lnof, a__3[2] = nofq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = ic - 1 - (icnum - 1), a__3[4] = figq + (icnum - 1);
+ i__4[5] = 1, a__3[5] = "}";
+ s_cat(ch__2, a__3, i__4, &c__6, (ftnlen)22);
+ i__3 = ic + 7 - icnum + lnof;
+ addstr_(ch__2, &i__3, soutq, lsout, lnof + 6 + (ic - 1 - (icnum - 1))
+ + 1, (ftnlen)80);
+ if (*(unsigned char *)&figq[ic - 1] != ':') {
+ --ic;
+ }
+ } else if (*(unsigned char *)ch1q == '#' || *(unsigned char *)ch1q == '-'
+ || *(unsigned char *)ch1q == 'n') {
+ ++ic;
+ *(unsigned char *)ch2q = *(unsigned char *)&figq[ic - 1];
+ if (*(unsigned char *)ch2q == ' ') {
+
+/* Figure is a stand-alone accidental, so must be centered */
+
+ if (*(unsigned char *)ch1q == '#') {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = figutq;
+ i__4[2] = lnofa, a__3[2] = nofaq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = 1, a__3[4] = sq;
+ i__4[5] = 9, a__3[5] = "sharpfig}";
+ s_cat(ch__3, a__3, i__4, &c__6, (ftnlen)21);
+ i__3 = lnofa + 16;
+ addstr_(ch__3, &i__3, soutq, lsout, lnofa + 16, (ftnlen)80);
+ } else if (*(unsigned char *)ch1q == '-') {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = figutq;
+ i__4[2] = lnofa, a__3[2] = nofaq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = 1, a__3[4] = sq;
+ i__4[5] = 8, a__3[5] = "flatfig}";
+ s_cat(ch__4, a__3, i__4, &c__6, (ftnlen)20);
+ i__3 = lnofa + 15;
+ addstr_(ch__4, &i__3, soutq, lsout, lnofa + 15, (ftnlen)80);
+ } else if (*(unsigned char *)ch1q == 'n') {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = figutq;
+ i__4[2] = lnofa, a__3[2] = nofaq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = 1, a__3[4] = sq;
+ i__4[5] = 7, a__3[5] = "natfig}";
+ s_cat(ch__5, a__3, i__4, &c__6, (ftnlen)19);
+ i__3 = lnofa + 14;
+ addstr_(ch__5, &i__3, soutq, lsout, lnofa + 14, (ftnlen)80);
+ }
+ goto L2;
+ } else {
+
+/* Figure is an accidental followed by a number */
+/* First put the accidental (offset to the left) */
+
+ if (*(unsigned char *)ch1q == '#') {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = figutq;
+ i__4[2] = lnofa, a__3[2] = nofaq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = 1, a__3[4] = sq;
+ i__4[5] = 6, a__3[5] = "fsmsh}";
+ s_cat(ch__6, a__3, i__4, &c__6, (ftnlen)18);
+ i__3 = lnofa + 13;
+ addstr_(ch__6, &i__3, soutq, lsout, lnofa + 13, (ftnlen)80);
+ } else if (*(unsigned char *)ch1q == '-') {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = figutq;
+ i__4[2] = lnofa, a__3[2] = nofaq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = 1, a__3[4] = sq;
+ i__4[5] = 6, a__3[5] = "fsmfl}";
+ s_cat(ch__6, a__3, i__4, &c__6, (ftnlen)18);
+ i__3 = lnofa + 13;
+ addstr_(ch__6, &i__3, soutq, lsout, lnofa + 13, (ftnlen)80);
+ } else if (*(unsigned char *)ch1q == 'n') {
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = figutq;
+ i__4[2] = lnofa, a__3[2] = nofaq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = 1, a__3[4] = sq;
+ i__4[5] = 6, a__3[5] = "fsmna}";
+ s_cat(ch__6, a__3, i__4, &c__6, (ftnlen)18);
+ i__3 = lnofa + 13;
+ addstr_(ch__6, &i__3, soutq, lsout, lnofa + 13, (ftnlen)80);
+ }
+
+/* Now put the number */
+
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = sq;
+ i__4[1] = 4, a__3[1] = figutq;
+ i__4[2] = lnof, a__3[2] = nofq;
+ i__4[3] = 1, a__3[3] = "{";
+ i__4[4] = 1, a__3[4] = ch2q;
+ i__4[5] = 1, a__3[5] = "}";
+ s_cat(ch__7, a__3, i__4, &c__6, (ftnlen)13);
+ i__3 = lnof + 8;
+ addstr_(ch__7, &i__3, soutq, lsout, lnof + 8, (ftnlen)80);
+ }
+ } else if (*(unsigned char *)ch1q == '_') {
+
+/* Placeholder only (for lowering a figure). Don't do anything! */
+
+ } else {
+
+/* Figure is a single number, maybe with s after */
+
+/* Writing concatenation */
+ i__5[0] = 1, a__4[0] = sq;
+ i__5[1] = 4, a__4[1] = figutq;
+ i__5[2] = lnof, a__4[2] = nofq;
+ i__5[3] = 1, a__4[3] = "{";
+ s_cat(ch__8, a__4, i__5, &c__4, (ftnlen)11);
+ i__3 = lnof + 6;
+ addstr_(ch__8, &i__3, soutq, lsout, lnof + 6, (ftnlen)80);
+ i__3 = ic;
+ s_copy(ch2q, figq + i__3, (ftnlen)1, ic + 1 - i__3);
+ if (*(unsigned char *)ch2q == 's') {
+
+/* Use a special character. Insert font call */
+
+ ++ic;
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 7, a__1[1] = "ligfont";
+ s_cat(ch__9, a__1, i__1, &c__2, (ftnlen)8);
+ addstr_(ch__9, &c__8, soutq, lsout, (ftnlen)8, (ftnlen)80);
+ }
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = ch1q;
+ i__1[1] = 1, a__1[1] = "}";
+ s_cat(ch__10, a__1, i__1, &c__2, (ftnlen)2);
+ addstr_(ch__10, &c__2, soutq, lsout, (ftnlen)2, (ftnlen)80);
+/* call addstr(sq//Figutq//nofq(1:lnof)//'{'//ch1q//'}', */
+/* * 8+lnof,soutq,lsout) */
+ }
+ if (ic >= 10) {
+ goto L2;
+ }
+ ++ic;
+ nof += 4;
+ nofa += 4;
+ goto L1;
+L2:
+ if (dabs(*offnsk) > 1e-4f) {
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 4, a__1[1] = "off{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)80);
+ if (*offnsk < -9.995f) {
+ s_wsfi(&io___1508);
+ do_fio(&c__1, (char *)&(*offnsk), (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 11;
+ } else if (*offnsk < -.995f || *offnsk > 9.995f) {
+ s_wsfi(&io___1509);
+ do_fio(&c__1, (char *)&(*offnsk), (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 10;
+ } else if (*offnsk < -1e-4f || *offnsk > .995f) {
+ s_wsfi(&io___1510);
+ do_fio(&c__1, (char *)&(*offnsk), (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 9;
+ } else {
+ s_wsfi(&io___1511);
+ do_fio(&c__1, (char *)&(*offnsk), (ftnlen)sizeof(real));
+ e_wsfi();
+ lnote = 8;
+ }
+/* Writing concatenation */
+ i__2[0] = lnote, a__2[0] = notexq;
+ i__2[1] = 1, a__2[1] = sq;
+ i__2[2] = 9, a__2[2] = "noteskip}";
+ s_cat(notexq, a__2, i__2, &c__3, (ftnlen)80);
+ i__3 = lnote + 10;
+ addstr_(notexq, &i__3, soutq, lsout, (ftnlen)80, (ftnlen)80);
+ }
+ if (*ifig < comfig_2.nfigs[*ivx - 1]) {
+ ++(*ifig);
+ } else {
+ comfig_2.nfigs[*ivx - 1] = 0;
+ *figcheck = FALSE_;
+ }
+ return 0;
+} /* putfig_ */
+
+/* Subroutine */ int putorn_(integer *iornq, integer *nolev, integer *nolevm,
+ integer *nodur, integer *nornb, char *ulq, integer *ibmcnt, integer *
+ ivx, integer *ncm, integer *islur, integer *nvmx, integer *nv,
+ integer *ihornb, real *stemlin, char *outq, integer *lout, integer *
+ ip, integer *islhgt, logical *beamon, logical *iscrd, ftnlen ulq_len,
+ ftnlen outq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3], a__3[6];
+ integer i__1, i__2, i__3[2], i__4[3], i__5[6];
+ real r__1, r__2;
+ char ch__1[1], ch__2[6];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *), i_nint(real *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer lbit_shift(integer, integer), i_dim(integer *, integer *), s_wsfi(
+ icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int addblank_(char *, integer *, ftnlen);
+ static logical usehornb;
+ static char sq[1];
+ extern integer log2_(integer *);
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer ioff, ibit;
+ extern /* Character */ VOID udqq_(char *, ftnlen, integer *, integer *,
+ integer *, integer *, integer *, integer *);
+ extern integer lfmt1_(real *);
+ static integer ibitt, ihorn, lform, lnote;
+ static char noteq[8];
+ static integer iornt;
+ static char ulpzq[1];
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten, iudorn;
+ static char notexq[79];
+ static integer iclracc, ioffinc;
+ static real stemlen;
+ extern /* Subroutine */ int dotrill_(integer *, integer *, integer *,
+ char *, integer *, char *, integer *, ftnlen, ftnlen);
+
+
+/* All args are individual array element *values* except nornb,ihornb,ulq. */
+/* notcrd = .true. if ornament is on main note. */
+/* nolevm is level of main note (for chords) */
+
+ /* Parameter adjustments */
+ ihornb -= 25;
+ ulq -= 25;
+ --nornb;
+
+ /* Function Body */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ *lout = 0;
+ usehornb = FALSE_;
+ if (*nodur < 64) {
+ stemlen = *stemlin;
+ } else {
+ stemlen = 0.f;
+ }
+
+/* Get up-downness. ulpzq is opposite from stem direction for both beams and */
+/* non beams. Can use in name of ornament [ . or _ ] */
+
+ if (*beamon) {
+ if (*(unsigned char *)&ulq[*ivx + *ibmcnt * 24] == 'u') {
+ *(unsigned char *)ulpzq = 'l';
+ } else {
+ *(unsigned char *)ulpzq = 'u';
+ }
+ } else {
+ udqq_(ch__1, (ftnlen)1, nolevm, ncm, islur, nvmx, ivx, nv);
+ if (*(unsigned char *)&ch__1[0] == 'l') {
+ *(unsigned char *)ulpzq = 'u';
+ } else {
+ *(unsigned char *)ulpzq = 'l';
+ }
+ }
+
+/* To enable >1 ornament on a note, next line is top of manual loop. */
+
+L2:
+
+/* Bit # of last ornament (last of bits 0-21) */
+/* c Bit # of last ornament (last of bits 0-24) */
+ i__1 = *iornq & 4194303;
+ ibit = log2_(&i__1);
+/* ibit = log2(iand(iornq,33554431)) */
+ iornt = pow_ii(&c__2, &ibit);
+
+/* Begin routine to set height. Bits 0-13: (stmgx+Tupf._) */
+/* 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n */
+/* 19-20: >^, 21: ? (with or w/o 16-18) */
+
+/* Do not use beam height for . or _ */
+
+ if (bit_test(*iornq,22) && (iornt & 6144) == 0) {
+
+/* Height is set by special beam stuff. */
+/* Do not leave ihorn set, do separately for every ornament */
+
+ ihorn = ihornb[*ivx + nornb[*ivx] * 24];
+ if (*(unsigned char *)ulpzq == 'u') {
+ ihorn += -2;
+ }
+
+/* Following flag tells whether to increment nornb when exiting the subroutine. */
+
+ usehornb = TRUE_;
+ } else if (ibit == 14) {
+
+/* Down fermata. Don't worry about upper chord notes. */
+
+ if (*(unsigned char *)ulpzq == 'l') {
+/* Computing MIN */
+ i__1 = *nolev, i__2 = *ncm - 3;
+ ihorn = min(i__1,i__2);
+ } else {
+/* Computing MIN */
+ r__1 = *nolev - stemlen, r__2 = *ncm - 3.f;
+ ihorn = dmin(r__1,r__2);
+ }
+ } else if (bit_test(iornt,13) || bit_test(iornt,0)) {
+
+/* ( or ) */
+
+ ihorn = *nolev;
+ } else if ((iornt & 6144) > 0) {
+
+/* c Staccato . or tenuto _ , but not special beam stuff. Need up-down info */
+/* NOTE: removed .&_ from special beam treatment. */
+/* Staccato . or tenuto _ Need up-down info */
+
+ if (! (*iscrd) || comtrill_1.maxlev != *nolev && *(unsigned char *)
+ ulpzq == 'l' || comtrill_1.minlev != *nolev && *(unsigned
+ char *)ulpzq == 'u') {
+ ihorn = *nolev;
+ } else if (comtrill_1.maxlev == *nolev) {
+ *(unsigned char *)ulpzq = 'u';
+/* Computing MAX */
+ r__1 = *nolev + stemlen, r__2 = *ncm + 3.f;
+ ihorn = dmax(r__1,r__2);
+ } else {
+ *(unsigned char *)ulpzq = 'l';
+/* Computing MIN */
+ r__1 = *nolev - stemlen, r__2 = *ncm - 3.f;
+ ihorn = dmin(r__1,r__2);
+ }
+ } else if (*iscrd && *nolev == comtrill_1.minlev) {
+ if (*(unsigned char *)ulpzq == 'l') {
+/* Computing MIN */
+ i__1 = *nolev - 3, i__2 = *ncm - 6;
+ ihorn = min(i__1,i__2);
+ } else {
+/* Computing MIN */
+ i__1 = *nolev - i_nint(&stemlen) - 3, i__2 = *ncm - 6;
+ ihorn = min(i__1,i__2);
+ }
+ } else if (ibit == 10 && *nolev > 90) {
+
+/* Special treatment for fermata on a shifted rest */
+
+ ihorn = *ncm + 5;
+ } else if (*(unsigned char *)ulpzq == 'l') {
+
+/* (iscrd and nolev=maxlev) or (.not.iscrd) */
+
+/* Computing MAX */
+ r__1 = *nolev + stemlen + 2, r__2 = *ncm + 5.f;
+ ihorn = dmax(r__1,r__2);
+ } else {
+/* Computing MAX */
+ i__1 = *nolev + 2, i__2 = *ncm + 5;
+ ihorn = max(i__1,i__2);
+ }
+ ioff = 0;
+ iclracc = 0;
+
+/* Begin routine to set name. Bits 0-13: (stmgx+Tupf._) */
+/* 14: Down fermata, was F 15: Trill w/o "tr", was U, 16-18: edit. s,f,n */
+
+ if (bit_test(iornt,2)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 5, a__1[1] = "shake";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 6;
+ } else if (bit_test(iornt,3)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 7, a__1[1] = "mordent";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 8;
+ } else if (bit_test(iornt,1)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "mtr";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 4;
+ } else if (bit_test(iornt,5)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "xtr";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 4;
+ } else if (bit_test(iornt,6)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "ptr";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 4;
+ } else if (bit_test(iornt,13)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "rpn";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 4;
+ } else if (bit_test(iornt,0)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "lpn";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 4;
+ } else if (bit_test(iornt,12)) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = sq;
+ i__4[1] = 1, a__2[1] = ulpzq;
+ i__4[2] = 2, a__2[2] = "st";
+ s_cat(notexq, a__2, i__4, &c__3, (ftnlen)79);
+ lnote = 4;
+ } else if (bit_test(iornt,11)) {
+/* Writing concatenation */
+ i__4[0] = 1, a__2[0] = sq;
+ i__4[1] = 1, a__2[1] = ulpzq;
+ i__4[2] = 2, a__2[2] = "pz";
+ s_cat(notexq, a__2, i__4, &c__3, (ftnlen)79);
+ lnote = 4;
+ } else if (bit_test(iornt,8)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "upz";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 4;
+ ioff = -2;
+ } else if (bit_test(iornt,9)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 4, a__1[1] = "uppz";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 5;
+ ioff = -2;
+ } else if (bit_test(iornt,10)) {
+ if (*nodur < 48) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 9, a__1[1] = "fermataup";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 9, a__1[1] = "Fermataup";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ }
+ lnote = 10;
+ ioff = -2;
+ } else if (bit_test(iornt,14)) {
+ if (*nodur < 48) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 11, a__1[1] = "fermatadown";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 11, a__1[1] = "Fermatadown";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ }
+ lnote = 12;
+ } else if (bit_test(iornt,21)) {
+
+/* "?" in editorial ornament. Clear bit 16-18 after use, since ibit=21 */
+
+ if (bit_test(*iornq,16)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 6, a__1[1] = "qsharp";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 7;
+ ioff = 2;
+ *iornq = bit_clear(*iornq,16);
+ iclracc = 16;
+ } else if (bit_test(*iornq,17)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 5, a__1[1] = "qflat";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 6;
+ ioff = 1;
+ *iornq = bit_clear(*iornq,17);
+ iclracc = 17;
+ } else if (bit_test(*iornq,18)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 4, a__1[1] = "qnat";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 5;
+ ioff = 2;
+ *iornq = bit_clear(*iornq,18);
+ iclracc = 18;
+ } else {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 5, a__1[1] = "qedit";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 6;
+ ioff = 0;
+ }
+ } else if (bit_test(iornt,16)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 6, a__1[1] = "esharp";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 7;
+ ioff = 2;
+ } else if (bit_test(iornt,17)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 5, a__1[1] = "eflat";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 6;
+ ioff = 1;
+ } else if (bit_test(iornt,18)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 4, a__1[1] = "enat";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 5;
+ ioff = 2;
+ } else if (bit_test(iornt,19)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "usf";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 4;
+ ioff = -2;
+ } else if (bit_test(iornt,20)) {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 4, a__1[1] = "usfz";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote = 5;
+ ioff = -2;
+ }
+ iudorn = 0;
+
+/* User-defined level shift of ornament from default? */
+
+ if (bit_test(*iornq,25)) {
+
+/* Find which (if any) element of kudorn has the shift. */
+
+ i__1 = comtrill_1.nudorn;
+ for (iudorn = 1; iudorn <= i__1; ++iudorn) {
+ if (ibit < 21) {
+ ibitt = ibit;
+
+/* Could have oes, but not oe? or oes? */
+
+ } else if (iclracc > 0) {
+
+/* Earlier cleared edit. accid, meaning it was oes? */
+
+ ibitt = iclracc + 6;
+ } else {
+ ibitt = 21;
+ }
+ ibitt = *ip + (*ivx % 16 << 8) + (*nolev << 12) + (ibitt << 19);
+/* if (ibitt .eq. iand(33554431,kudorn(iudorn))) go to 4 */
+ if (ibitt == (33554431 & comtrill_1.kudorn[iudorn - 1]) && *ivx ==
+ comivxudorn_1.ivxudorn[iudorn - 1]) {
+ goto L4;
+ }
+/* L3: */
+ }
+
+/* Nothing shifted on this note; exit this if block */
+
+ iudorn = 0;
+ goto L5;
+L4:
+ ioffinc = (63 & lbit_shift(comtrill_1.kudorn[iudorn - 1], (ftnlen)-25)
+ ) - 32;
+ if (ibit == 19 && ioffinc < -7) {
+
+/* Convert usf to lsf. The reason has to do with positioning being impossile */
+/* for some mysterious reason when you drop \usf below the staff */
+
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 3, a__1[1] = "lsf";
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ ioffinc += 6;
+ }
+ ioff += ioffinc;
+ }
+L5:
+
+/* Shift level to avoid slur. Conditions are */
+/* 1. There is a slur */
+/* 2. No user-defined orn height shift (btest(iornq,25)) */
+/* 3. upslur (islhgt>0) */
+/* 4. ornament is not segno(4), ._)(11-13), down ferm(14) or "(" (0) Bin=30737 */
+/* 5. islhgt+3 >= height already computed. */
+
+ if (! bit_test(*iornq,25) && *islhgt > 0 && (iornt & 30737) == 0) {
+ i__1 = *islhgt + 3;
+ ioff += i_dim(&i__1, &ihorn);
+ }
+ i__1 = ihorn + ioff;
+ notefq_(noteq, &lnoten, &i__1, ncm, (ftnlen)8);
+ if (lnoten == 1) {
+ addblank_(noteq, &lnoten, (ftnlen)8);
+ }
+ if ((iornt & 32896) > 0) {
+
+/* T-trill or trill w/o "tr" */
+
+ dotrill_(ivx, ip, &iornt, noteq, &lnoten, notexq, &lnote, (ftnlen)8, (
+ ftnlen)79);
+ } else {
+/* Writing concatenation */
+ i__3[0] = lnote, a__1[0] = notexq;
+ i__3[1] = lnoten, a__1[1] = noteq;
+ s_cat(notexq, a__1, i__3, &c__2, (ftnlen)79);
+ lnote += lnoten;
+ }
+ if (iudorn > 0) {
+ if (bit_test(comtrill_1.kudorn[iudorn - 1],31)) {
+
+/* Horizontal shift */
+
+ lform = lfmt1_(&comtrill_1.ornhshft[iudorn - 1]);
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lform;
+ ici__1.iciunit = noteq;
+/* Writing concatenation */
+ i__4[0] = 2, a__2[0] = "(f";
+ i__1 = lform + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ i__4[1] = 1, a__2[1] = ch__1;
+ i__4[2] = 3, a__2[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__2, a__2, i__4, &c__3, (ftnlen)6),
+ ch__2);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comtrill_1.ornhshft[iudorn - 1], (ftnlen)
+ sizeof(real));
+ e_wsfi();
+/* Writing concatenation */
+ i__5[0] = 1, a__3[0] = sq;
+ i__5[1] = 8, a__3[1] = "roffset{";
+ i__5[2] = lform, a__3[2] = noteq;
+ i__5[3] = 2, a__3[3] = "}{";
+ i__5[4] = lnote, a__3[4] = notexq;
+ i__5[5] = 1, a__3[5] = "}";
+ s_cat(notexq, a__3, i__5, &c__6, (ftnlen)79);
+ lnote = lnote + lform + 12;
+ comtrill_1.ornhshft[iudorn - 1] = 0.f;
+ comtrill_1.kudorn[iudorn - 1] = bit_clear(comtrill_1.kudorn[
+ iudorn - 1],31);
+ }
+ }
+
+/* Zero out the bit for ornament just dealt with. */
+
+ *iornq = bit_clear(*iornq,ibit);
+ if (*lout == 0) {
+ s_copy(outq, notexq, (ftnlen)79, lnote);
+ } else {
+/* Writing concatenation */
+ i__3[0] = *lout, a__1[0] = outq;
+ i__3[1] = lnote, a__1[1] = notexq;
+ s_cat(outq, a__1, i__3, &c__2, (ftnlen)79);
+ }
+ *lout += lnote;
+
+/* Check bits 0-21, go back if any are still set */
+
+ if ((*iornq & 4194303) > 0) {
+ goto L2;
+ }
+ if (usehornb) {
+ ++nornb[*ivx];
+ }
+ return 0;
+} /* putorn_ */
+
+/* Subroutine */ int putshft_(integer *ivx, logical *onoff, char *soutq,
+ integer *lsout, ftnlen soutq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[4];
+ integer i__1[3], i__2, i__3[4];
+ real r__1;
+ char ch__1[1], ch__2[6], ch__3[88];
+ icilist ici__1;
+
+ /* Builtin functions */
+ double r_sign(real *, real *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+ /* Local variables */
+ static char sq[1];
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer ifmt;
+ static real xoff;
+ extern /* Subroutine */ int addstr_(char *, integer *, char *, integer *,
+ ftnlen, ftnlen);
+ static char notexq[80];
+
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+
+/* Start user-defined offsets X(...): or X(...)S */
+
+ if (*onoff) {
+ ++comudsp_1.nudoff[*ivx - 1];
+ }
+
+/* Xoff is in pts. Round off to nearest .1. Will use at end of shift. */
+
+ xoff = comudsp_1.udoff[*ivx + comudsp_1.nudoff[*ivx - 1] * 24 - 25];
+ r__1 = (integer) (dabs(xoff) * 10.f + .5f) / 10.f;
+ xoff = r_sign(&r__1, &xoff);
+ if (! (*onoff)) {
+ xoff = -xoff;
+ }
+ if (xoff < -9.95f) {
+ ifmt = 5;
+ } else if (xoff < -.95f || xoff > 9.95f) {
+ ifmt = 4;
+ } else {
+ ifmt = 3;
+ }
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 80;
+ ici__1.iciunit = notexq;
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "(f";
+ i__2 = ifmt + 48;
+ chax_(ch__1, (ftnlen)1, &i__2);
+ i__1[1] = 1, a__1[1] = ch__1;
+ i__1[2] = 3, a__1[2] = ".1)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)6), ch__2);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&xoff, (ftnlen)sizeof(real));
+ e_wsfi();
+/* Writing concatenation */
+ i__3[0] = 1, a__2[0] = sq;
+ i__3[1] = 4, a__2[1] = "off{";
+ i__3[2] = ifmt, a__2[2] = notexq;
+ i__3[3] = 3, a__2[3] = "pt}";
+ s_cat(ch__3, a__2, i__3, &c__4, (ftnlen)88);
+ i__2 = ifmt + 8;
+ addstr_(ch__3, &i__2, soutq, lsout, ifmt + 8, (ftnlen)80);
+ return 0;
+} /* putshft_ */
+
+/* Subroutine */ int puttitle_(integer *inhnoh, real *xnsttop, real *etatop,
+ char *sq, real *etait, real *etatc, real *etacs1, integer *nv,
+ logical *vshrink, char *sepsymq, ftnlen sq_len, ftnlen sepsymq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3], a__3[3], a__4[4];
+ integer i__1[2], i__2, i__3[3], i__4, i__5[3], i__6[4];
+ real r__1;
+ char ch__1[8], ch__2[1], ch__3[10], ch__4[148], ch__5[129], ch__6[133];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ double r_lg10(real *);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ , s_wsfe(cilist *), e_wsfe(void);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ extern /* Subroutine */ int writflot_(real *, char *, integer *, ftnlen);
+ static integer iv, lcq, ndig;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static real xcsil, xtcil, vskil, xitil, glueil;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static char notexq[127];
+ static integer lenline;
+
+ /* Fortran I/O blocks */
+ static cilist io___1539 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1542 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1545 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* Called once per page, at top of page! If vshrink, only called for p.1. */
+/* Actual titles only allowed on p.1. (set by headlog). */
+/* 3/18/01: The above comment is probably bogus...can use Tt on later pages. */
+
+ /* Parameter adjustments */
+ --sepsymq;
+
+ /* Function Body */
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 6, a__1[1] = "znotes";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ lenline = 7;
+ i__2 = *nv - 1;
+ for (iv = 1; iv <= i__2; ++iv) {
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = 1, a__1[1] = sepsymq + iv;
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ ++lenline;
+/* L22: */
+ }
+/* Writing concatenation */
+ i__3[0] = lenline, a__2[0] = notexq;
+ i__3[1] = 1, a__2[1] = sq;
+ i__3[2] = 10, a__2[2] = "zcharnote{";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)127);
+ lenline += 11;
+ if (! comtitl_1.headlog) {
+ comtitl_1.inhead = *inhnoh;
+ }
+ if (*vshrink && comlast_1.usevshrink) {
+ comtitl_1.inhead = 16;
+ }
+ r__1 = comtitl_1.inhead + .01f;
+ ndig = (integer) r_lg10(&r__1) + 1;
+ i__2 = lenline;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lenline + ndig + 10 - i__2;
+ ici__1.iciunit = notexq + i__2;
+/* Writing concatenation */
+ i__3[0] = 2, a__2[0] = "(i";
+ i__4 = ndig + 48;
+ chax_(ch__2, (ftnlen)1, &i__4);
+ i__3[1] = 1, a__2[1] = ch__2;
+ i__3[2] = 5, a__2[2] = ",a10)";
+ ici__1.icifmt = (s_cat(ch__1, a__2, i__3, &c__3, (ftnlen)8), ch__1);
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&comtitl_1.inhead, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__5[0] = 2, a__3[0] = "}{";
+ i__5[1] = 1, a__3[1] = sq;
+ i__5[2] = 7, a__3[2] = "titles{";
+ s_cat(ch__3, a__3, i__5, &c__3, (ftnlen)10);
+ do_fio(&c__1, ch__3, (ftnlen)10);
+ e_wsfi();
+ lenline = lenline + ndig + 10;
+
+/* Vertical skip at top of page (\Il) = etatop*glueil. Needed whether */
+/* headers are present or not. */
+
+ glueil = *xnsttop / *etatop;
+ vskil = *etatop * glueil;
+ if (*vshrink && comlast_1.usevshrink) {
+ vskil = 2.f;
+ }
+ writflot_(&vskil, notexq, &lenline, (ftnlen)127);
+ if (! comtitl_1.headlog) {
+ if (comlast_1.islast) {
+ s_wsfe(&io___1539);
+/* Writing concatenation */
+ i__6[0] = lenline, a__4[0] = notexq;
+ i__6[1] = 17, a__4[1] = "}{}{0}{}{0}{}{0}}";
+ i__6[2] = 1, a__4[2] = sq;
+ i__6[3] = 3, a__4[3] = "en%";
+ s_cat(ch__4, a__4, i__6, &c__4, (ftnlen)148);
+ do_fio(&c__1, ch__4, lenline + 21);
+ e_wsfe();
+ }
+ } else {
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = 2, a__1[1] = "}{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ lenline += 2;
+ lcq = lenstr_(comtitl_1.instrq, &c__120, (ftnlen)120);
+ if (lcq > 0) {
+ xitil = *etait * glueil;
+ if (*vshrink && comlast_1.usevshrink) {
+ xitil = 2.f;
+ }
+/* Writing concatenation */
+ i__3[0] = lenline, a__2[0] = notexq;
+ i__3[1] = lcq, a__2[1] = comtitl_1.instrq;
+ i__3[2] = 2, a__2[2] = "}{";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)127);
+
+/* Null out instrument once used */
+
+ s_copy(comtitl_1.instrq, " ", (ftnlen)120, (ftnlen)1);
+ lenline = lenline + lcq + 2;
+ writflot_(&xitil, notexq, &lenline, (ftnlen)127);
+ } else {
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = 3, a__1[1] = "}{0";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ lenline += 3;
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1542);
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = 2, a__1[1] = "}%";
+ s_cat(ch__5, a__1, i__1, &c__2, (ftnlen)129);
+ do_fio(&c__1, ch__5, lenline + 2);
+ e_wsfe();
+ }
+ s_copy(notexq, "{", (ftnlen)127, (ftnlen)1);
+ lenline = 1;
+ lcq = lenstr_(comtitl_1.titleq, &c__120, (ftnlen)120);
+ if (lcq > 0) {
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = lcq, a__1[1] = comtitl_1.titleq;
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ lenline += lcq;
+ } else {
+ printl_(" ", (ftnlen)1);
+ printl_("WARNING", (ftnlen)7);
+ printl_(" In a title block, you have specified instrument and/or"
+ , (ftnlen)56);
+ printl_(" composer but no title for the piece.", (ftnlen)38);
+ }
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = 2, a__1[1] = "}{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ lenline += 2;
+ xtcil = *etatc * glueil;
+ lcq = lenstr_(comtitl_1.compoq, &c__120, (ftnlen)120);
+ if (lcq == 0) {
+ xtcil *= 2;
+ }
+ if (*vshrink && comlast_1.usevshrink) {
+ xtcil = 2.f;
+ }
+ writflot_(&xtcil, notexq, &lenline, (ftnlen)127);
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = 2, a__1[1] = "}{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ lenline += 2;
+ if (lcq > 0) {
+/* Writing concatenation */
+ i__3[0] = lenline, a__2[0] = notexq;
+ i__3[1] = lcq, a__2[1] = comtitl_1.compoq;
+ i__3[2] = 2, a__2[2] = "}{";
+ s_cat(notexq, a__2, i__3, &c__3, (ftnlen)127);
+ lenline = lenline + 2 + lcq;
+
+/* Null out compoq so it does not get written later */
+
+ s_copy(comtitl_1.compoq, " ", (ftnlen)120, (ftnlen)1);
+ xcsil = *etacs1 * glueil;
+ if (*vshrink && comlast_1.usevshrink) {
+ xcsil = 2.f;
+ }
+ writflot_(&xcsil, notexq, &lenline, (ftnlen)127);
+ } else {
+/* Writing concatenation */
+ i__1[0] = lenline, a__1[0] = notexq;
+ i__1[1] = 3, a__1[1] = "}{0";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)127);
+ lenline += 3;
+ }
+ if (comlast_1.islast) {
+ s_wsfe(&io___1545);
+/* Writing concatenation */
+ i__6[0] = lenline, a__4[0] = notexq;
+ i__6[1] = 2, a__4[1] = "}}";
+ i__6[2] = 1, a__4[2] = sq;
+ i__6[3] = 3, a__4[3] = "en%";
+ s_cat(ch__6, a__4, i__6, &c__4, (ftnlen)133);
+ do_fio(&c__1, ch__6, lenline + 6);
+ e_wsfe();
+ }
+ comtitl_1.headlog = FALSE_;
+ }
+ return 0;
+} /* puttitle_ */
+
+/* Subroutine */ int putxtn_(integer *ntupv, integer *iflop, integer *multb,
+ integer *iud, real *wheadpt, real *poenom, integer *nolev1, integer *
+ islope, real *slfac, real *xnlmid, integer *islur, integer *lnote,
+ char *notexq, integer *ncmid, integer *nlnum, real *eloff, integer *
+ iup, integer *irest, logical *usexnumt, ftnlen notexq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3];
+ integer i__1[2], i__2[3], i__3;
+ real r__1;
+ char ch__1[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer i_nint(real *), lbit_shift(integer, integer);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+ /* Local variables */
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static char noteq[8];
+ extern /* Subroutine */ int notefq_(char *, integer *, integer *, integer
+ *, ftnlen);
+ static integer lnoten, istrtn;
+
+
+/* Places digit for xtuplet. */
+
+ if (*iflop != 0 && *multb > 0) {
+
+/* Number goes on beam side, move R/L by .5 wheadpt for upper/lower */
+
+ *eloff -= *iud * .5f * *wheadpt / *poenom;
+
+/* Number goes on beam side, must use beam parameters to set pos'n */
+
+ *nlnum = *nolev1 + *islope / *slfac * *eloff + *iup * (*multb + 8);
+ if (*multb >= 2) {
+ *nlnum += *iup;
+ }
+ } else {
+ r__1 = *xnlmid - 1 + *iud * 3 + *iflop * 11;
+ *nlnum = i_nint(&r__1);
+ }
+ if (! bit_test(*islur,31)) {
+
+/* Only print number when wanted. First check vert, horiz offset */
+
+ if (bit_test(*irest,1)) {
+ *nlnum = *nlnum + (31 & lbit_shift(*irest, (ftnlen)-2)) - 16;
+ }
+ if (bit_test(*irest,7)) {
+ *eloff += ((31 & lbit_shift(*irest, (ftnlen)-9)) * .1f - 1.6f) * *
+ wheadpt / *poenom;
+ }
+ if (! (*usexnumt)) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__1[0] = 1, a__1[0] = ch__1;
+ i__1[1] = 5, a__1[1] = "xnum{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ *lnote = 10;
+ istrtn = 7;
+ } else {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__1[0] = 1, a__1[0] = ch__1;
+ i__1[1] = 6, a__1[1] = "xnumt{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ *lnote = 11;
+ istrtn = 8;
+ }
+ if (*eloff < .995f) {
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 4;
+ ici__1.iciunit = notexq + (istrtn - 1);
+ ici__1.icifmt = "(i1,f3.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&(*eloff), (ftnlen)sizeof(real));
+ e_wsfi();
+ } else if (*eloff < 9.995f) {
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 4;
+ ici__1.iciunit = notexq + (istrtn - 1);
+ ici__1.icifmt = "(f4.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*eloff), (ftnlen)sizeof(real));
+ e_wsfi();
+ } else {
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 5;
+ ici__1.iciunit = notexq + (istrtn - 1);
+ ici__1.icifmt = "(f5.2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*eloff), (ftnlen)sizeof(real));
+ e_wsfi();
+ ++(*lnote);
+ }
+ notefq_(noteq, &lnoten, nlnum, ncmid, (ftnlen)8);
+/* Writing concatenation */
+ i__2[0] = *lnote, a__2[0] = notexq;
+ i__2[1] = 1, a__2[1] = "}";
+ i__2[2] = lnoten, a__2[2] = noteq;
+ s_cat(notexq, a__2, i__2, &c__3, (ftnlen)79);
+ *lnote = *lnote + 1 + lnoten;
+ if (*ntupv < 10) {
+ i__3 = *lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 1 - i__3;
+ ici__1.iciunit = notexq + i__3;
+ ici__1.icifmt = "(i1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*ntupv), (ftnlen)sizeof(integer));
+ e_wsfi();
+ ++(*lnote);
+ } else {
+/* Writing concatenation */
+ i__1[0] = *lnote, a__1[0] = notexq;
+ i__1[1] = 1, a__1[1] = "{";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ i__3 = *lnote + 1;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lnote + 3 - i__3;
+ ici__1.iciunit = notexq + i__3;
+ ici__1.icifmt = "(i2)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*ntupv), (ftnlen)sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__1[0] = *lnote + 3, a__1[0] = notexq;
+ i__1[1] = 1, a__1[1] = "}";
+ s_cat(notexq, a__1, i__1, &c__2, (ftnlen)79);
+ *lnote += 4;
+ }
+ }
+ return 0;
+} /* putxtn_ */
+
+/* Subroutine */ int read10_(char *string, logical *lastchar, ftnlen
+ string_len)
+{
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer ip1, ip2;
+ extern /* Subroutine */ int getbuf_(char *, ftnlen);
+
+ if (! commac_1.mplay) {
+ if (inbuff_1.ilbuf > inbuff_1.nlbuf) {
+ goto L999;
+ }
+ getbuf_(string, string_len);
+ return 0;
+L999:
+ *lastchar = TRUE_;
+ return 0;
+ } else {
+
+/* Play a macro. Set pointer to first character needed in buffer */
+
+ if (c1ommac_1.ilmac == c1ommac_1.il1mac[commac_1.macnum - 1]) {
+
+/* Getting first line of macro */
+
+ ip1 = c1ommac_1.ip1mac[commac_1.macnum - 1];
+ c1ommac_1.iplmac = ip1 - c1ommac_1.ic1mac[commac_1.macnum - 1];
+ } else if (c1ommac_1.ilmac <= c1ommac_1.il2mac[commac_1.macnum - 1]) {
+
+/* Beyond first line of macro. Advance line-start pointer. */
+
+ c1ommac_1.iplmac += inbuff_1.lbuf[c1ommac_1.ilmac - 2];
+ ip1 = c1ommac_1.iplmac + 1;
+ } else {
+
+/* Beyond last line of macro. Terminate it! */
+
+ commac_1.mplay = FALSE_;
+ commac_1.endmac = TRUE_;
+ return 0;
+ }
+ if (c1ommac_1.ilmac == c1ommac_1.il2mac[commac_1.macnum - 1]) {
+
+/* Getting last line of macro. */
+
+ ip2 = c1ommac_1.ip2mac[commac_1.macnum - 1];
+ } else {
+
+/* Getting line before last line of macro. */
+
+ ip2 = c1ommac_1.iplmac + inbuff_1.lbuf[c1ommac_1.ilmac - 1];
+ }
+ if (ip2 >= ip1) {
+ s_copy(string, inbuff_1.bufq + (ip1 - 1), string_len, ip2 - (ip1
+ - 1));
+ } else {
+
+/* Kluge for when macro start is on a line by itself */
+
+ s_copy(string, " ", string_len, (ftnlen)1);
+ }
+ ++c1ommac_1.ilmac;
+ return 0;
+ }
+ return 0;
+} /* read10_ */
+
+doublereal readin_(char *lineq, integer *iccount, integer *nline, ftnlen
+ lineq_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1[3];
+ real ret_val;
+ char ch__1[27], ch__2[6], ch__3[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_wsle(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_lio(integer *, integer *, char *, ftnlen), e_wsle(void),
+ s_rsfi(icilist *), do_fio(integer *, char *, ftnlen), e_rsfi(void)
+ ;
+
+ /* Local variables */
+ static integer i1, i2, icf;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static char durq[1];
+ extern /* Subroutine */ int stop1_(void), getbuf_(char *, ftnlen),
+ getchar_(char *, integer *, char *, ftnlen, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___1554 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Reads a piece of setup data from file lineq, gets a new lineq from */
+/* file 10 (jobname.pmx) and increments nline if needed, passes over */
+/* comment lines */
+
+L4:
+ if (*iccount == 128) {
+L1:
+ getbuf_(lineq, (ftnlen)128);
+ ++(*nline);
+ if (*(unsigned char *)lineq == '%') {
+ goto L1;
+ }
+ *iccount = 0;
+ }
+ ++(*iccount);
+
+/* Find next non-blank or end of line */
+
+ for (*iccount = *iccount; *iccount <= 127; ++(*iccount)) {
+ if (*(unsigned char *)&lineq[*iccount - 1] != ' ') {
+ goto L3;
+ }
+/* L2: */
+ }
+
+/* If here, need to get a new line */
+
+ *iccount = 128;
+ goto L4;
+L3:
+
+/* iccount now points to start of number to read */
+
+ i1 = *iccount;
+L5:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Remember that getchar increments iccount, then reads a character. */
+
+ if (i_indx("0123456789.-", durq, (ftnlen)12, (ftnlen)1) > 0) {
+ goto L5;
+ }
+ i2 = *iccount - 1;
+ if (i2 < i1) {
+ s_wsle(&io___1554);
+/* Writing concatenation */
+ i__1[0] = 7, a__1[0] = "Found \"";
+ i__1[1] = 1, a__1[1] = durq;
+ i__1[2] = 19, a__1[2] = "\" instead of number";
+ s_cat(ch__1, a__1, i__1, &c__3, (ftnlen)27);
+ do_lio(&c__9, &c__1, ch__1, (ftnlen)27);
+ e_wsle();
+ stop1_();
+ }
+ icf = i2 - i1 + 49;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = i2 - (i1 - 1);
+ ici__1.iciunit = lineq + (i1 - 1);
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "(f";
+ chax_(ch__3, (ftnlen)1, &icf);
+ i__1[1] = 1, a__1[1] = ch__3;
+ i__1[2] = 3, a__1[2] = ".0)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)6), ch__2);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&ret_val, (ftnlen)sizeof(real));
+ e_rsfi();
+ return ret_val;
+} /* readin_ */
+
+/* Subroutine */ int readmeter_(char *lineq, integer *iccount, integer *
+ mtrnum, integer *mtrden, ftnlen lineq_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1, i__2[3];
+ char ch__1[4], ch__2[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_rsfi(icilist *), do_fio(integer *, char *, ftnlen), e_rsfi(void)
+ ;
+
+ /* Local variables */
+ static integer ns;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static char durq[1];
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen);
+
+ i__1 = *iccount;
+ if (i_indx(lineq + i__1, "/", *iccount + 3 - i__1, (ftnlen)1) == 0) {
+
+/* No slashes, so use old method */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == '-') {
+
+/* Negative numerator is used only to printed; signals vertical slash */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ *mtrnum = -(*(unsigned char *)durq - 48);
+ } else if (*(unsigned char *)durq == 'o') {
+
+/* Numerator is EXACTLY 1 */
+
+ *mtrnum = 1;
+ } else {
+ *mtrnum = *(unsigned char *)durq - 48;
+ if (*mtrnum == 1) {
+
+/* Numerator is >9 */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ *mtrnum = *(unsigned char *)durq - 38;
+ }
+ }
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == 'o') {
+ *mtrden = 1;
+ } else {
+ *mtrden = *(unsigned char *)durq - 48;
+ if (*mtrden == 1) {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ *mtrden = *(unsigned char *)durq - 38;
+ }
+ }
+ } else {
+
+/* Expect the form m[n1]/[n2]/[n3]/[n4] . Advance iccount by one from '/' or 'm' */
+
+ ++(*iccount);
+ ns = i_indx(lineq + (*iccount - 1), "/", 128 - (*iccount - 1), (
+ ftnlen)1);
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *iccount + ns - 2 - (*iccount - 1);
+ ici__1.iciunit = lineq + (*iccount - 1);
+/* Writing concatenation */
+ i__2[0] = 2, a__1[0] = "(i";
+ i__1 = ns + 47;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ i__2[1] = 1, a__1[1] = ch__2;
+ i__2[2] = 1, a__1[2] = ")";
+ ici__1.icifmt = (s_cat(ch__1, a__1, i__2, &c__3, (ftnlen)4), ch__1);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*mtrnum), (ftnlen)sizeof(integer));
+ e_rsfi();
+
+/* Reset iccount to start of second integer */
+
+ *iccount += ns;
+
+/* There must be either a slash or a blank at pos'n 2 or 3 */
+
+ ns = i_indx(lineq + (*iccount - 1), "/", (ftnlen)3, (ftnlen)1);
+ if (ns == 0) {
+ ns = i_indx(lineq + (*iccount - 1), " ", (ftnlen)3, (ftnlen)1);
+ }
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *iccount + ns - 2 - (*iccount - 1);
+ ici__1.iciunit = lineq + (*iccount - 1);
+/* Writing concatenation */
+ i__2[0] = 2, a__1[0] = "(i";
+ i__1 = ns + 47;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ i__2[1] = 1, a__1[1] = ch__2;
+ i__2[2] = 1, a__1[2] = ")";
+ ici__1.icifmt = (s_cat(ch__1, a__1, i__2, &c__3, (ftnlen)4), ch__1);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*mtrden), (ftnlen)sizeof(integer));
+ e_rsfi();
+
+/* Set iccount to last character used */
+
+ *iccount = *iccount + ns - 1;
+ }
+ return 0;
+} /* readmeter_ */
+
+/* Subroutine */ int readnum_(char *lineq, integer *iccount, char *durq, real
+ *fnum, ftnlen lineq_len, ftnlen durq_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1[3];
+ char ch__1[27], ch__2[6], ch__3[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_wsle(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_lio(integer *, integer *, char *, ftnlen), e_wsle(void),
+ s_rsfi(icilist *), do_fio(integer *, char *, ftnlen), e_rsfi(void)
+ ;
+
+ /* Local variables */
+ static integer i1, i2, icf;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ extern /* Subroutine */ int stop1_(void), getchar_(char *, integer *,
+ char *, ftnlen, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___1560 = { 0, 6, 0, 0, 0 };
+
+
+
+/* This reads a number starting at position iccount. Remember that on exit, */
+/* getchar leaves iccount at the last character retrieved. So must only */
+/* call this routine *after* detecting a number or decimal. */
+/* On exit, durq is next character after end of number. */
+
+ i1 = *iccount;
+L1:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("0123456789.", durq, (ftnlen)11, (ftnlen)1) > 0) {
+ goto L1;
+ }
+ i2 = *iccount - 1;
+ if (i2 < i1) {
+ s_wsle(&io___1560);
+/* Writing concatenation */
+ i__1[0] = 7, a__1[0] = "Found \"";
+ i__1[1] = 1, a__1[1] = durq;
+ i__1[2] = 19, a__1[2] = "\" instead of number";
+ s_cat(ch__1, a__1, i__1, &c__3, (ftnlen)27);
+ do_lio(&c__9, &c__1, ch__1, (ftnlen)27);
+ e_wsle();
+ stop1_();
+ } else if (*(unsigned char *)&lineq[i1 - 1] == '.' && *(unsigned char *)&
+ lineq[i2 - 1] == '.') {
+ --i2;
+ --(*iccount);
+ }
+ icf = i2 - i1 + 49;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = i2 - (i1 - 1);
+ ici__1.iciunit = lineq + (i1 - 1);
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "(f";
+ chax_(ch__3, (ftnlen)1, &icf);
+ i__1[1] = 1, a__1[1] = ch__3;
+ i__1[2] = 3, a__1[2] = ".0)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)6), ch__2);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*fnum), (ftnlen)sizeof(real));
+ e_rsfi();
+ return 0;
+} /* readnum_ */
+
+/* Subroutine */ int setbits_(integer *isdata, integer *iwidbit, integer *
+ ishift, integer *ivalue)
+{
+ /* Builtin functions */
+ integer pow_ii(integer *, integer *), s_wsle(cilist *), e_wsle(void),
+ do_lio(integer *, integer *, char *, ftnlen), s_wsfe(cilist *),
+ do_fio(integer *, char *, ftnlen), e_wsfe(void), lbit_shift(
+ integer, integer);
+
+ /* Local variables */
+ static integer ibase;
+
+ /* Fortran I/O blocks */
+ static cilist io___1563 = { 0, 6, 0, 0, 0 };
+ static cilist io___1564 = { 0, 6, 0, 0, 0 };
+ static cilist io___1565 = { 0, 15, 0, "(/,a)", 0 };
+
+
+
+/* Sets iwidbits of isdata, shifted by ishift, to ivalue */
+
+ ibase = pow_ii(&c__2, iwidbit) - 1;
+ if (*ivalue > ibase) {
+ s_wsle(&io___1563);
+ e_wsle();
+ s_wsle(&io___1564);
+ do_lio(&c__9, &c__1, "WARNING in setbits: ivalue > ibase", (ftnlen)34)
+ ;
+ e_wsle();
+ s_wsfe(&io___1565);
+ do_fio(&c__1, "WARNING in setbits: ivalue > ibase", (ftnlen)34);
+ e_wsfe();
+ }
+ *isdata = ~ lbit_shift(ibase, *ishift) & *isdata;
+ *isdata |= lbit_shift(*ivalue, *ishift);
+ return 0;
+} /* setbits_ */
+
+/* Subroutine */ int setbm2_(real *xelsk, integer *nnb, real *sumx, real *
+ sumy, integer *ipb, integer *islope, integer *nolev1)
+{
+ /* System generated locals */
+ integer i__1;
+ real r__1, r__2;
+
+ /* Builtin functions */
+ integer i_nint(real *), i_sign(integer *, integer *);
+
+ /* Local variables */
+ static real em;
+ static integer ibc, inb, iul;
+ static real beta, smin, delta, ybeam, ynote, sumxx, sumxy, deficit;
+
+
+/* The MEAN SQUARE slope algorithm */
+
+ /* Parameter adjustments */
+ --ipb;
+ --xelsk;
+
+ /* Function Body */
+ ibc = all_1.ibmcnt[commvl_1.ivx - 1];
+ sumxx = 0.f;
+ sumxy = 0.f;
+ i__1 = *nnb;
+ for (inb = 1; inb <= i__1; ++inb) {
+/* Computing 2nd power */
+ r__1 = xelsk[inb];
+ sumxx += r__1 * r__1;
+ sumxy += xelsk[inb] * all_1.nolev[commvl_1.ivx + ipb[inb] * 24 - 25];
+/* L2: */
+ }
+ delta = *nnb * sumxx - *sumx * *sumx;
+ em = (*nnb * sumxy - *sumx * *sumy) / delta;
+ r__1 = em * .5f * all_1.slfac;
+ *islope = i_nint(&r__1);
+ if (abs(*islope) > 9) {
+ *islope = i_sign(&c__9, islope);
+ }
+ beta = (*sumy - *islope / all_1.slfac * *sumx) / *nnb;
+ *nolev1 = i_nint(&beta);
+
+/* Check if any stems are too short */
+
+ smin = 100.f;
+ iul = -1;
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25] == 'u') {
+ iul = 1;
+ }
+ i__1 = *nnb;
+ for (inb = 1; inb <= i__1; ++inb) {
+ ybeam = *nolev1 + iul * all_1.stemlen + *islope * xelsk[inb] /
+ all_1.slfac;
+ ynote = (real) all_1.nolev[commvl_1.ivx + ipb[inb] * 24 - 25];
+/* Computing MIN */
+ r__1 = smin, r__2 = iul * (ybeam - ynote);
+ smin = dmin(r__1,r__2);
+/* L4: */
+ }
+ if (smin < all_1.stemmin) {
+ deficit = all_1.stemmin - smin;
+ r__1 = *nolev1 + iul * deficit;
+ *nolev1 = i_nint(&r__1);
+ }
+ return 0;
+} /* setbm2_ */
+
+/* Subroutine */ int setmac_(char *lineq, integer *iccount, integer *ibarcnt,
+ integer *ibaroff, integer *nbars, char *charq, char *durq, integer *
+ ivx, integer *nline, ftnlen lineq_len, ftnlen charq_len, ftnlen
+ durq_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen), i_indx(char *, char *, ftnlen, ftnlen), i_nint(real *)
+ ;
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static real fnum;
+ static integer ndxm;
+ extern /* Subroutine */ int stop1_(void), m1rec1_(char *, integer *,
+ integer *, integer *, integer *, integer *, ftnlen), getbuf_(char
+ *, ftnlen), errmsg_(char *, integer *, integer *, char *, ftnlen,
+ ftnlen), readnum_(char *, integer *, char *, real *, ftnlen,
+ ftnlen), g1etchar_(char *, integer *, char *, ftnlen, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___1578 = { 0, 6, 0, 0, 0 };
+ static cilist io___1579 = { 0, 6, 0, 0, 0 };
+ static cilist io___1580 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Macro action */
+
+ g1etchar_(lineq, iccount, charq, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)charq == 'S' && *ivx != 1) {
+ s_wsle(&io___1578);
+ e_wsle();
+ s_wsle(&io___1579);
+ e_wsle();
+ s_wsle(&io___1580);
+ do_lio(&c__9, &c__1, "*********WARNING*********", (ftnlen)25);
+ e_wsle();
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "\"MS...\" only put in parts by scor2"
+ "prt if in voice #1!", (ftnlen)128, (ftnlen)53);
+ }
+ if (i_indx("RSP ", charq, (ftnlen)4, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Illegal character after \"M\" (macro"
+ ")!", (ftnlen)128, (ftnlen)36);
+ stop1_();
+ } else if (*(unsigned char *)charq != ' ') {
+
+/* Record or playback a macro. Get the number of the macro. */
+
+ g1etchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("123456789", durq, (ftnlen)9, (ftnlen)1) == 0) {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Must input number after \"MR\""
+ ",\"MP\", or \"MS\"!", (ftnlen)128, (ftnlen)43);
+ stop1_();
+ }
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ commac_1.macnum = i_nint(&fnum);
+ if (*(unsigned char *)durq != ' ') {
+ i__1 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, iccount, &i__1, "Macro number must be followed by"
+ " a blank!", (ftnlen)128, (ftnlen)41);
+ stop1_();
+ }
+ if (i_indx("RS", charq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Record or save a macro */
+
+ if (commac_1.macnum < 1 || commac_1.macnum > 20) {
+ i__1 = *iccount - 1;
+ i__2 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, &i__1, &i__2, "Macro number not in range 1-20!"
+ , (ftnlen)128, (ftnlen)31);
+ stop1_();
+/* else if (btest(macuse,macnum)) then */
+/* print* */
+/* print*,'WARNING: Redefining macro # ',macnum */
+ }
+ commac_1.macuse = bit_set(commac_1.macuse,commac_1.macnum);
+ if (*(unsigned char *)charq == 'R') {
+ m1rec1_(lineq, iccount, ibarcnt, ibaroff, nbars, &ndxm, (
+ ftnlen)128);
+ } else if (*(unsigned char *)charq == 'S') {
+
+/* Save (Record but don't activate) */
+
+L1:
+ m1rec1_(lineq, iccount, ibarcnt, ibaroff, nbars, &ndxm, (
+ ftnlen)128);
+ if (commac_1.mrecord) {
+ getbuf_(lineq, (ftnlen)128);
+ ++(*nline);
+ *iccount = 0;
+ goto L1;
+ }
+ *iccount = *iccount + ndxm + 1;
+ }
+ } else {
+
+/* Playback the macro */
+
+ if (! bit_test(commac_1.macuse,commac_1.macnum)) {
+ i__1 = *iccount - 1;
+ i__2 = *ibarcnt - *ibaroff + *nbars + 1;
+ errmsg_(lineq, &i__1, &i__2, "Cannot play a macro that has n"
+ "ot been recorded!", (ftnlen)128, (ftnlen)47);
+ stop1_();
+ }
+ commac_1.icchold = *iccount;
+ s_copy(commac_1.lnholdq, lineq, (ftnlen)128, (ftnlen)128);
+ *iccount = 128;
+ commac_1.mplay = TRUE_;
+ c1ommac_1.ilmac = c1ommac_1.il1mac[commac_1.macnum - 1];
+ }
+ }
+ return 0;
+} /* setmac_ */
+
+/* Subroutine */ int setmeter_(integer *mtrnuml, integer *mtrdenl, integer *
+ ibmtyp, integer *ibmrep)
+{
+
+/* Sets last 2 args depending on 1st 2, (logical) num, denom. */
+/* ibmtyp = 1, 2, or 3 defines set of masks for beam groupings. */
+/* 1: all duple meters */
+/* 2: triple w/ denom=4, subdivide in groups of 2 8ths */
+/* 3: triple w/ denom=8, subdivide in groups of 3 8ths */
+/* Note that lenbar is set at top or when 'm' symbol is read in getnote */
+
+ if (*mtrdenl == 4) {
+ if (*mtrnuml % 3 == 0) {
+ *ibmtyp = 2;
+ *ibmrep = *mtrnuml / 3;
+ } else {
+ *ibmtyp = 1;
+ *ibmrep = *mtrnuml / 2;
+ }
+ } else if (*mtrdenl == 2) {
+ *ibmtyp = 1;
+ if (*mtrnuml == 3) {
+ *ibmrep = 3;
+ } else {
+ *ibmrep = (*mtrnuml << 1) / *mtrdenl;
+ }
+ } else {
+
+/* Assumes mtrdenl=8 and 3/8, 6/8, 9/8, or 12/8 */
+
+ *ibmtyp = 3;
+ *ibmrep = *mtrnuml / 3;
+ }
+
+/* Reset so we don't keep writing new meters */
+
+ *mtrnuml = 0;
+
+/* Prevent ibmrep=0. Needed for odd bars, e.g. 1/8, where beams don't matter */
+
+ *ibmrep = max(*ibmrep,1);
+ return 0;
+} /* setmeter_ */
+
+/* Subroutine */ int setupb_(real *xelsk, integer *nnb, real *sumx, real *
+ sumy, integer *ipb, real *smed, integer *ixrest)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+ real r__1, r__2;
+
+ /* Builtin functions */
+ double r_sign(real *, real *);
+ integer i_nint(real *), i_sign(integer *, integer *);
+ double sqrt(doublereal);
+
+ /* Local variables */
+ static integer i__, j;
+ static real t;
+ static integer n1, ip;
+ static real yb1;
+ static integer ibc, inb, jnb;
+ static real off;
+ static integer nsc, iul;
+ static real syb, sum, ssq, off1, off2;
+ static logical l1ng, l2ng;
+ static real beta, smin, eskz0;
+ static integer ipxt1;
+ extern integer ncmid_(integer *, integer *);
+ static real ybeam, xboff;
+ static integer ndoub;
+ static real slope[800];
+ static integer issbs;
+ static real ynote;
+ extern /* Subroutine */ int setbm2_(real *, integer *, real *, real *,
+ integer *, integer *, integer *);
+ static integer nscmid;
+ static real dnolev;
+ static integer iplast, nolevo;
+ static real xnolev2, deficit;
+ static integer ipxtmid;
+
+
+/* The outer combo algorithm */
+
+ /* Parameter adjustments */
+ --ipb;
+ --xelsk;
+
+ /* Function Body */
+ ibc = all_1.ibmcnt[commvl_1.ivx - 1];
+ comxtup_2.nxtinbm[commvl_1.ivx - 1] = 0;
+ n1 = comipl2_1.ipl2[commvl_1.ivx + all_1.ibm1[commvl_1.ivx + ibc * 24 -
+ 25] * 24 - 25];
+
+/* Initialize counters used in this subroutine, and then later during actual */
+/* beam drawing, to count later segments of single-slope beam groups */
+
+ comxtup_2.nssb[commvl_1.ivx - 1] = 0;
+ comxtup_2.issb[commvl_1.ivx - 1] = 0;
+
+/* Set flag for xtup beam starting with rest (no others can start with rest) */
+
+ if (bit_test(all_1.irest[commvl_1.ivx + all_1.ipo[n1 - 1] * 24 - 25],0)) {
+ *ixrest = 1;
+ }
+
+/* Figure how many elemskips to each note. Use the list, counting only non-rests. */
+
+ eskz0 = all_1.eskz[commvl_1.ivx + all_1.ibm1[commvl_1.ivx + ibc * 24 - 25]
+ * 24 - 25];
+ *nnb = 0;
+ *sumx = 0.f;
+ *sumy = 0.f;
+ ipxt1 = 0;
+ iplast = all_1.ibm2[commvl_1.ivx + ibc * 24 - 25];
+ i__1 = iplast;
+ for (ip = all_1.ibm1[commvl_1.ivx + ibc * 24 - 25]; ip <= i__1; ++ip) {
+ if (! bit_test(all_1.irest[commvl_1.ivx + ip * 24 - 25],0)) {
+ ++(*nnb);
+ ipb[*nnb] = ip;
+ xelsk[*nnb] = all_1.eskz[commvl_1.ivx + ip * 24 - 25] - eskz0;
+ *sumx += xelsk[*nnb];
+ *sumy += all_1.nolev[commvl_1.ivx + ipb[*nnb] * 24 - 25];
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],21)) {
+
+/* This is the starting note of later segment of single-slope beam group */
+/* Temporarily store ip here. */
+
+ ++comxtup_2.nssb[commvl_1.ivx - 1];
+ comxtup_2.lev1ssb[commvl_1.ivx + comxtup_2.nssb[commvl_1.ivx
+ - 1] * 24 - 25] = *nnb;
+ }
+ }
+
+/* New xtup stuff here. Final object is to get distance from start of xtup */
+/* to number. xtinbm counts xtups in this beam only. mtupv is the printed */
+/* number. ntupv is number of notes in xtup, and is only used to get */
+/* eloff, the distance from start of xtup to the number. */
+
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],18)) {
+ ++ndoub;
+ }
+ if (ipxt1 == 0 && all_1.nodur[commvl_1.ivx + ip * 24 - 25] == 0) {
+
+/* Xtup is starting here */
+
+ ++comxtup_2.nxtinbm[commvl_1.ivx - 1];
+ ipxt1 = ip;
+ if (bit_test(all_1.nacc[commvl_1.ivx + ip * 24 - 25],18)) {
+ ndoub = 1;
+ } else {
+ ndoub = 0;
+ }
+ } else if (ipxt1 > 0 && all_1.nodur[commvl_1.ivx + ip * 24 - 25] > 0)
+ {
+
+/* Xtup ends here. Set total number of notes in xtup. */
+
+ comxtup_2.ntupv[commvl_1.ivx + comxtup_2.nxtinbm[commvl_1.ivx - 1]
+ * 24 - 25] = ip + 1 - ipxt1;
+
+/* Set printed number for embedded xtup. */
+
+ comxtup_2.mtupv[commvl_1.ivx + comxtup_2.nxtinbm[commvl_1.ivx - 1]
+ * 24 - 25] = comxtup_2.ntupv[commvl_1.ivx +
+ comxtup_2.nxtinbm[commvl_1.ivx - 1] * 24 - 25] + ndoub;
+
+/* Middle note of xtup if ntupv odd, note to left of gap if even. */
+
+ ipxtmid = (ip + ipxt1) / 2;
+ comxtup_2.eloff[commvl_1.ivx + comxtup_2.nxtinbm[commvl_1.ivx - 1]
+ * 24 - 25] = comeskz2_1.eskz2[commvl_1.ivx + ipxtmid *
+ 24 - 25] - comeskz2_1.eskz2[commvl_1.ivx + ipxt1 * 24 -
+ 25];
+ if (comxtup_2.ntupv[commvl_1.ivx + comxtup_2.nxtinbm[commvl_1.ivx
+ - 1] * 24 - 25] % 2 == 0) {
+ comxtup_2.eloff[commvl_1.ivx + comxtup_2.nxtinbm[commvl_1.ivx
+ - 1] * 24 - 25] += (comeskz2_1.eskz2[commvl_1.ivx + (
+ ipxtmid + 1) * 24 - 25] - comeskz2_1.eskz2[
+ commvl_1.ivx + ipxtmid * 24 - 25]) * .5f;
+ }
+ ipxt1 = 0;
+ }
+/* L2: */
+ }
+
+/* Reset nxtinbm for use as counter as #'s are posted by putxtn(..) */
+
+ comxtup_2.nxtinbm[commvl_1.ivx - 1] = 0;
+ *smed = 0.f;
+ if (! bit_test(all_1.islur[commvl_1.ivx + ipb[1] * 24 - 25],2)) {
+
+/* No forced 0 slope */
+
+ if (*nnb == 1) {
+ goto L6;
+ }
+ nsc = 0;
+ i__1 = *nnb - 1;
+ for (inb = 1; inb <= i__1; ++inb) {
+ i__2 = *nnb;
+ for (jnb = inb + 1; jnb <= i__2; ++jnb) {
+ ++nsc;
+ slope[nsc - 1] = (all_1.nolev[commvl_1.ivx + ipb[jnb] * 24 -
+ 25] - all_1.nolev[commvl_1.ivx + ipb[inb] * 24 - 25])
+ / (xelsk[jnb] - xelsk[inb]);
+ if ((r__1 = slope[nsc - 1], dabs(r__1)) < 1e-4f) {
+ ++nsc;
+ slope[nsc - 1] = slope[nsc - 2];
+ ++nsc;
+ slope[nsc - 1] = slope[nsc - 2];
+ }
+/* L5: */
+ }
+ }
+ if (nsc == 1) {
+ *smed = slope[0];
+ goto L6;
+ }
+ nscmid = nsc / 2 + 1;
+ i__2 = nscmid;
+ for (i__ = 1; i__ <= i__2; ++i__) {
+ i__1 = nsc;
+ for (j = i__ + 1; j <= i__1; ++j) {
+ if (slope[j - 1] < slope[i__ - 1]) {
+ t = slope[j - 1];
+ slope[j - 1] = slope[i__ - 1];
+ slope[i__ - 1] = t;
+ }
+/* L7: */
+ }
+ }
+ *smed = slope[nscmid - 1];
+ if (nsc == nsc / 2 << 1) {
+
+/* Even number of slopes in the list, so median is ambiguous */
+
+ if ((r__2 = slope[nscmid - 2], dabs(r__2)) < (r__1 = slope[nscmid
+ - 1], dabs(r__1)) - comtol_1.tol) {
+
+/* Lower-numbered one is truly less in absolute value, so use it */
+
+ *smed = slope[nscmid - 2];
+ } else if ((r__1 = slope[nscmid - 2] + slope[nscmid - 1], dabs(
+ r__1)) < comtol_1.tol) {
+
+/* Two slopes are effectively equal. Take the one with sign of the average */
+
+ sum = 0.f;
+ i__1 = nsc;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ sum += slope[i__ - 1];
+/* L1: */
+ }
+ *smed = r_sign(smed, &sum);
+ }
+ }
+L6:
+ r__1 = *smed * .5f * all_1.slfac;
+ comxtup_2.islope[commvl_1.ivx - 1] = i_nint(&r__1);
+ if ((i__1 = comxtup_2.islope[commvl_1.ivx - 1], abs(i__1)) > 9) {
+ comxtup_2.islope[commvl_1.ivx - 1] = i_sign(&c__9, &
+ comxtup_2.islope[commvl_1.ivx - 1]);
+ }
+ } else {
+
+/* Forced horizontal beam */
+
+ comxtup_2.islope[commvl_1.ivx - 1] = 0;
+ }
+ beta = (*sumy - comxtup_2.islope[commvl_1.ivx - 1] / all_1.slfac * *sumx)
+ / *nnb;
+
+/* If ixrest>0, this is a virtual nolev1 at location of rest. Will first use */
+/* as is for placing xtup number and/or bracket, then reset it for start of */
+/* actual beam */
+
+ comxtup_2.nolev1[commvl_1.ivx - 1] = i_nint(&beta);
+
+/* Check if any stems are too short */
+
+ smin = 100.f;
+ iul = -1;
+ if (*(unsigned char *)&all_1.ulq[commvl_1.ivx + ibc * 24 - 25] == 'u') {
+ iul = 1;
+ }
+ ssq = 0.f;
+ syb = 0.f;
+/* yb1 = nolev1(ivx)+iul*(stemlen+bmhgt*(mult(ivx,ipb(1))-1)) */
+ yb1 = comxtup_2.nolev1[commvl_1.ivx - 1] + iul * (all_1.stemlen +
+ combmh_1.bmhgt * ((15 & all_1.mult[commvl_1.ivx + ipb[1] * 24 -
+ 25]) - 9));
+ i__1 = *nnb;
+ for (inb = 1; inb <= i__1; ++inb) {
+ ybeam = yb1 + comxtup_2.islope[commvl_1.ivx - 1] * xelsk[inb] /
+ all_1.slfac - iul * combmh_1.bmhgt * ((15 & all_1.mult[
+ commvl_1.ivx + ipb[inb] * 24 - 25]) - 9);
+/* * -iul*bmhgt*(mult(ivx,ipb(inb))-1) */
+ syb += ybeam;
+ ynote = (real) all_1.nolev[commvl_1.ivx + ipb[inb] * 24 - 25];
+ off = ybeam - ynote;
+ if (inb == 1) {
+ off1 = off;
+ } else if (inb == *nnb) {
+ off2 = off;
+ }
+ ssq += off * off;
+/* Computing MIN */
+ r__1 = smin, r__2 = iul * off;
+ smin = dmin(r__1,r__2);
+/* L4: */
+ }
+ dnolev = 0.f;
+ if (smin < all_1.stemmin) {
+ deficit = all_1.stemmin - smin;
+ nolevo = comxtup_2.nolev1[commvl_1.ivx - 1];
+ r__1 = comxtup_2.nolev1[commvl_1.ivx - 1] + iul * deficit;
+ comxtup_2.nolev1[commvl_1.ivx - 1] = i_nint(&r__1);
+ dnolev = (real) (comxtup_2.nolev1[commvl_1.ivx - 1] - nolevo);
+ off1 += dnolev;
+ off2 += dnolev;
+ }
+/* Computing 2nd power */
+ r__1 = dnolev;
+ ssq = ssq + dnolev * 2 * (syb - *sumy) + r__1 * r__1;
+ if (! comxtup_2.vxtup[commvl_1.ivx - 1] && sqrt(ssq / *nnb) >
+ all_1.stemmax && (dabs(off1) < all_1.stemmax || dabs(off2) <
+ all_1.stemmax) && ! bit_test(all_1.islur[commvl_1.ivx + ipb[1] *
+ 24 - 25],2)) {
+
+/* The first check is to save trouble of putting xtup's in setbm2. */
+/* The penultimate check is that first and last stems aren't both excessive. */
+/* The last check is that a 0 slope has not been forced */
+
+ setbm2_(&xelsk[1], nnb, sumx, sumy, &ipb[1], &comxtup_2.islope[
+ commvl_1.ivx - 1], &comxtup_2.nolev1[commvl_1.ivx - 1]);
+ }
+
+/* Check if beam starts or ends too high or low. */
+
+/* xboff = bmhgt*(mult(ivx,ipb(1))-1) */
+ xboff = combmh_1.bmhgt * ((15 & all_1.mult[commvl_1.ivx + ipb[1] * 24 -
+ 25]) - 9);
+ l1ng = iul * (comxtup_2.nolev1[commvl_1.ivx - 1] - ncmid_(&all_1.iv, &ipb[
+ 1])) + xboff + 7 < 0.f;
+ xnolev2 = comxtup_2.nolev1[commvl_1.ivx - 1] + comxtup_2.islope[
+ commvl_1.ivx - 1] / all_1.slfac * xelsk[*nnb];
+ l2ng = iul * (xnolev2 - ncmid_(&all_1.iv, &ipb[*nnb])) + xboff + 7 < 0.f;
+ if (l1ng || l2ng) {
+
+/* Need to correct start or stop, also slope */
+
+ if (l1ng) {
+ r__1 = ncmid_(&all_1.iv, &ipb[1]) - (xboff + 7.f) * iul;
+ comxtup_2.nolev1[commvl_1.ivx - 1] = i_nint(&r__1);
+ }
+ if (l2ng) {
+ r__1 = ncmid_(&all_1.iv, &ipb[*nnb]) - (xboff + 7.f) * iul;
+ xnolev2 = (real) i_nint(&r__1);
+ }
+
+/* Since one or the other end has changed, need to change slope */
+
+ if (! bit_test(all_1.islur[commvl_1.ivx + ipb[1] * 24 - 25],2)) {
+ r__1 = all_1.slfac * (xnolev2 - comxtup_2.nolev1[commvl_1.ivx - 1]
+ ) / xelsk[*nnb];
+ comxtup_2.islope[commvl_1.ivx - 1] = i_nint(&r__1);
+ }
+ }
+ if (comxtup_2.nssb[commvl_1.ivx - 1] > 0) {
+
+/* This is a single-slope beam group. Store start heights for later segs. */
+
+ i__1 = comxtup_2.nssb[commvl_1.ivx - 1];
+ for (issbs = 1; issbs <= i__1; ++issbs) {
+ comxtup_2.lev1ssb[commvl_1.ivx + issbs * 24 - 25] =
+ comxtup_2.nolev1[commvl_1.ivx - 1] + comxtup_2.islope[
+ commvl_1.ivx - 1] / all_1.slfac * xelsk[comxtup_2.lev1ssb[
+ commvl_1.ivx + issbs * 24 - 25]];
+/* L3: */
+ }
+ }
+ return 0;
+} /* setupb_ */
+
+/* Subroutine */ int sortpoe_(integer *nsyst, real *poe, integer *ipoe)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Local variables */
+ static integer io1, io2, iord, itemp;
+
+
+/* Initialize ipoe: */
+
+ /* Parameter adjustments */
+ --ipoe;
+ --poe;
+
+ /* Function Body */
+ i__1 = *nsyst;
+ for (iord = 1; iord <= i__1; ++iord) {
+ ipoe[iord] = iord;
+/* L3: */
+ }
+
+/* Construct ipoe vector with pairwise interchanges. When done, ipoe(1) will */
+/* be index of smallest poe, and ipoe(nsyst) will be index of biggest poe. */
+
+ i__1 = *nsyst - 1;
+ for (io1 = 1; io1 <= i__1; ++io1) {
+ i__2 = *nsyst;
+ for (io2 = io1 + 1; io2 <= i__2; ++io2) {
+ if (poe[ipoe[io1]] > poe[ipoe[io2]]) {
+
+/* Interchange the indices */
+
+ itemp = ipoe[io1];
+ ipoe[io1] = ipoe[io2];
+ ipoe[io2] = itemp;
+ }
+/* L5: */
+ }
+/* L4: */
+ }
+ return 0;
+} /* sortpoe_ */
+
+/* Subroutine */ int spsslur_(char *lineq, integer *iccount, integer *iv,
+ integer *kv, integer *ip, integer *isdat1, integer *isdat2, integer *
+ isdat3, integer *isdat4, integer *nsdat, logical *notcrd, integer *
+ nolev, char *starter, ftnlen lineq_len, ftnlen starter_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+ real r__1;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_cmp(char *, char *,
+ ftnlen, ftnlen), i_nint(real *);
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ static integer ilb12;
+ static real fnum;
+ static char dumq[1], durq[1];
+ static integer ihoff, isdat, ivoff, icurv1, idcode, nolevc, numint;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), readnum_(char *, integer *, char *, real *, ftnlen,
+ ftnlen), setbits_(integer *, integer *, integer *, integer *);
+
+
+/* Reads in slur data. Record all h/v-shifts for non-chords, user-specified */
+/* ones for chords. */
+/* 5/26/02 This subr is called ONLY for postscript slurs. */
+
+/* See subroutine doslur for bit values in isdat1,2,3 */
+
+
+/* Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve */
+
+ /* Parameter adjustments */
+ --isdat4;
+ --isdat3;
+ --isdat2;
+ --isdat1;
+
+ /* Function Body */
+ numint = 0;
+ ivoff = 0;
+ ihoff = 0;
+ ++(*nsdat);
+ if (*(unsigned char *)starter == '{' || *(unsigned char *)starter == '}')
+ {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],3);
+ }
+ setbits_(&isdat1[*nsdat], &c__5, &c__13, iv);
+ i__1 = *kv - 1;
+ setbits_(&isdat1[*nsdat], &c__1, &c__12, &i__1);
+ setbits_(&isdat1[*nsdat], &c__8, &c__3, ip);
+ isdat3[*nsdat] = 0;
+ isdat4[*nsdat] = 0;
+ ilb12 = 0;
+
+/* Get ID code */
+
+/* flag for tweaks of 1st or 2nd (0|1) seg of linebreak slur */
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("uldtb+-hfnHps ", durq, (ftnlen)14, (ftnlen)1) > 0) {
+
+/* Null id. Note for ps slurs, 'H' cannot be an ID */
+
+ --(*iccount);
+ if (*(unsigned char *)&lineq[*iccount - 1] == 't') {
+ idcode = 1;
+ } else {
+ idcode = 32;
+ }
+ } else {
+
+/* Set explicit idcode */
+
+ idcode = *(unsigned char *)durq;
+ i__1 = *iccount - 2;
+ if (s_cmp(lineq + i__1, "t", *iccount - 1 - i__1, (ftnlen)1) == 0) {
+
+/* Make t[ID] look like s[ID]t */
+
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],3);
+ }
+ }
+ setbits_(&isdat1[*nsdat], &c__7, &c__19, &idcode);
+
+/* Set start/stop: look thru list from end for same idcode,iv,kv */
+
+ for (isdat = *nsdat - 1; isdat >= 1; --isdat) {
+ if (idcode == igetbits_(&isdat1[isdat], &c__7, &c__19) && *iv ==
+ igetbits_(&isdat1[isdat], &c__5, &c__13) && *kv - 1 ==
+ igetbits_(&isdat1[isdat], &c__1, &c__12)) {
+
+/* Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0. */
+
+ if (bit_test(isdat1[isdat],11)) {
+ goto L3;
+ }
+
+/* Found slur is a turnoff, so new one is a turnon. Jump down to set bit */
+
+ goto L4;
+ }
+/* L2: */
+ }
+
+/* If here, this is turnon. */
+
+L4:
+ isdat1[*nsdat] = bit_set(isdat1[*nsdat],11);
+L3:
+
+/* Now done with initial turnon- or turnoff-specifics. */
+
+ if (i_nint(&comslur_1.slurcurve) != 0 && bit_test(isdat1[*nsdat],11)) {
+
+/* There's a default curvature tweak */
+
+ icurv1 = i_nint(&comslur_1.slurcurve) + 3;
+ if (icurv1 == 2) {
+ icurv1 = 1;
+ }
+ isdat3[*nsdat] = bit_set(isdat3[*nsdat],0);
+ i__1 = icurv1 + 32;
+ setbits_(&isdat3[*nsdat], &c__6, &c__2, &i__1);
+ }
+
+/* Loop for rest of input */
+
+L1:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("uld", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Force direction */
+
+ isdat1[*nsdat] = bit_set(isdat1[*nsdat],26);
+ if (*(unsigned char *)durq == 'u') {
+ isdat1[*nsdat] = bit_set(isdat1[*nsdat],27);
+ }
+ goto L1;
+ } else if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++numint;
+ if (numint == 1) {
+
+/* Vertical offset */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ ivoff = i_nint(&fnum);
+ if (*(unsigned char *)durq == '-') {
+ ivoff = -ivoff;
+ }
+ } else if (numint == 2) {
+
+/* Horizontal offset */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+
+/* fnum is abs(hshift), must be 0 to 6.3 */
+
+ ihoff = fnum * 10 + .5f;
+ if (*(unsigned char *)durq == '-') {
+ ihoff = -ihoff;
+ }
+
+/* Later will set bits to 1...127 to represent -6.3,...+6.3 */
+
+ } else {
+
+/* Must be the 3rd signed integer, so it's a curve specification */
+
+ isdat3[*nsdat] = bit_set(isdat3[*nsdat],0);
+ ++(*iccount);
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ icurv1 = i_nint(&fnum);
+ if (*(unsigned char *)durq == '-') {
+ icurv1 = -icurv1;
+ }
+ i__1 = icurv1 + 32;
+ setbits_(&isdat3[*nsdat], &c__6, &c__2, &i__1);
+ if (*(unsigned char *)dumq != ':') {
+
+/* Back up the pointer and loop for more input */
+
+ --(*iccount);
+ } else {
+
+/* Expect two single digits as parameters for curve */
+
+ isdat3[*nsdat] = bit_set(isdat3[*nsdat],1);
+ i__1 = *iccount;
+ i__2 = *(unsigned char *)&lineq[i__1] - 48;
+ setbits_(&isdat3[*nsdat], &c__3, &c__8, &i__2);
+ i__1 = *iccount + 1;
+ i__2 = *(unsigned char *)&lineq[i__1] - 48;
+ setbits_(&isdat3[*nsdat], &c__3, &c__11, &i__2);
+ *iccount += 2;
+ }
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 't') {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],3);
+ goto L1;
+ } else if (*(unsigned char *)durq == 'b') {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],4);
+ goto L1;
+ } else if (*(unsigned char *)durq == 's') {
+
+/* Endpoint tweaks for linebreak slurs. */
+
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Next is vertical offset */
+
+/* Must be +|- */
+ ++(*iccount);
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)durq == '-') {
+ fnum = -fnum;
+ }
+ i__1 = ilb12 << 4;
+ i__2 = i_nint(&fnum) + 32;
+ setbits_(&isdat4[*nsdat], &c__6, &i__1, &i__2);
+ if (i_indx("+-", dumq, (ftnlen)2, (ftnlen)1) > 0) {
+
+/* Also a horizontal offset */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, durq, &fnum, (ftnlen)128, (ftnlen)1);
+ if (*(unsigned char *)dumq == '-') {
+ fnum = -fnum;
+ }
+ i__1 = (ilb12 << 4) + 6;
+ r__1 = fnum * 10;
+ i__2 = i_nint(&r__1) + 64;
+ setbits_(&isdat4[*nsdat], &c__7, &i__1, &i__2);
+ }
+ --(*iccount);
+ ilb12 = 1;
+ goto L1;
+ } else if (i_indx("fnhH", durq, (ftnlen)4, (ftnlen)1) > 0) {
+
+/* Special ps slur curvatures. */
+/* Translate to old \midslur args (1,4,5,6) */
+
+ icurv1 = i_indx("fnxhH", durq, (ftnlen)5, (ftnlen)1);
+ if (icurv1 == 5) {
+
+/* check for 2nd H */
+
+ i__1 = *iccount;
+ if (s_cmp(lineq + i__1, "H", *iccount + 1 - i__1, (ftnlen)1) == 0)
+ {
+ ++(*iccount);
+ icurv1 = 6;
+ }
+ }
+ isdat3[*nsdat] = bit_set(isdat3[*nsdat],0);
+ i__1 = icurv1 + 32;
+ setbits_(&isdat3[*nsdat], &c__6, &c__2, &i__1);
+ goto L1;
+ } else if (*(unsigned char *)durq == 'p') {
+/* Local adjustment */
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+/* +|- */
+ getchar_(lineq, iccount, dumq, (ftnlen)128, (ftnlen)1);
+/* 26 \sluradjust (p+s) */
+/* 27 \nosluradjust (p-s) */
+/* 28 \tieadjust (p+t) */
+/* 29 \notieadjust (p-t) */
+/* s|t */
+ if (*(unsigned char *)durq == '+') {
+ if (*(unsigned char *)dumq == 's') {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],26);
+ } else {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],28);
+ }
+ } else {
+ if (*(unsigned char *)dumq == 's') {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],27);
+ } else {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],29);
+ }
+ }
+ goto L1;
+ }
+
+/* Record shifts */
+
+ i__1 = ivoff + 32;
+ setbits_(&isdat2[*nsdat], &c__6, &c__6, &i__1);
+ i__1 = ihoff + 64;
+ setbits_(&isdat2[*nsdat], &c__7, &c__12, &i__1);
+
+/* Record chord flag, note level, notehead shift */
+
+ if (*notcrd) {
+ setbits_(&isdat2[*nsdat], &c__7, &c__19, nolev);
+ } else {
+ nolevc = igetbits_(&comtrill_1.icrdat[comtrill_1.ncrd - 1], &c__7, &
+ c__12);
+ setbits_(&isdat2[*nsdat], &c__7, &c__19, &nolevc);
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],0);
+ i__1 = igetbits_(&comtrill_1.icrdat[comtrill_1.ncrd - 1], &c__2, &
+ c__23);
+ setbits_(&isdat2[*nsdat], &c__2, &c__1, &i__1);
+ }
+ return 0;
+} /* spsslur_ */
+
+/* Subroutine */ int sslur_(char *lineq, integer *iccount, integer *iv,
+ integer *kv, integer *ip, integer *isdat1, integer *isdat2, integer *
+ isdat3, integer *nsdat, logical *notcrd, integer *nolev, char *
+ starter, ftnlen lineq_len, ftnlen starter_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Builtin functions */
+ integer i_indx(char *, char *, ftnlen, ftnlen), i_nint(real *), s_cmp(
+ char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ extern integer igetbits_(integer *, integer *, integer *);
+ static real fnum;
+ static char dumq[1], durq[1];
+ static integer ihoff, isdat, ivoff, icurv1, idcode, nolevc, numint;
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen), readnum_(char *, integer *, char *, real *, ftnlen,
+ ftnlen), setbits_(integer *, integer *, integer *, integer *);
+
+
+/* Reads in slur data. Record all h/v-shifts for non-chords, user-specified */
+/* ones for chords. */
+/* 5/26/02 now only for non-postscript slurs, use spsslur() for postscript */
+
+/* See subroutine doslur for bit values in isdat1,2,3 */
+
+
+/* Counter for signed integers. 1st is height, 2nd is horiz, 3rd is curve */
+
+ /* Parameter adjustments */
+ --isdat3;
+ --isdat2;
+ --isdat1;
+
+ /* Function Body */
+ numint = 0;
+ ivoff = 0;
+ ihoff = 0;
+ ++(*nsdat);
+ if (*(unsigned char *)starter == '{' || *(unsigned char *)starter == '}')
+ {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],3);
+ }
+ setbits_(&isdat1[*nsdat], &c__5, &c__13, iv);
+ i__1 = *kv - 1;
+ setbits_(&isdat1[*nsdat], &c__1, &c__12, &i__1);
+ setbits_(&isdat1[*nsdat], &c__8, &c__3, ip);
+ isdat3[*nsdat] = 0;
+
+/* Get id letter */
+
+ if (*(unsigned char *)&lineq[*iccount - 1] == 't') {
+
+/* Old-style t-slur. Use special idcode = 1 */
+
+ idcode = 1;
+ } else {
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("uldtb+-hf ", durq, (ftnlen)10, (ftnlen)1) > 0) {
+
+/* Null id */
+
+ idcode = 32;
+ --(*iccount);
+ } else if (*(unsigned char *)durq == 'H') {
+
+/* Postscript slur, cannot use 'H' as code, must check for 2nd 'H' */
+
+ idcode = 32;
+ --(*iccount);
+
+/* There may be another "H", but no need to deal with it yet */
+
+ } else {
+
+/* Set explicit idcode */
+
+ idcode = *(unsigned char *)durq;
+ }
+ }
+ setbits_(&isdat1[*nsdat], &c__7, &c__19, &idcode);
+
+/* Set start/stop: look thru list from end for same idcode,iv,kv */
+
+ for (isdat = *nsdat - 1; isdat >= 1; --isdat) {
+ if (idcode == igetbits_(&isdat1[isdat], &c__7, &c__19) && *iv ==
+ igetbits_(&isdat1[isdat], &c__5, &c__13) && *kv - 1 ==
+ igetbits_(&isdat1[isdat], &c__1, &c__12)) {
+
+/* Matched idcode & ivx. On/off?. If on, new is turnoff, leave bit 11 at 0. */
+
+ if (bit_test(isdat1[isdat],11)) {
+ goto L3;
+ }
+
+/* Found slur is a turnoff, so new one is a turnon. Jump down to set bit */
+
+ goto L4;
+ }
+/* L2: */
+ }
+
+/* If here, this is turnon. */
+
+L4:
+ isdat1[*nsdat] = bit_set(isdat1[*nsdat],11);
+L3:
+
+/* Now done with initial turnon- or turnoff-specifics. Loop for rest of input */
+
+L1:
+ getchar_(lineq, iccount, durq, (ftnlen)128, (ftnlen)1);
+ if (i_indx("uld", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Force direction */
+
+ isdat1[*nsdat] = bit_set(isdat1[*nsdat],26);
+ if (*(unsigned char *)durq == 'u') {
+ isdat1[*nsdat] = bit_set(isdat1[*nsdat],27);
+ }
+ goto L1;
+ } else if (i_indx("+-", durq, (ftnlen)2, (ftnlen)1) > 0) {
+ ++numint;
+ if (numint == 1) {
+
+/* Vertical offset */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+ ivoff = i_nint(&fnum);
+ if (*(unsigned char *)durq == '-') {
+ ivoff = -ivoff;
+ }
+ } else if (numint == 2) {
+
+/* Horizontal offset */
+
+ ++(*iccount);
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ --(*iccount);
+
+/* fnum is abs(hshift), must be 0 to 6.3 */
+
+ ihoff = fnum * 10 + .5f;
+ if (*(unsigned char *)durq == '-') {
+ ihoff = -ihoff;
+ }
+
+/* Later will set bits to 1...127 to represent -6.3,...+6.3 */
+
+ } else {
+
+/* Must be the 3rd signed integer, so it's a curve specification */
+
+ isdat3[*nsdat] = bit_set(isdat3[*nsdat],0);
+ ++(*iccount);
+ readnum_(lineq, iccount, dumq, &fnum, (ftnlen)128, (ftnlen)1);
+ icurv1 = i_nint(&fnum);
+ if (*(unsigned char *)durq == '-') {
+ icurv1 = -icurv1;
+ }
+ i__1 = icurv1 + 32;
+ setbits_(&isdat3[*nsdat], &c__6, &c__2, &i__1);
+ if (*(unsigned char *)dumq != ':') {
+
+/* Back up the pointer and loop for more input */
+
+ --(*iccount);
+ } else {
+
+/* Expect two single digits as parameters for curve */
+
+ isdat3[*nsdat] = bit_set(isdat3[*nsdat],1);
+ i__1 = *iccount;
+ i__2 = *(unsigned char *)&lineq[i__1] - 48;
+ setbits_(&isdat3[*nsdat], &c__3, &c__8, &i__2);
+ i__1 = *iccount + 1;
+ i__2 = *(unsigned char *)&lineq[i__1] - 48;
+ setbits_(&isdat3[*nsdat], &c__3, &c__11, &i__2);
+ *iccount += 2;
+ }
+ }
+ goto L1;
+ } else if (*(unsigned char *)durq == 't') {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],3);
+ goto L1;
+ } else if (*(unsigned char *)durq == 'b') {
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],4);
+ goto L1;
+ } else if (i_indx("fhH", durq, (ftnlen)3, (ftnlen)1) > 0) {
+
+/* Special ps slur curvatures. Translate to old \midslur args (1,4,5,6) */
+
+ icurv1 = i_indx("fhH", durq, (ftnlen)3, (ftnlen)1) + 2;
+ if (icurv1 == 3) {
+ icurv1 = 1;
+ } else if (icurv1 == 5) {
+
+/* check for 2nd H */
+
+ i__1 = *iccount;
+ if (s_cmp(lineq + i__1, "H", *iccount + 1 - i__1, (ftnlen)1) == 0)
+ {
+ ++(*iccount);
+ icurv1 = 6;
+ }
+ }
+ isdat3[*nsdat] = bit_set(isdat3[*nsdat],0);
+
+/* Must change sign if downslur, but cannot do it now since we don't know */
+/* slur direction for sure. */
+
+ i__1 = icurv1 + 32;
+ setbits_(&isdat3[*nsdat], &c__6, &c__2, &i__1);
+ goto L1;
+ }
+
+/* Record shifts */
+
+ i__1 = ivoff + 32;
+ setbits_(&isdat2[*nsdat], &c__6, &c__6, &i__1);
+ i__1 = ihoff + 64;
+ setbits_(&isdat2[*nsdat], &c__7, &c__12, &i__1);
+
+/* Record chord flag, note level, notehead shift */
+
+ if (*notcrd) {
+ setbits_(&isdat2[*nsdat], &c__7, &c__19, nolev);
+ } else {
+ nolevc = igetbits_(&comtrill_1.icrdat[comtrill_1.ncrd - 1], &c__7, &
+ c__12);
+ setbits_(&isdat2[*nsdat], &c__7, &c__19, &nolevc);
+ isdat2[*nsdat] = bit_set(isdat2[*nsdat],0);
+ i__1 = igetbits_(&comtrill_1.icrdat[comtrill_1.ncrd - 1], &c__2, &
+ c__23);
+ setbits_(&isdat2[*nsdat], &c__2, &c__1, &i__1);
+ }
+ return 0;
+} /* sslur_ */
+
+/* Subroutine */ int stop1_(void)
+{
+ extern /* Subroutine */ int exit_(integer *);
+
+ exit_(&c__1);
+ return 0;
+} /* stop1_ */
+
+/* Subroutine */ int topfile_(char *basenameq, integer *lbase, integer *nv,
+ char *clefq, integer *noinst, integer *musicsize, real *xinstf1,
+ integer *mtrnmp, integer *mtrdnp, logical *vshrink, real *fbar,
+ logical *fontslur, ftnlen basenameq_len, ftnlen clefq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2], a__3[4], a__4[6], a__5[2], a__6[10], a__7[20],
+ a__8[12], a__9[8];
+ integer i__1[3], i__2[2], i__3[4], i__4[6], i__5, i__6[2], i__7, i__8,
+ i__9[10], i__10[20], i__11[12], i__12[8];
+ real r__1;
+ char ch__1[1], ch__2[50], ch__3[15], ch__4[10], ch__5[39], ch__6[14],
+ ch__7[17], ch__8[16], ch__9[32], ch__10[8], ch__11[12], ch__12[9],
+ ch__13[13], ch__14[11], ch__15[21], ch__16[7], ch__17[6], ch__18[
+ 30], ch__19[19], ch__20[1], ch__21[2], ch__22[33], ch__23[25],
+ ch__24[81], ch__25[82], ch__26[18], ch__27[57], ch__28[44],
+ ch__29[62], ch__30[54], ch__31[86], ch__32[41], ch__33[47];
+ cilist ci__1;
+
+ /* Builtin functions */
+ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), e_wsfi(void), i_nint(real *);
+ double r_lg10(real *);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer k, iv;
+ static char sq[1];
+ static integer ipi, iiv;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static char fmtq[24];
+ extern /* Subroutine */ int writesetsign_(integer *, integer *, integer *,
+ logical *);
+ static char fbarq[5];
+ static integer lname, lfmtq, iinst;
+ extern integer numclef_(char *, ftnlen);
+ extern /* Subroutine */ int wgmeter_(integer *, integer *);
+ static integer nstaves;
+
+ /* Fortran I/O blocks */
+ static cilist io___1645 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1646 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1647 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1648 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1649 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1650 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1651 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1652 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1653 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1654 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1655 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1656 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1657 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1658 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1659 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1662 = { 0, 11, 0, "(a8,i1,a)", 0 };
+ static cilist io___1663 = { 0, 11, 0, "(a9,i2,a)", 0 };
+ static cilist io___1664 = { 0, 11, 0, "(a8,i1,a)", 0 };
+ static cilist io___1665 = { 0, 11, 0, "(a9,i2,a)", 0 };
+ static icilist io___1667 = { 0, fbarq, 0, "(f5.3)", 5, 1 };
+ static cilist io___1668 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1669 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1670 = { 0, 11, 0, "(a7,i3,a2)", 0 };
+ static cilist io___1671 = { 0, 11, 0, "(a8,i3,a2)", 0 };
+ static cilist io___1672 = { 0, 11, 0, "(a8,i2,a2)", 0 };
+ static cilist io___1673 = { 0, 11, 0, "(a8,i1,a2)", 0 };
+ static cilist io___1674 = { 0, 11, 0, "(a8,i2,a2)", 0 };
+ static cilist io___1675 = { 0, 11, 0, "(a8,i3,a2)", 0 };
+ static cilist io___1676 = { 0, 11, 0, "(a8,i2,a2)", 0 };
+ static cilist io___1677 = { 0, 11, 0, "(a8,i1,a2)", 0 };
+ static cilist io___1678 = { 0, 11, 0, "(a8,i2,a2)", 0 };
+ static cilist io___1679 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1680 = { 0, 11, 0, "(a19,i1,a1)", 0 };
+ static cilist io___1681 = { 0, 11, 0, "(a19,i2,a1)", 0 };
+ static cilist io___1684 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1685 = { 0, 11, 0, "(a11,i2,a)", 0 };
+ static cilist io___1689 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1690 = { 0, 11, 0, "(a9,i2,a)", 0 };
+ static cilist io___1692 = { 0, 11, 0, "(a8,i1,a)", 0 };
+ static cilist io___1693 = { 0, 11, 0, "(a9,i2,a)", 0 };
+ static cilist io___1694 = { 0, 11, 0, "(a18,i2,a2)", 0 };
+ static cilist io___1696 = { 0, 11, 0, "(a11,i1,a2)", 0 };
+ static cilist io___1697 = { 0, 11, 0, "(a11,i2,a2)", 0 };
+ static cilist io___1698 = { 0, 11, 0, "(a11,i3,a2)", 0 };
+ static cilist io___1699 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1700 = { 0, 11, 0, fmtq, 0 };
+ static cilist io___1701 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1702 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1703 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1704 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1705 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1706 = { 0, 11, 0, "(a)", 0 };
+
+
+ /* Parameter adjustments */
+ --clefq;
+
+ /* Function Body */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ *vshrink = *xinstf1 > 20.f && ! comnvst_1.novshrinktop;
+ if (*vshrink) {
+ comarp_1.xinsnow = 10.f;
+ } else {
+ comarp_1.xinsnow = *xinstf1;
+ }
+ if (! comlast_1.islast) {
+ return 0;
+ }
+ s_wsfe(&io___1645);
+ do_fio(&c__1, "%%%%%%%%%%%%%%%%%", (ftnlen)17);
+ e_wsfe();
+ s_wsfe(&io___1646);
+ do_fio(&c__1, "%", (ftnlen)1);
+ e_wsfe();
+ s_wsfe(&io___1647);
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "% ";
+ i__1[1] = *lbase, a__1[1] = basenameq;
+ i__1[2] = 4, a__1[2] = ".tex";
+ s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)50);
+ do_fio(&c__1, ch__2, *lbase + 6);
+ e_wsfe();
+ s_wsfe(&io___1648);
+ do_fio(&c__1, "%", (ftnlen)1);
+ e_wsfe();
+ s_wsfe(&io___1649);
+ do_fio(&c__1, "%%%%%%%%%%%%%%%%", (ftnlen)16);
+ e_wsfe();
+ s_wsfe(&io___1650);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 14, a__2[1] = "input musixtex";
+ s_cat(ch__3, a__2, i__2, &c__2, (ftnlen)15);
+ do_fio(&c__1, ch__3, (ftnlen)15);
+ e_wsfe();
+ s_wsfe(&io___1651);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 9, a__2[1] = "input pmx";
+ s_cat(ch__4, a__2, i__2, &c__2, (ftnlen)10);
+ do_fio(&c__1, ch__4, (ftnlen)10);
+ e_wsfe();
+/* write(11,'(a)')sq//'input musixmad' */
+/* write(11,'(a)')sq//'input musixxad' */
+ s_wsfe(&io___1652);
+/* Writing concatenation */
+ i__3[0] = 1, a__3[0] = sq;
+ i__3[1] = 15, a__3[1] = "setmaxslurs{24}";
+ i__3[2] = 1, a__3[2] = sq;
+ i__3[3] = 22, a__3[3] = "setmaxinstruments{24}%";
+ s_cat(ch__5, a__3, i__3, &c__4, (ftnlen)39);
+ do_fio(&c__1, ch__5, (ftnlen)39);
+ e_wsfe();
+ if (! (*fontslur)) {
+ s_wsfe(&io___1653);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 13, a__2[1] = "input musixps";
+ s_cat(ch__6, a__2, i__2, &c__2, (ftnlen)14);
+ do_fio(&c__1, ch__6, (ftnlen)14);
+ e_wsfe();
+ }
+
+/* Need to input musixmad to permit more slurs. */
+
+ if (*musicsize == 20) {
+ s_wsfe(&io___1654);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 16, a__2[1] = "normalmusicsize%";
+ s_cat(ch__7, a__2, i__2, &c__2, (ftnlen)17);
+ do_fio(&c__1, ch__7, (ftnlen)17);
+ e_wsfe();
+ } else if (*musicsize == 16) {
+ s_wsfe(&io___1655);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 15, a__2[1] = "smallmusicsize%";
+ s_cat(ch__8, a__2, i__2, &c__2, (ftnlen)16);
+ do_fio(&c__1, ch__8, (ftnlen)16);
+ e_wsfe();
+ } else if (*musicsize == 24) {
+ s_wsfe(&io___1656);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 15, a__2[1] = "largemusicsize%";
+ s_cat(ch__8, a__2, i__2, &c__2, (ftnlen)16);
+ do_fio(&c__1, ch__8, (ftnlen)16);
+ e_wsfe();
+ s_wsfe(&io___1657);
+/* Writing concatenation */
+ i__4[0] = 1, a__4[0] = sq;
+ i__4[1] = 3, a__4[1] = "def";
+ i__4[2] = 1, a__4[2] = sq;
+ i__4[3] = 10, a__4[3] = "meterfont{";
+ i__4[4] = 1, a__4[4] = sq;
+ i__4[5] = 16, a__4[5] = "meterlargefont}%";
+ s_cat(ch__9, a__4, i__4, &c__6, (ftnlen)32);
+ do_fio(&c__1, ch__9, (ftnlen)32);
+ e_wsfe();
+ } else if (*musicsize == 29) {
+ s_wsfe(&io___1658);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 15, a__2[1] = "Largemusicsize%";
+ s_cat(ch__8, a__2, i__2, &c__2, (ftnlen)16);
+ do_fio(&c__1, ch__8, (ftnlen)16);
+ e_wsfe();
+ s_wsfe(&io___1659);
+/* Writing concatenation */
+ i__4[0] = 1, a__4[0] = sq;
+ i__4[1] = 3, a__4[1] = "def";
+ i__4[2] = 1, a__4[2] = sq;
+ i__4[3] = 10, a__4[3] = "meterfont{";
+ i__4[4] = 1, a__4[4] = sq;
+ i__4[5] = 16, a__4[5] = "meterLargefont}%";
+ s_cat(ch__9, a__4, i__4, &c__6, (ftnlen)32);
+ do_fio(&c__1, ch__9, (ftnlen)32);
+ e_wsfe();
+ }
+
+/* Set sizes. Have sizes per staff in isize(.) and noinst per staff in */
+/* nsperi(.) */
+
+ iiv = 1;
+ i__5 = *noinst;
+ for (iinst = 1; iinst <= i__5; ++iinst) {
+ if (comsize_1.isize[iiv - 1] == 1) {
+ if (iinst <= 9) {
+ s_wsfe(&io___1662);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "setsize";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__6[0] = 1, a__5[0] = sq;
+ i__6[1] = 11, a__5[1] = "smallvalue%";
+ s_cat(ch__11, a__5, i__6, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__11, (ftnlen)12);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1663);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 8, a__2[1] = "setsize{";
+ s_cat(ch__12, a__2, i__2, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__12, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = "}";
+ i__1[1] = 1, a__1[1] = sq;
+ i__1[2] = 11, a__1[2] = "smallvalue%";
+ s_cat(ch__13, a__1, i__1, &c__3, (ftnlen)13);
+ do_fio(&c__1, ch__13, (ftnlen)13);
+ e_wsfe();
+ }
+ } else if (comsize_1.isize[iiv - 1] == 2) {
+ if (iinst <= 9) {
+ s_wsfe(&io___1664);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "setsize";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__6[0] = 1, a__5[0] = sq;
+ i__6[1] = 10, a__5[1] = "tinyvalue%";
+ s_cat(ch__14, a__5, i__6, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__14, (ftnlen)11);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1665);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 8, a__2[1] = "setsize{";
+ s_cat(ch__12, a__2, i__2, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__12, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = "}";
+ i__1[1] = 1, a__1[1] = sq;
+ i__1[2] = 10, a__1[2] = "tinyvalue%";
+ s_cat(ch__11, a__1, i__1, &c__3, (ftnlen)12);
+ do_fio(&c__1, ch__11, (ftnlen)12);
+ e_wsfe();
+ }
+ }
+ iiv += comnvi_1.nsperi[iinst - 1];
+/* L5: */
+ }
+
+/* do 5 iiv = 1 , nv */
+/* if (isize(iiv) .eq. 1) then */
+/* if(iiv.le.9) then */
+/* write(11,'(a8,i1,a)') */
+/* * sq//'setsize',iiv,sq//'smallvalue%' */
+/* else */
+/* write(11,'(a9,i2,a)') */
+/* * sq//'setsize{',iiv,'}'//sq//'smallvalue%' */
+/* end if */
+/* else if (isize(iiv) .eq. 2) then */
+/* if(iiv.le.9) then */
+/* write(11,'(a8,i1,a)') */
+/* * sq//'setsize',iiv,sq//'tinyvalue%' */
+/* else */
+/* write(11,'(a9,i2,a)') */
+/* * sq//'setsize{',iiv,'}'//sq//'tinyvalue%' */
+/* end if */
+/* end if */
+/* 5 continue */
+
+ s_wsfi(&io___1667);
+ do_fio(&c__1, (char *)&(*fbar), (ftnlen)sizeof(real));
+ e_wsfi();
+ s_wsfe(&io___1668);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 13, a__2[1] = "nopagenumbers";
+ s_cat(ch__6, a__2, i__2, &c__2, (ftnlen)14);
+ do_fio(&c__1, ch__6, (ftnlen)14);
+ e_wsfe();
+ s_wsfe(&io___1669);
+/* Writing concatenation */
+ i__3[0] = 1, a__3[0] = sq;
+ i__3[1] = 14, a__3[1] = "tracingstats=2";
+ i__3[2] = 1, a__3[2] = sq;
+ i__3[3] = 5, a__3[3] = "relax";
+ s_cat(ch__15, a__3, i__3, &c__4, (ftnlen)21);
+ do_fio(&c__1, ch__15, (ftnlen)21);
+ e_wsfe();
+ s_wsfe(&io___1670);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 6, a__2[1] = "hsize=";
+ s_cat(ch__16, a__2, i__2, &c__2, (ftnlen)7);
+ do_fio(&c__1, ch__16, (ftnlen)7);
+ i__5 = i_nint(&comtop_1.widthpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 11;
+/* Writing concatenation */
+ i__1[0] = 5, a__1[0] = "(a6,i";
+ r__1 = comtop_1.height + .1f;
+ i__5 = (integer) r_lg10(&r__1) + 49;
+ chax_(ch__1, (ftnlen)1, &i__5);
+ i__1[1] = 1, a__1[1] = ch__1;
+ i__1[2] = 4, a__1[2] = ",a2)";
+ ci__1.cifmt = (s_cat(ch__4, a__1, i__1, &c__3, (ftnlen)10), ch__4);
+ s_wsfe(&ci__1);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 5, a__2[1] = "vsize";
+ s_cat(ch__17, a__2, i__2, &c__2, (ftnlen)6);
+ do_fio(&c__1, ch__17, (ftnlen)6);
+ i__7 = (integer) (comtop_1.height + .1f);
+ do_fio(&c__1, (char *)&i__7, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ if (dabs(comtop_1.hoffpt) > .1f) {
+ if (comtop_1.hoffpt <= -10.f) {
+ s_wsfe(&io___1671);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "hoffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.hoffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else if (comtop_1.hoffpt < 0.f) {
+ s_wsfe(&io___1672);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "hoffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.hoffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else if (comtop_1.hoffpt < 10.f) {
+ s_wsfe(&io___1673);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "hoffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.hoffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1674);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "hoffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.hoffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ }
+ }
+ if (dabs(comtop_1.voffpt) > .1f) {
+ if (comtop_1.voffpt <= -10.f) {
+ s_wsfe(&io___1675);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "voffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.voffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else if (comtop_1.voffpt < 0.f) {
+ s_wsfe(&io___1676);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "voffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.voffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else if (comtop_1.voffpt < 10.f) {
+ s_wsfe(&io___1677);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "voffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.voffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1678);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "voffset";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ i__5 = i_nint(&comtop_1.voffpt);
+ do_fio(&c__1, (char *)&i__5, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ }
+ }
+
+/* The default raisebarno=3.5 internote, set in pmx.tex. Increase to 4.5 if */
+/* 3 sharps and treble clef, to avoid vertical clash with top space g# */
+
+ if (comtop_1.isig == 3 && *(unsigned char *)&clefq[*nv] == 't') {
+ s_wsfe(&io___1679);
+/* Writing concatenation */
+ i__4[0] = 1, a__4[0] = sq;
+ i__4[1] = 3, a__4[1] = "def";
+ i__4[2] = 1, a__4[2] = sq;
+ i__4[3] = 14, a__4[3] = "raisebarno{4.5";
+ i__4[4] = 1, a__4[4] = sq;
+ i__4[5] = 10, a__4[5] = "internote}";
+ s_cat(ch__18, a__4, i__4, &c__6, (ftnlen)30);
+ do_fio(&c__1, ch__18, (ftnlen)30);
+ e_wsfe();
+ }
+ if (*noinst < 10) {
+ s_wsfe(&io___1680);
+/* Writing concatenation */
+ i__3[0] = 1, a__3[0] = sq;
+ i__3[1] = 3, a__3[1] = "def";
+ i__3[2] = 1, a__3[2] = sq;
+ i__3[3] = 14, a__3[3] = "nbinstruments{";
+ s_cat(ch__19, a__3, i__3, &c__4, (ftnlen)19);
+ do_fio(&c__1, ch__19, (ftnlen)19);
+ do_fio(&c__1, (char *)&(*noinst), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1681);
+/* Writing concatenation */
+ i__3[0] = 1, a__3[0] = sq;
+ i__3[1] = 3, a__3[1] = "def";
+ i__3[2] = 1, a__3[2] = sq;
+ i__3[3] = 14, a__3[3] = "nbinstruments{";
+ s_cat(ch__19, a__3, i__3, &c__4, (ftnlen)19);
+ do_fio(&c__1, ch__19, (ftnlen)19);
+ do_fio(&c__1, (char *)&(*noinst), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfe();
+ }
+ iv = 0;
+ i__5 = *noinst;
+ for (iinst = 1; iinst <= i__5; ++iinst) {
+ nstaves = comnvi_1.nsperi[iinst - 1];
+ if (iinst < 10) {
+ s_wsfe(&io___1684);
+/* Writing concatenation */
+ i__3[0] = 1, a__3[0] = sq;
+ i__3[1] = 9, a__3[1] = "setstaffs";
+ i__7 = iinst + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ i__3[2] = 1, a__3[2] = ch__1;
+ i__8 = nstaves + 48;
+ chax_(ch__20, (ftnlen)1, &i__8);
+ i__3[3] = 1, a__3[3] = ch__20;
+ s_cat(ch__11, a__3, i__3, &c__4, (ftnlen)12);
+ do_fio(&c__1, ch__11, (ftnlen)12);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1685);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 10, a__2[1] = "setstaffs{";
+ s_cat(ch__14, a__2, i__2, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__14, (ftnlen)11);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__6[0] = 1, a__5[0] = "}";
+ i__7 = nstaves + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ i__6[1] = 1, a__5[1] = ch__1;
+ s_cat(ch__21, a__5, i__6, &c__2, (ftnlen)2);
+ do_fio(&c__1, ch__21, (ftnlen)2);
+ e_wsfe();
+ }
+ ++iv;
+ if (nstaves == 1) {
+ i__7 = numclef_(clefq + iv, (ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ s_copy(fmtq, ch__1, (ftnlen)24, (ftnlen)1);
+ lfmtq = 1;
+ } else {
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = "{";
+ i__7 = numclef_(clefq + iv, (ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ i__2[1] = 1, a__2[1] = ch__1;
+ s_cat(fmtq, a__2, i__2, &c__2, (ftnlen)24);
+ lfmtq = 2;
+ i__7 = nstaves;
+ for (k = 2; k <= i__7; ++k) {
+ ++iv;
+/* Writing concatenation */
+ i__2[0] = lfmtq, a__2[0] = fmtq;
+ i__8 = numclef_(clefq + iv, (ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__8);
+ i__2[1] = 1, a__2[1] = ch__1;
+ s_cat(fmtq, a__2, i__2, &c__2, (ftnlen)24);
+ ++lfmtq;
+/* L2: */
+ }
+/* Writing concatenation */
+ i__2[0] = lfmtq, a__2[0] = fmtq;
+ i__2[1] = 1, a__2[1] = "}";
+ s_cat(fmtq, a__2, i__2, &c__2, (ftnlen)24);
+ ++lfmtq;
+ }
+ if (iinst < 10) {
+ s_wsfe(&io___1689);
+/* Writing concatenation */
+ i__3[0] = 1, a__3[0] = sq;
+ i__3[1] = 7, a__3[1] = "setclef";
+ i__7 = iinst + 48;
+ chax_(ch__1, (ftnlen)1, &i__7);
+ i__3[2] = 1, a__3[2] = ch__1;
+ i__3[3] = lfmtq, a__3[3] = fmtq;
+ s_cat(ch__22, a__3, i__3, &c__4, (ftnlen)33);
+ do_fio(&c__1, ch__22, lfmtq + 9);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1690);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 8, a__2[1] = "setclef{";
+ s_cat(ch__12, a__2, i__2, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__12, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__6[0] = 1, a__5[0] = "}";
+ i__6[1] = lfmtq, a__5[1] = fmtq;
+ s_cat(ch__23, a__5, i__6, &c__2, (ftnlen)25);
+ do_fio(&c__1, ch__23, lfmtq + 1);
+ e_wsfe();
+ }
+ for (lname = 79; lname >= 2; --lname) {
+ if (*(unsigned char *)&comtop_1.inameq[(iinst - 1) * 79 + (lname
+ - 1)] != ' ') {
+ goto L4;
+ }
+/* L3: */
+ }
+L4:
+ comtop_1.lnam[iinst - 1] = lname;
+ if (iinst < 10) {
+ s_wsfe(&io___1692);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 7, a__2[1] = "setname";
+ s_cat(ch__10, a__2, i__2, &c__2, (ftnlen)8);
+ do_fio(&c__1, ch__10, (ftnlen)8);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = "{";
+ i__1[1] = lname, a__1[1] = comtop_1.inameq + (iinst - 1) * 79;
+ i__1[2] = 1, a__1[2] = "}";
+ s_cat(ch__24, a__1, i__1, &c__3, (ftnlen)81);
+ do_fio(&c__1, ch__24, lname + 2);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1693);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 8, a__2[1] = "setname{";
+ s_cat(ch__12, a__2, i__2, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__12, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "}{";
+ i__1[1] = lname, a__1[1] = comtop_1.inameq + (iinst - 1) * 79;
+ i__1[2] = 1, a__1[2] = "}";
+ s_cat(ch__25, a__1, i__1, &c__3, (ftnlen)82);
+ do_fio(&c__1, ch__25, lname + 3);
+ e_wsfe();
+ }
+/* L1: */
+ }
+ s_wsfe(&io___1694);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 17, a__2[1] = "generalsignature{";
+ s_cat(ch__26, a__2, i__2, &c__2, (ftnlen)18);
+ do_fio(&c__1, ch__26, (ftnlen)18);
+ do_fio(&c__1, (char *)&comtop_1.isig, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}%", (ftnlen)2);
+ e_wsfe();
+ if (cominsttrans_1.earlytranson) {
+ writesetsign_(&cominsttrans_1.ninsttrans, cominsttrans_1.iinsttrans,
+ cominsttrans_1.itranskey, &cominsttrans_1.earlytranson);
+ }
+ wgmeter_(mtrnmp, mtrdnp);
+ r__1 = comtop_1.fracindent * comtop_1.widthpt;
+ ipi = i_nint(&r__1);
+ if (ipi < 10) {
+ s_wsfe(&io___1696);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 10, a__2[1] = "parindent ";
+ s_cat(ch__14, a__2, i__2, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__14, (ftnlen)11);
+ do_fio(&c__1, (char *)&ipi, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else if (ipi < 100) {
+ s_wsfe(&io___1697);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 10, a__2[1] = "parindent ";
+ s_cat(ch__14, a__2, i__2, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__14, (ftnlen)11);
+ do_fio(&c__1, (char *)&ipi, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1698);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 10, a__2[1] = "parindent ";
+ s_cat(ch__14, a__2, i__2, &c__2, (ftnlen)11);
+ do_fio(&c__1, ch__14, (ftnlen)11);
+ do_fio(&c__1, (char *)&ipi, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "pt", (ftnlen)2);
+ e_wsfe();
+ }
+ s_wsfe(&io___1699);
+/* Writing concatenation */
+ i__9[0] = 1, a__6[0] = sq;
+ i__9[1] = 11, a__6[1] = "elemskip1pt";
+ i__9[2] = 1, a__6[2] = sq;
+ i__9[3] = 13, a__6[3] = "afterruleskip";
+ i__9[4] = 5, a__6[4] = fbarq;
+ i__9[5] = 2, a__6[5] = "pt";
+ i__9[6] = 1, a__6[6] = sq;
+ i__9[7] = 17, a__6[7] = "beforeruleskip0pt";
+ i__9[8] = 1, a__6[8] = sq;
+ i__9[9] = 5, a__6[9] = "relax";
+ s_cat(ch__27, a__6, i__9, &c__10, (ftnlen)57);
+ do_fio(&c__1, ch__27, (ftnlen)57);
+ e_wsfe();
+ if (! (*vshrink)) {
+ if (*xinstf1 < 9.95f) {
+ s_copy(fmtq, "(a,f3.1,a)", (ftnlen)24, (ftnlen)10);
+ } else {
+ s_copy(fmtq, "(a,f4.1,a)", (ftnlen)24, (ftnlen)10);
+ }
+ s_wsfe(&io___1700);
+/* Writing concatenation */
+ i__4[0] = 1, a__4[0] = sq;
+ i__4[1] = 15, a__4[1] = "stafftopmarg0pt";
+ i__4[2] = 1, a__4[2] = sq;
+ i__4[3] = 15, a__4[3] = "staffbotmarg0pt";
+ i__4[4] = 1, a__4[4] = sq;
+ i__4[5] = 11, a__4[5] = "interstaff{";
+ s_cat(ch__28, a__4, i__4, &c__6, (ftnlen)44);
+ do_fio(&c__1, ch__28, (ftnlen)44);
+ do_fio(&c__1, (char *)&(*xinstf1), (ftnlen)sizeof(real));
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = "}";
+ i__1[1] = 1, a__1[1] = sq;
+ i__1[2] = 5, a__1[2] = "relax";
+ s_cat(ch__16, a__1, i__1, &c__3, (ftnlen)7);
+ do_fio(&c__1, ch__16, (ftnlen)7);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1701);
+/* Writing concatenation */
+ i__9[0] = 1, a__6[0] = sq;
+ i__9[1] = 15, a__6[1] = "stafftopmarg0pt";
+ i__9[2] = 1, a__6[2] = sq;
+ i__9[3] = 13, a__6[3] = "staffbotmarg5";
+ i__9[4] = 1, a__6[4] = sq;
+ i__9[5] = 10, a__6[5] = "Interligne";
+ i__9[6] = 1, a__6[6] = sq;
+ i__9[7] = 14, a__6[7] = "interstaff{10}";
+ i__9[8] = 1, a__6[8] = sq;
+ i__9[9] = 5, a__6[9] = "relax";
+ s_cat(ch__29, a__6, i__9, &c__10, (ftnlen)62);
+ do_fio(&c__1, ch__29, (ftnlen)62);
+ e_wsfe();
+ }
+ if (*nv == 1) {
+ s_wsfe(&io___1702);
+/* Writing concatenation */
+ i__2[0] = 1, a__2[0] = sq;
+ i__2[1] = 11, a__2[1] = "nostartrule";
+ s_cat(ch__11, a__2, i__2, &c__2, (ftnlen)12);
+ do_fio(&c__1, ch__11, (ftnlen)12);
+ e_wsfe();
+ }
+ s_wsfe(&io___1703);
+/* Writing concatenation */
+ i__3[0] = 1, a__3[0] = sq;
+ i__3[1] = 8, a__3[1] = "readmod{";
+ i__3[2] = *lbase, a__3[2] = basenameq;
+ i__3[3] = 1, a__3[3] = "}";
+ s_cat(ch__30, a__3, i__3, &c__4, (ftnlen)54);
+ do_fio(&c__1, ch__30, *lbase + 10);
+ e_wsfe();
+ if (comnvst_1.cstuplet) {
+ s_wsfe(&io___1704);
+/* Writing concatenation */
+ i__10[0] = 1, a__7[0] = sq;
+ i__10[1] = 12, a__7[1] = "input tuplet";
+ i__10[2] = 1, a__7[2] = sq;
+ i__10[3] = 3, a__7[3] = "def";
+ i__10[4] = 1, a__7[4] = sq;
+ i__10[5] = 12, a__7[5] = "xnumt#1#2#3{";
+ i__10[6] = 1, a__7[6] = sq;
+ i__10[7] = 16, a__7[7] = "zcharnote{#2}{~}";
+ i__10[8] = 1, a__7[8] = sq;
+ i__10[9] = 3, a__7[9] = "def";
+ i__10[10] = 1, a__7[10] = sq;
+ i__10[11] = 10, a__7[11] = "tuplettxt{";
+ i__10[12] = 1, a__7[12] = sq;
+ i__10[13] = 9, a__7[13] = "smalltype";
+ i__10[14] = 1, a__7[14] = sq;
+ i__10[15] = 6, a__7[15] = "it{#3}";
+ i__10[16] = 1, a__7[16] = sq;
+ i__10[17] = 1, a__7[17] = "/";
+ i__10[18] = 1, a__7[18] = sq;
+ i__10[19] = 4, a__7[19] = "/}}%";
+ s_cat(ch__31, a__7, i__10, &c__20, (ftnlen)86);
+ do_fio(&c__1, ch__31, (ftnlen)86);
+ e_wsfe();
+ s_wsfe(&io___1705);
+/* Writing concatenation */
+ i__11[0] = 1, a__8[0] = sq;
+ i__11[1] = 3, a__8[1] = "let";
+ i__11[2] = 1, a__8[2] = sq;
+ i__11[3] = 5, a__8[3] = "ovbkt";
+ i__11[4] = 1, a__8[4] = sq;
+ i__11[5] = 8, a__8[5] = "uptuplet";
+ i__11[6] = 1, a__8[6] = sq;
+ i__11[7] = 3, a__8[7] = "let";
+ i__11[8] = 1, a__8[8] = sq;
+ i__11[9] = 5, a__8[9] = "unbkt";
+ i__11[10] = 1, a__8[10] = sq;
+ i__11[11] = 11, a__8[11] = "downtuplet%";
+ s_cat(ch__32, a__8, i__11, &c__12, (ftnlen)41);
+ do_fio(&c__1, ch__32, (ftnlen)41);
+ e_wsfe();
+ }
+ s_wsfe(&io___1706);
+/* Writing concatenation */
+ i__12[0] = 1, a__9[0] = sq;
+ i__12[1] = 11, a__9[1] = "startmuflex";
+ i__12[2] = 1, a__9[2] = sq;
+ i__12[3] = 10, a__9[3] = "startpiece";
+ i__12[4] = 1, a__9[4] = sq;
+ i__12[5] = 8, a__9[5] = "addspace";
+ i__12[6] = 1, a__9[6] = sq;
+ i__12[7] = 14, a__9[7] = "afterruleskip%";
+ s_cat(ch__33, a__9, i__12, &c__8, (ftnlen)47);
+ do_fio(&c__1, ch__33, (ftnlen)47);
+ e_wsfe();
+ return 0;
+} /* topfile_ */
+
+/* Character */ VOID udfq_(char *ret_val, ftnlen ret_val_len, integer *nolev,
+ integer *ncm)
+{
+ static integer ntest;
+
+
+/* Slur directions */
+
+ ntest = *nolev - *ncm;
+ if (ntest < 0 || ntest == 0 && combc_1.bcspec && *ncm == 23) {
+ *(unsigned char *)ret_val = 'd';
+ } else {
+ *(unsigned char *)ret_val = 'u';
+ }
+ return ;
+} /* udfq_ */
+
+/* Character */ VOID udqq_(char *ret_val, ftnlen ret_val_len, integer *nole,
+ integer *ncm, integer *isl, integer *nvmx, integer *ivx, integer *nv)
+{
+ /* System generated locals */
+ real r__1;
+ char ch__2[1];
+
+ /* Local variables */
+ extern /* Character */ VOID ulfq_(char *, ftnlen, real *, integer *);
+ static char udqqq[1];
+
+
+/* Stem direction for single notes */
+
+ if (bit_test(*isl,30)) {
+
+/* Absolute override */
+
+ if (bit_test(*isl,17)) {
+ *(unsigned char *)udqqq = 'u';
+ } else {
+ *(unsigned char *)udqqq = 'l';
+ }
+ } else if (*nvmx == 1) {
+
+/* Single voice per staff, default */
+
+ r__1 = *nole * 1.f;
+ ulfq_(ch__2, (ftnlen)1, &r__1, ncm);
+ *(unsigned char *)udqqq = *(unsigned char *)&ch__2[0];
+ } else {
+
+/* Multi-voice per staff, 1st is lower, 2nd upper */
+
+ if (*ivx <= *nv) {
+ *(unsigned char *)udqqq = 'l';
+ } else {
+ *(unsigned char *)udqqq = 'u';
+ }
+ }
+ *(unsigned char *)ret_val = *(unsigned char *)udqqq;
+ return ;
+} /* udqq_ */
+
+/* Character */ VOID ulfq_(char *ret_val, ftnlen ret_val_len, real *xnolev,
+ integer *ncm)
+{
+ static real test;
+
+
+/* Stem directions */
+
+ test = *xnolev - *ncm;
+ if (test < -.001f || test < .001f && combc_1.bcspec && *ncm == 23) {
+ *(unsigned char *)ret_val = 'u';
+ } else {
+ *(unsigned char *)ret_val = 'l';
+ }
+ return ;
+} /* ulfq_ */
+
+/* Character */ VOID upcaseq_(char *ret_val, ftnlen ret_val_len, char *chq,
+ ftnlen chq_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer i__1, i__2[2];
+ char ch__2[1], ch__3[53];
+
+ /* Builtin functions */
+ integer s_wsle(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_lio(integer *, integer *, char *, ftnlen), e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+
+ /* Local variables */
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___1710 = { 0, 6, 0, 0, 0 };
+
+
+ if (*(unsigned char *)chq >= 61 && *(unsigned char *)chq < 122) {
+ i__1 = *(unsigned char *)chq - 32;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ *(unsigned char *)ret_val = *(unsigned char *)&ch__2[0];
+ } else {
+ *(unsigned char *)ret_val = *(unsigned char *)chq;
+ s_wsle(&io___1710);
+/* Writing concatenation */
+ i__2[0] = 52, a__1[0] = "Warning, upcaseq was called with improper a"
+ "rgument: ";
+ i__2[1] = 1, a__1[1] = chq;
+ s_cat(ch__3, a__1, i__2, &c__2, (ftnlen)53);
+ do_lio(&c__9, &c__1, ch__3, (ftnlen)53);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ return ;
+} /* upcaseq_ */
+
+/* Subroutine */ int wgmeter_(integer *mtrnmp, integer *mtrdnp)
+{
+ /* System generated locals */
+ address a__1[4];
+ integer i__1[4], i__2;
+ char ch__1[1], ch__2[25], ch__3[26], ch__4[21], ch__5[24];
+
+ /* Builtin functions */
+ integer s_wsfe(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_fio(integer *, char *, ftnlen), e_wsfe(void);
+
+ /* Local variables */
+ static char sq[1];
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+
+ /* Fortran I/O blocks */
+ static cilist io___1712 = { 0, 11, 0, "(a25,i1,a2,i1,a3)", 0 };
+ static cilist io___1713 = { 0, 11, 0, "(a25,i1,a2,i2,a3)", 0 };
+ static cilist io___1714 = { 0, 11, 0, "(a25,i2,a2,i1,a3)", 0 };
+ static cilist io___1715 = { 0, 11, 0, "(a25,i2,a2,i2,a3)", 0 };
+ static cilist io___1716 = { 0, 11, 0, "(a26,i1,a2,i1,a3)", 0 };
+ static cilist io___1717 = { 0, 11, 0, "(a21,i1,a2)", 0 };
+ static cilist io___1718 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1719 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1720 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* Writes meter stuff to file 11, so only called if islast=.true. */
+
+ if (*mtrdnp == 0) {
+ return 0;
+ }
+ chax_(ch__1, (ftnlen)1, &c__92);
+ *(unsigned char *)sq = *(unsigned char *)&ch__1[0];
+ if (*mtrnmp > 0 && *mtrnmp <= 9) {
+ if (*mtrdnp < 10) {
+ s_wsfe(&io___1712);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 13, a__1[1] = "generalmeter{";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 10, a__1[3] = "meterfrac{";
+ s_cat(ch__2, a__1, i__1, &c__4, (ftnlen)25);
+ do_fio(&c__1, ch__2, (ftnlen)25);
+ do_fio(&c__1, (char *)&(*mtrnmp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}{", (ftnlen)2);
+ do_fio(&c__1, (char *)&(*mtrdnp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}}%", (ftnlen)3);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1713);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 13, a__1[1] = "generalmeter{";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 10, a__1[3] = "meterfrac{";
+ s_cat(ch__2, a__1, i__1, &c__4, (ftnlen)25);
+ do_fio(&c__1, ch__2, (ftnlen)25);
+ do_fio(&c__1, (char *)&(*mtrnmp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}{", (ftnlen)2);
+ do_fio(&c__1, (char *)&(*mtrdnp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}}%", (ftnlen)3);
+ e_wsfe();
+ }
+ } else if (*mtrnmp >= 10) {
+ if (*mtrdnp < 10) {
+ s_wsfe(&io___1714);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 13, a__1[1] = "generalmeter{";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 10, a__1[3] = "meterfrac{";
+ s_cat(ch__2, a__1, i__1, &c__4, (ftnlen)25);
+ do_fio(&c__1, ch__2, (ftnlen)25);
+ do_fio(&c__1, (char *)&(*mtrnmp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}{", (ftnlen)2);
+ do_fio(&c__1, (char *)&(*mtrdnp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}}%", (ftnlen)3);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___1715);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 13, a__1[1] = "generalmeter{";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 10, a__1[3] = "meterfrac{";
+ s_cat(ch__2, a__1, i__1, &c__4, (ftnlen)25);
+ do_fio(&c__1, ch__2, (ftnlen)25);
+ do_fio(&c__1, (char *)&(*mtrnmp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}{", (ftnlen)2);
+ do_fio(&c__1, (char *)&(*mtrdnp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}}%", (ftnlen)3);
+ e_wsfe();
+ }
+ } else if (*mtrnmp < 0) {
+ s_wsfe(&io___1716);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 13, a__1[1] = "generalmeter{";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 11, a__1[3] = "meterfracS{";
+ s_cat(ch__3, a__1, i__1, &c__4, (ftnlen)26);
+ do_fio(&c__1, ch__3, (ftnlen)26);
+ i__2 = -(*mtrnmp);
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}{", (ftnlen)2);
+ do_fio(&c__1, (char *)&(*mtrdnp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}}%", (ftnlen)3);
+ e_wsfe();
+ } else if (*mtrdnp <= 4) {
+ s_wsfe(&io___1717);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 13, a__1[1] = "generalmeter{";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 6, a__1[3] = "meterN";
+ s_cat(ch__4, a__1, i__1, &c__4, (ftnlen)21);
+ do_fio(&c__1, ch__4, (ftnlen)21);
+ do_fio(&c__1, (char *)&(*mtrdnp), (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}%", (ftnlen)2);
+ e_wsfe();
+ } else if (*mtrdnp == 5) {
+ s_wsfe(&io___1718);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 12, a__1[1] = "generalmeter";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 10, a__1[3] = "allabreve%";
+ s_cat(ch__5, a__1, i__1, &c__4, (ftnlen)24);
+ do_fio(&c__1, ch__5, (ftnlen)24);
+ e_wsfe();
+ } else if (*mtrdnp == 6) {
+ s_wsfe(&io___1719);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 12, a__1[1] = "generalmeter";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 7, a__1[3] = "meterC%";
+ s_cat(ch__4, a__1, i__1, &c__4, (ftnlen)21);
+ do_fio(&c__1, ch__4, (ftnlen)21);
+ e_wsfe();
+ } else if (*mtrdnp == 7) {
+ s_wsfe(&io___1720);
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 12, a__1[1] = "generalmeter";
+ i__1[2] = 1, a__1[2] = sq;
+ i__1[3] = 10, a__1[3] = "meterIIIS%";
+ s_cat(ch__5, a__1, i__1, &c__4, (ftnlen)24);
+ do_fio(&c__1, ch__5, (ftnlen)24);
+ e_wsfe();
+ }
+ return 0;
+} /* wgmeter_ */
+
+/* Subroutine */ int writemidi_(char *jobname, integer *ljob, ftnlen
+ jobname_len)
+{
+ /* Initialized data */
+
+ static shortint icmm[16] = { 0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16 };
+
+ /* System generated locals */
+ address a__1[4], a__2[7], a__3[3], a__4[2], a__5[12];
+ integer i__1[4], i__2, i__3[7], i__4[3], i__5[2], i__6, i__7[12], i__8,
+ i__9, i__10, i__11, i__12;
+ char ch__1[14], ch__2[1], ch__3[12], ch__4[1], ch__5[1], ch__6[46], ch__7[
+ 27], ch__8[29], ch__9[15], ch__10[1], ch__11[4], ch__12[81],
+ ch__13[25];
+ cllist cl__1;
+
+ /* Builtin functions */
+ integer s_wsfe(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_fio(integer *, char *, ftnlen), e_wsfe(void), s_wsle(cilist *),
+ do_lio(integer *, integer *, char *, ftnlen), e_wsle(void),
+ lbit_shift(integer, integer), s_wsfi(icilist *), e_wsfi(void),
+ f_clos(cllist *);
+
+ /* Local variables */
+ static integer i__, kv, ib0, ib1, icm, ivt;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer isec, mend, ivtt;
+ extern /* Subroutine */ int stop1_(void);
+ static integer ndata, ibyte;
+ static char byteq[1*4];
+ static integer iinst;
+ static char instq[10];
+ static shortint iinsiv[24];
+ static char tempoq[10];
+ extern /* Subroutine */ int printl_(char *, ftnlen);
+ static integer nstaves;
+
+ /* Fortran I/O blocks */
+ static cilist io___1722 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1723 = { 0, 52, 0, "(a6,10Z4)", 0 };
+ static cilist io___1728 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1729 = { 0, 52, 0, "(a6,8z4)", 0 };
+ static cilist io___1730 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1731 = { 0, 52, 0, "(a)", 0 };
+ static cilist io___1732 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1733 = { 0, 52, 0, "(a)", 0 };
+ static cilist io___1736 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1737 = { 0, 52, 0, "(z4)", 0 };
+ static cilist io___1738 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1739 = { 0, 52, 0, "(4z4)", 0 };
+ static cilist io___1746 = { 0, 6, 0, 0, 0 };
+ static cilist io___1750 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1751 = { 0, 52, 0, "(a4,z2,a7,11z4)", 0 };
+ static cilist io___1752 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1753 = { 0, 52, 0, "(4z4)", 0 };
+ static cilist io___1754 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1755 = { 0, 52, 0, "(a)", 0 };
+ static icilist io___1757 = { 0, tempoq, 0, "(i2)", 10, 1 };
+ static icilist io___1759 = { 0, instq, 0, "(i3)", 10, 1 };
+ static cilist io___1760 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1761 = { 0, 52, 0, "(z4)", 0 };
+ static cilist io___1762 = { 0, 51, 0, "(a,$)", 0 };
+ static cilist io___1763 = { 0, 52, 0, "(4z4)", 0 };
+ static cilist io___1764 = { 0, 6, 0, "(1x,a12,(10i6))", 0 };
+ static cilist io___1765 = { 0, 15, 0, "(1x,a12,(10i6))", 0 };
+
+
+
+/* Used to be icmm(0:nm); did midi fail when nv>16? */
+
+/* data icmm /0,1,2,3,4,5,6,7,8,10,11,12,13/ */
+/* Can't remember why these were not consecutive. */
+/* data icmm /0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15/ */
+
+/* Write Header */
+
+ s_wsfe(&io___1722);
+/* Writing concatenation */
+ i__1[0] = 11, a__1[0] = "MThd\000\000\000\006\000\001\000";
+ *(unsigned char *)&ch__2[0] = commidi_1.numchan + 1;
+ i__1[1] = 1, a__1[1] = ch__2;
+ i__1[2] = 1, a__1[2] = "\000";
+ i__1[3] = 1, a__1[3] = "\360";
+ s_cat(ch__1, a__1, i__1, &c__4, (ftnlen)14);
+ do_fio(&c__1, ch__1, (ftnlen)14);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1723);
+ do_fio(&c__1, "\"MThd\"", (ftnlen)6);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__6, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ i__2 = commidi_1.numchan + 1;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__240, (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+
+/* Write the "conductor" track, for keys, meter, and tempos */
+/* Get the number of bytes in the conductor event stream */
+
+ ndata = commidi_1.imidi[commidi_1.numchan] + 1 - commmac_1.msecstrt[
+ commidi_1.numchan + commmac_1.nmidsec * 25 - 25];
+ i__2 = commmac_1.nmidsec - 1;
+ for (isec = 1; isec <= i__2; ++isec) {
+ ndata = ndata + 1 + commmac_1.msecend[commidi_1.numchan + isec * 25 -
+ 25] - commmac_1.msecstrt[commidi_1.numchan + isec * 25 - 25];
+/* L15: */
+ }
+/* ib1 = (4+ljob+26+ndata+4)/256 */
+/* ib0 = 4+ljob+26+ndata+4-256*ib1 */
+ ib1 = (*ljob + 31 + ndata + 4) / 256;
+ ib0 = *ljob + 31 + ndata + 4 - (ib1 << 8);
+ s_wsfe(&io___1728);
+/* Writing concatenation */
+ i__3[0] = 6, a__2[0] = "MTrk\000\000";
+ *(unsigned char *)&ch__2[0] = ib1;
+ i__3[1] = 1, a__2[1] = ch__2;
+ *(unsigned char *)&ch__4[0] = ib0;
+ i__3[2] = 1, a__2[2] = ch__4;
+ i__3[3] = 1, a__2[3] = "\000";
+ i__3[4] = 1, a__2[4] = "\377";
+ i__3[5] = 1, a__2[5] = "\001";
+ *(unsigned char *)&ch__5[0] = *ljob + 27;
+ i__3[6] = 1, a__2[6] = ch__5;
+ s_cat(ch__3, a__2, i__3, &c__7, (ftnlen)12);
+ do_fio(&c__1, ch__3, (ftnlen)12);
+ e_wsfe();
+
+/* Text header */
+
+/* * //char(0)//char(255)//char(1)//char(ljob+26) */
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1729);
+ do_fio(&c__1, "\"MTrk\"", (ftnlen)6);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&ib1, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&ib0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__255, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
+ i__2 = *ljob + 27;
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+ s_wsfe(&io___1730);
+ do_fio(&c__1, jobname, (*ljob));
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1731);
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = "\"";
+ i__4[1] = *ljob, a__3[1] = jobname;
+ i__4[2] = 1, a__3[2] = "\"";
+ s_cat(ch__6, a__3, i__4, &c__3, (ftnlen)46);
+ do_fio(&c__1, ch__6, *ljob + 2);
+ e_wsfe();
+ }
+
+/* (separate writes are needed to defeat compiler BUG!!!) */
+
+/* write(51,'(a,$)')'.mid, produced by PMX 2.30' */
+ s_wsfe(&io___1732);
+/* Writing concatenation */
+ i__5[0] = 22, a__4[0] = ".mid, produced by PMX ";
+ i__5[1] = 5, a__4[1] = comver_1.versionc;
+ s_cat(ch__7, a__4, i__5, &c__2, (ftnlen)27);
+ do_fio(&c__1, ch__7, (ftnlen)27);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1733);
+/* Writing concatenation */
+ i__4[0] = 23, a__3[0] = "\".mid, produced by PMX ";
+ i__4[1] = 5, a__3[1] = comver_1.versionc;
+ i__4[2] = 1, a__3[2] = "\"";
+ s_cat(ch__8, a__3, i__4, &c__3, (ftnlen)29);
+ do_fio(&c__1, ch__8, (ftnlen)29);
+ e_wsfe();
+ }
+
+/* Conductor event data: Loop over sections. */
+
+ i__2 = commmac_1.nmidsec;
+ for (isec = 1; isec <= i__2; ++isec) {
+ if (isec < commmac_1.nmidsec) {
+ mend = commmac_1.msecend[commidi_1.numchan + isec * 25 - 25];
+ } else {
+ mend = commidi_1.imidi[commidi_1.numchan];
+ }
+ i__6 = mend;
+ for (i__ = commmac_1.msecstrt[commidi_1.numchan + isec * 25 - 25];
+ i__ <= i__6; ++i__) {
+ s_wsfe(&io___1736);
+ *(unsigned char *)&ch__2[0] = (char) commidi_1.mmidi[
+ commidi_1.numchan + i__ * 25 - 25];
+ do_fio(&c__1, ch__2, (ftnlen)1);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1737);
+ do_fio(&c__1, (char *)&commidi_1.mmidi[commidi_1.numchan +
+ i__ * 25 - 25], (ftnlen)sizeof(shortint));
+ e_wsfe();
+ }
+/* L17: */
+ }
+/* L16: */
+ }
+
+/* And close out the time sig / tempo track. */
+
+ s_wsfe(&io___1738);
+ do_fio(&c__1, "\000\377/\000", (ftnlen)4);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1739);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__255, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__47, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+
+/* Loop over track for each voice: The following sets up iv. */
+
+ all_1.iv = all_1.nv;
+ if (commidi_1.twoline[all_1.nv - 1]) {
+ kv = 2;
+ } else {
+ kv = 1;
+ }
+
+/* Count up staves(iv,nv) vs instruments. Store instr# for iv in iinsiv(iv) */
+
+ nstaves = 0;
+ ivt = 0;
+ for (iinst = 1; iinst <= 24; ++iinst) {
+ nstaves += comnvi_1.nsperi[iinst - 1];
+ i__2 = comnvi_1.nsperi[iinst - 1];
+ for (ivtt = 1; ivtt <= i__2; ++ivtt) {
+ ++ivt;
+ iinsiv[ivt - 1] = (shortint) iinst;
+/* L13: */
+ }
+ if (nstaves == all_1.nv) {
+ goto L14;
+ }
+/* L12: */
+ }
+ s_wsle(&io___1746);
+ do_lio(&c__9, &c__1, "Screwup!", (ftnlen)8);
+ e_wsle();
+ stop1_();
+L14:
+
+ i__2 = commidi_1.numchan - 1;
+ for (icm = 0; icm <= i__2; ++icm) {
+
+/* Get the number of bytes in the data stream */
+
+ ndata = commidi_1.imidi[icm] + 1 - commmac_1.msecstrt[icm +
+ commmac_1.nmidsec * 25 - 25];
+ i__6 = commmac_1.nmidsec - 1;
+ for (isec = 1; isec <= i__6; ++isec) {
+ ndata = ndata + 1 + commmac_1.msecend[icm + isec * 25 - 25] -
+ commmac_1.msecstrt[icm + isec * 25 - 25];
+/* L11: */
+ }
+
+/* c Add 3 (for instrum) plus 4 (for closing) to byte count, */
+/* Add 3 for instrum, 4 for bal, plus 4 (for closing) to byte count, */
+
+/* ndata = ndata+7 */
+ ndata += 11;
+
+/* Add 4+lnam(iinsiv(iv)) if lnam>0 , */
+
+ if (comtop_1.lnam[iinsiv[all_1.iv - 1] - 1] > 0) {
+ ndata = ndata + 4 + comtop_1.lnam[iinsiv[all_1.iv - 1] - 1];
+ }
+
+/* Separate total byte counts into 4 bytes */
+
+ for (ibyte = 1; ibyte <= 4; ++ibyte) {
+ if (ndata > 0) {
+ *(unsigned char *)&byteq[ibyte - 1] = (char) (ndata % 256);
+ ndata = lbit_shift(ndata, (ftnlen)-8);
+ } else {
+ *(unsigned char *)&byteq[ibyte - 1] = '\0';
+ }
+/* L2: */
+ }
+
+/* Now write front stuff for this track */
+
+ s_wsfe(&io___1750);
+/* Writing concatenation */
+ i__7[0] = 4, a__5[0] = "MTrk";
+ i__7[1] = 1, a__5[1] = byteq + 3;
+ i__7[2] = 1, a__5[2] = byteq + 2;
+ i__7[3] = 1, a__5[3] = byteq + 1;
+ i__7[4] = 1, a__5[4] = byteq;
+ i__7[5] = 1, a__5[5] = "\000";
+ *(unsigned char *)&ch__2[0] = icmm[icm] + 192;
+ i__7[6] = 1, a__5[6] = ch__2;
+ *(unsigned char *)&ch__4[0] = commidi_1.midinst[all_1.iv - 1];
+ i__7[7] = 1, a__5[7] = ch__4;
+ i__7[8] = 1, a__5[8] = "\000";
+ *(unsigned char *)&ch__5[0] = icmm[icm] + 176;
+ i__7[9] = 1, a__5[9] = ch__5;
+ i__7[10] = 1, a__5[10] = "\n";
+ *(unsigned char *)&ch__10[0] = commvel_1.midbc[icm];
+ i__7[11] = 1, a__5[11] = ch__10;
+ s_cat(ch__9, a__5, i__7, &c__12, (ftnlen)15);
+ do_fio(&c__1, ch__9, (ftnlen)15);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1751);
+ do_fio(&c__1, "icm=", (ftnlen)4);
+ do_fio(&c__1, (char *)&icm, (ftnlen)sizeof(integer));
+ do_fio(&c__1, " \"MTrk\"", (ftnlen)7);
+ i__6 = *(unsigned char *)&byteq[3];
+ do_fio(&c__1, (char *)&i__6, (ftnlen)sizeof(integer));
+ i__8 = *(unsigned char *)&byteq[2];
+ do_fio(&c__1, (char *)&i__8, (ftnlen)sizeof(integer));
+ i__9 = *(unsigned char *)&byteq[1];
+ do_fio(&c__1, (char *)&i__9, (ftnlen)sizeof(integer));
+ i__10 = *(unsigned char *)&byteq[0];
+ do_fio(&c__1, (char *)&i__10, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ i__11 = icmm[icm] + 192;
+ do_fio(&c__1, (char *)&i__11, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&commidi_1.midinst[all_1.iv - 1], (ftnlen)
+ sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ i__12 = icmm[icm] + 176;
+ do_fio(&c__1, (char *)&i__12, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__10, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&commvel_1.midbc[icm], (ftnlen)sizeof(
+ integer));
+ e_wsfe();
+ }
+ if (comtop_1.lnam[iinsiv[all_1.iv - 1] - 1] > 0) {
+
+/* Add instrument name as sequence name */
+
+ s_wsfe(&io___1752);
+/* Writing concatenation */
+ i__5[0] = 3, a__4[0] = "\000\377\003";
+ *(unsigned char *)&ch__2[0] = comtop_1.lnam[iinsiv[all_1.iv - 1]
+ - 1];
+ i__5[1] = 1, a__4[1] = ch__2;
+ s_cat(ch__11, a__4, i__5, &c__2, (ftnlen)4);
+ do_fio(&c__1, ch__11, (ftnlen)4);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1753);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__255, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__3, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&comtop_1.lnam[iinsiv[all_1.iv - 1] - 1]
+ , (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+ s_wsfe(&io___1754);
+ do_fio(&c__1, comtop_1.inameq + (iinsiv[all_1.iv - 1] - 1) * 79,
+ comtop_1.lnam[iinsiv[all_1.iv - 1] - 1]);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1755);
+/* Writing concatenation */
+ i__4[0] = 1, a__3[0] = "\"";
+ i__4[1] = comtop_1.lnam[iinsiv[all_1.iv - 1] - 1], a__3[1] =
+ comtop_1.inameq + (iinsiv[all_1.iv - 1] - 1) * 79;
+ i__4[2] = 1, a__3[2] = "\"";
+ s_cat(ch__12, a__3, i__4, &c__3, (ftnlen)81);
+ do_fio(&c__1, ch__12, comtop_1.lnam[iinsiv[all_1.iv - 1] - 1]
+ + 2);
+ e_wsfe();
+ }
+ }
+ s_wsfi(&io___1757);
+ do_fio(&c__1, (char *)&icm, (ftnlen)sizeof(integer));
+ e_wsfi();
+ s_wsfi(&io___1759);
+ do_fio(&c__1, (char *)&commidi_1.midinst[all_1.iv - 1], (ftnlen)
+ sizeof(integer));
+ e_wsfi();
+/* Writing concatenation */
+ i__1[0] = 16, a__1[0] = "MIDI instrument ";
+ i__1[1] = 2, a__1[1] = tempoq;
+ i__1[2] = 4, a__1[2] = " is ";
+ i__1[3] = 3, a__1[3] = instq;
+ s_cat(ch__13, a__1, i__1, &c__4, (ftnlen)25);
+ printl_(ch__13, (ftnlen)25);
+
+/* Notes: Loop over sections. */
+
+ i__6 = commmac_1.nmidsec;
+ for (isec = 1; isec <= i__6; ++isec) {
+ if (isec < commmac_1.nmidsec) {
+ mend = commmac_1.msecend[icm + isec * 25 - 25];
+ } else {
+ mend = commidi_1.imidi[icm];
+ }
+ i__8 = mend;
+ for (i__ = commmac_1.msecstrt[icm + isec * 25 - 25]; i__ <= i__8;
+ ++i__) {
+ s_wsfe(&io___1760);
+ *(unsigned char *)&ch__2[0] = (char) commidi_1.mmidi[icm +
+ i__ * 25 - 25];
+ do_fio(&c__1, ch__2, (ftnlen)1);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1761);
+ do_fio(&c__1, (char *)&commidi_1.mmidi[icm + i__ * 25 -
+ 25], (ftnlen)sizeof(shortint));
+ e_wsfe();
+ }
+/* L10: */
+ }
+/* L9: */
+ }
+
+/* Closing 4 bytes */
+
+ s_wsfe(&io___1762);
+/* Writing concatenation */
+ chax_(ch__2, (ftnlen)1, &c__0);
+ i__1[0] = 1, a__1[0] = ch__2;
+ i__1[1] = 1, a__1[1] = "\377";
+ i__1[2] = 1, a__1[2] = "/";
+ i__1[3] = 1, a__1[3] = "\000";
+ s_cat(ch__11, a__1, i__1, &c__4, (ftnlen)4);
+ do_fio(&c__1, ch__11, (ftnlen)4);
+ e_wsfe();
+ if (commidi_1.debugmidi) {
+ s_wsfe(&io___1763);
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__255, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__47, (ftnlen)sizeof(integer));
+ do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+ if (kv == 2) {
+ kv = 1;
+ } else if (all_1.iv == 1) {
+ goto L5;
+ } else {
+ --all_1.iv;
+ if (commidi_1.twoline[all_1.iv - 1]) {
+ kv = 2;
+ }
+ }
+L5:
+ ;
+ }
+ s_wsfe(&io___1764);
+ do_fio(&c__1, "Bytes used:", (ftnlen)11);
+ i__2 = commidi_1.numchan;
+ for (icm = 0; icm <= i__2; ++icm) {
+ do_fio(&c__1, (char *)&commidi_1.imidi[icm], (ftnlen)sizeof(integer));
+ }
+ e_wsfe();
+ s_wsfe(&io___1765);
+ do_fio(&c__1, "Bytes used:", (ftnlen)11);
+ i__2 = commidi_1.numchan;
+ for (icm = 0; icm <= i__2; ++icm) {
+ do_fio(&c__1, (char *)&commidi_1.imidi[icm], (ftnlen)sizeof(integer));
+ }
+ e_wsfe();
+ cl__1.cerr = 0;
+ cl__1.cunit = 51;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ if (commidi_1.debugmidi) {
+ cl__1.cerr = 0;
+ cl__1.cunit = 52;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ }
+ return 0;
+} /* writemidi_ */
+
+/* Subroutine */ int writesetsign_(integer *ninsttrans, integer *iinsttrans,
+ integer *itranskey, logical *flag__)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer i__1, i__2[2], i__3;
+ char ch__1[1], ch__2[80];
+ icilist ici__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ , s_wsfe(cilist *), e_wsfe(void);
+
+ /* Local variables */
+ static integer i__;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer lnote;
+ static char notexq[79];
+
+ /* Fortran I/O blocks */
+ static cilist io___1769 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* Assumes notexq is blank */
+
+ /* Parameter adjustments */
+ --itranskey;
+ --iinsttrans;
+
+ /* Function Body */
+ i__1 = *ninsttrans;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 7, a__1[1] = "setsign";
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ lnote = 8;
+ if (iinsttrans[i__] < 10) {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__3 = iinsttrans[i__] + 48;
+ chax_(ch__1, (ftnlen)1, &i__3);
+ i__2[1] = 1, a__1[1] = ch__1;
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++lnote;
+ } else {
+ i__3 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 4 - i__3;
+ ici__1.iciunit = notexq + i__3;
+ ici__1.icifmt = "(a1,i2,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, "{", (ftnlen)1);
+ do_fio(&c__1, (char *)&iinsttrans[i__], (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ lnote += 4;
+ }
+ if (itranskey[i__] < 0) {
+ i__3 = lnote;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = lnote + 4 - i__3;
+ ici__1.iciunit = notexq + i__3;
+ ici__1.icifmt = "(a1,i2,a1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, "{", (ftnlen)1);
+ do_fio(&c__1, (char *)&itranskey[i__], (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ lnote += 4;
+ } else {
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__3 = itranskey[i__] + 48;
+ chax_(ch__1, (ftnlen)1, &i__3);
+ i__2[1] = 1, a__1[1] = ch__1;
+ s_cat(notexq, a__1, i__2, &c__2, (ftnlen)79);
+ ++lnote;
+ }
+ s_wsfe(&io___1769);
+/* Writing concatenation */
+ i__2[0] = lnote, a__1[0] = notexq;
+ i__2[1] = 1, a__1[1] = "%";
+ s_cat(ch__2, a__1, i__2, &c__2, (ftnlen)80);
+ do_fio(&c__1, ch__2, lnote + 1);
+ e_wsfe();
+/* L1: */
+ }
+ *flag__ = FALSE_;
+ return 0;
+} /* writesetsign_ */
+
+/* Subroutine */ int writflot_(real *x, char *notexq, integer *lenline,
+ ftnlen notexq_len)
+{
+ /* System generated locals */
+ integer i__1;
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ ;
+
+ if (*x < .95f) {
+ i__1 = *lenline;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lenline + 2 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f2.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*x), (ftnlen)sizeof(real));
+ e_wsfi();
+ *lenline += 2;
+ } else if (*x < 9.95f) {
+ i__1 = *lenline;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lenline + 3 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f3.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*x), (ftnlen)sizeof(real));
+ e_wsfi();
+ *lenline += 3;
+ } else {
+ i__1 = *lenline;
+ ici__1.icierr = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = *lenline + 4 - i__1;
+ ici__1.iciunit = notexq + i__1;
+ ici__1.icifmt = "(f4.1)";
+ s_wsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*x), (ftnlen)sizeof(real));
+ e_wsfi();
+ *lenline += 4;
+ }
+ return 0;
+} /* writflot_ */
+
+/* Subroutine */ int wsclef_(integer *iv, integer *ninow, char *clefq,
+ integer *nclef, ftnlen clefq_len)
+{
+ /* System generated locals */
+ address a__1[3], a__2[2];
+ integer i__1, i__2[3], i__3[2], i__4;
+ char ch__1[1], ch__2[1], ch__3[9], ch__4[22];
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), e_wsle(void), do_lio(integer *, integer *, char
+ *, ftnlen);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer s_wsfi(icilist *), do_fio(integer *, char *, ftnlen), e_wsfi(void)
+ , s_wsfe(cilist *), e_wsfe(void);
+
+ /* Local variables */
+ static integer iv1, iv2, iiv;
+ extern /* Character */ VOID chax_(char *, ftnlen, integer *);
+ static integer ltem;
+ static char temq[20];
+ extern /* Subroutine */ int stop1_(void);
+ static integer iinst;
+ extern integer numclef_(char *, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___1772 = { 0, 6, 0, 0, 0 };
+ static cilist io___1773 = { 0, 6, 0, 0, 0 };
+ static icilist io___1777 = { 0, temq, 0, "(a9,i2,a1)", 20, 1 };
+ static cilist io___1778 = { 0, 11, 0, "(a)", 0 };
+ static cilist io___1780 = { 0, 11, 0, "(a)", 0 };
+
+
+
+/* Writes \setclef for instrument containing voice iv */
+
+ /* Parameter adjustments */
+ --clefq;
+
+ /* Function Body */
+ if (*nclef < 7) {
+ i__1 = *nclef + 48;
+ chax_(ch__1, (ftnlen)1, &i__1);
+ *(unsigned char *)&clefq[*iv] = *(unsigned char *)&ch__1[0];
+ } else {
+ *(unsigned char *)&clefq[*iv] = '9';
+ }
+ if (! comlast_1.islast) {
+ return 0;
+ }
+ iv1 = 1;
+ i__1 = *ninow;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+ if (*iv < iv1 + comnvi_1.nspern[iinst - 1]) {
+ goto L2;
+ }
+ iv1 += comnvi_1.nspern[iinst - 1];
+/* L1: */
+ }
+ s_wsle(&io___1772);
+ e_wsle();
+ s_wsle(&io___1773);
+ do_lio(&c__9, &c__1, "Should not be here in wsclef!", (ftnlen)29);
+ e_wsle();
+ stop1_();
+L2:
+ iv2 = iv1 + comnvi_1.nspern[iinst - 1] - 1;
+ if (iinst < 10) {
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__2[0] = 1, a__1[0] = ch__1;
+ i__2[1] = 7, a__1[1] = "setclef";
+ i__1 = iinst + 48;
+ chax_(ch__2, (ftnlen)1, &i__1);
+ i__2[2] = 1, a__1[2] = ch__2;
+ s_cat(temq, a__1, i__2, &c__3, (ftnlen)20);
+ ltem = 9;
+ } else {
+ s_wsfi(&io___1777);
+/* Writing concatenation */
+ chax_(ch__1, (ftnlen)1, &c__92);
+ i__3[0] = 1, a__2[0] = ch__1;
+ i__3[1] = 8, a__2[1] = "setclef{";
+ s_cat(ch__3, a__2, i__3, &c__2, (ftnlen)9);
+ do_fio(&c__1, ch__3, (ftnlen)9);
+ do_fio(&c__1, (char *)&iinst, (ftnlen)sizeof(integer));
+ do_fio(&c__1, "}", (ftnlen)1);
+ e_wsfi();
+ ltem = 12;
+ }
+ if (iv1 == iv2) {
+ s_wsfe(&io___1778);
+/* Writing concatenation */
+ i__2[0] = ltem, a__1[0] = temq;
+ i__2[1] = 1, a__1[1] = clefq + *iv;
+ i__2[2] = 1, a__1[2] = "%";
+ s_cat(ch__4, a__1, i__2, &c__3, (ftnlen)22);
+ do_fio(&c__1, ch__4, ltem + 2);
+ e_wsfe();
+ } else {
+/* Writing concatenation */
+ i__3[0] = ltem, a__2[0] = temq;
+ i__3[1] = 1, a__2[1] = "{";
+ s_cat(temq, a__2, i__3, &c__2, (ftnlen)20);
+ ++ltem;
+ i__1 = iv2;
+ for (iiv = iv1; iiv <= i__1; ++iiv) {
+/* Writing concatenation */
+ i__3[0] = ltem, a__2[0] = temq;
+ i__4 = numclef_(clefq + iiv, (ftnlen)1) + 48;
+ chax_(ch__1, (ftnlen)1, &i__4);
+ i__3[1] = 1, a__2[1] = ch__1;
+ s_cat(temq, a__2, i__3, &c__2, (ftnlen)20);
+ ++ltem;
+/* L3: */
+ }
+ s_wsfe(&io___1780);
+/* Writing concatenation */
+ i__3[0] = ltem, a__2[0] = temq;
+ i__3[1] = 2, a__2[1] = "}%";
+ s_cat(ch__4, a__2, i__3, &c__2, (ftnlen)22);
+ do_fio(&c__1, ch__4, ltem + 2);
+ e_wsfe();
+ }
+ return 0;
+} /* wsclef_ */
+
+/* Main program alias */ int pmxab_ () { MAIN__ (); return 0; }
diff --git a/Build/source/utils/pmx/pmx-2.6.18/scor2prt.c b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.c
new file mode 100644
index 00000000000..9dd04f65961
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.c
@@ -0,0 +1,2775 @@
+/* -- translated by f2c (version 20031025).
+ You must link the resulting object file with libf2c:
+ on Microsoft Windows system, link with libf2c.lib;
+ on Linux or Unix systems, link with .../path/to/libf2c.a -lm
+ or, if you install libf2c.a in a standard place, with -lf2c -lm
+ -- in that order, at the end of the command line, as in
+ cc *.o -lf2c -lm
+ Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
+
+ http://www.netlib.org/f2c/libf2c.zip
+*/
+
+#include "f2c.h"
+
+/* Common Block Declarations */
+
+struct all_1_ {
+ integer noinow, iorig[24], noinst;
+ logical insetup, replacing;
+ integer instnum[24];
+ logical botv[24];
+ integer nvi[24], nsyst, nvnow;
+};
+
+#define all_1 (*(struct all_1_ *) &all_)
+
+/* Initialized data */
+
+struct {
+ integer e_1;
+ integer fill_2[24];
+ integer e_3;
+ integer fill_4[26];
+ logical e_5[24];
+ integer e_6[24];
+ integer fill_7[2];
+ } all_ = { 24, {0}, 24, {0}, FALSE_, FALSE_, FALSE_, FALSE_, FALSE_,
+ FALSE_, FALSE_, FALSE_, FALSE_, FALSE_, FALSE_, FALSE_, FALSE_,
+ FALSE_, FALSE_, FALSE_, FALSE_, FALSE_, FALSE_, FALSE_, FALSE_,
+ FALSE_, FALSE_, FALSE_, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+
+
+/* Table of constant values */
+
+static integer c__9 = 9;
+static integer c__1 = 1;
+static integer c__27 = 27;
+static integer c__2 = 2;
+static integer c__128 = 128;
+static integer c_n1 = -1;
+static integer c__0 = 0;
+static integer c__3 = 3;
+static integer c__4 = 4;
+static integer c__5 = 5;
+static integer c__79 = 79;
+static integer c__125 = 125;
+
+/* ccccccccccccccccccccccccc */
+/* c */
+/* c scor2prt 7/24/11 for PMX 2.615 */
+/* ccccccccccccccccccccccccc */
+/* This program, developed by Don Simons (dsimons@roadrunner.com), is */
+/* part of the PMX distribution, PMX is a preprocessor for MusiXTeX. In concert */
+/* with MusiXTeX and TeX, the purpose of PMX is to allow the user to create */
+/* high-quality typeset musical scores by including a sequence of PMX commands */
+/* in an ASCII input file. Scor2prt is an auxiliary program that creates PMX */
+/* input files for individual parts from the PMX input file for the score. */
+
+/* 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 3 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/>. */
+
+
+/* 7/18/11 */
+/* Start to fix up for AS..., also Ki was done a little earlier. */
+/* 7/5/10 */
+/* Modify Manual to explain extended hex numbering for part-specific comments */
+/* 5/16/10 */
+/* Extend part-specific comments for up to 24 parts (subroutine chkcom) */
+/* Allow files 11-34 for parts */
+/* Change file 30 to 40 */
+/* 6/1/08 es2p */
+/* noimax = 24 */
+
+/* To do */
+/* Override fracindent, musicsize? */
+/* Deal with midbar R? */
+/* 2/29/04 */
+/* Check for special character being in quoted string. */
+/* 10/20/02 PMX 2.407 */
+/* Interpret AN[n]"[used-defined-part-file-name]" */
+/* 1/21/02 */
+/* Deals with rm in multiple parts. */
+/* s2p15 */
+/* Get right non-tex index even if there's "\" inside D"..." */
+/* s2p14 */
+/* 10/29/00 fix transfer to parts of negative mtrdnp */
+/* 4/29/00 screen for "%%" followed by "T" */
+/* Restore change from "Version 2.1a, 21 Dec" */
+/* s2p13 */
+/* Allow whole-bar double-whole rests. */
+/* Bypass MIDI commands "I..." achar(10)="I" */
+/* s2p12 */
+/* Let %ablabla ... %cblabla represent pmx input for parts 10-12. But %?blabla */
+/* only taken as such if ? represents a hex digit .le. noinst, otherwise it's */
+/* a simple comment. This lessens incompatibility. */
+/* In subroutine mbrest, properly open parts 10-12 if needed */
+/* s2p11 */
+/* Ignore leading blanks */
+/* Fix undefined linelength in mbrest at very end of comments. */
+/* s2p10 */
+/* Fix non-transfer of P..c" " */
+/* Allow "%%" and "%"n anywhere */
+/* Version 1.43 */
+/* Fix bug with P in TeX string. */
+/* Ignore shifted whole-bar rests when consolidating whole-bar rests */
+/* Copy type 4 TeX into all parts. */
+/* Deal with XB and XP. */
+/* Permit transfer of blank line into parts */
+/* Change staves/inst in 'M' command. */
+/* Arbitrary staves/inst. */
+/* Recognize m1/2/3/4 syntax. */
+/* Enable comment and one-voice syntax in instrument names */
+
+/* Changes since 1.1 */
+/* Deal with saved macros. */
+/* Revise setup readin, to admit comments. */
+/* Do not copy 'X' into parts */
+
+/* ccccccccccccccccccccccccccccccccccccccccccccccc */
+/* Main program */ int MAIN__(void)
+{
+ /* Initialized data */
+
+ static char achar[1*10] = "P" "m" "V" "R" "A" "h" "w" "K" "M" "I";
+
+ /* System generated locals */
+ address a__1[2], a__2[3];
+ integer i__1, i__2, i__3[2], i__4[3];
+ char ch__1[44], ch__2[31], ch__3[4], ch__4[1], ch__5[2], ch__6[131];
+ cilist ci__1;
+ icilist ici__1;
+ olist o__1;
+ cllist cl__1;
+ alist al__1;
+ inlist ioin__1;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void), s_rsfe(cilist *), do_fio(integer *, char *, ftnlen),
+ e_rsfe(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ integer i_indx(char *, char *, ftnlen, ftnlen);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen), s_cat(char *,
+ char **, integer *, integer *, ftnlen);
+ integer f_inqu(inlist *), f_open(olist *), s_cmp(char *, char *, ftnlen,
+ ftnlen), f_back(alist *), s_wsfe(cilist *), e_wsfe(void), s_rsfi(
+ icilist *), e_rsfi(void), f_clos(cllist *);
+
+ /* Local variables */
+ extern /* Subroutine */ int oddquotesbefore_(char *, integer *, logical *,
+ ftnlen);
+ static logical clefpend;
+ static real xmtrnum0;
+ static char templine[128];
+ extern /* Subroutine */ int allparts_(char *, integer *, ftnlen);
+ static integer musicsize, ia, ib, ic, iv;
+ static char sq[1];
+ static integer nv, idxendname;
+ static real fracindent;
+ static integer ibb, len, ivq, iend, nchk, idxa, ljob;
+ static char line[128];
+ static integer isig, locp, idxq, ndxm, idxs, inst, idxq2, idxstartname;
+ extern integer iargc_(void);
+ static integer kvend;
+ extern /* Subroutine */ int zapbl_(char *, integer *, ftnlen);
+ static integer itemp, iinst, ntinx;
+ static logical oneof2;
+ extern doublereal readin_(char *, integer *, integer *, ftnlen);
+ extern /* Subroutine */ int chkcom_(char *, ftnlen), getarg_(integer *,
+ char *, ftnlen);
+ static integer npages;
+ static char holdln[128];
+ static integer iudpfn;
+ static logical yesodd;
+ static integer ludpfn[24];
+ static char udpfnq[128*24];
+ static integer iiinst;
+ static logical fexist;
+ static integer ivlast, mtrdnp;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ static logical frstln;
+ static integer insnow, ndxpmx, mtrnmp;
+ static logical isachar;
+ static char jobname[27];
+ static integer lenhold, lenline;
+ static char infileq[27];
+ static logical gotname;
+ static integer iccount, mtrdenl;
+ extern integer ntindex_(char *, char *, ftnlen, ftnlen);
+ static integer numargs;
+ extern /* Subroutine */ int mbrests_(integer *, char *, integer *,
+ integer *, char *, ftnlen, ftnlen);
+ static logical termrpt;
+ static integer mtrnuml;
+ static char termsym[2], instrum[128*24];
+ static integer kvstart;
+
+ /* Fortran I/O blocks */
+ static cilist io___6 = { 0, 6, 0, 0, 0 };
+ static cilist io___8 = { 0, 6, 0, 0, 0 };
+ static cilist io___9 = { 0, 6, 0, 0, 0 };
+ static cilist io___10 = { 0, 5, 0, "(a)", 0 };
+ static cilist io___13 = { 0, 6, 0, 0, 0 };
+ static cilist io___17 = { 0, 6, 0, 0, 0 };
+ static cilist io___20 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___22 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___23 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___38 = { 0, 6, 0, 0, 0 };
+ static cilist io___39 = { 0, 6, 0, 0, 0 };
+ static cilist io___40 = { 0, 6, 0, 0, 0 };
+ static cilist io___41 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___42 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___44 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___46 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___48 = { 0, 6, 0, 0, 0 };
+ static cilist io___49 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___50 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___51 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___55 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___57 = { 0, 0, 0, "(a2/a)", 0 };
+ static cilist io___59 = { 0, 10, 1, "(a)", 0 };
+ static cilist io___61 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___62 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___68 = { 0, 6, 0, 0, 0 };
+ static cilist io___69 = { 0, 6, 0, 0, 0 };
+ static cilist io___72 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___76 = { 0, 6, 0, 0, 0 };
+ static cilist io___77 = { 0, 6, 0, 0, 0 };
+ static cilist io___78 = { 0, 6, 0, 0, 0 };
+ static cilist io___81 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___83 = { 0, 6, 0, 0, 0 };
+ static cilist io___84 = { 0, 6, 0, 0, 0 };
+ static icilist io___85 = { 0, line+2, 0, "(i1)", 1, 1 };
+ static icilist io___88 = { 0, line+2, 0, "(i2)", 2, 1 };
+ static cilist io___89 = { 0, 6, 0, 0, 0 };
+ static cilist io___90 = { 0, 6, 0, 0, 0 };
+ static cilist io___97 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___102 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___103 = { 0, 0, 0, "(a)", 0 };
+
+
+ clefpend = FALSE_;
+ all_1.insetup = TRUE_;
+ all_1.replacing = FALSE_;
+ frstln = TRUE_;
+ lenhold = 0;
+ *(unsigned char *)sq = '\\';
+ s_wsle(&io___6);
+ do_lio(&c__9, &c__1, "This is scor2prt for PMX 2.615, 24 July 2011", (
+ ftnlen)44);
+ e_wsle();
+ numargs = iargc_();
+ if (numargs == 0) {
+ s_wsle(&io___8);
+ do_lio(&c__9, &c__1, "You could have entered a jobname on the comman"
+ "d line,", (ftnlen)53);
+ e_wsle();
+ s_wsle(&io___9);
+ do_lio(&c__9, &c__1, " but you may enter one now:", (ftnlen)32);
+ e_wsle();
+ s_rsfe(&io___10);
+ do_fio(&c__1, jobname, (ftnlen)27);
+ e_rsfe();
+ numargs = 1;
+ } else {
+/* call getarg(1,jobname,idum) ! May need to replace this w/ next line */
+ getarg_(&c__1, jobname, (ftnlen)27);
+ }
+ ljob = lenstr_(jobname, &c__27, (ftnlen)27);
+ if (ljob == 0) {
+ s_wsle(&io___13);
+ do_lio(&c__9, &c__1, "No was jobname entered. Restart and try again.",
+ (ftnlen)46);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+
+/* Strip ".pmx" if necessary */
+
+/* Computing MAX */
+ i__1 = i_indx(jobname, ".pmx", (ftnlen)27, (ftnlen)4), i__2 = i_indx(
+ jobname, ".PMX", (ftnlen)27, (ftnlen)4);
+ ndxpmx = max(i__1,i__2);
+ if (ndxpmx > 0) {
+ s_copy(jobname, jobname, (ftnlen)27, ndxpmx - 1);
+ ljob += -4;
+ }
+
+/* Check for existence of input file */
+
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".pmx";
+ s_cat(infileq, a__1, i__3, &c__2, (ftnlen)27);
+ ioin__1.inerr = 0;
+ ioin__1.infilen = 27;
+ ioin__1.infile = infileq;
+ ioin__1.inex = &fexist;
+ ioin__1.inopen = 0;
+ ioin__1.innum = 0;
+ ioin__1.innamed = 0;
+ ioin__1.inname = 0;
+ ioin__1.inacc = 0;
+ ioin__1.inseq = 0;
+ ioin__1.indir = 0;
+ ioin__1.infmt = 0;
+ ioin__1.inform = 0;
+ ioin__1.inunf = 0;
+ ioin__1.inrecl = 0;
+ ioin__1.innrec = 0;
+ ioin__1.inblank = 0;
+ f_inqu(&ioin__1);
+ if (! fexist) {
+ s_wsle(&io___17);
+/* Writing concatenation */
+ i__3[0] = 17, a__1[0] = "Cannot find file ";
+ i__3[1] = 27, a__1[1] = infileq;
+ s_cat(ch__1, a__1, i__3, &c__2, (ftnlen)44);
+ do_lio(&c__9, &c__1, ch__1, (ftnlen)44);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ o__1.oerr = 0;
+ o__1.ounit = 10;
+ o__1.ofnmlen = ljob + 4;
+/* Writing concatenation */
+ i__3[0] = ljob, a__1[0] = jobname;
+ i__3[1] = 4, a__1[1] = ".pmx";
+ s_cat(ch__2, a__1, i__3, &c__2, (ftnlen)31);
+ o__1.ofnm = ch__2;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+
+/* Open all instrument files now for allparts stuff. Later disgard those >nv */
+
+ for (iv = 1; iv <= 24; ++iv) {
+ all_1.iorig[iv - 1] = iv;
+ o__1.oerr = 0;
+ o__1.ounit = iv + 10;
+ o__1.ofnm = 0;
+ o__1.orl = 0;
+ o__1.osta = "SCRATCH";
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+ ludpfn[iv - 1] = 0;
+/* L19: */
+ }
+ s_rsfe(&io___20);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ chkcom_(line, (ftnlen)128);
+ if (s_cmp(line, "---", (ftnlen)3, (ftnlen)3) == 0) {
+ allparts_(line, &c__128, (ftnlen)128);
+L31:
+ s_rsfe(&io___22);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ if (s_cmp(line, "---", (ftnlen)3, (ftnlen)3) != 0) {
+ allparts_(line, &c__128, (ftnlen)128);
+ goto L31;
+ }
+ allparts_(line, &c__128, (ftnlen)128);
+ s_rsfe(&io___23);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ chkcom_(line, (ftnlen)128);
+ }
+ iccount = 0;
+ nv = readin_(line, &iccount, &c__1, (ftnlen)128) + .1f;
+ all_1.noinst = readin_(line, &iccount, &c__2, (ftnlen)128) + .1f;
+ if (all_1.noinst > 0) {
+ all_1.nvi[0] = nv - all_1.noinst + 1;
+ } else {
+ all_1.noinst = 1 - all_1.noinst;
+ i__1 = all_1.noinst;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+ all_1.nvi[iinst - 1] = readin_(line, &iccount, &c_n1, (ftnlen)128)
+ + .1f;
+/* L21: */
+ }
+ }
+ all_1.noinow = all_1.noinst;
+ insnow = 1;
+
+/* ivlast is last iv in current inst. instnum(iv) is iinst for current voice. */
+
+ ivlast = all_1.nvi[0];
+ i__1 = nv;
+ for (iv = 1; iv <= i__1; ++iv) {
+ all_1.instnum[iv - 1] = insnow;
+ if (iv == ivlast) {
+ if (iv < nv) {
+ all_1.botv[iv] = TRUE_;
+ }
+
+/* The previous stmt will set botv true only for bot voice of iinst>1. It is */
+/* used when writing termrpts, but the one in voice one is handled differently, */
+/* so botv(1) is left .false. */
+
+ if (insnow < all_1.noinst) {
+ ++insnow;
+ ivlast += all_1.nvi[insnow - 1];
+ }
+ }
+/* L22: */
+ }
+ mtrnuml = readin_(line, &iccount, &c__0, (ftnlen)128) + .1f;
+ mtrdenl = readin_(line, &iccount, &c__0, (ftnlen)128) + .1f;
+ mtrnmp = readin_(line, &iccount, &c__0, (ftnlen)128) + .1f;
+ mtrdnp = readin_(line, &iccount, &c__0, (ftnlen)128) + .1f;
+ xmtrnum0 = readin_(line, &iccount, &c__0, (ftnlen)128);
+ isig = readin_(line, &iccount, &c__0, (ftnlen)128) + .1f;
+ npages = readin_(line, &iccount, &c__3, (ftnlen)128) + .1f;
+ all_1.nsyst = readin_(line, &iccount, &c__0, (ftnlen)128) + .1f;
+ musicsize = readin_(line, &iccount, &c__4, (ftnlen)128) + .1f;
+ fracindent = readin_(line, &iccount, &c__5, (ftnlen)128);
+ if (npages == 0) {
+ s_wsle(&io___38);
+ do_lio(&c__9, &c__1, "You entered npages=0, which means nsyst is not"
+ " the total number", (ftnlen)63);
+ e_wsle();
+ s_wsle(&io___39);
+ do_lio(&c__9, &c__1, "of systems. Scor2prt has to know the total nu"
+ "mber of systems.", (ftnlen)62);
+ e_wsle();
+ s_wsle(&io___40);
+ do_lio(&c__9, &c__1, "Please set npages and nsyst to their real valu"
+ "es.", (ftnlen)49);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+
+/* Must leave insetup=.true. else could bypass ALL instrument names. */
+
+ s_rsfe(&io___41);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ chkcom_(line, (ftnlen)128);
+ al__1.aerr = 0;
+ al__1.aunit = 10;
+ f_back(&al__1);
+
+/* Normally this puts pointer at start of line with 1st inst name */
+/* Check if prior line was "%%" */
+
+ al__1.aerr = 0;
+ al__1.aunit = 10;
+ f_back(&al__1);
+ s_rsfe(&io___42);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ if (s_cmp(line, "%%", (ftnlen)2, (ftnlen)2) == 0) {
+ al__1.aerr = 0;
+ al__1.aunit = 10;
+ f_back(&al__1);
+ }
+ i__1 = all_1.noinst;
+ for (iv = 1; iv <= i__1; ++iv) {
+ gotname = FALSE_;
+L16:
+ s_rsfe(&io___44);
+ do_fio(&c__1, instrum + (iv - 1 << 7), (ftnlen)128);
+ e_rsfe();
+ if (s_cmp(instrum + (iv - 1 << 7), "%%", (ftnlen)2, (ftnlen)2) == 0) {
+ s_rsfe(&io___46);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ goto L16;
+ } else if (*(unsigned char *)&instrum[(iv - 1) * 128] == '%') {
+ ivq = *(unsigned char *)&instrum[(iv - 1 << 7) + 1] - 48;
+ if (ivq != iv) {
+
+/* It's really a comment. Copy to parts, then get another trial name. */
+
+ allparts_(instrum + (iv - 1 << 7), &c__128, (ftnlen)128);
+ goto L16;
+ } else {
+ s_copy(line, instrum + ((iv - 1 << 7) + 2), (ftnlen)128, (
+ ftnlen)126);
+ s_copy(instrum + (iv - 1 << 7), line, (ftnlen)128, (ftnlen)
+ 128);
+ gotname = TRUE_;
+ }
+ } else {
+ gotname = TRUE_;
+ }
+/* c */
+/* c The following checks for macro that write original C-clef as part of */
+/* c instrument name. See pmx.tex */
+/* c */
+/* if (index(instrum(iv),'namewpc') .eq. 0) then */
+/* write(10+iv,'(a)')' ' */
+/* else */
+/* inm1 = index(instrum(iv),'{')+1 */
+/* inm2 = index(instrum(iv),'}')-1 */
+/* read(instrum(iv)(inm2+2:inm2+8),'(i1,4x,2i1)')ilev,iy1,iy2 */
+/* write(10+iv,'(a)')sq//'namewpc{}'//char(ilev+48)//'{20}'// */
+/* * char(iy1+49)//char(iy2+49) */
+/* instrum(iv) = instrum(iv)(inm1:inm2) */
+/* end if */
+ if (! gotname) {
+ s_wsle(&io___48);
+ do_lio(&c__9, &c__1, "You must provide a replacement instrument "
+ "name", (ftnlen)46);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ io___49.ciunit = iv + 10;
+ s_wsfe(&io___49);
+ do_fio(&c__1, " ", (ftnlen)1);
+ e_wsfe();
+/* L14: */
+ }
+ all_1.replacing = FALSE_;
+ all_1.nvnow = nv;
+
+/* Clef string: Note insetup is still T, so "%%" will be treated specially */
+
+ s_rsfe(&io___50);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ chkcom_(line, (ftnlen)128);
+ if (all_1.replacing) {
+
+/* If here, we have next line after "%%", containing score's clef string */
+/* Assume all clefs are handled with instrument comments. */
+
+ s_rsfe(&io___51);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ chkcom_(line, (ftnlen)128);
+ al__1.aerr = 0;
+ al__1.aunit = 10;
+ f_back(&al__1);
+ } else {
+
+/* If here, line has the clef string in it. Handle the old way */
+
+ kvstart = 1;
+ kvend = all_1.nvi[0];
+ i__1 = all_1.noinst;
+ for (inst = 1; inst <= i__1; ++inst) {
+ ci__1.cierr = 0;
+ ci__1.ciunit = inst + 10;
+/* Writing concatenation */
+ i__4[0] = 2, a__2[0] = "(a";
+ *(unsigned char *)&ch__4[0] = all_1.nvi[inst - 1] + 48;
+ i__4[1] = 1, a__2[1] = ch__4;
+ i__4[2] = 1, a__2[2] = ")";
+ ci__1.cifmt = (s_cat(ch__3, a__2, i__4, &c__3, (ftnlen)4), ch__3);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, line + (kvstart - 1), kvend - (kvstart - 1));
+ e_wsfe();
+ if (inst < all_1.noinst) {
+ kvstart = kvend + 1;
+ kvend = kvstart + all_1.nvi[inst] - 1;
+ }
+/* L2: */
+ }
+ }
+ all_1.replacing = FALSE_;
+ all_1.insetup = FALSE_;
+
+/* *****NOTE*****This comment applies to stuff done earlier! */
+/* Before starting the big loop, copy initial instnum and staffnum stuff */
+/* into working values. Latter may change if noinst changes. Also make */
+/* list of current inst nums relative to original ones. In addition to those */
+/* below, must redo instnum(iv) and botv(iv) when we change noinst. */
+
+/* Path string: ASSUME THIS WILL NEVER BE ALTERED IN PARTS! */
+
+L18:
+ s_rsfe(&io___55);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ if (*(unsigned char *)line == '%') {
+ allparts_(line, &c__128, (ftnlen)128);
+ goto L18;
+ }
+ allparts_(line, &c__128, (ftnlen)128);
+
+/* Write instrument names. Will be blank if later part of a score. */
+
+ if (*(unsigned char *)&instrum[0] != ' ') {
+ i__1 = all_1.noinst;
+ for (iv = 1; iv <= i__1; ++iv) {
+ len = lenstr_(instrum + (iv - 1 << 7), &c__79, (ftnlen)128);
+ io___57.ciunit = iv + 10;
+ s_wsfe(&io___57);
+ do_fio(&c__1, "Ti", (ftnlen)2);
+ do_fio(&c__1, instrum + (iv - 1 << 7), len);
+ e_wsfe();
+/* L3: */
+ }
+ }
+
+/* The big loop. Except for '%%', put all comment lines in all parts. */
+/* Unless preceeded by '%%', put all type 2 or 3 TeX Strings in all parts */
+/* If a line starts with %!, put the rest of it in each part. */
+/* If a line starts with %[n], put the rest of it in part [n]. */
+/* Check for Tt, Tc, Voltas, Repeats, headers, lower texts, meter changes. */
+/* Assume they only come at top of block, except terminal repeat needs */
+/* special handling. */
+/* Check for "P"; ignore in parts. */
+/* Check for consecutive full-bar rests; if found, replace with rm[nn] */
+
+ iv = 1;
+ iinst = 1;
+ termrpt = FALSE_;
+L4:
+ i__1 = s_rsfe(&io___59);
+ if (i__1 != 0) {
+ goto L999;
+ }
+ i__1 = do_fio(&c__1, line, (ftnlen)128);
+ if (i__1 != 0) {
+ goto L999;
+ }
+ i__1 = e_rsfe();
+ if (i__1 != 0) {
+ goto L999;
+ }
+ lenline = lenstr_(line, &c__128, (ftnlen)128);
+ if (lenline == 0) {
+ goto L4;
+ }
+ zapbl_(line, &c__128, (ftnlen)128);
+ chkcom_(line, (ftnlen)128);
+ lenline = lenstr_(line, &c__128, (ftnlen)128);
+ if (lenline == 0) {
+ goto L4;
+ }
+ if (*(unsigned char *)line == 'T') {
+ allparts_(line, &c__128, (ftnlen)128);
+ s_rsfe(&io___61);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ allparts_(line, &c__128, (ftnlen)128);
+ goto L4;
+ } else /* if(complicated condition) */ {
+/* Writing concatenation */
+ i__3[0] = 1, a__1[0] = sq;
+ i__3[1] = 1, a__1[1] = sq;
+ s_cat(ch__5, a__1, i__3, &c__2, (ftnlen)2);
+ if (s_cmp(line, ch__5, (ftnlen)2, (ftnlen)2) == 0) {
+ allparts_(line, &c__128, (ftnlen)128);
+ goto L4;
+ } else if (i_indx("hl", line, (ftnlen)2, (ftnlen)1) > 0 && i_indx(
+ " +-", line + 1, (ftnlen)3, (ftnlen)1) > 0) {
+ allparts_(line, &c__128, (ftnlen)128);
+ s_rsfe(&io___62);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ allparts_(line, &c__128, (ftnlen)128);
+ goto L4;
+ } else if (iv == 1) {
+ for (ia = 1; ia <= 10; ++ia) {
+L24:
+ idxa = ntindex_(line, achar + (ia - 1), (ftnlen)128, (ftnlen)
+ 1);
+ isachar = idxa > 0;
+ if (idxa > 1) {
+ i__1 = idxa - 2;
+ isachar = s_cmp(line + i__1, " ", idxa - 1 - i__1, (
+ ftnlen)1) == 0;
+ }
+
+/* 1 2 3 4 5 6 7 8 9 10 */
+/* data achar /'P','m','V','R','A','h','w','K','M','I'/ */
+
+ if (ia == 9) {
+ i__1 = idxa;
+ isachar = isachar && s_cmp(line + i__1, "S", idxa + 1 -
+ i__1, (ftnlen)1) == 0;
+ }
+ if (isachar) {
+
+/* Check whether character is inside a quoted string by counting */
+/* how many quotes precede it in the line */
+
+ oddquotesbefore_(line, &idxa, &yesodd, (ftnlen)128);
+ if (yesodd) {
+ isachar = FALSE_;
+ }
+ }
+ if (isachar) {
+
+/* Find next blank */
+
+ for (ib = idxa + 1; ib <= 128; ++ib) {
+ if (*(unsigned char *)&line[ib - 1] == ' ') {
+ goto L7;
+ }
+/* L6: */
+ }
+ s_wsle(&io___68);
+ do_lio(&c__9, &c__1, "Problem with \"V,R,m,P,A,h,MS, o"
+ "r w\"", (ftnlen)35);
+ e_wsle();
+ s_wsle(&io___69);
+ do_lio(&c__9, &c__1, "Send files to Dr. Don at dsimons a"
+ "t roadrunner dot com", (ftnlen)54);
+ e_wsle();
+ s_stop("1", (ftnlen)1);
+L7:
+
+/* Next blank is at position ib. Later, if ia=1, must check for Pc" " ; */
+/* i.e., look for '"' between P and blank */
+
+ if (ia == 4) {
+
+/* Check for terminal repeat. Note if there's a term rpt, there can't be any */
+/* others. Also, must process repeats LAST, after m's and 'V's */
+
+ for (ic = ib + 1; ic <= 128; ++ic) {
+
+/* If any subsequent character on this line is neither blank nor "/", get out */
+
+ if (i_indx(" /", line + (ic - 1), (ftnlen)2, (
+ ftnlen)1) == 0) {
+ goto L9;
+ }
+ if (*(unsigned char *)&line[ic - 1] == '/') {
+ termrpt = TRUE_;
+ i__1 = ib - 3;
+ s_copy(termsym, line + i__1, (ftnlen)2, ib -
+ 1 - i__1);
+
+/* Process the line as if there were no "R" */
+
+ goto L10;
+ }
+/* L8: */
+ }
+
+/* +++ 060812 */
+/* If here, all chars after "R" symbol are blanks, so process the line normally, */
+/* but only IF next line is not the M-Tx line " /" */
+
+ s_rsfe(&io___72);
+ do_fio(&c__1, templine, (ftnlen)128);
+ e_rsfe();
+ if (s_cmp(templine, " /", (ftnlen)2, (ftnlen)2) != 0)
+ {
+ al__1.aerr = 0;
+ al__1.aunit = 10;
+ f_back(&al__1);
+/* and flow out */
+ } else {
+
+/* We have the M-Tx case where one line ends with R? and next is " /". Add / to the line, */
+/* and proceed as above */
+
+/* Writing concatenation */
+ i__3[0] = ib, a__1[0] = line;
+ i__3[1] = 1, a__1[1] = "/";
+ s_cat(line, a__1, i__3, &c__2, (ftnlen)128);
+ lenline += 2;
+ termrpt = TRUE_;
+ i__1 = ib - 3;
+ s_copy(termsym, line + i__1, (ftnlen)2, ib - 1 -
+ i__1);
+ goto L10;
+ }
+/* +++ 060812 */
+
+ } else if (ia == 1) {
+ idxq = ntindex_(line, "\"", (ftnlen)128, (ftnlen)1);
+ if (idxq > idxa && idxq < ib) {
+
+/* Quote is between P and next blank. Find 2nd quote, starting at the blank. */
+
+ idxq2 = ib - 1 + ntindex_(line, "\"", (ftnlen)128,
+ (ftnlen)1);
+ i__1 = idxq2;
+ if (idxq == 0 || s_cmp(line + i__1, " ", idxq2 +
+ 1 - i__1, (ftnlen)1) != 0) {
+ s_wsle(&io___76);
+ e_wsle();
+ s_wsle(&io___77);
+ do_lio(&c__9, &c__1, "Error copying P with q"
+ "uotes, idxq2:", (ftnlen)35);
+ do_lio(&c__3, &c__1, (char *)&idxq2, (ftnlen)
+ sizeof(integer));
+ e_wsle();
+ s_wsle(&io___78);
+ do_lio(&c__9, &c__1, line, (ftnlen)60);
+ e_wsle();
+ s_stop("1", (ftnlen)1);
+ }
+ ib = idxq2 + 1;
+ }
+
+/* Do not transfer P into parts. */
+
+ goto L12;
+ } else if (ia == 9) {
+
+/* Start Saving a macro. After leaving here, a symbol will be sent to all parts, */
+/* If all on this line, set ib to end and exit normally. */
+
+ i__1 = ib;
+ ndxm = i_indx(line + i__1, "M", 128 - i__1, (ftnlen)1)
+ ;
+ i__1 = ib + ndxm - 2;
+ if (ndxm > 0 && s_cmp(line + i__1, " ", ib + ndxm - 1
+ - i__1, (ftnlen)1) == 0) {
+
+/* Macro ends on this line */
+
+ ib = ib + ndxm + 1;
+ } else {
+
+/* Save leading part of current line */
+
+ lenhold = idxa - 1;
+ if (lenhold > 0) {
+ s_copy(holdln, line, (ftnlen)128, lenhold);
+ }
+
+/* Transfer rest of line */
+
+ i__1 = 129 - idxa;
+ allparts_(line + (idxa - 1), &i__1, 128 - (idxa -
+ 1));
+
+/* Read next line */
+
+L20:
+ s_rsfe(&io___81);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+
+/* Check for comment, transfer and loop if so */
+
+/* if (line(1:1) .eq.'%') then */
+L23:
+ if (*(unsigned char *)line == '%') {
+/* call allparts(line,128) */
+/* go to 20 */
+ chkcom_(line, (ftnlen)128);
+ goto L23;
+ }
+
+/* Look for terminal ' M' */
+
+ if (*(unsigned char *)line == 'M') {
+ ndxm = 1;
+ } else {
+ ndxm = i_indx(line, " M", (ftnlen)128, (
+ ftnlen)2);
+ if (ndxm > 0) {
+ ++ndxm;
+ }
+ }
+ if (ndxm > 0) {
+
+/* Set parameters, exit normally (but later check for leading part of 1st line */
+
+ idxa = 1;
+ ib = ndxm + 1;
+ } else {
+
+/* No "M", transfer entire line, loop */
+
+ allparts_(line, &c__128, (ftnlen)128);
+ goto L20;
+ }
+ }
+ } else if (ia == 10) {
+
+/* Do not transfer MIDI command into parts */
+
+ goto L12;
+ } else if (ia == 5) {
+
+/* First check for "AS", but S may come after other "A" options */
+
+ i__1 = idxa;
+ idxs = i_indx(line + i__1, "S", ib - i__1, (ftnlen)1);
+ if (idxs > 0) {
+
+/* Get rid of the string. First check if that's all there is in A. */
+
+ if (ib - idxa == nv + 2) {
+ goto L12;
+ }
+ i__1 = idxa + idxs + nv;
+/* Writing concatenation */
+ i__3[0] = idxa + idxs - 1, a__1[0] = line;
+ i__3[1] = ib - i__1, a__1[1] = line + i__1;
+ s_cat(line, a__1, i__3, &c__2, (ftnlen)128);
+ }
+
+/* Check for user-defined part file name. Must start in column 1 and have */
+/* AN[n]"userfilename". */
+/* idxa is position of "A" */
+/* ib is position of the next blank after "A" */
+/* Don't allow any blanks in user */
+
+ i__1 = idxa;
+ if (s_cmp(line + i__1, "N", idxa + 1 - i__1, (ftnlen)
+ 1) != 0) {
+ goto L9;
+ }
+/* bail out */
+ if (idxa != 1) {
+ s_wsle(&io___83);
+ e_wsle();
+ s_wsle(&io___84);
+ do_lio(&c__9, &c__1, "You entered \"AN...\" some"
+ "where beyond first column; stopping.", (
+ ftnlen)60);
+ e_wsle();
+ s_stop("1", (ftnlen)1);
+ }
+
+/* pmxa already checked for valid one- or 2-digit number, so get it */
+
+ if (*(unsigned char *)&line[3] == '"') {
+
+/* Single digit instrument number */
+
+ s_rsfi(&io___85);
+ do_fio(&c__1, (char *)&iudpfn, (ftnlen)sizeof(
+ integer));
+ e_rsfi();
+ idxstartname = 5;
+ } else {
+ s_rsfi(&io___88);
+ do_fio(&c__1, (char *)&iudpfn, (ftnlen)sizeof(
+ integer));
+ e_rsfi();
+ idxstartname = 6;
+ }
+ ludpfn[iudpfn - 1] = i_indx(line + (idxstartname - 1),
+ "\"", 128 - (idxstartname - 1), (ftnlen)1) -
+ 1;
+ if (ludpfn[iudpfn - 1] < 0) {
+ s_wsle(&io___89);
+ e_wsle();
+ s_wsle(&io___90);
+ do_lio(&c__9, &c__1, "User-defined part file nam"
+ "e must be in quotes", (ftnlen)45);
+ e_wsle();
+ s_stop("1", (ftnlen)1);
+ }
+ idxendname = idxstartname + ludpfn[iudpfn - 1] - 1;
+ s_copy(udpfnq + (iudpfn - 1 << 7), line + (
+ idxstartname - 1), (ftnlen)128, idxendname - (
+ idxstartname - 1));
+
+/* Get a new line! */
+
+ goto L4;
+ } else if (ia == 8) {
+
+/* Key change/transposition. */
+/* If not instrument specific, copy to all parts */
+
+ i__1 = idxa;
+ if (s_cmp(line + i__1, "i", idxa + 1 - i__1, (ftnlen)
+ 1) != 0) {
+ goto L9;
+ }
+
+/* Instrument-wise key/transposition(s): Ki[nn][+/-][dd}[+/-][dd]... */
+
+ ibb = idxa + 2;
+/* Starts on digit after 'i' */
+L40:
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = 1;
+ ici__1.iciunit = line + (ibb - 1);
+ ici__1.icifmt = "(i1)";
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&iiinst, (ftnlen)sizeof(integer)
+ );
+ e_rsfi();
+/* 1st digit of iinst */
+ i__1 = ibb;
+ itemp = i_indx("01234567890", line + i__1, (ftnlen)11,
+ ibb + 1 - i__1);
+ if (itemp > 0) {
+ ++ibb;
+ iiinst = iiinst * 10 + itemp - 1;
+ }
+ ++ibb;
+/* now at first +/-. Need end of 2nd number */
+ i__1 = ibb;
+ itemp = i_indx(line + i__1, "i", ib - i__1, (ftnlen)1)
+ ;
+/* Rel pos'n of next 'i' */
+ if (itemp > 0) {
+ iend = ibb + itemp - 1;
+ } else {
+ iend = ib - 1;
+ }
+ io___97.ciunit = all_1.iorig[iiinst - 1] + 10;
+ s_wsfe(&io___97);
+/* Writing concatenation */
+ i__3[0] = 3, a__1[0] = "Ki1";
+ i__3[1] = iend - (ibb - 1), a__1[1] = line + (ibb - 1)
+ ;
+ s_cat(ch__6, a__1, i__3, &c__2, (ftnlen)131);
+ do_fio(&c__1, ch__6, iend - (ibb - 1) + 3);
+ e_wsfe();
+ if (itemp > 0) {
+ ibb = iend + 2;
+ goto L40;
+ }
+ goto L12;
+/* Remove K command from string, go to next ia */
+ }
+L9:
+ i__1 = ib - idxa;
+ allparts_(line + (idxa - 1), &i__1, ib - 1 - (idxa - 1));
+L12:
+
+/* Remove the string from line */
+
+ if (idxa == 1) {
+ s_copy(line, line + (ib - 1), (ftnlen)128, 128 - (ib
+ - 1));
+ } else {
+/* Writing concatenation */
+ i__3[0] = idxa - 1, a__1[0] = line;
+ i__3[1] = 128 - (ib - 1), a__1[1] = line + (ib - 1);
+ s_cat(line, a__1, i__3, &c__2, (ftnlen)128);
+ }
+ lenline = lenstr_(line, &c__128, (ftnlen)128);
+
+/* Loop if only blanks are left */
+
+ if (lenline == 0) {
+ goto L4;
+ }
+
+/* Must check for multiple "I" commands, so go to just after start of ia loop */
+
+ if (ia == 10) {
+ goto L24;
+ }
+
+/* Tack on front part from 1st line of saved macro */
+
+ if (lenhold > 0) {
+/* Writing concatenation */
+ i__4[0] = lenhold, a__2[0] = holdln;
+ i__4[1] = 1, a__2[1] = " ";
+ i__4[2] = lenline, a__2[2] = line;
+ s_cat(line, a__2, i__4, &c__3, (ftnlen)128);
+ lenhold = 0;
+ }
+ }
+/* L5: */
+ }
+ }
+ }
+
+/* Now a special loop to deal with 'X'. If it was %[n]X..., will have been */
+/* copied into part [n] already. If no "B" or "P", remove. If "P", just */
+/* remove the "P" so pmxa/b will process. If "B". do nothing. */
+
+L10:
+ nchk = 1;
+L13:
+ ntinx = nchk - 1 + ntindex_(line + (nchk - 1), "X", 128 - (nchk - 1), (
+ ftnlen)1);
+ if (ntinx > nchk - 1) {
+
+/* There is a non-TeX 'X' at ntinx. Loop if neither 1st nor after a blank. */
+
+ if (ntinx > 1) {
+ i__1 = ntinx - 2;
+ if (s_cmp(line + i__1, " ", ntinx - 1 - i__1, (ftnlen)1) != 0) {
+
+/* The X is not 1st char of PMX command. Advance starting point, loop. */
+
+ nchk = ntinx + 1;
+ goto L13;
+ }
+ }
+
+/* We now know the X at ntinx starts a PMX command. Find next blank */
+
+ i__1 = ntinx;
+ ib = ntinx + i_indx(line + i__1, " ", 128 - i__1, (ftnlen)1);
+
+/* There must be a blank to right of "X", so ib>ntinx */
+
+/* locp = nchk-1+index(line(nchk:ib),'P') */
+ i__1 = ntinx;
+ locp = ntinx + i_indx(line + i__1, "P", ib - i__1, (ftnlen)1);
+
+/* Did not need to use ntindex because we already know bounds of PMX command. */
+
+/* if (locp .gt. nchk-1) then */
+ if (locp > ntinx) {
+
+/* Strip out the 'P' */
+
+ s_copy(templine, line, (ftnlen)128, locp - 1);
+ i__1 = locp;
+/* Writing concatenation */
+ i__3[0] = locp - 1, a__1[0] = templine;
+ i__3[1] = lenline - i__1, a__1[1] = line + i__1;
+ s_cat(line, a__1, i__3, &c__2, (ftnlen)128);
+ --lenline;
+ --ib;
+ }
+ if (i_indx(line + (ntinx - 1), ":", ib - (ntinx - 1), (ftnlen)1) > 0
+ || i_indx(line + (ntinx - 1), "S", ib - (ntinx - 1), (ftnlen)
+ 1) > 0 || i_indx(line + (ntinx - 1), "B", ib - (ntinx - 1), (
+ ftnlen)1) > 0 || locp > ntinx) {
+
+/* The X command is a shift, "Both", or "Part". Do not remove. */
+
+ nchk = ib + 1;
+ goto L13;
+ }
+
+/* Remove the X command. */
+
+ if (ntinx == 1) {
+ if (ib < lenline) {
+ i__1 = ib;
+ s_copy(line, line + i__1, (ftnlen)128, lenline - i__1);
+ } else {
+
+/* line contains ONLY the "X" command, so get a new line */
+
+ goto L4;
+ }
+ } else {
+ s_copy(templine, line, (ftnlen)128, ntinx - 1);
+ if (ib < lenline) {
+ i__1 = ib;
+/* Writing concatenation */
+ i__3[0] = ntinx - 1, a__1[0] = templine;
+ i__3[1] = lenline - i__1, a__1[1] = line + i__1;
+ s_cat(line, a__1, i__3, &c__2, (ftnlen)128);
+ } else {
+ s_copy(line, templine, (ftnlen)128, ntinx - 1);
+ }
+ }
+
+/* Recompute lenline */
+
+ lenline = lenstr_(line, &c__128, (ftnlen)128);
+
+/* Resume checking after location of removed command. */
+
+ nchk = ntinx;
+ goto L13;
+ }
+
+/* End of loop for X-checks */
+
+ oneof2 = ntindex_(line, "//", (ftnlen)128, (ftnlen)2) > 0;
+ if (termrpt && all_1.botv[iv - 1] && frstln && *(unsigned char *)&line[
+ lenline - 1] == '/') {
+
+/* Must add a terminal repeat before the slash */
+
+ if (oneof2) {
+ --lenline;
+ }
+ if (lenline > 1) {
+ io___102.ciunit = all_1.iorig[iinst - 1] + 10;
+ s_wsfe(&io___102);
+ do_fio(&c__1, line, lenline - 1);
+ e_wsfe();
+ }
+ if (! oneof2) {
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = termsym;
+ i__3[1] = 2, a__1[1] = " /";
+ s_cat(line, a__1, i__3, &c__2, (ftnlen)128);
+ lenline = 4;
+ } else {
+/* Writing concatenation */
+ i__3[0] = 2, a__1[0] = termsym;
+ i__3[1] = 3, a__1[1] = " //";
+ s_cat(line, a__1, i__3, &c__2, (ftnlen)128);
+ lenline = 5;
+ }
+ }
+ if (termrpt && frstln && *(unsigned char *)&line[lenline - 1] == '/' &&
+ iv == all_1.nvnow) {
+ termrpt = FALSE_;
+ }
+ io___103.ciunit = all_1.iorig[iinst - 1] + 10;
+ s_wsfe(&io___103);
+ do_fio(&c__1, line, lenline);
+ e_wsfe();
+ if (oneof2) {
+ frstln = FALSE_;
+ } else if (! frstln) {
+ frstln = TRUE_;
+ }
+/* if (ntindex(line,'/').gt.0 .and. index(line,'//').eq.0) then */
+ if (ntindex_(line, "/", (ftnlen)128, (ftnlen)1) > 0 && ntindex_(line,
+ "//", (ftnlen)128, (ftnlen)2) == 0) {
+ iv = iv % all_1.nvnow + 1;
+ iinst = all_1.instnum[iv - 1];
+ }
+ goto L4;
+L999:
+ cl__1.cerr = 0;
+ cl__1.cunit = 10;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+
+/* In the mbrest checks, must run through ALL noinst files (not just noinow) */
+
+ i__1 = all_1.noinst;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+/* cc+++ */
+/* c */
+/* c Temporarily transfer entire scratch file to real file */
+/* c */
+/* rewind(10+iinst) */
+/* open(40,file='s2pout'//char(48+iinst)//'.pmx') */
+/* do 50 m = 1 , 10000 */
+/* read(10+iinst,'(a)',end=51)line */
+/* lenline = lenstr(line,128) */
+/* if (lenline .ge. 1) then */
+/* write(40,'(a)')line(1:lenline) */
+/* else */
+/* write(40,'(a)')' ' */
+/* end if */
+/* 50 continue */
+/* 51 continue */
+/* close(40) */
+/* cc+++ */
+ if (all_1.nvi[iinst - 1] == 1) {
+ mbrests_(&iinst, jobname, &ljob, &ludpfn[iinst - 1], udpfnq + (
+ iinst - 1 << 7), (ftnlen)27, (ftnlen)128);
+ } else {
+
+/* Send a signal with ljob to bypass most mbrest processing */
+
+ i__2 = -ljob;
+ mbrests_(&iinst, jobname, &i__2, &ludpfn[iinst - 1], udpfnq + (
+ iinst - 1 << 7), (ftnlen)27, (ftnlen)128);
+ }
+/* L11: */
+ }
+ return 0;
+} /* MAIN__ */
+
+integer lenstr_(char *string, integer *n, ftnlen string_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ for (ret_val = *n; ret_val >= 1; --ret_val) {
+ if (*(unsigned char *)&string[ret_val - 1] != ' ') {
+ return ret_val;
+ }
+/* L1: */
+ }
+ ret_val = 0;
+ return ret_val;
+} /* lenstr_ */
+
+/* Subroutine */ int allparts_(char *string, integer *n, ftnlen string_len)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
+
+ /* Local variables */
+ static integer len, iinst;
+ extern integer lenstr_(char *, integer *, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___106 = { 0, 0, 0, "(a)", 0 };
+
+
+ len = lenstr_(string, n, string_len);
+ if (len == 0) {
+ len = 1;
+ s_copy(string, " ", string_len, (ftnlen)1);
+ }
+ i__1 = all_1.noinow;
+ for (iinst = 1; iinst <= i__1; ++iinst) {
+ io___106.ciunit = all_1.iorig[iinst - 1] + 10;
+ s_wsfe(&io___106);
+ do_fio(&c__1, string, len);
+ e_wsfe();
+/* L1: */
+ }
+ return 0;
+} /* allparts_ */
+
+/* Subroutine */ int mbrests_(integer *iv, char *jobname, integer *ljob,
+ integer *ludpfn, char *udpfnq, ftnlen jobname_len, ftnlen udpfnq_len)
+{
+ /* System generated locals */
+ address a__1[2], a__2[3];
+ integer i__1[2], i__2[3], i__3, i__4;
+ real r__1;
+ char ch__1[1], ch__2[18], ch__3[4], ch__4[2], ch__5[10];
+ cilist ci__1;
+ icilist ici__1;
+ olist o__1;
+ cllist cl__1;
+ alist al__1;
+
+ /* Builtin functions */
+ integer f_rew(alist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer f_open(olist *), s_rsfe(cilist *), do_fio(integer *, char *,
+ ftnlen), e_rsfe(void), s_cmp(char *, char *, ftnlen, ftnlen),
+ s_wsfe(cilist *), e_wsfe(void), s_wsle(cilist *), do_lio(integer *
+ , integer *, char *, ftnlen), e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_rsfi(icilist *), e_rsfi(
+ void);
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ double r_lg10(real *);
+ integer f_clos(cllist *);
+
+ /* Local variables */
+ static integer i__, il, iw;
+ static char sq[1];
+ static integer ip1, ipc, ipe, len, idx;
+ static char sym[80];
+ static integer ndig;
+ static char line[128*50];
+ static integer idxb, nmbr, idxs, lsym;
+ static char line1[128];
+ static logical type4;
+ static integer icden, iline, lpart;
+ static char partq[2];
+ static integer lwbrs, nwbrs, lenbar, ipenew, mtrden;
+ static logical wbrest;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ static logical newmtr;
+ static integer lwbrsx, mtrnum;
+ static char wbrsym[3*2];
+ static integer lenbeat;
+ static logical alldone;
+ extern integer ifnodur_(integer *, char *, ftnlen), ntindex_(char *, char
+ *, ftnlen, ftnlen);
+ static integer lenmult;
+ extern /* Subroutine */ int dosetup_(integer *, char *, integer *,
+ integer *, ftnlen);
+ static logical rpfirst;
+ extern /* Subroutine */ int fwbrsym_(integer *, integer *, char *,
+ integer *, ftnlen), nextsym_(char *, integer *, integer *,
+ integer *, char *, integer *, ftnlen, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___113 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___116 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___117 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___118 = { 0, 6, 0, 0, 0 };
+ static cilist io___121 = { 0, 0, 1, "(a)", 0 };
+ static cilist io___122 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___123 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___124 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___144 = { 0, 0, 1, "(a)", 0 };
+ static cilist io___145 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___146 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___147 = { 0, 6, 0, 0, 0 };
+ static cilist io___152 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___154 = { 0, 6, 0, 0, 0 };
+ static cilist io___156 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___158 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___159 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___160 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___161 = { 0, 40, 0, "(a)", 0 };
+
+
+ type4 = FALSE_;
+ *(unsigned char *)sq = '\\';
+ alldone = FALSE_;
+ al__1.aerr = 0;
+ al__1.aunit = *iv + 10;
+ f_rew(&al__1);
+/* open(20,file=jobname(1:abs(ljob))//char(48+iv)//'.pmx') */
+ if (*iv < 10) {
+ *(unsigned char *)partq = (char) (*iv + 48);
+ lpart = 1;
+
+/* 5/16/10 Fix for >20 parts */
+
+/* else */
+/* partq = '1'//char(38+iv) */
+/* lpart = 2 */
+ } else {
+ lpart = 2;
+ if (*iv < 20) {
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = "1";
+ *(unsigned char *)&ch__1[0] = *iv + 38;
+ i__1[1] = 1, a__1[1] = ch__1;
+ s_cat(partq, a__1, i__1, &c__2, (ftnlen)2);
+ } else {
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = "2";
+ *(unsigned char *)&ch__1[0] = *iv + 28;
+ i__1[1] = 1, a__1[1] = ch__1;
+ s_cat(partq, a__1, i__1, &c__2, (ftnlen)2);
+ }
+ }
+/* if (ludpfn .eq. 0) then */
+ o__1.oerr = 0;
+ o__1.ounit = 40;
+ o__1.ofnmlen = abs(*ljob) + lpart + 4;
+/* Writing concatenation */
+ i__2[0] = abs(*ljob), a__2[0] = jobname;
+ i__2[1] = lpart, a__2[1] = partq;
+ i__2[2] = 4, a__2[2] = ".pmx";
+ s_cat(ch__2, a__2, i__2, &c__3, (ftnlen)18);
+ o__1.ofnm = ch__2;
+ o__1.orl = 0;
+ o__1.osta = 0;
+ o__1.oacc = 0;
+ o__1.ofm = 0;
+ o__1.oblnk = 0;
+ f_open(&o__1);
+/* else */
+/* open(30,file=udpfnq(1:ludpfn)//'.pmx') */
+/* end if */
+ for (i__ = 1; i__ <= 10000; ++i__) {
+ io___113.ciunit = *iv + 10;
+ s_rsfe(&io___113);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ if (*(unsigned char *)&line[0] == '%' || s_cmp(line, "---", (ftnlen)3,
+ (ftnlen)3) == 0 || type4) {
+ len = lenstr_(line, &c__128, (ftnlen)128);
+ if (len > 0) {
+ s_wsfe(&io___116);
+ do_fio(&c__1, line, len);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___117);
+ do_fio(&c__1, " ", (ftnlen)1);
+ e_wsfe();
+ }
+ if (s_cmp(line, "---", (ftnlen)3, (ftnlen)3) == 0) {
+ type4 = ! type4;
+ }
+ } else {
+ goto L11;
+ }
+/* L10: */
+ }
+ s_wsle(&io___118);
+ do_lio(&c__9, &c__1, "You should not be here in scor2prt. Call Dr. Don",
+ (ftnlen)49);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+L11:
+
+/* Finished reading opening type4 TeX and comments. Next line to be read */
+/* will contain the first of the input numbers */
+
+ dosetup_(iv, line, &mtrnum, &mtrden, (ftnlen)128);
+ for (i__ = 1; i__ <= 10000; ++i__) {
+L13:
+ io___121.ciunit = *iv + 10;
+ i__3 = s_rsfe(&io___121);
+ if (i__3 != 0) {
+ goto L999;
+ }
+ i__3 = do_fio(&c__1, line, (ftnlen)128);
+ if (i__3 != 0) {
+ goto L999;
+ }
+ i__3 = e_rsfe();
+ if (i__3 != 0) {
+ goto L999;
+ }
+L7:
+ len = lenstr_(line, &c__128, (ftnlen)128);
+
+/* Pass-through if instrumnet has >1 voice. */
+
+ if (*ljob < 0) {
+ goto L2;
+ }
+ if (i_indx("TtTiTch+h-h l ", line, (ftnlen)14, (ftnlen)2) > 0) {
+
+/* Traps titles, instruments, composers, headers, lower strings. Read 2 lines. */
+
+ s_wsfe(&io___122);
+ do_fio(&c__1, line, len);
+ e_wsfe();
+ io___123.ciunit = *iv + 10;
+ s_rsfe(&io___123);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ len = lenstr_(line, &c__128, (ftnlen)128);
+ goto L2;
+ }
+ if (i__ == 1 || i__ > 5 && *(unsigned char *)&line[0] == 'm') {
+
+/* NOTE! The above test is truly bogus. */
+
+ if (*(unsigned char *)&line[0] == '%') {
+ s_wsfe(&io___124);
+ do_fio(&c__1, line, len);
+ e_wsfe();
+ goto L13;
+ }
+ if (i__ == 1) {
+/* read(line(1),'(10x,2i5)')mtrnum,mtrden */
+ } else {
+
+/* Check for slashes (new meter change syntax) */
+
+ idxs = i_indx(line, "/", (ftnlen)128, (ftnlen)1);
+ idxb = i_indx(line, " ", (ftnlen)128, (ftnlen)1);
+ newmtr = idxs > 0 && (idxb == 0 || idxs < idxb);
+ if (! newmtr) {
+
+/* Old way, no slashes, uses 'o' for lonesome '1' */
+
+ icden = 3;
+ if (*(unsigned char *)&line[1] == 'o') {
+ mtrnum = 1;
+ } else {
+ mtrnum = *(unsigned char *)&line[1] - 48;
+ if (mtrnum == 1) {
+ icden = 4;
+ mtrnum = *(unsigned char *)&line[2] - 38;
+ }
+ }
+ mtrden = *(unsigned char *)&line[icden - 1] - 48;
+ } else {
+
+/* New way with slashes: idxs is index of 1st slash! */
+
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = idxs - 2;
+ ici__1.iciunit = line + 1;
+/* Writing concatenation */
+ i__2[0] = 2, a__2[0] = "(i";
+ *(unsigned char *)&ch__1[0] = idxs + 46;
+ i__2[1] = 1, a__2[1] = ch__1;
+ i__2[2] = 1, a__2[2] = ")";
+ ici__1.icifmt = (s_cat(ch__3, a__2, i__2, &c__3, (ftnlen)
+ 4), ch__3);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&mtrnum, (ftnlen)sizeof(integer));
+ e_rsfi();
+ i__3 = idxs;
+ idxb = i_indx(line + i__3, "/", 128 - i__3, (ftnlen)1);
+ i__3 = idxs;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = idxs + idxb - 1 - i__3;
+ ici__1.iciunit = line + i__3;
+/* Writing concatenation */
+ i__2[0] = 2, a__2[0] = "(i";
+ *(unsigned char *)&ch__1[0] = idxb + 47;
+ i__2[1] = 1, a__2[1] = ch__1;
+ i__2[2] = 1, a__2[2] = ")";
+ ici__1.icifmt = (s_cat(ch__3, a__2, i__2, &c__3, (ftnlen)
+ 4), ch__3);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&mtrden, (ftnlen)sizeof(integer));
+ e_rsfi();
+ }
+ }
+ lenbeat = ifnodur_(&mtrden, "x", (ftnlen)1);
+ lenmult = 1;
+ if (mtrden == 2) {
+ lenbeat = 16;
+ lenmult = 2;
+ }
+ lenbar = lenmult * mtrnum * lenbeat;
+ fwbrsym_(&lenbar, &nwbrs, wbrsym, &lwbrs, (ftnlen)3);
+ }
+ ip1 = 0;
+ s_copy(line1, line, (ftnlen)128, (ftnlen)128);
+ i__3 = nwbrs;
+ for (iw = 0; iw <= i__3; ++iw) {
+ if (iw > 0) {
+ idx = ntindex_(line1, wbrsym + (iw - 1) * 3, (ftnlen)128,
+ lwbrs);
+ if (idx > 0) {
+
+/* Check for blank or shifted rest, discount it if it's there */
+
+ i__4 = idx + lwbrs - 1;
+ if (s_cmp(line1 + i__4, " ", idx + lwbrs - i__4, (ftnlen)
+ 1) != 0) {
+ idx = 0;
+ }
+ }
+ } else {
+ idx = ntindex_(line1, "rp", (ftnlen)128, (ftnlen)2);
+
+/* Check for raised rest */
+
+ if (idx > 0) {
+ i__4 = idx + 1;
+ if (s_cmp(line1 + i__4, " ", idx + 2 - i__4, (ftnlen)1) !=
+ 0) {
+ idx = 0;
+ }
+ }
+ }
+ if (idx > 0) {
+ if (ip1 == 0) {
+ ip1 = idx;
+ } else {
+ ip1 = min(ip1,idx);
+ }
+ }
+/* L3: */
+ }
+/* Writing concatenation */
+ i__1[0] = 1, a__1[0] = sq;
+ i__1[1] = 1, a__1[1] = sq;
+ s_cat(ch__4, a__1, i__1, &c__2, (ftnlen)2);
+ if (i__ < 5 || *(unsigned char *)&line[0] == '%' || s_cmp(line, ch__4,
+ (ftnlen)2, (ftnlen)2) == 0 || ip1 == 0) {
+ goto L2;
+ }
+
+/* Switch to multibar rest search mode!!! Start forward in line(1) */
+
+ rpfirst = s_cmp(line1 + (ip1 - 1), "rp", (ftnlen)2, (ftnlen)2) == 0;
+ iline = 1;
+ nmbr = 1;
+ if (rpfirst) {
+ lwbrsx = 2;
+ } else {
+ lwbrsx = lwbrs;
+ }
+ ipe = ip1 + lwbrsx - 1;
+L4:
+ if (ipe == len) {
+
+/* Need a new line */
+
+ ++iline;
+L6:
+ io___144.ciunit = *iv + 10;
+ i__3 = s_rsfe(&io___144);
+ if (i__3 != 0) {
+ goto L998;
+ }
+ i__3 = do_fio(&c__1, line + (iline - 1 << 7), (ftnlen)128);
+ if (i__3 != 0) {
+ goto L998;
+ }
+ i__3 = e_rsfe();
+ if (i__3 != 0) {
+ goto L998;
+ }
+ len = lenstr_(line + (iline - 1 << 7), &c__128, (ftnlen)128);
+ if (*(unsigned char *)&line[(iline - 1) * 128] == '%') {
+ s_wsfe(&io___145);
+ do_fio(&c__1, "% Following comment has been moved forward", (
+ ftnlen)42);
+ e_wsfe();
+ s_wsfe(&io___146);
+ do_fio(&c__1, line + (iline - 1 << 7), len);
+ e_wsfe();
+ goto L6;
+ }
+ ipe = 0;
+ goto L4;
+L998:
+
+/* No more input left */
+
+ s_wsle(&io___147);
+ do_lio(&c__9, &c__1, "All done!", (ftnlen)9);
+ e_wsle();
+ alldone = TRUE_;
+ ipe = 0;
+ --iline;
+ len = lenstr_(line + (iline - 1 << 7), &c__128, (ftnlen)128);
+ goto L4;
+ } else {
+ if (alldone) {
+ *(unsigned char *)sym = ' ';
+ } else {
+
+/* ipe<len here, so it's ok to get a symbol */
+
+ nextsym_(line + (iline - 1 << 7), &len, &ipe, &ipenew, sym, &
+ lsym, (ftnlen)128, (ftnlen)80);
+ }
+
+/* Check for end of block or bar line symbol */
+
+ if (i_indx("/|", sym, (ftnlen)2, (ftnlen)1) > 0) {
+ ipe = ipenew;
+ goto L4;
+ } else {
+ wbrest = FALSE_;
+ if (alldone) {
+ goto L12;
+ }
+ i__3 = nwbrs;
+ for (iw = 1; iw <= i__3; ++iw) {
+ wbrest = wbrest || s_cmp(sym, wbrsym + (iw - 1) * 3, lsym,
+ lwbrs) == 0;
+/* L5: */
+ }
+ wbrest = wbrest || s_cmp(sym, "r", lsym, (ftnlen)1) == 0 &&
+ lwbrs == 2 || s_cmp(sym, "rd", lsym, (ftnlen)2) == 0
+ && lwbrs == 3 || s_cmp(sym, "rp", lsym, (ftnlen)2) ==
+ 0 || s_cmp(sym, "r", lsym, (ftnlen)1) == 0 && rpfirst;
+L12:
+ if (wbrest) {
+ ipe = ipenew;
+ ++nmbr;
+ goto L4;
+ } else {
+
+/* AHA! Failed prev. test, so last symbol was *not* mbr. */
+/* It must be saved, and its starting position is ipenew-lsym+1 */
+
+ if (nmbr > 1) {
+
+/* Write stuff up to start of mbr */
+
+ if (ip1 > 1) {
+ s_wsfe(&io___152);
+ do_fio(&c__1, line, ip1 - 1);
+ e_wsfe();
+ }
+
+/* Insert mbr symbol. Always end with a slash just in case next sym must be */
+/* at start of block. May think this causes undefined octaves, but */
+/* probably not since it's a single voice. */
+
+ r__1 = nmbr + .01f;
+ ndig = (integer) r_lg10(&r__1) + 1;
+ s_wsle(&io___154);
+ do_lio(&c__9, &c__1, "Inserting rm, iv,nmbr:", (
+ ftnlen)22);
+ do_lio(&c__3, &c__1, (char *)&(*iv), (ftnlen)sizeof(
+ integer));
+ do_lio(&c__3, &c__1, (char *)&nmbr, (ftnlen)sizeof(
+ integer));
+ e_wsle();
+ ci__1.cierr = 0;
+ ci__1.ciunit = 40;
+/* Writing concatenation */
+ i__2[0] = 5, a__2[0] = "(a2,i";
+ *(unsigned char *)&ch__1[0] = ndig + 48;
+ i__2[1] = 1, a__2[1] = ch__1;
+ i__2[2] = 4, a__2[2] = ",a2)";
+ ci__1.cifmt = (s_cat(ch__5, a__2, i__2, &c__3, (
+ ftnlen)10), ch__5);
+ s_wsfe(&ci__1);
+ do_fio(&c__1, "rm", (ftnlen)2);
+ do_fio(&c__1, (char *)&nmbr, (ftnlen)sizeof(integer));
+ do_fio(&c__1, " /", (ftnlen)2);
+ e_wsfe();
+ if (alldone) {
+ goto L999;
+ }
+ ipc = ipenew - lsym + 1;
+ s_copy(line, line + ((iline - 1 << 7) + (ipc - 1)), (
+ ftnlen)128, len - (ipc - 1));
+ } else {
+
+/* Write old stuff up to end of original lonesome wbr, save the rest. */
+/* 4 cases: (wbr /) , (wbr line-end) , (wbr followed by other non-/ symbols) , */
+/* alldone. */
+/* In 1st 2 will have gotten some other lines, so write all up to one b4 last */
+/* non-comment line; then revert to normal mode on that. In 3rd case must */
+/* split line. */
+
+ if (alldone) {
+ s_wsfe(&io___156);
+ do_fio(&c__1, line, len);
+ e_wsfe();
+ goto L999;
+ } else if (iline > 1) {
+ i__3 = iline - 1;
+ for (il = 1; il <= i__3; ++il) {
+ len = lenstr_(line + (il - 1 << 7), &c__128, (
+ ftnlen)128);
+ s_wsfe(&io___158);
+ do_fio(&c__1, line + (il - 1 << 7), len);
+ e_wsfe();
+/* L9: */
+ }
+ s_copy(line, line + (iline - 1 << 7), (ftnlen)128,
+ (ftnlen)128);
+ } else {
+
+/* Since iline = 1 the wbr is not the last sym, so must split */
+
+ s_wsfe(&io___159);
+ do_fio(&c__1, line, ip1 + lwbrsx - 1);
+ e_wsfe();
+ i__3 = ip1 + lwbrsx;
+ s_copy(line, line + i__3, (ftnlen)128, len - i__3)
+ ;
+ }
+ }
+
+/* Exit multibar mode */
+
+ goto L7;
+ }
+ }
+ }
+L2:
+ if (len > 0) {
+ s_wsfe(&io___160);
+ do_fio(&c__1, line, len);
+ e_wsfe();
+ } else {
+ s_wsfe(&io___161);
+ do_fio(&c__1, " ", (ftnlen)1);
+ e_wsfe();
+ }
+/* L1: */
+ }
+L999:
+ cl__1.cerr = 0;
+ cl__1.cunit = *iv + 10;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ cl__1.cerr = 0;
+ cl__1.cunit = 40;
+ cl__1.csta = 0;
+ f_clos(&cl__1);
+ return 0;
+} /* mbrests_ */
+
+integer ifnodur_(integer *idur, char *dotq, ftnlen dotq_len)
+{
+ /* System generated locals */
+ integer ret_val;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___162 = { 0, 6, 0, 0, 0 };
+
+
+ if (*idur == 6) {
+ ret_val = 1;
+ } else if (*idur == 3) {
+ ret_val = 2;
+ } else if (*idur == 1 || *idur == 16) {
+ ret_val = 4;
+ } else if (*idur == 8) {
+ ret_val = 8;
+ } else if (*idur == 4) {
+ ret_val = 16;
+ } else if (*idur == 2) {
+ ret_val = 32;
+ } else if (*idur == 0) {
+ ret_val = 64;
+ } else {
+ s_wsle(&io___162);
+ do_lio(&c__9, &c__1, "You entered an invalid note-length value", (
+ ftnlen)40);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ if (*(unsigned char *)dotq == 'd') {
+ ret_val = ret_val * 3 / 2;
+ }
+ return ret_val;
+} /* ifnodur_ */
+
+/* Subroutine */ int fwbrsym_(integer *lenbar, integer *nwbrs, char *wbrsym,
+ integer *lwbrs, ftnlen wbrsym_len)
+{
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
+
+ /* Fortran I/O blocks */
+ static cilist io___163 = { 0, 6, 0, "(33H Any whole-bar rests of duratio"
+ "n ,i3, 26H/64 will not be recognized)", 0 };
+
+
+ /* Parameter adjustments */
+ wbrsym -= 3;
+
+ /* Function Body */
+ *nwbrs = 1;
+ *lwbrs = 2;
+ if (*lenbar == 16) {
+ s_copy(wbrsym + 3, "r4", (ftnlen)3, (ftnlen)2);
+ } else if (*lenbar == 32) {
+ s_copy(wbrsym + 3, "r2", (ftnlen)3, (ftnlen)2);
+ } else if (*lenbar == 64) {
+ s_copy(wbrsym + 3, "r0", (ftnlen)3, (ftnlen)2);
+ } else if (*lenbar == 8) {
+ s_copy(wbrsym + 3, "r8", (ftnlen)3, (ftnlen)2);
+ } else if (*lenbar == 128) {
+ s_copy(wbrsym + 3, "r9", (ftnlen)3, (ftnlen)2);
+ } else {
+ *nwbrs = 2;
+ *lwbrs = 3;
+ if (*lenbar == 24) {
+ s_copy(wbrsym + 3, "rd4", (ftnlen)3, (ftnlen)3);
+ s_copy(wbrsym + 6, "r4d", (ftnlen)3, (ftnlen)3);
+ } else if (*lenbar == 48) {
+ s_copy(wbrsym + 3, "rd2", (ftnlen)3, (ftnlen)3);
+ s_copy(wbrsym + 6, "r2d", (ftnlen)3, (ftnlen)3);
+ } else if (*lenbar == 96) {
+ s_copy(wbrsym + 3, "rd0", (ftnlen)3, (ftnlen)3);
+ s_copy(wbrsym + 6, "r0d", (ftnlen)3, (ftnlen)3);
+ } else {
+ s_wsfe(&io___163);
+ do_fio(&c__1, (char *)&(*lenbar), (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+ }
+ return 0;
+} /* fwbrsym_ */
+
+/* Subroutine */ int nextsym_(char *line, integer *len, integer *ipeold,
+ integer *ipenew, char *sym, integer *lsym, ftnlen line_len, ftnlen
+ sym_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Builtin functions */
+ integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
+ e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen), s_copy(char *, char *,
+ ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer ip, iip;
+
+ /* Fortran I/O blocks */
+ static cilist io___164 = { 0, 6, 0, 0, 0 };
+ static cilist io___165 = { 0, 6, 0, 0, 0 };
+ static cilist io___168 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Know its the last symbol if on return ipenew = len!. So should never */
+/* be called when ipstart=len. */
+
+ if (*ipeold >= *len) {
+ s_wsle(&io___164);
+ do_lio(&c__9, &c__1, "Called nextsym with ipstart>=len ", (ftnlen)33);
+ e_wsle();
+ s_wsle(&io___165);
+ do_lio(&c__9, &c__1, "Send files to Dr. Don at dsimons@logicon.com", (
+ ftnlen)44);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ i__1 = *len;
+ for (ip = *ipeold + 1; ip <= i__1; ++ip) {
+ if (*(unsigned char *)&line[ip - 1] != ' ') {
+
+/* symbol starts here (ip). We're committed to exit the loop. */
+
+ if (ip < *len) {
+ i__2 = *len;
+ for (iip = ip + 1; iip <= i__2; ++iip) {
+ if (*(unsigned char *)&line[iip - 1] != ' ') {
+ goto L2;
+ }
+
+/* iip is the space after the symbol */
+
+ *ipenew = iip - 1;
+ *lsym = *ipenew - ip + 1;
+ s_copy(sym, line + (ip - 1), (ftnlen)80, *ipenew - (ip -
+ 1));
+ return 0;
+L2:
+ ;
+ }
+
+/* Have len>=2 and ends on len */
+
+ *ipenew = *len;
+ *lsym = *ipenew - ip + 1;
+ s_copy(sym, line + (ip - 1), (ftnlen)80, *ipenew - (ip - 1));
+ return 0;
+ } else {
+
+/* ip = len */
+
+ *ipenew = *len;
+ *lsym = 1;
+ s_copy(sym, line + (ip - 1), (ftnlen)80, (ftnlen)1);
+ return 0;
+ }
+ }
+/* L1: */
+ }
+ s_wsle(&io___168);
+ do_lio(&c__9, &c__1, "Error #3. Send files to Dr. Don at dsimons@logico"
+ "n.com", (ftnlen)55);
+ e_wsle();
+ return 0;
+} /* nextsym_ */
+
+integer ntindex_(char *line, char *s2q, ftnlen line_len, ftnlen s2q_len)
+{
+ /* System generated locals */
+ address a__1[2];
+ integer ret_val, i__1, i__2[2], i__3;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+ integer i_indx(char *, char *, ftnlen, ftnlen), s_wsle(cilist *), do_lio(
+ integer *, integer *, char *, ftnlen), e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen), s_cat(char *, char **,
+ integer *, integer *, ftnlen);
+ integer s_cmp(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer ic, len, ndxs2;
+ static char tline[128];
+ static integer ndxbs;
+ static logical intex;
+ static integer ndxdq1, ndxdq2;
+ extern integer lenstr_(char *, integer *, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___174 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Returns index(line,s2q) if NOT in TeX string, 0 otherwise */
+
+
+/* print*,'Starting ntindex. s2q:',s2q,', line(1:79) is below' */
+/* print*,line(1:79) */
+
+
+/* Use a temporary string to store the input and test, so can zap D"..." */
+
+ s_copy(tline, line, (ftnlen)128, (ftnlen)128);
+ ndxs2 = i_indx(tline, s2q, (ftnlen)128, s2q_len);
+
+/* Return point below for rechecks after zapping D" " */
+
+L2:
+ ndxbs = i_indx(tline, "\\", (ftnlen)128, (ftnlen)1);
+ if (ndxbs > 0) {
+
+/* Special check in case \ is inside D"..." */
+
+ ndxdq1 = i_indx(tline, "D\"", (ftnlen)128, (ftnlen)2);
+
+/* If the following test fails, flow out of if block; else loop up to 2. */
+
+ if (ndxdq1 > 0) {
+
+/* Find end of D"..." */
+
+ i__1 = ndxdq1 + 1;
+ ndxdq2 = ndxdq1 + 1 + i_indx(tline + i__1, "\"", 128 - i__1, (
+ ftnlen)1);
+ if (ndxdq2 == ndxdq1 + 1) {
+ s_wsle(&io___174);
+ do_lio(&c__9, &c__1, "Something is really wierd here", (
+ ftnlen)30);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ s_copy(tline, tline, (ftnlen)128, ndxdq1 - 1);
+ i__1 = ndxdq2;
+ for (ic = ndxdq1; ic <= i__1; ++ic) {
+/* Writing concatenation */
+ i__2[0] = ic - 1, a__1[0] = tline;
+ i__2[1] = 1, a__1[1] = " ";
+ s_cat(tline, a__1, i__2, &c__2, (ftnlen)128);
+/* L3: */
+ }
+ i__1 = ndxdq2;
+/* Writing concatenation */
+ i__2[0] = ndxdq2, a__1[0] = tline;
+ i__2[1] = 128 - i__1, a__1[1] = line + i__1;
+ s_cat(tline, a__1, i__2, &c__2, (ftnlen)128);
+ goto L2;
+ }
+ }
+ if (ndxbs == 0 || ndxs2 < ndxbs) {
+ ret_val = ndxs2;
+/* print*,'No bs, or char is left of 1st bs, ntindex:',ntindex */
+ } else {
+
+/* There are both bs and s2q, and bs is to the left of sq2. So check bs's to */
+/* right of first: End is '\ ', start is ' \' */
+
+ len = lenstr_(tline, &c__128, (ftnlen)128);
+ intex = TRUE_;
+/* print*,'intex+>',intex */
+ i__1 = len;
+ for (ic = ndxbs + 1; ic <= i__1; ++ic) {
+ if (ic == ndxs2) {
+ if (intex) {
+ ret_val = 0;
+ i__3 = ic;
+ ndxs2 = i_indx(tline + i__3, s2q, len - i__3, s2q_len) +
+ ic;
+/* print*,'ndxs2 =>',ndxs2 */
+ } else {
+ ret_val = ndxs2;
+ return ret_val;
+ }
+/* print*,'Internal exit, intex, ntindex:',intex,ntindex */
+ } else /* if(complicated condition) */ {
+ i__3 = ic;
+ if (intex && s_cmp(tline + i__3, "\\ ", ic + 2 - i__3, (
+ ftnlen)2) == 0) {
+ intex = FALSE_;
+/* print*,'intex+>',intex */
+ } else /* if(complicated condition) */ {
+ i__3 = ic;
+ if (! intex && s_cmp(tline + i__3, " \\", ic + 2 - i__3, (
+ ftnlen)2) == 0) {
+ intex = TRUE_;
+/* print*,'intex+>',intex */
+ }
+ }
+ }
+/* L1: */
+ }
+/* print*,'Out end of loop 1' */
+ }
+/* print*,'Exiting ntindex at the end???' */
+ return ret_val;
+} /* ntindex_ */
+
+/* Subroutine */ int getchar_(char *line, integer *iccount, char *charq,
+ ftnlen line_len, ftnlen charq_len)
+{
+ /* Builtin functions */
+ integer s_rsfe(cilist *), do_fio(integer *, char *, ftnlen), e_rsfe(void);
+
+ /* Fortran I/O blocks */
+ static cilist io___178 = { 0, 10, 0, "(a)", 0 };
+
+
+
+/* Gets the next character out of line*128. If pointer iccount=128 on entry, */
+/* then reads in a new line. Resets iccount to position of the new character. */
+
+ if (*iccount == 128) {
+ s_rsfe(&io___178);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ *iccount = 0;
+ }
+ ++(*iccount);
+ *(unsigned char *)charq = *(unsigned char *)&line[*iccount - 1];
+ return 0;
+} /* getchar_ */
+
+doublereal readin_(char *line, integer *iccount, integer *iread, ftnlen
+ line_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1[3], i__2;
+ real ret_val;
+ char ch__1[27], ch__2[6], ch__3[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_rsfe(cilist *), do_fio(integer *, char *, ftnlen), e_rsfe(void),
+ i_indx(char *, char *, ftnlen, ftnlen), s_wsle(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_lio(integer *, integer *, char *, ftnlen), e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ integer s_rsfi(icilist *), e_rsfi(void);
+
+ /* Local variables */
+ extern /* Subroutine */ int allparts_(char *, integer *, ftnlen);
+ static integer i1, i2, icf;
+ static char durq[1];
+ extern /* Subroutine */ int chkcom_(char *, ftnlen), getchar_(char *,
+ integer *, char *, ftnlen, ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___179 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___183 = { 0, 6, 0, 0, 0 };
+ static cilist io___185 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Reads a piece of setup data from line, gets a new line from */
+/* file 10 (jobname.pmx) if needed, Transfers comment lines into all parts. */
+
+/* iread controls copying of values into scratch files for parts, but only */
+/* if not replacing. */
+
+/* iread input value written */
+/* -1 nvi nothing (only used when noinst<0 initially) */
+/* 0 various value read */
+/* 1 nv -1 , replace later with nvi(i) */
+/* 2 noinst 1 */
+/* 3 np -2 , replace later with (nsyst-1)/12+1 */
+/* 4 musicsize 20 */
+/* 5 fracondent 0.05 */
+
+L4:
+ if (*iccount == 128) {
+ s_rsfe(&io___179);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ if (all_1.replacing) {
+ all_1.replacing = FALSE_;
+ }
+ chkcom_(line, (ftnlen)128);
+ *iccount = 0;
+ }
+ ++(*iccount);
+
+/* Find next non-blank or end of line */
+
+ for (*iccount = *iccount; *iccount <= 127; ++(*iccount)) {
+ if (*(unsigned char *)&line[*iccount - 1] != ' ') {
+ goto L3;
+ }
+/* L2: */
+ }
+
+/* If here, need to get a new line */
+
+ *iccount = 128;
+ goto L4;
+L3:
+
+/* iccount now points to start of number to read */
+
+ i1 = *iccount;
+L5:
+ getchar_(line, iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Remember that getchar first increments iccount, *then* reads a character. */
+
+ if (i_indx("0123456789.-", durq, (ftnlen)12, (ftnlen)1) > 0) {
+ goto L5;
+ }
+ i2 = *iccount - 1;
+ if (i2 < i1) {
+ s_wsle(&io___183);
+/* Writing concatenation */
+ i__1[0] = 7, a__1[0] = "Found \"";
+ i__1[1] = 1, a__1[1] = durq;
+ i__1[2] = 19, a__1[2] = "\" instead of number";
+ s_cat(ch__1, a__1, i__1, &c__3, (ftnlen)27);
+ do_lio(&c__9, &c__1, ch__1, (ftnlen)27);
+ e_wsle();
+ s_stop("1", (ftnlen)1);
+ }
+ icf = i2 - i1 + 49;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = i2 - (i1 - 1);
+ ici__1.iciunit = line + (i1 - 1);
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "(f";
+ *(unsigned char *)&ch__3[0] = icf;
+ i__1[1] = 1, a__1[1] = ch__3;
+ i__1[2] = 3, a__1[2] = ".0)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)6), ch__2);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&ret_val, (ftnlen)sizeof(real));
+ e_rsfi();
+ if (! all_1.replacing) {
+ if (*iread == 0) {
+ i__2 = i2 - i1 + 1;
+ allparts_(line + (i1 - 1), &i__2, i2 - (i1 - 1));
+ } else if (*iread == 1) {
+ allparts_("-999", &c__4, (ftnlen)4);
+ } else if (*iread == 2) {
+ allparts_("1", &c__1, (ftnlen)1);
+ } else if (*iread == 3) {
+ allparts_("-998", &c__4, (ftnlen)4);
+ } else if (*iread == 4) {
+ allparts_("20", &c__2, (ftnlen)2);
+ } else if (*iread == 5) {
+ allparts_(".05", &c__3, (ftnlen)3);
+ } else if (*iread != -1) {
+ s_wsle(&io___185);
+ do_lio(&c__9, &c__1, "Error with iread in readin", (ftnlen)26);
+ e_wsle();
+ s_stop("", (ftnlen)0);
+ }
+ }
+ return ret_val;
+} /* readin_ */
+
+/* Subroutine */ int chkcom_(char *line, ftnlen line_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Builtin functions */
+ integer s_rsfe(cilist *), do_fio(integer *, char *, ftnlen), e_rsfe(void),
+ i_indx(char *, char *, ftnlen, ftnlen), s_cmp(char *, char *,
+ ftnlen, ftnlen), s_wsfe(cilist *), e_wsfe(void);
+
+ /* Local variables */
+ static logical clefpend;
+ extern /* Subroutine */ int allparts_(char *, integer *, ftnlen);
+ static integer j, k, ivq, idxb, idxl, idxm, idxn;
+ extern /* Subroutine */ int zapbl_(char *, integer *, ftnlen);
+ static integer iposc0;
+ extern integer lenstr_(char *, integer *, ftnlen);
+ static integer lenline;
+
+ /* Fortran I/O blocks */
+ static cilist io___186 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___195 = { 0, 10, 0, "(a)", 0 };
+ static cilist io___198 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___199 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___200 = { 0, 10, 1, "(a)", 0 };
+
+
+
+/* Assume that line has just been read. No need to change iccount since we only */
+/* process full lines. */
+
+L1:
+ if (*(unsigned char *)line != '%') {
+ return 0;
+ }
+
+/* If here, line has some sort of comment */
+
+ if (*(unsigned char *)&line[1] == '%') {
+ if (! all_1.insetup) {
+
+/* Suck up a line, then flow out of "if" block to get another and loop */
+
+ s_rsfe(&io___186);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+/* ++VV */
+
+/* UNLESS (a) it has a score-only "M" and changes # of inst's. */
+
+ if (i_indx(line, "M", (ftnlen)128, (ftnlen)1) > 0) {
+ idxl = i_indx(line, "L", (ftnlen)128, (ftnlen)1);
+ idxm = i_indx(line, "M", (ftnlen)128, (ftnlen)1);
+ idxn = i_indx(line, "n", (ftnlen)128, (ftnlen)1);
+ idxb = i_indx(line, " ", (ftnlen)128, (ftnlen)1);
+ if (idxl < idxm && idxm < idxn && (idxb == 0 || idxn < idxb))
+ {
+ i__1 = idxn;
+ all_1.noinow = *(unsigned char *)&line[i__1] - 48;
+ clefpend = TRUE_;
+
+/* Next noinow digits are original inst. #'s of new inst. set. Next noinow */
+/* char's after that are clefs */
+
+ all_1.nvnow = 0;
+ i__1 = all_1.noinow;
+ for (j = 1; j <= i__1; ++j) {
+ i__2 = idxn + 1 + j - 1;
+ all_1.iorig[j - 1] = *(unsigned char *)&line[i__2] -
+ 48;
+ iposc0 = idxn + 1 + all_1.noinow;
+ i__2 = all_1.nvi[all_1.iorig[j - 1] - 1];
+ for (k = 1; k <= i__2; ++k) {
+ ++all_1.nvnow;
+/* clefq(nvnow) = line(iposc0+nvnow:iposc0+nvnow) */
+ all_1.instnum[all_1.nvnow - 1] = j;
+ all_1.botv[all_1.nvnow - 1] = k == 1 && j != 1;
+/* L25: */
+ }
+/* L24: */
+ }
+ }
+ }
+
+/* or if it's "h" or "l", need to suck up one more line */
+
+ if (*(unsigned char *)line == 'h' && i_indx("+- ", line + 1, (
+ ftnlen)3, (ftnlen)1) > 0 || *(unsigned char *)line == 'T'
+ || s_cmp(line, "l ", (ftnlen)2, (ftnlen)2) == 0) {
+ s_rsfe(&io___195);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ }
+
+/* 4/29/00 check for T string also */
+
+ } else {
+
+/* In setup mode. Set flag, flow out and do use following line */
+
+ all_1.replacing = TRUE_;
+ }
+ } else if (*(unsigned char *)&line[1] == '!') {
+
+/* Copy to all parts */
+
+ allparts_(line + 2, &c__125, (ftnlen)126);
+ } else {
+
+/* Get value of hex integer 1,2,...,9,a,b,c in 2nd position, zero otherwise */
+/* c Get value of extended hex integer 1,2,...,9,a,b,c,...,o in 2nd position, zero otherwise */
+
+ ivq = i_indx("123456789abcdefghijklmno", line + 1, (ftnlen)24, (
+ ftnlen)1);
+
+/* Only treat as part-specific pmx line if number .le. noinst */
+
+ if (ivq < 1 || ivq > all_1.noinst) {
+
+/* Simple comment. */
+
+ allparts_(line, &c__128, (ftnlen)128);
+ } else {
+
+/* Instrument comment, copy only to part */
+
+ lenline = lenstr_(line, &c__128, (ftnlen)128);
+ if (lenline > 2) {
+ io___198.ciunit = ivq + 10;
+ s_wsfe(&io___198);
+ do_fio(&c__1, line + 2, lenline - 2);
+ e_wsfe();
+ } else {
+
+/* Transferring blank line */
+
+ io___199.ciunit = ivq + 10;
+ s_wsfe(&io___199);
+ do_fio(&c__1, " ", (ftnlen)1);
+ e_wsfe();
+ }
+ }
+ }
+ i__1 = s_rsfe(&io___200);
+ if (i__1 != 0) {
+ goto L2;
+ }
+ i__1 = do_fio(&c__1, line, (ftnlen)128);
+ if (i__1 != 0) {
+ goto L2;
+ }
+ i__1 = e_rsfe();
+ if (i__1 != 0) {
+ goto L2;
+ }
+ zapbl_(line, &c__128, (ftnlen)128);
+ goto L1;
+L2:
+ return 0;
+} /* chkcom_ */
+
+/* Subroutine */ int dosetup_(integer *iv, char *line, integer *mtrnum,
+ integer *mtrden, ftnlen line_len)
+{
+ /* System generated locals */
+ integer i__1, i__2;
+
+ /* Builtin functions */
+ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void),
+ i_nint(real *);
+
+ /* Local variables */
+ static integer ioi, noi, iset;
+ static real xdata;
+ static integer iccount;
+ extern /* Subroutine */ int partnum_(integer *, integer *, char *, real *,
+ ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___204 = { 0, 40, 0, "(i5)", 0 };
+ static cilist io___206 = { 0, 40, 0, "(i5)", 0 };
+ static cilist io___208 = { 0, 40, 0, "(i5)", 0 };
+ static cilist io___209 = { 0, 40, 0, "(i5)", 0 };
+ static cilist io___210 = { 0, 40, 0, "(i5)", 0 };
+ static cilist io___211 = { 0, 40, 0, "(i5)", 0 };
+ static cilist io___212 = { 0, 40, 0, "(f5.2)", 0 };
+
+
+
+/* Transfers setup data from scratch file to real one for one instrument */
+/* Data may be mixed with comments, but on entry 1st item is a number. */
+/* Write a comment when encountered, as it comes. */
+/* Write numbers one per line. */
+/* Three input data require special handling: */
+/* If not already replaced, i.e., if negative, then */
+/* iset(1) (nv) will be replaced with nvi(i) */
+/* iset(9) (npages) will be replaced with (nsyst-1)/12+1 */
+/* iset(2), if negative, will be followed by extra numbers to be transf. */
+
+ iccount = 0;
+ for (iset = 1; iset <= 12; ++iset) {
+ partnum_(iv, &iccount, line, &xdata, (ftnlen)128);
+ if (iset == 2) {
+ if (xdata > 0.f) {
+ s_wsfe(&io___204);
+ i__1 = (integer) (xdata + .1f);
+ do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsfe();
+ } else {
+ noi = -xdata + .1f;
+ s_wsfe(&io___206);
+ do_fio(&c__1, (char *)&noi, (ftnlen)sizeof(integer));
+ e_wsfe();
+ i__1 = noi;
+ for (ioi = 1; ioi <= i__1; ++ioi) {
+ partnum_(iv, &iccount, line, &xdata, (ftnlen)128);
+ s_wsfe(&io___208);
+ i__2 = (integer) (xdata + .1f);
+ do_fio(&c__1, (char *)&i__2, (ftnlen)sizeof(integer));
+ e_wsfe();
+/* L2: */
+ }
+ }
+/* else if (iset.ne.8 .and. xdata.lt.0) then */
+ } else if (iset != 8 && iset != 5 && xdata < 0.f) {
+
+/* Must be either nv or npages */
+
+ if ((integer) (-xdata + .1f) == 999) {
+
+/* It's nv */
+
+ s_wsfe(&io___209);
+ do_fio(&c__1, (char *)&all_1.nvi[*iv - 1], (ftnlen)sizeof(
+ integer));
+ e_wsfe();
+ } else {
+
+/* npages must be computed */
+
+ s_wsfe(&io___210);
+ i__1 = (all_1.nsyst - 1) / 12 + 1;
+ do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsfe();
+ }
+ } else if (iset != 7 && iset != 12) {
+
+/* write integer */
+
+ s_wsfe(&io___211);
+ i__1 = i_nint(&xdata);
+ do_fio(&c__1, (char *)&i__1, (ftnlen)sizeof(integer));
+ e_wsfe();
+ } else {
+
+/* write floating number */
+
+ s_wsfe(&io___212);
+ do_fio(&c__1, (char *)&xdata, (ftnlen)sizeof(real));
+ e_wsfe();
+ }
+ if (iset == 3) {
+ *mtrnum = i_nint(&xdata);
+ } else if (iset == 4) {
+ *mtrden = i_nint(&xdata);
+ }
+/* L1: */
+ }
+ return 0;
+} /* dosetup_ */
+
+/* Subroutine */ int partnum_(integer *iv, integer *iccount, char *line, real
+ *xdata, ftnlen line_len)
+{
+ /* System generated locals */
+ address a__1[3];
+ integer i__1[3];
+ char ch__1[27], ch__2[6], ch__3[1];
+ icilist ici__1;
+
+ /* Builtin functions */
+ integer s_rsfe(cilist *), do_fio(integer *, char *, ftnlen), e_rsfe(void),
+ s_wsfe(cilist *), e_wsfe(void), i_indx(char *, char *, ftnlen,
+ ftnlen), s_wsle(cilist *);
+ /* Subroutine */ int s_cat(char *, char **, integer *, integer *, ftnlen);
+ integer do_lio(integer *, integer *, char *, ftnlen), e_wsle(void);
+ /* Subroutine */ int s_stop(char *, ftnlen);
+ integer s_rsfi(icilist *), e_rsfi(void);
+
+ /* Local variables */
+ static integer i1, i2, icf, len;
+ static char durq[1];
+ extern integer lenstr_(char *, integer *, ftnlen);
+ extern /* Subroutine */ int getchar_(char *, integer *, char *, ftnlen,
+ ftnlen);
+
+ /* Fortran I/O blocks */
+ static cilist io___213 = { 0, 0, 0, "(a)", 0 };
+ static cilist io___215 = { 0, 40, 0, "(a)", 0 };
+ static cilist io___219 = { 0, 6, 0, 0, 0 };
+
+
+
+/* Simplified number parsing. Only looks for comment lines and numbers. */
+
+L2:
+ if (*iccount == 128) {
+ io___213.ciunit = *iv + 10;
+ s_rsfe(&io___213);
+ do_fio(&c__1, line, (ftnlen)128);
+ e_rsfe();
+ if (*(unsigned char *)line == '%') {
+ len = lenstr_(line, &c__128, (ftnlen)128);
+ s_wsfe(&io___215);
+ do_fio(&c__1, line, len);
+ e_wsfe();
+ goto L2;
+ }
+ *iccount = 0;
+ }
+ ++(*iccount);
+
+/* Find next non-blank or end of line */
+
+ for (*iccount = *iccount; *iccount <= 127; ++(*iccount)) {
+ if (*(unsigned char *)&line[*iccount - 1] != ' ') {
+ goto L3;
+ }
+/* L4: */
+ }
+
+/* If here, iccount=128 and need to get a new line */
+
+ goto L2;
+L3:
+
+/* iccount now points to start of number to read */
+
+ i1 = *iccount;
+L5:
+ getchar_(line, iccount, durq, (ftnlen)128, (ftnlen)1);
+
+/* Remember that getchar first increments iccount, *then* reads a character. */
+
+ if (i_indx("0123456789.-", durq, (ftnlen)12, (ftnlen)1) > 0) {
+ goto L5;
+ }
+ i2 = *iccount - 1;
+ if (i2 < i1) {
+ s_wsle(&io___219);
+/* Writing concatenation */
+ i__1[0] = 7, a__1[0] = "Found \"";
+ i__1[1] = 1, a__1[1] = durq;
+ i__1[2] = 19, a__1[2] = "\" instead of number";
+ s_cat(ch__1, a__1, i__1, &c__3, (ftnlen)27);
+ do_lio(&c__9, &c__1, ch__1, (ftnlen)27);
+ e_wsle();
+ s_stop("1", (ftnlen)1);
+ }
+ icf = i2 - i1 + 49;
+ ici__1.icierr = 0;
+ ici__1.iciend = 0;
+ ici__1.icirnum = 1;
+ ici__1.icirlen = i2 - (i1 - 1);
+ ici__1.iciunit = line + (i1 - 1);
+/* Writing concatenation */
+ i__1[0] = 2, a__1[0] = "(f";
+ *(unsigned char *)&ch__3[0] = icf;
+ i__1[1] = 1, a__1[1] = ch__3;
+ i__1[2] = 3, a__1[2] = ".0)";
+ ici__1.icifmt = (s_cat(ch__2, a__1, i__1, &c__3, (ftnlen)6), ch__2);
+ s_rsfi(&ici__1);
+ do_fio(&c__1, (char *)&(*xdata), (ftnlen)sizeof(real));
+ e_rsfi();
+ return 0;
+} /* partnum_ */
+
+
+/* Subroutine */ int zapbl_(char *string, integer *len, ftnlen string_len)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Builtin functions */
+ /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
+
+ /* Local variables */
+ static integer i__;
+
+ i__1 = *len;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ if (*(unsigned char *)&string[i__ - 1] == ' ') {
+ goto L1;
+ }
+ if (i__ == 1) {
+ return 0;
+ }
+ goto L2;
+L1:
+ ;
+ }
+
+/* If line is all blank, leave it alone */
+
+ return 0;
+L2:
+ s_copy(string, string + (i__ - 1), string_len, *len - (i__ - 1));
+ return 0;
+} /* zapbl_ */
+
+/* Subroutine */ int oddquotesbefore_(char *lineq, integer *indx, logical *
+ yesodd, ftnlen lineq_len)
+{
+ /* System generated locals */
+ integer i__1;
+
+ /* Local variables */
+ static integer i__, numdqs;
+
+
+/* This counts number of double quotes in lineq up to position indx-1, then */
+/* sets yesodd according to whether number is odd or even */
+
+ numdqs = 0;
+ i__1 = *indx - 1;
+ for (i__ = 1; i__ <= i__1; ++i__) {
+ if (*(unsigned char *)&lineq[i__ - 1] == '"') {
+ ++numdqs;
+ }
+/* L1: */
+ }
+ *yesodd = numdqs % 2 == 1;
+ return 0;
+} /* oddquotesbefore_ */
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/scor2prt.f b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.f
new file mode 100644
index 00000000000..c784301d046
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.f
@@ -0,0 +1,1619 @@
+cccccccccccccccccccccccccc
+cc
+cc scor2prt 7/24/11 for PMX 2.615
+cccccccccccccccccccccccccc
+c This program, developed by Don Simons (dsimons@roadrunner.com), is
+c part of the PMX distribution, PMX is a preprocessor for MusiXTeX. In concert
+c with MusiXTeX and TeX, the purpose of PMX is to allow the user to create
+c high-quality typeset musical scores by including a sequence of PMX commands
+c in an ASCII input file. Scor2prt is an auxiliary program that creates PMX
+c input files for individual parts from the PMX input file for the score.
+c
+c This program is free software: you can redistribute it and/or modify
+c it under the terms of the GNU General Public License as published by
+c the Free Software Foundation, either version 3 of the License, or
+c (at your option) any later version.
+c
+c This program is distributed in the hope that it will be useful,
+c but WITHOUT ANY WARRANTY; without even the implied warranty of
+c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+c GNU General Public License for more details.
+c
+c You should have received a copy of the GNU General Public License
+c along with this program. If not, see <http://www.gnu.org/licenses/>.
+c
+c
+c 7/18/11
+c Start to fix up for AS..., also Ki was done a little earlier.
+c 7/5/10
+c Modify Manual to explain extended hex numbering for part-specific comments
+c 5/16/10
+c Extend part-specific comments for up to 24 parts (subroutine chkcom)
+c Allow files 11-34 for parts
+c Change file 30 to 40
+c 6/1/08 es2p
+c noimax = 24
+c
+c To do
+c Override fracindent, musicsize?
+c Deal with midbar R?
+c 2/29/04
+c Check for special character being in quoted string.
+c 10/20/02 PMX 2.407
+c Interpret AN[n]"[used-defined-part-file-name]"
+c 1/21/02
+c Deals with rm in multiple parts.
+c s2p15
+c Get right non-tex index even if there's "\" inside D"..."
+c s2p14
+c 10/29/00 fix transfer to parts of negative mtrdnp
+c 4/29/00 screen for "%%" followed by "T"
+c Restore change from "Version 2.1a, 21 Dec"
+c s2p13
+c Allow whole-bar double-whole rests.
+c Bypass MIDI commands "I..." achar(10)="I"
+c s2p12
+c Let %ablabla ... %cblabla represent pmx input for parts 10-12. But %?blabla
+c only taken as such if ? represents a hex digit .le. noinst, otherwise it's
+c a simple comment. This lessens incompatibility.
+c In subroutine mbrest, properly open parts 10-12 if needed
+c s2p11
+c Ignore leading blanks
+c Fix undefined linelength in mbrest at very end of comments.
+c s2p10
+c Fix non-transfer of P..c" "
+c Allow "%%" and "%"n anywhere
+c Version 1.43
+c Fix bug with P in TeX string.
+c Ignore shifted whole-bar rests when consolidating whole-bar rests
+c Copy type 4 TeX into all parts.
+c Deal with XB and XP.
+c Permit transfer of blank line into parts
+c Change staves/inst in 'M' command.
+c Arbitrary staves/inst.
+c Recognize m1/2/3/4 syntax.
+c Enable comment and one-voice syntax in instrument names
+c
+c Changes since 1.1
+c Deal with saved macros.
+c Revise setup readin, to admit comments.
+c Do not copy 'X' into parts
+c
+cccccccccccccccccccccccccccccccccccccccccccccccc
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ integer*4 ludpfn(noimax)
+ character*1 sq,achar(10)
+ character*2 termsym
+ character*27 jobname,infileq
+ character*128 instrum(noimax),udpfnq(noimax)
+ character*128 line,holdln,templine
+ logical termrpt,isachar,frstln,oneof2,botv,clefpend,fexist,
+ * insetup,replacing,gotname,yesodd
+ data achar /'P','m','V','R','A','h','w','K','M','I'/
+ clefpend = .false.
+ insetup = .true.
+ replacing = .false.
+ frstln = .true.
+ lenhold = 0
+ sq = char(92)
+ print*,'This is scor2prt for PMX 2.615, 24 July 2011'
+ numargs = iargc()
+ if (numargs .eq. 0) then
+ print*,'You could have entered a jobname on the command line,'
+ print*,' but you may enter one now:'
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+c call getarg(1,jobname,idum) ! May need to replace this w/ next line
+ call getarg(1,jobname)
+ end if
+ ljob = lenstr(jobname,27)
+ if (ljob .eq. 0) then
+ print*,'No was jobname entered. Restart and try again.'
+ stop
+ end if
+c
+c Strip ".pmx" if necessary
+c
+ ndxpmx = max(index(jobname,'.pmx'),index(jobname,'.PMX'))
+ if (ndxpmx .gt. 0) then
+ jobname = jobname(1:ndxpmx-1)
+ ljob = ljob-4
+ end if
+c
+c Check for existence of input file
+c
+ infileq = jobname(1:ljob)//'.pmx'
+ inquire(file=infileq,EXIST=fexist)
+ if (.not.fexist) then
+ print*,'Cannot find file '//infileq
+ stop
+ end if
+ open(10,file=jobname(1:ljob)//'.pmx')
+c
+c Open all instrument files now for allparts stuff. Later disgard those >nv
+c
+ do 19 iv = 1 , noimax
+ iorig(iv) = iv
+ open(10+iv,status='SCRATCH')
+ ludpfn(iv) = 0
+19 continue
+ read(10,'(a)')line
+ call chkcom(line)
+ if (line(1:3) .eq. '---') then
+ call allparts(line,128)
+31 read(10,'(a)')line
+ if (line(1:3) .ne. '---') then
+ call allparts(line,128)
+ go to 31
+ end if
+ call allparts(line,128)
+ read(10,'(a)')line
+ call chkcom(line)
+ end if
+ iccount = 0
+ nv = readin(line,iccount,1)+.1
+ noinst = readin(line,iccount,2)+.1
+ if (noinst .gt. 0) then
+ nvi(1) = nv-noinst+1
+ else
+ noinst = 1-noinst
+ do 21 iinst = 1 , noinst
+ nvi(iinst) = readin(line,iccount,-1)+.1
+21 continue
+ end if
+ noinow = noinst
+ insnow = 1
+c
+c ivlast is last iv in current inst. instnum(iv) is iinst for current voice.
+c
+ ivlast = nvi(1)
+ do 22 iv = 1 , nv
+ instnum(iv) = insnow
+ if (iv .eq. ivlast) then
+ if (iv .lt. nv) botv(iv+1) = .true.
+c
+c The previous stmt will set botv true only for bot voice of iinst>1. It is
+c used when writing termrpts, but the one in voice one is handled differently,
+c so botv(1) is left .false.
+c
+ if (insnow .lt. noinst) then
+ insnow = insnow+1
+ ivlast = ivlast+nvi(insnow)
+ end if
+ end if
+22 continue
+ mtrnuml = readin(line,iccount,0)+.1
+ mtrdenl = readin(line,iccount,0)+.1
+ mtrnmp = readin(line,iccount,0)+.1
+ mtrdnp = readin(line,iccount,0)+.1
+ xmtrnum0 = readin(line,iccount,0)
+ isig = readin(line,iccount,0)+.1
+ npages = readin(line,iccount,3)+.1
+ nsyst = readin(line,iccount,0)+.1
+ musicsize = readin(line,iccount,4)+.1
+ fracindent = readin(line,iccount,5)
+ if (npages .eq. 0) then
+ print*,
+ *'You entered npages=0, which means nsyst is not the total number'
+ print*,
+ *'of systems. Scor2prt has to know the total number of systems.'
+ print*,
+ *'Please set npages and nsyst to their real values.'
+ stop
+ end if
+c
+c Must leave insetup=.true. else could bypass ALL instrument names.
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ backspace(10)
+c
+c Normally this puts pointer at start of line with 1st inst name
+c Check if prior line was "%%"
+c
+ backspace(10)
+ read(10,'(a)')line
+ if (line(1:2) .eq. '%%') backspace(10)
+ do 14 iv = 1 , noinst
+ gotname = .false.
+16 read(10,'(a)') instrum(iv)
+ if (instrum(iv)(1:2) .eq. '%%') then
+ read(10,'(a)')line
+ go to 16
+ else if (instrum(iv)(1:1) .eq. '%') then
+ ivq = ichar(instrum(iv)(2:2))-48
+ if (ivq.ne.iv) then
+c
+c It's really a comment. Copy to parts, then get another trial name.
+c
+ call allparts(instrum(iv),128)
+ go to 16
+ else
+ line = instrum(iv)(3:)
+ instrum(iv) = line
+ gotname = .true.
+ end if
+ else
+ gotname = .true.
+ end if
+cc
+cc The following checks for macro that write original C-clef as part of
+cc instrument name. See pmx.tex
+cc
+c if (index(instrum(iv),'namewpc') .eq. 0) then
+c write(10+iv,'(a)')' '
+c else
+c inm1 = index(instrum(iv),'{')+1
+c inm2 = index(instrum(iv),'}')-1
+c read(instrum(iv)(inm2+2:inm2+8),'(i1,4x,2i1)')ilev,iy1,iy2
+c write(10+iv,'(a)')sq//'namewpc{}'//char(ilev+48)//'{20}'//
+c * char(iy1+49)//char(iy2+49)
+c instrum(iv) = instrum(iv)(inm1:inm2)
+c end if
+ if (.not.gotname) then
+ print*,'You must provide a replacement instrument name'
+ stop
+ end if
+ write(10+iv,'(a)')' '
+14 continue
+ replacing = .false.
+ nvnow = nv
+c
+c Clef string: Note insetup is still T, so "%%" will be treated specially
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ if (replacing) then
+c
+c If here, we have next line after "%%", containing score's clef string
+c Assume all clefs are handled with instrument comments.
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ backspace(10)
+ else
+c
+c If here, line has the clef string in it. Handle the old way
+c
+ kvstart = 1
+ kvend = nvi(1)
+ do 2 inst = 1 , noinst
+ write(10+inst,'(a'//char(48+nvi(inst))//')')
+ * line(kvstart:kvend)
+ if (inst .lt. noinst) then
+ kvstart = kvend+1
+ kvend = kvstart+nvi(inst+1)-1
+ end if
+2 continue
+ end if
+ replacing = .false.
+ insetup = .false.
+c
+c *****NOTE*****This comment applies to stuff done earlier!
+c Before starting the big loop, copy initial instnum and staffnum stuff
+c into working values. Latter may change if noinst changes. Also make
+c list of current inst nums relative to original ones. In addition to those
+c below, must redo instnum(iv) and botv(iv) when we change noinst.
+c
+c Path string: ASSUME THIS WILL NEVER BE ALTERED IN PARTS!
+c
+18 read(10,'(a)') line
+ if (line(1:1) .eq. '%') then
+ call allparts(line,128)
+ go to 18
+ end if
+ call allparts(line,128)
+c
+c Write instrument names. Will be blank if later part of a score.
+c
+ if (instrum(1)(1:1) .ne. ' ') then
+ do 3 iv = 1 , noinst
+ len = lenstr(instrum(iv),79)
+ write(10+iv,'(a2/a)')'Ti',instrum(iv)(1:len)
+3 continue
+ end if
+c
+c The big loop. Except for '%%', put all comment lines in all parts.
+c Unless preceeded by '%%', put all type 2 or 3 TeX Strings in all parts
+c If a line starts with %!, put the rest of it in each part.
+c If a line starts with %[n], put the rest of it in part [n].
+c Check for Tt, Tc, Voltas, Repeats, headers, lower texts, meter changes.
+c Assume they only come at top of block, except terminal repeat needs
+c special handling.
+c Check for "P"; ignore in parts.
+c Check for consecutive full-bar rests; if found, replace with rm[nn]
+c
+ iv = 1
+ iinst = 1
+ termrpt = .false.
+4 read(10,'(a)',end=999)line
+ lenline = lenstr(line,128)
+ if (lenline .eq. 0) go to 4
+ call zapbl(line,128)
+ call chkcom(line)
+ lenline = lenstr(line,128)
+ if (lenline .eq. 0) go to 4
+ if (line(1:1) .eq. 'T') then
+ call allparts(line,128)
+ read(10,'(a)')line
+ call allparts(line,128)
+ go to 4
+ else if (line(1:2) .eq. sq//sq) then
+ call allparts(line,128)
+ go to 4
+ else if (index('hl',line(1:1)).gt.0 .and.
+ * index(' +-',line(2:2)) .gt. 0) then
+ call allparts(line,128)
+ read(10,'(a)')line
+ call allparts(line,128)
+ go to 4
+ else if (iv .eq. 1) then
+ do 5 ia = 1 , 10
+24 continue
+ idxa = ntindex(line,achar(ia))
+ isachar = idxa .gt. 0
+ if (idxa.gt.1) isachar = line(idxa-1:idxa-1).eq.' '
+c
+c 1 2 3 4 5 6 7 8 9 10
+c data achar /'P','m','V','R','A','h','w','K','M','I'/
+c
+ if (ia .eq. 9) isachar =
+ * isachar .and. line(idxa+1:idxa+1).eq.'S'
+ if (isachar) then
+c
+c Check whether character is inside a quoted string by counting
+c how many quotes precede it in the line
+c
+
+ call OddQuotesBefore(line,idxa,yesodd)
+ if (yesodd) isachar=.false.
+ end if
+ if (isachar) then
+c
+c Find next blank
+c
+ do 6 ib = idxa+1 , 128
+ if (line(ib:ib) .eq. ' ') go to 7
+6 continue
+ print*,'Problem with "V,R,m,P,A,h,MS, or w"'
+ print*,
+ * 'Send files to Dr. Don at dsimons at roadrunner dot com'
+ stop 1
+7 continue
+c
+c Next blank is at position ib. Later, if ia=1, must check for Pc" " ;
+c i.e., look for '"' between P and blank
+c
+ if (ia .eq. 4) then
+c
+c Check for terminal repeat. Note if there's a term rpt, there can't be any
+c others. Also, must process repeats LAST, after m's and 'V's
+c
+ do 8 ic = ib+1 , 128
+c
+c If any subsequent character on this line is neither blank nor "/", get out
+c
+ if (index(' /',line(ic:ic)) .eq. 0) go to 9
+ if (line(ic:ic) .eq. '/') then
+ termrpt = .true.
+ termsym = line(ib-2:ib-1)
+c
+c Process the line as if there were no "R"
+c
+ go to 10
+ end if
+8 continue
+c
+c +++ 060812
+c If here, all chars after "R" symbol are blanks, so process the line normally,
+c but only IF next line is not the M-Tx line " /"
+c
+ read(10,'(a)')templine
+ if (templine(1:2) .ne. ' /') then
+ backspace(10) ! and flow out
+ else
+c
+c We have the M-Tx case where one line ends with R? and next is " /". Add / to the line,
+c and proceed as above
+c
+ line = line(1:ib)//'/'
+ lenline = lenline+2
+ termrpt = .true.
+ termsym = line(ib-2:ib-1)
+ go to 10
+ end if
+c +++ 060812
+c
+ else if (ia .eq. 1) then
+ idxq = ntindex(line,'"')
+ if (idxq.gt.idxa .and. idxq.lt.ib) then
+c
+c Quote is between P and next blank. Find 2nd quote, starting at the blank.
+c
+ idxq2 = ib-1+ntindex(line,'"')
+ if (idxq.eq.0 .or. line(idxq2+1:idxq2+1).ne.' ') then
+ print*
+ print*,'Error copying P with quotes, idxq2:',idxq2
+ print*,line(1:60)
+ stop 1
+ end if
+ ib = idxq2+1
+ end if
+c
+c Do not transfer P into parts.
+c
+ go to 12
+ else if (ia .eq. 9) then
+c
+c Start Saving a macro. After leaving here, a symbol will be sent to all parts,
+c If all on this line, set ib to end and exit normally.
+c
+ ndxm = index(line(ib+1:128),'M')
+ if (ndxm.gt.0 .and. line(ib+ndxm-1:ib+ndxm-1).eq.' ') then
+c
+c Macro ends on this line
+c
+ ib = ib+ndxm+1
+ else
+c
+c Save leading part of current line
+c
+ lenhold = idxa-1
+ if (lenhold .gt. 0) holdln = line(1:lenhold)
+c
+c Transfer rest of line
+c
+ call allparts(line(idxa:128),129-idxa)
+c
+c Read next line
+c
+20 read(10,'(a)')line
+c
+c Check for comment, transfer and loop if so
+c
+c if (line(1:1) .eq.'%') then
+23 if (line(1:1) .eq.'%') then
+c call allparts(line,128)
+c go to 20
+ call chkcom(line)
+ go to 23
+ end if
+c
+c Look for terminal ' M'
+c
+ if (line(1:1) .eq. 'M') then
+ ndxm = 1
+ else
+ ndxm = index(line,' M')
+ if (ndxm .gt. 0) ndxm = ndxm+1
+ end if
+ if (ndxm .gt. 0) then
+c
+c Set parameters, exit normally (but later check for leading part of 1st line
+c
+ idxa = 1
+ ib = ndxm+1
+ else
+c
+c No "M", transfer entire line, loop
+c
+ call allparts(line,128)
+ go to 20
+ end if
+ end if
+ else if (ia .eq. 10) then
+c
+c Do not transfer MIDI command into parts
+c
+ go to 12
+ else if (ia .eq. 5) then
+c
+c First check for "AS", but S may come after other "A" options
+c
+ idxS = index(line(idxa+1:ib),'S')
+ if (idxS .gt. 0) then
+c
+c Get rid of the string. First check if that's all there is in A.
+c
+ if (ib-idxa .eq. nv+2) go to 12
+ line = line(1:idxa+idxS-1)//line(idxa+idxS+nv+1:ib)
+ end if
+c
+c Check for user-defined part file name. Must start in column 1 and have
+c AN[n]"userfilename".
+c idxa is position of "A"
+c ib is position of the next blank after "A"
+c Don't allow any blanks in user
+c
+ if (line(idxa+1:idxa+1) .ne. 'N') go to 9 ! bail out
+ if (idxa .ne. 1) then
+ print*
+ print*,
+ * 'You entered "AN..." somewhere beyond first column; stopping.'
+ stop 1
+ end if
+c
+c pmxa already checked for valid one- or 2-digit number, so get it
+c
+ if (line(4:4) .eq. '"') then
+c
+c Single digit instrument number
+c
+ read(line(3:3),'(i1)')iudpfn
+ idxstartname = 5
+ else
+ read(line(3:4),'(i2)')iudpfn
+ idxstartname = 6
+ end if
+ ludpfn(iudpfn) = index(line(idxstartname:128),'"')-1
+ if (ludpfn(iudpfn) .lt. 0) then
+ print*
+ print*,'User-defined part file name must be in quotes'
+ stop 1
+ end if
+ idxendname = idxstartname+ludpfn(iudpfn)-1
+ udpfnq(iudpfn) = line(idxstartname:idxendname)
+c
+c Get a new line!
+c
+ go to 4
+ else if (ia .eq. 8) then
+c
+c Key change/transposition.
+c If not instrument specific, copy to all parts
+c
+ if (line(idxa+1:idxa+1).ne.'i') go to 9
+c
+c Instrument-wise key/transposition(s): Ki[nn][+/-][dd}[+/-][dd]...
+c
+ ibb = idxa+2 ! Starts on digit after 'i'
+40 continue
+ read(line(ibb:ibb),'(i1)')iiinst ! 1st digit of iinst
+ itemp = (index('01234567890',line(ibb+1:ibb+1)))
+ if (itemp.gt.0) then
+ ibb = ibb+1
+ iiinst = 10*iiinst+itemp-1
+ end if
+ ibb = ibb+1 ! now at first +/-. Need end of 2nd number
+ itemp = index(line(ibb+1:ib),'i') ! Rel pos'n of next 'i' or 0
+ if (itemp .gt. 0) then
+ iend = ibb+itemp-1
+ else
+ iend = ib-1
+ end if
+ write(10+iorig(iiinst),'(a)')'Ki1'//line(ibb:iend)
+ if (itemp .gt. 0) then
+ ibb = iend+2
+ go to 40
+ end if
+ go to 12 ! Remove K command from string, go to next ia
+ end if
+9 continue
+ call allparts(line(idxa:ib-1),ib-idxa)
+12 continue
+c
+c Remove the string from line
+c
+ if (idxa .eq. 1) then
+ line = line(ib:128)
+ else
+ line = line(1:idxa-1)//line(ib:128)
+ end if
+ lenline = lenstr(line,128)
+c
+c Loop if only blanks are left
+c
+ if (lenline .eq. 0) go to 4
+c
+c Must check for multiple "I" commands, so go to just after start of ia loop
+c
+ if (ia .eq. 10) go to 24
+c
+c Tack on front part from 1st line of saved macro
+c
+ if (lenhold .gt. 0) then
+ line = holdln(1:lenhold)//' '//line(1:lenline)
+ lenhold = 0
+ end if
+ end if
+5 continue
+ end if
+c
+c Now a special loop to deal with 'X'. If it was %[n]X..., will have been
+c copied into part [n] already. If no "B" or "P", remove. If "P", just
+c remove the "P" so pmxa/b will process. If "B". do nothing.
+c
+10 continue
+ nchk = 1
+13 ntinx = nchk-1+ntindex(line(nchk:),'X')
+ if (ntinx .gt. nchk-1) then
+c
+c There is a non-TeX 'X' at ntinx. Loop if neither 1st nor after a blank.
+c
+ if (ntinx.gt.1) then
+ if (line(ntinx-1:ntinx-1).ne.' ') then
+c
+c The X is not 1st char of PMX command. Advance starting point, loop.
+c
+ nchk = ntinx+1
+ go to 13
+ end if
+ end if
+c
+c We now know the X at ntinx starts a PMX command. Find next blank
+c
+ ib = ntinx+index(line(ntinx+1:),' ')
+c
+c There must be a blank to right of "X", so ib>ntinx
+c
+c locp = nchk-1+index(line(nchk:ib),'P')
+ locp = ntinx+index(line(ntinx+1:ib),'P')
+c
+c Did not need to use ntindex because we already know bounds of PMX command.
+c
+c if (locp .gt. nchk-1) then
+ if (locp .gt. ntinx) then
+c
+c Strip out the 'P'
+c
+ templine = line(1:locp-1)
+ line = templine(1:locp-1)//line(locp+1:lenline)
+ lenline = lenline-1
+ ib = ib-1
+ end if
+ if (index(line(ntinx:ib),':').gt.0 .or.
+ * index(line(ntinx:ib),'S').gt.0 .or.
+ * index(line(ntinx:ib),'B').gt.0 .or. locp.gt.ntinx) then
+c
+c The X command is a shift, "Both", or "Part". Do not remove.
+c
+ nchk = ib+1
+ go to 13
+ end if
+c
+c Remove the X command.
+c
+ if (ntinx .eq. 1) then
+ if (ib .lt. lenline) then
+ line = line(ib+1:lenline)
+ else
+c
+c line contains ONLY the "X" command, so get a new line
+c
+ go to 4
+ end if
+ else
+ templine = line(1:ntinx-1)
+ if (ib .lt. lenline) then
+ line = templine(1:ntinx-1)//line(ib+1:lenline)
+ else
+ line = templine(1:ntinx-1)
+ end if
+ end if
+c
+c Recompute lenline
+c
+ lenline = lenstr(line,128)
+c
+c Resume checking after location of removed command.
+c
+ nchk = ntinx
+ go to 13
+ end if
+c
+c End of loop for X-checks
+c
+ oneof2 = ntindex(line,'//') .gt. 0
+ if (termrpt .and. botv(iv) .and. frstln .and.
+ * line(lenline:lenline).eq.'/') then
+c
+c Must add a terminal repeat before the slash
+c
+ if (oneof2) lenline = lenline-1
+ if (lenline.gt.1) write(10+iorig(iinst),'(a)')line(1:lenline-1)
+ if (.not. oneof2) then
+ line = termsym//' /'
+ lenline = 4
+ else
+ line = termsym//' //'
+ lenline = 5
+ end if
+ end if
+ if (termrpt .and. frstln .and. line(lenline:lenline).eq.'/' .and.
+ * iv.eq.nvnow) termrpt = .false.
+ write(10+iorig(iinst),'(a)')line(1:lenline)
+ if (oneof2) then
+ frstln = .false.
+ else if (.not.frstln) then
+ frstln = .true.
+ end if
+c if (ntindex(line,'/').gt.0 .and. index(line,'//').eq.0) then
+ if (ntindex(line,'/').gt.0 .and. ntindex(line,'//').eq.0) then
+ iv = 1+mod(iv,nvnow)
+ iinst = instnum(iv)
+ end if
+ go to 4
+999 continue
+ close(10)
+c
+c In the mbrest checks, must run through ALL noinst files (not just noinow)
+c
+ do 11 iinst = 1 , noinst
+ccc+++
+cc
+cc Temporarily transfer entire scratch file to real file
+cc
+c rewind(10+iinst)
+c open(40,file='s2pout'//char(48+iinst)//'.pmx')
+c do 50 m = 1 , 10000
+c read(10+iinst,'(a)',end=51)line
+c lenline = lenstr(line,128)
+c if (lenline .ge. 1) then
+c write(40,'(a)')line(1:lenline)
+c else
+c write(40,'(a)')' '
+c end if
+c50 continue
+c51 continue
+c close(40)
+ccc+++
+ if (nvi(iinst) .eq. 1) then
+ call mbrests(iinst,jobname,ljob,ludpfn(iinst),udpfnq(iinst))
+ else
+c
+c Send a signal with ljob to bypass most mbrest processing
+c
+ call mbrests(iinst,jobname,-ljob,ludpfn(iinst),udpfnq(iinst))
+ end if
+11 continue
+ end
+ function lenstr(string,n)
+ character*(*) string
+ do 1 lenstr = n , 1 , -1
+ if (string(lenstr:lenstr) .ne. ' ') return
+1 continue
+ lenstr = 0
+ return
+ end
+ subroutine allparts(string,n)
+ parameter (noimax=24)
+ character*(*) string
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+ len = lenstr(string,n)
+ if (len .eq. 0) then
+ len = 1
+ string = ' '
+ end if
+ do 1 iinst = 1 , noinow
+ write(10+iorig(iinst),'(a)')string(1:len)
+1 continue
+ return
+ end
+ subroutine mbrests(iv,jobname,ljob,ludpfn,udpfnq)
+ character*128 line(50),line1,udpfnq
+ character*80 sym
+ character*12 jobname
+ character*3 wbrsym(2)
+ character*2 partq
+ character*1 sq
+ logical wbrest,alldone,rpfirst,newmtr,type4
+ type4 = .false.
+ sq = char(92)
+ alldone = .false.
+ rewind(10+iv)
+c open(20,file=jobname(1:abs(ljob))//char(48+iv)//'.pmx')
+ if (iv .lt. 10) then
+ partq(1:1) = char(48+iv)
+ lpart = 1
+c
+c 5/16/10 Fix for >20 parts
+c
+c else
+c partq = '1'//char(38+iv)
+c lpart = 2
+ else
+ lpart = 2
+ if (iv .lt. 20) then
+ partq = '1'//char(38+iv)
+ else
+ partq = '2'//char(28+iv)
+ end if
+ end if
+c if (ludpfn .eq. 0) then
+ open(40,file=jobname(1:abs(ljob))//partq(1:lpart)//'.pmx')
+c else
+c open(30,file=udpfnq(1:ludpfn)//'.pmx')
+c end if
+ do 10 i = 1 , 10000
+ read(10+iv,'(a)')line(1)
+ if (line(1)(1:1).eq.'%' .or. line(1)(1:3).eq.'---'
+ * .or. type4) then
+ len = lenstr(line(1),128)
+ if (len .gt. 0) then
+ write(40,'(a)')line(1)(1:len)
+ else
+ write(40,'(a)')' '
+ end if
+ if (line(1)(1:3).eq.'---') type4 = .not.type4
+ else
+ go to 11
+ end if
+10 continue
+ print*,'You should not be here in scor2prt. Call Dr. Don'
+ stop
+11 continue
+c
+c Finished reading opening type4 TeX and comments. Next line to be read
+c will contain the first of the input numbers
+c
+ call dosetup(iv,line(1),mtrnum,mtrden)
+ do 1 i = 1 , 10000
+13 read(10+iv,'(a)',end=999)line(1)
+7 len = lenstr(line(1),128)
+c
+c Pass-through if instrumnet has >1 voice.
+c
+ if (ljob .lt. 0) go to 2
+ if (index('TtTiTch+h-h l ',line(1)(1:2)) .gt. 0) then
+c
+c Traps titles, instruments, composers, headers, lower strings. Read 2 lines.
+c
+ write(40,'(a)')line(1)(1:len)
+ read(10+iv,'(a)')line(1)
+ len = lenstr(line(1),128)
+ go to 2
+ end if
+ if (i.eq.1 .or. (i.gt.5.and.line(1)(1:1).eq.'m')) then
+c
+c NOTE! The above test is truly bogus.
+c
+ if (line(1)(1:1) .eq. '%') then
+ write(40,'(a)')line(1)(1:len)
+ go to 13
+ end if
+ if (i .eq. 1) then
+c read(line(1),'(10x,2i5)')mtrnum,mtrden
+ else
+c
+c Check for slashes (new meter change syntax)
+c
+ idxs = index(line(1),'/')
+ idxb = index(line(1),' ')
+ newmtr = idxs.gt.0 .and. (idxb.eq.0 .or. idxs.lt.idxb)
+ if (.not.newmtr) then
+c
+c Old way, no slashes, uses 'o' for lonesome '1'
+c
+ icden = 3
+ if (line(1)(2:2) .eq. 'o') then
+ mtrnum = 1
+ else
+ mtrnum = ichar(line(1)(2:2))-48
+ if (mtrnum .eq. 1) then
+ icden = 4
+ mtrnum = 10+ichar(line(1)(3:3))-48
+ end if
+ end if
+ mtrden = ichar(line(1)(icden:icden))-48
+ else
+c
+c New way with slashes: idxs is index of 1st slash!
+c
+ read(line(1)(2:idxs-1),'(i'//char(48+idxs-2)//')')mtrnum
+ idxb = index(line(1)(idxs+1:),'/')
+ read(line(1)(idxs+1:idxs+idxb-1),
+ * '(i'//char(48+idxb-1)//')')mtrden
+ end if
+ end if
+ lenbeat = ifnodur(mtrden,'x')
+ lenmult = 1
+ if (mtrden .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbar = lenmult*mtrnum*lenbeat
+ call fwbrsym(lenbar,nwbrs,wbrsym,lwbrs)
+ end if
+ ip1 = 0
+ line1 = line(1)
+ do 3 iw = 0 , nwbrs
+ if (iw .gt. 0) then
+ idx = ntindex(line1,wbrsym(iw)(1:lwbrs))
+ if (idx .gt. 0) then
+c
+c Check for blank or shifted rest, discount it if it's there
+c
+ if (line1(idx+lwbrs:idx+lwbrs).ne.' ') idx = 0
+ end if
+ else
+ idx = ntindex(line1,'rp')
+c
+c Check for raised rest
+c
+ if (idx.gt.0) then
+ if (line1(idx+2:idx+2).ne.' ') idx = 0
+ end if
+ end if
+ if (idx .gt. 0) then
+ if (ip1 .eq. 0) then
+ ip1 = idx
+ else
+ ip1 = min(ip1,idx)
+ end if
+ end if
+3 continue
+ if (i.lt.5 .or. line(1)(1:1).eq.'%' .or. line(1)(1:2).eq.sq//sq
+ * .or. ip1.eq.0) go to 2
+c
+c Switch to multibar rest search mode!!! Start forward in line(1)
+c
+ rpfirst = line1(ip1:ip1+1) .eq. 'rp'
+ iline = 1
+ nmbr = 1
+ if (rpfirst) then
+ lwbrsx = 2
+ else
+ lwbrsx = lwbrs
+ end if
+ ipe = ip1+lwbrsx-1
+4 if (ipe .eq. len) then
+c
+c Need a new line
+c
+ iline = iline+1
+6 read(10+iv,'(a)',end=998)line(iline)
+ len = lenstr(line(iline),128)
+ if (line(iline)(1:1).eq.'%' ) then
+ write(40,'(a)')'% Following comment has been moved forward'
+ write(40,'(a)')line(iline)(1:len)
+ go to 6
+ end if
+ ipe = 0
+ go to 4
+998 continue
+c
+c No more input left
+c
+ print*,'All done!'
+ alldone = .true.
+ ipe = 0
+ iline = iline-1
+ len = lenstr(line(iline),128)
+ go to 4
+ else
+ if (alldone) then
+ sym(1:1) = ' '
+ else
+c
+c ipe<len here, so it's ok to get a symbol
+c
+ call nextsym(line(iline),len,ipe,ipenew,sym,lsym)
+ end if
+c
+c Check for end of block or bar line symbol
+c
+ if (index('/|',sym(1:1)) .gt. 0) then
+ ipe = ipenew
+ go to 4
+ else
+ wbrest = .false.
+ if (alldone) go to 12
+ do 5 iw = 1 , nwbrs
+ wbrest = wbrest .or. sym(1:lsym).eq.wbrsym(iw)(1:lwbrs)
+5 continue
+ wbrest = wbrest .or. (sym(1:lsym).eq.'r'.and.lwbrs.eq.2)
+ * .or. (sym(1:lsym).eq.'rd'.and.lwbrs.eq.3)
+ * .or. (sym(1:lsym).eq.'rp')
+ * .or. (sym(1:lsym).eq.'r' .and. rpfirst)
+12 if (wbrest) then
+ ipe = ipenew
+ nmbr = nmbr+1
+ go to 4
+ else
+c
+c AHA! Failed prev. test, so last symbol was *not* mbr.
+c It must be saved, and its starting position is ipenew-lsym+1
+c
+ if (nmbr .gt. 1) then
+c
+c Write stuff up to start of mbr
+c
+ if (ip1 .gt. 1) write(40,'(a)')line(1)(1:ip1-1)
+c
+c Insert mbr symbol. Always end with a slash just in case next sym must be
+c at start of block. May think this causes undefined octaves, but
+c probably not since it's a single voice.
+c
+ ndig = int(alog10(nmbr+.01))+1
+ print*,'Inserting rm, iv,nmbr:',iv,nmbr
+ write(40,'(a2,i'//char(48+ndig)//',a2)')'rm',nmbr,' /'
+ if (alldone) go to 999
+ ipc = ipenew-lsym+1
+ line(1) = line(iline)(ipc:len)
+ else
+c
+c Write old stuff up to end of original lonesome wbr, save the rest.
+c 4 cases: (wbr /) , (wbr line-end) , (wbr followed by other non-/ symbols) ,
+c alldone.
+c In 1st 2 will have gotten some other lines, so write all up to one b4 last
+c non-comment line; then revert to normal mode on that. In 3rd case must
+c split line.
+c
+ if (alldone) then
+ write(40,'(a)')line(1)(1:len)
+ go to 999
+ else if (iline .gt. 1) then
+ do 9 il = 1 , iline-1
+ len = lenstr(line(il),128)
+ write(40,'(a)')line(il)(1:len)
+9 continue
+ line(1) = line(iline)
+ else
+c
+c Since iline = 1 the wbr is not the last sym, so must split
+c
+ write(40,'(a)')line(1)(1:ip1+lwbrsx-1)
+ line(1) = line(1)(ip1+lwbrsx+1:len)
+ end if
+ end if
+c
+c Exit multibar mode
+c
+ go to 7
+ end if
+ end if
+ end if
+2 continue
+ if (len .gt. 0) then
+ write(40,'(a)')line(1)(1:len)
+ else
+ write(40,'(a)')' '
+ end if
+1 continue
+999 continue
+ close(10+iv)
+ close(40)
+ return
+ end
+ function ifnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ ifnodur=1
+ else if (idur .eq. 3) then
+ ifnodur=2
+ else if (idur.eq.1 .or. idur.eq.16) then
+ ifnodur=4
+ else if (idur .eq. 8) then
+ ifnodur=8
+ else if (idur .eq. 4) then
+ ifnodur=16
+ else if (idur .eq. 2) then
+ ifnodur=32
+ else if (idur .eq. 0) then
+ ifnodur=64
+ else
+ print*,'You entered an invalid note-length value'
+ stop
+ end if
+ if (dotq .eq. 'd') ifnodur = ifnodur*3/2
+ return
+ end
+ subroutine fwbrsym(lenbar,nwbrs,wbrsym,lwbrs)
+ character*3 wbrsym(2)
+ nwbrs = 1
+ lwbrs = 2
+ if (lenbar .eq. 16) then
+ wbrsym(1) = 'r4'
+ else if (lenbar .eq. 32) then
+ wbrsym(1) = 'r2'
+ else if (lenbar .eq. 64) then
+ wbrsym(1) = 'r0'
+ else if (lenbar .eq. 8) then
+ wbrsym(1) = 'r8'
+ else if (lenbar .eq. 128) then
+ wbrsym(1) = 'r9'
+ else
+ nwbrs = 2
+ lwbrs = 3
+ if (lenbar .eq. 24) then
+ wbrsym(1) = 'rd4'
+ wbrsym(2) = 'r4d'
+ else if (lenbar .eq. 48) then
+ wbrsym(1) = 'rd2'
+ wbrsym(2) = 'r2d'
+ else if (lenbar .eq. 96) then
+ wbrsym(1) = 'rd0'
+ wbrsym(2) = 'r0d'
+ else
+ write(*,'(33H Any whole-bar rests of duration ,i3,
+ * 26H/64 will not be recognized)') lenbar
+ end if
+ end if
+ return
+ end
+ subroutine nextsym(line,len,ipeold,ipenew,sym,lsym)
+c
+c Know its the last symbol if on return ipenew = len!. So should never
+c be called when ipstart=len.
+c
+ character*128 line
+ character*80 sym
+ if (ipeold .ge. len) then
+ print*,'Called nextsym with ipstart>=len '
+ print*,'Send files to Dr. Don at dsimons@logicon.com'
+ stop
+ end if
+ do 1 ip = ipeold+1 , len
+ if (line(ip:ip) .ne. ' ') then
+c
+c symbol starts here (ip). We're committed to exit the loop.
+c
+ if (ip .lt. len) then
+ do 2 iip = ip+1 , len
+ if (line(iip:iip) .ne. ' ') go to 2
+c
+c iip is the space after the symbol
+c
+ ipenew = iip-1
+ lsym = ipenew-ip+1
+ sym = line(ip:ipenew)
+ return
+2 continue
+c
+c Have len>=2 and ends on len
+c
+ ipenew = len
+ lsym = ipenew-ip+1
+ sym = line(ip:ipenew)
+ return
+ else
+c
+c ip = len
+c
+ ipenew = len
+ lsym = 1
+ sym = line(ip:ip)
+ return
+ end if
+ end if
+1 continue
+ print*,'Error #3. Send files to Dr. Don at dsimons@logicon.com'
+ end
+ function ntindex(line,s2q)
+c
+c Returns index(line,s2q) if NOT in TeX string, 0 otherwise
+c
+ character*(*) s2q
+ character*128 line,tline
+ logical intex
+c
+c print*,'Starting ntindex. s2q:',s2q,', line(1:79) is below'
+c print*,line(1:79)
+c
+c
+c Use a temporary string to store the input and test, so can zap D"..."
+c
+ tline = line
+ ndxs2 = index(tline,s2q)
+c
+c Return point below for rechecks after zapping D" "
+c
+2 continue
+ ndxbs = index(tline,char(92))
+ if (ndxbs .gt. 0) then
+c
+c Special check in case \ is inside D"..."
+c
+ ndxDq1 = index(tline,'D"')
+c
+c If the following test fails, flow out of if block; else loop up to 2.
+c
+ if (ndxDq1 .gt. 0) then
+c
+c Find end of D"..."
+c
+ ndxDq2 = ndxDq1+1+index(tline(ndxDq1+2:128),'"')
+ if (ndxDq2 .eq. ndxDq1+1) then
+ print*,'Something is really wierd here'
+ stop
+ end if
+ tline = tline(1:ndxDq1-1)
+ do 3 ic = ndxDq1 , ndxDq2
+ tline = tline(1:ic-1)//' '
+3 continue
+ tline = tline(1:ndxDq2)//line(ndxDq2+1:128)
+ go to 2
+ end if
+ end if
+ if (ndxbs.eq.0 .or. ndxs2.lt.ndxbs) then
+ ntindex = ndxs2
+c print*,'No bs, or char is left of 1st bs, ntindex:',ntindex
+ else
+c
+c There are both bs and s2q, and bs is to the left of sq2. So check bs's to
+c right of first: End is '\ ', start is ' \'
+c
+ len = lenstr(tline,128)
+ intex = .true.
+c print*,'intex+>',intex
+ do 1 ic = ndxbs+1 , len
+ if (ic .eq. ndxs2) then
+ if (intex) then
+ ntindex = 0
+ ndxs2 = index(tline(ic+1:len),s2q)+ic
+c print*,'ndxs2 =>',ndxs2
+ else
+ ntindex = ndxs2
+ return
+ end if
+c print*,'Internal exit, intex, ntindex:',intex,ntindex
+ else if (intex .and. tline(ic+1:ic+2).eq.char(92)//' ') then
+ intex = .false.
+c print*,'intex+>',intex
+ else if (.not.intex .and. tline(ic+1:ic+2).eq.' '//char(92))
+ * then
+ intex = .true.
+c print*,'intex+>',intex
+ end if
+1 continue
+c print*,'Out end of loop 1'
+ end if
+c print*,'Exiting ntindex at the end???'
+ return
+ end
+ subroutine getchar(line,iccount,charq)
+c
+c Gets the next character out of line*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount to position of the new character.
+c
+ character*1 charq
+ character*128 line
+ if (iccount .eq. 128) then
+ read(10,'(a)')line
+ iccount = 0
+ end if
+ iccount = iccount+1
+ charq = line(iccount:iccount)
+ return
+ end
+ function readin(line,iccount,iread)
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+c
+c Reads a piece of setup data from line, gets a new line from
+c file 10 (jobname.pmx) if needed, Transfers comment lines into all parts.
+c
+c iread controls copying of values into scratch files for parts, but only
+c if not replacing.
+c
+c iread input value written
+c -1 nvi nothing (only used when noinst<0 initially)
+c 0 various value read
+c 1 nv -1 , replace later with nvi(i)
+c 2 noinst 1
+c 3 np -2 , replace later with (nsyst-1)/12+1
+c 4 musicsize 20
+c 5 fracondent 0.05
+c
+ character*128 line
+ character*1 durq
+4 if (iccount .eq. 128) then
+ read(10,'(a)')line
+ if (replacing) replacing = .false.
+ call chkcom(line)
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 2 iccount = iccount , 127
+ if (line(iccount:iccount) .ne. ' ') go to 3
+2 continue
+c
+c If here, need to get a new line
+c
+ iccount = 128
+ go to 4
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(line,iccount,durq)
+c
+c Remember that getchar first increments iccount, *then* reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ stop 1
+ end if
+ icf = i2-i1+49
+ read(line(i1:i2),'(f'//char(icf)//'.0)')readin
+ if (.not.replacing) then
+ if (iread .eq. 0) then
+ call allparts(line(i1:i2),i2-i1+1)
+ else if (iread .eq. 1) then
+ call allparts('-999',4)
+ else if (iread .eq. 2) then
+ call allparts('1',1)
+ else if (iread .eq. 3) then
+ call allparts('-998',4)
+ else if (iread .eq. 4) then
+ call allparts('20',2)
+ else if (iread .eq. 5) then
+ call allparts('.05',3)
+ else if (iread .ne. -1) then
+ print*,'Error with iread in readin'
+ stop
+ end if
+ end if
+ return
+ end
+ subroutine chkcom(line)
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,clefpend,botv
+ character*128 line
+c
+c Assume that line has just been read. No need to change iccount since we only
+c process full lines.
+c
+1 if (line(1:1) .ne. '%') return
+c
+c If here, line has some sort of comment
+c
+ if (line(2:2) .eq. '%') then
+ if (.not. insetup) then
+c
+c Suck up a line, then flow out of "if" block to get another and loop
+c
+ read(10,'(a)')line
+
+c++VV
+c
+c UNLESS (a) it has a score-only "M" and changes # of inst's.
+c
+ if (index(line,'M') .gt. 0) then
+ idxL = index(line,'L')
+ idxM = index(line,'M')
+ idxn = index(line,'n')
+ idxb = index(line,' ')
+ if (idxL.lt.idxM .and. idxM.lt.idxn .and.
+ * (idxb.eq.0 .or. idxn.lt.idxb)) then
+ noinow = ichar(line(idxn+1:idxn+1))-48
+ clefpend = .true.
+c
+c Next noinow digits are original inst. #'s of new inst. set. Next noinow
+c char's after that are clefs
+c
+ nvnow = 0
+ do 24 j = 1 , noinow
+ iorig(j) = ichar(line(idxn+1+j:idxn+1+j))-48
+ iposc0 = idxn+1+noinow
+ do 25 k = 1 , nvi(iorig(j))
+ nvnow = nvnow+1
+c clefq(nvnow) = line(iposc0+nvnow:iposc0+nvnow)
+ instnum(nvnow) = j
+ botv(nvnow) = k.eq.1 .and. j.ne.1
+25 continue
+24 continue
+ end if
+ end if
+c
+c or if it's "h" or "l", need to suck up one more line
+c
+ if ((line(1:1).eq.'h'.and.index('+- ',line(2:2)).gt.0) .or.
+c
+c 4/29/00 check for T string also
+c
+ * line(1:1).eq.'T' .or.
+ * line(1:2).eq.'l ') read(10,'(a)')line
+ else
+c
+c In setup mode. Set flag, flow out and do use following line
+c
+ replacing = .true.
+ end if
+ else if (line(2:2) .eq. '!') then
+c
+c Copy to all parts
+c
+ call allparts(line(3:128),125)
+ else
+c
+c Get value of hex integer 1,2,...,9,a,b,c in 2nd position, zero otherwise
+cc Get value of extended hex integer 1,2,...,9,a,b,c,...,o in 2nd position, zero otherwise
+c
+ ivq = index('123456789abcdefghijklmno',line(2:2))
+c
+c Only treat as part-specific pmx line if number .le. noinst
+c
+ if (ivq.lt.1 .or. ivq.gt.noinst) then
+c
+c Simple comment.
+c
+ call allparts(line,128)
+ else
+c
+c Instrument comment, copy only to part
+c
+ lenline = lenstr(line,128)
+ if (lenline .gt. 2) then
+ write(10+ivq,'(a)')line(3:lenline)
+ else
+c
+c Transferring blank line
+c
+ write(10+ivq,'(a)')' '
+ end if
+ end if
+ end if
+ read(10,'(a)',end=2)line
+ call zapbl(line,128)
+ go to 1
+2 continue
+ return
+ end
+ subroutine dosetup(iv,line,mtrnum,mtrden)
+ parameter (noimax=24)
+c
+c Transfers setup data from scratch file to real one for one instrument
+c Data may be mixed with comments, but on entry 1st item is a number.
+c Write a comment when encountered, as it comes.
+c Write numbers one per line.
+c Three input data require special handling:
+c If not already replaced, i.e., if negative, then
+c iset(1) (nv) will be replaced with nvi(i)
+c iset(9) (npages) will be replaced with (nsyst-1)/12+1
+c iset(2), if negative, will be followed by extra numbers to be transf.
+c
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ character*128 line
+ iccount = 0
+ do 1 iset = 1 , 12
+ call partnum(iv,iccount,line,xdata)
+ if (iset .eq. 2) then
+ if (xdata .gt. 0) then
+ write(40,'(i5)')int(xdata+.1)
+ else
+ noi = -xdata+.1
+ write(40,'(i5)')noi
+ do 2 ioi = 1 , noi
+ call partnum(iv,iccount,line,xdata)
+ write(40,'(i5)')int(xdata+.1)
+2 continue
+ end if
+c else if (iset.ne.8 .and. xdata.lt.0) then
+ else if (iset.ne.8 .and. iset.ne.5 .and. xdata.lt.0) then
+c
+c Must be either nv or npages
+c
+ if (int(-xdata+.1) .eq. 999) then
+c
+c It's nv
+c
+ write(40,'(i5)')nvi(iv)
+ else
+c
+c npages must be computed
+c
+ write(40,'(i5)')(nsyst-1)/12+1
+ end if
+ else if (iset.ne.7 .and. iset.ne.12) then
+c
+c write integer
+c
+ write(40,'(i5)')nint(xdata)
+ else
+c
+c write floating number
+c
+ write(40,'(f5.2)')xdata
+ end if
+ if (iset .eq. 3) then
+ mtrnum = nint(xdata)
+ else if (iset .eq. 4) then
+ mtrden = nint(xdata)
+ end if
+1 continue
+ return
+ end
+ subroutine partnum(iv,iccount,line,xdata)
+c
+c Simplified number parsing. Only looks for comment lines and numbers.
+c
+ character*128 line
+ character*1 durq
+2 if (iccount .eq. 128) then
+ read(10+iv,'(a)')line
+ if (line(1:1) .eq. '%') then
+ len = lenstr(line,128)
+ write(40,'(a)')line(1:len)
+ go to 2
+ end if
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 4 iccount = iccount , 127
+ if (line(iccount:iccount) .ne. ' ') go to 3
+4 continue
+c
+c If here, iccount=128 and need to get a new line
+c
+ go to 2
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(line,iccount,durq)
+c
+c Remember that getchar first increments iccount, *then* reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ stop 1
+ end if
+ icf = i2-i1+49
+ read(line(i1:i2),'(f'//char(icf)//'.0)')xdata
+ return
+ end
+ block data
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+ data nvi /noimax*1/, noinst,noinow /2*noimax/
+ data botv /noimax*.false./
+ end
+ subroutine zapbl(string,len)
+ character*(*) string
+ do 1 i = 1 , len
+ if (string(i:i) .eq. ' ')go to 1
+ if (i .eq. 1) return
+ go to 2
+1 continue
+c
+c If line is all blank, leave it alone
+c
+ return
+2 continue
+ string = string(i:len)
+ return
+ end
+ subroutine OddQuotesBefore(lineq,indx,yesodd)
+c
+c This counts number of double quotes in lineq up to position indx-1, then
+c sets yesodd according to whether number is odd or even
+c
+ logical yesodd
+ character*(*) lineq
+ numdqs = 0
+ do 1 i = 1 , indx-1
+ if (lineq(i:i) .eq. '"') numdqs = numdqs+1
+1 continue
+ yesodd = mod(numdqs,2) .eq. 1
+ return
+ end
+
+
+
+
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/scor2prt.for b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.for
new file mode 100644
index 00000000000..99fe18e4cab
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.for
@@ -0,0 +1,1620 @@
+cccccccccccccccccccccccccc
+cc
+cc scor2prt 7/24/11 for PMX 2.615
+cccccccccccccccccccccccccc
+c This program, developed by Don Simons (dsimons@roadrunner.com), is
+c part of the PMX distribution, PMX is a preprocessor for MusiXTeX. In concert
+c with MusiXTeX and TeX, the purpose of PMX is to allow the user to create
+c high-quality typeset musical scores by including a sequence of PMX commands
+c in an ASCII input file. Scor2prt is an auxiliary program that creates PMX
+c input files for individual parts from the PMX input file for the score.
+c
+c This program is free software: you can redistribute it and/or modify
+c it under the terms of the GNU General Public License as published by
+c the Free Software Foundation, either version 3 of the License, or
+c (at your option) any later version.
+c
+c This program is distributed in the hope that it will be useful,
+c but WITHOUT ANY WARRANTY; without even the implied warranty of
+c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+c GNU General Public License for more details.
+c
+c You should have received a copy of the GNU General Public License
+c along with this program. If not, see <http://www.gnu.org/licenses/>.
+c
+c
+c 7/18/11
+c Start to fix up for AS..., also Ki was done a little earlier.
+c 7/5/10
+c Modify Manual to explain extended hex numbering for part-specific comments
+c 5/16/10
+c Extend part-specific comments for up to 24 parts (subroutine chkcom)
+c Allow files 11-34 for parts
+c Change file 30 to 40
+c 6/1/08 es2p
+c noimax = 24
+c
+c To do
+c Override fracindent, musicsize?
+c Deal with midbar R?
+c 2/29/04
+c Check for special character being in quoted string.
+c 10/20/02 PMX 2.407
+c Interpret AN[n]"[used-defined-part-file-name]"
+c 1/21/02
+c Deals with rm in multiple parts.
+c s2p15
+c Get right non-tex index even if there's "\" inside D"..."
+c s2p14
+c 10/29/00 fix transfer to parts of negative mtrdnp
+c 4/29/00 screen for "%%" followed by "T"
+c Restore change from "Version 2.1a, 21 Dec"
+c s2p13
+c Allow whole-bar double-whole rests.
+c Bypass MIDI commands "I..." achar(10)="I"
+c s2p12
+c Let %ablabla ... %cblabla represent pmx input for parts 10-12. But %?blabla
+c only taken as such if ? represents a hex digit .le. noinst, otherwise it's
+c a simple comment. This lessens incompatibility.
+c In subroutine mbrest, properly open parts 10-12 if needed
+c s2p11
+c Ignore leading blanks
+c Fix undefined linelength in mbrest at very end of comments.
+c s2p10
+c Fix non-transfer of P..c" "
+c Allow "%%" and "%"n anywhere
+c Version 1.43
+c Fix bug with P in TeX string.
+c Ignore shifted whole-bar rests when consolidating whole-bar rests
+c Copy type 4 TeX into all parts.
+c Deal with XB and XP.
+c Permit transfer of blank line into parts
+c Change staves/inst in 'M' command.
+c Arbitrary staves/inst.
+c Recognize m1/2/3/4 syntax.
+c Enable comment and one-voice syntax in instrument names
+c
+c Changes since 1.1
+c Deal with saved macros.
+c Revise setup readin, to admit comments.
+c Do not copy 'X' into parts
+c
+cccccccccccccccccccccccccccccccccccccccccccccccc
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ integer*4 ludpfn(noimax)
+ character*1 sq,achar(10)
+ character*2 termsym
+ character*27 jobname,infileq
+ character*128 instrum(noimax),udpfnq(noimax)
+ character*128 line,holdln,templine
+ logical termrpt,isachar,frstln,oneof2,botv,clefpend,fexist,
+ * insetup,replacing,gotname,yesodd
+ data achar /'P','m','V','R','A','h','w','K','M','I'/
+ clefpend = .false.
+ insetup = .true.
+ replacing = .false.
+ frstln = .true.
+ lenhold = 0
+ sq = char(92)
+ print*,'This is scor2prt for PMX 2.615, 24 July 2011'
+ numargs = iargc()
+ if (numargs .eq. 0) then
+ print*,'You could have entered a jobname on the command line,'
+ print*,' but you may enter one now:'
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+c call getarg(1,jobname,idum) ! May need to replace this w/ next line
+ call getarg(1,jobname)
+ end if
+ ljob = lenstr(jobname,27)
+ if (ljob .eq. 0) then
+ print*,'No was jobname entered. Restart and try again.'
+ stop
+ end if
+c
+c Strip ".pmx" if necessary
+c
+ ndxpmx = max(index(jobname,'.pmx'),index(jobname,'.PMX'))
+ if (ndxpmx .gt. 0) then
+ jobname = jobname(1:ndxpmx-1)
+ ljob = ljob-4
+ end if
+c
+c Check for existence of input file
+c
+ infileq = jobname(1:ljob)//'.pmx'
+ inquire(file=infileq,EXIST=fexist)
+ if (.not.fexist) then
+ print*,'Cannot find file '//infileq
+ stop
+ end if
+ open(10,file=jobname(1:ljob)//'.pmx')
+c
+c Open all instrument files now for allparts stuff. Later disgard those >nv
+c
+ do 19 iv = 1 , noimax
+ iorig(iv) = iv
+ open(10+iv,status='SCRATCH')
+ ludpfn(iv) = 0
+19 continue
+ read(10,'(a)')line
+ call chkcom(line)
+ if (line(1:3) .eq. '---') then
+ call allparts(line,128)
+31 read(10,'(a)')line
+ if (line(1:3) .ne. '---') then
+ call allparts(line,128)
+ go to 31
+ end if
+ call allparts(line,128)
+ read(10,'(a)')line
+ call chkcom(line)
+ end if
+ iccount = 0
+ nv = readin(line,iccount,1)+.1
+ noinst = readin(line,iccount,2)+.1
+ if (noinst .gt. 0) then
+ nvi(1) = nv-noinst+1
+ else
+ noinst = 1-noinst
+ do 21 iinst = 1 , noinst
+ nvi(iinst) = readin(line,iccount,-1)+.1
+21 continue
+ end if
+ noinow = noinst
+ insnow = 1
+c
+c ivlast is last iv in current inst. instnum(iv) is iinst for current voice.
+c
+ ivlast = nvi(1)
+ do 22 iv = 1 , nv
+ instnum(iv) = insnow
+ if (iv .eq. ivlast) then
+ if (iv .lt. nv) botv(iv+1) = .true.
+c
+c The previous stmt will set botv true only for bot voice of iinst>1. It is
+c used when writing termrpts, but the one in voice one is handled differently,
+c so botv(1) is left .false.
+c
+ if (insnow .lt. noinst) then
+ insnow = insnow+1
+ ivlast = ivlast+nvi(insnow)
+ end if
+ end if
+22 continue
+ mtrnuml = readin(line,iccount,0)+.1
+ mtrdenl = readin(line,iccount,0)+.1
+ mtrnmp = readin(line,iccount,0)+.1
+ mtrdnp = readin(line,iccount,0)+.1
+ xmtrnum0 = readin(line,iccount,0)
+ isig = readin(line,iccount,0)+.1
+ npages = readin(line,iccount,3)+.1
+ nsyst = readin(line,iccount,0)+.1
+ musicsize = readin(line,iccount,4)+.1
+ fracindent = readin(line,iccount,5)
+ if (npages .eq. 0) then
+ print*,
+ *'You entered npages=0, which means nsyst is not the total number'
+ print*,
+ *'of systems. Scor2prt has to know the total number of systems.'
+ print*,
+ *'Please set npages and nsyst to their real values.'
+ stop
+ end if
+c
+c Must leave insetup=.true. else could bypass ALL instrument names.
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ backspace(10)
+c
+c Normally this puts pointer at start of line with 1st inst name
+c Check if prior line was "%%"
+c
+ backspace(10)
+ read(10,'(a)')line
+ if (line(1:2) .eq. '%%') backspace(10)
+ do 14 iv = 1 , noinst
+ gotname = .false.
+16 read(10,'(a)') instrum(iv)
+ if (instrum(iv)(1:2) .eq. '%%') then
+ read(10,'(a)')line
+ go to 16
+ else if (instrum(iv)(1:1) .eq. '%') then
+ ivq = ichar(instrum(iv)(2:2))-48
+ if (ivq.ne.iv) then
+c
+c It's really a comment. Copy to parts, then get another trial name.
+c
+ call allparts(instrum(iv),128)
+ go to 16
+ else
+ line = instrum(iv)(3:)
+ instrum(iv) = line
+ gotname = .true.
+ end if
+ else
+ gotname = .true.
+ end if
+cc
+cc The following checks for macro that write original C-clef as part of
+cc instrument name. See pmx.tex
+cc
+c if (index(instrum(iv),'namewpc') .eq. 0) then
+c write(10+iv,'(a)')' '
+c else
+c inm1 = index(instrum(iv),'{')+1
+c inm2 = index(instrum(iv),'}')-1
+c read(instrum(iv)(inm2+2:inm2+8),'(i1,4x,2i1)')ilev,iy1,iy2
+c write(10+iv,'(a)')sq//'namewpc{}'//char(ilev+48)//'{20}'//
+c * char(iy1+49)//char(iy2+49)
+c instrum(iv) = instrum(iv)(inm1:inm2)
+c end if
+ if (.not.gotname) then
+ print*,'You must provide a replacement instrument name'
+ stop
+ end if
+ write(10+iv,'(a)')' '
+14 continue
+ replacing = .false.
+ nvnow = nv
+c
+c Clef string: Note insetup is still T, so "%%" will be treated specially
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ if (replacing) then
+c
+c If here, we have next line after "%%", containing score's clef string
+c Assume all clefs are handled with instrument comments.
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ backspace(10)
+ else
+c
+c If here, line has the clef string in it. Handle the old way
+c
+ kvstart = 1
+ kvend = nvi(1)
+ do 2 inst = 1 , noinst
+ write(10+inst,'(a'//char(48+nvi(inst))//')')
+ * line(kvstart:kvend)
+ if (inst .lt. noinst) then
+ kvstart = kvend+1
+ kvend = kvstart+nvi(inst+1)-1
+ end if
+2 continue
+ end if
+ replacing = .false.
+ insetup = .false.
+c
+c *****NOTE*****This comment applies to stuff done earlier!
+c Before starting the big loop, copy initial instnum and staffnum stuff
+c into working values. Latter may change if noinst changes. Also make
+c list of current inst nums relative to original ones. In addition to those
+c below, must redo instnum(iv) and botv(iv) when we change noinst.
+c
+c Path string: ASSUME THIS WILL NEVER BE ALTERED IN PARTS!
+c
+18 read(10,'(a)') line
+ if (line(1:1) .eq. '%') then
+ call allparts(line,128)
+ go to 18
+ end if
+ call allparts(line,128)
+c
+c Write instrument names. Will be blank if later part of a score.
+c
+ if (instrum(1)(1:1) .ne. ' ') then
+ do 3 iv = 1 , noinst
+ len = lenstr(instrum(iv),79)
+ write(10+iv,'(a2/a)')'Ti',instrum(iv)(1:len)
+3 continue
+ end if
+c
+c The big loop. Except for '%%', put all comment lines in all parts.
+c Unless preceeded by '%%', put all type 2 or 3 TeX Strings in all parts
+c If a line starts with %!, put the rest of it in each part.
+c If a line starts with %[n], put the rest of it in part [n].
+c Check for Tt, Tc, Voltas, Repeats, headers, lower texts, meter changes.
+c Assume they only come at top of block, except terminal repeat needs
+c special handling.
+c Check for "P"; ignore in parts.
+c Check for consecutive full-bar rests; if found, replace with rm[nn]
+c
+ iv = 1
+ iinst = 1
+ termrpt = .false.
+4 read(10,'(a)',end=999)line
+ lenline = lenstr(line,128)
+ if (lenline .eq. 0) go to 4
+ call zapbl(line,128)
+ call chkcom(line)
+ lenline = lenstr(line,128)
+ if (lenline .eq. 0) go to 4
+ if (line(1:1) .eq. 'T') then
+ call allparts(line,128)
+ read(10,'(a)')line
+ call allparts(line,128)
+ go to 4
+ else if (line(1:2) .eq. sq//sq) then
+ call allparts(line,128)
+ go to 4
+ else if (index('hl',line(1:1)).gt.0 .and.
+ * index(' +-',line(2:2)) .gt. 0) then
+ call allparts(line,128)
+ read(10,'(a)')line
+ call allparts(line,128)
+ go to 4
+ else if (iv .eq. 1) then
+ do 5 ia = 1 , 10
+24 continue
+ idxa = ntindex(line,achar(ia))
+ isachar = idxa .gt. 0
+ if (idxa.gt.1) isachar = line(idxa-1:idxa-1).eq.' '
+c
+c 1 2 3 4 5 6 7 8 9 10
+c data achar /'P','m','V','R','A','h','w','K','M','I'/
+c
+ if (ia .eq. 9) isachar =
+ * isachar .and. line(idxa+1:idxa+1).eq.'S'
+ if (isachar) then
+c
+c Check whether character is inside a quoted string by counting
+c how many quotes precede it in the line
+c
+
+ call OddQuotesBefore(line,idxa,yesodd)
+ if (yesodd) isachar=.false.
+ end if
+ if (isachar) then
+c
+c Find next blank
+c
+ do 6 ib = idxa+1 , 128
+ if (line(ib:ib) .eq. ' ') go to 7
+6 continue
+ print*,'Problem with "V,R,m,P,A,h,MS, or w"'
+ print*,
+ * 'Send files to Dr. Don at dsimons at roadrunner dot com'
+ stop 1
+7 continue
+c
+c Next blank is at position ib. Later, if ia=1, must check for Pc" " ;
+c i.e., look for '"' between P and blank
+c
+ if (ia .eq. 4) then
+c
+c Check for terminal repeat. Note if there's a term rpt, there can't be any
+c others. Also, must process repeats LAST, after m's and 'V's
+c
+ do 8 ic = ib+1 , 128
+c
+c If any subsequent character on this line is neither blank nor "/", get out
+c
+ if (index(' /',line(ic:ic)) .eq. 0) go to 9
+ if (line(ic:ic) .eq. '/') then
+ termrpt = .true.
+ termsym = line(ib-2:ib-1)
+c
+c Process the line as if there were no "R"
+c
+ go to 10
+ end if
+8 continue
+c
+c +++ 060812
+c If here, all chars after "R" symbol are blanks, so process the line normally,
+c but only IF next line is not the M-Tx line " /"
+c
+ read(10,'(a)')templine
+ if (templine(1:2) .ne. ' /') then
+ backspace(10) ! and flow out
+ else
+c
+c We have the M-Tx case where one line ends with R? and next is " /". Add / to the line,
+c and proceed as above
+c
+ line = line(1:ib)//'/'
+ lenline = lenline+2
+ termrpt = .true.
+ termsym = line(ib-2:ib-1)
+ go to 10
+ end if
+c +++ 060812
+c
+ else if (ia .eq. 1) then
+ idxq = ntindex(line,'"')
+ if (idxq.gt.idxa .and. idxq.lt.ib) then
+c
+c Quote is between P and next blank. Find 2nd quote, starting at the blank.
+c
+ idxq2 = ib-1+ntindex(line,'"')
+ if (idxq.eq.0 .or. line(idxq2+1:idxq2+1).ne.' ') then
+ print*
+ print*,'Error copying P with quotes, idxq2:',idxq2
+ print*,line(1:60)
+ stop 1
+ end if
+ ib = idxq2+1
+ end if
+c
+c Do not transfer P into parts.
+c
+ go to 12
+ else if (ia .eq. 9) then
+c
+c Start Saving a macro. After leaving here, a symbol will be sent to all parts,
+c If all on this line, set ib to end and exit normally.
+c
+ ndxm = index(line(ib+1:128),'M')
+ if (ndxm.gt.0 .and. line(ib+ndxm-1:ib+ndxm-1).eq.' ') then
+c
+c Macro ends on this line
+c
+ ib = ib+ndxm+1
+ else
+c
+c Save leading part of current line
+c
+ lenhold = idxa-1
+ if (lenhold .gt. 0) holdln = line(1:lenhold)
+c
+c Transfer rest of line
+c
+ call allparts(line(idxa:128),129-idxa)
+c
+c Read next line
+c
+20 read(10,'(a)')line
+c
+c Check for comment, transfer and loop if so
+c
+c if (line(1:1) .eq.'%') then
+23 if (line(1:1) .eq.'%') then
+c call allparts(line,128)
+c go to 20
+ call chkcom(line)
+ go to 23
+ end if
+c
+c Look for terminal ' M'
+c
+ if (line(1:1) .eq. 'M') then
+ ndxm = 1
+ else
+ ndxm = index(line,' M')
+ if (ndxm .gt. 0) ndxm = ndxm+1
+ end if
+ if (ndxm .gt. 0) then
+c
+c Set parameters, exit normally (but later check for leading part of 1st line
+c
+ idxa = 1
+ ib = ndxm+1
+ else
+c
+c No "M", transfer entire line, loop
+c
+ call allparts(line,128)
+ go to 20
+ end if
+ end if
+ else if (ia .eq. 10) then
+c
+c Do not transfer MIDI command into parts
+c
+ go to 12
+ else if (ia .eq. 5) then
+c
+c First check for "AS", but S may come after other "A" options
+c
+ idxS = index(line(idxa+1:ib),'S')
+ if (idxS .gt. 0) then
+c
+c Get rid of the string. First check if that's all there is in A.
+c
+ if (ib-idxa .eq. nv+2) go to 12
+ line = line(1:idxa+idxS-1)//line(idxa+idxS+nv+1:ib)
+ end if
+c
+c Check for user-defined part file name. Must start in column 1 and have
+c AN[n]"userfilename".
+c idxa is position of "A"
+c ib is position of the next blank after "A"
+c Don't allow any blanks in user
+c
+ if (line(idxa+1:idxa+1) .ne. 'N') go to 9 ! bail out
+ if (idxa .ne. 1) then
+ print*
+ print*,
+ * 'You entered "AN..." somewhere beyond first column; stopping.'
+ stop 1
+ end if
+c
+c pmxa already checked for valid one- or 2-digit number, so get it
+c
+ if (line(4:4) .eq. '"') then
+c
+c Single digit instrument number
+c
+ read(line(3:3),'(i1)')iudpfn
+ idxstartname = 5
+ else
+ read(line(3:4),'(i2)')iudpfn
+ idxstartname = 6
+ end if
+ ludpfn(iudpfn) = index(line(idxstartname:128),'"')-1
+ if (ludpfn(iudpfn) .lt. 0) then
+ print*
+ print*,'User-defined part file name must be in quotes'
+ stop 1
+ end if
+ idxendname = idxstartname+ludpfn(iudpfn)-1
+ udpfnq(iudpfn) = line(idxstartname:idxendname)
+c
+c Get a new line!
+c
+ go to 4
+ else if (ia .eq. 8) then
+c
+c Key change/transposition.
+c If not instrument specific, copy to all parts
+c
+ if (line(idxa+1:idxa+1).ne.'i') go to 9
+c
+c Instrument-wise key/transposition(s): Ki[nn][+/-][dd}[+/-][dd]...
+c
+ ibb = idxa+2 ! Starts on digit after 'i'
+40 continue
+ read(line(ibb:ibb),'(i1)')iiinst ! 1st digit of iinst
+ itemp = (index('01234567890',line(ibb+1:ibb+1)))
+ if (itemp.gt.0) then
+ ibb = ibb+1
+ iiinst = 10*iiinst+itemp-1
+ end if
+ ibb = ibb+1 ! now at first +/-. Need end of 2nd number
+ itemp = index(line(ibb+1:ib),'i') ! Rel pos'n of next 'i' or 0
+ if (itemp .gt. 0) then
+ iend = ibb+itemp-1
+ else
+ iend = ib-1
+ end if
+ write(10+iorig(iiinst),'(a)')'Ki1'//line(ibb:iend)
+ if (itemp .gt. 0) then
+ ibb = iend+2
+ go to 40
+ end if
+ go to 12 ! Remove K command from string, go to next ia
+ end if
+9 continue
+ call allparts(line(idxa:ib-1),ib-idxa)
+12 continue
+c
+c Remove the string from line
+c
+ if (idxa .eq. 1) then
+ line = line(ib:128)
+ else
+ line = line(1:idxa-1)//line(ib:128)
+ end if
+ lenline = lenstr(line,128)
+c
+c Loop if only blanks are left
+c
+ if (lenline .eq. 0) go to 4
+c
+c Must check for multiple "I" commands, so go to just after start of ia loop
+c
+ if (ia .eq. 10) go to 24
+c
+c Tack on front part from 1st line of saved macro
+c
+ if (lenhold .gt. 0) then
+ line = holdln(1:lenhold)//' '//line(1:lenline)
+ lenhold = 0
+ end if
+ end if
+5 continue
+ end if
+c
+c Now a special loop to deal with 'X'. If it was %[n]X..., will have been
+c copied into part [n] already. If no "B" or "P", remove. If "P", just
+c remove the "P" so pmxa/b will process. If "B". do nothing.
+c
+10 continue
+ nchk = 1
+13 ntinx = nchk-1+ntindex(line(nchk:),'X')
+ if (ntinx .gt. nchk-1) then
+c
+c There is a non-TeX 'X' at ntinx. Loop if neither 1st nor after a blank.
+c
+ if (ntinx.gt.1) then
+ if (line(ntinx-1:ntinx-1).ne.' ') then
+c
+c The X is not 1st char of PMX command. Advance starting point, loop.
+c
+ nchk = ntinx+1
+ go to 13
+ end if
+ end if
+c
+c We now know the X at ntinx starts a PMX command. Find next blank
+c
+ ib = ntinx+index(line(ntinx+1:),' ')
+c
+c There must be a blank to right of "X", so ib>ntinx
+c
+c locp = nchk-1+index(line(nchk:ib),'P')
+ locp = ntinx+index(line(ntinx+1:ib),'P')
+c
+c Did not need to use ntindex because we already know bounds of PMX command.
+c
+c if (locp .gt. nchk-1) then
+ if (locp .gt. ntinx) then
+c
+c Strip out the 'P'
+c
+ templine = line(1:locp-1)
+ line = templine(1:locp-1)//line(locp+1:lenline)
+ lenline = lenline-1
+ ib = ib-1
+ end if
+ if (index(line(ntinx:ib),':').gt.0 .or.
+ * index(line(ntinx:ib),'S').gt.0 .or.
+ * index(line(ntinx:ib),'B').gt.0 .or. locp.gt.ntinx) then
+c
+c The X command is a shift, "Both", or "Part". Do not remove.
+c
+ nchk = ib+1
+ go to 13
+ end if
+c
+c Remove the X command.
+c
+ if (ntinx .eq. 1) then
+ if (ib .lt. lenline) then
+ line = line(ib+1:lenline)
+ else
+c
+c line contains ONLY the "X" command, so get a new line
+c
+ go to 4
+ end if
+ else
+ templine = line(1:ntinx-1)
+ if (ib .lt. lenline) then
+ line = templine(1:ntinx-1)//line(ib+1:lenline)
+ else
+ line = templine(1:ntinx-1)
+ end if
+ end if
+c
+c Recompute lenline
+c
+ lenline = lenstr(line,128)
+c
+c Resume checking after location of removed command.
+c
+ nchk = ntinx
+ go to 13
+ end if
+c
+c End of loop for X-checks
+c
+ oneof2 = ntindex(line,'//') .gt. 0
+ if (termrpt .and. botv(iv) .and. frstln .and.
+ * line(lenline:lenline).eq.'/') then
+c
+c Must add a terminal repeat before the slash
+c
+ if (oneof2) lenline = lenline-1
+ if (lenline.gt.1) write(10+iorig(iinst),'(a)')line(1:lenline-1)
+ if (.not. oneof2) then
+ line = termsym//' /'
+ lenline = 4
+ else
+ line = termsym//' //'
+ lenline = 5
+ end if
+ end if
+ if (termrpt .and. frstln .and. line(lenline:lenline).eq.'/' .and.
+ * iv.eq.nvnow) termrpt = .false.
+ write(10+iorig(iinst),'(a)')line(1:lenline)
+ if (oneof2) then
+ frstln = .false.
+ else if (.not.frstln) then
+ frstln = .true.
+ end if
+c if (ntindex(line,'/').gt.0 .and. index(line,'//').eq.0) then
+ if (ntindex(line,'/').gt.0 .and. ntindex(line,'//').eq.0) then
+ iv = 1+mod(iv,nvnow)
+ iinst = instnum(iv)
+ end if
+ go to 4
+999 continue
+ close(10)
+c
+c In the mbrest checks, must run through ALL noinst files (not just noinow)
+c
+ do 11 iinst = 1 , noinst
+ccc+++
+cc
+cc Temporarily transfer entire scratch file to real file
+cc
+c rewind(10+iinst)
+c open(40,file='s2pout'//char(48+iinst)//'.pmx')
+c do 50 m = 1 , 10000
+c read(10+iinst,'(a)',end=51)line
+c lenline = lenstr(line,128)
+c if (lenline .ge. 1) then
+c write(40,'(a)')line(1:lenline)
+c else
+c write(40,'(a)')' '
+c end if
+c50 continue
+c51 continue
+c close(40)
+ccc+++
+ if (nvi(iinst) .eq. 1) then
+ call mbrests(iinst,jobname,ljob,ludpfn(iinst),udpfnq(iinst))
+ else
+c
+c Send a signal with ljob to bypass most mbrest processing
+c
+ call mbrests(iinst,jobname,-ljob,ludpfn(iinst),udpfnq(iinst))
+ end if
+11 continue
+ end
+ function lenstr(string,n)
+ character*(*) string
+ do 1 lenstr = n , 1 , -1
+ if (string(lenstr:lenstr) .ne. ' ') return
+1 continue
+ lenstr = 0
+ return
+ end
+ subroutine allparts(string,n)
+ parameter (noimax=24)
+ character*(*) string
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+ len = lenstr(string,n)
+ if (len .eq. 0) then
+ len = 1
+ string = ' '
+ end if
+ do 1 iinst = 1 , noinow
+ write(10+iorig(iinst),'(a)')string(1:len)
+1 continue
+ return
+ end
+ subroutine mbrests(iv,jobname,ljob,ludpfn,udpfnq)
+ character*128 line(50),line1,udpfnq
+ character*80 sym
+ character*12 jobname
+ character*3 wbrsym(2)
+ character*2 partq
+ character*1 sq
+ logical wbrest,alldone,rpfirst,newmtr,type4
+ type4 = .false.
+ sq = char(92)
+ alldone = .false.
+ rewind(10+iv)
+c open(20,file=jobname(1:abs(ljob))//char(48+iv)//'.pmx')
+ if (iv .lt. 10) then
+ partq(1:1) = char(48+iv)
+ lpart = 1
+c
+c 5/16/10 Fix for >20 parts
+c
+c else
+c partq = '1'//char(38+iv)
+c lpart = 2
+ else
+ lpart = 2
+ if (iv .lt. 20) then
+ partq = '1'//char(38+iv)
+ else
+ partq = '2'//char(28+iv)
+ end if
+ end if
+c if (ludpfn .eq. 0) then
+ open(40,file=jobname(1:abs(ljob))//partq(1:lpart)//'.pmx')
+c else
+c open(30,file=udpfnq(1:ludpfn)//'.pmx')
+c end if
+ do 10 i = 1 , 10000
+ read(10+iv,'(a)')line(1)
+ if (line(1)(1:1).eq.'%' .or. line(1)(1:3).eq.'---'
+ * .or. type4) then
+ len = lenstr(line(1),128)
+ if (len .gt. 0) then
+ write(40,'(a)')line(1)(1:len)
+ else
+ write(40,'(a)')' '
+ end if
+ if (line(1)(1:3).eq.'---') type4 = .not.type4
+ else
+ go to 11
+ end if
+10 continue
+ print*,'You should not be here in scor2prt. Call Dr. Don'
+ stop
+11 continue
+c
+c Finished reading opening type4 TeX and comments. Next line to be read
+c will contain the first of the input numbers
+c
+ call dosetup(iv,line(1),mtrnum,mtrden)
+ do 1 i = 1 , 10000
+13 read(10+iv,'(a)',end=999)line(1)
+7 len = lenstr(line(1),128)
+c
+c Pass-through if instrumnet has >1 voice.
+c
+ if (ljob .lt. 0) go to 2
+ if (index('TtTiTch+h-h l ',line(1)(1:2)) .gt. 0) then
+c
+c Traps titles, instruments, composers, headers, lower strings. Read 2 lines.
+c
+ write(40,'(a)')line(1)(1:len)
+ read(10+iv,'(a)')line(1)
+ len = lenstr(line(1),128)
+ go to 2
+ end if
+ if (i.eq.1 .or. (i.gt.5.and.line(1)(1:1).eq.'m')) then
+c
+c NOTE! The above test is truly bogus.
+c
+ if (line(1)(1:1) .eq. '%') then
+ write(40,'(a)')line(1)(1:len)
+ go to 13
+ end if
+ if (i .eq. 1) then
+c read(line(1),'(10x,2i5)')mtrnum,mtrden
+ else
+c
+c Check for slashes (new meter change syntax)
+c
+ idxs = index(line(1),'/')
+ idxb = index(line(1),' ')
+ newmtr = idxs.gt.0 .and. (idxb.eq.0 .or. idxs.lt.idxb)
+ if (.not.newmtr) then
+c
+c Old way, no slashes, uses 'o' for lonesome '1'
+c
+ icden = 3
+ if (line(1)(2:2) .eq. 'o') then
+ mtrnum = 1
+ else
+ mtrnum = ichar(line(1)(2:2))-48
+ if (mtrnum .eq. 1) then
+ icden = 4
+ mtrnum = 10+ichar(line(1)(3:3))-48
+ end if
+ end if
+ mtrden = ichar(line(1)(icden:icden))-48
+ else
+c
+c New way with slashes: idxs is index of 1st slash!
+c
+ read(line(1)(2:idxs-1),'(i'//char(48+idxs-2)//')')mtrnum
+ idxb = index(line(1)(idxs+1:),'/')
+ read(line(1)(idxs+1:idxs+idxb-1),
+ * '(i'//char(48+idxb-1)//')')mtrden
+ end if
+ end if
+ lenbeat = ifnodur(mtrden,'x')
+ lenmult = 1
+ if (mtrden .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbar = lenmult*mtrnum*lenbeat
+ call fwbrsym(lenbar,nwbrs,wbrsym,lwbrs)
+ end if
+ ip1 = 0
+ line1 = line(1)
+ do 3 iw = 0 , nwbrs
+ if (iw .gt. 0) then
+ idx = ntindex(line1,wbrsym(iw)(1:lwbrs))
+ if (idx .gt. 0) then
+c
+c Check for blank or shifted rest, discount it if it's there
+c
+ if (line1(idx+lwbrs:idx+lwbrs).ne.' ') idx = 0
+ end if
+ else
+ idx = ntindex(line1,'rp')
+c
+c Check for raised rest
+c
+ if (idx.gt.0) then
+ if (line1(idx+2:idx+2).ne.' ') idx = 0
+ end if
+ end if
+ if (idx .gt. 0) then
+ if (ip1 .eq. 0) then
+ ip1 = idx
+ else
+ ip1 = min(ip1,idx)
+ end if
+ end if
+3 continue
+ if (i.lt.5 .or. line(1)(1:1).eq.'%' .or. line(1)(1:2).eq.sq//sq
+ * .or. ip1.eq.0) go to 2
+c
+c Switch to multibar rest search mode!!! Start forward in line(1)
+c
+ rpfirst = line1(ip1:ip1+1) .eq. 'rp'
+ iline = 1
+ nmbr = 1
+ if (rpfirst) then
+ lwbrsx = 2
+ else
+ lwbrsx = lwbrs
+ end if
+ ipe = ip1+lwbrsx-1
+4 if (ipe .eq. len) then
+c
+c Need a new line
+c
+ iline = iline+1
+6 read(10+iv,'(a)',end=998)line(iline)
+ len = lenstr(line(iline),128)
+ if (line(iline)(1:1).eq.'%' ) then
+ write(40,'(a)')'% Following comment has been moved forward'
+ write(40,'(a)')line(iline)(1:len)
+ go to 6
+ end if
+ ipe = 0
+ go to 4
+998 continue
+c
+c No more input left
+c
+ print*,'All done!'
+ alldone = .true.
+ ipe = 0
+ iline = iline-1
+ len = lenstr(line(iline),128)
+ go to 4
+ else
+ if (alldone) then
+ sym(1:1) = ' '
+ else
+c
+c ipe<len here, so it's ok to get a symbol
+c
+ call nextsym(line(iline),len,ipe,ipenew,sym,lsym)
+ end if
+c
+c Check for end of block or bar line symbol
+c
+ if (index('/|',sym(1:1)) .gt. 0) then
+ ipe = ipenew
+ go to 4
+ else
+ wbrest = .false.
+ if (alldone) go to 12
+ do 5 iw = 1 , nwbrs
+ wbrest = wbrest .or. sym(1:lsym).eq.wbrsym(iw)(1:lwbrs)
+5 continue
+ wbrest = wbrest .or. (sym(1:lsym).eq.'r'.and.lwbrs.eq.2)
+ * .or. (sym(1:lsym).eq.'rd'.and.lwbrs.eq.3)
+ * .or. (sym(1:lsym).eq.'rp')
+ * .or. (sym(1:lsym).eq.'r' .and. rpfirst)
+12 if (wbrest) then
+ ipe = ipenew
+ nmbr = nmbr+1
+ go to 4
+ else
+c
+c AHA! Failed prev. test, so last symbol was *not* mbr.
+c It must be saved, and its starting position is ipenew-lsym+1
+c
+ if (nmbr .gt. 1) then
+c
+c Write stuff up to start of mbr
+c
+ if (ip1 .gt. 1) write(40,'(a)')line(1)(1:ip1-1)
+c
+c Insert mbr symbol. Always end with a slash just in case next sym must be
+c at start of block. May think this causes undefined octaves, but
+c probably not since it's a single voice.
+c
+ ndig = int(alog10(nmbr+.01))+1
+ print*,'Inserting rm, iv,nmbr:',iv,nmbr
+ write(40,'(a2,i'//char(48+ndig)//',a2)')'rm',nmbr,' /'
+ if (alldone) go to 999
+ ipc = ipenew-lsym+1
+ line(1) = line(iline)(ipc:len)
+ else
+c
+c Write old stuff up to end of original lonesome wbr, save the rest.
+c 4 cases: (wbr /) , (wbr line-end) , (wbr followed by other non-/ symbols) ,
+c alldone.
+c In 1st 2 will have gotten some other lines, so write all up to one b4 last
+c non-comment line; then revert to normal mode on that. In 3rd case must
+c split line.
+c
+ if (alldone) then
+ write(40,'(a)')line(1)(1:len)
+ go to 999
+ else if (iline .gt. 1) then
+ do 9 il = 1 , iline-1
+ len = lenstr(line(il),128)
+ write(40,'(a)')line(il)(1:len)
+9 continue
+ line(1) = line(iline)
+ else
+c
+c Since iline = 1 the wbr is not the last sym, so must split
+c
+ write(40,'(a)')line(1)(1:ip1+lwbrsx-1)
+ line(1) = line(1)(ip1+lwbrsx+1:len)
+ end if
+ end if
+c
+c Exit multibar mode
+c
+ go to 7
+ end if
+ end if
+ end if
+2 continue
+ if (len .gt. 0) then
+ write(40,'(a)')line(1)(1:len)
+ else
+ write(40,'(a)')' '
+ end if
+1 continue
+999 continue
+ close(10+iv)
+ close(40)
+ return
+ end
+ function ifnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ ifnodur=1
+ else if (idur .eq. 3) then
+ ifnodur=2
+ else if (idur.eq.1 .or. idur.eq.16) then
+ ifnodur=4
+ else if (idur .eq. 8) then
+ ifnodur=8
+ else if (idur .eq. 4) then
+ ifnodur=16
+ else if (idur .eq. 2) then
+ ifnodur=32
+ else if (idur .eq. 0) then
+ ifnodur=64
+ else
+ print*,'You entered an invalid note-length value'
+ stop
+ end if
+ if (dotq .eq. 'd') ifnodur = ifnodur*3/2
+ return
+ end
+ subroutine fwbrsym(lenbar,nwbrs,wbrsym,lwbrs)
+ character*3 wbrsym(2)
+ nwbrs = 1
+ lwbrs = 2
+ if (lenbar .eq. 16) then
+ wbrsym(1) = 'r4'
+ else if (lenbar .eq. 32) then
+ wbrsym(1) = 'r2'
+ else if (lenbar .eq. 64) then
+ wbrsym(1) = 'r0'
+ else if (lenbar .eq. 8) then
+ wbrsym(1) = 'r8'
+ else if (lenbar .eq. 128) then
+ wbrsym(1) = 'r9'
+ else
+ nwbrs = 2
+ lwbrs = 3
+ if (lenbar .eq. 24) then
+ wbrsym(1) = 'rd4'
+ wbrsym(2) = 'r4d'
+ else if (lenbar .eq. 48) then
+ wbrsym(1) = 'rd2'
+ wbrsym(2) = 'r2d'
+ else if (lenbar .eq. 96) then
+ wbrsym(1) = 'rd0'
+ wbrsym(2) = 'r0d'
+ else
+ write(*,'(33H Any whole-bar rests of duration ,i3,
+ * 26H/64 will not be recognized)') lenbar
+ end if
+ end if
+ return
+ end
+ subroutine nextsym(line,len,ipeold,ipenew,sym,lsym)
+c
+c Know its the last symbol if on return ipenew = len!. So should never
+c be called when ipstart=len.
+c
+ character*128 line
+ character*80 sym
+ if (ipeold .ge. len) then
+ print*,'Called nextsym with ipstart>=len '
+ print*,'Send files to Dr. Don at dsimons@logicon.com'
+ stop
+ end if
+ do 1 ip = ipeold+1 , len
+ if (line(ip:ip) .ne. ' ') then
+c
+c symbol starts here (ip). We're committed to exit the loop.
+c
+ if (ip .lt. len) then
+ do 2 iip = ip+1 , len
+ if (line(iip:iip) .ne. ' ') go to 2
+c
+c iip is the space after the symbol
+c
+ ipenew = iip-1
+ lsym = ipenew-ip+1
+ sym = line(ip:ipenew)
+ return
+2 continue
+c
+c Have len>=2 and ends on len
+c
+ ipenew = len
+ lsym = ipenew-ip+1
+ sym = line(ip:ipenew)
+ return
+ else
+c
+c ip = len
+c
+ ipenew = len
+ lsym = 1
+ sym = line(ip:ip)
+ return
+ end if
+ end if
+1 continue
+ print*,'Error #3. Send files to Dr. Don at dsimons@logicon.com'
+ end
+ function ntindex(line,s2q)
+c
+c Returns index(line,s2q) if NOT in TeX string, 0 otherwise
+c
+ character*(*) s2q
+ character*128 line,tline
+ logical intex
+c
+c print*,'Starting ntindex. s2q:',s2q,', line(1:79) is below'
+c print*,line(1:79)
+c
+c
+c Use a temporary string to store the input and test, so can zap D"..."
+c
+ tline = line
+ ndxs2 = index(tline,s2q)
+c
+c Return point below for rechecks after zapping D" "
+c
+2 continue
+ ndxbs = index(tline,char(92))
+ if (ndxbs .gt. 0) then
+c
+c Special check in case \ is inside D"..."
+c
+ ndxDq1 = index(tline,'D"')
+c
+c If the following test fails, flow out of if block; else loop up to 2.
+c
+ if (ndxDq1 .gt. 0) then
+c
+c Find end of D"..."
+c
+ ndxDq2 = ndxDq1+1+index(tline(ndxDq1+2:128),'"')
+ if (ndxDq2 .eq. ndxDq1+1) then
+ print*,'Something is really wierd here'
+ stop
+ end if
+ tline = tline(1:ndxDq1-1)
+ do 3 ic = ndxDq1 , ndxDq2
+ tline = tline(1:ic-1)//' '
+3 continue
+ tline = tline(1:ndxDq2)//line(ndxDq2+1:128)
+ go to 2
+ end if
+ end if
+ if (ndxbs.eq.0 .or. ndxs2.lt.ndxbs) then
+ ntindex = ndxs2
+c print*,'No bs, or char is left of 1st bs, ntindex:',ntindex
+ else
+c
+c There are both bs and s2q, and bs is to the left of sq2. So check bs's to
+c right of first: End is '\ ', start is ' \'
+c
+ len = lenstr(tline,128)
+ intex = .true.
+c print*,'intex+>',intex
+ do 1 ic = ndxbs+1 , len
+ if (ic .eq. ndxs2) then
+ if (intex) then
+ ntindex = 0
+ ndxs2 = index(tline(ic+1:len),s2q)+ic
+c print*,'ndxs2 =>',ndxs2
+ else
+ ntindex = ndxs2
+ return
+ end if
+c print*,'Internal exit, intex, ntindex:',intex,ntindex
+ else if (intex .and. tline(ic+1:ic+2).eq.char(92)//' ') then
+ intex = .false.
+c print*,'intex+>',intex
+ else if (.not.intex .and. tline(ic+1:ic+2).eq.' '//char(92))
+ * then
+ intex = .true.
+c print*,'intex+>',intex
+ end if
+1 continue
+c print*,'Out end of loop 1'
+ end if
+c print*,'Exiting ntindex at the end???'
+ return
+ end
+ subroutine getchar(line,iccount,charq)
+c
+c Gets the next character out of line*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount to position of the new character.
+c
+ character*1 charq
+ character*128 line
+ if (iccount .eq. 128) then
+ read(10,'(a)')line
+ iccount = 0
+ end if
+ iccount = iccount+1
+ charq = line(iccount:iccount)
+ return
+ end
+ function readin(line,iccount,iread)
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+c
+c Reads a piece of setup data from line, gets a new line from
+c file 10 (jobname.pmx) if needed, Transfers comment lines into all parts.
+c
+c iread controls copying of values into scratch files for parts, but only
+c if not replacing.
+c
+c iread input value written
+c -1 nvi nothing (only used when noinst<0 initially)
+c 0 various value read
+c 1 nv -1 , replace later with nvi(i)
+c 2 noinst 1
+c 3 np -2 , replace later with (nsyst-1)/12+1
+c 4 musicsize 20
+c 5 fracondent 0.05
+c
+ character*128 line
+ character*1 durq
+4 if (iccount .eq. 128) then
+ read(10,'(a)')line
+ if (replacing) replacing = .false.
+ call chkcom(line)
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 2 iccount = iccount , 127
+ if (line(iccount:iccount) .ne. ' ') go to 3
+2 continue
+c
+c If here, need to get a new line
+c
+ iccount = 128
+ go to 4
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(line,iccount,durq)
+c
+c Remember that getchar first increments iccount, *then* reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ stop 1
+ end if
+ icf = i2-i1+49
+ read(line(i1:i2),'(f'//char(icf)//'.0)')readin
+ if (.not.replacing) then
+ if (iread .eq. 0) then
+ call allparts(line(i1:i2),i2-i1+1)
+ else if (iread .eq. 1) then
+ call allparts('-999',4)
+ else if (iread .eq. 2) then
+ call allparts('1',1)
+ else if (iread .eq. 3) then
+ call allparts('-998',4)
+ else if (iread .eq. 4) then
+ call allparts('20',2)
+ else if (iread .eq. 5) then
+ call allparts('.05',3)
+ else if (iread .ne. -1) then
+ print*,'Error with iread in readin'
+ stop
+ end if
+ end if
+ return
+ end
+ subroutine chkcom(line)
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,clefpend,botv
+ character*128 line
+c
+c Assume that line has just been read. No need to change iccount since we only
+c process full lines.
+c
+1 if (line(1:1) .ne. '%') return
+c
+c If here, line has some sort of comment
+c
+ if (line(2:2) .eq. '%') then
+ if (.not. insetup) then
+c
+c Suck up a line, then flow out of "if" block to get another and loop
+c
+ read(10,'(a)')line
+
+c++VV
+c
+c UNLESS (a) it has a score-only "M" and changes # of inst's.
+c
+ if (index(line,'M') .gt. 0) then
+ idxL = index(line,'L')
+ idxM = index(line,'M')
+ idxn = index(line,'n')
+ idxb = index(line,' ')
+ if (idxL.lt.idxM .and. idxM.lt.idxn .and.
+ * (idxb.eq.0 .or. idxn.lt.idxb)) then
+ noinow = ichar(line(idxn+1:idxn+1))-48
+ clefpend = .true.
+c
+c Next noinow digits are original inst. #'s of new inst. set. Next noinow
+c char's after that are clefs
+c
+ nvnow = 0
+ do 24 j = 1 , noinow
+ iorig(j) = ichar(line(idxn+1+j:idxn+1+j))-48
+ iposc0 = idxn+1+noinow
+ do 25 k = 1 , nvi(iorig(j))
+ nvnow = nvnow+1
+c clefq(nvnow) = line(iposc0+nvnow:iposc0+nvnow)
+ instnum(nvnow) = j
+ botv(nvnow) = k.eq.1 .and. j.ne.1
+25 continue
+24 continue
+ end if
+ end if
+c
+c or if it's "h" or "l", need to suck up one more line
+c
+ if ((line(1:1).eq.'h'.and.index('+- ',line(2:2)).gt.0) .or.
+c
+c 4/29/00 check for T string also
+c
+ * line(1:1).eq.'T' .or.
+ * line(1:2).eq.'l ') read(10,'(a)')line
+ else
+c
+c In setup mode. Set flag, flow out and do use following line
+c
+ replacing = .true.
+ end if
+ else if (line(2:2) .eq. '!') then
+c
+c Copy to all parts
+c
+ call allparts(line(3:128),125)
+ else
+c
+c Get value of hex integer 1,2,...,9,a,b,c in 2nd position, zero otherwise
+cc Get value of extended hex integer 1,2,...,9,a,b,c,...,o in 2nd position, zero otherwise
+c
+ ivq = index('123456789abcdefghijklmno',line(2:2))
+c
+c Only treat as part-specific pmx line if number .le. noinst
+c
+ if (ivq.lt.1 .or. ivq.gt.noinst) then
+c
+c Simple comment.
+c
+ call allparts(line,128)
+ else
+c
+c Instrument comment, copy only to part
+c
+ lenline = lenstr(line,128)
+ if (lenline .gt. 2) then
+ write(10+ivq,'(a)')line(3:lenline)
+ else
+c
+c Transferring blank line
+c
+ write(10+ivq,'(a)')' '
+ end if
+ end if
+ end if
+ read(10,'(a)',end=2)line
+ call zapbl(line,128)
+ go to 1
+2 continue
+ return
+ end
+ subroutine dosetup(iv,line,mtrnum,mtrden)
+ parameter (noimax=24)
+c
+c Transfers setup data from scratch file to real one for one instrument
+c Data may be mixed with comments, but on entry 1st item is a number.
+c Write a comment when encountered, as it comes.
+c Write numbers one per line.
+c Three input data require special handling:
+c If not already replaced, i.e., if negative, then
+c iset(1) (nv) will be replaced with nvi(i)
+c iset(9) (npages) will be replaced with (nsyst-1)/12+1
+c iset(2), if negative, will be followed by extra numbers to be transf.
+c
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,clefpend,botv
+ character*128 line
+ iccount = 0
+ do 1 iset = 1 , 12
+ call partnum(iv,iccount,line,xdata)
+ if (iset .eq. 2) then
+ if (xdata .gt. 0) then
+ write(40,'(i5)')int(xdata+.1)
+ else
+ noi = -xdata+.1
+ write(40,'(i5)')noi
+ do 2 ioi = 1 , noi
+ call partnum(iv,iccount,line,xdata)
+ write(40,'(i5)')int(xdata+.1)
+2 continue
+ end if
+c else if (iset.ne.8 .and. xdata.lt.0) then
+ else if (iset.ne.8 .and. iset.ne.5 .and. xdata.lt.0) then
+c
+c Must be either nv or npages
+c
+ if (int(-xdata+.1) .eq. 999) then
+c
+c It's nv
+c
+ write(40,'(i5)')nvi(iv)
+ else
+c
+c npages must be computed
+c
+ write(40,'(i5)')(nsyst-1)/12+1
+ end if
+ else if (iset.ne.7 .and. iset.ne.12) then
+c
+c write integer
+c
+ write(40,'(i5)')nint(xdata)
+ else
+c
+c write floating number
+c
+ write(40,'(f5.2)')xdata
+ end if
+ if (iset .eq. 3) then
+ mtrnum = nint(xdata)
+ else if (iset .eq. 4) then
+ mtrden = nint(xdata)
+ end if
+1 continue
+ return
+ end
+ subroutine partnum(iv,iccount,line,xdata)
+c
+c Simplified number parsing. Only looks for comment lines and numbers.
+c
+ character*128 line
+ character*1 durq
+2 if (iccount .eq. 128) then
+ read(10+iv,'(a)')line
+ if (line(1:1) .eq. '%') then
+ len = lenstr(line,128)
+ write(40,'(a)')line(1:len)
+ go to 2
+ end if
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 4 iccount = iccount , 127
+ if (line(iccount:iccount) .ne. ' ') go to 3
+4 continue
+c
+c If here, iccount=128 and need to get a new line
+c
+ go to 2
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(line,iccount,durq)
+c
+c Remember that getchar first increments iccount, *then* reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ stop 1
+ end if
+ icf = i2-i1+49
+ read(line(i1:i2),'(f'//char(icf)//'.0)')xdata
+ return
+ end
+ block data
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+ data nvi /noimax*1/, noinst,noinow /2*noimax/
+ data botv /noimax*.false./
+ end
+ subroutine zapbl(string,len)
+ character*(*) string
+ do 1 i = 1 , len
+ if (string(i:i) .eq. ' ')go to 1
+ if (i .eq. 1) return
+ go to 2
+1 continue
+c
+c If line is all blank, leave it alone
+c
+ return
+2 continue
+ string = string(i:len)
+ return
+ end
+ subroutine OddQuotesBefore(lineq,indx,yesodd)
+c
+c This counts number of double quotes in lineq up to position indx-1, then
+c sets yesodd according to whether number is odd or even
+c
+ logical yesodd
+ character*(*) lineq
+ numdqs = 0
+ do 1 i = 1 , indx-1
+ if (lineq(i:i) .eq. '"') numdqs = numdqs+1
+1 continue
+ yesodd = mod(numdqs,2) .eq. 1
+ return
+ end
+
+
+
+
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/scor2prt.for.orig b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.for.orig
new file mode 100644
index 00000000000..b785cad009b
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/scor2prt.for.orig
@@ -0,0 +1,1619 @@
+cccccccccccccccccccccccccc
+cc
+cc scor2prt 7/24/11 for PMX 2.615
+cccccccccccccccccccccccccc
+c This program, developed by Don Simons (dsimons@roadrunner.com), is
+c part of the PMX distribution, PMX is a preprocessor for MusiXTeX. In concert
+c with MusiXTeX and TeX, the purpose of PMX is to allow the user to create
+c high-quality typeset musical scores by including a sequence of PMX commands
+c in an ASCII input file. Scor2prt is an auxiliary program that creates PMX
+c input files for individual parts from the PMX input file for the score.
+c
+c This program is free software: you can redistribute it and/or modify
+c it under the terms of the GNU General Public License as published by
+c the Free Software Foundation, either version 3 of the License, or
+c (at your option) any later version.
+c
+c This program is distributed in the hope that it will be useful,
+c but WITHOUT ANY WARRANTY; without even the implied warranty of
+c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+c GNU General Public License for more details.
+c
+c You should have received a copy of the GNU General Public License
+c along with this program. If not, see <http://www.gnu.org/licenses/>.
+c
+c
+c 7/18/11
+c Start to fix up for AS..., also Ki was done a little earlier.
+c 7/5/10
+c Modify Manual to explain extended hex numbering for part-specific comments
+c 5/16/10
+c Extend part-specific comments for up to 24 parts (subroutine chkcom)
+c Allow files 11-34 for parts
+c Change file 30 to 40
+c 6/1/08 es2p
+c noimax = 24
+c
+c To do
+c Override fracindent, musicsize?
+c Deal with midbar R?
+c 2/29/04
+c Check for special character being in quoted string.
+c 10/20/02 PMX 2.407
+c Interpret AN[n]"[used-defined-part-file-name]"
+c 1/21/02
+c Deals with rm in multiple parts.
+c s2p15
+c Get right non-tex index even if there's "\" inside D"..."
+c s2p14
+c 10/29/00 fix transfer to parts of negative mtrdnp
+c 4/29/00 screen for "%%" followed by "T"
+c Restore change from "Version 2.1a, 21 Dec"
+c s2p13
+c Allow whole-bar double-whole rests.
+c Bypass MIDI commands "I..." achar(10)="I"
+c s2p12
+c Let %ablabla ... %cblabla represent pmx input for parts 10-12. But %?blabla
+c only taken as such if ? represents a hex digit .le. noinst, otherwise it's
+c a simple comment. This lessens incompatibility.
+c In subroutine mbrest, properly open parts 10-12 if needed
+c s2p11
+c Ignore leading blanks
+c Fix undefined linelength in mbrest at very end of comments.
+c s2p10
+c Fix non-transfer of P..c" "
+c Allow "%%" and "%"n anywhere
+c Version 1.43
+c Fix bug with P in TeX string.
+c Ignore shifted whole-bar rests when consolidating whole-bar rests
+c Copy type 4 TeX into all parts.
+c Deal with XB and XP.
+c Permit transfer of blank line into parts
+c Change staves/inst in 'M' command.
+c Arbitrary staves/inst.
+c Recognize m1/2/3/4 syntax.
+c Enable comment and one-voice syntax in instrument names
+c
+c Changes since 1.1
+c Deal with saved macros.
+c Revise setup readin, to admit comments.
+c Do not copy 'X' into parts
+c
+cccccccccccccccccccccccccccccccccccccccccccccccc
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ integer*4 ludpfn(noimax)
+ character*1 sq,achar(10)
+ character*2 termsym
+ character*27 jobname,infileq
+ character*128 instrum(noimax),udpfnq(noimax)
+ character*128 line,holdln,templine
+ logical termrpt,isachar,frstln,oneof2,botv,clefpend,fexist,
+ * insetup,replacing,gotname,yesodd
+ data achar /'P','m','V','R','A','h','w','K','M','I'/
+ clefpend = .false.
+ insetup = .true.
+ replacing = .false.
+ frstln = .true.
+ lenhold = 0
+ sq = char(92)
+ print*,'This is scor2prt for PMX 2.615, 24 July 2011'
+ numargs = iargc()
+ if (numargs .eq. 0) then
+ print*,'You could have entered a jobname on the command line,'
+ print*,' but you may enter one now:'
+ read(*,'(a)')jobname
+ numargs = 1
+ else
+ call getarg(1,jobname,idum) ! May need to replace this w/ next line
+c call getarg(1,jobname)
+ end if
+ ljob = lenstr(jobname,27)
+ if (ljob .eq. 0) then
+ print*,'No was jobname entered. Restart and try again.'
+ stop
+ end if
+c
+c Strip ".pmx" if necessary
+c
+ ndxpmx = max(index(jobname,'.pmx'),index(jobname,'.PMX'))
+ if (ndxpmx .gt. 0) then
+ jobname = jobname(1:ndxpmx-1)
+ ljob = ljob-4
+ end if
+c
+c Check for existence of input file
+c
+ infileq = jobname(1:ljob)//'.pmx'
+ inquire(file=infileq,EXIST=fexist)
+ if (.not.fexist) then
+ print*,'Cannot find file '//infileq
+ stop
+ end if
+ open(10,file=jobname(1:ljob)//'.pmx')
+c
+c Open all instrument files now for allparts stuff. Later disgard those >nv
+c
+ do 19 iv = 1 , noimax
+ iorig(iv) = iv
+ open(10+iv,status='SCRATCH')
+ ludpfn(iv) = 0
+19 continue
+ read(10,'(a)')line
+ call chkcom(line)
+ if (line(1:3) .eq. '---') then
+ call allparts(line,128)
+31 read(10,'(a)')line
+ if (line(1:3) .ne. '---') then
+ call allparts(line,128)
+ go to 31
+ end if
+ call allparts(line,128)
+ read(10,'(a)')line
+ call chkcom(line)
+ end if
+ iccount = 0
+ nv = readin(line,iccount,1)+.1
+ noinst = readin(line,iccount,2)+.1
+ if (noinst .gt. 0) then
+ nvi(1) = nv-noinst+1
+ else
+ noinst = 1-noinst
+ do 21 iinst = 1 , noinst
+ nvi(iinst) = readin(line,iccount,-1)+.1
+21 continue
+ end if
+ noinow = noinst
+ insnow = 1
+c
+c ivlast is last iv in current inst. instnum(iv) is iinst for current voice.
+c
+ ivlast = nvi(1)
+ do 22 iv = 1 , nv
+ instnum(iv) = insnow
+ if (iv .eq. ivlast) then
+ if (iv .lt. nv) botv(iv+1) = .true.
+c
+c The previous stmt will set botv true only for bot voice of iinst>1. It is
+c used when writing termrpts, but the one in voice one is handled differently,
+c so botv(1) is left .false.
+c
+ if (insnow .lt. noinst) then
+ insnow = insnow+1
+ ivlast = ivlast+nvi(insnow)
+ end if
+ end if
+22 continue
+ mtrnuml = readin(line,iccount,0)+.1
+ mtrdenl = readin(line,iccount,0)+.1
+ mtrnmp = readin(line,iccount,0)+.1
+ mtrdnp = readin(line,iccount,0)+.1
+ xmtrnum0 = readin(line,iccount,0)
+ isig = readin(line,iccount,0)+.1
+ npages = readin(line,iccount,3)+.1
+ nsyst = readin(line,iccount,0)+.1
+ musicsize = readin(line,iccount,4)+.1
+ fracindent = readin(line,iccount,5)
+ if (npages .eq. 0) then
+ print*,
+ *'You entered npages=0, which means nsyst is not the total number'
+ print*,
+ *'of systems. Scor2prt has to know the total number of systems.'
+ print*,
+ *'Please set npages and nsyst to their real values.'
+ stop
+ end if
+c
+c Must leave insetup=.true. else could bypass ALL instrument names.
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ backspace(10)
+c
+c Normally this puts pointer at start of line with 1st inst name
+c Check if prior line was "%%"
+c
+ backspace(10)
+ read(10,'(a)')line
+ if (line(1:2) .eq. '%%') backspace(10)
+ do 14 iv = 1 , noinst
+ gotname = .false.
+16 read(10,'(a)') instrum(iv)
+ if (instrum(iv)(1:2) .eq. '%%') then
+ read(10,'(a)')line
+ go to 16
+ else if (instrum(iv)(1:1) .eq. '%') then
+ ivq = ichar(instrum(iv)(2:2))-48
+ if (ivq.ne.iv) then
+c
+c It's really a comment. Copy to parts, then get another trial name.
+c
+ call allparts(instrum(iv),128)
+ go to 16
+ else
+ line = instrum(iv)(3:)
+ instrum(iv) = line
+ gotname = .true.
+ end if
+ else
+ gotname = .true.
+ end if
+cc
+cc The following checks for macro that write original C-clef as part of
+cc instrument name. See pmx.tex
+cc
+c if (index(instrum(iv),'namewpc') .eq. 0) then
+c write(10+iv,'(a)')' '
+c else
+c inm1 = index(instrum(iv),'{')+1
+c inm2 = index(instrum(iv),'}')-1
+c read(instrum(iv)(inm2+2:inm2+8),'(i1,4x,2i1)')ilev,iy1,iy2
+c write(10+iv,'(a)')sq//'namewpc{}'//char(ilev+48)//'{20}'//
+c * char(iy1+49)//char(iy2+49)
+c instrum(iv) = instrum(iv)(inm1:inm2)
+c end if
+ if (.not.gotname) then
+ print*,'You must provide a replacement instrument name'
+ stop
+ end if
+ write(10+iv,'(a)')' '
+14 continue
+ replacing = .false.
+ nvnow = nv
+c
+c Clef string: Note insetup is still T, so "%%" will be treated specially
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ if (replacing) then
+c
+c If here, we have next line after "%%", containing score's clef string
+c Assume all clefs are handled with instrument comments.
+c
+ read(10,'(a)')line
+ call chkcom(line)
+ backspace(10)
+ else
+c
+c If here, line has the clef string in it. Handle the old way
+c
+ kvstart = 1
+ kvend = nvi(1)
+ do 2 inst = 1 , noinst
+ write(10+inst,'(a'//char(48+nvi(inst))//')')
+ * line(kvstart:kvend)
+ if (inst .lt. noinst) then
+ kvstart = kvend+1
+ kvend = kvstart+nvi(inst+1)-1
+ end if
+2 continue
+ end if
+ replacing = .false.
+ insetup = .false.
+c
+c *****NOTE*****This comment applies to stuff done earlier!
+c Before starting the big loop, copy initial instnum and staffnum stuff
+c into working values. Latter may change if noinst changes. Also make
+c list of current inst nums relative to original ones. In addition to those
+c below, must redo instnum(iv) and botv(iv) when we change noinst.
+c
+c Path string: ASSUME THIS WILL NEVER BE ALTERED IN PARTS!
+c
+18 read(10,'(a)') line
+ if (line(1:1) .eq. '%') then
+ call allparts(line,128)
+ go to 18
+ end if
+ call allparts(line,128)
+c
+c Write instrument names. Will be blank if later part of a score.
+c
+ if (instrum(1)(1:1) .ne. ' ') then
+ do 3 iv = 1 , noinst
+ len = lenstr(instrum(iv),79)
+ write(10+iv,'(a2/a)')'Ti',instrum(iv)(1:len)
+3 continue
+ end if
+c
+c The big loop. Except for '%%', put all comment lines in all parts.
+c Unless preceeded by '%%', put all type 2 or 3 TeX Strings in all parts
+c If a line starts with %!, put the rest of it in each part.
+c If a line starts with %[n], put the rest of it in part [n].
+c Check for Tt, Tc, Voltas, Repeats, headers, lower texts, meter changes.
+c Assume they only come at top of block, except terminal repeat needs
+c special handling.
+c Check for "P"; ignore in parts.
+c Check for consecutive full-bar rests; if found, replace with rm[nn]
+c
+ iv = 1
+ iinst = 1
+ termrpt = .false.
+4 read(10,'(a)',end=999)line
+ lenline = lenstr(line,128)
+ if (lenline .eq. 0) go to 4
+ call zapbl(line,128)
+ call chkcom(line)
+ lenline = lenstr(line,128)
+ if (lenline .eq. 0) go to 4
+ if (line(1:1) .eq. 'T') then
+ call allparts(line,128)
+ read(10,'(a)')line
+ call allparts(line,128)
+ go to 4
+ else if (line(1:2) .eq. sq//sq) then
+ call allparts(line,128)
+ go to 4
+ else if (index('hl',line(1:1)).gt.0 .and.
+ * index(' +-',line(2:2)) .gt. 0) then
+ call allparts(line,128)
+ read(10,'(a)')line
+ call allparts(line,128)
+ go to 4
+ else if (iv .eq. 1) then
+ do 5 ia = 1 , 10
+24 continue
+ idxa = ntindex(line,achar(ia))
+ isachar = idxa .gt. 0
+ if (idxa.gt.1) isachar = line(idxa-1:idxa-1).eq.' '
+c
+c 1 2 3 4 5 6 7 8 9 10
+c data achar /'P','m','V','R','A','h','w','K','M','I'/
+c
+ if (ia .eq. 9) isachar =
+ * isachar .and. line(idxa+1:idxa+1).eq.'S'
+ if (isachar) then
+c
+c Check whether character is inside a quoted string by counting
+c how many quotes precede it in the line
+c
+
+ call OddQuotesBefore(line,idxa,yesodd)
+ if (yesodd) isachar=.false.
+ end if
+ if (isachar) then
+c
+c Find next blank
+c
+ do 6 ib = idxa+1 , 128
+ if (line(ib:ib) .eq. ' ') go to 7
+6 continue
+ print*,'Problem with "V,R,m,P,A,h,MS, or w"'
+ print*,
+ * 'Send files to Dr. Don at dsimons at roadrunner dot com'
+ stop 1
+7 continue
+c
+c Next blank is at position ib. Later, if ia=1, must check for Pc" " ;
+c i.e., look for '"' between P and blank
+c
+ if (ia .eq. 4) then
+c
+c Check for terminal repeat. Note if there's a term rpt, there can't be any
+c others. Also, must process repeats LAST, after m's and 'V's
+c
+ do 8 ic = ib+1 , 128
+c
+c If any subsequent character on this line is neither blank nor "/", get out
+c
+ if (index(' /',line(ic:ic)) .eq. 0) go to 9
+ if (line(ic:ic) .eq. '/') then
+ termrpt = .true.
+ termsym = line(ib-2:ib-1)
+c
+c Process the line as if there were no "R"
+c
+ go to 10
+ end if
+8 continue
+c
+c +++ 060812
+c If here, all chars after "R" symbol are blanks, so process the line normally,
+c but only IF next line is not the M-Tx line " /"
+c
+ read(10,'(a)')templine
+ if (templine(1:2) .ne. ' /') then
+ backspace(10) ! and flow out
+ else
+c
+c We have the M-Tx case where one line ends with R? and next is " /". Add / to the line,
+c and proceed as above
+c
+ line = line(1:ib)//'/'
+ lenline = lenline+2
+ termrpt = .true.
+ termsym = line(ib-2:ib-1)
+ go to 10
+ end if
+c +++ 060812
+c
+ else if (ia .eq. 1) then
+ idxq = ntindex(line,'"')
+ if (idxq.gt.idxa .and. idxq.lt.ib) then
+c
+c Quote is between P and next blank. Find 2nd quote, starting at the blank.
+c
+ idxq2 = ib-1+ntindex(line,'"')
+ if (idxq.eq.0 .or. line(idxq2+1:idxq2+1).ne.' ') then
+ print*
+ print*,'Error copying P with quotes, idxq2:',idxq2
+ print*,line(1:60)
+ stop 1
+ end if
+ ib = idxq2+1
+ end if
+c
+c Do not transfer P into parts.
+c
+ go to 12
+ else if (ia .eq. 9) then
+c
+c Start Saving a macro. After leaving here, a symbol will be sent to all parts,
+c If all on this line, set ib to end and exit normally.
+c
+ ndxm = index(line(ib+1:128),'M')
+ if (ndxm.gt.0 .and. line(ib+ndxm-1:ib+ndxm-1).eq.' ') then
+c
+c Macro ends on this line
+c
+ ib = ib+ndxm+1
+ else
+c
+c Save leading part of current line
+c
+ lenhold = idxa-1
+ if (lenhold .gt. 0) holdln = line(1:lenhold)
+c
+c Transfer rest of line
+c
+ call allparts(line(idxa:128),129-idxa)
+c
+c Read next line
+c
+20 read(10,'(a)')line
+c
+c Check for comment, transfer and loop if so
+c
+c if (line(1:1) .eq.'%') then
+23 if (line(1:1) .eq.'%') then
+c call allparts(line,128)
+c go to 20
+ call chkcom(line)
+ go to 23
+ end if
+c
+c Look for terminal ' M'
+c
+ if (line(1:1) .eq. 'M') then
+ ndxm = 1
+ else
+ ndxm = index(line,' M')
+ if (ndxm .gt. 0) ndxm = ndxm+1
+ end if
+ if (ndxm .gt. 0) then
+c
+c Set parameters, exit normally (but later check for leading part of 1st line
+c
+ idxa = 1
+ ib = ndxm+1
+ else
+c
+c No "M", transfer entire line, loop
+c
+ call allparts(line,128)
+ go to 20
+ end if
+ end if
+ else if (ia .eq. 10) then
+c
+c Do not transfer MIDI command into parts
+c
+ go to 12
+ else if (ia .eq. 5) then
+c
+c First check for "AS", but S may come after other "A" options
+c
+ idxS = index(line(idxa+1:ib),'S')
+ if (idxS .gt. 0) then
+c
+c Get rid of the string. First check if that's all there is in A.
+c
+ if (ib-idxa .eq. nv+2) go to 12
+ line = line(1:idxa+idxS-1)//line(idxa+idxS+nv+1:ib)
+ end if
+c
+c Check for user-defined part file name. Must start in column 1 and have
+c AN[n]"userfilename".
+c idxa is position of "A"
+c ib is position of the next blank after "A"
+c Don't allow any blanks in user
+c
+ if (line(idxa+1:idxa+1) .ne. 'N') go to 9 ! bail out
+ if (idxa .ne. 1) then
+ print*
+ print*,
+ * 'You entered "AN..." somewhere beyond first column; stopping.'
+ stop 1
+ end if
+c
+c pmxa already checked for valid one- or 2-digit number, so get it
+c
+ if (line(4:4) .eq. '"') then
+c
+c Single digit instrument number
+c
+ read(line(3:3),'(i1)')iudpfn
+ idxstartname = 5
+ else
+ read(line(3:4),'(i2)')iudpfn
+ idxstartname = 6
+ end if
+ ludpfn(iudpfn) = index(line(idxstartname:128),'"')-1
+ if (ludpfn(iudpfn) .lt. 0) then
+ print*
+ print*,'User-defined part file name must be in quotes'
+ stop 1
+ end if
+ idxendname = idxstartname+ludpfn(iudpfn)-1
+ udpfnq(iudpfn) = line(idxstartname:idxendname)
+c
+c Get a new line!
+c
+ go to 4
+ else if (ia .eq. 8) then
+c
+c Key change/transposition.
+c If not instrument specific, copy to all parts
+c
+ if (line(idxa+1:idxa+1).ne.'i') go to 9
+c
+c Instrument-wise key/transposition(s): Ki[nn][+/-][dd}[+/-][dd]...
+c
+ ibb = idxa+2 ! Starts on digit after 'i'
+40 continue
+ read(line(ibb:ibb),'(i1)')iiinst ! 1st digit of iinst
+ itemp = (index('01234567890',line(ibb+1:ibb+1)))
+ if (itemp.gt.0) then
+ ibb = ibb+1
+ iiinst = 10*iiinst+itemp-1
+ end if
+ ibb = ibb+1 ! now at first +/-. Need end of 2nd number
+ itemp = index(line(ibb+1:ib),'i') ! Rel pos'n of next 'i' or 0
+ if (itemp .gt. 0) then
+ iend = ibb+itemp-1
+ else
+ iend = ib-1
+ end if
+ write(10+iorig(iiinst),'(a)')'Ki1'//line(ibb:iend)
+ if (itemp .gt. 0) then
+ ibb = iend+2
+ go to 40
+ end if
+ go to 12 ! Remove K command from string, go to next ia
+ end if
+9 continue
+ call allparts(line(idxa:ib-1),ib-idxa)
+12 continue
+c
+c Remove the string from line
+c
+ if (idxa .eq. 1) then
+ line = line(ib:128)
+ else
+ line = line(1:idxa-1)//line(ib:128)
+ end if
+ lenline = lenstr(line,128)
+c
+c Loop if only blanks are left
+c
+ if (lenline .eq. 0) go to 4
+c
+c Must check for multiple "I" commands, so go to just after start of ia loop
+c
+ if (ia .eq. 10) go to 24
+c
+c Tack on front part from 1st line of saved macro
+c
+ if (lenhold .gt. 0) then
+ line = holdln(1:lenhold)//' '//line(1:lenline)
+ lenhold = 0
+ end if
+ end if
+5 continue
+ end if
+c
+c Now a special loop to deal with 'X'. If it was %[n]X..., will have been
+c copied into part [n] already. If no "B" or "P", remove. If "P", just
+c remove the "P" so pmxa/b will process. If "B". do nothing.
+c
+10 continue
+ nchk = 1
+13 ntinx = nchk-1+ntindex(line(nchk:),'X')
+ if (ntinx .gt. nchk-1) then
+c
+c There is a non-TeX 'X' at ntinx. Loop if neither 1st nor after a blank.
+c
+ if (ntinx.gt.1) then
+ if (line(ntinx-1:ntinx-1).ne.' ') then
+c
+c The X is not 1st char of PMX command. Advance starting point, loop.
+c
+ nchk = ntinx+1
+ go to 13
+ end if
+ end if
+c
+c We now know the X at ntinx starts a PMX command. Find next blank
+c
+ ib = ntinx+index(line(ntinx+1:),' ')
+c
+c There must be a blank to right of "X", so ib>ntinx
+c
+c locp = nchk-1+index(line(nchk:ib),'P')
+ locp = ntinx+index(line(ntinx+1:ib),'P')
+c
+c Did not need to use ntindex because we already know bounds of PMX command.
+c
+c if (locp .gt. nchk-1) then
+ if (locp .gt. ntinx) then
+c
+c Strip out the 'P'
+c
+ templine = line(1:locp-1)
+ line = templine(1:locp-1)//line(locp+1:lenline)
+ lenline = lenline-1
+ ib = ib-1
+ end if
+ if (index(line(ntinx:ib),':').gt.0 .or.
+ * index(line(ntinx:ib),'S').gt.0 .or.
+ * index(line(ntinx:ib),'B').gt.0 .or. locp.gt.ntinx) then
+c
+c The X command is a shift, "Both", or "Part". Do not remove.
+c
+ nchk = ib+1
+ go to 13
+ end if
+c
+c Remove the X command.
+c
+ if (ntinx .eq. 1) then
+ if (ib .lt. lenline) then
+ line = line(ib+1:lenline)
+ else
+c
+c line contains ONLY the "X" command, so get a new line
+c
+ go to 4
+ end if
+ else
+ templine = line(1:ntinx-1)
+ if (ib .lt. lenline) then
+ line = templine(1:ntinx-1)//line(ib+1:lenline)
+ else
+ line = templine(1:ntinx-1)
+ end if
+ end if
+c
+c Recompute lenline
+c
+ lenline = lenstr(line,128)
+c
+c Resume checking after location of removed command.
+c
+ nchk = ntinx
+ go to 13
+ end if
+c
+c End of loop for X-checks
+c
+ oneof2 = ntindex(line,'//') .gt. 0
+ if (termrpt .and. botv(iv) .and. frstln .and.
+ * line(lenline:lenline).eq.'/') then
+c
+c Must add a terminal repeat before the slash
+c
+ if (oneof2) lenline = lenline-1
+ if (lenline.gt.1) write(10+iorig(iinst),'(a)')line(1:lenline-1)
+ if (.not. oneof2) then
+ line = termsym//' /'
+ lenline = 4
+ else
+ line = termsym//' //'
+ lenline = 5
+ end if
+ end if
+ if (termrpt .and. frstln .and. line(lenline:lenline).eq.'/' .and.
+ * iv.eq.nvnow) termrpt = .false.
+ write(10+iorig(iinst),'(a)')line(1:lenline)
+ if (oneof2) then
+ frstln = .false.
+ else if (.not.frstln) then
+ frstln = .true.
+ end if
+c if (ntindex(line,'/').gt.0 .and. index(line,'//').eq.0) then
+ if (ntindex(line,'/').gt.0 .and. ntindex(line,'//').eq.0) then
+ iv = 1+mod(iv,nvnow)
+ iinst = instnum(iv)
+ end if
+ go to 4
+999 continue
+ close(10)
+c
+c In the mbrest checks, must run through ALL noinst files (not just noinow)
+c
+ do 11 iinst = 1 , noinst
+ccc+++
+cc
+cc Temporarily transfer entire scratch file to real file
+cc
+c rewind(10+iinst)
+c open(40,file='s2pout'//char(48+iinst)//'.pmx')
+c do 50 m = 1 , 10000
+c read(10+iinst,'(a)',end=51)line
+c lenline = lenstr(line,128)
+c if (lenline .ge. 1) then
+c write(40,'(a)')line(1:lenline)
+c else
+c write(40,'(a)')' '
+c end if
+c50 continue
+c51 continue
+c close(40)
+ccc+++
+ if (nvi(iinst) .eq. 1) then
+ call mbrests(iinst,jobname,ljob,ludpfn(iinst),udpfnq(iinst))
+ else
+c
+c Send a signal with ljob to bypass most mbrest processing
+c
+ call mbrests(iinst,jobname,-ljob,ludpfn(iinst),udpfnq(iinst))
+ end if
+11 continue
+ end
+ function lenstr(string,n)
+ character*(*) string
+ do 1 lenstr = n , 1 , -1
+ if (string(lenstr:lenstr) .ne. ' ') return
+1 continue
+ lenstr = 0
+ return
+ end
+ subroutine allparts(string,n)
+ parameter (noimax=24)
+ character*(*) string
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+ len = lenstr(string,n)
+ if (len .eq. 0) then
+ len = 1
+ string = ' '
+ end if
+ do 1 iinst = 1 , noinow
+ write(10+iorig(iinst),'(a)')string(1:len)
+1 continue
+ return
+ end
+ subroutine mbrests(iv,jobname,ljob,ludpfn,udpfnq)
+ character*128 line(50),line1,udpfnq
+ character*80 sym
+ character*12 jobname
+ character*3 wbrsym(2)
+ character*2 partq
+ character*1 sq
+ logical wbrest,alldone,rpfirst,newmtr,type4
+ type4 = .false.
+ sq = char(92)
+ alldone = .false.
+ rewind(10+iv)
+c open(20,file=jobname(1:abs(ljob))//char(48+iv)//'.pmx')
+ if (iv .lt. 10) then
+ partq(1:1) = char(48+iv)
+ lpart = 1
+c
+c 5/16/10 Fix for >20 parts
+c
+c else
+c partq = '1'//char(38+iv)
+c lpart = 2
+ else
+ lpart = 2
+ if (iv .lt. 20) then
+ partq = '1'//char(38+iv)
+ else
+ partq = '2'//char(28+iv)
+ end if
+ end if
+c if (ludpfn .eq. 0) then
+ open(40,file=jobname(1:abs(ljob))//partq(1:lpart)//'.pmx')
+c else
+c open(30,file=udpfnq(1:ludpfn)//'.pmx')
+c end if
+ do 10 i = 1 , 10000
+ read(10+iv,'(a)')line(1)
+ if (line(1)(1:1).eq.'%' .or. line(1)(1:3).eq.'---'
+ * .or. type4) then
+ len = lenstr(line(1),128)
+ if (len .gt. 0) then
+ write(40,'(a)')line(1)(1:len)
+ else
+ write(40,'(a)')' '
+ end if
+ if (line(1)(1:3).eq.'---') type4 = .not.type4
+ else
+ go to 11
+ end if
+10 continue
+ print*,'You should not be here in scor2prt. Call Dr. Don'
+ stop
+11 continue
+c
+c Finished reading opening type4 TeX and comments. Next line to be read
+c will contain the first of the input numbers
+c
+ call dosetup(iv,line(1),mtrnum,mtrden)
+ do 1 i = 1 , 10000
+13 read(10+iv,'(a)',end=999)line(1)
+7 len = lenstr(line(1),128)
+c
+c Pass-through if instrumnet has >1 voice.
+c
+ if (ljob .lt. 0) go to 2
+ if (index('TtTiTch+h-h l ',line(1)(1:2)) .gt. 0) then
+c
+c Traps titles, instruments, composers, headers, lower strings. Read 2 lines.
+c
+ write(40,'(a)')line(1)(1:len)
+ read(10+iv,'(a)')line(1)
+ len = lenstr(line(1),128)
+ go to 2
+ end if
+ if (i.eq.1 .or. (i.gt.5.and.line(1)(1:1).eq.'m')) then
+c
+c NOTE! The above test is truly bogus.
+c
+ if (line(1)(1:1) .eq. '%') then
+ write(40,'(a)')line(1)(1:len)
+ go to 13
+ end if
+ if (i .eq. 1) then
+c read(line(1),'(10x,2i5)')mtrnum,mtrden
+ else
+c
+c Check for slashes (new meter change syntax)
+c
+ idxs = index(line(1),'/')
+ idxb = index(line(1),' ')
+ newmtr = idxs.gt.0 .and. (idxb.eq.0 .or. idxs.lt.idxb)
+ if (.not.newmtr) then
+c
+c Old way, no slashes, uses 'o' for lonesome '1'
+c
+ icden = 3
+ if (line(1)(2:2) .eq. 'o') then
+ mtrnum = 1
+ else
+ mtrnum = ichar(line(1)(2:2))-48
+ if (mtrnum .eq. 1) then
+ icden = 4
+ mtrnum = 10+ichar(line(1)(3:3))-48
+ end if
+ end if
+ mtrden = ichar(line(1)(icden:icden))-48
+ else
+c
+c New way with slashes: idxs is index of 1st slash!
+c
+ read(line(1)(2:idxs-1),'(i'//char(48+idxs-2)//')')mtrnum
+ idxb = index(line(1)(idxs+1:),'/')
+ read(line(1)(idxs+1:idxs+idxb-1),
+ * '(i'//char(48+idxb-1)//')')mtrden
+ end if
+ end if
+ lenbeat = ifnodur(mtrden,'x')
+ lenmult = 1
+ if (mtrden .eq. 2) then
+ lenbeat = 16
+ lenmult = 2
+ end if
+ lenbar = lenmult*mtrnum*lenbeat
+ call fwbrsym(lenbar,nwbrs,wbrsym,lwbrs)
+ end if
+ ip1 = 0
+ line1 = line(1)
+ do 3 iw = 0 , nwbrs
+ if (iw .gt. 0) then
+ idx = ntindex(line1,wbrsym(iw)(1:lwbrs))
+ if (idx .gt. 0) then
+c
+c Check for blank or shifted rest, discount it if it's there
+c
+ if (line1(idx+lwbrs:idx+lwbrs).ne.' ') idx = 0
+ end if
+ else
+ idx = ntindex(line1,'rp')
+c
+c Check for raised rest
+c
+ if (idx.gt.0) then
+ if (line1(idx+2:idx+2).ne.' ') idx = 0
+ end if
+ end if
+ if (idx .gt. 0) then
+ if (ip1 .eq. 0) then
+ ip1 = idx
+ else
+ ip1 = min(ip1,idx)
+ end if
+ end if
+3 continue
+ if (i.lt.5 .or. line(1)(1:1).eq.'%' .or. line(1)(1:2).eq.sq//sq
+ * .or. ip1.eq.0) go to 2
+c
+c Switch to multibar rest search mode!!! Start forward in line(1)
+c
+ rpfirst = line1(ip1:ip1+1) .eq. 'rp'
+ iline = 1
+ nmbr = 1
+ if (rpfirst) then
+ lwbrsx = 2
+ else
+ lwbrsx = lwbrs
+ end if
+ ipe = ip1+lwbrsx-1
+4 if (ipe .eq. len) then
+c
+c Need a new line
+c
+ iline = iline+1
+6 read(10+iv,'(a)',end=998)line(iline)
+ len = lenstr(line(iline),128)
+ if (line(iline)(1:1).eq.'%' ) then
+ write(40,'(a)')'% Following comment has been moved forward'
+ write(40,'(a)')line(iline)(1:len)
+ go to 6
+ end if
+ ipe = 0
+ go to 4
+998 continue
+c
+c No more input left
+c
+ print*,'All done!'
+ alldone = .true.
+ ipe = 0
+ iline = iline-1
+ len = lenstr(line(iline),128)
+ go to 4
+ else
+ if (alldone) then
+ sym(1:1) = ' '
+ else
+c
+c ipe<len here, so it's ok to get a symbol
+c
+ call nextsym(line(iline),len,ipe,ipenew,sym,lsym)
+ end if
+c
+c Check for end of block or bar line symbol
+c
+ if (index('/|',sym(1:1)) .gt. 0) then
+ ipe = ipenew
+ go to 4
+ else
+ wbrest = .false.
+ if (alldone) go to 12
+ do 5 iw = 1 , nwbrs
+ wbrest = wbrest .or. sym(1:lsym).eq.wbrsym(iw)(1:lwbrs)
+5 continue
+ wbrest = wbrest .or. (sym(1:lsym).eq.'r'.and.lwbrs.eq.2)
+ * .or. (sym(1:lsym).eq.'rd'.and.lwbrs.eq.3)
+ * .or. (sym(1:lsym).eq.'rp')
+ * .or. (sym(1:lsym).eq.'r' .and. rpfirst)
+12 if (wbrest) then
+ ipe = ipenew
+ nmbr = nmbr+1
+ go to 4
+ else
+c
+c AHA! Failed prev. test, so last symbol was *not* mbr.
+c It must be saved, and its starting position is ipenew-lsym+1
+c
+ if (nmbr .gt. 1) then
+c
+c Write stuff up to start of mbr
+c
+ if (ip1 .gt. 1) write(40,'(a)')line(1)(1:ip1-1)
+c
+c Insert mbr symbol. Always end with a slash just in case next sym must be
+c at start of block. May think this causes undefined octaves, but
+c probably not since it's a single voice.
+c
+ ndig = int(alog10(nmbr+.01))+1
+ print*,'Inserting rm, iv,nmbr:',iv,nmbr
+ write(40,'(a2,i'//char(48+ndig)//',a2)')'rm',nmbr,' /'
+ if (alldone) go to 999
+ ipc = ipenew-lsym+1
+ line(1) = line(iline)(ipc:len)
+ else
+c
+c Write old stuff up to end of original lonesome wbr, save the rest.
+c 4 cases: (wbr /) , (wbr line-end) , (wbr followed by other non-/ symbols) ,
+c alldone.
+c In 1st 2 will have gotten some other lines, so write all up to one b4 last
+c non-comment line; then revert to normal mode on that. In 3rd case must
+c split line.
+c
+ if (alldone) then
+ write(40,'(a)')line(1)(1:len)
+ go to 999
+ else if (iline .gt. 1) then
+ do 9 il = 1 , iline-1
+ len = lenstr(line(il),128)
+ write(40,'(a)')line(il)(1:len)
+9 continue
+ line(1) = line(iline)
+ else
+c
+c Since iline = 1 the wbr is not the last sym, so must split
+c
+ write(40,'(a)')line(1)(1:ip1+lwbrsx-1)
+ line(1) = line(1)(ip1+lwbrsx+1:len)
+ end if
+ end if
+c
+c Exit multibar mode
+c
+ go to 7
+ end if
+ end if
+ end if
+2 continue
+ if (len .gt. 0) then
+ write(40,'(a)')line(1)(1:len)
+ else
+ write(40,'(a)')' '
+ end if
+1 continue
+999 continue
+ close(10+iv)
+ close(40)
+ return
+ end
+ function ifnodur(idur,dotq)
+ character*1 dotq
+ if (idur .eq. 6) then
+ ifnodur=1
+ else if (idur .eq. 3) then
+ ifnodur=2
+ else if (idur.eq.1 .or. idur.eq.16) then
+ ifnodur=4
+ else if (idur .eq. 8) then
+ ifnodur=8
+ else if (idur .eq. 4) then
+ ifnodur=16
+ else if (idur .eq. 2) then
+ ifnodur=32
+ else if (idur .eq. 0) then
+ ifnodur=64
+ else
+ print*,'You entered an invalid note-length value'
+ stop
+ end if
+ if (dotq .eq. 'd') ifnodur = ifnodur*3/2
+ return
+ end
+ subroutine fwbrsym(lenbar,nwbrs,wbrsym,lwbrs)
+ character*3 wbrsym(2)
+ nwbrs = 1
+ lwbrs = 2
+ if (lenbar .eq. 16) then
+ wbrsym(1) = 'r4'
+ else if (lenbar .eq. 32) then
+ wbrsym(1) = 'r2'
+ else if (lenbar .eq. 64) then
+ wbrsym(1) = 'r0'
+ else if (lenbar .eq. 8) then
+ wbrsym(1) = 'r8'
+ else if (lenbar .eq. 128) then
+ wbrsym(1) = 'r9'
+ else
+ nwbrs = 2
+ lwbrs = 3
+ if (lenbar .eq. 24) then
+ wbrsym(1) = 'rd4'
+ wbrsym(2) = 'r4d'
+ else if (lenbar .eq. 48) then
+ wbrsym(1) = 'rd2'
+ wbrsym(2) = 'r2d'
+ else if (lenbar .eq. 96) then
+ wbrsym(1) = 'rd0'
+ wbrsym(2) = 'r0d'
+ else
+ write(*,'(33H Any whole-bar rests of duration ,i3,
+ * 26H/64 will not be recognized)') lenbar
+ end if
+ end if
+ return
+ end
+ subroutine nextsym(line,len,ipeold,ipenew,sym,lsym)
+c
+c Know its the last symbol if on return ipenew = len!. So should never
+c be called when ipstart=len.
+c
+ character*128 line
+ character*80 sym
+ if (ipeold .ge. len) then
+ print*,'Called nextsym with ipstart>=len '
+ print*,'Send files to Dr. Don at dsimons@logicon.com'
+ stop
+ end if
+ do 1 ip = ipeold+1 , len
+ if (line(ip:ip) .ne. ' ') then
+c
+c symbol starts here (ip). We're committed to exit the loop.
+c
+ if (ip .lt. len) then
+ do 2 iip = ip+1 , len
+ if (line(iip:iip) .ne. ' ') go to 2
+c
+c iip is the space after the symbol
+c
+ ipenew = iip-1
+ lsym = ipenew-ip+1
+ sym = line(ip:ipenew)
+ return
+2 continue
+c
+c Have len>=2 and ends on len
+c
+ ipenew = len
+ lsym = ipenew-ip+1
+ sym = line(ip:ipenew)
+ return
+ else
+c
+c ip = len
+c
+ ipenew = len
+ lsym = 1
+ sym = line(ip:ip)
+ return
+ end if
+ end if
+1 continue
+ print*,'Error #3. Send files to Dr. Don at dsimons@logicon.com'
+ end
+ function ntindex(line,s2q)
+c
+c Returns index(line,s2q) if NOT in TeX string, 0 otherwise
+c
+ character*(*) s2q
+ character*128 line,tline
+ logical intex
+c
+c print*,'Starting ntindex. s2q:',s2q,', line(1:79) is below'
+c print*,line(1:79)
+c
+c
+c Use a temporary string to store the input and test, so can zap D"..."
+c
+ tline = line
+ ndxs2 = index(tline,s2q)
+c
+c Return point below for rechecks after zapping D" "
+c
+2 continue
+ ndxbs = index(tline,char(92))
+ if (ndxbs .gt. 0) then
+c
+c Special check in case \ is inside D"..."
+c
+ ndxDq1 = index(tline,'D"')
+c
+c If the following test fails, flow out of if block; else loop up to 2.
+c
+ if (ndxDq1 .gt. 0) then
+c
+c Find end of D"..."
+c
+ ndxDq2 = ndxDq1+1+index(tline(ndxDq1+2:128),'"')
+ if (ndxDq2 .eq. ndxDq1+1) then
+ print*,'Something is really wierd here'
+ stop
+ end if
+ tline = tline(1:ndxDq1-1)
+ do 3 ic = ndxDq1 , ndxDq2
+ tline = tline(1:ic-1)//' '
+3 continue
+ tline = tline(1:ndxDq2)//line(ndxDq2+1:128)
+ go to 2
+ end if
+ end if
+ if (ndxbs.eq.0 .or. ndxs2.lt.ndxbs) then
+ ntindex = ndxs2
+c print*,'No bs, or char is left of 1st bs, ntindex:',ntindex
+ else
+c
+c There are both bs and s2q, and bs is to the left of sq2. So check bs's to
+c right of first: End is '\ ', start is ' \'
+c
+ len = lenstr(tline,128)
+ intex = .true.
+c print*,'intex+>',intex
+ do 1 ic = ndxbs+1 , len
+ if (ic .eq. ndxs2) then
+ if (intex) then
+ ntindex = 0
+ ndxs2 = index(tline(ic+1:len),s2q)+ic
+c print*,'ndxs2 =>',ndxs2
+ else
+ ntindex = ndxs2
+ return
+ end if
+c print*,'Internal exit, intex, ntindex:',intex,ntindex
+ else if (intex .and. tline(ic+1:ic+2).eq.char(92)//' ') then
+ intex = .false.
+c print*,'intex+>',intex
+ else if (.not.intex .and. tline(ic+1:ic+2).eq.' '//char(92))
+ * then
+ intex = .true.
+c print*,'intex+>',intex
+ end if
+1 continue
+c print*,'Out end of loop 1'
+ end if
+c print*,'Exiting ntindex at the end???'
+ return
+ end
+ subroutine getchar(line,iccount,charq)
+c
+c Gets the next character out of line*128. If pointer iccount=128 on entry,
+c then reads in a new line. Resets iccount to position of the new character.
+c
+ character*1 charq
+ character*128 line
+ if (iccount .eq. 128) then
+ read(10,'(a)')line
+ iccount = 0
+ end if
+ iccount = iccount+1
+ charq = line(iccount:iccount)
+ return
+ end
+ function readin(line,iccount,iread)
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+c
+c Reads a piece of setup data from line, gets a new line from
+c file 10 (jobname.pmx) if needed, Transfers comment lines into all parts.
+c
+c iread controls copying of values into scratch files for parts, but only
+c if not replacing.
+c
+c iread input value written
+c -1 nvi nothing (only used when noinst<0 initially)
+c 0 various value read
+c 1 nv -1 , replace later with nvi(i)
+c 2 noinst 1
+c 3 np -2 , replace later with (nsyst-1)/12+1
+c 4 musicsize 20
+c 5 fracondent 0.05
+c
+ character*128 line
+ character*1 durq
+4 if (iccount .eq. 128) then
+ read(10,'(a)')line
+ if (replacing) replacing = .false.
+ call chkcom(line)
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 2 iccount = iccount , 127
+ if (line(iccount:iccount) .ne. ' ') go to 3
+2 continue
+c
+c If here, need to get a new line
+c
+ iccount = 128
+ go to 4
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(line,iccount,durq)
+c
+c Remember that getchar first increments iccount, *then* reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ stop 1
+ end if
+ icf = i2-i1+49
+ read(line(i1:i2),'(f'//char(icf)//'.0)')readin
+ if (.not.replacing) then
+ if (iread .eq. 0) then
+ call allparts(line(i1:i2),i2-i1+1)
+ else if (iread .eq. 1) then
+ call allparts('-999',4)
+ else if (iread .eq. 2) then
+ call allparts('1',1)
+ else if (iread .eq. 3) then
+ call allparts('-998',4)
+ else if (iread .eq. 4) then
+ call allparts('20',2)
+ else if (iread .eq. 5) then
+ call allparts('.05',3)
+ else if (iread .ne. -1) then
+ print*,'Error with iread in readin'
+ stop
+ end if
+ end if
+ return
+ end
+ subroutine chkcom(line)
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,clefpend,botv
+ character*128 line
+c
+c Assume that line has just been read. No need to change iccount since we only
+c process full lines.
+c
+1 if (line(1:1) .ne. '%') return
+c
+c If here, line has some sort of comment
+c
+ if (line(2:2) .eq. '%') then
+ if (.not. insetup) then
+c
+c Suck up a line, then flow out of "if" block to get another and loop
+c
+ read(10,'(a)')line
+
+c++VV
+c
+c UNLESS (a) it has a score-only "M" and changes # of inst's.
+c
+ if (index(line,'M') .gt. 0) then
+ idxL = index(line,'L')
+ idxM = index(line,'M')
+ idxn = index(line,'n')
+ idxb = index(line,' ')
+ if (idxL.lt.idxM .and. idxM.lt.idxn .and.
+ * (idxb.eq.0 .or. idxn.lt.idxb)) then
+ noinow = ichar(line(idxn+1:idxn+1))-48
+ clefpend = .true.
+c
+c Next noinow digits are original inst. #'s of new inst. set. Next noinow
+c char's after that are clefs
+c
+ nvnow = 0
+ do 24 j = 1 , noinow
+ iorig(j) = ichar(line(idxn+1+j:idxn+1+j))-48
+ iposc0 = idxn+1+noinow
+ do 25 k = 1 , nvi(iorig(j))
+ nvnow = nvnow+1
+c clefq(nvnow) = line(iposc0+nvnow:iposc0+nvnow)
+ instnum(nvnow) = j
+ botv(nvnow) = k.eq.1 .and. j.ne.1
+25 continue
+24 continue
+ end if
+ end if
+c
+c or if it's "h" or "l", need to suck up one more line
+c
+ if ((line(1:1).eq.'h'.and.index('+- ',line(2:2)).gt.0) .or.
+c
+c 4/29/00 check for T string also
+c
+ * line(1:1).eq.'T' .or.
+ * line(1:2).eq.'l ') read(10,'(a)')line
+ else
+c
+c In setup mode. Set flag, flow out and do use following line
+c
+ replacing = .true.
+ end if
+ else if (line(2:2) .eq. '!') then
+c
+c Copy to all parts
+c
+ call allparts(line(3:128),125)
+ else
+c
+c Get value of hex integer 1,2,...,9,a,b,c in 2nd position, zero otherwise
+cc Get value of extended hex integer 1,2,...,9,a,b,c,...,o in 2nd position, zero otherwise
+c
+ ivq = index('123456789abcdefghijklmno',line(2:2))
+c
+c Only treat as part-specific pmx line if number .le. noinst
+c
+ if (ivq.lt.1 .or. ivq.gt.noinst) then
+c
+c Simple comment.
+c
+ call allparts(line,128)
+ else
+c
+c Instrument comment, copy only to part
+c
+ lenline = lenstr(line,128)
+ if (lenline .gt. 2) then
+ write(10+ivq,'(a)')line(3:lenline)
+ else
+c
+c Transferring blank line
+c
+ write(10+ivq,'(a)')' '
+ end if
+ end if
+ end if
+ read(10,'(a)',end=2)line
+ call zapbl(line,128)
+ go to 1
+2 continue
+ return
+ end
+ subroutine dosetup(iv,line,mtrnum,mtrden)
+ parameter (noimax=24)
+c
+c Transfers setup data from scratch file to real one for one instrument
+c Data may be mixed with comments, but on entry 1st item is a number.
+c Write a comment when encountered, as it comes.
+c Write numbers one per line.
+c Three input data require special handling:
+c If not already replaced, i.e., if negative, then
+c iset(1) (nv) will be replaced with nvi(i)
+c iset(9) (npages) will be replaced with (nsyst-1)/12+1
+c iset(2), if negative, will be followed by extra numbers to be transf.
+c
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ character*128 line
+ iccount = 0
+ do 1 iset = 1 , 12
+ call partnum(iv,iccount,line,xdata)
+ if (iset .eq. 2) then
+ if (xdata .gt. 0) then
+ write(40,'(i5)')int(xdata+.1)
+ else
+ noi = -xdata+.1
+ write(40,'(i5)')noi
+ do 2 ioi = 1 , noi
+ call partnum(iv,iccount,line,xdata)
+ write(40,'(i5)')int(xdata+.1)
+2 continue
+ end if
+c else if (iset.ne.8 .and. xdata.lt.0) then
+ else if (iset.ne.8 .and. iset.ne.5 .and. xdata.lt.0) then
+c
+c Must be either nv or npages
+c
+ if (int(-xdata+.1) .eq. 999) then
+c
+c It's nv
+c
+ write(40,'(i5)')nvi(iv)
+ else
+c
+c npages must be computed
+c
+ write(40,'(i5)')(nsyst-1)/12+1
+ end if
+ else if (iset.ne.7 .and. iset.ne.12) then
+c
+c write integer
+c
+ write(40,'(i5)')nint(xdata)
+ else
+c
+c write floating number
+c
+ write(40,'(f5.2)')xdata
+ end if
+ if (iset .eq. 3) then
+ mtrnum = nint(xdata)
+ else if (iset .eq. 4) then
+ mtrden = nint(xdata)
+ end if
+1 continue
+ return
+ end
+ subroutine partnum(iv,iccount,line,xdata)
+c
+c Simplified number parsing. Only looks for comment lines and numbers.
+c
+ character*128 line
+ character*1 durq
+2 if (iccount .eq. 128) then
+ read(10+iv,'(a)')line
+ if (line(1:1) .eq. '%') then
+ len = lenstr(line,128)
+ write(40,'(a)')line(1:len)
+ go to 2
+ end if
+ iccount = 0
+ end if
+ iccount = iccount+1
+c
+c Find next non-blank or end of line
+c
+ do 4 iccount = iccount , 127
+ if (line(iccount:iccount) .ne. ' ') go to 3
+4 continue
+c
+c If here, iccount=128 and need to get a new line
+c
+ go to 2
+3 continue
+c
+c iccount now points to start of number to read
+c
+ i1 = iccount
+5 call getchar(line,iccount,durq)
+c
+c Remember that getchar first increments iccount, *then* reads a character.
+c
+ if (index('0123456789.-',durq) .gt. 0) go to 5
+ i2 = iccount-1
+ if (i2 .lt. i1) then
+ print*,'Found "'//durq//'" instead of number'
+ stop 1
+ end if
+ icf = i2-i1+49
+ read(line(i1:i2),'(f'//char(icf)//'.0)')xdata
+ return
+ end
+ block data
+ parameter (noimax=24)
+ common /all/ noinow,iorig(noimax),noinst,insetup,replacing,
+ * instnum(noimax),botv(noimax),nvi(noimax),nsyst,nvnow
+ logical insetup,replacing,botv
+ data nvi /noimax*1/, noinst,noinow /2*noimax/
+ data botv /noimax*.false./
+ end
+ subroutine zapbl(string,len)
+ character*(*) string
+ do 1 i = 1 , len
+ if (string(i:i) .eq. ' ')go to 1
+ if (i .eq. 1) return
+ go to 2
+1 continue
+c
+c If line is all blank, leave it alone
+c
+ return
+2 continue
+ string = string(i:len)
+ return
+ end
+ subroutine OddQuotesBefore(lineq,indx,yesodd)
+c
+c This counts number of double quotes in lineq up to position indx-1, then
+c sets yesodd according to whether number is odd or even
+c
+ logical yesodd
+ character*(*) lineq
+ numdqs = 0
+ do 1 i = 1 , indx-1
+ if (lineq(i:i) .eq. '"') numdqs = numdqs+1
+1 continue
+ yesodd = mod(numdqs,2) .eq. 1
+ return
+ end
+
+
+
+
+
diff --git a/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.mid b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.mid
new file mode 100644
index 00000000000..ccd7219e2be
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.mid
Binary files differ
diff --git a/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pml b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pml
new file mode 100644
index 00000000000..0c514716522
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pml
@@ -0,0 +1,24 @@
+This is PMX, Version 2618 , 19 Mar 12
+Opening barsant.pmx
+ Starting first PMX pass
+
+ Bar 1 Bar 2 Bar 3 Bar 4 Bar 5 Bar 6 Bar 7 Bar 8 Bar 9 Bar 10 Bar 11
+ Bar 12 Bar 13 Bar 14 Bar 15 Bar 16 Bar 17
+ Done with first pass
+
+ nlbuf: 50
+Starting second PMX pass
+
+WARNING
+ In a title block, you have specified instrument and/or
+ composer but no title for the piece.
+
+ Bar 1 Bar 2 Bar 3 Bar 4 Bar 5 Bar 6 Bar 7 Bar 8 Bar 9 Bar 10 Bar 11
+ Bar 12 Bar 13 Bar 14 Bar 15 Bar 16 Bar 17
+Writing ./barsant.tex
+ Done with second PMX pass. Now run TeX
+
+Writing barsant.mid
+MIDI instrument 0 is 74
+MIDI instrument 1 is 6
+ Bytes used: 2126 807 21
diff --git a/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pmx b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pmx
new file mode 100644
index 00000000000..f10fd67b064
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.pmx
@@ -0,0 +1,68 @@
+%----------------%
+%
+% barsant.pmx Revised 29 June 2002
+%
+%----------------%
+%
+% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig,
+ 2 2 4 4 0 6 0 0
+%
+% npages,nsyst,musicsize,fracindent
+ 1 7 20 0.07
+Basso
+Recorder
+bt
+./
+Abep
+Iiharet60
+Tc
+Francesco Barsanti (1690-1772)
+%%
+AeI1.1
+%2S9
+% Bar 1-4
+h
+Adagio
+c43 r8 f 65 f 42 e 6 r c | [ b 6 c ] d 7 b 65 c4 r8 c 65 t |
+ \global\figdrop5\Figu{-1}{\fsmsh}\Figu{0}{4}\Figu{4}{2}\
+ c t bf4 65 x1842 a8 65 t a t #42 g 6 r g 65 t |
+ g t #42 f4 \global\figdrop8\ 65 x1842 \Figu06\ e8 d 54 dd1+ 3 c3 b8 6 g 7 /
+g85 Gf ed1 d3 [ c3 a8+ gd1x5n s+1 f e d c s+1 ] Gc b8 s c s r e |
+ [ d35 s c d s e op ] e s d e s f op [ f s e f s g ] g f e f
+ Gf ed1 d3 c8 r ad1+ g3 |
+ [ fs15 dd+ ] [ c3 \nbbbbl2\ bf1x3 s+2 a g ] s+2 Gfn [ e1 cd+ ] [ b3
+ \nbbbbl2\ a1x3 g f ] Ge ds8 ot e r ed1 dn3 |
+ [ cs15 ad+ ] [ g3 \nbbbbl2\ f1x3 s+2 e d s+2 ]
+ Gcn b1 c8 g1+ g3 s f e f s f8 op r1 f ed d3 /
+% Bar 5-6
+[ c84 f- 7 ] g 4 g- 3 c ed1 f3 gd1 f3 ed1 d3 | cs4 5 r8 c 65 d4 r8 fd1 e3 /
+[ e65 g c e s e1 s ] d6 c b a g f e d dd8 ot c1 c4 r8 ed1 f3 |
+ g85 gx3 s+1 fs g s+1 bf8 [ a3 s g fn e s ] [ f1 s d cs s d op ]
+ d s e f s gs op /
+% Bar 7-8
+ds43 5 r8 d 65 e # ed1 fs3 gs8 e 7 | a4 r8 a 6 g4 7 r8 g 6 /
+a85 ax3n+0+.7 s+2 gs a s+2 c8 bd1 ot a3 g1 Gfs ed8 r1 b+ bd ot a6 s b s |
+ c86x3 s+2 b a s+2 ax3 s+2 g f s+2 fx3 s+1 e f s+1 c+
+ bx3 s+2 a g s+2 gx3 s+2 f e s+2 ex3nf+0+.7 s+2 ds e s+2 b+ /
+% Bar 9-10
+f43 7 r8 d 65 e4 gs- 65 | a r r gs+ 65 /
+a85x3 s+2 g f s+2 fx3 s+2 e d s+2 dx3nf+0+.7 s+2 cs d s+2 a+
+ gs1 b d8 r1 d cd b3 s+0-.3 |
+ [ c1 s a s bf s gs s ] a s fs s gn s e s
+ [ fn s ds s e s cs s ] dn s f s e d s /
+% Bar 11-12
+[ a83 d- 7 ] e 4 e- #3 a ad1+ b3 c8 gs 65 | a4 # cs- 65 d8 dd1 e3 f8 d /
+c15 s+2 gs+ a s+1 d- Gc bd8 ot a1 a4 r8 ed1+ d3 |
+ cs1 e g bf [ a3 cs e1 s ] e6 s d s cn bf a g f e s
+ Ge fd1 e3 d8 ot r8 dd1 cn3 /
+% Bar 13-14
+g43 b- 65 [-1+1 c8 cd1 d3 ] ef8 b 6 | c4 -3 bf n42 af 6 an #6 /
+b14 d f a [ g3 b d1 t ] [+1 d6 t c b a g f e d ]
+ Gd ed1 ot d3 c8 r1 d dd ot c6 s d s |
+ ef1 c cd ot b6 s c s en1 c cd ot b6 s c s
+ f1 c cd ot b6 s c s fs1 c cd ot b6 s c s /
+% Bar 15-end
+b82 6 gd1 a3 b8 g 7 c4 -3 r | r2 r8 f e s 6 d s 6 | [-1 c f 7 g 4 g- 3 ] c2 /
+g45 r1 af gd f3 ef1 bn+ s c s an s [ bf s g s af s fs s ] |
+ g s e s f s d s [ ef s c s df s bn s ] c8 s a op g op f+ s |
+ [ e s a- dd ot c1 ] c2 /
diff --git a/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.tex b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.tex
new file mode 100644
index 00000000000..fe003c3404e
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant.tex
@@ -0,0 +1,307 @@
+%%%%%%%%%%%%%%%%%
+%
+% barsant.tex
+%
+%%%%%%%%%%%%%%%%
+\input musixtex
+\input pmx
+\def\fixdrop{\advance\sysno by 1\ifcase\sysno%
+\figdrop= 5 \figdtwo= 4 \or%
+\figdrop= 8 \figdtwo= 4 \or%
+\figdrop= 5 \figdtwo= 4 \or%
+\figdrop= 6 \figdtwo= 4 \or%
+\figdrop= 7 \figdtwo= 4 \or%
+\figdrop= 4 \figdtwo= 4 \or%
+\figdrop= 6 \figdtwo= 4 \fi}%
+\setmaxslurs{24}\setmaxinstruments{24}%
+\input musixps
+\normalmusicsize%
+\nopagenumbers
+\tracingstats=2\relax
+\hsize=524pt
+\vsize740pt
+\def\nbinstruments{2}
+\setstaffs11
+\setclef16
+\setname1{Basso}
+\setstaffs21
+\setclef20
+\setname2{Recorder}
+\generalsignature{ 0}%
+\generalmeter\meterC%
+\parindent 37pt
+\elemskip1pt\afterruleskip1.000pt\beforeruleskip0pt\relax
+\stafftopmarg0pt\staffbotmarg0pt\interstaff{7.9}\relax
+\readmod{barsant}
+\startmuflex\startpiece\addspace\afterruleskip%
+\bigaccid%
+\global\parskip 0pt plus 12\Interligne minus 99\Interligne%
+\def\upstrut{\znotes&\zcharnote{\upamt}{~}\en}%
+\Nosluradjust\Notieadjust\nohalfties
+\global\parskip 0pt plus 12\Interligne minus 99\Interligne%
+\def\upstrut{\znotes&\zcharnote{\upamt}{~}\en}%
+\znotes&\zcharnote{16}{\titles{.2}{}{0}%
+{}{.2}{Francesco Barsanti (1690-1772)}{.1}}\en%
+% Bar count 1
+\fixdrop%
+\starteq%
+\pnotes{2.00}\qu{'C}&\zcharnote{16}{\bigfont\kern-30pt Adagio}%
+\ibl2{'e}{-2}\qb2g\en%
+\pnotes{1.75}&\shlft8{\zcu{'f}}\nbbl2\qbp2e\en%
+\pnotes{1.05}\sk\ds&\tbbbl2\tbl2\qb2{'d}\ibbbl2e{-2}\rbbbl2\rbbl2\qb2c%
+\en%
+\pnotes{1.50}&\qb2{''a}\en%
+\pnotes{0.50}\Figu0{6}\Figu4{5}\cl{'F}&\en%
+\pnotes{0.83}&\isluru0{''a}\nbbbbl2\qb2{`g}\qb2f\qb2e\qb2d\tslur0d%
+\tbl2\qb2c\en%
+\pnotes{2.00}\ast{1.05}\Figu0{4}\Figu4{2}\ibl1{'F}{-1}\qb1F\Figu0{6}%
+\tbl1\qb1E\ds\cu C&\ast{1.05}\ibl2{'b}1\isluru0b\shlft8{\zcu c}\qb2b%
+\tslur0c\tbl2\qb2c\ds\cl e\en%
+% Bar count 2
+\xbar
+\pnotes{1.05}\Figu0{6}\ibu1{'B}1\qb1B\sk\sk\sk\tbu1\qb1C\sk\sk\sk\Figu0{%
+7}\ibu1C{-1}\qb1D\sk\sk\sk\Figu0{6}\Figu4{5}\tbu1\qb1B&\ibbbl2{'d}0%
+\isluru0d\qb2d\qb2c\tslur0d\qb2d\uppz e\tbl2\qb2e\ibbbl2e0\isluru0e\qb2e%
+\qb2d\tslur0e\qb2e\uppz f\tbl2\qb2f\ibbbl2f0\isluru0f\qb2f\qb2e\tslur0f%
+\qb2f\tbl2\qb2g\ibbbl2f0\qb2g\qb2f\qb2e\tbl2\qb2f\en%
+\pnotes{1.75}\ast{.83}\qu{'C}&\ast{.83}\ibbl2{'e}{-2}\shlft8{\zcu f}%
+\qbp2e\en%
+\pnotes{1.05}&\tbbbl2\tbbl2\qb2{'d}\en%
+\pnotes{2.00}\sk\ds&\tbl2\qb2{'c}\ds\en%
+\pnotes{1.75}\Figu0{6}\Figu4{5}\tieforisd\islurd0{'C}\cu C&%
+\ibbl2{''a}{-2}\qbp2a\en%
+\pnotes{1.05}&\tbbbl2\tbl2\qb2{'g}\en%
+% Bar count 3
+\fixdrop%
+\alaligne
+\pnotes{1.41}\global\figdrop5\Figu{-1}{\fsmsh}\Figu{0}{4}\Figu{4}{2}%
+\tieforts\tslur0{'C}\cu C&\ibbl2{'g}9\bigsh f\qb2f\en%
+\pnotes{1.15}&\tbl2\qbp2{''d}\en%
+\pnotes{0.58}\Figu0{6}\Figu4{5}\bigfl{'B}\qu B&\en%
+\pnotes{1.00}&\ibbbl2{''b}{-3}\qb2c\en%
+\pnotes{0.82}&\ast{.36}\nbbbbl2\isluru0{''d}\fl b\xnum{0.82}c3\qb2b\qb2a%
+\tslur0b\tbl2\qb2{`g}\en%
+\pnotes{1.41}\Figu0{4}\Figu4{2}&\ast{1.24}\ibbl2{'f}9\shlft8{\bigna f\zcu%
+ f}\qb2e\en%
+\pnotes{1.15}&\tbl2\qbp2{''c}\en%
+\pnotes{0.58}\Figu0{6}\Figu4{5}\tieforisd\islurd0{'A}\cu A&\en%
+\pnotes{1.00}&\ibbbl2{''a}{-3}\qb2b\en%
+\pnotes{0.82}&\nbbbbl2\xnum{0.82}{''b}3\qb2a\qb2{`g}\tbl2\qb2f\en%
+\pnotes{2.00}\ast{1.49}\Figu{-1}{\fsmsh}\Figu0{4}\Figu4{2}\ibu1{'A}{-1}%
+\tieforts\tslur0A\qb1A\Figu0{6}\tbu1\qb1{`G}\ds&\ast{1.49}\ibl2{'d}1%
+\shlft{13}{\zcu e}\shake g\sh d\qb2d\tbl2\qb2e\ds\en%
+\pnotes{1.73}\Figu0{6}\Figu4{5}\tieforisd\islurd0G\cu G&\ibbl2{'e}{-1}%
+\qbp2e\en%
+\pnotes{1.00}&\bigna{'d}\tbbbl2\tbl2\qb2d\en%
+% Bar count 4
+\xbar
+\pnotes{1.41}\Figu{-1}{\fsmsh}\Figu0{4}\Figu4{2}\tieforts\tslur0G\cu G&%
+\ibbl2{'d}9\bigsh c\qb2c\en%
+\pnotes{1.15}&\tbl2\qbp2{''a}\en%
+\pnotes{0.58}\Figu0{6}\Figu4{5}\qu F&\en%
+\pnotes{1.00}&\ibbbl2{'f}{-3}\qb2g\en%
+\pnotes{0.82}&\nbbbbl2\isluru0{''a}\xnum{0.82}{`g}3\qb2f\qb2e\tslur0f%
+\tbl2\qb2d\en%
+\pnotes{1.41}\Figu0{4}\Figu4{2}&\ast{1.24}\ibbl2{'c}4\shlft8{\bigna c\zcu%
+ c}\rbbl2\qb2b\en%
+\pnotes{1.00}\sk\global\figdrop8\Figu06\cu E&\qb2{'c}\en%
+\pnotes{1.41}&\tbbl2\tbl2\qb2{'g}\en%
+\pnotes{1.00}\Figu0{5}\Figu4{4}\ibu1{'A}3\qb1{`D}&\ibbbl2{'f}0\isluru0g%
+\qb2g\qb2f\qb2e\tslur0f\tbbbl2\tbbl2\qb2f\en%
+\pnotes{1.73}\Figu0{3}\nbbu1\qbp1{'D}&\uppz{'f}\tbl2\qb2f\en%
+\pnotes{1.00}\tbbbu1\tbu1\qb1{'C}&\en%
+\pnotes{1.41}\Figu0{6}\ibu1{'B}{-2}\qb1B&\qs\ibbl2{'f}{-2}\qb2f\en%
+\pnotes{1.73}\Figu0{7}\tbu1\qb1G&\qbp2{'e}\en%
+\pnotes{1.00}&\tbbbl2\tbl2\qb2{'d}\en%
+% Bar count 5
+\fixdrop%
+\alaligne
+\pnotes{0.81}\ibl1{''B}{-2}\qb1C&\ibbbbl2{'g}6\qb2e\qb2g\qb2{'c}%
+\isluru0e\tbbbbl2\tbbbl2\qb2e\en%
+\pnotes{1.48}&\tslur0{''e}\tbl2\qb2e\en%
+\pnotes{0.81}\Figu0{7}\tbl1\qb1{'F}&\ibbbbl2{''b}{-4}\qb2d\qb2c\qb2b%
+\qb2a\qb2{`g}\qb2f\qb2e\tbl2\qb2d\en%
+\pnotes{2.00}\Figu0{4}\ibu1{'E}{-9}\qb1G&\ibl2{'d}{-1}\shake g\qbp2d\en%
+\pnotes{1.00}\Figu0{3}\tbu1\qb1G&\en%
+\pnotes{1.48}&\tbbl2\tbl2\qb2{'c}\en%
+\pnotes{2.00}\ibl1{'D}2\qb1C&\ql{'c}\en%
+\pnotes{1.77}\nbbl1\qbp1{'E}&\en%
+\pnotes{1.10}\tbbbl1\tbl1\qb1{'F}&\en%
+\pnotes{1.77}\ibbl1{'F}{-2}\qbp1G&\ds\en%
+\pnotes{1.10}\tbbbl1\qb1{'F}&\en%
+\pnotes{1.77}\qbp1{'E}&\ibbl2{'e}2\qbp2e\en%
+\pnotes{1.10}\tbbbl1\tbl1\qb1{'D}&\tbbbl2\tbl2\qb2{'f}\en%
+% Bar count 6
+\hardspace{ .4pt}%
+\xbar
+\pnotes{2.00}\Figu0{5}\bigsh{'C}\qu C&\cl{'g}\en%
+\pnotes{1.24}&\xnum{1.37}{''a}3\ibbl2{`g}0\isluru0{'a}\qb2{`g}\ast{.15}%
+\sh f\qb2f\tslur0{'a}\tbl2\qb2{`g}\en%
+\pnotes{2.00}\ast{.15}\ds&\ast{.15}\fl{''b}\cl b\en%
+\pnotes{1.10}\Figu0{6}\Figu4{5}\cu{'C}&\ibbbl2{'g}{-3}\isluru0{'a}\qb2a%
+\qb2{`g}\ast{.29}\na f\qb2f\tslur0e\tbl2\qb2e\en%
+\pnotes{1.48}\qu{'D}\sk\sk\sk\ds\sk\ibbl1F{-1}\qbp1F&\ibbl2{'d}0%
+\isluru0f\qb2f\qb2d\tslur0c\bigsh c\qb2c\uppz e\tbl2\qb2d\ibbl2e2%
+\isluru0d\qb2d\qb2e\tslur0f\qb2f\en%
+\pnotes{0.74}&\uppz{'g}\bigsh g\tbl2\qb2g\en%
+\pnotes{1.10}\tbbbl1\tbl1\qb1{'E}&\en%
+% Bar count 7
+\fixdrop%
+\alaligne
+\pnotes{2.00}\ast{.54}\Figu0{5}\sh{'D}\qu D&\ast{.54}\cl{''a}\en%
+\pnotes{1.70}&\xnum{3.28}{''b}3\ibbl2a0\isluru0c\qb2a\ast{1.12}\sh{`g}%
+\qb2g\tslur0{'c}\tbl2\qb2a\en%
+\pnotes{2.00}\ds&\ibl2{''b}{-3}\qb2c\en%
+\pnotes{1.92}\Figu0{6}\Figu4{5}\cu{'D}&\shake{''d}\nbbl2\qbp2b\en%
+\pnotes{1.63}&\ast{.65}\tbbbl2\tbl2\qb2{''a}\en%
+\pnotes{1.80}\Figu{-1}{\sharpfig}\ibl1{'E}0\qb1E&\ibbl2{'g}{-6}%
+\rbbl2\qb2g\en%
+\pnotes{1.00}&\ast{2.47}\shlft8{\bigsh{'f}\zcu f}\tbl2\qbp2e\en%
+\pnotes{1.92}\nbbl1\qbp1{'E}&\en%
+\pnotes{1.63}\ast{1.80}\sh{'F}\tbbbl1\tbl1\qb1F&\en%
+\pnotes{1.80}\ast{1.19}\ibl1{'G}{-3}\sh G\qb1G&\ast{1.19}\qs\ibbl2{''a}0%
+\qb2b\en%
+\pnotes{1.92}\Figu0{7}\tbl1\qb1{'E}&\shake{''d}\qbp2b\en%
+\pnotes{1.47}&\ast{.65}\isluru0{''a}\nbbbbl2\qb2a\tslur0b\tbl2\qb2b\en%
+% Bar count 8
+\xbar
+\pnotes{1.70}\ql{''A}\sk\sk\sk\sk\sk\ds&\xnum{1.70}{''d}3\ibbl2b{-3}%
+\isluru0e\qb2c\qb2b\tslur0c\tbl2\qb2a\xnum{1.70}b3\ibbl2{`g}{-3}%
+\isluru0{'c}\qb2a\qb2{`g}\tslur0{'a}\tbl2\qb2{`f}\xnum{1.70}g3\ibbl2f0%
+\isluru0g\qb2f\qb2e\tslur0g\tbl2\qb2f\en%
+\pnotes{2.00}\Figu0{6}\cl{''A}&\cl{''c}\en%
+\pnotes{1.70}\Figu0{7}\ql{'G}\sk\sk\sk\sk\sk\ds&%
+\xnum{1.70}{''c}3\ibbl2a{-3}\isluru0d\qb2b\qb2a\tslur0b\tbl2\qb2{`g}%
+\xnum{1.70}{'a}3\ibbl2{`f}{-3}\isluru0{'b}\qb2{`g}\qb2f\tslur0g%
+\tbl2\qb2e\xnum{3.28}f3\ibbl2e0\isluru0g\qb2e\ast{1.12}\sh d\qb2d\tslur0g%
+\tbl2\qb2e\en%
+\pnotes{2.00}\Figu0{6}\cl{'G}&\cl{''b}\en%
+% Bar count 9
+\xbar
+\pnotes{1.70}\Figu0{7}\ql{'F}\sk\sk\sk\sk\sk\ds&%
+\xnum{1.70}{''b}3\ibbl2{`g}{-3}\isluru0{'c}\qb2a\qb2{`g}\tslur0{'a}%
+\tbl2\qb2{`f}\xnum{1.70}g3\ibbl2e{-3}\isluru0{'a}\qb2{`f}\qb2e\tslur0f%
+\tbl2\qb2d\xnum{3.28}e3\ibbl2d0\isluru0f\qb2d\ast{1.12}\sh c\qb2c\tslur0f%
+\tbl2\qb2d\en%
+\pnotes{2.00}\Figu0{6}\Figu4{5}\cu{'D}&\cl{''a}\en%
+\pnotes{1.80}\ast{.82}\ql{'E}&\ast{.82}\ibbl2{''a}6\sh{`g}\qb2g%
+\tbbl2\qb2{'b}\en%
+\pnotes{2.00}&\tbl2\qb2{''d}\en%
+\pnotes{1.80}\Figu0{6}\Figu4{5}\bigsh G\qu G&\qs\ibbl2{''c}0\qb2d\en%
+\pnotes{1.92}&\qbp2{''c}\en%
+\pnotes{1.63}&\ast{.65}\isu0{''b}{-.3}\tbbbl2\tbl2\qb2b\en%
+% Bar count 10
+\fixdrop%
+\def\raisebarno{7.5\internote}%
+\alaligne
+\def\raisebarno{3.5\internote}%
+\pnotes{1.77}\qu{'A}\sk\sk\sk\ast{1.44}\ast{1.44}\qp\sk\sk\sk\ast{1.44}%
+\ast{1.44}\ast{1.44}\qp\sk\sk\sk\ast{1.44}\ast{1.44}\ast{1.44}\Figu0{6}%
+\Figu4{5}\bigsh G\ql G&\ibbl2{''b}{-1}\tslur0c\qb2c\isluru0a\qb2a%
+\ast{1.44}\tslur0b\fl b\qb2b\ast{1.44}\isluru0{`g}\sh g\tbl2\qb2g%
+\ibbl2g{-1}\tslur0{'a}\qb2a\ast{1.44}\isluru0{`f}\sh f\qb2f\ast{1.44}%
+\tslur0g\na g\qb2g\isluru0e\tbl2\qb2e\ast{1.44}\ibbl2e{-1}\tslur0f\na f%
+\qb2f\ast{1.44}\isluru0d\sh d\qb2d\tslur0e\qb2e\ast{1.44}\isluru0c\sh c%
+\tbl2\qb2c\ast{1.44}\ibbl2e0\tslur0d\na d\qb2d\isluru0f\qb2f\qb2e\tslur0d%
+\tbl2\qb2d\en%
+% Bar count 11
+\xbar
+\pnotes{1.77}\ibl1{'G}{-6}\qb1{'A}\sk\ast{1.44}\Figu0{7}\tbl1\qb1{`D}&%
+\ibbl2{'e}1\isluru0e\qb2c\ast{1.44}\sh g\qb2g\tslur0{'b}\qb2a%
+\tbl2\qb2{`d}\en%
+\pnotes{2.00}\ast{2.36}\Figu0{4}\ibu1{'C}{-9}\qb1E&\ast{2.36}\ibu2{'b}{-2}%
+\shlft8{\zcu c}\shake{'c}\qbp2{`b}\en%
+\pnotes{1.00}\Figu{-1}{\fsmsh}\Figu0{3}\tbu1\qb1E&\en%
+\pnotes{1.77}&\tbbu2\tbu2\qb2{'a}\en%
+\pnotes{2.00}\ibl1{'C}9\qb1A&\qu{'a}\en%
+\pnotes{1.90}\nbbl1\qbp1{''A}&\en%
+\pnotes{1.56}\ast{1.01}\tbbbl1\tbl1\qb1{''B}&\en%
+\pnotes{2.00}\ibl1{''B}{-7}\qb1C&\ds\en%
+\pnotes{1.90}\ast{1.20}\Figu0{6}\Figu4{5}\sh{'G}\tbl1\qb1G&\ast{1.20}%
+\ibbl2{'e}{-3}\qbp2e\en%
+\pnotes{1.56}&\ast{1.01}\tbbbl2\tbl2\qb2{'d}\en%
+% Bar count 12
+\xbar
+\pnotes{1.77}\ast{.75}\Figu{-1}{\sharpfig}\ql{''A}&\ast{.75}\ibbl2{'d}6%
+\sh c\qb2c\qb2e\qb2g\ast{1.44}\fl{'b}\tbl2\qb2b\en%
+\pnotes{1.56}\Figu0{6}\Figu4{5}\bigsh{'C}\qu C&\ibbbl2{''b}6\qb2a%
+\ast{1.64}\sh c\tbbbl2\qb2c\en%
+\pnotes{1.77}&\isluru0{''e}\tbl2\qb2e\en%
+\pnotes{1.38}&\ibbbbl2{''c}{-4}\tslur0e\qb2e\isluru0d\qb2d\ast{1.82}\na c%
+\qb2c\ast{1.82}\fl b\qb2b\qb2a\qb2{`g}\qb2f\tslur0e\tbl2\qb2e\en%
+\pnotes{1.90}\ast{2.74}\ibl1{'D}0\qb1D&\ast{2.74}\ibbl2{'f}{-3}\shlft8{%
+\zcu e}\qbp2f\en%
+\pnotes{1.56}&\ast{1.01}\tbbbl2\tbbl2\qb2{'e}\en%
+\pnotes{1.90}\nbbl1\qbp1{'D}&\shake{'g}\tbl2\qb2d\en%
+\pnotes{1.56}\ast{1.01}\tbbbl1\tbl1\qb1{'E}&\en%
+\pnotes{2.00}\ibl1{'F}{-5}\qb1F&\ds\en%
+\pnotes{1.90}\tbl1\qb1{'D}&\ibbl2{'d}{-3}\qbp2d\en%
+\pnotes{1.56}&\ast{2.32}\na{'c}\tbbbl2\tbl2\qb2c\en%
+% Bar count 13
+\fixdrop%
+\alaligne
+\endeq%
+\pnotes{1.48}\ql{'G}&\ibbl2{'d}4\qb2b\qb2d\qb2f\tbl2\qb2{'a}\en%
+\pnotes{1.14}\Figu0{6}\Figu4{5}\qu{'B}&\ibbbl2{''a}5\qb2{`g}%
+\tbbbl2\qb2{'b}\en%
+\pnotes{1.48}&\tieforisu\isluru0{''d}\tbl2\qb2d\en%
+\pnotes{0.88}&\ibbbbl2{''c}{-4}\tieforts\tslur0d\qb2d\qb2c\qb2b\qb2a%
+\qb2{`g}\qb2f\qb2e\tbl2\qb2d\en%
+\pnotes{1.73}\ast{1.13}\ibu1{'C}1\qb1C&\ast{1.13}\ibbl2{'d}{-2}\shlft8{%
+\zcu d}\shake g\qbp2e\en%
+\pnotes{1.14}&\tbbbl2\tbbl2\qb2{'d}\en%
+\pnotes{1.73}\nbbu1\qbp1{'C}&\tbl2\qb2{'c}\en%
+\pnotes{1.14}\tbbbu1\tbu1\qb1{'D}&\en%
+\pnotes{1.48}\ast{.42}\ibu1{'D}{-3}\fl E\qb1E&\ast{.42}\qs\ibbl2{'c}0%
+\qb2d\en%
+\pnotes{1.73}\Figu0{6}\tbu1\qb1{'B}&\shake{'g}\qbp2d\en%
+\pnotes{0.88}&\isluru0{'c}\nbbbbl2\qb2c\tslur0d\tbl2\qb2d\en%
+% Bar count 14
+\xbar
+\pnotes{1.48}\Figu{-1}{\fsmfl}\Figu0{3}\qu{'C}&\ibbl2{'b}0\bigfl e\qb2e%
+\qb2c\en%
+\pnotes{1.73}&\shake{'g}\qbp2c\en%
+\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en%
+\pnotes{1.48}\ast{.68}\Figu{-1}{\fsmna}\Figu0{4}\Figu4{2}\bigfl{'B}\qu B%
+&\ast{.68}\ibbl2{'b}0\na e\qb2e\qb2c\en%
+\pnotes{1.73}&\shake{'g}\qbp2c\en%
+\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en%
+\pnotes{1.48}\Figu0{6}\bigfl{'A}\qu A&\ibbl2{'b}0\qb2f\qb2c\en%
+\pnotes{1.73}&\shake{'g}\qbp2c\en%
+\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en%
+\pnotes{1.48}\ast{.68}\Figu{-1}{\fsmsh}\Figu0{6}\bigna{'A}\qu A&%
+\ast{.68}\ibbl2{'b}0\sh f\qb2f\qb2c\en%
+\pnotes{1.73}&\shake{'g}\qbp2c\en%
+\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en%
+% Bar count 15
+\fixdrop%
+\alaligne
+\pnotes{2.00}\Figu0{6}\ibu1{'B}{-1}\qb1B&\ql{'g}\en%
+\pnotes{1.73}\nbbu1\qbp1G&\en%
+\pnotes{1.00}\tbbbu1\tbu1\qb1{'A}&\en%
+\pnotes{1.41}\ibu1{'A}{-2}\qb1B&\qs\ast{.11}\ibbl2{''a}{-2}\fl a\qb2a\en%
+\pnotes{1.73}\Figu0{7}\tbu1\qb1G&\qbp2{'g}\en%
+\pnotes{1.00}&\tbbbl2\tbl2\qb2{'f}\en%
+\pnotes{1.41}\ast{.53}\Figu{-1}{\fsmfl}\Figu0{3}\qu{'C}\sk\sk\sk%
+\ast{.11}\ast{.11}\ast{.11}\qp&\ast{.53}\ibbl2{'g}2\fl e\qb2e\ast{.11}%
+\isluru0{'b}\na b\qb2b\tslur0c\qb2c\ast{.11}\isluru0a\na a\tbl2\qb2a%
+\ast{.11}\ibbl2a{-1}\tslur0b\fl b\qb2b\isluru0{`g}\qb2g\ast{.11}%
+\tslur0{'a}\fl a\qb2a\ast{.11}\isluru0{`f}\sh f\tbl2\qb2f\en%
+% Bar count 16
+\xbar
+\pnotes{1.41}\hpause&\ibbl2{'f}{-1}\tslur0g\qb2g\isluru0e\qb2e\tslur0f%
+\qb2f\isluru0d\tbl2\qb2d\ast{.11}\ibbl2d{-1}\tslur0e\fl e\qb2e\isluru0c%
+\qb2c\ast{.11}\tslur0d\fl d\qb2d\ast{.11}\isluru0b\na b\tbl2\qb2b\en%
+\pnotes{2.00}\ds\ibl1{'F}{-2}\qb1F\Figu0{6}\isluru1E\qb1E\Figu0{6}%
+\tslur1D\tbl1\qb1D&\ibl2{'a}2\tslur0c\qb2c\uppz e\qb2a\uppz e\qb2{`g}%
+\isluru0{'f}\tbl2\qb2f\en%
+% Bar count 17
+\xbar
+\pnotes{2.00}\ibu1{'E}{-2}\qb1C\Figu0{7}\qb1F\Figu0{4}\qb1G&%
+\ibl2{'c}{-1}\tslur0e\qb2e\qb2a\shake g\qbp2d\en%
+\pnotes{1.00}\Figu0{3}\tbu1\qb1G&\en%
+\pnotes{1.41}&\tbbl2\tbl2\qb2{'c}\en%
+\pnotes{4.00}\hu{'C}&\hl{'c}\en%
+\Endpiece
+\vskip .1\Interligne\eject\endmuflex
+\bye
diff --git a/Build/source/utils/pmx/pmx-2.6.18/tests/barsant1.pmx b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant1.pmx
new file mode 100644
index 00000000000..2aea3d406eb
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant1.pmx
@@ -0,0 +1,48 @@
+%----------------%
+%
+% barsant.pmx Revised 29 June 2002
+%
+%----------------%
+%
+% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig,
+ 1
+ 1
+ 4
+ 4
+ 0
+ 6
+ .00
+ 0
+%
+% npages,nsyst,musicsize,fracindent
+ 1
+ 7
+ 20
+ .05
+
+b
+./
+Ti
+Basso
+Abep
+Tc
+Francesco Barsanti (1690-1772)
+% Bar 1-4
+h
+Adagio
+c43 r8 f 65 f 42 e 6 r c | [ b 6 c ] d 7 b 65 c4 r8 c 65 t |
+\global\figdrop5\Figu{-1}{\fsmsh}\Figu{0}{4}\Figu{4}{2}\
+c t bf4 65 x1842 a8 65 t a t #42 g 6 r g 65 t |
+g t #42 f4 \global\figdrop8\ 65 x1842 \Figu06\ e8 d 54 dd1+ 3 c3 b8 6 g 7 /
+% Bar 5-6
+[ c84 f- 7 ] g 4 g- 3 c ed1 f3 gd1 f3 ed1 d3 | cs4 5 r8 c 65 d4 r8 fd1 e3 /
+% Bar 7-8
+ds43 5 r8 d 65 e # ed1 fs3 gs8 e 7 | a4 r8 a 6 g4 7 r8 g 6 /
+% Bar 9-10
+f43 7 r8 d 65 e4 gs- 65 | a r r gs+ 65 /
+% Bar 11-12
+[ a83 d- 7 ] e 4 e- #3 a ad1+ b3 c8 gs 65 | a4 # cs- 65 d8 dd1 e3 f8 d /
+% Bar 13-14
+g43 b- 65 [-1+1 c8 cd1 d3 ] ef8 b 6 | c4 -3 bf n42 af 6 an #6 /
+% Bar 15-end
+b82 6 gd1 a3 b8 g 7 c4 -3 r | r2 r8 f e s 6 d s 6 | [-1 c f 7 g 4 g- 3 ] c2 /
diff --git a/Build/source/utils/pmx/pmx-2.6.18/tests/barsant2.pmx b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant2.pmx
new file mode 100644
index 00000000000..a21386f4768
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/tests/barsant2.pmx
@@ -0,0 +1,66 @@
+%----------------%
+%
+% barsant.pmx Revised 29 June 2002
+%
+%----------------%
+%
+% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig,
+ 1
+ 1
+ 4
+ 4
+ 0
+ 6
+ .00
+ 0
+%
+% npages,nsyst,musicsize,fracindent
+ 1
+ 7
+ 20
+ .05
+
+t
+./
+Ti
+Recorder
+Abep
+Tc
+Francesco Barsanti (1690-1772)
+S9
+% Bar 1-4
+h
+Adagio
+g85 Gf ed1 d3 [ c3 a8+ gd1x5n s+1 f e d c s+1 ] Gc b8 s c s r e |
+[ d35 s c d s e op ] e s d e s f op [ f s e f s g ] g f e f
+Gf ed1 d3 c8 r ad1+ g3 |
+[ fs15 dd+ ] [ c3 \nbbbbl2\ bf1x3 s+2 a g ] s+2 Gfn [ e1 cd+ ] [ b3
+\nbbbbl2\ a1x3 g f ] Ge ds8 ot e r ed1 dn3 |
+[ cs15 ad+ ] [ g3 \nbbbbl2\ f1x3 s+2 e d s+2 ]
+Gcn b1 c8 g1+ g3 s f e f s f8 op r1 f ed d3 /
+% Bar 5-6
+[ e65 g c e s e1 s ] d6 c b a g f e d dd8 ot c1 c4 r8 ed1 f3 |
+g85 gx3 s+1 fs g s+1 bf8 [ a3 s g fn e s ] [ f1 s d cs s d op ]
+d s e f s gs op /
+% Bar 7-8
+a85 ax3n+0+.7 s+2 gs a s+2 c8 bd1 ot a3 g1 Gfs ed8 r1 b+ bd ot a6 s b s |
+c86x3 s+2 b a s+2 ax3 s+2 g f s+2 fx3 s+1 e f s+1 c+
+bx3 s+2 a g s+2 gx3 s+2 f e s+2 ex3nf+0+.7 s+2 ds e s+2 b+ /
+% Bar 9-10
+a85x3 s+2 g f s+2 fx3 s+2 e d s+2 dx3nf+0+.7 s+2 cs d s+2 a+
+gs1 b d8 r1 d cd b3 s+0-.3 |
+[ c1 s a s bf s gs s ] a s fs s gn s e s
+[ fn s ds s e s cs s ] dn s f s e d s /
+% Bar 11-12
+c15 s+2 gs+ a s+1 d- Gc bd8 ot a1 a4 r8 ed1+ d3 |
+cs1 e g bf [ a3 cs e1 s ] e6 s d s cn bf a g f e s
+Ge fd1 e3 d8 ot r8 dd1 cn3 /
+% Bar 13-14
+b14 d f a [ g3 b d1 t ] [+1 d6 t c b a g f e d ]
+Gd ed1 ot d3 c8 r1 d dd ot c6 s d s |
+ef1 c cd ot b6 s c s en1 c cd ot b6 s c s
+f1 c cd ot b6 s c s fs1 c cd ot b6 s c s /
+% Bar 15-end
+g45 r1 af gd f3 ef1 bn+ s c s an s [ bf s g s af s fs s ] |
+g s e s f s d s [ ef s c s df s bn s ] c8 s a op g op f+ s |
+[ e s a- dd ot c1 ] c2 /
diff --git a/Build/source/utils/pmx/pmx-2.6.18/version.ac b/Build/source/utils/pmx/pmx-2.6.18/version.ac
new file mode 100644
index 00000000000..cdb0e0b0dbe
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/version.ac
@@ -0,0 +1,11 @@
+dnl
+dnl Copyright (C) 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
+dnl --------------------------------------------------------
+dnl
+dnl m4-include this file to define the current pmx version
+m4_define([pmx_version], [2.6.18])
diff --git a/Build/source/utils/pmx/pmx-2.6.18/w32getc.c b/Build/source/utils/pmx/pmx-2.6.18/w32getc.c
new file mode 100644
index 00000000000..32f9d625953
--- /dev/null
+++ b/Build/source/utils/pmx/pmx-2.6.18/w32getc.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+int w32getc(FILE *f)
+{
+ int c;
+ c = getc(f);
+ if(c=='\r') {
+ c = getc(f);
+ if(c!='\n') {
+ ungetc(c,f);
+ c='\r';
+ }
+ }
+ return c;
+}
diff --git a/Build/source/utils/pmx/tests/barsant.mid b/Build/source/utils/pmx/tests/barsant.mid
index 48190b2ddac..ccd7219e2be 100644
--- a/Build/source/utils/pmx/tests/barsant.mid
+++ b/Build/source/utils/pmx/tests/barsant.mid
Binary files differ
diff --git a/Build/source/utils/pmx/tests/barsant.pml b/Build/source/utils/pmx/tests/barsant.pml
index d219f240277..0c514716522 100644
--- a/Build/source/utils/pmx/tests/barsant.pml
+++ b/Build/source/utils/pmx/tests/barsant.pml
@@ -1,4 +1,4 @@
-This is PMX, Version 2617 , 28 Jan 12
+This is PMX, Version 2618 , 19 Mar 12
Opening barsant.pmx
Starting first PMX pass
diff --git a/Build/source/utils/pmx/version.ac b/Build/source/utils/pmx/version.ac
index d1cb4fdeb94..cdb0e0b0dbe 100644
--- a/Build/source/utils/pmx/version.ac
+++ b/Build/source/utils/pmx/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current pmx version
-m4_define([pmx_version], [2.6.17])
+m4_define([pmx_version], [2.6.18])
diff --git a/Master/bin/alpha-linux/pmx b/Master/bin/alpha-linux/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/alpha-linux/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/alpha-linux/pmx2pdf b/Master/bin/alpha-linux/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/alpha-linux/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/alpha-linux/prepmx b/Master/bin/alpha-linux/prepmx
deleted file mode 100755
index f3c28c6b2fc..00000000000
--- a/Master/bin/alpha-linux/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/amd64-freebsd/pmx2pdf b/Master/bin/amd64-freebsd/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/amd64-freebsd/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/amd64-kfreebsd/pmx b/Master/bin/amd64-kfreebsd/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/amd64-kfreebsd/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/amd64-kfreebsd/pmx2pdf b/Master/bin/amd64-kfreebsd/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/amd64-kfreebsd/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/amd64-kfreebsd/prepmx b/Master/bin/amd64-kfreebsd/prepmx
deleted file mode 100755
index 4c554cca694..00000000000
--- a/Master/bin/amd64-kfreebsd/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/armel-linux/pmx b/Master/bin/armel-linux/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/armel-linux/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/armel-linux/pmx2pdf b/Master/bin/armel-linux/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/armel-linux/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/armel-linux/prepmx b/Master/bin/armel-linux/prepmx
deleted file mode 100755
index 943bd378d43..00000000000
--- a/Master/bin/armel-linux/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/i386-cygwin/pmx b/Master/bin/i386-cygwin/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/i386-cygwin/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/i386-cygwin/pmx2pdf b/Master/bin/i386-cygwin/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/i386-cygwin/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/i386-cygwin/prepmx.exe b/Master/bin/i386-cygwin/prepmx.exe
deleted file mode 100755
index 6cc35dbcb02..00000000000
--- a/Master/bin/i386-cygwin/prepmx.exe
+++ /dev/null
Binary files differ
diff --git a/Master/bin/i386-freebsd/pmx2pdf b/Master/bin/i386-freebsd/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/i386-freebsd/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pmx b/Master/bin/i386-kfreebsd/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/i386-kfreebsd/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pmx2pdf b/Master/bin/i386-kfreebsd/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/prepmx b/Master/bin/i386-kfreebsd/prepmx
deleted file mode 100755
index 18b3eedeb9f..00000000000
--- a/Master/bin/i386-kfreebsd/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/i386-linux/pmx b/Master/bin/i386-linux/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/i386-linux/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/i386-linux/pmx2pdf b/Master/bin/i386-linux/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/i386-linux/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/i386-linux/prepmx b/Master/bin/i386-linux/prepmx
deleted file mode 100755
index e5662608af1..00000000000
--- a/Master/bin/i386-linux/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/i386-netbsd/pmx2pdf b/Master/bin/i386-netbsd/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/i386-netbsd/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/i386-solaris/pmx2pdf b/Master/bin/i386-solaris/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/i386-solaris/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/mips-irix/pmx2pdf b/Master/bin/mips-irix/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/mips-irix/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/mipsel-linux/pmx b/Master/bin/mipsel-linux/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/mipsel-linux/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/mipsel-linux/pmx2pdf b/Master/bin/mipsel-linux/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/mipsel-linux/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/mipsel-linux/prepmx b/Master/bin/mipsel-linux/prepmx
deleted file mode 100755
index ff80f9fe45d..00000000000
--- a/Master/bin/mipsel-linux/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/powerpc-aix/pmx b/Master/bin/powerpc-aix/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/powerpc-aix/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/powerpc-aix/pmx2pdf b/Master/bin/powerpc-aix/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/powerpc-aix/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/powerpc-aix/prepmx b/Master/bin/powerpc-aix/prepmx
deleted file mode 100755
index 9c0a7b786eb..00000000000
--- a/Master/bin/powerpc-aix/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/powerpc-linux/pmx2pdf b/Master/bin/powerpc-linux/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/powerpc-linux/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/sparc-solaris/pmx b/Master/bin/sparc-solaris/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/sparc-solaris/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/sparc-solaris/pmx2pdf b/Master/bin/sparc-solaris/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/sparc-solaris/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/sparc-solaris/prepmx b/Master/bin/sparc-solaris/prepmx
deleted file mode 100755
index 0ba189a0bc8..00000000000
--- a/Master/bin/sparc-solaris/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/universal-darwin/pmx b/Master/bin/universal-darwin/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/universal-darwin/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/universal-darwin/pmx2pdf b/Master/bin/universal-darwin/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/universal-darwin/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/universal-darwin/prepmx b/Master/bin/universal-darwin/prepmx
deleted file mode 100755
index bcdeda047a8..00000000000
--- a/Master/bin/universal-darwin/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/win32/pmx2pdf.exe b/Master/bin/win32/pmx2pdf.exe
new file mode 100755
index 00000000000..5777d90a17a
--- /dev/null
+++ b/Master/bin/win32/pmx2pdf.exe
Binary files differ
diff --git a/Master/bin/win32/prepmx.exe b/Master/bin/win32/prepmx.exe
deleted file mode 100755
index 60e3ab7f4f5..00000000000
--- a/Master/bin/win32/prepmx.exe
+++ /dev/null
Binary files differ
diff --git a/Master/bin/x86_64-darwin/pmx b/Master/bin/x86_64-darwin/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/x86_64-darwin/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-darwin/pmx2pdf b/Master/bin/x86_64-darwin/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/x86_64-darwin/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-darwin/prepmx b/Master/bin/x86_64-darwin/prepmx
deleted file mode 100755
index 7b5e3d31e61..00000000000
--- a/Master/bin/x86_64-darwin/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/x86_64-linux/pmx b/Master/bin/x86_64-linux/pmx
deleted file mode 120000
index 767c2118eb6..00000000000
--- a/Master/bin/x86_64-linux/pmx
+++ /dev/null
@@ -1 +0,0 @@
-../../texmf-dist/scripts/pmx/pmx.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-linux/pmx2pdf b/Master/bin/x86_64-linux/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/x86_64-linux/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-linux/prepmx b/Master/bin/x86_64-linux/prepmx
deleted file mode 100755
index 3e29c25c0f2..00000000000
--- a/Master/bin/x86_64-linux/prepmx
+++ /dev/null
Binary files differ
diff --git a/Master/bin/x86_64-solaris/pmx2pdf b/Master/bin/x86_64-solaris/pmx2pdf
new file mode 120000
index 00000000000..73d88404556
--- /dev/null
+++ b/Master/bin/x86_64-solaris/pmx2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/pmx/pmx.pdf b/Master/texmf-dist/doc/generic/pmx/pmx.pdf
deleted file mode 100644
index 8e25dd30c83..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmx.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmx.1 b/Master/texmf-dist/doc/generic/pmx/pmx2pdf.1
index 5d699c826b3..9ffcf094377 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmx.1
+++ b/Master/texmf-dist/doc/generic/pmx/pmx2pdf.1
@@ -1,12 +1,12 @@
.\" This manpage is licensed under the GNU Public License
-.TH pmx 1 2011-11-28 "pmx script, version 0.2" ""
+.TH pmx2pdf 1 2012-05-15 "pmx2pdf script, version 0.2.1" ""
.SH NAME
-pmx \- This script processes pmx files and then deletes intermediate files
+pmx2pdf \- This script processes pmx files and then deletes intermediate files
.SH SYNOPSIS
[ texlua ]
-.B pmx[.lua]
+.B pmx2pdf
{
.IR option
|
diff --git a/Master/texmf-dist/doc/generic/pmx/pmx2pdf.pdf b/Master/texmf-dist/doc/generic/pmx/pmx2pdf.pdf
new file mode 100644
index 00000000000..6b21505700f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pmx/pmx2pdf.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/README b/Master/texmf-dist/doc/generic/pmx/pmxccn/README
index c00826b3135..564e64dad5d 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/README
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/README
@@ -1,5 +1,5 @@
pmxccn is a tutorial for PMX in LaTeX; it describes and
-explains PMX up to version 2.603 included.
+explains PMX up to version 2.618 included.
The zipped package includes the main program and 2 subfolders:
@@ -12,9 +12,15 @@ Unzip pmxccn.zip in whatever folder you want (preserving
the folder structure), and run
latex pmxccn.tex
+ [ as usual, run latex pmxccn
+ twice to get the cross
+ reference right, and run
+ makeindex pmxccn the produce
+ the index ]
+
+
LEGAL NOTICE: This software is subject to the usual
GNU/LLPL licence conditions.
-Thu 2011 Jul 14 /16:25 /ccn .
-
+Sun 2012 Apr 1 /17:56 / Cornelius C. Noack
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/addresses.txt b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/addresses.txt
deleted file mode 100644
index 6860b5ee1d3..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/addresses.txt
+++ /dev/null
@@ -1,9 +0,0 @@
- dlaurie@na-net.ornl.gov,
-+ CQX05646@nifty.com,
-+ Jean-Pierre.COULON@obs-nice.fr, RICHTIG: COULON@obs-nice.fr
-+ oliviervogel@freesurf.ch,
-+ rainer.dunker@web.de,
-+ stanislav@kneifl.net,
-- omaupunto@tin.it
-
-
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/btennent.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/btennent.eps
new file mode 100644
index 00000000000..758ab76e096
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/btennent.eps
@@ -0,0 +1,40 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 161 25
+%
+% created by bmeps 1.2.7 (SCCS=1.78)
+%
+/pstr
+ 161 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+161 25 scale
+161 25 8 [161 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&hZ!TV!;6Bj!.t7@rrE*"rr3!!!;ld"!!*'!!!%WN
+o)A^j!<3!!!!)rs!<<,urrE*"KDtuQ!<;utrVuis"9/?$s8)fqrrW6$s8W#trr;lr
+rr;iqo`+mj"oeQ&rr<&trrE*"rr;osr;Z]qrr3$"!<<#urVu`p"98B$!<)ou!!)]l
+quH]qquHHjrW!9)rr<'!rr<'!s8E#trrE*"r;R-)!<3$!rr<'!rr<&urr`<%rr<&t
+rrE*"pAY3p!<<)u!!<0#!<)p(!!*'!!!*'!!!*#u#64c(rr<'!s8E!'s8N'!s8N'!
+rVm!#!<3$!rVllu!;?En!!*#u"TSQ&rr<&urrE*"p\t6o!;lcs!!)ut!<<-!rrE*"
+r;R*(!<3$!rr<'!!!)lq!<<,irrE*"rVm!#!<3$!rVm!#!<3$!rVm!#!<3$!rVm!#
+!<3$!rVm!#!<3$!qYpQr!<)ou!!)cn!<<,lrrE*"p\t6o!;lcs!!)ut!<<-!rrE*"
+r;Qj!!<<)u!!E9$!!)ipqZ-?i!<<,urr`<%rr<&trrN0#s7lWps7lWrrr<&trrW6$
+s8Vrr"98B$!<)ou!!)cn!<<,qs7u`irrE*"qu6Zs!<)ou!!*#u!<<,trrE*"qYpQr
+!;-9l!!)cn!<<,urr`<%rr<&trr`<%rr<&qrrE*"qYpQr!<)ou!!)lq"98H%!!)ut
+!<<,orrE*"qYpQr!<)ou!!)cn!<<,rrrW6$s8W&urr39)!<<'!!<<'!!<3!%!!*'!
+!!*#u"98H%!!)ut!<<,urrE*"r;Qj!!<<)u!!WE&!!*'!rW!'#rr<&urriB&s8N'!
+rr3*$!<3$!rVm!#!<3$!rVm*&!<<'!!<<)u!<)ou!!)rs!<<-!rr`<%rr<&us8E#m
+rrE*"q>^Eo!ri6#rVufrrVucqrVucqrr;iqrVufrr;Z`r!ri6#rr;rt!ri6#rr;lr
+rVucq"98B$!<)p"!!*'!qZ-TprW!$"!!*#ur;ccqquH`rr;Zp!!!'e6!<<,orrE*"
+a8Z/?!1s2k!!%WNK)^H&K)^H&K)^H&rVl
+~>
+grestore
+currentdict /inputf undef
+currentdict /pstr undef
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/call_addr.txt b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/call_addr.txt
deleted file mode 100644
index 1a7cf5220c3..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/call_addr.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-From MAILER-DAEMON@itp.uni-bremen.de Wed Nov 28 17:07:17 2007
-Date: Wed, 28 Nov 2007 17:07:09 +0100 (CET)
-From: Mail Delivery System <MAILER-DAEMON@itp.uni-bremen.de>
-To: noack@itp.uni-bremen.de
-Subject: Undelivered Mail Returned to Sender
-
-This is the mail system at host mail1.itp.uni-bremen.de.
-
-I'm sorry to have to inform you that your message could not
-be delivered to one or more recipients. It's attached below.
-
-For further assistance, please send mail to postmaster.
-
-If you do so, please include this problem report. You can
-delete your own text from the attached returned message.
-
- The mail system
-
-<omaupunto@tin.it>: host smtp.tin.it[62.211.72.32] said: 550 RCPT
- TO:<omaupunto@tin.it> User unknown (in reply to RCPT TO command)
-
- [ Part 2: "Delivery report" ]
-
-Reporting-MTA: dns; mail1.itp.uni-bremen.de
-X-Postfix-Queue-ID: 33A89C0002
-X-Postfix-Sender: rfc822; noack@itp.uni-bremen.de
-Arrival-Date: Wed, 28 Nov 2007 17:06:52 +0100 (CET)
-
-Final-Recipient: rfc822; omaupunto@tin.it
-Original-Recipient: rfc822;omaupunto@tin.it
-Action: failed
-Status: 5.0.0
-Remote-MTA: dns; smtp.tin.it
-Diagnostic-Code: smtp; 550 RCPT TO:<omaupunto@tin.it> User unknown
-
-
- [ Part 3: "Undelivered Message" ]
-
-Date: Wed, 28 Nov 2007 17:12:48 +0100
-From: Cornelius C. Noack <noack@itp.uni-bremen.de>
-To: dlaurie@na-net.ornl.gov, CQX05646@nifty.ne.jp, Jean-Pierre.COULON@obs-nice.fr, oliviervogel@freesurf.ch, rainer.dunker@web.de, standa@hiero.cz, omaupunto@tin.it
-Subject: address verification for PMX tutorial update
-
-Hello dear friends of PMX,
-
-as you know, I wrote a PMX tutorial over 5 years ago --
-it was badly in need of an update.
-
-I now have just finished editing an updated version.
-Before I upload that new updated version to WIMA, I want to
-verify that all Email addresses given there are also up
-to date.
-
-As you may have noticed, all your addresses in the old
-version are in a graphic format, to increase the difficulties
-for automatic crawlers misusing them. This will, of course,
-remain so in the new version. So you need not be excessively
-wary of misuse.
-
-If you send me a reply to this mail from the address under
-which you want to be cited in the new PMX tutorial, you
-dont need to include any text.
-
-If, however, you want your Email address to be expunged from
-the tutorial (even though it will be in graphic form only),
-please be kind enough to request that expressly (I hope you
-wont).
-
-Thanks for your good -- and hopefully continuing --
-work for PMX !
-
-ccn.
---
-.................................................................
-
- Prof.Dr. Cornelius C. Noack Phones:
- Inst. f. Theor. Physik FB 1 office : +49 (421) 218-2427
- Universit"at Bremen secretary: -2422
- Otto-Hahn-Allee Fax : -4869
- D - 28334 Bremen home : +49 (421) 34 22 36
- Fax: 346 7872
- E-mail: noack at itp.uni-bremen.de or ccnoack at mailaps.org
- WWW-page: www.itp.uni-bremen.de/~noack
-.................................................................
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.eps
index 43657d3efaf..84930d4ee80 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.eps
@@ -1,54 +1,54 @@
-%% LaTeX2e file `addresses/cmondrup.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 287 17
-% created by bmeps 1.54
-/pstr
- 287 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-287 25 scale
-287 25 8 [287 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&^&S$2qu6Zs!;$3k!!)fo
-!<<,<rrE*"d/O+H!;HKo!!%iT"TSQ&rr<&srrE*"oD\gk!;QQp!!'t;!<<,HrrE*"
-p\t6o!/^^V!!)ut!<<,errE*"LAq8S!42\,!!*&t!<)rr!;ulp!<)rq!!rW)!<3$!
-rr<&ts8;rsrrW6$s8W#trr;rtqu?Qorr3-%!<<'!!<)rs!<)p!!!*&u!<)rq!!3*"
-p\tR#rr<'!!!*'!!!)ut!rr?$s8)fps8E#qs82lhs82j"s8N'!s8;rrs82j"s8N'!
-s8E#rs8E#srrE*"rVllu!<3#s!;$6h!<3!"!!*&t!<3#r!!3*"p](3m$ig5,!<<'!
-!<<'!!<3!!!!*#u"TSQ&rr<&uru;"=rr<'!!!*$!!<<'!!<<'!!<<'!!<3$!rr<&t
-rrE*"r;Qct!<3!(!!*'!!!*$!!;lcs!!)utrW!3'rr<'!rr<&us8E#mrsA`+rr<'!
-!!*$!!<)p#!!*$!!<)ou!!)ut!<<,trrE*"rr3!!!;?En!!*#u!rr?$s8E!'s8N'!
-s8N'!rr3$"!<<#u"98B$!;uit!!)ut!<<,urs8Z*s8N'!s8N'!p&>0q!<<'!!<3#t
-!!`K'!!*$!!<3#t!;HKo!!)or!<<,urr`<%rr<&qrrE*"qYpm&!<3$!rr<'!!!)ut
-$31)+!!*$!!<3$!rVllu!<)ou!!)ipr;c]o!<<,urrE*"rVm!#!<3$!rr3'#!<<)p
-!"8f,!<3$!rr<'!!!)ut"98H%!!)cn!<<,urrE*"qZ$?kqYp^!!<<'!!;lcs!!)lq
-!<<,urrE*"rVllu!;uj'!!*'!!!*'!!!)ut!<<,orrE*"rVm$$!<<'!!;lcs!!*#u
-!<<,nrrE*"qu?Hl!ri6#qYpQr!;c^&!!*$!!<3$!rr<&trrrH'rr<'!s8E#rrrE*"
-rVllu!;ZZn!;c]r!!)ut!<<,urr`<%rr<&urrE*"pAYI"!<3$!rr<'!!!)ut!rr?$
-s8)forrE*"rVllu!:^$b!!E9$!!)or!<<,rrrE*"rVllu!<)ou!!)rs#64c(rr<'!
-s7lZhrrE*"rVm$$!<<'!!;lcs!!*#u!<<,nrrE*"qu6Zs!;c]r!!)lq!<<,rrsA`+
-rr<'!!!*$!!<)p#!!*$!!;HKo!!)ut!<<,qrr`<%rr<&rrrE*"rVllu!<)p"!!*'!
-quHEi$31)+!!*$!!<3$!rVllu!;c]r!!)ut!<<,urrE*"nc&Ui!<)p$!!*'!!!)or
-!<<,rrrE*"rVllu!<)ou!!)orr;cis!<<,irrE*"rVm$$!<<'!!;c`n!;6?m!!)lq
-!<<-!rriB&s8N'!rr3-%!<<'!!<3!2!!*$!!<3$!rr<'!rr<'!rr<&urrE*"rr3!!
-!<)ou!!)rs!<<-!rs8Z*s8N'!s8N'!r;Qct!<)ou!!)ut"98H%!!)Qh%0-D.!!*$!
-!<<'!!<<)u!!<0#!<)ou!!)ut!<<,trrE*"rr3!!!;HKo!!*#urW!'#rr<&qrrE*"
-rr3*$!<3$!rVllu!<)ou!!)orr;cfr!<<-!rrE*"rVllu!;uj#!!*'!!!*#u!<<,s
-rrE*"nc&Ui!;ZZm!<)rq!<)rq!"&]*!!*$!!<3$!rr;osr;ZZprr;iqrVucqrr3!!
-!<3!#!!*'!qZ$`urr<&trrW6$s8VrrpAY?t!<3$!rr<&us8E!$rr<'!s8)fqs8)fp
-s82lis8;p%rr<'!rr<&ps82j!s8N'!rVls"!<<)r!;uit!!)orquH]qr;ccqr;cfr
-!<<,rs8)eSrrE*"rVllu!.t7MrrE*"li-tc!<)ou!!%rWqZ)6JjT#)WK)^H&K)^H&
-K)^H&K)^H&K)^H&K)a="
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/cmondrup.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 287 17
+% created by bmeps 1.54
+/pstr
+ 287 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+287 25 scale
+287 25 8 [287 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&^&S$2qu6Zs!;$3k!!)fo
+!<<,<rrE*"d/O+H!;HKo!!%iT"TSQ&rr<&srrE*"oD\gk!;QQp!!'t;!<<,HrrE*"
+p\t6o!/^^V!!)ut!<<,errE*"LAq8S!42\,!!*&t!<)rr!;ulp!<)rq!!rW)!<3$!
+rr<&ts8;rsrrW6$s8W#trr;rtqu?Qorr3-%!<<'!!<)rs!<)p!!!*&u!<)rq!!3*"
+p\tR#rr<'!!!*'!!!)ut!rr?$s8)fps8E#qs82lhs82j"s8N'!s8;rrs82j"s8N'!
+s8E#rs8E#srrE*"rVllu!<3#s!;$6h!<3!"!!*&t!<3#r!!3*"p](3m$ig5,!<<'!
+!<<'!!<3!!!!*#u"TSQ&rr<&uru;"=rr<'!!!*$!!<<'!!<<'!!<<'!!<3$!rr<&t
+rrE*"r;Qct!<3!(!!*'!!!*$!!;lcs!!)utrW!3'rr<'!rr<&us8E#mrsA`+rr<'!
+!!*$!!<)p#!!*$!!<)ou!!)ut!<<,trrE*"rr3!!!;?En!!*#u!rr?$s8E!'s8N'!
+s8N'!rr3$"!<<#u"98B$!;uit!!)ut!<<,urs8Z*s8N'!s8N'!p&>0q!<<'!!<3#t
+!!`K'!!*$!!<3#t!;HKo!!)or!<<,urr`<%rr<&qrrE*"qYpm&!<3$!rr<'!!!)ut
+$31)+!!*$!!<3$!rVllu!<)ou!!)ipr;c]o!<<,urrE*"rVm!#!<3$!rr3'#!<<)p
+!"8f,!<3$!rr<'!!!)ut"98H%!!)cn!<<,urrE*"qZ$?kqYp^!!<<'!!;lcs!!)lq
+!<<,urrE*"rVllu!;uj'!!*'!!!*'!!!)ut!<<,orrE*"rVm$$!<<'!!;lcs!!*#u
+!<<,nrrE*"qu?Hl!ri6#qYpQr!;c^&!!*$!!<3$!rr<&trrrH'rr<'!s8E#rrrE*"
+rVllu!;ZZn!;c]r!!)ut!<<,urr`<%rr<&urrE*"pAYI"!<3$!rr<'!!!)ut!rr?$
+s8)forrE*"rVllu!:^$b!!E9$!!)or!<<,rrrE*"rVllu!<)ou!!)rs#64c(rr<'!
+s7lZhrrE*"rVm$$!<<'!!;lcs!!*#u!<<,nrrE*"qu6Zs!;c]r!!)lq!<<,rrsA`+
+rr<'!!!*$!!<)p#!!*$!!;HKo!!)ut!<<,qrr`<%rr<&rrrE*"rVllu!<)p"!!*'!
+quHEi$31)+!!*$!!<3$!rVllu!;c]r!!)ut!<<,urrE*"nc&Ui!<)p$!!*'!!!)or
+!<<,rrrE*"rVllu!<)ou!!)orr;cis!<<,irrE*"rVm$$!<<'!!;c`n!;6?m!!)lq
+!<<-!rriB&s8N'!rr3-%!<<'!!<3!2!!*$!!<3$!rr<'!rr<'!rr<&urrE*"rr3!!
+!<)ou!!)rs!<<-!rs8Z*s8N'!s8N'!r;Qct!<)ou!!)ut"98H%!!)Qh%0-D.!!*$!
+!<<'!!<<)u!!<0#!<)ou!!)ut!<<,trrE*"rr3!!!;HKo!!*#urW!'#rr<&qrrE*"
+rr3*$!<3$!rVllu!<)ou!!)orr;cfr!<<-!rrE*"rVllu!;uj#!!*'!!!*#u!<<,s
+rrE*"nc&Ui!;ZZm!<)rq!<)rq!"&]*!!*$!!<3$!rr;osr;ZZprr;iqrVucqrr3!!
+!<3!#!!*'!qZ$`urr<&trrW6$s8VrrpAY?t!<3$!rr<&us8E!$rr<'!s8)fqs8)fp
+s82lis8;p%rr<'!rr<&ps82j!s8N'!rVls"!<<)r!;uit!!)orquH]qr;ccqr;cfr
+!<<,rs8)eSrrE*"rVllu!.t7MrrE*"li-tc!<)ou!!%rWqZ)6JjT#)WK)^H&K)^H&
+K)^H&K)^H&K)^H&K)a="
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.png
deleted file mode 100644
index b8b84c0f308..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/cmondrup.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.eps
index e8d4aaf6110..e0557bd90eb 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.eps
@@ -1,47 +1,47 @@
-%% LaTeX2e file `addresses/dlaurie.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 215 17
-% created by bmeps 1.54
-/pstr
- 215 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-215 25 scale
-215 25 8 [215 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)`4X!<<-!s8E#UrrE*"o)JXgUAt2mbPqSC
-!<)ou!!(pV!<<,krriB&s8N'!d/O+H!7h)M!!(4B!<<,urrE*"d/O+H!<)ou!!(FH
-!<<,MrrE*"ci<tE!ri6#rVllu!;lfo!!E9$!!)ut"TSQ&!!*&t!<)rs!;lfp!<3!#
-!!*'!r;Zs"!!*&u!;ulp!;?Eo!!*&u!;ulq!<3#q!;$6h!<3!"!!*&t!!N?%!!*&u
-!;lcs!!)Wjqu?ct!<3#s!<3!!!!)ut!<<,orrW6$s8W&urVllu!;uit!!*#u"98H%
-!!)ut!rr?$s8E!#s8N'!rVllu!;uj.!!*'!!!*'!!!*$!!<3$!s8E!#s8N'!rr3!!
-!<3!!!!)cnrW!'#rr<&urriB&s8N'!rVllu!:p-n!!*'!!!*#urW!*$rr<'!rW!'#
-rr<&srrE*"o`"pl!<3#t!"8i,!!*'!!!*'!!!)ut!<<,prrE*"rVllu!<)ou!!)cn
-"98H%!!)ut"TSQ&rr<&orrE*"rVllu!<)p,!!*$!!<3$!rr<'!!!)ut!<<,rrrN0#
-s7lWrrr<&trr`<%rr<&trrE*"rr3!!!;$3k!!)ut"TSQ&rr<&rrrE*"rVllu!<)ou
-!!)Zk!<<-!rriB&s8N'!rVm0(!<<'!!<<'!!;HKo!!)ut!<<,urrE*"r;ZTn!ri6#
-rVm$$!<<'!!;QQp!!)utq#CQt!!*'!rW!'#rr<&trrW6$s8Voqp\t6o!<)p!!!*&p
-!<3!!!!)Wj!<<,urriB&s8N'!qu6Zs!<)ou!!)ut!<<,lrrE*"rr3-%!<<'!!<)p(
-!!*'!!!*'!!!)cn!<<,urrE*"rVllu!<)ou!!)ut"98H%!!)ut"TSQ&rr<&orrE*"
-rVllu!;c]r!!)lq!<<,urr`<%rr<&trrE*"p\t6o!<)p#!!*$!!;QQp!!)Wj!<<,u
-rriB&s8N'!qu6Zs!<)ou!!)ut!<<,ks82lrrrE*"rVllu!<3#s!;6?o!!*'!rW)os
-!<<,urrE*"rr;rt"onT&!<<)u!!E9$!!)fo!<<,trrE*"rr3-%!<<'!!<3!$!!*$!
-!<)p#!!*$!!<3#t!;HKo!!)ut"TSQ&rr<&urrE*"rr3-%!<<'!!<)ou!!)rs"TSQ&
-rr<&urrE*"qu6Zs!<)ou!!)ut!<<,rrrE*"rVllu!;ZWu!!*'!!!)utr;cKirW!$"
-!!*#ur;cfrr;Zp!!!*#urW!0&!!*'!!!)lqqZ-TpquH]qqu?j!rr<&trrW6$s8W#t
-!ri6#p\t6o!<)ou!!*#uquHZpr;cfrr;ccqr;cfr!<<,srrE*"rVllu!<3#s!;ulq
-!<)rp!<)rr!;lcs!!%WNoD\gk!7q/N!!)ut!<<,urrE*"K)`(TqZ)6JK)^H&K)^H&
-K)^H&K)_qP
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/dlaurie.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 215 17
+% created by bmeps 1.54
+/pstr
+ 215 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+215 25 scale
+215 25 8 [215 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)`4X!<<-!s8E#UrrE*"o)JXgUAt2mbPqSC
+!<)ou!!(pV!<<,krriB&s8N'!d/O+H!7h)M!!(4B!<<,urrE*"d/O+H!<)ou!!(FH
+!<<,MrrE*"ci<tE!ri6#rVllu!;lfo!!E9$!!)ut"TSQ&!!*&t!<)rs!;lfp!<3!#
+!!*'!r;Zs"!!*&u!;ulp!;?Eo!!*&u!;ulq!<3#q!;$6h!<3!"!!*&t!!N?%!!*&u
+!;lcs!!)Wjqu?ct!<3#s!<3!!!!)ut!<<,orrW6$s8W&urVllu!;uit!!*#u"98H%
+!!)ut!rr?$s8E!#s8N'!rVllu!;uj.!!*'!!!*'!!!*$!!<3$!s8E!#s8N'!rr3!!
+!<3!!!!)cnrW!'#rr<&urriB&s8N'!rVllu!:p-n!!*'!!!*#urW!*$rr<'!rW!'#
+rr<&srrE*"o`"pl!<3#t!"8i,!!*'!!!*'!!!)ut!<<,prrE*"rVllu!<)ou!!)cn
+"98H%!!)ut"TSQ&rr<&orrE*"rVllu!<)p,!!*$!!<3$!rr<'!!!)ut!<<,rrrN0#
+s7lWrrr<&trr`<%rr<&trrE*"rr3!!!;$3k!!)ut"TSQ&rr<&rrrE*"rVllu!<)ou
+!!)Zk!<<-!rriB&s8N'!rVm0(!<<'!!<<'!!;HKo!!)ut!<<,urrE*"r;ZTn!ri6#
+rVm$$!<<'!!;QQp!!)utq#CQt!!*'!rW!'#rr<&trrW6$s8Voqp\t6o!<)p!!!*&p
+!<3!!!!)Wj!<<,urriB&s8N'!qu6Zs!<)ou!!)ut!<<,lrrE*"rr3-%!<<'!!<)p(
+!!*'!!!*'!!!)cn!<<,urrE*"rVllu!<)ou!!)ut"98H%!!)ut"TSQ&rr<&orrE*"
+rVllu!;c]r!!)lq!<<,urr`<%rr<&trrE*"p\t6o!<)p#!!*$!!;QQp!!)Wj!<<,u
+rriB&s8N'!qu6Zs!<)ou!!)ut!<<,ks82lrrrE*"rVllu!<3#s!;6?o!!*'!rW)os
+!<<,urrE*"rr;rt"onT&!<<)u!!E9$!!)fo!<<,trrE*"rr3-%!<<'!!<3!$!!*$!
+!<)p#!!*$!!<3#t!;HKo!!)ut"TSQ&rr<&urrE*"rr3-%!<<'!!<)ou!!)rs"TSQ&
+rr<&urrE*"qu6Zs!<)ou!!)ut!<<,rrrE*"rVllu!;ZWu!!*'!!!)utr;cKirW!$"
+!!*#ur;cfrr;Zp!!!*#urW!0&!!*'!!!)lqqZ-TpquH]qqu?j!rr<&trrW6$s8W#t
+!ri6#p\t6o!<)ou!!*#uquHZpr;cfrr;ccqr;cfr!<<,srrE*"rVllu!<3#s!;ulq
+!<)rp!<)rr!;lcs!!%WNoD\gk!7q/N!!)ut!<<,urrE*"K)`(TqZ)6JK)^H&K)^H&
+K)^H&K)_qP
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.png
deleted file mode 100644
index 793ce68cd00..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dlaurie.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.eps
index dc265e2bdc2..953889f1e92 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.eps
@@ -1,46 +1,46 @@
-%% LaTeX2e file `addresses/dsimons.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 188 17
-% created by bmeps 1.54
-/pstr
- 188 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-188 25 scale
-188 25 8 [188 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^l2!<<,lrrE*"fDkdLn,ECg!;6Bk!;-9l!!)cn
-!<<,:rrE*"o`"pl!8.;T!!*'!!!)Ng!<<,lrrE*"o`"pl!;HKo!!(XN!<<,frrE*"
-b5VJB!<)ou!!)Qh!<<,lrrE*"o`"pl!6bBC!!)TirW!*$!!*'!qZ-TprW)os"p"Z'
-!<3$!rVufrrr3$"!<<#urVu`p"onT&!<<)t!<3#r!<)rs!!<0#!<3#s!;lcs!!)ut
-!WW6#rW)rt!WW6#rW)lrrW)iqquHHj!WW6#rW)lrr;cisqZ-<h!rr?$s8E!"rr<&t
-rrE*"rVllu!<)p0!!*$!!<3$!s8N'!s8N'!s8W&u#QOf(!<<'!!<)p-!!*$!!<3$!
-rr<'!rr<&urs&N(s8N'!s8W&u#QOf(!<<'!!;uit!!)utrW!-%rr<'!s8E!#s8N'!
-r;Qct!;uit!!*#u!<<,os8E!#s8N'!rr3-%!<<'!!<)ou!!)Zk!<<,urr`<%rr<&n
-rrE*"rVm3)!<3$!rr<'!!!)ut"98H%!!)ut"98H%!!)lq#64c(!!*$!!;c]u!!*$!
-!<)p#!!*$!!<)ou!!)ut!<<,urrE*"rVm!#!<3$!rVllu!<)ou!!)cn!<<,orrE*"
-rVm!#!<3$!rVllu!<3!!!!)Zk!<<,urrW6$s8Vrrr;Qct!<)p)!!*$!!<3$!rr<&t
-rr`<%rr<&trrW6$s8Vrr"onT&!<<)u!<3#p!!<0#!<)p!!!*&p!<)ou!!)ut!<<,u
-rr`<%rr<&trrE*"rVllu!;uln!;HKo!!)ut!WW6#q#LEo!<<,lrrE*"rVllu!;c]r
-!!)ut!<<,ursA`+rr<'!!!*$!!<)p#!!*$!!<)ou!!)lq"98H%!!)lq!<<,urr`<%
-rr<&trr`<%rr<&nrrE*"rVllu!<)p#!!*$!!<)ou!!)ut!<<,urrE*"rVllu!;HKo
-!!)ut"98H%!!)fo!<<,krrW6$s8W&u!ri6#rVllu!<)ou!!)ut'*&%4!!*$!!<<'!
-!<<'!!<<'!!<)p#!!*$!!<)p$!!*'!!!*#u"98H%!!*#urW!-%rr<'!s8E!#s8N'!
-rr3!!!<)ou!!)utrW!3'rr<'!rr<&trrE*"rVllu!<)ou!!*#urW)os!<<,urrE*"
-rVm$$!<<'!!<3!!!!*#u"TSQ&rr<&ms8E!$rr<'!s8)fqs8)d&s8N'!rr<'!!!*#u
-r;cis!<<,urrW6$s8VrrrVucqrr;os!ri6#rr;rt!ri6#rr;lrrVufrrr3$"!<<#u
-rr3!!!<)p"!!*'!qZ-Wqr;Zp!!!*#ur;cis!<<,urrE*"rr;lrr;Z]qMuNeX!8RST
-!!%WNmJd1e!.t6&s+:9&s+:9&s+:9&rr
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/dsimons.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 188 17
+% created by bmeps 1.54
+/pstr
+ 188 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+188 25 scale
+188 25 8 [188 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^l2!<<,lrrE*"fDkdLn,ECg!;6Bk!;-9l!!)cn
+!<<,:rrE*"o`"pl!8.;T!!*'!!!)Ng!<<,lrrE*"o`"pl!;HKo!!(XN!<<,frrE*"
+b5VJB!<)ou!!)Qh!<<,lrrE*"o`"pl!6bBC!!)TirW!*$!!*'!qZ-TprW)os"p"Z'
+!<3$!rVufrrr3$"!<<#urVu`p"onT&!<<)t!<3#r!<)rs!!<0#!<3#s!;lcs!!)ut
+!WW6#rW)rt!WW6#rW)lrrW)iqquHHj!WW6#rW)lrr;cisqZ-<h!rr?$s8E!"rr<&t
+rrE*"rVllu!<)p0!!*$!!<3$!s8N'!s8N'!s8W&u#QOf(!<<'!!<)p-!!*$!!<3$!
+rr<'!rr<&urs&N(s8N'!s8W&u#QOf(!<<'!!;uit!!)utrW!-%rr<'!s8E!#s8N'!
+r;Qct!;uit!!*#u!<<,os8E!#s8N'!rr3-%!<<'!!<)ou!!)Zk!<<,urr`<%rr<&n
+rrE*"rVm3)!<3$!rr<'!!!)ut"98H%!!)ut"98H%!!)lq#64c(!!*$!!;c]u!!*$!
+!<)p#!!*$!!<)ou!!)ut!<<,urrE*"rVm!#!<3$!rVllu!<)ou!!)cn!<<,orrE*"
+rVm!#!<3$!rVllu!<3!!!!)Zk!<<,urrW6$s8Vrrr;Qct!<)p)!!*$!!<3$!rr<&t
+rr`<%rr<&trrW6$s8Vrr"onT&!<<)u!<3#p!!<0#!<)p!!!*&p!<)ou!!)ut!<<,u
+rr`<%rr<&trrE*"rVllu!;uln!;HKo!!)ut!WW6#q#LEo!<<,lrrE*"rVllu!;c]r
+!!)ut!<<,ursA`+rr<'!!!*$!!<)p#!!*$!!<)ou!!)lq"98H%!!)lq!<<,urr`<%
+rr<&trr`<%rr<&nrrE*"rVllu!<)p#!!*$!!<)ou!!)ut!<<,urrE*"rVllu!;HKo
+!!)ut"98H%!!)fo!<<,krrW6$s8W&u!ri6#rVllu!<)ou!!)ut'*&%4!!*$!!<<'!
+!<<'!!<<'!!<)p#!!*$!!<)p$!!*'!!!*#u"98H%!!*#urW!-%rr<'!s8E!#s8N'!
+rr3!!!<)ou!!)utrW!3'rr<'!rr<&trrE*"rVllu!<)ou!!*#urW)os!<<,urrE*"
+rVm$$!<<'!!<3!!!!*#u"TSQ&rr<&ms8E!$rr<'!s8)fqs8)d&s8N'!rr<'!!!*#u
+r;cis!<<,urrW6$s8VrrrVucqrr;os!ri6#rr;rt!ri6#rr;lrrVufrrr3$"!<<#u
+rr3!!!<)p"!!*'!qZ-Wqr;Zp!!!*#ur;cis!<<,urrE*"rr;lrr;Z]qMuNeX!8RST
+!!%WNmJd1e!.t6&s+:9&s+:9&s+:9&rr
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.png
deleted file mode 100644
index 34d87e5c0af..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/dsimons.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.eps
index b5cf60a06bf..e7f061ea214 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.eps
@@ -1,48 +1,48 @@
-%% LaTeX2e file `addresses/hmorimoto.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 188 17
-% created by bmeps 1.54
-/pstr
- 188 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-188 25 scale
-188 25 8 [188 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)_#6quH]qr;cis!<<,urrE*"rVllu!<)ro!<)rr
-!;ZWq!!)utr;ccqr;cEg!<<,rs8;r9rrE*"mJd1e!<3!-!!*'!!!*'!!!*'!!!)ut
-!<<-!s8;rsrrE*"q>UTu!<<'!!;lfq!<3!%!!*'!!!*#u"TSQ&rr<&jrrE*"qu6g"
-!<<'!!<3!!!!(1A!<<,frrE*"r;Qj!rr<&trs8Z*s8N'!s8N'!rr39)!<<'!!<<'!
-!;c]r!!)ut!!)rsr;Zs"rr<&trr`?%rr<&trrE*"m/I4h!<<'!!<3!!!!'G,!<<,r
-rrE*"rVllu!<3#s!<3!!!!)ut"TSQ&!!*&u!<3!!!!)fo#QOl)!!*'!!!)lq!rr?$
-s8;p"rr<'!rW)lrrW)iq!<<,ts8)fqrrE*"rVllu!;HKp!!*&u!;ulq!:g*g!!N?%
-!!*&u!;?En!!)lq!<<,urrE*"rVllu!<)ou!!)ut!WW6#rW!6(rr<'!rr<'!rW)os
-$31)+rr<'!rr<'!rW)rt#QOl)!!*$!!<<#u"98B$!;uit!!)or!<<,rrrE*"r;Qct
-!<)ou!!)cnrW!'#rr<&urriB&s8N'!nc&[k!<<)u!!E9$!!)cn!<<,rrrE*"rVllu
-!<)ou!!)ut!<<,urrE*"qYpTs!<<#u#QOf(!<<'!!<3!#!!*'!rW!N0rr<'!rr<'!
-!!*$!!<3$!rVllu!<)ou!!)utqZ-Qo!<<,trrE*"rVllu!;HKo!!)ut"98H%!!)ut
-!<<,jrriB&s8N'!rVllu!;QQp!!)lq#64c(!!*$!!<3#s!<3!!!!)ut!<<,rrr`<%
-rr<&trrN0#s7lWrrr<&trrrH'rr<'!s8E!#s8N'!rVllu!<)ou!!)or!<<,rrrE*"
-r;Qct!<)ou!!)cn!<<,urrN0#s7lZcrriB&s8N'!rVllu!;QQp!!)rs"T\Q&!<<)t
-!!iQ(!!*'!!!*#u#lju*rr<'!rr<&trr`<%rr<&trrE*"qu6g"!<<'!!<)p#!!*$!
-!;c]r!!)ut!<<,urrE*"qu6Zs!;c]r!!)rs!<<,urrE*"p\t6o!<)p#!!*$!!:9^h
-!!*'!!!)ut!<<,orrE*"rr3E-!<<'!!<<'!!<<'!!<)ou!!*#ur;cfr"TSQ&rr<&u
-rriB&s8N'!qYpQr!<3!%!!*'!!!*#u!<<-!rr`<%rr<&trrE*"rVllu!;lcs!!)lq
-$NL2,rr<'!rr<'!s8E#srrE*"rVllu!<)p$!!*'!!!*#u!<<,urrE*"q#:Er!<<)u
-!!E9$!!)]lquH]qr;[!#!<3$!rVllu!<)ou!!)orr;ccqr;cZn!<<,us8;rqs82j!
-s8N'!rVls"!<<)r!<)ou!!)ipr;cfrrW!$"!!*#ur;cis!<<,urrE*"rr;lrrVufr
-rr3!!!<3!&!!*'!!!*&u!.t4OrrDus!<<,urrE*"kl1Y`!<)ou!!*#u"TSQ&rr<%N
-s82in!8@JN!<3!!!!%WNK)^H&K)^H&K)^H&_>a
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/hmorimoto.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 188 17
+% created by bmeps 1.54
+/pstr
+ 188 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+188 25 scale
+188 25 8 [188 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)_#6quH]qr;cis!<<,urrE*"rVllu!<)ro!<)rr
+!;ZWq!!)utr;ccqr;cEg!<<,rs8;r9rrE*"mJd1e!<3!-!!*'!!!*'!!!*'!!!)ut
+!<<-!s8;rsrrE*"q>UTu!<<'!!;lfq!<3!%!!*'!!!*#u"TSQ&rr<&jrrE*"qu6g"
+!<<'!!<3!!!!(1A!<<,frrE*"r;Qj!rr<&trs8Z*s8N'!s8N'!rr39)!<<'!!<<'!
+!;c]r!!)ut!!)rsr;Zs"rr<&trr`?%rr<&trrE*"m/I4h!<<'!!<3!!!!'G,!<<,r
+rrE*"rVllu!<3#s!<3!!!!)ut"TSQ&!!*&u!<3!!!!)fo#QOl)!!*'!!!)lq!rr?$
+s8;p"rr<'!rW)lrrW)iq!<<,ts8)fqrrE*"rVllu!;HKp!!*&u!;ulq!:g*g!!N?%
+!!*&u!;?En!!)lq!<<,urrE*"rVllu!<)ou!!)ut!WW6#rW!6(rr<'!rr<'!rW)os
+$31)+rr<'!rr<'!rW)rt#QOl)!!*$!!<<#u"98B$!;uit!!)or!<<,rrrE*"r;Qct
+!<)ou!!)cnrW!'#rr<&urriB&s8N'!nc&[k!<<)u!!E9$!!)cn!<<,rrrE*"rVllu
+!<)ou!!)ut!<<,urrE*"qYpTs!<<#u#QOf(!<<'!!<3!#!!*'!rW!N0rr<'!rr<'!
+!!*$!!<3$!rVllu!<)ou!!)utqZ-Qo!<<,trrE*"rVllu!;HKo!!)ut"98H%!!)ut
+!<<,jrriB&s8N'!rVllu!;QQp!!)lq#64c(!!*$!!<3#s!<3!!!!)ut!<<,rrr`<%
+rr<&trrN0#s7lWrrr<&trrrH'rr<'!s8E!#s8N'!rVllu!<)ou!!)or!<<,rrrE*"
+r;Qct!<)ou!!)cn!<<,urrN0#s7lZcrriB&s8N'!rVllu!;QQp!!)rs"T\Q&!<<)t
+!!iQ(!!*'!!!*#u#lju*rr<'!rr<&trr`<%rr<&trrE*"qu6g"!<<'!!<)p#!!*$!
+!;c]r!!)ut!<<,urrE*"qu6Zs!;c]r!!)rs!<<,urrE*"p\t6o!<)p#!!*$!!:9^h
+!!*'!!!)ut!<<,orrE*"rr3E-!<<'!!<<'!!<<'!!<)ou!!*#ur;cfr"TSQ&rr<&u
+rriB&s8N'!qYpQr!<3!%!!*'!!!*#u!<<-!rr`<%rr<&trrE*"rVllu!;lcs!!)lq
+$NL2,rr<'!rr<'!s8E#srrE*"rVllu!<)p$!!*'!!!*#u!<<,urrE*"q#:Er!<<)u
+!!E9$!!)]lquH]qr;[!#!<3$!rVllu!<)ou!!)orr;ccqr;cZn!<<,us8;rqs82j!
+s8N'!rVls"!<<)r!<)ou!!)ipr;cfrrW!$"!!*#ur;cis!<<,urrE*"rr;lrrVufr
+rr3!!!<3!&!!*'!!!*&u!.t4OrrDus!<<,urrE*"kl1Y`!<)ou!!*#u"TSQ&rr<%N
+s82in!8@JN!<3!!!!%WNK)^H&K)^H&K)^H&_>a
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.png
deleted file mode 100644
index 9c6521844b8..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/hmorimoto.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.eps
index d813bfd0837..bc30fbfb8fb 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.eps
@@ -1,54 +1,54 @@
-%% LaTeX2e file `addresses/jpcoulon.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 278 17
-% created by bmeps 1.54
-/pstr
- 278 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-278 25 scale
-278 25 8 [278 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)`I_r;bUPq>gHn!<<,Fs82lq
-s8;rsrrE*"rVm!#!<3$!q#C9mrr3!!!<)ou!!*#ur;cNj!<<,TrrE*"huEWTl2Lba
-!8IMS!!)ut!<<,urrE*"ci4"G!<3!-!!*'!!!*'!!!*'!!!)ut"98H%!!)ip#64c(
-rr<'!s8E#trs8Z*s8N'!s8N'!pAY-n!8RST!!(sW"TSQ&rr<&arrE*"g]%9S!<)ou
-!!(1A!<<,trrW9$!!)ut"98H%!!)ut"98H%!!)lq!<<,urrN0#s8;p%s8N'!rr<&t
-rrE*"p\t6o!4i+5!!*'!!!)<a!<<,us8;rqs82j"s8N'!s8E#krrE*"rVllu!<3#t
-!;lfp!<3!"!!*&t!!N?%!!*&t!<)rr!;6?m!!)lq!<<,urr`<%rr<&trr`<%rr<&q
-rrE*"rVlp!!<;ut#ljo)!<3$!s8W#trr;osrr3$"!<<#urVu`ppAY0o!<<#ur;Z`r
-qu?QorVufroD\gk!;uiu!!*&t!:p-j!!*#u"TSQ&rr<&urrE*"rr3$"!<<#u"98B$
-!;?Hh!;uit!!)rs"TSQ&rr<&us8E!%s8N'!s8W&u$ig5,!<<'!!<<'!!;?En!!)lq
-!<<,urr`<%rr<&trr`<%rr<&qrrE*"rVml<!<3$!rr<'!!!*$!!<3$!rr<'!rr<'!
-rr<'!s8E!'s8N'!s8N'!rVllu!;HNm!!E9$!!)rs!<<,trrE*"rr39)!<<'!!<<'!
-!;-9l!!)orrW!'#rr<&jrriB&s8N'!rVllu!;c]u!!*$!!<)p!!!*&p!!<0#!;HKo
-!!)ut!<<,urriB&s8N'!qYpQr!;lcs!!)ut!<<,orrE*"qYpQr!<)p#!!*$!!<)p#
-!!*$!!;c]r!!)ut('"@7!!*$!!<3$!rr<'!!!*$!!<3$!rVm!#!<3$!rVm!#!<3$!
-qZ$?k!ri6#rVllu!<)ou!!)ut!<<,rrrE*"rVllu!;HNj!<)ou!!)He!rr?$s7lWq
-s8Voq!ri6#rVllu!;HKo!!)cn!<<,us7lWss8N'!qYpQr!;lfl!;HKo!!)lq!<<,u
-rr`<%rr<&trr`<%rr<&qrrE*"rVm'%!<3$!s8W#t"TJH%s8W&u"98B$!<)p#!!*$!
-!<)p"!!*'!qZ-?i!<<,urrE*"rVllu!<)ou!!)lqq#L*f!<<,srrE*"o)A[irr3-%
-!<<'!!;c]r!!)ut"98H%!!)ut!<<,orrE*"p\t6o!<)ou!!)ip!<<,rrrE*"qu6Zs
-!:g'i!!)rs!s&?$!<)p#!!*$!!<)p#!!*$!!;c]r!!)ut"98H%!!*#urW!$"!!)lq
-!<<,urr`<%rr<&trrE*"qYpQr!;HKo!!)ut!<<,urrE*"rVllu!;c]r!!)Kf!<<,s
-rrE*"o)Agm!<3$!rVllu!<3!$!!*$!!<3#t!!<0#!<)ou!!)cn!<<,orrE*"r;Qct
-!<3!%!!*'!!!)lq!<<,rrrE*"rr3!!!<)ou!!)rs!<<-!rs8Z*s8N'!s8N'!rr39)
-!<<'!!<<'!!;ZX$!!*'!!!*'!!!*#urW!'#rr<&ursJf,s8N'!s8N'!s8W&u#QOf(
-!<<'!!<)ou!!)cn!<<,urrE*"rVllu!;uit!!*#u"TSQ&rr<&urrE*"rVllu!;lcs
-!!)or!<<,is8E#qs82lrs8;p$rr<'!!!)ut!<<,orrE*"q>^<lrVucqrr3!!!;c]r
-!!)ipquH]qr;ccqquH]qr;ccqr;cisq>gKor;cis!<<,urrE*"rr;lrrVufrrr3$"
-!<<#urVu`ppAY-n!<)p"!!*'!qZ-TpquH]qquH]qr;ccq!<<,srrE*"NW0"Z!.t7A
-rrE*"K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)a@#
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/jpcoulon.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 278 17
+% created by bmeps 1.54
+/pstr
+ 278 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+278 25 scale
+278 25 8 [278 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)`I_r;bUPq>gHn!<<,Fs82lq
+s8;rsrrE*"rVm!#!<3$!q#C9mrr3!!!<)ou!!*#ur;cNj!<<,TrrE*"huEWTl2Lba
+!8IMS!!)ut!<<,urrE*"ci4"G!<3!-!!*'!!!*'!!!*'!!!)ut"98H%!!)ip#64c(
+rr<'!s8E#trs8Z*s8N'!s8N'!pAY-n!8RST!!(sW"TSQ&rr<&arrE*"g]%9S!<)ou
+!!(1A!<<,trrW9$!!)ut"98H%!!)ut"98H%!!)lq!<<,urrN0#s8;p%s8N'!rr<&t
+rrE*"p\t6o!4i+5!!*'!!!)<a!<<,us8;rqs82j"s8N'!s8E#krrE*"rVllu!<3#t
+!;lfp!<3!"!!*&t!!N?%!!*&t!<)rr!;6?m!!)lq!<<,urr`<%rr<&trr`<%rr<&q
+rrE*"rVlp!!<;ut#ljo)!<3$!s8W#trr;osrr3$"!<<#urVu`ppAY0o!<<#ur;Z`r
+qu?QorVufroD\gk!;uiu!!*&t!:p-j!!*#u"TSQ&rr<&urrE*"rr3$"!<<#u"98B$
+!;?Hh!;uit!!)rs"TSQ&rr<&us8E!%s8N'!s8W&u$ig5,!<<'!!<<'!!;?En!!)lq
+!<<,urr`<%rr<&trr`<%rr<&qrrE*"rVml<!<3$!rr<'!!!*$!!<3$!rr<'!rr<'!
+rr<'!s8E!'s8N'!s8N'!rVllu!;HNm!!E9$!!)rs!<<,trrE*"rr39)!<<'!!<<'!
+!;-9l!!)orrW!'#rr<&jrriB&s8N'!rVllu!;c]u!!*$!!<)p!!!*&p!!<0#!;HKo
+!!)ut!<<,urriB&s8N'!qYpQr!;lcs!!)ut!<<,orrE*"qYpQr!<)p#!!*$!!<)p#
+!!*$!!;c]r!!)ut('"@7!!*$!!<3$!rr<'!!!*$!!<3$!rVm!#!<3$!rVm!#!<3$!
+qZ$?k!ri6#rVllu!<)ou!!)ut!<<,rrrE*"rVllu!;HNj!<)ou!!)He!rr?$s7lWq
+s8Voq!ri6#rVllu!;HKo!!)cn!<<,us7lWss8N'!qYpQr!;lfl!;HKo!!)lq!<<,u
+rr`<%rr<&trr`<%rr<&qrrE*"rVm'%!<3$!s8W#t"TJH%s8W&u"98B$!<)p#!!*$!
+!<)p"!!*'!qZ-?i!<<,urrE*"rVllu!<)ou!!)lqq#L*f!<<,srrE*"o)A[irr3-%
+!<<'!!;c]r!!)ut"98H%!!)ut!<<,orrE*"p\t6o!<)ou!!)ip!<<,rrrE*"qu6Zs
+!:g'i!!)rs!s&?$!<)p#!!*$!!<)p#!!*$!!;c]r!!)ut"98H%!!*#urW!$"!!)lq
+!<<,urr`<%rr<&trrE*"qYpQr!;HKo!!)ut!<<,urrE*"rVllu!;c]r!!)Kf!<<,s
+rrE*"o)Agm!<3$!rVllu!<3!$!!*$!!<3#t!!<0#!<)ou!!)cn!<<,orrE*"r;Qct
+!<3!%!!*'!!!)lq!<<,rrrE*"rr3!!!<)ou!!)rs!<<-!rs8Z*s8N'!s8N'!rr39)
+!<<'!!<<'!!;ZX$!!*'!!!*'!!!*#urW!'#rr<&ursJf,s8N'!s8N'!s8W&u#QOf(
+!<<'!!<)ou!!)cn!<<,urrE*"rVllu!;uit!!*#u"TSQ&rr<&urrE*"rVllu!;lcs
+!!)or!<<,is8E#qs82lrs8;p$rr<'!!!)ut!<<,orrE*"q>^<lrVucqrr3!!!;c]r
+!!)ipquH]qr;ccqquH]qr;ccqr;cisq>gKor;cis!<<,urrE*"rr;lrrVufrrr3$"
+!<<#urVu`ppAY-n!<)p"!!*'!qZ-TpquH]qquH]qr;ccq!<<,srrE*"NW0"Z!.t7A
+rrE*"K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)a@#
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.png
deleted file mode 100644
index d49f8294138..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/jpcoulon.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.eps
deleted file mode 100644
index 8d550d14366..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.eps
+++ /dev/null
@@ -1,44 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 197 25
-%
-% created by bmeps 1.2.7 (SCCS=1.78)
-%
-/pstr
- 197 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-197 25 scale
-197 25 8 [197 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&aoD>?nc&Ui!8%8M!;lfp!;lcs!!(UMr;bLM
-!<<,arrE*"nc&Ui!9sLa!!)Ng!<<,trriB&s8N'!r;Qct!:p-j!!)6_"TSQ&rr<&P
-rrE*"qu6Zs!:g'i!!(XN!<<,hrrE*"rVllu!<)ou!!)Bc!<<,`rriB&s8N'!dJj4I
-!:g'i!!)ut!<<,urrE*"rr;rtqu?QorVucq!WW2s!;ulp!;uit!!)ut!rr?$s8;rs
-s8E#srrN0#s8E#ts8)fos8;rsrrN0#s8;rrrrE*"r;Qfu!<;utrVufrr;Z]qoDedi
-rVu`poD\gk!<)ou!!)ut!<<,urrE*"r;Qct!<3!%!!*'!!!*#u!<<-!rrE*"qu6Zs
-!<3!!!!)ut!<<,urs&N(rr<'!!!)ut!<<,us8E!#s8N'!rVllu!;ld"!!*'!!!*#u
-rW!'#rr<&urrE*"qu?Wq$ig5,!<<'!!<<'!!<3!%!!*'!!!)Wj!<<,srrE*"nc&Ui
-!<)ou!!)ut!<<,urrE*"rVllu!;-9l!!*#u!<<,nrrE*"rVllu!<)p&!!*$!!<3$!
-rVllu!<)ou!!)ut!<<-!rrE*"r;Qct!<)p$!!*'!!!)orqZ-Tp!<<,srrE*"rVm!#
-!<3$!rVllu!;-9l!!)or!<<,irrE*"rVllu!<)ou!!)ut!<<,urrE*"q>^9krr3!!
-!;lfm!<)ou!!)ut!rr?$s8E#rrrE*"rVllu!<)ou!!*#u!<<,ts7lWss8N'!q>UHq
-!;lcs!!)orq#CEpq#L'e!<<,srrE*"nc&Ui!<)ou!!)ut!<<,urrE*"rVllu!;c]r
-!!)ut!<<-!rrE*"r;Qct!<)ou!!)ut!<<,urrE*"p\t6o!<)ou!!)ut!<<-!rrE*"
-r;Qct!;ZWq!!)ip!<<,srrE*"qu6Zs!;c]r!!)He!<<,srrE*"nc&Ui!;uj!!!*'!
-rW)os!<<,trrE*"rr3*$!<3$!rr;rtrr36(!<<'!!<3$!rr;rtrVllu!;uit!!*#u
-!<<,urrE*"rVllu!<)ou!!*#u#lju*rr<'!rr<&urriB&s8N'!q>UHq!;lcs!!)lq
-!<<-!rriB&s8N'!rr3!!!<)ou!!)lq!<<,srriB&s8N'!pAb'kr;Z`r"TJH%s8Vrr
-rVucqrr;os!ri6#rVufrrr;os!ri6#rr;osr;ZZprr;iq"98B$!<)ou!!)utr;cfr
-quH`r!<<,qrrE*"qu6Zs!;ZZm!<)rq!<)rr!<)rp!;ulq!.t6urrE*"K)^H&K)^H&
-K)^H&K)^H&K)`Rb
-~>
-grestore
-currentdict /inputf undef
-currentdict /pstr undef
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.png
deleted file mode 100644
index 1630a5d1673..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/lcataldi.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.eps
index 9aa46996b98..b395ff337b9 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.eps
@@ -1,46 +1,46 @@
-%% LaTeX2e file `addresses/mcodogno.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 188 17
-% created by bmeps 1.54
-/pstr
- 188 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-188 25 scale
-188 25 8 [188 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&SH&Nfo)A^j!9jF`!!(@F!<<,3rrE*"o)Ajn
-!<<'!!<)ou!!)ip!<<,`rrE*"qu6Zs!8%5O!!'Y2!<<,krrE*"rVllu!<3!!!!(UM
-!<<,lrrN0#s8E#trrE*"rVm$$!<3$!s8E#ts8)fos8;rsrrrK'!!*$!!<)rq!!E9$
-!!)ut"TSQ&!!*&u!<3!!!!)ut"TSQ&!!*&u!<3#q!;ulq!<3!#!!*'!r;ZitqZ-Qo
-rW)os!WW6#rW)QirW)osqZ-?irW!3'rr<'!rr<&trrN0#s8E!#s8N'!rVllu!;ld0
-!!*'!!!*'!!!*$!!<3$!s8N'!rr3*$!<3$!rVlp!!<<#u#QOf(!<<'!!<)p!!!*&u
-!!E9$!!)ut!<<,srso)0s8N'!s8N'!rr<'!!!*#u!<<,qrrE*"rVuis"98B$!;$3k
-!!)or!<<,lrrE*"rVm!#!<3$!rVm!#!<3$!rVllu!<3!!!!)rs!<<,ursA`+rr<'!
-!!*$!!;c]u!!*$!!<)p#!!*$!!<)p#!!*$!!<)p#!!*$!!<)ou!!*#u!<<,trrE*"
-rVm3)!<3$!rr<'!!!*#u!<<,qrrE*"rVllu!<)ou!!)Zk!<<,srrE*"o`"pl!<)p#
-!!*$!!<)p#!!*$!!<)ou!!*#u!<<,trrE*"rVm9+!<3$!rr<'!!!*'!q>^Ts!!)ut
-"98H%!!)ut"98H%!!)ut"98H%!!)ut!<<-!rrE*"r;Qct!<)p%!!*$!!<<)u!<)ou
-!!)ip!<<,urrE*"rVllu!;-9l!!)or!<<,lrrE*"rVm!#!<3$!rVm!#!<3$!rVllu
-!<3!!!!)rs!<<,urs\r.rr<'!!!*$!!<3$!rVm!#!<3$!rVm!#!<3$!rVm!#!<3$!
-rVm!#!<3$!rVllu!<3!!!!)rs!<<,urr`<%rr<&orrE*"q>UHq!<)ou!!)ut!<<,l
-rrE*"qu6Zs!;-<j!!E9$!!*#u!rr?$s8E!"rr<&trrE*"rr3l:!<<'!!<<'!!<<'!
-!<<'!!<3$!rr<'!!!*#urW!-%rr<'!s8Duus8E!#s8N'!rr3'#!<<)u!!<0#!<)ou
-!!*#u%0-D.rr<'!rr<'!rr<&urrE*"rr3!!!<3!%!!*'!!!)ut!<<,urrE*"rVllu
-!<)ou!!)lq!<<,srriB&s8N'!q#:Bq!<<#ur;Z`r"oeQ&rr<&trrE*"rVufrrVufr
-rr39)!<3$!rr<'!s8;p!rr<&us8E!&rr<'!!!*&u!;ulr!!WB&!<3$!rVllu!<)rr
-!<)rr!;ulp!;ulq!<3#q!!E9$!!)ut!<<-!s8;rrs8)fos8;rlrrE*"]Dhm3!3cD'
-!!)'Z!<<,3rrE*"K)^H&K)^H&K)^H&K)^H&h>[
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/mcodogno.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 188 17
+% created by bmeps 1.54
+/pstr
+ 188 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+188 25 scale
+188 25 8 [188 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&SH&Nfo)A^j!9jF`!!(@F!<<,3rrE*"o)Ajn
+!<<'!!<)ou!!)ip!<<,`rrE*"qu6Zs!8%5O!!'Y2!<<,krrE*"rVllu!<3!!!!(UM
+!<<,lrrN0#s8E#trrE*"rVm$$!<3$!s8E#ts8)fos8;rsrrrK'!!*$!!<)rq!!E9$
+!!)ut"TSQ&!!*&u!<3!!!!)ut"TSQ&!!*&u!<3#q!;ulq!<3!#!!*'!r;ZitqZ-Qo
+rW)os!WW6#rW)QirW)osqZ-?irW!3'rr<'!rr<&trrN0#s8E!#s8N'!rVllu!;ld0
+!!*'!!!*'!!!*$!!<3$!s8N'!rr3*$!<3$!rVlp!!<<#u#QOf(!<<'!!<)p!!!*&u
+!!E9$!!)ut!<<,srso)0s8N'!s8N'!rr<'!!!*#u!<<,qrrE*"rVuis"98B$!;$3k
+!!)or!<<,lrrE*"rVm!#!<3$!rVm!#!<3$!rVllu!<3!!!!)rs!<<,ursA`+rr<'!
+!!*$!!;c]u!!*$!!<)p#!!*$!!<)p#!!*$!!<)p#!!*$!!<)ou!!*#u!<<,trrE*"
+rVm3)!<3$!rr<'!!!*#u!<<,qrrE*"rVllu!<)ou!!)Zk!<<,srrE*"o`"pl!<)p#
+!!*$!!<)p#!!*$!!<)ou!!*#u!<<,trrE*"rVm9+!<3$!rr<'!!!*'!q>^Ts!!)ut
+"98H%!!)ut"98H%!!)ut"98H%!!)ut!<<-!rrE*"r;Qct!<)p%!!*$!!<<)u!<)ou
+!!)ip!<<,urrE*"rVllu!;-9l!!)or!<<,lrrE*"rVm!#!<3$!rVm!#!<3$!rVllu
+!<3!!!!)rs!<<,urs\r.rr<'!!!*$!!<3$!rVm!#!<3$!rVm!#!<3$!rVm!#!<3$!
+rVm!#!<3$!rVllu!<3!!!!)rs!<<,urr`<%rr<&orrE*"q>UHq!<)ou!!)ut!<<,l
+rrE*"qu6Zs!;-<j!!E9$!!*#u!rr?$s8E!"rr<&trrE*"rr3l:!<<'!!<<'!!<<'!
+!<<'!!<3$!rr<'!!!*#urW!-%rr<'!s8Duus8E!#s8N'!rr3'#!<<)u!!<0#!<)ou
+!!*#u%0-D.rr<'!rr<'!rr<&urrE*"rr3!!!<3!%!!*'!!!)ut!<<,urrE*"rVllu
+!<)ou!!)lq!<<,srriB&s8N'!q#:Bq!<<#ur;Z`r"oeQ&rr<&trrE*"rVufrrVufr
+rr39)!<3$!rr<'!s8;p!rr<&us8E!&rr<'!!!*&u!;ulr!!WB&!<3$!rVllu!<)rr
+!<)rr!;ulp!;ulq!<3#q!!E9$!!)ut!<<-!s8;rrs8)fos8;rlrrE*"]Dhm3!3cD'
+!!)'Z!<<,3rrE*"K)^H&K)^H&K)^H&K)^H&h>[
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.png
deleted file mode 100644
index 84f5e172873..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/mcodogno.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.eps
deleted file mode 100644
index e92ea232775..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.eps
+++ /dev/null
@@ -1,55 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 314 25
-%
-% created by bmeps 1.2.5 (SCCS=1.77)
-%
-/pstr
- 314 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-314 25 scale
-314 25 8 [314 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&g&D'Q!:p0g!;lcs
-!!)Wj!<<,prrE*"`;]i<!7:`H!!)cn!<<,5rrE*"_uB`;!;$3o!!*'!!!)rs!<<,k
-rrE*"q#:?p!6"m<!!(CG!<<,orrE*"^&J*5!4;b,!!)ut!<<,errE*"LAq8S!42_&
-!;ulq!<3!!!!)ut!<<,orsAc+!!*$!!<<'!!<)p"!!*'!qZ-TprW)iqqu?p#rr<'!
-s8;rss8E#qs82lrrriB&s8N'!rVuisrVlp!!<<#urVucq!WN/orsAc+!!*$!!<<'!
-!<)p"!!*'!qZ-TprW)iqquHBhqu?m"rr<'!r;cfrqu?m"rr<'!rW)lrrW)os!<<,u
-rrE*"rr;osoDeahrr3$"!<;utrr;lr!WN/nrrE*"qu6g"!<<'!!<3!%!!*'!!!)`m
-$31)+!!*$!!<3$!rVm!#!<3$!rVllu!<)ou!!)rs!<<-!rsA`+rr<'!!!*$!!<)ou
-!!)rs!<<-!rs/T)s8N'!rr<&rrrE*"rVuis#QOf(!<<'!!<3#t!;HL#!!*$!!<3$!
-rr<&trr`<%rr<&trrE*"rVllu!;uit!!*#u!<<,nrrE*"rr3'#!<<)u!!iQ(!!*'!
-!!*#u!WW6#rW!'#rr<&srrE*"rVllu!<)p(!!*'!!!*'!!!)]l"TSQ&rr<&us8E!&
-s8N'!rr<&us8E#lrrE*"r;Qct!<)ou!!*#ur;cisq#Cg&!!*$!!<3$!rr<&trr`<%
-rr<&nrrE*"rVllu!;c^#!!*$!!<3$!rVllu!<)ou!!)ipr;c]o!<<,urrE*"rVm!#
-!<3$!rr3'#!<<)p!"8f,!<3$!rr<'!!!)ut"98H%!!)cn!<<,urrE*"qZ$?kqYp^!
-!<<'!!;lcs!!)lq!<<,urrE*"rVllu!;uj'!!*'!!!*'!!!)ut!<<,orrE*"rVm$$
-!<<'!!;lcs!!*#u!<<,mrrE*"r;ZQmrVllu!;-9u!!*$!!<3$!rr<&trrW6$s8Vrr
-r;Qct!<)ou!!)lq!rr?$s8E#rrrE*"rVllu!;ZZn!;c]r!!)ut!<<,urr`<%rr<&u
-rrE*"pAYI"!<3$!rr<'!!!)ut!rr?$s8)forrE*"rVllu!:^$b!!E9$!!)or!<<,r
-rrE*"rVllu!<)ou!!)rs#64c(rr<'!s7lZhrrE*"rVm$$!<<'!!;lcs!!*#u!<<,m
-rrE*"r;Qct!;QTm!;6@!!!*$!!<3$!rr<&trrE*"qYpQr!<)ou!!)ut!<<,rrrE*"
-p\t6o!<)ou!!)ip"98H%!!)or!<<,urrE*"rVls"!<<)s!;6@!!!*$!!<3$!rr<&t
-rrE*"qYpQr!<)ou!!)ut!<<,irrE*"rVm$$!<<'!!;lcs!!)lq!<<,urrE*"rVllu
-!;lfp!<3!!!!)Qh!<<,urriB&s8N'!qZ$Hno`#3t!<<'!!<<'!!<3!)!!*'!!!*'!
-!!)`m%0-D.!!*$!!<<'!!<<)u!!<0#!<)ou!!)ut!<<,trrE*"rr3-%!<<'!!<3!!
-!!)ut!<<,trrE*"rr39)!<<'!!<<'!!;uit!!)ut!<<,urr`<%rr<&hrs\r.rr<'!
-!!*'!!!*'!rW!$"!!)ut!<<,urrE*"r;Qct!<3!!!!)cn!<<-!s8E!#s8N'!qYpQr
-!<3!$!!*$!!<)ou!!)ut!<<,ss8;rrrrE*"rr3!!!<)ou!!)rs"TSQ&rr<&urrE*"
-qu6Zs!:Tsd!<)rq!!E9$!!)ut!<<,ors&N(rr<'!!!*#urW!*$!!*'!qZ-WqqZ-Tp
-quH]qquH`rqZ-TpquH`r!<<-!rrW6$s8Vrr"98B$!<)p"!!*'!qZ-?i#64c(!!*$!
-!<3#t!!N<%!<<)r!<3#q!<)rq!;6Bj!!`H'!<<'!!;ZZm!!E9$!!)ut!rr?$s8)fo
-rrE*"qu?QorVufrr;Z]qrVllu!;c`m!.t7>rrE*"rVllu!.t7MrrE*"li-tc!<)ou
-!!%WNn,N7bK)ap3qZ)6JK)^H&K)^H&K)^H&K)^H&K)^H&K)a$o
-~>
-grestore
-currentdict /inputf undef
-currentdict /pstr undef
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.pdf b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.pdf
deleted file mode 100644
index 8599e27106d..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.png
deleted file mode 100644
index 86e36727bff..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/musiclist.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.eps
index f1f836a706e..782be858c02 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.eps
@@ -1,48 +1,48 @@
-%% LaTeX2e file `addresses/noack.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 215 17
-% created by bmeps 1.54
-/pstr
- 215 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-215 25 scale
-215 25 8 [215 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)_,9!<<,qs8;rprrE*"c2ReE!;-9l!!'b5
-!<<,BrrE*"qYp^!!<<'!!;uit!!)or!<<,MrrE*"o`"pl!5AI6!!(1A!<<,srrE*"
-rVllu!;6?m!!(%=!<<,6rrE*"n,EFh!<<#ur;Z]qr;ZZprVucqrr3?+!<<'!!<<'!
-!<<)t!<3#t!<)rp!<3!"!!*&u!;6?m!!)ut"TSQ&!!*&u!;ulr!;-9m!!*&u!<3!"
-!!*&t!<)rr!<3!&!<3$!rr<&ts8;rsrrN0#s8E#is8E!"rr<&us8;rks8E!#s8N'!
-rr3-%!<<'!!<3!!!!*#u"TSQ&rr<&urs/T)s8N'!rr<&urs&N(rr<'!!!)ut!<<,s
-rrE*"r;Z`r"98B$!;?En!!)ut!WW6#rW!'#rr<&srrE*"o`+mj"98B$!<3#t!$D7@
-!!*'!!!*'!!!*'!!!*$!!<3$!s8N'!s8N'!s8W&u"98B$!;6?o!!*'!rW!3'rr<'!
-rr<&nrrE*"rVm!#!<3$!rVllu!;c]u!!*$!!;ZZn!<)p&!!*$!!<3$!rVllu!;lcs
-!!)rs!<<,urrE*"p\t6o!<)p#!!*$!!<)ou!!)ut!<<,us7lWrrr<&trriB&s8N'!
-qu6Zs!<)p,!!*$!!<3$!rr<'!!!)ut"98H%!!)ut!<<,orrE*"rVm!#!<3$!rVllu
-!;QQp!!)ut"98H%!!)ut!rr?$s7u]srr<&ps8;rrrrW6$s8W&ur;Qct!;lcs!!)rs
-!<<,urrE*"p\t6o!<)p#!!*$!!<)ou!!)ut!<<,lrrE*"rVm$$!<<'!!;lfl!"&Z*
-!<3$!rr<'!q#CKr!!)ut!<<,orrE*"rVlp!!<;ipq#:?p!<)p#!!*$!!<)p#!!*$!
-!<)p#!!*$!!;ZWt!!*$!!<3!!!!)cn!<<,srrE*"r;Qct!<)ou!!)cn!<<,urr`<%
-rr<&trrE*"rVllu!;-9l!!)ut"TSQ&rr<&rrrE*"qYpm&!<3$!rr<'!!!)lq!<<,u
-rrE*"p\t6o!<)p#!!*$!!:p-j!!)ut%0-D.rr<'!rr<'!rr<&us8E!#s8N'!rr39)
-!<<'!!<<'!!<3!!!!*#u!<<,urrE*"qu6j#!<<'!!<<#u"98B$!;uit!!)rs!rr?$
-s8E!"rr<&trrE*"rVllu!;-<j!!E9$!!*#u!<<,rrrE*"rr3H.!<3$!rr<'!!!*'!
-!!*#u"98H%!!)ut!<<,urrE*"r;Qj!!<<)u!!E9$!!*#u!<<,prrE*"rVllu!<3#s
-!<)rr!!<0#!<3#r!<3!!!!*#u!<<-!s82lrs8)fos8;p#s8N'!s8E#rs8;rqs8E!%
-rr<'!!!)ut!rr?$s8)firrN0#s8E#srrE*"q>^?m$31#*!<3$!rr<&us82j!s8N'!
-rVllu!<3#s!;ulr!!<0#!<3#r!3cD'!!)cn!<<+mrrE*"S,WKh!.t6&s+:9&s+:9&
-s+:9&s+:9^rr
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/noack.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 215 17
+% created by bmeps 1.54
+/pstr
+ 215 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+215 25 scale
+215 25 8 [215 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)_,9!<<,qs8;rprrE*"c2ReE!;-9l!!'b5
+!<<,BrrE*"qYp^!!<<'!!;uit!!)or!<<,MrrE*"o`"pl!5AI6!!(1A!<<,srrE*"
+rVllu!;6?m!!(%=!<<,6rrE*"n,EFh!<<#ur;Z]qr;ZZprVucqrr3?+!<<'!!<<'!
+!<<)t!<3#t!<)rp!<3!"!!*&u!;6?m!!)ut"TSQ&!!*&u!;ulr!;-9m!!*&u!<3!"
+!!*&t!<)rr!<3!&!<3$!rr<&ts8;rsrrN0#s8E#is8E!"rr<&us8;rks8E!#s8N'!
+rr3-%!<<'!!<3!!!!*#u"TSQ&rr<&urs/T)s8N'!rr<&urs&N(rr<'!!!)ut!<<,s
+rrE*"r;Z`r"98B$!;?En!!)ut!WW6#rW!'#rr<&srrE*"o`+mj"98B$!<3#t!$D7@
+!!*'!!!*'!!!*'!!!*$!!<3$!s8N'!s8N'!s8W&u"98B$!;6?o!!*'!rW!3'rr<'!
+rr<&nrrE*"rVm!#!<3$!rVllu!;c]u!!*$!!;ZZn!<)p&!!*$!!<3$!rVllu!;lcs
+!!)rs!<<,urrE*"p\t6o!<)p#!!*$!!<)ou!!)ut!<<,us7lWrrr<&trriB&s8N'!
+qu6Zs!<)p,!!*$!!<3$!rr<'!!!)ut"98H%!!)ut!<<,orrE*"rVm!#!<3$!rVllu
+!;QQp!!)ut"98H%!!)ut!rr?$s7u]srr<&ps8;rrrrW6$s8W&ur;Qct!;lcs!!)rs
+!<<,urrE*"p\t6o!<)p#!!*$!!<)ou!!)ut!<<,lrrE*"rVm$$!<<'!!;lfl!"&Z*
+!<3$!rr<'!q#CKr!!)ut!<<,orrE*"rVlp!!<;ipq#:?p!<)p#!!*$!!<)p#!!*$!
+!<)p#!!*$!!;ZWt!!*$!!<3!!!!)cn!<<,srrE*"r;Qct!<)ou!!)cn!<<,urr`<%
+rr<&trrE*"rVllu!;-9l!!)ut"TSQ&rr<&rrrE*"qYpm&!<3$!rr<'!!!)lq!<<,u
+rrE*"p\t6o!<)p#!!*$!!:p-j!!)ut%0-D.rr<'!rr<'!rr<&us8E!#s8N'!rr39)
+!<<'!!<<'!!<3!!!!*#u!<<,urrE*"qu6j#!<<'!!<<#u"98B$!;uit!!)rs!rr?$
+s8E!"rr<&trrE*"rVllu!;-<j!!E9$!!*#u!<<,rrrE*"rr3H.!<3$!rr<'!!!*'!
+!!*#u"98H%!!)ut!<<,urrE*"r;Qj!!<<)u!!E9$!!*#u!<<,prrE*"rVllu!<3#s
+!<)rr!!<0#!<3#r!<3!!!!*#u!<<-!s82lrs8)fos8;p#s8N'!s8E#rs8;rqs8E!%
+rr<'!!!)ut!rr?$s8)firrN0#s8E#srrE*"q>^?m$31#*!<3$!rr<&us82j!s8N'!
+rVllu!<3#s!;ulr!!<0#!<3#r!3cD'!!)cn!<<+mrrE*"S,WKh!.t6&s+:9&s+:9&
+s+:9&s+:9^rr
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.png
deleted file mode 100644
index b43376c64af..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/noack.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.eps
index f135a955cad..56fb446e95a 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.eps
@@ -1,48 +1,48 @@
-%% LaTeX2e file `addresses/ovogel.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 224 17
-% created by bmeps 1.54
-/pstr
- 224 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-224 25 scale
-224 25 8 [224 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&k5YD\qYpQr!:g'i!!("<rW)iqr;c`p
-r;ak;r;c6b!<<,^rrE*"qYpQr!:g'i!!'t;!<<,trriB&s8N'!rVm$$!<<'!!6G0D
-!!*'!!!)He!<<,^rrE*"WW)u!!<)ou!!)ut!<<-!rriB&s8N'!aSuDD!<<'!!:Kjf
-!!)Ngr;c`p!<<,ss8E#srrE*"rVllu!<3#t!;lfp!<3!"!!*&t!!E9$!!)ut!<<-!
-s8;rrs82itrrE&ur;c`p!<<,urrW6$s8W#trr3!!!;uiu!!*&t!<)rr!;ulq!<)rp
-!!E9$!!)ut"TSQ&!!*&t!<)ou!!)Qhqu?m"rr<'!rW)Wk"TSQ&rr<&srrE*"qYpQr
-!<)ou!!)ut!<<,urrE*"r;Qp#!<<'!!<3#t!!`K'!!*$!!<)p,!!*'!!!*'!!!*'!
-!!*#urW!3'rr<'!rr<&srrE*"rVm*&!<3$!rr<&urrE*"qu?Wq$ig5,!<<'!!<<'!
-!<3!)!!*'!!!*'!!!)ut"98H%!!)ut!rr?$s8E!#s8N'!rr3!!!:p-j!!*#u!WW6#
-rW!'#rr<&nrrE*"rVllu!<)ou!!)lq!<<,trriB&s8N'!r;Qct!<)ou!!)ut"TSQ&
-rr<&qrs8Z*s8N'!s8N'!rVm!#!<3$!rr3-%!<<'!!<)ou!!)ut!<<,urs/T)rr<'!
-!!*&r!<)ou!!)or!<<,urr`<%rr<&trr`<%rr<&qrrE*"rVm$$!<<'!!;lfn!;6?m
-!!)lq!<<,urrE*"q#:?p!<)ou!!)ut!<<,rrrE*"r;Qp#!<<'!!;uit!!)utq#CNs
-rr<&qrs8Z*s8N'!s8N'!rVm!#!<3$!rr3'#!<<)p!<)ou!!)ut!rr?$s8E#srrE*"
-qu6Zs!;lfl!!*&p!!3-"qZ$`urr<&trriB&s8N'!q>UHq!;$3k!!)lq!<<,urrE*"
-q#:?p!<)ou!!)ut!<<,rrrE*"qu?Tpqu6Zs!<)ou!!)ip!<<,qs8;rsrrE*"rVls"
-!<<)s!<3!!!!)cn!<<,urrE*"q#:?p!;lcs!!)or!<<,rrrE*"o`#$o!<3$!rVm$$
-!<<'!!;ZWq!!)Wj!<<,rrrE*"rVllu!;HKs!!*'!!!)rs!<<,rrrE*"qu?Tpqu6Zs
-!;uit!!*#u"TSQ&rr<&ps8;rrrs8Z*s8N'!s8N'!q>UHq!<3!!!!)ut!<<,trrE*"
-rr3!!!<3!!!!)or!<<,rrrE*"rr3-%!<<'!!<3!$!!*$!!<)p&!!*'!!!*'!rW!'#
-rr<&prrE*"q>UHq!;uit!!*#u"98H%!!)ut!<<,ns8;rqs8;rrs8)forrE*"r;ZWo
-rVucqrr3!!!;QQp!!)orr;cfrqZ-TpquH]qr;ccqquH]q!<<,srrE*"q>^?mrVucq
-rr;iqrVuis#6+Z's8N'!q>UHq!;c`o!;ulp!!E9$!!)ut!<<+trrE*"rVllu!1Nog
-!!&/]qZ)6JK)^H&K)^H&K)^H&K)^H&P5b
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/ovogel.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 224 17
+% created by bmeps 1.54
+/pstr
+ 224 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+224 25 scale
+224 25 8 [224 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&k5YD\qYpQr!:g'i!!("<rW)iqr;c`p
+r;ak;r;c6b!<<,^rrE*"qYpQr!:g'i!!'t;!<<,trriB&s8N'!rVm$$!<<'!!6G0D
+!!*'!!!)He!<<,^rrE*"WW)u!!<)ou!!)ut!<<-!rriB&s8N'!aSuDD!<<'!!:Kjf
+!!)Ngr;c`p!<<,ss8E#srrE*"rVllu!<3#t!;lfp!<3!"!!*&t!!E9$!!)ut!<<-!
+s8;rrs82itrrE&ur;c`p!<<,urrW6$s8W#trr3!!!;uiu!!*&t!<)rr!;ulq!<)rp
+!!E9$!!)ut"TSQ&!!*&t!<)ou!!)Qhqu?m"rr<'!rW)Wk"TSQ&rr<&srrE*"qYpQr
+!<)ou!!)ut!<<,urrE*"r;Qp#!<<'!!<3#t!!`K'!!*$!!<)p,!!*'!!!*'!!!*'!
+!!*#urW!3'rr<'!rr<&srrE*"rVm*&!<3$!rr<&urrE*"qu?Wq$ig5,!<<'!!<<'!
+!<3!)!!*'!!!*'!!!)ut"98H%!!)ut!rr?$s8E!#s8N'!rr3!!!:p-j!!*#u!WW6#
+rW!'#rr<&nrrE*"rVllu!<)ou!!)lq!<<,trriB&s8N'!r;Qct!<)ou!!)ut"TSQ&
+rr<&qrs8Z*s8N'!s8N'!rVm!#!<3$!rr3-%!<<'!!<)ou!!)ut!<<,urs/T)rr<'!
+!!*&r!<)ou!!)or!<<,urr`<%rr<&trr`<%rr<&qrrE*"rVm$$!<<'!!;lfn!;6?m
+!!)lq!<<,urrE*"q#:?p!<)ou!!)ut!<<,rrrE*"r;Qp#!<<'!!;uit!!)utq#CNs
+rr<&qrs8Z*s8N'!s8N'!rVm!#!<3$!rr3'#!<<)p!<)ou!!)ut!rr?$s8E#srrE*"
+qu6Zs!;lfl!!*&p!!3-"qZ$`urr<&trriB&s8N'!q>UHq!;$3k!!)lq!<<,urrE*"
+q#:?p!<)ou!!)ut!<<,rrrE*"qu?Tpqu6Zs!<)ou!!)ip!<<,qs8;rsrrE*"rVls"
+!<<)s!<3!!!!)cn!<<,urrE*"q#:?p!;lcs!!)or!<<,rrrE*"o`#$o!<3$!rVm$$
+!<<'!!;ZWq!!)Wj!<<,rrrE*"rVllu!;HKs!!*'!!!)rs!<<,rrrE*"qu?Tpqu6Zs
+!;uit!!*#u"TSQ&rr<&ps8;rrrs8Z*s8N'!s8N'!q>UHq!<3!!!!)ut!<<,trrE*"
+rr3!!!<3!!!!)or!<<,rrrE*"rr3-%!<<'!!<3!$!!*$!!<)p&!!*'!!!*'!rW!'#
+rr<&prrE*"q>UHq!;uit!!*#u"98H%!!)ut!<<,ns8;rqs8;rrs8)forrE*"r;ZWo
+rVucqrr3!!!;QQp!!)orr;cfrqZ-TpquH]qr;ccqquH]q!<<,srrE*"q>^?mrVucq
+rr;iqrVuis#6+Z's8N'!q>UHq!;c`o!;ulp!!E9$!!)ut!<<+trrE*"rVllu!1Nog
+!!&/]qZ)6JK)^H&K)^H&K)^H&K)^H&P5b
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.png
deleted file mode 100644
index 2d38c6e0437..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/ovogel.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/png2eps.bat b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/png2eps.bat
deleted file mode 100755
index 7341ffea54f..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/png2eps.bat
+++ /dev/null
@@ -1,19 +0,0 @@
-@echo off
-rem converts png to eps
-rem (image must have square pixels, x resolution = y resolution)
-rem
-rem 2003-04-09 Thomas Henlich
-rem
-rem requires: pngtopnm pnmtotiff tiff2ps
-rem
-rem Usage:
-rem png2eps file.png height resolution file.eps
-rem height of image in pixels,
-rem resolution in dpi,
-rem both can be determined e.g. with "pngcheck -v file.png"
-
-rem Replace -packbits with the compression scheme of your choice, e. g. -lzw.
-
-C:\.user\Programme\MikTeX_2.6\miktex\bin\pngtopnm -verbose %1 | pnmtotiff -rowsperstrip %2 -xres %3 -yres %3 -packbits -indexbits=1,2,4,8 >tmp.tif
-tiff2ps -2 -e -z tmp.tif >%4
-del tmp.tif
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.eps
index 7f9a33b457a..9f087caff10 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.eps
@@ -1,45 +1,45 @@
-%% LaTeX2e file `addresses/rdunker.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 188 17
-% created by bmeps 1.54
-/pstr
- 188 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-188 25 scale
-188 25 8 [188 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&rr3!!!7UrK!!)Ed!<<,_s8;rarrE*"li-tc
-!8@GR!!(LJ!<<,errE*"kl1ed!<<'!!:Bde!!)?b!<<,"rrE*"mJd1e!9sLa!!)ut
-!<<,frrE*"li-tc!:Tph!!*&t!<)rq!<)rs!<)p!!!*&u!;ulq!<3!"!!*&t!;-<j
-!!WB&!<3$!rVm$$!<3$!s8E#srriB&s8N'!rVufrrr3$"!<;ut"onT&!<<)t!!<0#
-!<)ou!!*#ur;cis!WW6#rW)QirW!$"!!*#ur;cNjrW!3'rr<'!rr<&urrE*"rVllu
-!<)rs!!E9$!!*#u"TSQ&rr<&us8E!#s8N'!pAY3p!<<)u!!<0#!<)p!!!*&u!!E9$
-!!*#u"98H%!!)ut"TSQ&rr<&us8E!/s8N'!rr<'!!!*$!!<3$!rVm6*!<<'!!<<'!
-!<<)u!!E9$!!)]l!rr?$s8E!'s8N'!s8N'!pAY-n!;6?m!!)ut!<<,urrE*"rVm!#
-!<3$!rVm$$!<<'!!:p-j!!)ut"98H%!!)ut"98H%!!)ut!rr?$s8;rrrrE*"rVm$$
-!<<'!!;ld0!!*$!!<3$!rr<'!!!*$!!<3$!rVm!#!<3$!rVllu!;HKo!!)ut"98H%
-!!)ut!<<,orrE*"qZ$BlrVllu!<)ou!!)ut!WW6#q#CNsrr<&irrE*"rVm!#!<3$!
-rVm!#!<3$!rVls"!<<)t!<)rn!!E9$!!)or!rr?$s8E!*s8N'!rr<'!!!*&p!!<0#
-!<)ou!!)cn!<<,urrN0#s7lZhrrE*"qu6Zs!<)ou!!)ut!<<,urrE*"rVm!#!<3$!
-q>UHq!:p-j!!)ut"98H%!!)ut"98H%!!)ut#QOl)rr<'!!!*#u!<<,qrrE*"qu6Zs
-!;c^&!!*$!!<3$!rr<&qrrE*"rVllu!;HKo!!)ut"98H%!!)Qh!<<,srrE*"rr;rt
-rVllu!<)ou!!)ut"TSQ&rr<&urriB&s8N'!q#:?p!;uj!!!*'!rW!-%rr<'!s8E!"
-rr<&trs8Z*s8N'!s8N'!rr3!!!<3!%!!*'!!!)lq!<<-!rrN0#s7lWss8N'!rr3$"
-!<<#u"98B$!;uit!!)rs!rr?$s8E!#s8N'!rr3!!!;HKo!!)lqr;[!#!!*'!qZ$`u
-rr<&trrE*"rr;lrrr3!!!;ZZn!;ulr!!<0#!<3#t!!WB&!<3$!rVm$$!<<'!!<3!!
-!!*#uquH`r!<<,qs82lrrriB&s8N'!rVucq"TSK%!<<#ur;Z]qr;Z`r!ri6#rr;lr
-^Ae36!20>m!!%WNK)^H&K)^H&K)^H&K)^H&o`"
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/rdunker.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 188 17
+% created by bmeps 1.54
+/pstr
+ 188 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+188 25 scale
+188 25 8 [188 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&rr3!!!7UrK!!)Ed!<<,_s8;rarrE*"li-tc
+!8@GR!!(LJ!<<,errE*"kl1ed!<<'!!:Bde!!)?b!<<,"rrE*"mJd1e!9sLa!!)ut
+!<<,frrE*"li-tc!:Tph!!*&t!<)rq!<)rs!<)p!!!*&u!;ulq!<3!"!!*&t!;-<j
+!!WB&!<3$!rVm$$!<3$!s8E#srriB&s8N'!rVufrrr3$"!<;ut"onT&!<<)t!!<0#
+!<)ou!!*#ur;cis!WW6#rW)QirW!$"!!*#ur;cNjrW!3'rr<'!rr<&urrE*"rVllu
+!<)rs!!E9$!!*#u"TSQ&rr<&us8E!#s8N'!pAY3p!<<)u!!<0#!<)p!!!*&u!!E9$
+!!*#u"98H%!!)ut"TSQ&rr<&us8E!/s8N'!rr<'!!!*$!!<3$!rVm6*!<<'!!<<'!
+!<<)u!!E9$!!)]l!rr?$s8E!'s8N'!s8N'!pAY-n!;6?m!!)ut!<<,urrE*"rVm!#
+!<3$!rVm$$!<<'!!:p-j!!)ut"98H%!!)ut"98H%!!)ut!rr?$s8;rrrrE*"rVm$$
+!<<'!!;ld0!!*$!!<3$!rr<'!!!*$!!<3$!rVm!#!<3$!rVllu!;HKo!!)ut"98H%
+!!)ut!<<,orrE*"qZ$BlrVllu!<)ou!!)ut!WW6#q#CNsrr<&irrE*"rVm!#!<3$!
+rVm!#!<3$!rVls"!<<)t!<)rn!!E9$!!)or!rr?$s8E!*s8N'!rr<'!!!*&p!!<0#
+!<)ou!!)cn!<<,urrN0#s7lZhrrE*"qu6Zs!<)ou!!)ut!<<,urrE*"rVm!#!<3$!
+q>UHq!:p-j!!)ut"98H%!!)ut"98H%!!)ut#QOl)rr<'!!!*#u!<<,qrrE*"qu6Zs
+!;c^&!!*$!!<3$!rr<&qrrE*"rVllu!;HKo!!)ut"98H%!!)Qh!<<,srrE*"rr;rt
+rVllu!<)ou!!)ut"TSQ&rr<&urriB&s8N'!q#:?p!;uj!!!*'!rW!-%rr<'!s8E!"
+rr<&trs8Z*s8N'!s8N'!rr3!!!<3!%!!*'!!!)lq!<<-!rrN0#s7lWss8N'!rr3$"
+!<<#u"98B$!;uit!!)rs!rr?$s8E!#s8N'!rr3!!!;HKo!!)lqr;[!#!!*'!qZ$`u
+rr<&trrE*"rr;lrrr3!!!;ZZn!;ulr!!<0#!<3#t!!WB&!<3$!rVm$$!<<'!!<3!!
+!!*#uquH`r!<<,qs82lrrriB&s8N'!rVucq"TSK%!<<#ur;Z]qr;Z`r!ri6#rr;lr
+^Ae36!20>m!!%WNK)^H&K)^H&K)^H&K)^H&o`"
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.png
deleted file mode 100644
index 35bab574107..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/rdunker.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.eps
index 4c7ee7e9c84..080b87f6ff2 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.eps
@@ -1,39 +1,39 @@
-%% LaTeX2e file `addresses/skneifl.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 143 17
-% created by bmeps 1.54
-/pstr
- 143 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-143 25 scale
-143 25 8 [143 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)a@#!<<,ms8;rsrrE*"p\t6o!4;b,!!)*[!<<,nrs8Z*
-s8N'!s8N'!p\t6o!4;b,!!)*[!<<,orrE*"rVm!#!<3$!ZN'e%!WW2s!;ulp!!N?%
-!!*&u!;ulr!!<0#!<3#r!!WE&!!*'!r;Zs"!!*&u!;ulr!;lfp!<3!"!!*&t!<)rr
-!;$6g!<3#q!;HKo!!)ut!<<-!rrE*"qu6Zs!<3!"!!*&u!!E9$!!*#u!rr?$s8E!#
-s8N'!rr3?+!<3$!rr<'!!!*&u!!E9$!!)rs!<<,trriB&s8N'!rr;rt$ig5,!<<'!
-!<<'!!;6?m!!*#u!<<,srrE*"p\t6o!;QQp!!)`m"98H%!!)ut"98H%!!)ut!<<,r
-rs\r.rr<'!!!*$!!<3$!rVllu!<)ou!!)ut!<<,urriB&s8N'!qu6Zs!<)ou!!)cn
-!<<,nrrE*"p&FmhrVllu!;lfm!!<0#!<)p#!!*$!!<)p"!!*'!q>^Zu!!*'!rW!'#
-rr<&trrE*"rVllu!<)rn!!E9$!!)or!<<,urrE*"p\t6o!;HKo!!)Kf!<<-!rrE*"
-r;Qct!<)p#!!*$!!<)p#!!*$!!<)p#!!*$!!<)p#!!*$!!;c]r!!)ut!<<,urrE*"
-rVllu!;ZWq!!)or!<<,urrE*"p\t6o!;QQp!!)Zk!<<,urrE*"rr36(!<<'!!<3$!
-rr;rt!ri6#rVm*&!<<'!!<<)u!!<0#!<3#t!!E9$!!*#u"98H%!!)ut!<<,urrE*"
-r;Qct!<3!%!!*'!!!)lq"TSQ&rr<&srrE*"r;Qct!<3!%!!*'!!!)TiqZ-Qor;cis
-r;[$$!!*$!!<)ou!!*#urW!*$!!*'!r;Zp!!!*#uqu?j!rr<&trrW6$s8VrrrVucq
-rr3!!!;ZZn!;ulq!;ulp!<3#q!/UXU!!%WNK)^H&K)^H&K)^Q)
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/skneifl.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 143 17
+% created by bmeps 1.54
+/pstr
+ 143 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+143 25 scale
+143 25 8 [143 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)a@#!<<,ms8;rsrrE*"p\t6o!4;b,!!)*[!<<,nrs8Z*
+s8N'!s8N'!p\t6o!4;b,!!)*[!<<,orrE*"rVm!#!<3$!ZN'e%!WW2s!;ulp!!N?%
+!!*&u!;ulr!!<0#!<3#r!!WE&!!*'!r;Zs"!!*&u!;ulr!;lfp!<3!"!!*&t!<)rr
+!;$6g!<3#q!;HKo!!)ut!<<-!rrE*"qu6Zs!<3!"!!*&u!!E9$!!*#u!rr?$s8E!#
+s8N'!rr3?+!<3$!rr<'!!!*&u!!E9$!!)rs!<<,trriB&s8N'!rr;rt$ig5,!<<'!
+!<<'!!;6?m!!*#u!<<,srrE*"p\t6o!;QQp!!)`m"98H%!!)ut"98H%!!)ut!<<,r
+rs\r.rr<'!!!*$!!<3$!rVllu!<)ou!!)ut!<<,urriB&s8N'!qu6Zs!<)ou!!)cn
+!<<,nrrE*"p&FmhrVllu!;lfm!!<0#!<)p#!!*$!!<)p"!!*'!q>^Zu!!*'!rW!'#
+rr<&trrE*"rVllu!<)rn!!E9$!!)or!<<,urrE*"p\t6o!;HKo!!)Kf!<<-!rrE*"
+r;Qct!<)p#!!*$!!<)p#!!*$!!<)p#!!*$!!<)p#!!*$!!;c]r!!)ut!<<,urrE*"
+rVllu!;ZWq!!)or!<<,urrE*"p\t6o!;QQp!!)Zk!<<,urrE*"rr36(!<<'!!<3$!
+rr;rt!ri6#rVm*&!<<'!!<<)u!!<0#!<3#t!!E9$!!*#u"98H%!!)ut!<<,urrE*"
+r;Qct!<3!%!!*'!!!)lq"TSQ&rr<&srrE*"r;Qct!<3!%!!*'!!!)TiqZ-Qor;cis
+r;[$$!!*$!!<)ou!!*#urW!*$!!*'!r;Zp!!!*#uqu?j!rr<&trrW6$s8VrrrVucq
+rr3!!!;ZZn!;ulq!;ulp!<3#q!/UXU!!%WNK)^H&K)^H&K)^Q)
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.png
deleted file mode 100644
index 05e7e4edfbe..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/skneifl.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.eps
index cde0a3197fd..7b3e434d548 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.eps
@@ -1,56 +1,56 @@
-%% LaTeX2e file `addresses/texmusiclist.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 0 0 314 17
-% created by bmeps 1.54
-/pstr
- 314 string
-def
-/inputf
- currentfile
- /ASCII85Decode filter
- /RunLengthDecode filter
-def
-gsave
-0 25 translate
-314 25 scale
-314 25 8 [314 0 0 -25 0 0]
-{ inputf pstr readstring pop }
-image
-K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&g&D'Q!:p0g!;lcs
-!!)Wj!<<,prrE*"`;]i<!7:`H!!)cn!<<,5rrE*"_uB`;!;$3o!!*'!!!)rs!<<,k
-rrE*"q#:?p!6"m<!!(CG!<<,orrE*"^&J*5!4;b,!!)ut!<<,errE*"LAq8S!42_&
-!;ulq!<3!!!!)ut!<<,orsAc+!!*$!!<<'!!<)p"!!*'!qZ-TprW)iqqu?p#rr<'!
-s8;rss8E#qs82lrrriB&s8N'!rVuisrVlp!!<<#urVucq!WN/orsAc+!!*$!!<<'!
-!<)p"!!*'!qZ-TprW)iqquHBhqu?m"rr<'!r;cfrqu?m"rr<'!rW)lrrW)os!<<,u
-rrE*"rr;osoDeahrr3$"!<;utrr;lr!WN/nrrE*"qu6g"!<<'!!<3!%!!*'!!!)`m
-$31)+!!*$!!<3$!rVm!#!<3$!rVllu!<)ou!!)rs!<<-!rsA`+rr<'!!!*$!!<)ou
-!!)rs!<<-!rs/T)s8N'!rr<&rrrE*"rVuis#QOf(!<<'!!<3#t!;HL#!!*$!!<3$!
-rr<&trr`<%rr<&trrE*"rVllu!;uit!!*#u!<<,nrrE*"rr3'#!<<)u!!iQ(!!*'!
-!!*#u!WW6#rW!'#rr<&srrE*"rVllu!<)p(!!*'!!!*'!!!)]l"TSQ&rr<&us8E!&
-s8N'!rr<&us8E#lrrE*"r;Qct!<)ou!!*#ur;cisq#Cg&!!*$!!<3$!rr<&trr`<%
-rr<&nrrE*"rVllu!;c^#!!*$!!<3$!rVllu!<)ou!!)ipr;c]o!<<,urrE*"rVm!#
-!<3$!rr3'#!<<)p!"8f,!<3$!rr<'!!!)ut"98H%!!)cn!<<,urrE*"qZ$?kqYp^!
-!<<'!!;lcs!!)lq!<<,urrE*"rVllu!;uj'!!*'!!!*'!!!)ut!<<,orrE*"rVm$$
-!<<'!!;lcs!!*#u!<<,mrrE*"r;ZQmrVllu!;-9u!!*$!!<3$!rr<&trrW6$s8Vrr
-r;Qct!<)ou!!)lq!rr?$s8E#rrrE*"rVllu!;ZZn!;c]r!!)ut!<<,urr`<%rr<&u
-rrE*"pAYI"!<3$!rr<'!!!)ut!rr?$s8)forrE*"rVllu!:^$b!!E9$!!)or!<<,r
-rrE*"rVllu!<)ou!!)rs#64c(rr<'!s7lZhrrE*"rVm$$!<<'!!;lcs!!*#u!<<,m
-rrE*"r;Qct!;QTm!;6@!!!*$!!<3$!rr<&trrE*"qYpQr!<)ou!!)ut!<<,rrrE*"
-p\t6o!<)ou!!)ip"98H%!!)or!<<,urrE*"rVls"!<<)s!;6@!!!*$!!<3$!rr<&t
-rrE*"qYpQr!<)ou!!)ut!<<,irrE*"rVm$$!<<'!!;lcs!!)lq!<<,urrE*"rVllu
-!;lfp!<3!!!!)Qh!<<,urriB&s8N'!qZ$Hno`#3t!<<'!!<<'!!<3!)!!*'!!!*'!
-!!)`m%0-D.!!*$!!<<'!!<<)u!!<0#!<)ou!!)ut!<<,trrE*"rr3-%!<<'!!<3!!
-!!)ut!<<,trrE*"rr39)!<<'!!<<'!!;uit!!)ut!<<,urr`<%rr<&hrs\r.rr<'!
-!!*'!!!*'!rW!$"!!)ut!<<,urrE*"r;Qct!<3!!!!)cn!<<-!s8E!#s8N'!qYpQr
-!<3!$!!*$!!<)ou!!)ut!<<,ss8;rrrrE*"rr3!!!<)ou!!)rs"TSQ&rr<&urrE*"
-qu6Zs!:Tsd!<)rq!!E9$!!)ut!<<,ors&N(rr<'!!!*#urW!*$!!*'!qZ-WqqZ-Tp
-quH]qquH`rqZ-TpquH`r!<<-!rrW6$s8Vrr"98B$!<)p"!!*'!qZ-?i#64c(!!*$!
-!<3#t!!N<%!<<)r!<3#q!<)rq!;6Bj!!`H'!<<'!!;ZZm!!E9$!!)ut!rr?$s8)fo
-rrE*"qu?QorVufrr;Z]qrVllu!;c`m!.t7>rrE*"rVllu!.t7MrrE*"li-tc!<)ou
-!!%WNn,N7bK)ap3qZ)6JK)^H&K)^H&K)^H&K)^H&K)^H&K)a$o
-~>
-grestore
-showpage
+%% LaTeX2e file `addresses/texmusiclist.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 0 0 314 17
+% created by bmeps 1.54
+/pstr
+ 314 string
+def
+/inputf
+ currentfile
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+def
+gsave
+0 25 translate
+314 25 scale
+314 25 8 [314 0 0 -25 0 0]
+{ inputf pstr readstring pop }
+image
+K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&K)^H&g&D'Q!:p0g!;lcs
+!!)Wj!<<,prrE*"`;]i<!7:`H!!)cn!<<,5rrE*"_uB`;!;$3o!!*'!!!)rs!<<,k
+rrE*"q#:?p!6"m<!!(CG!<<,orrE*"^&J*5!4;b,!!)ut!<<,errE*"LAq8S!42_&
+!;ulq!<3!!!!)ut!<<,orsAc+!!*$!!<<'!!<)p"!!*'!qZ-TprW)iqqu?p#rr<'!
+s8;rss8E#qs82lrrriB&s8N'!rVuisrVlp!!<<#urVucq!WN/orsAc+!!*$!!<<'!
+!<)p"!!*'!qZ-TprW)iqquHBhqu?m"rr<'!r;cfrqu?m"rr<'!rW)lrrW)os!<<,u
+rrE*"rr;osoDeahrr3$"!<;utrr;lr!WN/nrrE*"qu6g"!<<'!!<3!%!!*'!!!)`m
+$31)+!!*$!!<3$!rVm!#!<3$!rVllu!<)ou!!)rs!<<-!rsA`+rr<'!!!*$!!<)ou
+!!)rs!<<-!rs/T)s8N'!rr<&rrrE*"rVuis#QOf(!<<'!!<3#t!;HL#!!*$!!<3$!
+rr<&trr`<%rr<&trrE*"rVllu!;uit!!*#u!<<,nrrE*"rr3'#!<<)u!!iQ(!!*'!
+!!*#u!WW6#rW!'#rr<&srrE*"rVllu!<)p(!!*'!!!*'!!!)]l"TSQ&rr<&us8E!&
+s8N'!rr<&us8E#lrrE*"r;Qct!<)ou!!*#ur;cisq#Cg&!!*$!!<3$!rr<&trr`<%
+rr<&nrrE*"rVllu!;c^#!!*$!!<3$!rVllu!<)ou!!)ipr;c]o!<<,urrE*"rVm!#
+!<3$!rr3'#!<<)p!"8f,!<3$!rr<'!!!)ut"98H%!!)cn!<<,urrE*"qZ$?kqYp^!
+!<<'!!;lcs!!)lq!<<,urrE*"rVllu!;uj'!!*'!!!*'!!!)ut!<<,orrE*"rVm$$
+!<<'!!;lcs!!*#u!<<,mrrE*"r;ZQmrVllu!;-9u!!*$!!<3$!rr<&trrW6$s8Vrr
+r;Qct!<)ou!!)lq!rr?$s8E#rrrE*"rVllu!;ZZn!;c]r!!)ut!<<,urr`<%rr<&u
+rrE*"pAYI"!<3$!rr<'!!!)ut!rr?$s8)forrE*"rVllu!:^$b!!E9$!!)or!<<,r
+rrE*"rVllu!<)ou!!)rs#64c(rr<'!s7lZhrrE*"rVm$$!<<'!!;lcs!!*#u!<<,m
+rrE*"r;Qct!;QTm!;6@!!!*$!!<3$!rr<&trrE*"qYpQr!<)ou!!)ut!<<,rrrE*"
+p\t6o!<)ou!!)ip"98H%!!)or!<<,urrE*"rVls"!<<)s!;6@!!!*$!!<3$!rr<&t
+rrE*"qYpQr!<)ou!!)ut!<<,irrE*"rVm$$!<<'!!;lcs!!)lq!<<,urrE*"rVllu
+!;lfp!<3!!!!)Qh!<<,urriB&s8N'!qZ$Hno`#3t!<<'!!<<'!!<3!)!!*'!!!*'!
+!!)`m%0-D.!!*$!!<<'!!<<)u!!<0#!<)ou!!)ut!<<,trrE*"rr3-%!<<'!!<3!!
+!!)ut!<<,trrE*"rr39)!<<'!!<<'!!;uit!!)ut!<<,urr`<%rr<&hrs\r.rr<'!
+!!*'!!!*'!rW!$"!!)ut!<<,urrE*"r;Qct!<3!!!!)cn!<<-!s8E!#s8N'!qYpQr
+!<3!$!!*$!!<)ou!!)ut!<<,ss8;rrrrE*"rr3!!!<)ou!!)rs"TSQ&rr<&urrE*"
+qu6Zs!:Tsd!<)rq!!E9$!!)ut!<<,ors&N(rr<'!!!*#urW!*$!!*'!qZ-WqqZ-Tp
+quH]qquH`rqZ-TpquH`r!<<-!rrW6$s8Vrr"98B$!<)p"!!*'!qZ-?i#64c(!!*$!
+!<3#t!!N<%!<<)r!<3#q!<)rq!;6Bj!!`H'!<<'!!;ZZm!!E9$!!)ut!rr?$s8)fo
+rrE*"qu?QorVufrr;Z]qrVllu!;c`m!.t7>rrE*"rVllu!.t7MrrE*"li-tc!<)ou
+!!%WNn,N7bK)ap3qZ)6JK)^H&K)^H&K)^H&K)^H&K)^H&K)a$o
+~>
+grestore
+showpage
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.png b/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.png
deleted file mode 100644
index 86e36727bff..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/addresses/texmusiclist.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/14.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/14.eps
index 708173f396e..d29eaca6f5f 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/14.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/14.eps
@@ -1,411 +1,411 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 14.dvi
-%%CreationDate: Tue Jan 21 20:37:06 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 747 510 798
-%%DocumentFonts: TeXMUSIX16-Regular TeXMUSIXSPX-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 14.dvi
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.01.21:2037
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIXSPX-Regular) readonly def
- /FamilyName (TeXMUSIXSPX) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -300.3 def
- /UnderlineThickness 150.15 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 502 def
- /descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-dup 21 /endash put
-dup 22 /emdash put
-dup 35 /numbersign put
-dup 65 /A put
-dup 69 /E put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a8029f0e71748d5def5
-e137746bf8ef0e89c67c47ba75fc29a5a69e9a3248bb49919ecc79fdf5bddc0e
-e7e7bea878b6155cd00fec35e30536436e70f36ffc1a68d72759f15135973550
-0321f5ac2460d16083d3fae7e66abe637317fd2266729799619a9630ae656dcb
-7bd469d535dd5babd7118c863ea6dbc8d38036164bf26710b373c41970528bd2
-595df813bf1368c79c441882ea3ca5c00ea0684210a760dacfa9dfa34934de03
-8ff58ec5dad266829a690c8ad001818f546d7450279bca4d2a10a1cc591a7d96
-3269323963a2cdbfb4f987900555931a15229864557745b27d71c3fd75936b90
-a655327bd46a9207289bd811f196c845154e2a03010bf9c2034d56a81d146df2
-6ea84da6e4f1ceb3112081e053be3c2f16e87635070686bac94a1061013cbad5
-c38c47c63c126e68343fb42afb1682ea8409e9fa0ff1f834395b17df6719be95
-4af8ba83374833e2c4e3ec1770bce924b11c3dc8938ad548950890f8398ba941
-bfb2efe487b9abbfc82c68a2d816a3dcd667b861c33fb7710c2374673c84c8fa
-e731ce649357372c266acd9e5a043010ecb9826ee92b6c6df0047549e691e1a0
-115e3e8e908872e50beec2b2efee25147efc979e0111ee469b08416381698af3
-5a20b1dd545d583448f836c1c62f7c09a0ab0833ed59d6d743886e3c5b8e1687
-6faad52e3f4bf3b7046c6fbf4aaf8ef2388a00b20edd09705a958408785bac5c
-8f3aef2c58906ee55c86e5134faabcda97feee1ef8f55c6f1523281d1d1e969b
-012ed6122c05cdee0ce15e6659e682e6a4dd7506b84f77b5e01629d6caa4ec8c
-f21fe246e06077c9722c30bf736cfa932fa46f9b45edf09ce16f21a113bc1040
-270fd83634caeb01cd3888e545eaabcced3598b463edb6745ebc428646ca1a8e
-fd8998f3dbb2088d496256a1057c397acf92804cb73904eaf4b249e6d6fe4d58
-b1aed467ba31d80ae4b456de6437138436bee8cafbb8e42fe784cfbbb05676c7
-f05967ca0aa83df0efea7b846c9bee668bc5d2dbb1463fa1eecd32436d14966b
-eedbb61dcb1b355b63e1721f809973dca28d775ffddbe4b2df74d2bc4bd75442
-623767b7d02dd87444b00095c7c609382cf728727e173aa3bf29e43c2b6c244c
-b3dfd1da4509472bdcb4b926750533eb8be4b4132627b00628b413cfdf494b89
-23809d26078f9888d53ab4060873b4ec5f6e40522f1ca766798ef536cc51b704
-28489db791a796f633ac52f3184c030ecb90f20ef028efa9db1b146e13c601bd
-973f22f0cc0eb2656fc9f949d0b8bb4b2e37b1a260689200fe21be4ac15f301c
-4e09e70780a156b56a31a77aba7a29a4c062cc552730cdda5878c076ad891dd3
-c1a67f404e3a43330a8bf8c6f82d552a031fb827c73f139cb8130d17f9079666
-7a5593838a9f804d9690b921
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 0 /grave put
-dup 7 /caron put
-dup 45 /hyphen put
-dup 71 /G put
-dup 83 /S put
-dup 135 /Gbreve put
-dup 136 /Lacute put
-dup 137 /Lcaron put
-dup 143 /Racute put
-dup 145 /Sacute put
-dup 206 /Icircumflex put
-dup 207 /Idieresis put
-dup 217 /Ugrave put
-dup 219 /Ucircumflex put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a136155b89cf3bd07b12d36848c7a4e282a8a06d
-a8cc955105643c1474bcea002d2ef2894cfe05ce067c523558b99fb2262fd671
-16d23bd90ba0d3bc4d7735822cada82c532fdd2551f2a32bcf1f9e29895b17db
-bd673f79cc1dc21baa8fe48eb4bda37dac63ea863b03f053e9cc1f5614917c7d
-8348526f592a02714842232afa7dd6c8aa27c518ed07cda70efd2babc9efe9b1
-a483ed40e46d109dd410a2b2f8ff3b180aa160fd5c0d0b9dd6c21fafdae86e3a
-93bfe35c715fefff47992020698dadf81896bcd97098074ae743840c1e63df10
-acf44d6b984fd812cda16983506814b173fa5894b416ecd75c6a6caf0ff3c195
-93e9c2edb6d5e812ba26850e65d31f6dd8a015050fd8e9e393f11d7ba55c60ce
-a44918936dff44334b337f781a421f863c889ed7df85eefb0e4a625a240abdba
-21a28315523d83cb13492fd7fdadf7e48cd71554998fd900cada66cd33ec031d
-f491b5f3baff9da438f49918652ebbf5dded937d747d4d43c23692ee4626f94a
-3d6307d93f7d5359bd91f9b0b1b55d195183dc37f77432e9dbec9affad43b329
-d0c3238c9cdb41308cccbb6d56007bb00db72df88fa766158dcf03d3f95c2ffa
-33bda60b141a6a039c7a513c5af1b09ee2637e7a74a3ffd7be1e16e754ae9511
-eb358c9580cd0bfbff024b0a906364b4d7d294558f413cddf87e481cac7d5426
-722ae15fe5944dcaa0bb7e89d1415ae8dfed2d4bbbbd4232e13433d86bc23f13
-4e06716f500fdd6b0c11f679a9f6020a505e3ae492c03d4b0c0a54ca0fbcf3b4
-602707ce89686b729990e46265b4721168e5b6d07c557a3bda64aa1549f505e6
-302a602211a0504fd847ec6739014f7984151b69cb95717fa47b1fbdf176a5ef
-73154f6b4b0d01478c03107503212f0466751b92d4249e79a34370f2c9e6e5d2
-3a670aa93895d4623b994e370e03e46f6b693ca0221c9b5ed21c4cc109755ba8
-e3c27786e8d91344ce19897f5eac89b04041d150abdb15364899e0861ca34d94
-b1b63592036f10589101c97311ab4722cea893b1204963d28165ed3baefdbd4b
-ec6a12fa3b3c68af615d1f3ef734c6e4cd3a29ea5690352f37ad5181d670bc09
-2c00d0b283eb4a63ba6457fd2c0c60c176ee438201a5f9aa45691fe64521d159
-b3332a01e5e549b76b2bfc0040460630e9ed2d615d08469b47b13c203e4afb32
-361aca3122d207f0f34915c202fb1947cd341a6b4a4a02562c4056cc7b046930
-c4c45d2b0b45e6c642fc75e59a4f5d703731c17ed97c5b5b7a4458bd8ed7ccdd
-a8ac5f69d0d58182fd7d84310e5459818335d34725ac3d063201a57163fe8c33
-947b6536f31613a076f7dad38671968619fc93bc0f1a973eca477d505e1890cb
-9b12516ce9c5187b153c1b568b7f851484fea9d94719f604ea68b1902ef9f3f9
-ac1b042d683d35f8643cda1e01a535135cfdc69f054da06d96969e48ad954e1b
-945020834b8472d73d2134256eefe521828fa78f2c199897c7bb5d41aeaf6810
-78815a755a9cb450ed38d5c5a2924705b29f6a68faa2f3493297b084f46f3daf
-a72da48e5701f2a48456e621f217c17343950f65dd5301dffbcd5732d7f32ac5
-0ba61d4e173dea0d874cda672c46bd7f515334ae93bb368b42f4fe4f4059708c
-b2f6f9de1e3b8b9659d7801edca4ff75b1fb191c98afd5879bed8577fb1d25d4
-548dc491cc3561e9a1cd27add72556c97d37967608f1ab198d147a88d61c5990
-66349173b05699e27468023997b8adc91857071af4665dd2565a8727b4d83191
-01b641aab6ea30efd26f36c0b82b2ca546c81c680dda1973313546aa75d92004
-231e8221ba5864fdebeaa19a0ca4f2a033784dd575f71a4db5a00d303451bd90
-14c9a5bbd03a070fb0498dfcf4b5b7443b2a731b6df4765a5bcd2a9c6f772fb7
-56ee655bcfc8ca29fa09abd09e28fd55fe41a89cf57e76f42d80bb3254f4a007
-8eada52a29abb153d29425b2197de61a55c845aef0c5ed0a41a5bbb91deab07f
-e82eab699af1a92c5cae3cabf1874316
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/EXAMPLES/PMX/14.dvi) @start
-%DVIPSBitmapFont: Fa cmbx12 12 2
-/Fa 2 57 df<EB1F80EBFFE03803E0703807C0F0380F01F8121F123EA2387E00F0007C13
-00A2EAFC08EB7FC0EBFFE038FD80F038FF00F848137CA248137EA4127CA3003C137C123E
-001E13F86C13F0380783E03803FFC0C6130017207E9F1C>54 D<13FE3803FFC0380703E0
-380E00F05A1478123C123E123F1380EBE0F0381FF9E0EBFFC06C13806C13C06C13E04813
-F0381E7FF8383C1FFCEA7807EB01FEEAF000143E141EA36C131C007813387E001F13F038
-0FFFC00001130017207E9F1C>56 D E
-%EndDVIPSBitmapFont
-/Fb 186[42 3[42 29[42 12[0 0 21[{}5 83.022 /TeXMUSIXSPX-Regular
-rf
-%DVIPSBitmapFont: Fc cmti8 8 6
-/Fc 6 56 df<134013C0A2EA0380121D1201A2EA0300A41206A45AA45AEAFF800A157C94
-12>49 D<13F0EA0308EA040CEA090413061211A2EA220C1224EA1818EA0030136013C0EA
-030012041218EA2004130CEA7C18EAC7F0EA81E00F157D9412>I<13F8EA010CEA020612
-051209A2EA0A04EA0E0CEA00181370EA03E0EA00301310A21318EA603012E0EAC020EA80
-60EA4180EA3F000F157D9412>I<130CA31318A31330A21360A2134013C0EA0180131812
-02EA0630120412081210EA7F60EA80FEEA0060A213C0A313800F1B7F9412>I<EA060CEA
-07F813F0EA08801300A35AEA1780EA18601210EA0070A31260EAF0E012E0EA80C0EA8180
-EA4300123C0E157C9412>I<EA1382EA2F84EA38CCEA6078EA4018EA8010132012001340
-13C013801201A2EA0300A31206A35AA20F157B9412>55 D E
-%EndDVIPSBitmapFont
-/Fd 36[66 1[17 9[66 33 60[266 1[66 5[66 33 17 51[33 11[53
-25[0 37[0 6[0{}14 66.4176 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 2001 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fd(G)-122 15 y(S)13 -60 y Fc(5)p
--38 48 2 75 v -57 48 a Fd(\007)p -8 40 2 71 v -27 40
-a(\007)p 22 31 2 68 v 3 31 a(\007)p 53 23 2 64 v 34 23
-a(\007)-38 -14 y(\217)18 -23 y(\217)-38 -27 y(\217)18
--35 y(\217)p 83 15 2 60 v 64 15 a(\007)121 81 y Fc(7)p
-94 52 2 46 v 94 6 a Fd(\007)p 132 48 2 51 v 132 -2 a(\007)95
-52 y(\211)105 51 y(\211)p 169 44 2 55 v 169 -10 a(\007)357
--85 y Fc(14)p 207 69 2 63 v 207 6 a Fd(\007)p 233 65
-2 67 v 233 -2 a(\007)p 260 61 2 72 v 260 -10 a(\007)p
-286 57 2 76 v 286 -18 a(\007)p 312 53 2 80 v 312 -27
-a(\007)p 336 -34 25 2 v 339 49 2 85 v 339 -35 a(\007)p
-362 -34 25 2 v 365 45 2 89 v 365 -43 a(\007)p 388 -34
-25 2 v 389 -51 V 392 41 2 93 v 392 -52 a(\007)p 414 -34
-25 2 v 415 -51 V 418 37 2 98 v 418 -60 a(\007)p 441 -34
-25 2 v 442 -51 V 443 -67 V 446 33 2 102 v 445 -68 a(\007)p
-467 -34 25 2 v 468 -51 V 469 -67 V 472 29 2 107 v 472
--77 a(\007)p 493 -34 25 2 v 494 -51 V 495 -67 V 496 -84
-V 498 25 2 111 v 498 -85 a(\007)p 519 -34 25 2 v 520
--51 V 521 -67 V 522 -84 V 524 22 2 115 v 524 -93 a(\007)207
-44 y(\221)283 32 y(\221)207 56 y(\221)283 45 y(\221)207
-69 y(\221)283 57 y(\221)p 545 -34 25 2 v 546 -51 V 547
--67 V 548 -84 V 548 -101 V 550 18 2 120 v 550 -102 a(\007)p
-574 49 2 68 v 665 -85 a Fc(3)p 592 -34 30 2 v 592 -51
-V 597 11 2 63 v 597 -52 a Fd(\007)p 630 -34 30 2 v 630
--51 V 635 11 2 71 v 635 -60 a(\007)p 598 15 78 8 v 668
--34 30 2 v 668 -51 V 668 -67 V 673 11 2 79 v 673 -68
-a(\007)749 -85 y Fc(3)p 706 -34 30 2 v 706 -51 V 706
--67 V 711 11 2 88 v 711 -77 a Fd(\007)p 744 -34 30 2
-v 744 -51 V 744 -67 V 749 11 2 79 v 749 -68 a(\007)p
-712 15 78 8 v 781 -34 30 2 v 781 -51 V 786 11 2 71 v
-786 -60 a(\007)869 -52 y Fc(3)p 824 19 2 46 v 824 -27
-a Fd(\007\000)849 4 y(\207)854 3 y(\207)p 867 -34 26
-2 v 870 14 2 50 v 870 -35 a(\007)824 19 y(\211)833 18
-y(\211)p 892 -34 30 2 v 897 12 2 55 v 897 -43 a(\007)76
-b Fc(3)p 930 -34 30 2 v 930 -51 V 935 19 2 71 v 935 -52
-a Fd(\007)p 973 28 2 56 v 973 -27 a(\007\000)998 22 y(\331)1003
-23 y(\331)935 19 y(\333)953 23 y(\333)p 1018 40 2 50
-v 1018 -10 a(\007)p 1046 49 2 68 v 1095 48 a Fc(3)-45
-b Fb(\025#)1102 43 y(#)1144 37 y(\025)p 1070 40 2 59
-v 1070 -18 a Fd(\007)p 1121 27 2 54 v 1121 27 a(-)1121
--27 y(\007)1215 -52 y Fc(5)p 1154 -34 30 2 v 1159 19
-2 63 v 1159 -43 a Fd(\007)p 1196 -34 28 2 v 1201 25 2
-61 v 1201 -35 a(\007)p 1230 30 2 57 v 1230 -27 a(\007)1200
-13 y(\316)1229 17 y(\316)1159 19 y(\317)1196 25 y(\317)p
-1260 35 2 53 v 1260 -18 a(\007)1306 89 y Fc(3)p 1290
-52 2 54 v 1290 -2 a Fd(\007)1290 -10 y(\000)1321 36 y(\207)-12
-b(\207)1290 52 y(\210)1310 50 y(\210)p 1341 47 2 58 v
-1341 -10 a(\007)1398 -27 y Fc(3)1377 -68 y Fb(\026A)1398
--60 y(A)1440 -43 y(\026)p 1379 35 2 54 v 1379 35 a Fd(-)1379
--18 y(\007)p 1417 56 2 59 v 1417 -2 a(\007)p 1468 49
-2 68 v 1483 14 a Fa(6)1483 47 y(8)1577 -43 y Fc(2)1548
--102 y Fb(\026E)1586 -83 y(E)1627 -62 y(\026)p 1545 -34
-30 2 v 1545 -51 V 1550 15 2 67 v 1550 -52 a Fd(\007)p
-1604 64 2 59 v 1604 6 a(\007)p 1677 40 2 63 v 1658 40
-a(\007)p 1717 31 2 58 v 1698 31 a(\007)p 1757 23 2 54
-v 1738 23 a(\007)1677 -23 y(\211)1732 -28 y(\211)p 1797
-15 2 50 v 1778 15 a(\007)p 1817 49 2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 14.dvi
+%%CreationDate: Tue Jan 21 20:37:06 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 747 510 798
+%%DocumentFonts: TeXMUSIX16-Regular TeXMUSIXSPX-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 14.dvi
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.01.21:2037
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIXSPX-Regular) readonly def
+ /FamilyName (TeXMUSIXSPX) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -300.3 def
+ /UnderlineThickness 150.15 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 502 def
+ /descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+dup 21 /endash put
+dup 22 /emdash put
+dup 35 /numbersign put
+dup 65 /A put
+dup 69 /E put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a8029f0e71748d5def5
+e137746bf8ef0e89c67c47ba75fc29a5a69e9a3248bb49919ecc79fdf5bddc0e
+e7e7bea878b6155cd00fec35e30536436e70f36ffc1a68d72759f15135973550
+0321f5ac2460d16083d3fae7e66abe637317fd2266729799619a9630ae656dcb
+7bd469d535dd5babd7118c863ea6dbc8d38036164bf26710b373c41970528bd2
+595df813bf1368c79c441882ea3ca5c00ea0684210a760dacfa9dfa34934de03
+8ff58ec5dad266829a690c8ad001818f546d7450279bca4d2a10a1cc591a7d96
+3269323963a2cdbfb4f987900555931a15229864557745b27d71c3fd75936b90
+a655327bd46a9207289bd811f196c845154e2a03010bf9c2034d56a81d146df2
+6ea84da6e4f1ceb3112081e053be3c2f16e87635070686bac94a1061013cbad5
+c38c47c63c126e68343fb42afb1682ea8409e9fa0ff1f834395b17df6719be95
+4af8ba83374833e2c4e3ec1770bce924b11c3dc8938ad548950890f8398ba941
+bfb2efe487b9abbfc82c68a2d816a3dcd667b861c33fb7710c2374673c84c8fa
+e731ce649357372c266acd9e5a043010ecb9826ee92b6c6df0047549e691e1a0
+115e3e8e908872e50beec2b2efee25147efc979e0111ee469b08416381698af3
+5a20b1dd545d583448f836c1c62f7c09a0ab0833ed59d6d743886e3c5b8e1687
+6faad52e3f4bf3b7046c6fbf4aaf8ef2388a00b20edd09705a958408785bac5c
+8f3aef2c58906ee55c86e5134faabcda97feee1ef8f55c6f1523281d1d1e969b
+012ed6122c05cdee0ce15e6659e682e6a4dd7506b84f77b5e01629d6caa4ec8c
+f21fe246e06077c9722c30bf736cfa932fa46f9b45edf09ce16f21a113bc1040
+270fd83634caeb01cd3888e545eaabcced3598b463edb6745ebc428646ca1a8e
+fd8998f3dbb2088d496256a1057c397acf92804cb73904eaf4b249e6d6fe4d58
+b1aed467ba31d80ae4b456de6437138436bee8cafbb8e42fe784cfbbb05676c7
+f05967ca0aa83df0efea7b846c9bee668bc5d2dbb1463fa1eecd32436d14966b
+eedbb61dcb1b355b63e1721f809973dca28d775ffddbe4b2df74d2bc4bd75442
+623767b7d02dd87444b00095c7c609382cf728727e173aa3bf29e43c2b6c244c
+b3dfd1da4509472bdcb4b926750533eb8be4b4132627b00628b413cfdf494b89
+23809d26078f9888d53ab4060873b4ec5f6e40522f1ca766798ef536cc51b704
+28489db791a796f633ac52f3184c030ecb90f20ef028efa9db1b146e13c601bd
+973f22f0cc0eb2656fc9f949d0b8bb4b2e37b1a260689200fe21be4ac15f301c
+4e09e70780a156b56a31a77aba7a29a4c062cc552730cdda5878c076ad891dd3
+c1a67f404e3a43330a8bf8c6f82d552a031fb827c73f139cb8130d17f9079666
+7a5593838a9f804d9690b921
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 0 /grave put
+dup 7 /caron put
+dup 45 /hyphen put
+dup 71 /G put
+dup 83 /S put
+dup 135 /Gbreve put
+dup 136 /Lacute put
+dup 137 /Lcaron put
+dup 143 /Racute put
+dup 145 /Sacute put
+dup 206 /Icircumflex put
+dup 207 /Idieresis put
+dup 217 /Ugrave put
+dup 219 /Ucircumflex put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a136155b89cf3bd07b12d36848c7a4e282a8a06d
+a8cc955105643c1474bcea002d2ef2894cfe05ce067c523558b99fb2262fd671
+16d23bd90ba0d3bc4d7735822cada82c532fdd2551f2a32bcf1f9e29895b17db
+bd673f79cc1dc21baa8fe48eb4bda37dac63ea863b03f053e9cc1f5614917c7d
+8348526f592a02714842232afa7dd6c8aa27c518ed07cda70efd2babc9efe9b1
+a483ed40e46d109dd410a2b2f8ff3b180aa160fd5c0d0b9dd6c21fafdae86e3a
+93bfe35c715fefff47992020698dadf81896bcd97098074ae743840c1e63df10
+acf44d6b984fd812cda16983506814b173fa5894b416ecd75c6a6caf0ff3c195
+93e9c2edb6d5e812ba26850e65d31f6dd8a015050fd8e9e393f11d7ba55c60ce
+a44918936dff44334b337f781a421f863c889ed7df85eefb0e4a625a240abdba
+21a28315523d83cb13492fd7fdadf7e48cd71554998fd900cada66cd33ec031d
+f491b5f3baff9da438f49918652ebbf5dded937d747d4d43c23692ee4626f94a
+3d6307d93f7d5359bd91f9b0b1b55d195183dc37f77432e9dbec9affad43b329
+d0c3238c9cdb41308cccbb6d56007bb00db72df88fa766158dcf03d3f95c2ffa
+33bda60b141a6a039c7a513c5af1b09ee2637e7a74a3ffd7be1e16e754ae9511
+eb358c9580cd0bfbff024b0a906364b4d7d294558f413cddf87e481cac7d5426
+722ae15fe5944dcaa0bb7e89d1415ae8dfed2d4bbbbd4232e13433d86bc23f13
+4e06716f500fdd6b0c11f679a9f6020a505e3ae492c03d4b0c0a54ca0fbcf3b4
+602707ce89686b729990e46265b4721168e5b6d07c557a3bda64aa1549f505e6
+302a602211a0504fd847ec6739014f7984151b69cb95717fa47b1fbdf176a5ef
+73154f6b4b0d01478c03107503212f0466751b92d4249e79a34370f2c9e6e5d2
+3a670aa93895d4623b994e370e03e46f6b693ca0221c9b5ed21c4cc109755ba8
+e3c27786e8d91344ce19897f5eac89b04041d150abdb15364899e0861ca34d94
+b1b63592036f10589101c97311ab4722cea893b1204963d28165ed3baefdbd4b
+ec6a12fa3b3c68af615d1f3ef734c6e4cd3a29ea5690352f37ad5181d670bc09
+2c00d0b283eb4a63ba6457fd2c0c60c176ee438201a5f9aa45691fe64521d159
+b3332a01e5e549b76b2bfc0040460630e9ed2d615d08469b47b13c203e4afb32
+361aca3122d207f0f34915c202fb1947cd341a6b4a4a02562c4056cc7b046930
+c4c45d2b0b45e6c642fc75e59a4f5d703731c17ed97c5b5b7a4458bd8ed7ccdd
+a8ac5f69d0d58182fd7d84310e5459818335d34725ac3d063201a57163fe8c33
+947b6536f31613a076f7dad38671968619fc93bc0f1a973eca477d505e1890cb
+9b12516ce9c5187b153c1b568b7f851484fea9d94719f604ea68b1902ef9f3f9
+ac1b042d683d35f8643cda1e01a535135cfdc69f054da06d96969e48ad954e1b
+945020834b8472d73d2134256eefe521828fa78f2c199897c7bb5d41aeaf6810
+78815a755a9cb450ed38d5c5a2924705b29f6a68faa2f3493297b084f46f3daf
+a72da48e5701f2a48456e621f217c17343950f65dd5301dffbcd5732d7f32ac5
+0ba61d4e173dea0d874cda672c46bd7f515334ae93bb368b42f4fe4f4059708c
+b2f6f9de1e3b8b9659d7801edca4ff75b1fb191c98afd5879bed8577fb1d25d4
+548dc491cc3561e9a1cd27add72556c97d37967608f1ab198d147a88d61c5990
+66349173b05699e27468023997b8adc91857071af4665dd2565a8727b4d83191
+01b641aab6ea30efd26f36c0b82b2ca546c81c680dda1973313546aa75d92004
+231e8221ba5864fdebeaa19a0ca4f2a033784dd575f71a4db5a00d303451bd90
+14c9a5bbd03a070fb0498dfcf4b5b7443b2a731b6df4765a5bcd2a9c6f772fb7
+56ee655bcfc8ca29fa09abd09e28fd55fe41a89cf57e76f42d80bb3254f4a007
+8eada52a29abb153d29425b2197de61a55c845aef0c5ed0a41a5bbb91deab07f
+e82eab699af1a92c5cae3cabf1874316
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/EXAMPLES/PMX/14.dvi) @start
+%DVIPSBitmapFont: Fa cmbx12 12 2
+/Fa 2 57 df<EB1F80EBFFE03803E0703807C0F0380F01F8121F123EA2387E00F0007C13
+00A2EAFC08EB7FC0EBFFE038FD80F038FF00F848137CA248137EA4127CA3003C137C123E
+001E13F86C13F0380783E03803FFC0C6130017207E9F1C>54 D<13FE3803FFC0380703E0
+380E00F05A1478123C123E123F1380EBE0F0381FF9E0EBFFC06C13806C13C06C13E04813
+F0381E7FF8383C1FFCEA7807EB01FEEAF000143E141EA36C131C007813387E001F13F038
+0FFFC00001130017207E9F1C>56 D E
+%EndDVIPSBitmapFont
+/Fb 186[42 3[42 29[42 12[0 0 21[{}5 83.022 /TeXMUSIXSPX-Regular
+rf
+%DVIPSBitmapFont: Fc cmti8 8 6
+/Fc 6 56 df<134013C0A2EA0380121D1201A2EA0300A41206A45AA45AEAFF800A157C94
+12>49 D<13F0EA0308EA040CEA090413061211A2EA220C1224EA1818EA0030136013C0EA
+030012041218EA2004130CEA7C18EAC7F0EA81E00F157D9412>I<13F8EA010CEA020612
+051209A2EA0A04EA0E0CEA00181370EA03E0EA00301310A21318EA603012E0EAC020EA80
+60EA4180EA3F000F157D9412>I<130CA31318A31330A21360A2134013C0EA0180131812
+02EA0630120412081210EA7F60EA80FEEA0060A213C0A313800F1B7F9412>I<EA060CEA
+07F813F0EA08801300A35AEA1780EA18601210EA0070A31260EAF0E012E0EA80C0EA8180
+EA4300123C0E157C9412>I<EA1382EA2F84EA38CCEA6078EA4018EA8010132012001340
+13C013801201A2EA0300A31206A35AA20F157B9412>55 D E
+%EndDVIPSBitmapFont
+/Fd 36[66 1[17 9[66 33 60[266 1[66 5[66 33 17 51[33 11[53
+25[0 37[0 6[0{}14 66.4176 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 2001 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fd(G)-122 15 y(S)13 -60 y Fc(5)p
+-38 48 2 75 v -57 48 a Fd(\007)p -8 40 2 71 v -27 40
+a(\007)p 22 31 2 68 v 3 31 a(\007)p 53 23 2 64 v 34 23
+a(\007)-38 -14 y(\217)18 -23 y(\217)-38 -27 y(\217)18
+-35 y(\217)p 83 15 2 60 v 64 15 a(\007)121 81 y Fc(7)p
+94 52 2 46 v 94 6 a Fd(\007)p 132 48 2 51 v 132 -2 a(\007)95
+52 y(\211)105 51 y(\211)p 169 44 2 55 v 169 -10 a(\007)357
+-85 y Fc(14)p 207 69 2 63 v 207 6 a Fd(\007)p 233 65
+2 67 v 233 -2 a(\007)p 260 61 2 72 v 260 -10 a(\007)p
+286 57 2 76 v 286 -18 a(\007)p 312 53 2 80 v 312 -27
+a(\007)p 336 -34 25 2 v 339 49 2 85 v 339 -35 a(\007)p
+362 -34 25 2 v 365 45 2 89 v 365 -43 a(\007)p 388 -34
+25 2 v 389 -51 V 392 41 2 93 v 392 -52 a(\007)p 414 -34
+25 2 v 415 -51 V 418 37 2 98 v 418 -60 a(\007)p 441 -34
+25 2 v 442 -51 V 443 -67 V 446 33 2 102 v 445 -68 a(\007)p
+467 -34 25 2 v 468 -51 V 469 -67 V 472 29 2 107 v 472
+-77 a(\007)p 493 -34 25 2 v 494 -51 V 495 -67 V 496 -84
+V 498 25 2 111 v 498 -85 a(\007)p 519 -34 25 2 v 520
+-51 V 521 -67 V 522 -84 V 524 22 2 115 v 524 -93 a(\007)207
+44 y(\221)283 32 y(\221)207 56 y(\221)283 45 y(\221)207
+69 y(\221)283 57 y(\221)p 545 -34 25 2 v 546 -51 V 547
+-67 V 548 -84 V 548 -101 V 550 18 2 120 v 550 -102 a(\007)p
+574 49 2 68 v 665 -85 a Fc(3)p 592 -34 30 2 v 592 -51
+V 597 11 2 63 v 597 -52 a Fd(\007)p 630 -34 30 2 v 630
+-51 V 635 11 2 71 v 635 -60 a(\007)p 598 15 78 8 v 668
+-34 30 2 v 668 -51 V 668 -67 V 673 11 2 79 v 673 -68
+a(\007)749 -85 y Fc(3)p 706 -34 30 2 v 706 -51 V 706
+-67 V 711 11 2 88 v 711 -77 a Fd(\007)p 744 -34 30 2
+v 744 -51 V 744 -67 V 749 11 2 79 v 749 -68 a(\007)p
+712 15 78 8 v 781 -34 30 2 v 781 -51 V 786 11 2 71 v
+786 -60 a(\007)869 -52 y Fc(3)p 824 19 2 46 v 824 -27
+a Fd(\007\000)849 4 y(\207)854 3 y(\207)p 867 -34 26
+2 v 870 14 2 50 v 870 -35 a(\007)824 19 y(\211)833 18
+y(\211)p 892 -34 30 2 v 897 12 2 55 v 897 -43 a(\007)76
+b Fc(3)p 930 -34 30 2 v 930 -51 V 935 19 2 71 v 935 -52
+a Fd(\007)p 973 28 2 56 v 973 -27 a(\007\000)998 22 y(\331)1003
+23 y(\331)935 19 y(\333)953 23 y(\333)p 1018 40 2 50
+v 1018 -10 a(\007)p 1046 49 2 68 v 1095 48 a Fc(3)-45
+b Fb(\025#)1102 43 y(#)1144 37 y(\025)p 1070 40 2 59
+v 1070 -18 a Fd(\007)p 1121 27 2 54 v 1121 27 a(-)1121
+-27 y(\007)1215 -52 y Fc(5)p 1154 -34 30 2 v 1159 19
+2 63 v 1159 -43 a Fd(\007)p 1196 -34 28 2 v 1201 25 2
+61 v 1201 -35 a(\007)p 1230 30 2 57 v 1230 -27 a(\007)1200
+13 y(\316)1229 17 y(\316)1159 19 y(\317)1196 25 y(\317)p
+1260 35 2 53 v 1260 -18 a(\007)1306 89 y Fc(3)p 1290
+52 2 54 v 1290 -2 a Fd(\007)1290 -10 y(\000)1321 36 y(\207)-12
+b(\207)1290 52 y(\210)1310 50 y(\210)p 1341 47 2 58 v
+1341 -10 a(\007)1398 -27 y Fc(3)1377 -68 y Fb(\026A)1398
+-60 y(A)1440 -43 y(\026)p 1379 35 2 54 v 1379 35 a Fd(-)1379
+-18 y(\007)p 1417 56 2 59 v 1417 -2 a(\007)p 1468 49
+2 68 v 1483 14 a Fa(6)1483 47 y(8)1577 -43 y Fc(2)1548
+-102 y Fb(\026E)1586 -83 y(E)1627 -62 y(\026)p 1545 -34
+30 2 v 1545 -51 V 1550 15 2 67 v 1550 -52 a Fd(\007)p
+1604 64 2 59 v 1604 6 a(\007)p 1677 40 2 63 v 1658 40
+a(\007)p 1717 31 2 58 v 1698 31 a(\007)p 1757 23 2 54
+v 1738 23 a(\007)1677 -23 y(\211)1732 -28 y(\211)p 1797
+15 2 50 v 1778 15 a(\007)p 1817 49 2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/18.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/18.eps
index 1bfe5ab7eab..59d4fcd155b 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/18.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/18.eps
@@ -1,378 +1,378 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 18.dvi
-%%CreationDate: Wed Feb 19 18:22:08 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 21 707 453 794
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 18
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.19:1822
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 40 /parenleft put
-dup 45 /hyphen put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 70 /F put
-dup 71 /G put
-dup 73 /I put
-dup 90 /Z put
-dup 92 /backslash put
-dup 94 /asciicircum put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a136155b89cf3bd07b12d36848c7a4e282a8a06d
-a8cc955105643c1474bcea002d2ef2894cfe05ce067c523558b99fb2262fd671
-16d23bd90ba0d3bc4d7735822cada82c532fdd2551f2a32bcf1f9e29895b17db
-bd673f79cc1dc21baa8fe48eb4bda37dac63ea863b03f053e9cc1f5614917c7d
-8348526f592a02714842232afa7dd6c8aa27c518ed07c775ea106a67d083cac7
-d4e6243535756f28dc5f7542653d7c711215e199b612aa5148c52d5dc91104fb
-0453af9c32ff342935f3c58edfde053060f3208aeef4377759d186b60a24b8e8
-32b299d59c6e0e1f1e4e4e1f6bd533fc5e1358e3bde969f1b4d04009d55d1b19
-db3c8bd16760a91b02542a30e4da6cbfb26bc8151ae184b378b78cbe91ac84ea
-cbff06018d27f19c585db0cdb8028fbe80a76c9d20f2655bb7c75050f9ea3e49
-5390a9d6f6d87436ecb912e8fbb294e7629d1afd20cb77d50f03e0d47aba0483
-ad9986bb218fea419dd4287b657c8b274b84bb526f687960ebca84da038c6ffa
-13d8363238f2c7678027cf71e388b02fcbde3dfb0b5049ef7d4414d94dfa1a5c
-0467c210f18fde1929ad87c479583e55a7dc9849d9c927d0e46ce0e864ef412e
-25dce73c2c58c6bc26430662d2215cb7542c1e58c6a4f8096d09a5e4e7aa4bee
-6409da6ff6338fbbc1f4082099a7a8eda1a4f356efc823e5b89b4a8051c3b091
-3374790fd43e0469b3533e9bb24c6aca8efe32a617b6d25dede40e5f89a15a57
-da9e33b539bbbc36a157a3ef211683eb8f6ff2b04680baa613ee074a8e09f0cf
-f4ac01afa65a177e2862530a9c0b6c3db50103f0748ff16f00d4a7dcc093da4f
-d2a76f03fdec6c6d785059b4932921de9c66c0d34bb33785b4582ba7206a4944
-2996e3c17c2bb1f81c08da8bf5cc232bf24596a4e60e231e50ea7573ff454693
-3baba3123b9b3f13f0198bed07cc852f0a62b973723be9d083ae6851ac38c4a7
-932a2b5b5a4bc136a0e5f2f39fd871935454387558f9ee48682b18c266042b36
-cae0c6e5422b15fb231bbd2fa1ca49dad9a0d1d6b9670a7ccca2237632ee3aff
-e892d230c9a635660300374fc83e8fa88b0069b3371ffb273065f2946b21a780
-39aab4635ccb6298c6b53c3965b82935020aeef058ac8dfb0faf2f04d43c02dc
-07cee8c9f18d7e17c77e11a8c98e7d85c2c4a05eeef5a7eff685970e21a44283
-e4029d076649fdf322adfb5970a9615a43a4d645ed0050bf55e65cdd82870f22
-bb49484ed0a24dd636a0f91169e1fab5c649cb9aeabe58e23fab7a6d30fc873f
-8ac49ae3208427bb7ce54f5021f4ef7ad3d24cb3910e4eca87c3ac60a7509b90
-a7f6ddd4eff63abb930db9eeed8c2427542b338ba06a013a0e33498d3efbe151
-032235230bbdb29c4d5eda8d3aa3342a73d882dc8e71ebc704d037244691684d
-fa4d8fb406d3107597b755a757e3a973d67faae6b6cb85eaececf2f37fc103e1
-4a56e22738369666fbbe05cb12a9079a4770cb246989e1c7e0d22963aac43beb
-e05952ad57220c20aee43d5f152eec01f465e6a0e022d11c27c126a862efa31d
-a07f8ea0f453925cafeba4dfd27b1b111ad857131e15ad30df585064e815a606
-d021ba159be2023fe418d4dd1810603a958a08b38fbdf4a67321e4e291e01a42
-49108564f9f076d8bb2b8d118caf2fe89d36b0143558717457477b89f2ea1ad3
-096a31b1e3a0a64424c40e01000ce4bff4ecd66e0729e5cce76b7e81fd6d85e6
-684a55800c0c3be5d353adf3d71d2714f13c5f25a85321b80fa4756ab149401d
-c0e37c84779e0c1d8b5888afa34226832646bdb8f04598e9999ad6d1cd3aefc2
-5fa8550b772f0293a3c89d4ca98f7f3b1ee142277c89be19fbc46efd751a5c5b
-e1ede4dd0dbb1138cb2a413dc82424d0b6f70663d834970783a0d14693f01d78
-f90e7fa5fd29024cff3b1fc1a0ffa45ef076809b88490623ae8ef6028cc5de5a
-faaff2b7f769f1e43d2560cf88234d9d06076ea7b210591ff45c208c49b9d3fb
-275a631426d9996ebf411425a0305a8cb981bbb01c17e720eb93279d473a02ce
-897bd3054cf8c41a59003a5da2a8cb211f51f763b5df65e6bc2683a913631631
-872a90b7d1e2cb902ec5e39d39edcc552b3b7a7e313a0dfb2eb2b44f136d7ffd
-e35d8227c5e55bbb6380309f2352d019434518ff81e6b97ff6720b944843e1e9
-e053632d88be90411f9fbb252f0053adfca380f83bb6718ca2a80efed02e709f
-a9e193524729b13f69c018cb76ef14bb18bfac04edae551cbe68431243781af7
-7b8e7983d9152e8ba70ad84c8fdf33b94bb5ddca2a1c31763b9c5e9b966a95c5
-0b24f77377d7d6eb9f905540f1f559fd535b40f016ed43769c2b6aca26cf3aee
-7288dc521c50e80ab9d844bdbb222fbe7033de2d94e3678aba247d0a9971f11a
-d2424959565f31cbf550ee7e64a3e866c7f9da4e9a4daf0cb8dd06773ce936a7
-cdb3d3f7527e08b8a583609ecdc2b87b88dc1599407fe4c2e2c6c098331ba8f2
-3942096f076346b38ea1c526f473d308606b265030e6d543d3db2a9fef28dd39
-a1bd55e0a29d3937eb008d6776797fd122e77c1baed06c24475e7980d59ef01b
-d8f513c3ecfbc39cf1a819812682c32ffbc9a9bff3f11b9119d02e0bd1454f64
-87d09883afd03821679b9f8d06df44c3bd6b3f787cc868436a5db07bcb79f7bb
-e508920d26b3a7294254ce76ac14c505f2296343defaade1ef3ec325776843f3
-3b7143d941ee5338c1fee32b6e71b425db8133b5af00871ad82c84a851090e3c
-58542f243b24a7976200b8bf83d6e4f0383a5a8c8557ae7b3ff77b23e84391d8
-8dd8bc1be9b620fbc091c506ae8767dd642aff954aa216d84b4963fefc35c14c
-7c1866200c6d88b23fc75d146bb854258d31169a3cdf04eac41e27e9eb782c01
-4a021f701b68d4975052168634f8e45c339d9557003bdce94e6138685581731b
-b3bdb005d6d211f73330ae3c094654abf4698c07f8c74e71d023dfd242ee83b1
-306786124dd8c6bfa7801e66cb944be7ebcb3fe803ec97067af7afc8a4e9ac9d
-11
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIXSPX-Regular) readonly def
- /FamilyName (TeXMUSIXSPX) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -300.3 def
- /UnderlineThickness 150.15 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 502 def
- /descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-dup 156 /IJ put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a8029f0e71748d5def5
-e137746bf8ef0e89c67c47ba75fc29a5a69e9a3248bb49919ecc79fdf5bddc0e
-e7e7bea878b6155cd00fec35e30536436e70f36ffc1a68d72759f15135973550
-0321f5ac2460d16083d3fae7e66abe637317fd2266729799619a9630ae656dcb
-7bd469d535dd5babd7118c863ea6dbc8d38036164bf26710b373c41970528bd2
-595df813bf1368c79c441882ea3ca5c00ea0684210a760dacfa9dfa34934de03
-8ff58ec5dad266829a690c8ad001818f546d7450279bca4d2a10a1cc591a7d96
-3269323963a2cdbfb4f987900555931a15229864557745b27d71c3fd75936b90
-a655327bd46a9207289bd811f196c845154e2a03010bf9c2034d56a81d146df2
-6ea84da6e4f1ceb3112081e053be3c2f16e87635070686bac94a1061013cbad5
-c38c47c63c126e68343fb42afb1682ea8409e9fa0ff1f834395b17df6719be95
-4af8ba83374833e2c4e3ec1770bce924b11c3dc8938ad548950890f8398ba941
-bfb2efe487b9abbfc82c68a2d816a3dcd667b861c33fb7710c2374673c84c8fa
-e731ce649357372c266acd9e5a043010ecb9826ee92b6c6df0047549e691e1a0
-115e3e8e908872e50beec2b2efeaeb53855102422c2496b00e1fc3c72de33226
-7bdd9b831022345040b9654679ee7e4c365bf445ab79566b6248ba821e692d40
-6b97d2208e7b5eae7ec0f107d9235a1b1d261236b4c7ec57b76aa75e13772110
-d1f8e8bc52bd9e06a75ff96aeb0cebb22cdc3197b717a6e84cde4f591525abce
-af81269046781802c77c1aedd8336993f085b127cb3af63803f090fda783dc8a
-4feea89fe63fbaef4e6eefdeb4979d851030cf7ebecc05abe0c3d1d17378459a
-8e53a0b4a9e4543e0f263069f284e575897bc00852f412a63770cb17d9b22133
-844e1643c4928a2e1635b66aa7988513ce5ae838407d46b526b8bb1905ea6344
-0c810c8dc80a7aa57b4424c9a8689014707c28aed3e84b39521026c9f6049727
-4ae39f87fb8a17a6148ebcb65e89c6345a1a0b88151d1fcd5d46fe222c8ed501
-6d1fa871e3ae0b62964692741bf7feeac000978876aec8fe4e12c025d4154ad2
-52d70f52047842d2a423ba95e9436e79571fe7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/18.dvi) @start /Fa 161[15 1[15
-1[15 16[53 1[53 0 15[20 1[20 1[20 4[0 4[0 31[0 0 6[0{}14
-66.4176 /TeXMUSIX16-Regular rf /Fb 99[0 156[{}1 83.022
-/TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 98 a Fb(\234)p -182 148 1765 2 v -182 165
-V -182 182 V -182 198 V -182 215 V -182 -18 V -182 -1
-V -182 16 V -182 32 V -182 49 V -182 215 2 234 v 66 x
-Fa(I)-182 31 y(G)-127 197 y(2)-127 15 y(2)-46 214 y(6\010)-26
-197 y(\010)-46 172 y(2\010)-61 231 y(Z)p -31 231 30 2
-v -7 230 2 114 v -26 230 a(\010)-102 -2 y(2)36 b(\010)-83
--10 y(2)h(\010)-63 -27 y(6)17 b(\010)p -26 73 2 100 v
-42 x(\010)p 202 215 2 234 v 236 197 a(6)5 b(\010)241
-172 y(6\010)245 239 y(^)p 256 231 30 2 v 280 238 2 122
-v 261 238 a(\010)224 -10 y(6)17 b(\010)241 -27 y(4\010)224
-15 y(^)p 261 73 2 100 v 22 w(\010)p 489 215 2 234 v 498
-197 a(6)29 b(\007)527 172 y(6\007)532 239 y(^)p 542 231
-30 2 v 566 238 2 122 v -1 x(\007)654 197 y(6)35 b(\007)689
-172 y(6\007)663 238 y(^)p 704 231 30 2 v 728 238 2 122
-v 31 w(\007)498 -10 y(6)29 b(\007)527 -27 y(4\007)532
-15 y(^)p 547 73 2 100 v(\007)659 -10 y(6)h(\007)689 -27
-y(4\007)694 15 y(^)p 709 73 V(\007)p 870 215 2 234 v
-929 206 a(\007)929 189 y(\007)929 177 y(F)929 193 y(F)929
-210 y(F)929 226 y(F)929 164 y(\007)p 948 222 2 113 v
-19 w(\()929 222 y(\007)886 -10 y(2)s(\007\000)929 -18
-y(\007)929 -27 y(\000)p 924 -34 30 2 v -8 x(\007)929
--43 y(\000)p 929 64 2 100 v 49 x(\007\000)1043 197 y(\007)1043
-189 y(\000)1018 181 y(2)5 b(\007)1043 172 y(\000)1023
-156 y(2\007)1083 152 y(\000)1018 214 y(Z)p 1062 214 2
-107 v 10 w(\007)1043 206 y(\000)1150 -27 y(2)g(\007)p
-1170 -34 30 2 v -16 x(\007)1155 -60 y(2)p 1170 -34 V
-1170 -51 V(\007)1150 -2 y(Z)p 1175 52 2 113 v 1175 52
-a(-)1175 -2 y(\007)p 1289 215 2 234 v 1293 172 a(4)40
-b(\010)1313 156 y(4)20 b(\010)1333 131 y(4)p 1348 132
-30 2 v(\010)1338 189 y(\\)p 1372 189 2 101 v(\010)1313
--27 y(4)g(\010)1333 -52 y(4)p 1348 -34 30 2 v 1348 -51
-V(\010)1298 -10 y(\\)p 1372 -10 2 81 v 40 w(\010)p 1581
-215 2 234 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 18.dvi
+%%CreationDate: Wed Feb 19 18:22:08 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 21 707 453 794
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 18
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.19:1822
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 40 /parenleft put
+dup 45 /hyphen put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 70 /F put
+dup 71 /G put
+dup 73 /I put
+dup 90 /Z put
+dup 92 /backslash put
+dup 94 /asciicircum put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a136155b89cf3bd07b12d36848c7a4e282a8a06d
+a8cc955105643c1474bcea002d2ef2894cfe05ce067c523558b99fb2262fd671
+16d23bd90ba0d3bc4d7735822cada82c532fdd2551f2a32bcf1f9e29895b17db
+bd673f79cc1dc21baa8fe48eb4bda37dac63ea863b03f053e9cc1f5614917c7d
+8348526f592a02714842232afa7dd6c8aa27c518ed07c775ea106a67d083cac7
+d4e6243535756f28dc5f7542653d7c711215e199b612aa5148c52d5dc91104fb
+0453af9c32ff342935f3c58edfde053060f3208aeef4377759d186b60a24b8e8
+32b299d59c6e0e1f1e4e4e1f6bd533fc5e1358e3bde969f1b4d04009d55d1b19
+db3c8bd16760a91b02542a30e4da6cbfb26bc8151ae184b378b78cbe91ac84ea
+cbff06018d27f19c585db0cdb8028fbe80a76c9d20f2655bb7c75050f9ea3e49
+5390a9d6f6d87436ecb912e8fbb294e7629d1afd20cb77d50f03e0d47aba0483
+ad9986bb218fea419dd4287b657c8b274b84bb526f687960ebca84da038c6ffa
+13d8363238f2c7678027cf71e388b02fcbde3dfb0b5049ef7d4414d94dfa1a5c
+0467c210f18fde1929ad87c479583e55a7dc9849d9c927d0e46ce0e864ef412e
+25dce73c2c58c6bc26430662d2215cb7542c1e58c6a4f8096d09a5e4e7aa4bee
+6409da6ff6338fbbc1f4082099a7a8eda1a4f356efc823e5b89b4a8051c3b091
+3374790fd43e0469b3533e9bb24c6aca8efe32a617b6d25dede40e5f89a15a57
+da9e33b539bbbc36a157a3ef211683eb8f6ff2b04680baa613ee074a8e09f0cf
+f4ac01afa65a177e2862530a9c0b6c3db50103f0748ff16f00d4a7dcc093da4f
+d2a76f03fdec6c6d785059b4932921de9c66c0d34bb33785b4582ba7206a4944
+2996e3c17c2bb1f81c08da8bf5cc232bf24596a4e60e231e50ea7573ff454693
+3baba3123b9b3f13f0198bed07cc852f0a62b973723be9d083ae6851ac38c4a7
+932a2b5b5a4bc136a0e5f2f39fd871935454387558f9ee48682b18c266042b36
+cae0c6e5422b15fb231bbd2fa1ca49dad9a0d1d6b9670a7ccca2237632ee3aff
+e892d230c9a635660300374fc83e8fa88b0069b3371ffb273065f2946b21a780
+39aab4635ccb6298c6b53c3965b82935020aeef058ac8dfb0faf2f04d43c02dc
+07cee8c9f18d7e17c77e11a8c98e7d85c2c4a05eeef5a7eff685970e21a44283
+e4029d076649fdf322adfb5970a9615a43a4d645ed0050bf55e65cdd82870f22
+bb49484ed0a24dd636a0f91169e1fab5c649cb9aeabe58e23fab7a6d30fc873f
+8ac49ae3208427bb7ce54f5021f4ef7ad3d24cb3910e4eca87c3ac60a7509b90
+a7f6ddd4eff63abb930db9eeed8c2427542b338ba06a013a0e33498d3efbe151
+032235230bbdb29c4d5eda8d3aa3342a73d882dc8e71ebc704d037244691684d
+fa4d8fb406d3107597b755a757e3a973d67faae6b6cb85eaececf2f37fc103e1
+4a56e22738369666fbbe05cb12a9079a4770cb246989e1c7e0d22963aac43beb
+e05952ad57220c20aee43d5f152eec01f465e6a0e022d11c27c126a862efa31d
+a07f8ea0f453925cafeba4dfd27b1b111ad857131e15ad30df585064e815a606
+d021ba159be2023fe418d4dd1810603a958a08b38fbdf4a67321e4e291e01a42
+49108564f9f076d8bb2b8d118caf2fe89d36b0143558717457477b89f2ea1ad3
+096a31b1e3a0a64424c40e01000ce4bff4ecd66e0729e5cce76b7e81fd6d85e6
+684a55800c0c3be5d353adf3d71d2714f13c5f25a85321b80fa4756ab149401d
+c0e37c84779e0c1d8b5888afa34226832646bdb8f04598e9999ad6d1cd3aefc2
+5fa8550b772f0293a3c89d4ca98f7f3b1ee142277c89be19fbc46efd751a5c5b
+e1ede4dd0dbb1138cb2a413dc82424d0b6f70663d834970783a0d14693f01d78
+f90e7fa5fd29024cff3b1fc1a0ffa45ef076809b88490623ae8ef6028cc5de5a
+faaff2b7f769f1e43d2560cf88234d9d06076ea7b210591ff45c208c49b9d3fb
+275a631426d9996ebf411425a0305a8cb981bbb01c17e720eb93279d473a02ce
+897bd3054cf8c41a59003a5da2a8cb211f51f763b5df65e6bc2683a913631631
+872a90b7d1e2cb902ec5e39d39edcc552b3b7a7e313a0dfb2eb2b44f136d7ffd
+e35d8227c5e55bbb6380309f2352d019434518ff81e6b97ff6720b944843e1e9
+e053632d88be90411f9fbb252f0053adfca380f83bb6718ca2a80efed02e709f
+a9e193524729b13f69c018cb76ef14bb18bfac04edae551cbe68431243781af7
+7b8e7983d9152e8ba70ad84c8fdf33b94bb5ddca2a1c31763b9c5e9b966a95c5
+0b24f77377d7d6eb9f905540f1f559fd535b40f016ed43769c2b6aca26cf3aee
+7288dc521c50e80ab9d844bdbb222fbe7033de2d94e3678aba247d0a9971f11a
+d2424959565f31cbf550ee7e64a3e866c7f9da4e9a4daf0cb8dd06773ce936a7
+cdb3d3f7527e08b8a583609ecdc2b87b88dc1599407fe4c2e2c6c098331ba8f2
+3942096f076346b38ea1c526f473d308606b265030e6d543d3db2a9fef28dd39
+a1bd55e0a29d3937eb008d6776797fd122e77c1baed06c24475e7980d59ef01b
+d8f513c3ecfbc39cf1a819812682c32ffbc9a9bff3f11b9119d02e0bd1454f64
+87d09883afd03821679b9f8d06df44c3bd6b3f787cc868436a5db07bcb79f7bb
+e508920d26b3a7294254ce76ac14c505f2296343defaade1ef3ec325776843f3
+3b7143d941ee5338c1fee32b6e71b425db8133b5af00871ad82c84a851090e3c
+58542f243b24a7976200b8bf83d6e4f0383a5a8c8557ae7b3ff77b23e84391d8
+8dd8bc1be9b620fbc091c506ae8767dd642aff954aa216d84b4963fefc35c14c
+7c1866200c6d88b23fc75d146bb854258d31169a3cdf04eac41e27e9eb782c01
+4a021f701b68d4975052168634f8e45c339d9557003bdce94e6138685581731b
+b3bdb005d6d211f73330ae3c094654abf4698c07f8c74e71d023dfd242ee83b1
+306786124dd8c6bfa7801e66cb944be7ebcb3fe803ec97067af7afc8a4e9ac9d
+11
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIXSPX-Regular) readonly def
+ /FamilyName (TeXMUSIXSPX) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -300.3 def
+ /UnderlineThickness 150.15 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 502 def
+ /descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+dup 156 /IJ put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a8029f0e71748d5def5
+e137746bf8ef0e89c67c47ba75fc29a5a69e9a3248bb49919ecc79fdf5bddc0e
+e7e7bea878b6155cd00fec35e30536436e70f36ffc1a68d72759f15135973550
+0321f5ac2460d16083d3fae7e66abe637317fd2266729799619a9630ae656dcb
+7bd469d535dd5babd7118c863ea6dbc8d38036164bf26710b373c41970528bd2
+595df813bf1368c79c441882ea3ca5c00ea0684210a760dacfa9dfa34934de03
+8ff58ec5dad266829a690c8ad001818f546d7450279bca4d2a10a1cc591a7d96
+3269323963a2cdbfb4f987900555931a15229864557745b27d71c3fd75936b90
+a655327bd46a9207289bd811f196c845154e2a03010bf9c2034d56a81d146df2
+6ea84da6e4f1ceb3112081e053be3c2f16e87635070686bac94a1061013cbad5
+c38c47c63c126e68343fb42afb1682ea8409e9fa0ff1f834395b17df6719be95
+4af8ba83374833e2c4e3ec1770bce924b11c3dc8938ad548950890f8398ba941
+bfb2efe487b9abbfc82c68a2d816a3dcd667b861c33fb7710c2374673c84c8fa
+e731ce649357372c266acd9e5a043010ecb9826ee92b6c6df0047549e691e1a0
+115e3e8e908872e50beec2b2efeaeb53855102422c2496b00e1fc3c72de33226
+7bdd9b831022345040b9654679ee7e4c365bf445ab79566b6248ba821e692d40
+6b97d2208e7b5eae7ec0f107d9235a1b1d261236b4c7ec57b76aa75e13772110
+d1f8e8bc52bd9e06a75ff96aeb0cebb22cdc3197b717a6e84cde4f591525abce
+af81269046781802c77c1aedd8336993f085b127cb3af63803f090fda783dc8a
+4feea89fe63fbaef4e6eefdeb4979d851030cf7ebecc05abe0c3d1d17378459a
+8e53a0b4a9e4543e0f263069f284e575897bc00852f412a63770cb17d9b22133
+844e1643c4928a2e1635b66aa7988513ce5ae838407d46b526b8bb1905ea6344
+0c810c8dc80a7aa57b4424c9a8689014707c28aed3e84b39521026c9f6049727
+4ae39f87fb8a17a6148ebcb65e89c6345a1a0b88151d1fcd5d46fe222c8ed501
+6d1fa871e3ae0b62964692741bf7feeac000978876aec8fe4e12c025d4154ad2
+52d70f52047842d2a423ba95e9436e79571fe7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/18.dvi) @start /Fa 161[15 1[15
+1[15 16[53 1[53 0 15[20 1[20 1[20 4[0 4[0 31[0 0 6[0{}14
+66.4176 /TeXMUSIX16-Regular rf /Fb 99[0 156[{}1 83.022
+/TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 98 a Fb(\234)p -182 148 1765 2 v -182 165
+V -182 182 V -182 198 V -182 215 V -182 -18 V -182 -1
+V -182 16 V -182 32 V -182 49 V -182 215 2 234 v 66 x
+Fa(I)-182 31 y(G)-127 197 y(2)-127 15 y(2)-46 214 y(6\010)-26
+197 y(\010)-46 172 y(2\010)-61 231 y(Z)p -31 231 30 2
+v -7 230 2 114 v -26 230 a(\010)-102 -2 y(2)36 b(\010)-83
+-10 y(2)h(\010)-63 -27 y(6)17 b(\010)p -26 73 2 100 v
+42 x(\010)p 202 215 2 234 v 236 197 a(6)5 b(\010)241
+172 y(6\010)245 239 y(^)p 256 231 30 2 v 280 238 2 122
+v 261 238 a(\010)224 -10 y(6)17 b(\010)241 -27 y(4\010)224
+15 y(^)p 261 73 2 100 v 22 w(\010)p 489 215 2 234 v 498
+197 a(6)29 b(\007)527 172 y(6\007)532 239 y(^)p 542 231
+30 2 v 566 238 2 122 v -1 x(\007)654 197 y(6)35 b(\007)689
+172 y(6\007)663 238 y(^)p 704 231 30 2 v 728 238 2 122
+v 31 w(\007)498 -10 y(6)29 b(\007)527 -27 y(4\007)532
+15 y(^)p 547 73 2 100 v(\007)659 -10 y(6)h(\007)689 -27
+y(4\007)694 15 y(^)p 709 73 V(\007)p 870 215 2 234 v
+929 206 a(\007)929 189 y(\007)929 177 y(F)929 193 y(F)929
+210 y(F)929 226 y(F)929 164 y(\007)p 948 222 2 113 v
+19 w(\()929 222 y(\007)886 -10 y(2)s(\007\000)929 -18
+y(\007)929 -27 y(\000)p 924 -34 30 2 v -8 x(\007)929
+-43 y(\000)p 929 64 2 100 v 49 x(\007\000)1043 197 y(\007)1043
+189 y(\000)1018 181 y(2)5 b(\007)1043 172 y(\000)1023
+156 y(2\007)1083 152 y(\000)1018 214 y(Z)p 1062 214 2
+107 v 10 w(\007)1043 206 y(\000)1150 -27 y(2)g(\007)p
+1170 -34 30 2 v -16 x(\007)1155 -60 y(2)p 1170 -34 V
+1170 -51 V(\007)1150 -2 y(Z)p 1175 52 2 113 v 1175 52
+a(-)1175 -2 y(\007)p 1289 215 2 234 v 1293 172 a(4)40
+b(\010)1313 156 y(4)20 b(\010)1333 131 y(4)p 1348 132
+30 2 v(\010)1338 189 y(\\)p 1372 189 2 101 v(\010)1313
+-27 y(4)g(\010)1333 -52 y(4)p 1348 -34 30 2 v 1348 -51
+V(\010)1298 -10 y(\\)p 1372 -10 2 81 v 40 w(\010)p 1581
+215 2 234 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/19.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/19.eps
index 8cb0c0118ca..804dc595236 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/19.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/19.eps
@@ -1,696 +1,696 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 19.dvi
-%%CreationDate: Fri Jan 10 23:20:17 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 742 453 791
-%%DocumentFonts: TeXMUSIX16-Regular TeXMUSIX11-Regular TeXXSLU16-Regular
-%%+ TeXXSLD16-Regular TeXXSLHD16-Regular TeXXSLHZ20-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\TEXMF\EMTEX\BIN\dvips.EXE 19.dvi
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.01.10:2320
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXXSLHZ20-Regular
-%!PS-AdobeFont-1.0: TeXXSLHZ20-Regular 001.000
-%%CreationDate: 01-07-25 at 03.54
-%%VMusage: 1024 53154
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 920 80 0
-%%EndComments
-FontDirectory/TeXXSLHZ20-Regular known{/TeXXSLHZ20-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLHZ20-Regular) readonly def
- /FamilyName (TeXXSLHZ20) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -500 def
- /UnderlineThickness 250 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 920 def
- /descent 80 def
-end readonly def
-/FontName /TeXXSLHZ20-Regular def
-/Encoding 256 array
-dup 131 /Ccaron put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-10005 -224 10005 234}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a024719d2b1f1af8fdf26e0f4
-350636999d3ff5b821fe8a0a7226d9bd80b806b537eb3eb1adda96d8cb3b39e3
-df26a8b109e7ce6e5d0a27e558db819c52830eb633a0d63303d81b8c37ed82e1
-e9522036e54f6242e6b7c9db8a5c4b3820cd2873ebc92a40ccf253a570a4dc1b
-8ea2328a611ed2a2a2a5889fd5d7d00a347c2ffe10c8e82839df810142e86227
-4af38c03ec412cd6d8b3e288aec5e2d48eb22d8d087efa3ec1cd735c937c9ffb
-c85d26b6b2cf9bb056084f7a7a957451d81326e4d84d1c94d9f2cf440923010b
-3dde69dd3a482707d189b09b7ca5b3087e9cb3483569ef323a9ad9f45195f737
-98d262d3c65360d755f59cee86be8e402e4ee4dfc52064643484f8e7f918fc2c
-ec2a5a07652588ce5047476f2034fef4831456b7c9df5ca57d7fefba078a330a
-a3d47d4db5b4d2669757817c754b6cb905dace041594e0396a0be4a00506e687
-3997a34909e78f17675eb3a3f5a507e82c8fbf7ce3e2b32279c16898ac65c69b
-bce7e519655b26d79f68901100ac7507269a40cac8a34d738d8e9d7608cf9e26
-f9bff04d8bbe656a22a459fc6f56855fec8b07e144ce5b246b45822fd9e094f1
-9bf97e9e1bd71da9fed6a487f7591dfb2504fb055dbfa92a22290ebbc3b35d92
-e4853a43f263ea698424ff885f819fd5977bf82779e26a757b44fdca0e1b33ad
-cf0f74e94161b6f7b85575b5477375258a82d6ee9828ac58d58ce24ad2890d91
-69dd9ca7cff90228634c1a1b6062c91c90cb81b8ae0f4cb16a9427bec4c52d89
-e260683972d6d0e9ee60c5034ac848c846e4fd2be7bc5eccb1cc0ade512270ef
-89cb7bf156b8ada09f493c61169608029bb6e4d990cd1ed5b2105076c777d64c
-ffb88883387ac5a83137b238764aa65a72fdceec
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLHD16-Regular
-%!PS-AdobeFont-1.0: TeXXSLHD16-Regular 001.000
-%%CreationDate: 01-08-18 at 23.12
-%%VMusage: 1024 39131
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 900 100 0
-%%EndComments
-FontDirectory/TeXXSLHD16-Regular known{/TeXXSLHD16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLHD16-Regular) readonly def
- /FamilyName (TeXXSLHD16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -200 def
- /UnderlineThickness 100 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 900 def
- /descent 100 def
-end readonly def
-/FontName /TeXXSLHD16-Regular def
-/Encoding 256 array
-dup 46 /period put
-dup 129 /Aogonek put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-6 -30 6002 2004}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a0247182991f7a6ebe2f3ffbf
-67983b7a517bf16b546dcf873181cf9fac564c4f80e3c3715e97e99dc6628f77
-6d19606916c6466bafb66f44a4c09fcfa2d5962acdfe6da987f89c953fd5460a
-f2a257c4831f5950d01bf228c6ad12753b2ca5a4cb9a192498161d7c6f13efce
-13653e492cc904c8f8cc53651807e06e1b89629ac1ff5dfa06e67b160d8a713d
-98db3b666920024c22c2632abfd2601d47fe439a03fe440373af8ee4f0ede24b
-c0c759f3da0dd6b657d5221204124bb0f46116e195814e098acf4a28653f5da1
-b25e20376f0e347040b84e074f68b689a9c3b1295d025c4222c991e735380e6c
-a53488b74f2412c009aaeae6beb80c980a37af1487e6f1dee300bfcb19a0772c
-068a8a29c9227d977f04847274c4690fa2d0152c5b66eed4f921646fd3e37746
-43509ce5a7bedf916f5ad04893478e3a0a6740c54dac21c52a4dc9542df7c71d
-99fdc58bd738a1e66637f619817a00cfe9fcdbdd5d8acf9c0f5fbff0300c0f80
-c3be2298dfbec78bc36f7746a67ebf4015ade2f7f18b865a1c5cc0f3680d4489
-e45560715c06e56a004d4cc389f7836df1adc666e2d8d75b9abc33b7af0f56fc
-65e6c0d3df41a5551cb881141e7b3a1cd33216e435f3dab4e7168ade882d4c62
-0d5f1d84f0077ba442c95444525e684a23f358da594c5c6fa2bf076bc53d6067
-5592438e3e9a36a2e2f909e8ef5bb530e44dd001396639e8df0e7d8afe779544
-270abc4767599877388e16a58e4065289606955f101491bc83bdbb2185723a49
-43596b16345dcd69bafab217ac5a76cf46e009f167b623dd7ad976ae84345fe0
-526e28e11aa63c3f76851633d93c14093ab3b02adcd080ce7eae1467059182f7
-976e1d050752601e9fac98c6e213f9e3b2007944824e52605f8797eb430557cc
-188bd4cf30f7acc948f8dd0476fee976b1d000bb260a6248764faad78b5f4e99
-f06ac55dd4bec86456fb334f88da71b0769eb2728f0261a31d287b57ad0e666b
-4d64fe46c7fd0a493f2b25d6218b67f98ea71289a5133fcefff6ab71492b2fbb
-cd89c8f9ac5e
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLD16-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
-%%CreationDate: 01-07-22 at 22.48
-%%VMusage: 1024 40444
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLD16-Regular) readonly def
- /FamilyName (TeXXSLD16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -199.203 def
- /UnderlineThickness 99.6016 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 199 def
- /descent 801 def
-end readonly def
-/FontName /TeXXSLD16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 17 /quotedblright put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -1058 2126 349}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
-a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
-f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
-9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
-bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
-0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
-22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
-072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
-999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
-dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
-8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
-20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
-489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
-5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
-5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
-b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8fd3
-0795db3bf32e261166ee98ba6858a5030cf7650b7179c63498a86967adcabd02
-ad412602c1e86d7ae63a72dfefe706a849eb5d11c2fc956669822289cde23015
-eaec5db02ca876e457875c0c8001684f2aecbe2c8ee603e33609e7b35c69dc5c
-32956ba8567eb8c98736e41a21e2199c5415352616a0cb6057624ca895ca968a
-af1323ddbf654da69958853f48d8c39718aadccc5485aea769552353ed2e01ff
-4c3ff437a2b89fc0a249ade0751f8e038a9ae501ef2dff54af78e23f809a2322
-7e9fb29f327414a7b2b5b528e9bb6ba4e900ddc8827d8c25e05cde705283977b
-e50a2573d8b8c78aa52bee18717a2f8b2c066a022d525aeb99e71aee8c115164
-3d4ce057b2d597d4e97186f2220d0a072970ea561ab58f4e8a33eb8014e87e18
-2f50769685bd6357e79e534e5c624699ad15b430268352130efc88e9b4cc6ad0
-f900afded9c52fa68f34fac70ecb0729e7b9626de998f5bde1a7b1294d3adb9a
-5cf548
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.16
-%%VMusage: 1024 39962
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 998 2 0
-%%EndComments
-FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLU16-Regular) readonly def
- /FamilyName (TeXXSLU16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -200 def
- /UnderlineThickness 100 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 998 def
- /descent 2 def
-end readonly def
-/FontName /TeXXSLU16-Regular def
-/Encoding 256 array
-dup 128 /Abreve put
-dup 161 /aogonek put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -345 2126 1062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
-74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
-e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
-6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
-881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
-90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
-181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
-e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
-65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
-ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
-bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
-efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
-2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
-2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
-bacda202d38d8ac2fe8dcc04763fda33c0278c1e0671c52cbe24d29f1c6bc60d
-dd6d8484e978fa7d755f62a3b464a030f5d4f46300caa465fcda347117bf2fa3
-5f834b698e824004f0fcae0016e4405df87b9d2f783e8370f1325f0301b74f44
-d104f49b452daf117bfe343cc0c2ea572e2af1297a54362b756c25894979a9bd
-87a060acd6cbda8d0026cf0418db1aa1eefd05a269e0fe72322c6ba798d049a8
-b24888bfa9f6c3a1ac8c208b906baf8603e146e789b0bc4033ed90963b67b6b1
-95ebeb79dd58fdcf5d561e69404e0de78ab82fb367cb202fcee435745272ff68
-6fdf410cc8b07f6bd6054567b8d072312d091416e08789658284d0d6c53ae649
-26c0c085748c357e316ef072dc1417180271df11b197186173bc0e1ae1977e80
-454c4df0815fb8d3f233d81271678fc7c83388e8b9b45a881b8a62b63e2f18cc
-c218
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX11-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
-%%CreationDate: 01-07-25 at 04.06
-%%VMusage: 1024 36750
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 700 300 0
-%%EndComments
-FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX11-Regular) readonly def
- /FamilyName (TeXMUSIX11) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -200 def
- /UnderlineThickness 100 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 700 def
- /descent 300 def
-end readonly def
-/FontName /TeXMUSIX11-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 12 /ogonek put
-dup 40 /parenleft put
-dup 52 /four put
-dup 154 /Zcaron put
-dup 156 /IJ put
-dup 217 /Ugrave put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-619 -3182 6250 3186}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a847aadaec31b51b998
-59733d5965f7ebcc0351a5a947e203d3adc0bc29db0acc35f7cff12999b6bac9
-b175d75f7e28da0efb49df905696a15f286c24104678c0a23e3036773f43d518
-ef9b221c2916fa7732445aef9904c9d7f30fbe24f9fc84cd9762ce622320d367
-3a3ae614b506a40dc0cd53205c0b720232cf56c55112662720e711960b6ca8b0
-8904375d12d99708cb2f98ead5f37c7cbe9b1244d96482dd77df61f6c5e1afce
-eecced3ad9b79008f8fc60ad6c1cf55ac1307e0d3aba49166dc7190b99d813d7
-9d94be6556485374d8587b8215fc3c49529fec50eb85956051ff88d1a1740d74
-90d715f15183c70fbb5f7e82aa549c257632404f70307c696be81f0f165927d0
-0ecd03dcbd40ba9cdad415d22203c14f29137ecd02f3e88ca7ff605ab957986c
-ec0af486dafe0791ba9bbeca1bfdac27f8feb654fb19373e1336da27eadb1d99
-bd8301bfa5ac250b761988834f438ff0e862a625f85deba7e62f33d813b15650
-b8be07a5fb8315ab4705a828c54acbe6e9b26a8fcaca75b3e19912512f3bad5a
-ce7fc39e73eae0e4c162f0fdb25af98ef04fd9a4a6e1c9d372cb9dbbd880fc69
-5eb471f7da60566cac0b6a193dcf574938dc289bab15ccaf1a9d52f848a50835
-2425eba0b693a239373e374216861537a33a9e0e0c38f1f1bc29dc642761894d
-de4fcc360c1184fb1afe46d02ccb5857fd8b0ffab05a9f1389c1121b03999902
-3b03d1b6a2459c89e303f37aca22b98f67ea20a8b09962256daa592301ba9f87
-217241aa4c1cd38300aed649268c2b16013eae3dfd34a5c93fe632c01368dbb4
-4418f7b65666ebcc77e61f50f82e3909f19ae46397e9a96402ed1dabf3e56bc6
-d70e452d5817c281fe4f61d2ee024fd44ea76d86fc9a92b5538a9825eed911e0
-990064fbff97631be50cebada2a083932875d83ffe2b35091533352537b92d95
-7c852e3891ac5dc80b091ae19f36e4c9a047fedf91507454714f37982720a026
-213cf573136cde64acb4564b1f54532a3c19cec7b09cbdb9ccced6d4c25960c1
-7a0de7cf00899bdb91efb11d4821dd03215a449de072799748fe968b25e94f5b
-ee2ed02d2cad2b911dd215fb3cfd88ad108b56bfb55967231edf494afdaf9a91
-d4b36ecf9d0cd32a60be94964460ef88b0a8b6d954ce14c58f12aa466c0c64a7
-668b5e231e4ade8db4ce3c12f17fa4a20f18140fb2c04339ae47b3bdb8439860
-28e964ce5f620ce95015d3b9bbc56e8d8d1a8f9a3726e0bef50b106bd219123b
-a998bc9dbf032b3e58131a93c915eac4b7e45d1b193fe62be9f18c12f2126361
-706af2c2e8f8ec201b2bc83489cd8c4b4db322905cecb03eee6ec9d47f40a12c
-a1d92a725359b4909185e3be46661f107525b69202dbf8863f072282ffa777f4
-5cd2216520095eedc7d35c5eb7af0dc161f6f400b929351570f0e0304be755bc
-cb2f4b1319bba17b975b228eaa3dd0dc8dffdf88805bce941b708f3097f93c6b
-a6cde17853d9c698d5b6a8bde5ce5b7c0f0bf79744ea1510d51611e86e12fe1b
-329214a8cd92658c347a02d0fac6155bdec4db259fb87c5faae7ed49fe63b2fa
-0c749a32e2ef965dd7631276d516d27193a6f5a4e8848737196c02226d936618
-1c209334160af6e596fc41f87e82b7feac57c260371ca2bd1a83d0b08c34a7ea
-a93907ddb4bd729a2f49dccd5560af2c8357df967e4b4c52612436746ae9f027
-b01687929d3b6255d878fd5503254c08e64763eb81020a9977e88971c070fb2e
-1d313baa52b5d0ea185f3ceded87f865e8af054adade27ae0939b2ed720bba1c
-da6e9caff321c121365350628b05f82ea9721b09771264bafe971050633ffef1
-975ee0523f218ac50368f2f19a2d53c6236a2c98367a8c4f8c229839cbf32666
-8d4c
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 80 /P put
-dup 83 /S put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a62c09d54884ebb7993d409b068ef9ffbe988850
-c498d4d2749836cb2907b5d085eb314b06637f3358e4df5f1be65bf96d16470e
-76a8097e3ad5167ee2a8a59b158bfb3f6de08540957dd90f22b5025f903758db
-66873a85eb8127504ffff0be8e23f44d0653cf3f0485b766967680394dd984a7
-ac9ab3bf0698c4d9da254cc7967a0387511e6d18c08f61bbedf865c575b32e49
-5d19a868c22acb3e0ce208acb1735e4bef6486ed785849df8d38194f93d7b680
-7a4b88664f82675a3dd3116e078616998c06c29a08daba3388abbac9a7e2ed68
-063920e4b3fa6fe906dd30d74625669ea52b62dab4f9108d537bf4f99c6ea674
-b96c85fb967ed77bad1706e2fd5020c545061fd84c4d1439270dadaec62d3172
-9b8ad74524fad7f8fad0002c11668be1cb3b8cb312685887edc1a40794e3db08
-b77d86e9467d4aa7f79b657c26892675cfdb3063f732d425e4eb03b8197133f1
-a23495f20cdcf1b9ac7aaa9843af51b454503afc16fe3ab820cbacb1770423c1
-8cb032fbc8a5cb6384fc8ae33128039410a141dc3f9af7f679c075b70b0b4c05
-f4cfdf9f60990a1c11267809b9e2027fc425c72aefbc7c5e968bb205fb143446
-06d066940788729b4fbdc6f11c7fff2df21190359441d38e4a2c155e6993cf8e
-3e178efdf49058e752598014722d37e132ae3f109944cdb0e036c51a024052bc
-f488de76d1ba3d86a691dbbc8eef8c62530a2c90f5ceb8801c98729e99fb6aa7
-95c1cfa331bc19383fc306b9b2a03c8b0496d4e9d344b11927df793b93aed974
-5bc6e425ab1e9ca9bdc93ddd23d8d58196871b31ed456eae3e299b186d9608c3
-7835ada24251c74416e5e15c857ade163150cc73225c21ba7556f720723e6e5e
-cfc215dbb9ca9bbc4b3d8ef5572f33e47951985b4b482d4c7d71eda7d1f16baa
-071bb1d68cf130bcd204b9102097583b0c84c51aa596597742c9efadfd04e0e2
-a86b0f205eae9c39b78fd608655bba082b7333dfc781b9abede2a36476502f92
-4d24fffd3650e8afb57687ca92e267661a3343832d6142a29ef762c58010d005
-a1b66901fccb3a62bf57f4ae7991b59a02cfd961ee4e430279a3ce9b3ad87ffb
-d698a293cd21071e694a0987d55c28e429caa704fd522fa14562184642690658
-92c1ee2461c9ed35d8f62edda57884f884a96a78dc8324f6cc50e6b9b976de14
-3efee97ddd78b1bbcb175780b5857081d2f932da3f6b98dbfacceecd0e9f60bb
-a056b10e625060bed202c7e253d0f989474f6e34a1ece833d28732cb57f2e955
-d5cd301e6b8e01ce17ea835670ad9d37a899a8dbd9cf76c0c90050308fe73fc6
-94c826a07d761e7fe64e1b8fe829badc4521eeb44cb7ad95f4080a4532ae4ad6
-681faec03ff7ead870df2e6a0d66160b9118d46bf373ea0b7e357506c98d186d
-ee7eac
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/EXAMPLES/PMX/19.dvi) @start /Fa 124[0
-131[{}1 83.022 /TeXXSLHZ20-Regular rf /Fb 126[50 82[149
-46[{}2 66.4176 /TeXXSLHD16-Regular rf /Fc 238[0 9[0 7[{}2
-66.4176 /TeXXSLD16-Regular rf /Fd 94[0 32[0 128[{}2 66.4176
-/TeXXSLU16-Regular rf /Fe 38[17 60[133 1[33 101[13 11[0
-27[0 4[0 7[{}7 42.5073 /TeXMUSIX11-Regular rf /Ff 172[33
-2[0 8[53 62[0 0 7[{}5 66.4176 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1765 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Ff(G)-122 15 y(S)p -56 -27 2 43
-v -68 -27 a Fe(\007)p -51 -34 20 2 v -35 -35 2 40 v -47
--35 a(\007)-55 -61 y(\232)-47 -63 y(\232)-55 -69 y(\232)-47
--71 y(\232)p -30 -34 20 2 v -14 -43 2 36 v -26 -43 a(\007)-33
--13 y Fd(\241)p -11 -34 30 2 v -11 -51 V -6 15 2 67 v
--6 -52 a Ff(\007)p 114 40 2 59 v 114 -18 a(\007)p 141
-24 2 35 v 141 -10 a Fe(\007)141 24 y(\331)146 25 y(\331)146
--33 y Fc(\021)p 161 29 2 32 v 161 -2 a Fe(\007)p 237
-64 2 59 v 237 6 a Ff(\007)p 332 -34 20 2 v 348 -43 2
-35 v 348 -43 a Fe(\014)-12 b(\007)343 -29 y Fd(\200)p
-356 -34 30 2 v 356 -51 V 361 15 2 67 v 361 -52 a Ff(\007)p
-482 49 2 68 v 514 23 2 35 v 514 23 a Fe(\()g(\007)p 547
-31 2 59 v 528 31 a Ff(\007)612 98 y Fe(4)p 622 65 20
-2 v 623 82 V 624 99 V 640 98 2 35 v 15 w(\()g(\007)p
-648 65 30 2 v 648 82 V 672 89 2 75 v 653 89 a Ff(\007)p
-768 65 30 2 v 792 64 2 59 v 773 64 a(\007)p 819 56 2
-76 v 807 56 a Fe(\007)p 839 48 2 73 v 827 48 a(\007)p
-859 40 2 69 v 847 40 a(\007)p 879 31 2 66 v 867 31 a(\007)p
-899 23 2 63 v 887 23 a(\007)p 919 15 2 59 v 907 15 a(\007)p
-939 6 2 56 v 927 6 a(\007)p 959 -2 2 53 v 947 -2 a(\007)p
-979 -10 2 49 v 967 -10 a(\007)p 998 -18 2 46 v 986 -18
-a(\007)p 1018 -27 2 43 v 1006 -27 a(\007)p 1023 -34 20
-2 v 1039 -35 2 39 v 1027 -35 a(\007)819 -3 y(\234)926
--30 y(\234)819 -11 y(\234)926 -38 y(\234)819 -19 y(\234)926
--46 y(\234)p 1044 -34 20 2 v 1060 -43 2 36 v 1048 -43
-a(\007)814 87 y Fb(\201)25 b Fa(\203)h Fb(.)p 1063 -34
-30 2 v 1063 -51 V 1068 15 2 67 v 1068 -52 a Ff(\007)p
-1189 49 2 68 v 1234 64 2 59 v 1234 6 a(\010)p 1348 49
-2 35 v 1348 15 a Fe(\007)p 1367 49 2 27 v 1367 23 a(\007)p
-1347 52 42 6 v 1319 -8 a Fc(\007)p 1387 49 2 35 v 1387
-15 a Fe(\007)1407 -10 y Ff(P)p 1407 64 2 59 v 16 x(\010)p
-1581 49 2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 19.dvi
+%%CreationDate: Fri Jan 10 23:20:17 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 742 453 791
+%%DocumentFonts: TeXMUSIX16-Regular TeXMUSIX11-Regular TeXXSLU16-Regular
+%%+ TeXXSLD16-Regular TeXXSLHD16-Regular TeXXSLHZ20-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\TEXMF\EMTEX\BIN\dvips.EXE 19.dvi
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.01.10:2320
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXXSLHZ20-Regular
+%!PS-AdobeFont-1.0: TeXXSLHZ20-Regular 001.000
+%%CreationDate: 01-07-25 at 03.54
+%%VMusage: 1024 53154
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 920 80 0
+%%EndComments
+FontDirectory/TeXXSLHZ20-Regular known{/TeXXSLHZ20-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLHZ20-Regular) readonly def
+ /FamilyName (TeXXSLHZ20) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -500 def
+ /UnderlineThickness 250 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 920 def
+ /descent 80 def
+end readonly def
+/FontName /TeXXSLHZ20-Regular def
+/Encoding 256 array
+dup 131 /Ccaron put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-10005 -224 10005 234}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a024719d2b1f1af8fdf26e0f4
+350636999d3ff5b821fe8a0a7226d9bd80b806b537eb3eb1adda96d8cb3b39e3
+df26a8b109e7ce6e5d0a27e558db819c52830eb633a0d63303d81b8c37ed82e1
+e9522036e54f6242e6b7c9db8a5c4b3820cd2873ebc92a40ccf253a570a4dc1b
+8ea2328a611ed2a2a2a5889fd5d7d00a347c2ffe10c8e82839df810142e86227
+4af38c03ec412cd6d8b3e288aec5e2d48eb22d8d087efa3ec1cd735c937c9ffb
+c85d26b6b2cf9bb056084f7a7a957451d81326e4d84d1c94d9f2cf440923010b
+3dde69dd3a482707d189b09b7ca5b3087e9cb3483569ef323a9ad9f45195f737
+98d262d3c65360d755f59cee86be8e402e4ee4dfc52064643484f8e7f918fc2c
+ec2a5a07652588ce5047476f2034fef4831456b7c9df5ca57d7fefba078a330a
+a3d47d4db5b4d2669757817c754b6cb905dace041594e0396a0be4a00506e687
+3997a34909e78f17675eb3a3f5a507e82c8fbf7ce3e2b32279c16898ac65c69b
+bce7e519655b26d79f68901100ac7507269a40cac8a34d738d8e9d7608cf9e26
+f9bff04d8bbe656a22a459fc6f56855fec8b07e144ce5b246b45822fd9e094f1
+9bf97e9e1bd71da9fed6a487f7591dfb2504fb055dbfa92a22290ebbc3b35d92
+e4853a43f263ea698424ff885f819fd5977bf82779e26a757b44fdca0e1b33ad
+cf0f74e94161b6f7b85575b5477375258a82d6ee9828ac58d58ce24ad2890d91
+69dd9ca7cff90228634c1a1b6062c91c90cb81b8ae0f4cb16a9427bec4c52d89
+e260683972d6d0e9ee60c5034ac848c846e4fd2be7bc5eccb1cc0ade512270ef
+89cb7bf156b8ada09f493c61169608029bb6e4d990cd1ed5b2105076c777d64c
+ffb88883387ac5a83137b238764aa65a72fdceec
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLHD16-Regular
+%!PS-AdobeFont-1.0: TeXXSLHD16-Regular 001.000
+%%CreationDate: 01-08-18 at 23.12
+%%VMusage: 1024 39131
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 900 100 0
+%%EndComments
+FontDirectory/TeXXSLHD16-Regular known{/TeXXSLHD16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLHD16-Regular) readonly def
+ /FamilyName (TeXXSLHD16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -200 def
+ /UnderlineThickness 100 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 900 def
+ /descent 100 def
+end readonly def
+/FontName /TeXXSLHD16-Regular def
+/Encoding 256 array
+dup 46 /period put
+dup 129 /Aogonek put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-6 -30 6002 2004}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a0247182991f7a6ebe2f3ffbf
+67983b7a517bf16b546dcf873181cf9fac564c4f80e3c3715e97e99dc6628f77
+6d19606916c6466bafb66f44a4c09fcfa2d5962acdfe6da987f89c953fd5460a
+f2a257c4831f5950d01bf228c6ad12753b2ca5a4cb9a192498161d7c6f13efce
+13653e492cc904c8f8cc53651807e06e1b89629ac1ff5dfa06e67b160d8a713d
+98db3b666920024c22c2632abfd2601d47fe439a03fe440373af8ee4f0ede24b
+c0c759f3da0dd6b657d5221204124bb0f46116e195814e098acf4a28653f5da1
+b25e20376f0e347040b84e074f68b689a9c3b1295d025c4222c991e735380e6c
+a53488b74f2412c009aaeae6beb80c980a37af1487e6f1dee300bfcb19a0772c
+068a8a29c9227d977f04847274c4690fa2d0152c5b66eed4f921646fd3e37746
+43509ce5a7bedf916f5ad04893478e3a0a6740c54dac21c52a4dc9542df7c71d
+99fdc58bd738a1e66637f619817a00cfe9fcdbdd5d8acf9c0f5fbff0300c0f80
+c3be2298dfbec78bc36f7746a67ebf4015ade2f7f18b865a1c5cc0f3680d4489
+e45560715c06e56a004d4cc389f7836df1adc666e2d8d75b9abc33b7af0f56fc
+65e6c0d3df41a5551cb881141e7b3a1cd33216e435f3dab4e7168ade882d4c62
+0d5f1d84f0077ba442c95444525e684a23f358da594c5c6fa2bf076bc53d6067
+5592438e3e9a36a2e2f909e8ef5bb530e44dd001396639e8df0e7d8afe779544
+270abc4767599877388e16a58e4065289606955f101491bc83bdbb2185723a49
+43596b16345dcd69bafab217ac5a76cf46e009f167b623dd7ad976ae84345fe0
+526e28e11aa63c3f76851633d93c14093ab3b02adcd080ce7eae1467059182f7
+976e1d050752601e9fac98c6e213f9e3b2007944824e52605f8797eb430557cc
+188bd4cf30f7acc948f8dd0476fee976b1d000bb260a6248764faad78b5f4e99
+f06ac55dd4bec86456fb334f88da71b0769eb2728f0261a31d287b57ad0e666b
+4d64fe46c7fd0a493f2b25d6218b67f98ea71289a5133fcefff6ab71492b2fbb
+cd89c8f9ac5e
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLD16-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
+%%CreationDate: 01-07-22 at 22.48
+%%VMusage: 1024 40444
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLD16-Regular) readonly def
+ /FamilyName (TeXXSLD16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -199.203 def
+ /UnderlineThickness 99.6016 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 199 def
+ /descent 801 def
+end readonly def
+/FontName /TeXXSLD16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 17 /quotedblright put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -1058 2126 349}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
+a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
+f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
+9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
+bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
+0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
+22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
+072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
+999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
+dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
+8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
+20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
+489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
+5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
+5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
+b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8fd3
+0795db3bf32e261166ee98ba6858a5030cf7650b7179c63498a86967adcabd02
+ad412602c1e86d7ae63a72dfefe706a849eb5d11c2fc956669822289cde23015
+eaec5db02ca876e457875c0c8001684f2aecbe2c8ee603e33609e7b35c69dc5c
+32956ba8567eb8c98736e41a21e2199c5415352616a0cb6057624ca895ca968a
+af1323ddbf654da69958853f48d8c39718aadccc5485aea769552353ed2e01ff
+4c3ff437a2b89fc0a249ade0751f8e038a9ae501ef2dff54af78e23f809a2322
+7e9fb29f327414a7b2b5b528e9bb6ba4e900ddc8827d8c25e05cde705283977b
+e50a2573d8b8c78aa52bee18717a2f8b2c066a022d525aeb99e71aee8c115164
+3d4ce057b2d597d4e97186f2220d0a072970ea561ab58f4e8a33eb8014e87e18
+2f50769685bd6357e79e534e5c624699ad15b430268352130efc88e9b4cc6ad0
+f900afded9c52fa68f34fac70ecb0729e7b9626de998f5bde1a7b1294d3adb9a
+5cf548
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.16
+%%VMusage: 1024 39962
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 998 2 0
+%%EndComments
+FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLU16-Regular) readonly def
+ /FamilyName (TeXXSLU16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -200 def
+ /UnderlineThickness 100 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 998 def
+ /descent 2 def
+end readonly def
+/FontName /TeXXSLU16-Regular def
+/Encoding 256 array
+dup 128 /Abreve put
+dup 161 /aogonek put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -345 2126 1062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
+74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
+e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
+6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
+881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
+90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
+181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
+e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
+65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
+ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
+bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
+efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
+2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
+2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
+bacda202d38d8ac2fe8dcc04763fda33c0278c1e0671c52cbe24d29f1c6bc60d
+dd6d8484e978fa7d755f62a3b464a030f5d4f46300caa465fcda347117bf2fa3
+5f834b698e824004f0fcae0016e4405df87b9d2f783e8370f1325f0301b74f44
+d104f49b452daf117bfe343cc0c2ea572e2af1297a54362b756c25894979a9bd
+87a060acd6cbda8d0026cf0418db1aa1eefd05a269e0fe72322c6ba798d049a8
+b24888bfa9f6c3a1ac8c208b906baf8603e146e789b0bc4033ed90963b67b6b1
+95ebeb79dd58fdcf5d561e69404e0de78ab82fb367cb202fcee435745272ff68
+6fdf410cc8b07f6bd6054567b8d072312d091416e08789658284d0d6c53ae649
+26c0c085748c357e316ef072dc1417180271df11b197186173bc0e1ae1977e80
+454c4df0815fb8d3f233d81271678fc7c83388e8b9b45a881b8a62b63e2f18cc
+c218
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX11-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
+%%CreationDate: 01-07-25 at 04.06
+%%VMusage: 1024 36750
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 700 300 0
+%%EndComments
+FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX11-Regular) readonly def
+ /FamilyName (TeXMUSIX11) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -200 def
+ /UnderlineThickness 100 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 700 def
+ /descent 300 def
+end readonly def
+/FontName /TeXMUSIX11-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 12 /ogonek put
+dup 40 /parenleft put
+dup 52 /four put
+dup 154 /Zcaron put
+dup 156 /IJ put
+dup 217 /Ugrave put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-619 -3182 6250 3186}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a847aadaec31b51b998
+59733d5965f7ebcc0351a5a947e203d3adc0bc29db0acc35f7cff12999b6bac9
+b175d75f7e28da0efb49df905696a15f286c24104678c0a23e3036773f43d518
+ef9b221c2916fa7732445aef9904c9d7f30fbe24f9fc84cd9762ce622320d367
+3a3ae614b506a40dc0cd53205c0b720232cf56c55112662720e711960b6ca8b0
+8904375d12d99708cb2f98ead5f37c7cbe9b1244d96482dd77df61f6c5e1afce
+eecced3ad9b79008f8fc60ad6c1cf55ac1307e0d3aba49166dc7190b99d813d7
+9d94be6556485374d8587b8215fc3c49529fec50eb85956051ff88d1a1740d74
+90d715f15183c70fbb5f7e82aa549c257632404f70307c696be81f0f165927d0
+0ecd03dcbd40ba9cdad415d22203c14f29137ecd02f3e88ca7ff605ab957986c
+ec0af486dafe0791ba9bbeca1bfdac27f8feb654fb19373e1336da27eadb1d99
+bd8301bfa5ac250b761988834f438ff0e862a625f85deba7e62f33d813b15650
+b8be07a5fb8315ab4705a828c54acbe6e9b26a8fcaca75b3e19912512f3bad5a
+ce7fc39e73eae0e4c162f0fdb25af98ef04fd9a4a6e1c9d372cb9dbbd880fc69
+5eb471f7da60566cac0b6a193dcf574938dc289bab15ccaf1a9d52f848a50835
+2425eba0b693a239373e374216861537a33a9e0e0c38f1f1bc29dc642761894d
+de4fcc360c1184fb1afe46d02ccb5857fd8b0ffab05a9f1389c1121b03999902
+3b03d1b6a2459c89e303f37aca22b98f67ea20a8b09962256daa592301ba9f87
+217241aa4c1cd38300aed649268c2b16013eae3dfd34a5c93fe632c01368dbb4
+4418f7b65666ebcc77e61f50f82e3909f19ae46397e9a96402ed1dabf3e56bc6
+d70e452d5817c281fe4f61d2ee024fd44ea76d86fc9a92b5538a9825eed911e0
+990064fbff97631be50cebada2a083932875d83ffe2b35091533352537b92d95
+7c852e3891ac5dc80b091ae19f36e4c9a047fedf91507454714f37982720a026
+213cf573136cde64acb4564b1f54532a3c19cec7b09cbdb9ccced6d4c25960c1
+7a0de7cf00899bdb91efb11d4821dd03215a449de072799748fe968b25e94f5b
+ee2ed02d2cad2b911dd215fb3cfd88ad108b56bfb55967231edf494afdaf9a91
+d4b36ecf9d0cd32a60be94964460ef88b0a8b6d954ce14c58f12aa466c0c64a7
+668b5e231e4ade8db4ce3c12f17fa4a20f18140fb2c04339ae47b3bdb8439860
+28e964ce5f620ce95015d3b9bbc56e8d8d1a8f9a3726e0bef50b106bd219123b
+a998bc9dbf032b3e58131a93c915eac4b7e45d1b193fe62be9f18c12f2126361
+706af2c2e8f8ec201b2bc83489cd8c4b4db322905cecb03eee6ec9d47f40a12c
+a1d92a725359b4909185e3be46661f107525b69202dbf8863f072282ffa777f4
+5cd2216520095eedc7d35c5eb7af0dc161f6f400b929351570f0e0304be755bc
+cb2f4b1319bba17b975b228eaa3dd0dc8dffdf88805bce941b708f3097f93c6b
+a6cde17853d9c698d5b6a8bde5ce5b7c0f0bf79744ea1510d51611e86e12fe1b
+329214a8cd92658c347a02d0fac6155bdec4db259fb87c5faae7ed49fe63b2fa
+0c749a32e2ef965dd7631276d516d27193a6f5a4e8848737196c02226d936618
+1c209334160af6e596fc41f87e82b7feac57c260371ca2bd1a83d0b08c34a7ea
+a93907ddb4bd729a2f49dccd5560af2c8357df967e4b4c52612436746ae9f027
+b01687929d3b6255d878fd5503254c08e64763eb81020a9977e88971c070fb2e
+1d313baa52b5d0ea185f3ceded87f865e8af054adade27ae0939b2ed720bba1c
+da6e9caff321c121365350628b05f82ea9721b09771264bafe971050633ffef1
+975ee0523f218ac50368f2f19a2d53c6236a2c98367a8c4f8c229839cbf32666
+8d4c
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 80 /P put
+dup 83 /S put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a62c09d54884ebb7993d409b068ef9ffbe988850
+c498d4d2749836cb2907b5d085eb314b06637f3358e4df5f1be65bf96d16470e
+76a8097e3ad5167ee2a8a59b158bfb3f6de08540957dd90f22b5025f903758db
+66873a85eb8127504ffff0be8e23f44d0653cf3f0485b766967680394dd984a7
+ac9ab3bf0698c4d9da254cc7967a0387511e6d18c08f61bbedf865c575b32e49
+5d19a868c22acb3e0ce208acb1735e4bef6486ed785849df8d38194f93d7b680
+7a4b88664f82675a3dd3116e078616998c06c29a08daba3388abbac9a7e2ed68
+063920e4b3fa6fe906dd30d74625669ea52b62dab4f9108d537bf4f99c6ea674
+b96c85fb967ed77bad1706e2fd5020c545061fd84c4d1439270dadaec62d3172
+9b8ad74524fad7f8fad0002c11668be1cb3b8cb312685887edc1a40794e3db08
+b77d86e9467d4aa7f79b657c26892675cfdb3063f732d425e4eb03b8197133f1
+a23495f20cdcf1b9ac7aaa9843af51b454503afc16fe3ab820cbacb1770423c1
+8cb032fbc8a5cb6384fc8ae33128039410a141dc3f9af7f679c075b70b0b4c05
+f4cfdf9f60990a1c11267809b9e2027fc425c72aefbc7c5e968bb205fb143446
+06d066940788729b4fbdc6f11c7fff2df21190359441d38e4a2c155e6993cf8e
+3e178efdf49058e752598014722d37e132ae3f109944cdb0e036c51a024052bc
+f488de76d1ba3d86a691dbbc8eef8c62530a2c90f5ceb8801c98729e99fb6aa7
+95c1cfa331bc19383fc306b9b2a03c8b0496d4e9d344b11927df793b93aed974
+5bc6e425ab1e9ca9bdc93ddd23d8d58196871b31ed456eae3e299b186d9608c3
+7835ada24251c74416e5e15c857ade163150cc73225c21ba7556f720723e6e5e
+cfc215dbb9ca9bbc4b3d8ef5572f33e47951985b4b482d4c7d71eda7d1f16baa
+071bb1d68cf130bcd204b9102097583b0c84c51aa596597742c9efadfd04e0e2
+a86b0f205eae9c39b78fd608655bba082b7333dfc781b9abede2a36476502f92
+4d24fffd3650e8afb57687ca92e267661a3343832d6142a29ef762c58010d005
+a1b66901fccb3a62bf57f4ae7991b59a02cfd961ee4e430279a3ce9b3ad87ffb
+d698a293cd21071e694a0987d55c28e429caa704fd522fa14562184642690658
+92c1ee2461c9ed35d8f62edda57884f884a96a78dc8324f6cc50e6b9b976de14
+3efee97ddd78b1bbcb175780b5857081d2f932da3f6b98dbfacceecd0e9f60bb
+a056b10e625060bed202c7e253d0f989474f6e34a1ece833d28732cb57f2e955
+d5cd301e6b8e01ce17ea835670ad9d37a899a8dbd9cf76c0c90050308fe73fc6
+94c826a07d761e7fe64e1b8fe829badc4521eeb44cb7ad95f4080a4532ae4ad6
+681faec03ff7ead870df2e6a0d66160b9118d46bf373ea0b7e357506c98d186d
+ee7eac
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/EXAMPLES/PMX/19.dvi) @start /Fa 124[0
+131[{}1 83.022 /TeXXSLHZ20-Regular rf /Fb 126[50 82[149
+46[{}2 66.4176 /TeXXSLHD16-Regular rf /Fc 238[0 9[0 7[{}2
+66.4176 /TeXXSLD16-Regular rf /Fd 94[0 32[0 128[{}2 66.4176
+/TeXXSLU16-Regular rf /Fe 38[17 60[133 1[33 101[13 11[0
+27[0 4[0 7[{}7 42.5073 /TeXMUSIX11-Regular rf /Ff 172[33
+2[0 8[53 62[0 0 7[{}5 66.4176 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1765 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Ff(G)-122 15 y(S)p -56 -27 2 43
+v -68 -27 a Fe(\007)p -51 -34 20 2 v -35 -35 2 40 v -47
+-35 a(\007)-55 -61 y(\232)-47 -63 y(\232)-55 -69 y(\232)-47
+-71 y(\232)p -30 -34 20 2 v -14 -43 2 36 v -26 -43 a(\007)-33
+-13 y Fd(\241)p -11 -34 30 2 v -11 -51 V -6 15 2 67 v
+-6 -52 a Ff(\007)p 114 40 2 59 v 114 -18 a(\007)p 141
+24 2 35 v 141 -10 a Fe(\007)141 24 y(\331)146 25 y(\331)146
+-33 y Fc(\021)p 161 29 2 32 v 161 -2 a Fe(\007)p 237
+64 2 59 v 237 6 a Ff(\007)p 332 -34 20 2 v 348 -43 2
+35 v 348 -43 a Fe(\014)-12 b(\007)343 -29 y Fd(\200)p
+356 -34 30 2 v 356 -51 V 361 15 2 67 v 361 -52 a Ff(\007)p
+482 49 2 68 v 514 23 2 35 v 514 23 a Fe(\()g(\007)p 547
+31 2 59 v 528 31 a Ff(\007)612 98 y Fe(4)p 622 65 20
+2 v 623 82 V 624 99 V 640 98 2 35 v 15 w(\()g(\007)p
+648 65 30 2 v 648 82 V 672 89 2 75 v 653 89 a Ff(\007)p
+768 65 30 2 v 792 64 2 59 v 773 64 a(\007)p 819 56 2
+76 v 807 56 a Fe(\007)p 839 48 2 73 v 827 48 a(\007)p
+859 40 2 69 v 847 40 a(\007)p 879 31 2 66 v 867 31 a(\007)p
+899 23 2 63 v 887 23 a(\007)p 919 15 2 59 v 907 15 a(\007)p
+939 6 2 56 v 927 6 a(\007)p 959 -2 2 53 v 947 -2 a(\007)p
+979 -10 2 49 v 967 -10 a(\007)p 998 -18 2 46 v 986 -18
+a(\007)p 1018 -27 2 43 v 1006 -27 a(\007)p 1023 -34 20
+2 v 1039 -35 2 39 v 1027 -35 a(\007)819 -3 y(\234)926
+-30 y(\234)819 -11 y(\234)926 -38 y(\234)819 -19 y(\234)926
+-46 y(\234)p 1044 -34 20 2 v 1060 -43 2 36 v 1048 -43
+a(\007)814 87 y Fb(\201)25 b Fa(\203)h Fb(.)p 1063 -34
+30 2 v 1063 -51 V 1068 15 2 67 v 1068 -52 a Ff(\007)p
+1189 49 2 68 v 1234 64 2 59 v 1234 6 a(\010)p 1348 49
+2 35 v 1348 15 a Fe(\007)p 1367 49 2 27 v 1367 23 a(\007)p
+1347 52 42 6 v 1319 -8 a Fc(\007)p 1387 49 2 35 v 1387
+15 a Fe(\007)1407 -10 y Ff(P)p 1407 64 2 59 v 16 x(\010)p
+1581 49 2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/20.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/20.eps
index 9d5fe7e3611..0237ef2684b 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/20.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/20.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96 Copyright 2007 Radical Eye Software
%%Title: test1.dvi
%%CreationDate: Sat Jan 19 23:46:59 2008
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 28 748 210 782
+%%BoundingBox: 28 748 210 782
%%DocumentFonts: TeXMUSIX16-Regular
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21k.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21k.eps
index e1f5a32bb15..fa419648a75 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21k.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21k.eps
@@ -1,615 +1,615 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 21k.dvi
-%%CreationDate: Sat Jan 25 23:11:38 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 717 312 801
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 21k.dvi
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.01.25:2311
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 71 /G put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
-46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
-4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
-27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
-66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
-24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
-451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
-544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
-6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
-d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
-e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
-4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
-68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
-06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
-a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
-42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
-fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
-198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
-6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
-e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
-503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/21k.dvi) @start
-%DVIPSBitmapFont: Fa cmr10 10 9
-/Fa 9 122 df<39FFF01FE0390F000780EC060014045C5C5C5C5C49C7FC13021306130F
-EB17801327EB43C0EB81E013016D7E1478A280143E141E80158015C039FFF03FF01C1C7F
-9B20>75 D<007FB512C038700F010060130000401440A200C014201280A300001400B149
-7E3803FFFC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFE
-EAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>101
-D<12FC121CB3A9EAFF80091D7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0
-A21470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112
-D<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D127F9110>114
-D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA80381318
-12C0A2EAE010EAD060EA8FC00D127F9110>I<38FC1F80EA1C03AD1307120CEA0E1B3803
-E3F014127F9117>117 D<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA
-0388A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>
-121 D E
-%EndDVIPSBitmapFont
-/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -1 1175 2 v -182 16 V -182 32 V -182 49
-V -182 65 V -182 48 a Fb(G)54 68 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 54 68 a 38 82 30 2
-v 43 124 2 43 v 43 81 a Fb(\007)146 23 y
- slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 146 23 a 146
-23 a
- end
- 146 23 a 136 81 2 59 v -10 w Fb(\007)p 230 65 2
-68 v 276 68 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 276 68 a 254 206 a Fa(T)o(yp)q(e)15 b(K)f(slurs)p
-259 82 30 2 v 264 124 2 43 v 264 81 a Fb(\007)368 -10
-y
- slur@Dict begin (2.0pt) GD S0hgt (18.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 368 -10 a 368 -10 a
- end
- 368 -10 a 358 48 2 59 v -10 w Fb(\007)463
-68 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 463 68 a 446 82 30 2 v 451 124 2 43 v 451 81 a Fb(\007)554
--52 y
- slur@Dict begin (2.0pt) GD S0hgt (28.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 554 -52 a 554 -52 a
- end
- 554 -52 a 539 -18 30 2 v 539
--34 V 539 -51 V 544 31 2 84 v -10 w Fb(\007)p 638 65
-2 68 v 684 68 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 684 68 a 667 82 30 2 v 672 124 2 43 v
-672 81 a Fb(\007)776 -110 y
- slur@Dict begin (2.0pt) GD S0hgt (42.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 776 -110 a 776 -110 a
- end
- 776
--110 a 761 -18 30 2 v 761 -34 V 761 -51 V 761 -67 V 761
--84 V 761 -101 V 766 31 2 142 v -10 w Fb(\007)p 991 65
-2 68 v 993 148 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 993 148 a eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 21k.dvi
+%%CreationDate: Sat Jan 25 23:11:38 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 717 312 801
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 21k.dvi
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.01.25:2311
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 71 /G put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
+46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
+4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
+27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
+66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
+24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
+451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
+544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
+6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
+d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
+e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
+4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
+68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
+06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
+a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
+42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
+fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
+198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
+6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
+e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
+503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/21k.dvi) @start
+%DVIPSBitmapFont: Fa cmr10 10 9
+/Fa 9 122 df<39FFF01FE0390F000780EC060014045C5C5C5C5C49C7FC13021306130F
+EB17801327EB43C0EB81E013016D7E1478A280143E141E80158015C039FFF03FF01C1C7F
+9B20>75 D<007FB512C038700F010060130000401440A200C014201280A300001400B149
+7E3803FFFC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFE
+EAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>101
+D<12FC121CB3A9EAFF80091D7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0
+A21470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112
+D<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D127F9110>114
+D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA80381318
+12C0A2EAE010EAD060EA8FC00D127F9110>I<38FC1F80EA1C03AD1307120CEA0E1B3803
+E3F014127F9117>117 D<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA
+0388A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>
+121 D E
+%EndDVIPSBitmapFont
+/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -1 1175 2 v -182 16 V -182 32 V -182 49
+V -182 65 V -182 48 a Fb(G)54 68 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 54 68 a 38 82 30 2
+v 43 124 2 43 v 43 81 a Fb(\007)146 23 y
+ slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 146 23 a 146
+23 a
+ end
+ 146 23 a 136 81 2 59 v -10 w Fb(\007)p 230 65 2
+68 v 276 68 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 276 68 a 254 206 a Fa(T)o(yp)q(e)15 b(K)f(slurs)p
+259 82 30 2 v 264 124 2 43 v 264 81 a Fb(\007)368 -10
+y
+ slur@Dict begin (2.0pt) GD S0hgt (18.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 368 -10 a 368 -10 a
+ end
+ 368 -10 a 358 48 2 59 v -10 w Fb(\007)463
+68 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 463 68 a 446 82 30 2 v 451 124 2 43 v 451 81 a Fb(\007)554
+-52 y
+ slur@Dict begin (2.0pt) GD S0hgt (28.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 554 -52 a 554 -52 a
+ end
+ 554 -52 a 539 -18 30 2 v 539
+-34 V 539 -51 V 544 31 2 84 v -10 w Fb(\007)p 638 65
+2 68 v 684 68 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 684 68 a 667 82 30 2 v 672 124 2 43 v
+672 81 a Fb(\007)776 -110 y
+ slur@Dict begin (2.0pt) GD S0hgt (42.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 776 -110 a 776 -110 a
+ end
+ 776
+-110 a 761 -18 30 2 v 761 -34 V 761 -51 V 761 -67 V 761
+-84 V 761 -101 V 766 31 2 142 v -10 w Fb(\007)p 991 65
+2 68 v 993 148 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 993 148 a eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21m.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21m.eps
index 5cb7ce9c4a2..dd7d0e7e1ce 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21m.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21m.eps
@@ -1,398 +1,398 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 21m.dvi
-%%CreationDate: Sat Jan 25 23:12:28 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 717 312 801
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 21m.dvi
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.01.25:2312
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 71 /G put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
-46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
-4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
-27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
-66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
-24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
-451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
-544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
-6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
-d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
-e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
-4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
-68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
-06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
-a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
-42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
-fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
-198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
-6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
-e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
-503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/21m.dvi) @start
-%DVIPSBitmapFont: Fa cmr10 10 9
-/Fa 9 122 df<B46CEBFF80000FECF800A2390BC00178A33809E002A23808F004A3EB78
-08A3EB3C10A3EB1E20A3EB0F40A2EB0780A3EB0300121C3AFF8307FF80211C7E9B26>77
-D<007FB512C038700F010060130000401440A200C014201280A300001400B1497E3803FF
-FC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFEEAE000A4
-1260EA70021230EA1804EA0C18EA03E00F127F9112>101 D<12FC121CB3A9EAFF80091D
-7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01C0001E
-1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78A2EA1C
-301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F
-80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>I<38FC
-1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>117 D<38FF07E0383C0380381C
-0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A25BA212F000
-F1C7FC12F312661238131A7F9116>121 D E
-%EndDVIPSBitmapFont
-/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -1 1175 2 v -182 16 V -182 32 V -182 49
-V -182 65 V -182 48 a Fb(G)p 38 82 30 2 v 43 124 2 43
-v 43 81 a(\007)49 71 y @beginspecial -1 @llx -1 @lly
-23 @urx 15 @ury 240 @rwi @setspecial
-%%BeginDocument: 21m.1
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 15
-%%Creator: MetaPost
-%%CreationDate: 2003.01.25:2312
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.05165 0.04979 moveto
-0.78622 1.04002 1.68076 1.98088 2.62747 2.86763 curveto
-3.88432 4.04489 5.22885 5.12291 6.59077 6.17654 curveto
-8.01595 7.27911 9.46242 8.3567 10.99504 9.3047 curveto
-12.468 10.2158 14.01268 11.00235 15.56813 11.76361 curveto
-16.90462 12.41771 18.2542 13.05528 19.68076 13.48053 curveto
-20.56712 13.74474 21.47646 13.92467 22.39664 14.0179 curveto
-22.42578 13.87743 lineto
-21.51932 13.78549 20.62611 13.59149 19.76318 13.29913 curveto
-18.36636 12.8259 17.07329 12.10461 15.8074 11.34956 curveto
-14.32838 10.46736 12.87949 9.53598 11.41617 8.62802 curveto
-9.89308 7.68297 8.35406 6.7631 6.85608 5.77867 curveto
-5.4269 4.83945 4.03505 3.84128 2.751 2.7113 curveto
-1.78339 1.85979 0.88106 0.93683 0.05164 -0.04979 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 136 81 2 59 v 136 23 a(\007)p 230 65 2 68
-v 254 206 a Fa(T)o(yp)q(e)15 b(M)e(slurs)p 259 82 30
-2 v 264 124 2 43 v 264 81 a Fb(\007)270 71 y @beginspecial
--1 @llx -1 @lly 23 @urx 22 @ury 240 @rwi @setspecial
-%%BeginDocument: 21m.2
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 22
-%%Creator: MetaPost
-%%CreationDate: 2003.01.25:2312
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.05827 0.04184 moveto
-0.78242 1.33313 1.67393 2.59062 2.61417 3.81134 curveto
-3.86559 5.43611 5.20131 6.9932 6.55249 8.53584 curveto
-7.96327 10.14653 9.39229 11.74294 10.92697 13.23631 curveto
-12.39511 14.66493 13.95497 15.99438 15.52461 17.31041 curveto
-16.85672 18.42728 18.19904 19.53691 19.65926 20.48097 curveto
-20.52892 21.04324 21.43669 21.54422 22.376 21.98027 curveto
-22.4464 21.85526 lineto
-21.51755 21.42166 20.62712 20.91013 19.78467 20.32614 curveto
-18.36374 19.34116 17.09425 18.16133 15.85094 16.96085 curveto
-14.38228 15.54279 12.94551 14.09216 11.48424 12.6665 curveto
-9.9564 11.1759 8.40186 9.71266 6.89436 8.20146 curveto
-5.4519 6.75545 4.05255 5.26547 2.7643 3.68033 curveto
-1.79614 2.48906 0.89284 1.24655 0.05827 -0.04182 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 358 48 2 59 v 358 -10 a(\007)p 446 82 30
-2 v 451 124 2 43 v 451 81 a(\007)457 71 y @beginspecial
--1 @llx -1 @lly 23 @urx 32 @ury 240 @rwi @setspecial
-%%BeginDocument: 21m.3
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 32
-%%Creator: MetaPost
-%%CreationDate: 2003.01.25:2312
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.063 0.03429 moveto
-0.78455 1.70975 1.67413 3.36363 2.60489 4.99434 curveto
-3.85904 7.19162 5.18712 9.34543 6.52586 11.49216 curveto
-7.93105 13.7454 9.34868 15.99196 10.8796 18.1619 curveto
-12.34787 20.24304 13.91754 22.24974 15.49425 24.24985 curveto
-16.8329 25.94798 18.178 27.64305 19.64406 29.2328 curveto
-20.50964 30.1714 21.41592 31.07164 22.36029 31.93091 curveto
-22.46211 31.82985 lineto
-21.52486 30.9729 20.63608 30.06442 19.79987 29.10861 curveto
-18.38013 27.48582 17.11845 25.7345 15.88129 23.969 curveto
-14.42224 21.88687 12.99522 19.78246 11.53162 17.70354 curveto
-10.00542 15.5357 8.43967 13.39594 6.921 11.2228 curveto
-5.47488 9.15346 4.07143 7.0538 2.77357 4.88828 curveto
-1.81032 3.28104 0.90617 1.63908 0.063 -0.03429 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 539 -18 30 2 v 539 -34 V 539 -51 V 544 31
-2 84 v 544 -52 a(\007)p 638 65 2 68 v 667 82 30 2 v 672
-124 2 43 v 672 81 a(\007)678 71 y @beginspecial -1 @llx
--1 @lly 23 @urx 46 @ury 240 @rwi @setspecial
-%%BeginDocument: 21m.4
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 46
-%%Creator: MetaPost
-%%CreationDate: 2003.01.25:2312
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.06645 0.02702 moveto
-0.79013 2.2493 1.67851 4.45918 2.59845 6.65599 curveto
-3.86057 9.66995 5.18178 12.65865 6.50775 15.64503 curveto
-7.91286 18.80965 9.32362 21.97241 10.84761 25.08162 curveto
-12.31908 28.08368 13.89467 31.03296 15.47389 33.97966 curveto
-16.82608 36.50275 18.18138 39.02484 19.63405 41.49155 curveto
-20.50507 42.97058 21.41064 44.42899 22.35007 45.86555 curveto
-22.47235 45.79053 lineto
-21.53754 44.35553 20.64958 42.89052 19.80989 41.39786 curveto
-18.40816 38.90607 17.14308 36.34108 15.90164 33.76584 curveto
-14.45099 30.75659 13.03198 27.73212 11.5636 24.73148 curveto
-10.04276 21.62363 8.4692 18.54189 6.9391 15.43858 curveto
-5.49554 12.51077 4.09062 9.56367 2.78001 6.57393 curveto
-1.82475 4.39482 0.92 2.19391 0.06645 -0.02701 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 761 -18 30 2 v 761 -34 V 761 -51 V 761 -67
-V 761 -84 V 761 -101 V 766 31 2 142 v 766 -110 a(\007)p
-991 65 2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 21m.dvi
+%%CreationDate: Sat Jan 25 23:12:28 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 717 312 801
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 21m.dvi
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.01.25:2312
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 71 /G put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
+46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
+4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
+27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
+66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
+24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
+451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
+544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
+6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
+d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
+e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
+4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
+68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
+06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
+a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
+42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
+fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
+198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
+6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
+e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
+503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/21m.dvi) @start
+%DVIPSBitmapFont: Fa cmr10 10 9
+/Fa 9 122 df<B46CEBFF80000FECF800A2390BC00178A33809E002A23808F004A3EB78
+08A3EB3C10A3EB1E20A3EB0F40A2EB0780A3EB0300121C3AFF8307FF80211C7E9B26>77
+D<007FB512C038700F010060130000401440A200C014201280A300001400B1497E3803FF
+FC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFEEAE000A4
+1260EA70021230EA1804EA0C18EA03E00F127F9112>101 D<12FC121CB3A9EAFF80091D
+7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01C0001E
+1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78A2EA1C
+301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F
+80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>I<38FC
+1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>117 D<38FF07E0383C0380381C
+0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A25BA212F000
+F1C7FC12F312661238131A7F9116>121 D E
+%EndDVIPSBitmapFont
+/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -1 1175 2 v -182 16 V -182 32 V -182 49
+V -182 65 V -182 48 a Fb(G)p 38 82 30 2 v 43 124 2 43
+v 43 81 a(\007)49 71 y @beginspecial -1 @llx -1 @lly
+23 @urx 15 @ury 240 @rwi @setspecial
+%%BeginDocument: 21m.1
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 15
+%%Creator: MetaPost
+%%CreationDate: 2003.01.25:2312
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.05165 0.04979 moveto
+0.78622 1.04002 1.68076 1.98088 2.62747 2.86763 curveto
+3.88432 4.04489 5.22885 5.12291 6.59077 6.17654 curveto
+8.01595 7.27911 9.46242 8.3567 10.99504 9.3047 curveto
+12.468 10.2158 14.01268 11.00235 15.56813 11.76361 curveto
+16.90462 12.41771 18.2542 13.05528 19.68076 13.48053 curveto
+20.56712 13.74474 21.47646 13.92467 22.39664 14.0179 curveto
+22.42578 13.87743 lineto
+21.51932 13.78549 20.62611 13.59149 19.76318 13.29913 curveto
+18.36636 12.8259 17.07329 12.10461 15.8074 11.34956 curveto
+14.32838 10.46736 12.87949 9.53598 11.41617 8.62802 curveto
+9.89308 7.68297 8.35406 6.7631 6.85608 5.77867 curveto
+5.4269 4.83945 4.03505 3.84128 2.751 2.7113 curveto
+1.78339 1.85979 0.88106 0.93683 0.05164 -0.04979 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 136 81 2 59 v 136 23 a(\007)p 230 65 2 68
+v 254 206 a Fa(T)o(yp)q(e)15 b(M)e(slurs)p 259 82 30
+2 v 264 124 2 43 v 264 81 a Fb(\007)270 71 y @beginspecial
+-1 @llx -1 @lly 23 @urx 22 @ury 240 @rwi @setspecial
+%%BeginDocument: 21m.2
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 22
+%%Creator: MetaPost
+%%CreationDate: 2003.01.25:2312
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.05827 0.04184 moveto
+0.78242 1.33313 1.67393 2.59062 2.61417 3.81134 curveto
+3.86559 5.43611 5.20131 6.9932 6.55249 8.53584 curveto
+7.96327 10.14653 9.39229 11.74294 10.92697 13.23631 curveto
+12.39511 14.66493 13.95497 15.99438 15.52461 17.31041 curveto
+16.85672 18.42728 18.19904 19.53691 19.65926 20.48097 curveto
+20.52892 21.04324 21.43669 21.54422 22.376 21.98027 curveto
+22.4464 21.85526 lineto
+21.51755 21.42166 20.62712 20.91013 19.78467 20.32614 curveto
+18.36374 19.34116 17.09425 18.16133 15.85094 16.96085 curveto
+14.38228 15.54279 12.94551 14.09216 11.48424 12.6665 curveto
+9.9564 11.1759 8.40186 9.71266 6.89436 8.20146 curveto
+5.4519 6.75545 4.05255 5.26547 2.7643 3.68033 curveto
+1.79614 2.48906 0.89284 1.24655 0.05827 -0.04182 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 358 48 2 59 v 358 -10 a(\007)p 446 82 30
+2 v 451 124 2 43 v 451 81 a(\007)457 71 y @beginspecial
+-1 @llx -1 @lly 23 @urx 32 @ury 240 @rwi @setspecial
+%%BeginDocument: 21m.3
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 32
+%%Creator: MetaPost
+%%CreationDate: 2003.01.25:2312
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.063 0.03429 moveto
+0.78455 1.70975 1.67413 3.36363 2.60489 4.99434 curveto
+3.85904 7.19162 5.18712 9.34543 6.52586 11.49216 curveto
+7.93105 13.7454 9.34868 15.99196 10.8796 18.1619 curveto
+12.34787 20.24304 13.91754 22.24974 15.49425 24.24985 curveto
+16.8329 25.94798 18.178 27.64305 19.64406 29.2328 curveto
+20.50964 30.1714 21.41592 31.07164 22.36029 31.93091 curveto
+22.46211 31.82985 lineto
+21.52486 30.9729 20.63608 30.06442 19.79987 29.10861 curveto
+18.38013 27.48582 17.11845 25.7345 15.88129 23.969 curveto
+14.42224 21.88687 12.99522 19.78246 11.53162 17.70354 curveto
+10.00542 15.5357 8.43967 13.39594 6.921 11.2228 curveto
+5.47488 9.15346 4.07143 7.0538 2.77357 4.88828 curveto
+1.81032 3.28104 0.90617 1.63908 0.063 -0.03429 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 539 -18 30 2 v 539 -34 V 539 -51 V 544 31
+2 84 v 544 -52 a(\007)p 638 65 2 68 v 667 82 30 2 v 672
+124 2 43 v 672 81 a(\007)678 71 y @beginspecial -1 @llx
+-1 @lly 23 @urx 46 @ury 240 @rwi @setspecial
+%%BeginDocument: 21m.4
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 46
+%%Creator: MetaPost
+%%CreationDate: 2003.01.25:2312
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.06645 0.02702 moveto
+0.79013 2.2493 1.67851 4.45918 2.59845 6.65599 curveto
+3.86057 9.66995 5.18178 12.65865 6.50775 15.64503 curveto
+7.91286 18.80965 9.32362 21.97241 10.84761 25.08162 curveto
+12.31908 28.08368 13.89467 31.03296 15.47389 33.97966 curveto
+16.82608 36.50275 18.18138 39.02484 19.63405 41.49155 curveto
+20.50507 42.97058 21.41064 44.42899 22.35007 45.86555 curveto
+22.47235 45.79053 lineto
+21.53754 44.35553 20.64958 42.89052 19.80989 41.39786 curveto
+18.40816 38.90607 17.14308 36.34108 15.90164 33.76584 curveto
+14.45099 30.75659 13.03198 27.73212 11.5636 24.73148 curveto
+10.04276 21.62363 8.4692 18.54189 6.9391 15.43858 curveto
+5.49554 12.51077 4.09062 9.56367 2.78001 6.57393 curveto
+1.82475 4.39482 0.92 2.19391 0.06645 -0.02701 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 761 -18 30 2 v 761 -34 V 761 -51 V 761 -67
+V 761 -84 V 761 -101 V 766 31 2 142 v 766 -110 a(\007)p
+991 65 2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21n.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21n.eps
index 5f501997f9c..f1414a110a0 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21n.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/21n.eps
@@ -1,395 +1,395 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 21n.dvi
-%%CreationDate: Tue Feb 18 18:47:58 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 712 312 801
-%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular TeXXSLHU16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 21n
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.18:1847
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXXSLHU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLHU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.06
-%%VMusage: 1024 38733
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 169 831 0
-%%EndComments
-FontDirectory/TeXXSLHU16-Regular known{/TeXXSLHU16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLHU16-Regular) readonly def
- /FamilyName (TeXXSLHU16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -169.492 def
- /UnderlineThickness 84.7457 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 169 def
- /descent 831 def
-end readonly def
-/FontName /TeXXSLHU16-Regular def
-/Encoding 256 array
-dup 1 /acute put
-dup 140 /Ncaron put
-dup 143 /Racute put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-12 -2000 6002 42}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a0247182efe81683d22ed4896
-777eff4f5c5cf870d4d9a17e0947a6061ccbd5218308e6dd8d0495be85321133
-6af83ec97b2d1cdddeeeea9a43c5fb79c81d6d60f1602db407dbc9969c064085
-d52e426a80f83948c3da9cb3fb9c74db55e41c8510e904f2603fcb115ada23db
-9b67d0ec4c2d62eeb8b95685a8a3fb47318aeace201bd62acdc3e0f2da0cd4df
-8b8244438678fb049dd91646773ee5a5ede96098ec6debf2d74a732e84e142d3
-bee515493c682aa96522c87c66816202246950d810b829690570032d9ee08873
-0d0fcbc40d83c31731356b2072e752ec9e20edc357cd4e663ea79bbb206d7028
-97baf8142b3943a00306e749ceffaaa65e25c1b645b1b6607f6fe9364c722c62
-6b8215ee0d23897ac95ba9ec09e266a734182b66dd545e42a1186979e5eb902d
-8f2629fb4052d8bc08668e391ade6cad52415ddd215780ba71e413450bba938f
-137dcde16dcace63b67e68900465d114caff8f9bb482ba7f0a2d13acab1d2ab8
-b027aaf56c7b8a44ebe67bb34beced922bf5cf597e8cb70e08c3aab93b2dc551
-0aca8be090b64dcde00efc3d00f0e434f47bad0e65afc5e14b40394bc9593e90
-1580c6e6eade5829ca478fc3fba4910db1e3c644cc5ba3317ec5ab501d1c6910
-4e07f59dacb5151507cae41fe71a29325af4a1be2e23483bfd9a903d18f214ab
-50bf89af15b3779b87de53d598f380e305d7ca44a9598f44471703b962f10833
-6d6de4a2fa621ab354979c3f6d2067ad2f9b62e5ed592ef0032664063b24bc17
-595426010e52a91b5e37fecf04a1c431272277e59eef8fd956ef100bcf3aac1e
-1bdeee3f7904e234caf323fb4d58cf165395c7e6a3020491a5818fb0ca034689
-2a1dbbaa548aa25d8ab533d23af4ca08a15623b5078eca70d456e9f1ccb47b72
-3d361babc235ff16da9fca829e12cec33586476bfc4454bad5086b0c75fc6e2f
-bfeb0a4a6c76b0d23a69b748f17fd66c519d75b893a01861bc276b95e4cc04fa
-114d52e589d7cc6d0a623e28add619a3b2895087d21f70c035a0aea21d2a485e
-14805c77fc00be9c2f9c52b0cbac41aa7ce60e97179eef516c3322b6847b9168
-d008c1f77abe35bdf973edd789bcb88aa3f00f0597381b9472077daf563e2656
-006c30217f1aff60ec99738114e3e41b36d35df27e3e592ab61b3fb3c319bc87
-9ca2e63f
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.16
-%%VMusage: 1024 39962
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 998 2 0
-%%EndComments
-FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLU16-Regular) readonly def
- /FamilyName (TeXXSLU16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -200 def
- /UnderlineThickness 100 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 998 def
- /descent 2 def
-end readonly def
-/FontName /TeXXSLU16-Regular def
-/Encoding 256 array
-dup 100 /d put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -345 2126 1062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
-74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
-e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
-6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
-881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
-90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
-181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
-e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
-65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
-ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
-bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
-efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
-2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
-2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
-bacda202d38d8ac2fe8dcc0505bb2bdc12857735e15aa93fb3b56e8f27894e85
-ff4659c46f1e7a5199dae74a47ff1cf45894de73f386f3b404f1d33112479459
-6c565b05764a211b5a149dd8bee41b3a85938c1b2310107ec6a4e4de185a0f74
-d4be9f6151ad8ab96b7069f42d68bf0f286cbc8e18428aa3bfcc450d8abbad04
-6719ee9e3198d08f9d187ff404e24c582927e6f401f33a4b9f963441ae2098dc
-d18536a03c2e61ababbaec0852640d7b1aeed790d492e95ba1485faa26dfe90f
-6a7fcf600b39b9b4891997c8d7b91e212dc3bdab1da265d806b8c8416cdd6d88
-e624b208975f506b0a4d07ab607c4c6c86a3280245ad0d
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 71 /G put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
-46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
-4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
-27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
-66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
-24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
-451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
-544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
-6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
-d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
-e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
-4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
-68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
-06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
-a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
-42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
-fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
-198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
-6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
-e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
-503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/21n.dvi) @start /Fa 112[50 2[50
-138[50 1[{}3 66.4176 /TeXXSLHU16-Regular rf
-%DVIPSBitmapFont: Fb cmr10 10 10
-/Fb 10 118 df<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E0
-1340A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E0180
-381C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<12
-18123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>105 D<12FC121CB3A9EAFF8009
-1D7F9C0C>108 D<39FC7E07E0391C838838391D019018001EEBE01C001C13C0AD3AFF8F
-F8FF8021127F9124>I<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01
-C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78
-A2EA1C301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF8
-00EA7F80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>
-I<1204A4120CA2121C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<
-38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>I E
-%EndDVIPSBitmapFont
-/Fc 155[0 100[{}1 66.4176 /TeXXSLU16-Regular rf /Fd 184[53
-63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 21 1175 2 v -182 38 V -182 55 V -182 71
-V -182 88 V -182 70 a Fd(G)p 38 104 30 2 v 43 146 2 43
-v 43 104 a(\007)100 89 y Fc(d)p 136 103 2 59 v 136 45
-a Fd(\007)p 230 88 2 68 v 254 228 a Fb(bitmap)12 b(slurs)p
-259 104 30 2 v 264 146 2 43 v 264 104 a Fd(\007)274 -18
-y Fa(\214)-6 b(\001)p 358 70 2 59 v 358 12 a Fd(\007)p
-446 104 30 2 v 451 146 2 43 v 451 104 a(\007)461 -60
-y Fa(\217)g(\001)p 539 5 30 2 v 539 -12 V 539 -28 V 544
-54 2 84 v 544 -29 a Fd(\007)p 638 88 2 68 v 667 104 30
-2 v 672 146 2 43 v 672 104 a(\007)682 -118 y Fa(\217)g(\001)p
-761 5 30 2 v 761 -12 V 761 -28 V 761 -45 V 761 -62 V
-761 -78 V 766 54 2 142 v 766 -87 a Fd(\007)p 991 88 2
-68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 21n.dvi
+%%CreationDate: Tue Feb 18 18:47:58 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 712 312 801
+%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular TeXXSLHU16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 21n
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.18:1847
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXXSLHU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLHU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.06
+%%VMusage: 1024 38733
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 169 831 0
+%%EndComments
+FontDirectory/TeXXSLHU16-Regular known{/TeXXSLHU16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLHU16-Regular) readonly def
+ /FamilyName (TeXXSLHU16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -169.492 def
+ /UnderlineThickness 84.7457 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 169 def
+ /descent 831 def
+end readonly def
+/FontName /TeXXSLHU16-Regular def
+/Encoding 256 array
+dup 1 /acute put
+dup 140 /Ncaron put
+dup 143 /Racute put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-12 -2000 6002 42}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a0247182efe81683d22ed4896
+777eff4f5c5cf870d4d9a17e0947a6061ccbd5218308e6dd8d0495be85321133
+6af83ec97b2d1cdddeeeea9a43c5fb79c81d6d60f1602db407dbc9969c064085
+d52e426a80f83948c3da9cb3fb9c74db55e41c8510e904f2603fcb115ada23db
+9b67d0ec4c2d62eeb8b95685a8a3fb47318aeace201bd62acdc3e0f2da0cd4df
+8b8244438678fb049dd91646773ee5a5ede96098ec6debf2d74a732e84e142d3
+bee515493c682aa96522c87c66816202246950d810b829690570032d9ee08873
+0d0fcbc40d83c31731356b2072e752ec9e20edc357cd4e663ea79bbb206d7028
+97baf8142b3943a00306e749ceffaaa65e25c1b645b1b6607f6fe9364c722c62
+6b8215ee0d23897ac95ba9ec09e266a734182b66dd545e42a1186979e5eb902d
+8f2629fb4052d8bc08668e391ade6cad52415ddd215780ba71e413450bba938f
+137dcde16dcace63b67e68900465d114caff8f9bb482ba7f0a2d13acab1d2ab8
+b027aaf56c7b8a44ebe67bb34beced922bf5cf597e8cb70e08c3aab93b2dc551
+0aca8be090b64dcde00efc3d00f0e434f47bad0e65afc5e14b40394bc9593e90
+1580c6e6eade5829ca478fc3fba4910db1e3c644cc5ba3317ec5ab501d1c6910
+4e07f59dacb5151507cae41fe71a29325af4a1be2e23483bfd9a903d18f214ab
+50bf89af15b3779b87de53d598f380e305d7ca44a9598f44471703b962f10833
+6d6de4a2fa621ab354979c3f6d2067ad2f9b62e5ed592ef0032664063b24bc17
+595426010e52a91b5e37fecf04a1c431272277e59eef8fd956ef100bcf3aac1e
+1bdeee3f7904e234caf323fb4d58cf165395c7e6a3020491a5818fb0ca034689
+2a1dbbaa548aa25d8ab533d23af4ca08a15623b5078eca70d456e9f1ccb47b72
+3d361babc235ff16da9fca829e12cec33586476bfc4454bad5086b0c75fc6e2f
+bfeb0a4a6c76b0d23a69b748f17fd66c519d75b893a01861bc276b95e4cc04fa
+114d52e589d7cc6d0a623e28add619a3b2895087d21f70c035a0aea21d2a485e
+14805c77fc00be9c2f9c52b0cbac41aa7ce60e97179eef516c3322b6847b9168
+d008c1f77abe35bdf973edd789bcb88aa3f00f0597381b9472077daf563e2656
+006c30217f1aff60ec99738114e3e41b36d35df27e3e592ab61b3fb3c319bc87
+9ca2e63f
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.16
+%%VMusage: 1024 39962
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 998 2 0
+%%EndComments
+FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLU16-Regular) readonly def
+ /FamilyName (TeXXSLU16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -200 def
+ /UnderlineThickness 100 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 998 def
+ /descent 2 def
+end readonly def
+/FontName /TeXXSLU16-Regular def
+/Encoding 256 array
+dup 100 /d put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -345 2126 1062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
+74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
+e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
+6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
+881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
+90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
+181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
+e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
+65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
+ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
+bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
+efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
+2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
+2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
+bacda202d38d8ac2fe8dcc0505bb2bdc12857735e15aa93fb3b56e8f27894e85
+ff4659c46f1e7a5199dae74a47ff1cf45894de73f386f3b404f1d33112479459
+6c565b05764a211b5a149dd8bee41b3a85938c1b2310107ec6a4e4de185a0f74
+d4be9f6151ad8ab96b7069f42d68bf0f286cbc8e18428aa3bfcc450d8abbad04
+6719ee9e3198d08f9d187ff404e24c582927e6f401f33a4b9f963441ae2098dc
+d18536a03c2e61ababbaec0852640d7b1aeed790d492e95ba1485faa26dfe90f
+6a7fcf600b39b9b4891997c8d7b91e212dc3bdab1da265d806b8c8416cdd6d88
+e624b208975f506b0a4d07ab607c4c6c86a3280245ad0d
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 71 /G put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
+46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
+4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
+27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
+66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
+24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
+451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
+544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
+6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
+d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
+e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
+4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
+68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
+06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
+a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
+42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
+fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
+198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
+6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
+e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
+503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/21n.dvi) @start /Fa 112[50 2[50
+138[50 1[{}3 66.4176 /TeXXSLHU16-Regular rf
+%DVIPSBitmapFont: Fb cmr10 10 10
+/Fb 10 118 df<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E0
+1340A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E0180
+381C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<12
+18123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>105 D<12FC121CB3A9EAFF8009
+1D7F9C0C>108 D<39FC7E07E0391C838838391D019018001EEBE01C001C13C0AD3AFF8F
+F8FF8021127F9124>I<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01
+C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78
+A2EA1C301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF8
+00EA7F80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>
+I<1204A4120CA2121C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<
+38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>I E
+%EndDVIPSBitmapFont
+/Fc 155[0 100[{}1 66.4176 /TeXXSLU16-Regular rf /Fd 184[53
+63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 21 1175 2 v -182 38 V -182 55 V -182 71
+V -182 88 V -182 70 a Fd(G)p 38 104 30 2 v 43 146 2 43
+v 43 104 a(\007)100 89 y Fc(d)p 136 103 2 59 v 136 45
+a Fd(\007)p 230 88 2 68 v 254 228 a Fb(bitmap)12 b(slurs)p
+259 104 30 2 v 264 146 2 43 v 264 104 a Fd(\007)274 -18
+y Fa(\214)-6 b(\001)p 358 70 2 59 v 358 12 a Fd(\007)p
+446 104 30 2 v 451 146 2 43 v 451 104 a(\007)461 -60
+y Fa(\217)g(\001)p 539 5 30 2 v 539 -12 V 539 -28 V 544
+54 2 84 v 544 -29 a Fd(\007)p 638 88 2 68 v 667 104 30
+2 v 672 146 2 43 v 672 104 a(\007)682 -118 y Fa(\217)g(\001)p
+761 5 30 2 v 761 -12 V 761 -28 V 761 -45 V 761 -62 V
+761 -78 V 766 54 2 142 v 766 -87 a Fd(\007)p 991 88 2
+68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22.eps
index 8fa1f6a0bd5..8b3a4b07fa3 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22.eps
@@ -1,477 +1,477 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 22.dvi
-%%CreationDate: Wed Feb 19 17:22:05 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 751 312 782
-%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular TeXXSLD16D-Regular
-%%+ TeXXSLD16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.19:1722
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXXSLD16-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
-%%CreationDate: 01-07-22 at 22.48
-%%VMusage: 1024 40444
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLD16-Regular) readonly def
- /FamilyName (TeXXSLD16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -199.203 def
- /UnderlineThickness 99.6016 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 199 def
- /descent 801 def
-end readonly def
-/FontName /TeXXSLD16-Regular def
-/Encoding 256 array
-dup 21 /endash put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -1058 2126 349}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
-a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
-f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
-9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
-bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
-0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
-22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
-072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
-999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
-dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
-8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
-20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
-489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
-5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
-5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
-b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8e05
-51c344ba6c106fb38b7b7cd24bee81ae6c7f6c1e145029e685df9ee967889d8d
-6e20373789de3f90a08d8657891dfb978f9915d6ee15665642354806a3c544b7
-bcea42fd7f3a9dbb258fd89872956180b8f50a528cfbf5b7c9620604b95a00d7
-68d19f01ae9e876e128e6ce548b57c4db84a3c805edc4b729fafbd477d881683
-22e263f422b6273a9fadc804c7d3a6080459f05006e25ba750372c06816a2fd7
-674f18a5405ccb8c8423982a6ca167e91a127fb69ac03a06c3a88c5cf353f14e
-7e44b27eea525bbfc958427fef8de11fba4de8e082d6443514a18b33758be234
-a6c660a8e23c4b6721108b001b2d6b0f9e4b5f8a633d233ed55b430998b7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLD16D-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16D-Regular 001.000
-%%CreationDate: 01-07-22 at 22.49
-%%VMusage: 1024 101006
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16D-Regular known{/TeXXSLD16D-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLD16D-Regular) readonly def
- /FamilyName (TeXXSLD16D) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -198.807 def
- /UnderlineThickness 99.4036 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 199 def
- /descent 801 def
-end readonly def
-/FontName /TeXXSLD16D-Regular def
-/Encoding 256 array
-dup 46 /period put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -1056 2126 348}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471d133239612c567cffe2
-e68a96c13aa759e9bea92f146d1bd7deb6237c6663718a48a3b4b35f5770d1a6
-aa0844dcb80543105beab26e17af71b8104110b01f022757a1bba0926fce0114
-0f8e2e9f80e3626eaf47528d2d88b8eb5f551713c02ff925ea2d2c48610cb2b5
-e04808a418c59a1614a59ee0ee01c762ffd6a0d3bfe820e90b8ad0b65c51e472
-5b182e418902268c868dd86a3bf8b64521da766764c9d7f02c78144154c04a3f
-03ab24acb924f5c69062788cb38e86655649ce7baf863ae2dc29516eb994b6d5
-c26f724bebd4bbc7d156b6c6845ec149caddb13b13fbf75201cdb14c1ad6a23d
-c16ef5d62c1cef8d005e5b0e6c75e15eff4529732af047fbcc774679977519c1
-3d9aa503c7a88a986f943dcef878d9ef5df685e28cb4fd64ab20bec26bb359ec
-c130c516c6fd3be4a4bb1e8112f507ef2cf692bb12c59133fea43efe754d9e45
-bf1efe137a26b83ed766137fda599676bf3970eaf03d02093020d5821b123db0
-2f9c69fcca065537bc8ab02e6b2d764d2f51b2393a5ca7b5a00cdd23b5ca2cac
-35cee431509898c63cab854e8030cc0116f6d473bf570b3db7ee8b4e40e94940
-38c8c4146d9e400a2cf76a723747ebc83842109fe7b1598fc7a8f57ae4b0bbde
-52c143be0ac520a180165dd9547464fea7745fc0491fcc36590e24cf6c51e309
-23912bf3f6cb7d359e20543fac8ea65eafe7869c5e2b08975a7f17857a7bcfb9
-c3a5a78d59fd137aaa950898bc3c81e80a6973eb6ce63471bac246ab7837cd7c
-68f292dc979b8cff326da840d6ca86a4534799072e1d3d3fc6e006b77e440311
-b40ed4152963fd7e277b094a32e9ea08bc4520c995d232b1adc50a6713cda1d8
-5ebac05bac1002f7e439c6c0122f7f6a3b1ba8bb1352bcc8068be0915c2c668d
-7bc8ff590e59a42429183e162e1b8accee20152c368e33ee8ef46f25f5f5bf00
-dcaab1c0c3d312647da788ff4e32558ca69622b880c8bd914db02ac733949350
-d07d2fa167d62aa68607216e27cb71d55f12a8a4603ea37d8c5003afb643f744
-45b87f0b07d7060baa062f5792c0805790fd187e4a4a5c9dc0800f2a3edb0174
-489337ee63e558e538ad90a3cb2b647b81de606a8a79597c6532f27d1e4c5153
-973e21d92f10fdc14a9e03ee2f143dc5cf87afb818e1d2a6ce9f7f635ba1d657
-ef71a6000f65f82e8953a6cbd4b45995ef8b28d7d14196cfdfdfcf13d74e1362
-41dae645c1c6b93c7ab3ebd6888edb04330f3cba2658cdc5b9f46e242c71821f
-17a4871d02e64c107d44bc82366b7c6c75d73880cb735085ae5ffd689877bc6d
-91c3db5cf04a9f323f0ccd81a9e35de60cd016612389f5c7adf24de0c454b6a0
-b6e50066a2d5d1eff064f9d024647380a432d5d8fc6447e82644c79b067c10b3
-18b0ebdf0d0b5015851eee2a1bbf544ac088a0eb0715dfbe1ffd5ab84d48f6f4
-52109d62b3a0dba6dd21b4acf560a3fa8e65c719d5c7ed23a3308b403431e904
-dbdcb7e996736ed478e4589217dc8cff3caaa90c01f58fe674dd8280954e13cd
-948db7cb5a14f486e15ce30b57e8de5ebd70abb189d5ab67310c9fff2bb0d733
-014148a3084c2e4941ad13600b5e23b6c4462bd69864844955619a25f540
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.16
-%%VMusage: 1024 39962
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 998 2 0
-%%EndComments
-FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLU16-Regular) readonly def
- /FamilyName (TeXXSLU16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -200 def
- /UnderlineThickness 100 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 998 def
- /descent 2 def
-end readonly def
-/FontName /TeXXSLU16-Regular def
-/Encoding 256 array
-dup 165 /ecaron put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -345 2126 1062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
-74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
-e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
-6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
-881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
-90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
-181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
-e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
-65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
-ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
-bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
-efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
-2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
-2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
-bacda202d38d8ac2fe8dcc0505bb2bdc12857735e15aa93fb3b56e8f27894e84
-7361f418452d43edd0a151152979a54605ec64afb6a3c3eb3cc594f760e3be5b
-ce00880c5e68cd350b863c39106399c281c8746b820d6014c10997777e5740f7
-810b716f23c60fc571e43447ab248f42d7c80d91ceda0e3f8f4ff390dc28c8c8
-7d3d676ea3695f07503158d946a926837a0cb9f34f7f5a40602612f535d9c3d0
-15213545d7eb212c5249098e04fd9b7b4cec678faf9e49c0d5a6877bfefc0531
-b073c6d10200aef42a85e2719511f93bfa5fa32e5f8703275ab6fad0111576d6
-4d6cbe2269673689b24795263a49660084ff2a2a95a50ba12a356fa328acdb93
-e36334ae0da4b58a2708e3
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
-af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
-309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
-e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
-17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
-864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
-6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
-e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
-71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
-64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
-467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
-0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
-1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
-72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
-fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
-e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
-435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
-4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
-46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
-dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
-d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
-890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
-c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
-d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
-6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
-63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/22.dvi) @start /Fa 234[0 21[{}1
-66.4176 /TeXXSLD16-Regular rf /Fb 209[0 46[{}1 66.4176
-/TeXXSLD16D-Regular rf /Fc 90[0 165[{}1 66.4176 /TeXXSLU16-Regular
-rf /Fd 59[133 124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fd(G)p -59 31 2 59 v 51 w(\007)-14
-45 y Fc(\245)p 46 64 V 46 6 a Fd(\007)p 170 52 2 63 v
-170 -10 a(\007)p 258 56 2 59 v 258 -2 a(\007)p 346 60
-2 55 v 346 6 a(\007)312 -24 y Fb(.)170 52 y Fd(\304)303
-58 y(\304)p 434 64 2 51 v 434 15 a(\007)p 522 49 2 68
-v 586 23 2 59 v 567 23 a(\007)647 9 y Fa(\025)p 710 40
-V 691 40 a Fd(\007)p 835 31 V 816 31 a(\010)p 991 49
-2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 22.dvi
+%%CreationDate: Wed Feb 19 17:22:05 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 751 312 782
+%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular TeXXSLD16D-Regular
+%%+ TeXXSLD16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.19:1722
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXXSLD16-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
+%%CreationDate: 01-07-22 at 22.48
+%%VMusage: 1024 40444
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLD16-Regular) readonly def
+ /FamilyName (TeXXSLD16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -199.203 def
+ /UnderlineThickness 99.6016 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 199 def
+ /descent 801 def
+end readonly def
+/FontName /TeXXSLD16-Regular def
+/Encoding 256 array
+dup 21 /endash put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -1058 2126 349}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
+a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
+f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
+9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
+bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
+0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
+22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
+072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
+999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
+dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
+8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
+20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
+489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
+5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
+5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
+b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8e05
+51c344ba6c106fb38b7b7cd24bee81ae6c7f6c1e145029e685df9ee967889d8d
+6e20373789de3f90a08d8657891dfb978f9915d6ee15665642354806a3c544b7
+bcea42fd7f3a9dbb258fd89872956180b8f50a528cfbf5b7c9620604b95a00d7
+68d19f01ae9e876e128e6ce548b57c4db84a3c805edc4b729fafbd477d881683
+22e263f422b6273a9fadc804c7d3a6080459f05006e25ba750372c06816a2fd7
+674f18a5405ccb8c8423982a6ca167e91a127fb69ac03a06c3a88c5cf353f14e
+7e44b27eea525bbfc958427fef8de11fba4de8e082d6443514a18b33758be234
+a6c660a8e23c4b6721108b001b2d6b0f9e4b5f8a633d233ed55b430998b7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLD16D-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16D-Regular 001.000
+%%CreationDate: 01-07-22 at 22.49
+%%VMusage: 1024 101006
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16D-Regular known{/TeXXSLD16D-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLD16D-Regular) readonly def
+ /FamilyName (TeXXSLD16D) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -198.807 def
+ /UnderlineThickness 99.4036 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 199 def
+ /descent 801 def
+end readonly def
+/FontName /TeXXSLD16D-Regular def
+/Encoding 256 array
+dup 46 /period put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -1056 2126 348}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471d133239612c567cffe2
+e68a96c13aa759e9bea92f146d1bd7deb6237c6663718a48a3b4b35f5770d1a6
+aa0844dcb80543105beab26e17af71b8104110b01f022757a1bba0926fce0114
+0f8e2e9f80e3626eaf47528d2d88b8eb5f551713c02ff925ea2d2c48610cb2b5
+e04808a418c59a1614a59ee0ee01c762ffd6a0d3bfe820e90b8ad0b65c51e472
+5b182e418902268c868dd86a3bf8b64521da766764c9d7f02c78144154c04a3f
+03ab24acb924f5c69062788cb38e86655649ce7baf863ae2dc29516eb994b6d5
+c26f724bebd4bbc7d156b6c6845ec149caddb13b13fbf75201cdb14c1ad6a23d
+c16ef5d62c1cef8d005e5b0e6c75e15eff4529732af047fbcc774679977519c1
+3d9aa503c7a88a986f943dcef878d9ef5df685e28cb4fd64ab20bec26bb359ec
+c130c516c6fd3be4a4bb1e8112f507ef2cf692bb12c59133fea43efe754d9e45
+bf1efe137a26b83ed766137fda599676bf3970eaf03d02093020d5821b123db0
+2f9c69fcca065537bc8ab02e6b2d764d2f51b2393a5ca7b5a00cdd23b5ca2cac
+35cee431509898c63cab854e8030cc0116f6d473bf570b3db7ee8b4e40e94940
+38c8c4146d9e400a2cf76a723747ebc83842109fe7b1598fc7a8f57ae4b0bbde
+52c143be0ac520a180165dd9547464fea7745fc0491fcc36590e24cf6c51e309
+23912bf3f6cb7d359e20543fac8ea65eafe7869c5e2b08975a7f17857a7bcfb9
+c3a5a78d59fd137aaa950898bc3c81e80a6973eb6ce63471bac246ab7837cd7c
+68f292dc979b8cff326da840d6ca86a4534799072e1d3d3fc6e006b77e440311
+b40ed4152963fd7e277b094a32e9ea08bc4520c995d232b1adc50a6713cda1d8
+5ebac05bac1002f7e439c6c0122f7f6a3b1ba8bb1352bcc8068be0915c2c668d
+7bc8ff590e59a42429183e162e1b8accee20152c368e33ee8ef46f25f5f5bf00
+dcaab1c0c3d312647da788ff4e32558ca69622b880c8bd914db02ac733949350
+d07d2fa167d62aa68607216e27cb71d55f12a8a4603ea37d8c5003afb643f744
+45b87f0b07d7060baa062f5792c0805790fd187e4a4a5c9dc0800f2a3edb0174
+489337ee63e558e538ad90a3cb2b647b81de606a8a79597c6532f27d1e4c5153
+973e21d92f10fdc14a9e03ee2f143dc5cf87afb818e1d2a6ce9f7f635ba1d657
+ef71a6000f65f82e8953a6cbd4b45995ef8b28d7d14196cfdfdfcf13d74e1362
+41dae645c1c6b93c7ab3ebd6888edb04330f3cba2658cdc5b9f46e242c71821f
+17a4871d02e64c107d44bc82366b7c6c75d73880cb735085ae5ffd689877bc6d
+91c3db5cf04a9f323f0ccd81a9e35de60cd016612389f5c7adf24de0c454b6a0
+b6e50066a2d5d1eff064f9d024647380a432d5d8fc6447e82644c79b067c10b3
+18b0ebdf0d0b5015851eee2a1bbf544ac088a0eb0715dfbe1ffd5ab84d48f6f4
+52109d62b3a0dba6dd21b4acf560a3fa8e65c719d5c7ed23a3308b403431e904
+dbdcb7e996736ed478e4589217dc8cff3caaa90c01f58fe674dd8280954e13cd
+948db7cb5a14f486e15ce30b57e8de5ebd70abb189d5ab67310c9fff2bb0d733
+014148a3084c2e4941ad13600b5e23b6c4462bd69864844955619a25f540
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.16
+%%VMusage: 1024 39962
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 998 2 0
+%%EndComments
+FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLU16-Regular) readonly def
+ /FamilyName (TeXXSLU16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -200 def
+ /UnderlineThickness 100 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 998 def
+ /descent 2 def
+end readonly def
+/FontName /TeXXSLU16-Regular def
+/Encoding 256 array
+dup 165 /ecaron put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -345 2126 1062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
+74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
+e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
+6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
+881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
+90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
+181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
+e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
+65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
+ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
+bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
+efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
+2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
+2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
+bacda202d38d8ac2fe8dcc0505bb2bdc12857735e15aa93fb3b56e8f27894e84
+7361f418452d43edd0a151152979a54605ec64afb6a3c3eb3cc594f760e3be5b
+ce00880c5e68cd350b863c39106399c281c8746b820d6014c10997777e5740f7
+810b716f23c60fc571e43447ab248f42d7c80d91ceda0e3f8f4ff390dc28c8c8
+7d3d676ea3695f07503158d946a926837a0cb9f34f7f5a40602612f535d9c3d0
+15213545d7eb212c5249098e04fd9b7b4cec678faf9e49c0d5a6877bfefc0531
+b073c6d10200aef42a85e2719511f93bfa5fa32e5f8703275ab6fad0111576d6
+4d6cbe2269673689b24795263a49660084ff2a2a95a50ba12a356fa328acdb93
+e36334ae0da4b58a2708e3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
+af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
+309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
+e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
+17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
+864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
+6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
+e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
+71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
+64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
+467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
+0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
+1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
+72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
+fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
+e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
+435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
+4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
+46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
+dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
+d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
+890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
+c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
+d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
+6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
+63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/22.dvi) @start /Fa 234[0 21[{}1
+66.4176 /TeXXSLD16-Regular rf /Fb 209[0 46[{}1 66.4176
+/TeXXSLD16D-Regular rf /Fc 90[0 165[{}1 66.4176 /TeXXSLU16-Regular
+rf /Fd 59[133 124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fd(G)p -59 31 2 59 v 51 w(\007)-14
+45 y Fc(\245)p 46 64 V 46 6 a Fd(\007)p 170 52 2 63 v
+170 -10 a(\007)p 258 56 2 59 v 258 -2 a(\007)p 346 60
+2 55 v 346 6 a(\007)312 -24 y Fb(.)170 52 y Fd(\304)303
+58 y(\304)p 434 64 2 51 v 434 15 a(\007)p 522 49 2 68
+v 586 23 2 59 v 567 23 a(\007)647 9 y Fa(\025)p 710 40
+V 691 40 a Fd(\007)p 835 31 V 816 31 a(\010)p 991 49
+2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22k.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22k.eps
index 7457a251184..a04f161da24 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22k.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22k.eps
@@ -1,609 +1,609 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 22k.dvi
-%%CreationDate: Sat Jan 25 21:13:57 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 735 312 783
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22k.dvi
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.01.25:2113
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
-af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
-309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
-e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
-17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
-864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
-6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
-e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
-71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
-64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
-467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
-0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
-1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
-72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
-fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
-e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
-435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
-4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
-46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
-dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
-d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
-890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
-c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
-d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
-6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
-63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/22k.dvi) @start
-%DVIPSBitmapFont: Fa cmr10 10 9
-/Fa 9 122 df<39FFF01FE0390F000780EC060014045C5C5C5C5C49C7FC13021306130F
-EB17801327EB43C0EB81E013016D7E1478A280143E141E80158015C039FFF03FF01C1C7F
-9B20>75 D<007FB512C038700F010060130000401440A200C014201280A300001400B149
-7E3803FFFC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFE
-EAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>101
-D<12FC121CB3A9EAFF80091D7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0
-A21470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112
-D<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D127F9110>114
-D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA80381318
-12C0A2EAE010EAD060EA8FC00D127F9110>I<38FC1F80EA1C03AD1307120CEA0E1B3803
-E3F014127F9117>117 D<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA
-0388A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>
-121 D E
-%EndDVIPSBitmapFont
-/Fb 59[133 124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fb(G)-67 45 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -67 45 a -59 31 2
-59 v -78 31 a Fb(\007)40 6 y
- slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 40 6 a 40 6 a
- end
- 40 6 a 46
-64 2 59 v 6 w Fb(\007)182 -23 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 1 N /S0adj 0 N end
- 182 -23 a 170 52 2 63
-v 170 -10 a Fb(\007)248 131 y Fa(T)o(yp)q(e)14 b(K)g(slurs)p
-258 56 2 59 v 258 -2 a Fb(\007)p 346 60 2 55 v 346 6
-a(\007)444 15 y
- slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 444 15 a 444 15 a
- end
- 444 15 a 170 52 a Fb(\304)303
-58 y(\304)p 434 64 2 51 v 434 15 a(\007)p 522 49 2 68
-v 595 10 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (9.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 595 10 a 586 23 2 59 v 567 23 a Fb(\007)701
-40 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 701 40 a 701 40 a
- end
- 701 40 a 710 40 2 59 v -10 w Fb(\007)p
-835 31 V 816 31 a(\010)p 991 49 2 68 v 993 131 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 993
-131 a eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 22k.dvi
+%%CreationDate: Sat Jan 25 21:13:57 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 735 312 783
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22k.dvi
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.01.25:2113
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
+af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
+309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
+e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
+17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
+864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
+6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
+e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
+71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
+64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
+467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
+0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
+1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
+72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
+fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
+e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
+435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
+4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
+46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
+dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
+d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
+890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
+c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
+d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
+6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
+63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/22k.dvi) @start
+%DVIPSBitmapFont: Fa cmr10 10 9
+/Fa 9 122 df<39FFF01FE0390F000780EC060014045C5C5C5C5C49C7FC13021306130F
+EB17801327EB43C0EB81E013016D7E1478A280143E141E80158015C039FFF03FF01C1C7F
+9B20>75 D<007FB512C038700F010060130000401440A200C014201280A300001400B149
+7E3803FFFC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFE
+EAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>101
+D<12FC121CB3A9EAFF80091D7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0
+A21470A614E0A2EB01C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112
+D<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D127F9110>114
+D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA80381318
+12C0A2EAE010EAD060EA8FC00D127F9110>I<38FC1F80EA1C03AD1307120CEA0E1B3803
+E3F014127F9117>117 D<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA
+0388A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>
+121 D E
+%EndDVIPSBitmapFont
+/Fb 59[133 124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fb(G)-67 45 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -67 45 a -59 31 2
+59 v -78 31 a Fb(\007)40 6 y
+ slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 40 6 a 40 6 a
+ end
+ 40 6 a 46
+64 2 59 v 6 w Fb(\007)182 -23 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 1 N /S0adj 0 N end
+ 182 -23 a 170 52 2 63
+v 170 -10 a Fb(\007)248 131 y Fa(T)o(yp)q(e)14 b(K)g(slurs)p
+258 56 2 59 v 258 -2 a Fb(\007)p 346 60 2 55 v 346 6
+a(\007)444 15 y
+ slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 444 15 a 444 15 a
+ end
+ 444 15 a 170 52 a Fb(\304)303
+58 y(\304)p 434 64 2 51 v 434 15 a(\007)p 522 49 2 68
+v 595 10 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (9.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 595 10 a 586 23 2 59 v 567 23 a Fb(\007)701
+40 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 701 40 a 701 40 a
+ end
+ 701 40 a 710 40 2 59 v -10 w Fb(\007)p
+835 31 V 816 31 a(\010)p 991 49 2 68 v 993 131 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 993
+131 a eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22m.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22m.eps
index 25f4de83e70..d2752254964 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22m.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22m.eps
@@ -1,516 +1,516 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 22m.dvi
-%%CreationDate: Sat Jan 25 21:14:22 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 735 312 782
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22m.dvi
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.01.25:2114
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
-af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
-309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
-e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
-17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
-864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
-6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
-e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
-71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
-64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
-467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
-0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
-1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
-72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
-fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
-e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
-435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
-4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
-46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
-dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
-d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
-890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
-c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
-d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
-6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
-63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/22m.dvi) @start
-%DVIPSBitmapFont: Fa cmr10 10 9
-/Fa 9 122 df<B46CEBFF80000FECF800A2390BC00178A33809E002A23808F004A3EB78
-08A3EB3C10A3EB1E20A3EB0F40A2EB0780A3EB0300121C3AFF8307FF80211C7E9B26>77
-D<007FB512C038700F010060130000401440A200C014201280A300001400B1497E3803FF
-FC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFEEAE000A4
-1260EA70021230EA1804EA0C18EA03E00F127F9112>101 D<12FC121CB3A9EAFF80091D
-7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01C0001E
-1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78A2EA1C
-301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F
-80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>I<38FC
-1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>117 D<38FF07E0383C0380381C
-0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A25BA212F000
-F1C7FC12F312661238131A7F9116>121 D E
-%EndDVIPSBitmapFont
-/Fb 59[133 124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fb(G)p -59 31 2 59 v 51 w(\007)-72
-50 y @beginspecial -1 @llx -1 @lly 27 @urx 7 @ury 280
-@rwi @setspecial
-%%BeginDocument: 22m.1
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 27 7
-%%Creator: MetaPost
-%%CreationDate: 2003.01.25:2114
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath 0.0091 0.07115 moveto
-1.02615 -0.1663 2.06636 -0.29054 3.11073 -0.29926 curveto
-4.67299 -0.3123 6.22134 -0.06772 7.75336 0.23486 curveto
-9.48055 0.57599 11.1919 0.99104 12.90784 1.38463 curveto
-14.65286 1.78488 16.40335 2.16312 18.13396 2.62196 curveto
-19.73999 3.04779 21.33005 3.54366 22.84013 4.23776 curveto
-23.93312 4.74014 24.9769 5.3433 25.95793 6.03941 curveto
-26.03062 5.91573 lineto
-25.03893 5.21645 23.99576 4.59314 22.91005 4.05118 curveto
-21.41063 3.30269 19.83932 2.71364 18.25787 2.16008 curveto
-16.55789 1.56503 14.84247 1.00958 13.08646 0.6079 curveto
-11.35944 0.21283 9.60301 -0.03123 7.84335 -0.2348 curveto
-6.27711 -0.41599 4.70341 -0.5654 3.12764 -0.49779 curveto
-2.07115 -0.45245 1.02112 -0.30965 -0.0091 -0.07115 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 46 64 V 46 6 a(\007)p 170 52 2 63 v 170
--10 a(\007)248 131 y Fa(T)o(yp)q(e)14 b(M)g(slurs)p 258
-56 2 59 v 258 -2 a Fb(\007)p 346 60 2 55 v 346 6 a(\007)176
-5 y @beginspecial -1 @llx -7 @lly 64 @urx 3 @ury 650
-@rwi @setspecial
-%%BeginDocument: 22m.2
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -7 64 3
-%%Creator: MetaPost
-%%CreationDate: 2003.01.25:2114
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath 2.01393 0.4552 moveto
-1.34358 0.29553 0.67677 0.12032 0.01404 -0.07034 curveto
-0.01404 -0.07034 lineto
--0.01404 0.07034 lineto
--0.01404 0.07034 lineto
-0.65155 0.26135 1.32089 0.4382 1.99355 0.6008 curveto
-1.99355 0.6008 lineto
-2.01393 0.4552 lineto
- closepath fill
-newpath 4.90675 1.04391 moveto
-4.22742 0.9289 3.55083 0.79817 2.87755 0.65186 curveto
-2.87752 0.65186 lineto
-2.85999 0.80194 lineto
-2.85999 0.80194 lineto
-3.53539 0.9523 4.2139 1.08836 4.89507 1.21005 curveto
-4.89508 1.21005 lineto
-4.90675 1.04391 lineto
- closepath fill
-newpath 7.94986 1.45207 moveto
-7.58882 1.41473 lineto
-6.9849 1.34982 6.38257 1.27261 5.7822 1.1832 curveto
-5.7822 1.1832 lineto
-5.77281 1.35866 lineto
-5.77281 1.35866 lineto
-6.37471 1.45496 6.97853 1.54007 7.58394 1.61392 curveto
-7.9456 1.6567 lineto
-7.9456 1.6567 lineto
-7.94986 1.45212 lineto
- closepath fill
-newpath 12.28683 1.6967 moveto
-11.27309 1.67807 10.26016 1.6359 9.24884 1.56308 curveto
-9.24887 1.56308 lineto
-9.2471 1.78929 lineto
-9.2471 1.78929 lineto
-10.26053 1.8801 11.27596 1.9431 12.2926 1.98515 curveto
-12.29254 1.98514 lineto
-12.28683 1.6967 lineto
- closepath fill
-newpath 16.63405 1.65302 moveto
-15.61948 1.68721 14.6046 1.70798 13.59021 1.70822 curveto
-13.59032 1.70822 lineto
-13.59996 2.02818 lineto
-13.59996 2.02818 lineto
-14.61748 2.05353 15.63586 2.06087 16.65431 2.05704 curveto
-16.65428 2.05702 lineto
-16.63388 1.65302 lineto
- closepath fill
-newpath 21.20567 1.42947 moveto
-20.45467 1.47523 19.7034 1.51712 18.95187 1.5546 curveto
-17.93768 1.60222 lineto
-17.93652 1.60228 17.93883 1.6013 17.93791 1.60204 curveto
-17.93768 1.60222 lineto
-17.96338 2.04648 lineto
-17.96347 2.04666 lineto
-17.96338 2.04648 lineto
-18.98196 2.03186 lineto
-19.73598 2.01938 20.48996 2.00365 21.24382 1.98398 curveto
-21.24382 1.98398 lineto
-21.20567 1.42947 lineto
- closepath fill
-newpath 26.03194 1.08662 moveto
-24.9067 1.17674 23.78099 1.26059 22.65475 1.33644 curveto
-22.6548 1.33644 lineto
-22.6986 1.94092 lineto
-22.69864 1.94101 lineto
-22.6986 1.94092 lineto
-23.82928 1.90337 24.95958 1.85594 26.08916 1.7963 curveto
-26.08913 1.79631 lineto
-26.03194 1.08662 lineto
- closepath fill
-newpath 30.85132 0.66718 moveto
-29.72722 0.77164 28.60275 0.87233 27.47786 0.9675 curveto
-27.47668 0.9676 27.47838 0.96619 27.47812 0.9673 curveto
-27.47807 0.96748 lineto
-27.5407 1.71272 lineto
-27.5407 1.71272 lineto
-28.6696 1.64218 29.79768 1.55838 30.92462 1.45903 curveto
-30.92462 1.45903 lineto
-30.85132 0.66718 lineto
- closepath fill
-newpath 35.6902 0.19261 moveto
-34.56076 0.31029 33.4307 0.42232 32.30028 0.53052 curveto
-32.30028 0.53052 lineto
-32.37674 1.32217 lineto
-32.37674 1.32217 lineto
-33.50911 1.20856 34.63966 1.07924 35.76855 0.93657 curveto
-35.76836 0.93642 lineto
-35.6902 0.19261 lineto
- closepath fill
-newpath 40.52574 -0.3514 moveto
-39.3986 -0.21394 38.27048 -0.0847 37.1416 0.03813 curveto
-37.14163 0.03812 lineto
-37.21844 0.74606 lineto
-37.21844 0.74606 lineto
-38.34587 0.5924 39.47168 0.4264 40.59601 0.25044 curveto
-40.59596 0.25044 lineto
-40.52574 -0.3514 lineto
- closepath fill
-newpath 45.25291 -0.98209 moveto
-44.22562 -0.83499 lineto
-43.47601 -0.72995 42.72583 -0.62943 41.97514 -0.5329 curveto
-41.97514 -0.53285 lineto
-42.04153 0.01878 lineto
-42.04153 0.01878 lineto
-42.79012 -0.10391 43.53807 -0.23059 44.28543 -0.36053 curveto
-45.3107 -0.54117 lineto
-45.3107 -0.54117 lineto
-45.25291 -0.98209 lineto
- closepath fill
-newpath 49.63797 -1.709 moveto
-48.61926 -1.51598 47.5965 -1.34222 46.5715 -1.18167 curveto
-46.57152 -1.18167 lineto
-46.6268 -0.78154 lineto
-46.6268 -0.78154 lineto
-47.64986 -0.97278 48.6708 -1.17479 49.6878 -1.3935 curveto
-49.68785 -1.3935 lineto
-49.63797 -1.709 lineto
- closepath fill
-newpath 53.97318 -2.67192 moveto
-52.96988 -2.41142 51.95987 -2.17888 50.94499 -1.96822 curveto
-50.94504 -1.96822 lineto
-50.99283 -1.68428 lineto
-50.99283 -1.68428 lineto
-52.00613 -1.91838 53.01472 -2.17169 54.01674 -2.45015 curveto
-54.01671 -2.45012 lineto
-53.97318 -2.67192 lineto
- closepath fill
-newpath 57.4431 -3.7023 moveto
-56.83772 -3.49864 56.22833 -3.30653 55.61525 -3.1261 curveto
-55.25998 -3.02295 lineto
-55.25998 -3.02295 lineto
-55.30199 -2.82268 lineto
-55.30199 -2.82268 lineto
-55.65688 -2.93124 lineto
-56.2696 -3.12091 56.87883 -3.32117 57.48428 -3.53192 curveto
-57.48428 -3.53192 lineto
-57.4431 -3.7023 lineto
- closepath fill
-newpath 60.35606 -4.784 moveto
-59.68456 -4.51064 59.00719 -4.25189 58.32442 -4.00795 curveto
-58.3244 -4.00793 lineto
-58.3659 -3.8472 lineto
-58.3659 -3.8472 lineto
-59.04906 -4.09805 59.72717 -4.36237 60.39987 -4.63997 curveto
-60.39992 -4.63998 lineto
-60.35606 -4.784 lineto
- closepath fill
-newpath 63.19646 -6.04442 moveto
-62.5427 -5.72968 61.88237 -5.42928 61.21597 -5.14342 curveto
-61.21597 -5.14342 lineto
-61.26161 -5.00415 lineto
-61.26161 -5.00415 lineto
-61.92961 -5.29315 62.59201 -5.59538 63.24843 -5.9107 curveto
-63.24843 -5.9107 lineto
-63.19646 -6.04442 lineto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 170 52 a(\304)303 58 y(\304)p 434 64 2 51
-v 434 15 a(\007)p 522 49 2 68 v 586 23 2 59 v 567 23
-a(\007)589 30 y @beginspecial -1 @llx -5 @lly 27 @urx
-1 @ury 280 @rwi @setspecial
-%%BeginDocument: 22m.3
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -5 27 1
-%%Creator: MetaPost
-%%CreationDate: 2003.01.25:2114
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.01437 0.07028 moveto
-1.00781 0.38809 2.05702 0.61136 3.12004 0.73726 curveto
-4.6808 0.92212 6.25566 0.89578 7.82567 0.83528 curveto
-9.57585 0.76784 11.32584 0.65799 13.05754 0.3939 curveto
-14.8091 0.1268 16.53146 -0.29648 18.24092 -0.76143 curveto
-19.82143 -1.1913 21.39447 -1.65785 22.90355 -2.29558 curveto
-23.9864 -2.75319 25.03087 -3.29678 26.02692 -3.92117 curveto
-25.96164 -4.04892 lineto
-24.97688 -3.42754 23.93355 -2.90424 22.84663 -2.48653 curveto
-21.33086 -1.904 19.7461 -1.53229 18.15092 -1.2311 curveto
-16.42096 -0.90445 14.67699 -0.66 12.93677 -0.3939 curveto
-11.21648 -0.13084 9.49907 0.15352 7.77104 0.3602 curveto
-6.22623 0.54498 4.66946 0.66756 3.11835 0.53801 curveto
-2.06447 0.45 1.02351 0.246 0.01436 -0.07027 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 710 40 V 691 40 a(\007)p 835 31 V 816 31
-a(\010)p 991 49 2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 22m.dvi
+%%CreationDate: Sat Jan 25 21:14:22 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 735 312 782
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22m.dvi
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.01.25:2114
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
+af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
+309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
+e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
+17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
+864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
+6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
+e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
+71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
+64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
+467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
+0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
+1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
+72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
+fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
+e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
+435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
+4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
+46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
+dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
+d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
+890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
+c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
+d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
+6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
+63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/22m.dvi) @start
+%DVIPSBitmapFont: Fa cmr10 10 9
+/Fa 9 122 df<B46CEBFF80000FECF800A2390BC00178A33809E002A23808F004A3EB78
+08A3EB3C10A3EB1E20A3EB0F40A2EB0780A3EB0300121C3AFF8307FF80211C7E9B26>77
+D<007FB512C038700F010060130000401440A200C014201280A300001400B1497E3803FF
+FC1B1C7F9B1E>84 D<EA07E0EA0C30EA1818EA300CEA700EEA600612E0EAFFFEEAE000A4
+1260EA70021230EA1804EA0C18EA03E00F127F9112>101 D<12FC121CB3A9EAFF80091D
+7F9C0C>108 D<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01C0001E
+1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78A2EA1C
+301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F
+80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>I<38FC
+1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>117 D<38FF07E0383C0380381C
+0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A31340A25BA212F000
+F1C7FC12F312661238131A7F9116>121 D E
+%EndDVIPSBitmapFont
+/Fb 59[133 124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fb(G)p -59 31 2 59 v 51 w(\007)-72
+50 y @beginspecial -1 @llx -1 @lly 27 @urx 7 @ury 280
+@rwi @setspecial
+%%BeginDocument: 22m.1
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 27 7
+%%Creator: MetaPost
+%%CreationDate: 2003.01.25:2114
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath 0.0091 0.07115 moveto
+1.02615 -0.1663 2.06636 -0.29054 3.11073 -0.29926 curveto
+4.67299 -0.3123 6.22134 -0.06772 7.75336 0.23486 curveto
+9.48055 0.57599 11.1919 0.99104 12.90784 1.38463 curveto
+14.65286 1.78488 16.40335 2.16312 18.13396 2.62196 curveto
+19.73999 3.04779 21.33005 3.54366 22.84013 4.23776 curveto
+23.93312 4.74014 24.9769 5.3433 25.95793 6.03941 curveto
+26.03062 5.91573 lineto
+25.03893 5.21645 23.99576 4.59314 22.91005 4.05118 curveto
+21.41063 3.30269 19.83932 2.71364 18.25787 2.16008 curveto
+16.55789 1.56503 14.84247 1.00958 13.08646 0.6079 curveto
+11.35944 0.21283 9.60301 -0.03123 7.84335 -0.2348 curveto
+6.27711 -0.41599 4.70341 -0.5654 3.12764 -0.49779 curveto
+2.07115 -0.45245 1.02112 -0.30965 -0.0091 -0.07115 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 46 64 V 46 6 a(\007)p 170 52 2 63 v 170
+-10 a(\007)248 131 y Fa(T)o(yp)q(e)14 b(M)g(slurs)p 258
+56 2 59 v 258 -2 a Fb(\007)p 346 60 2 55 v 346 6 a(\007)176
+5 y @beginspecial -1 @llx -7 @lly 64 @urx 3 @ury 650
+@rwi @setspecial
+%%BeginDocument: 22m.2
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -7 64 3
+%%Creator: MetaPost
+%%CreationDate: 2003.01.25:2114
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath 2.01393 0.4552 moveto
+1.34358 0.29553 0.67677 0.12032 0.01404 -0.07034 curveto
+0.01404 -0.07034 lineto
+-0.01404 0.07034 lineto
+-0.01404 0.07034 lineto
+0.65155 0.26135 1.32089 0.4382 1.99355 0.6008 curveto
+1.99355 0.6008 lineto
+2.01393 0.4552 lineto
+ closepath fill
+newpath 4.90675 1.04391 moveto
+4.22742 0.9289 3.55083 0.79817 2.87755 0.65186 curveto
+2.87752 0.65186 lineto
+2.85999 0.80194 lineto
+2.85999 0.80194 lineto
+3.53539 0.9523 4.2139 1.08836 4.89507 1.21005 curveto
+4.89508 1.21005 lineto
+4.90675 1.04391 lineto
+ closepath fill
+newpath 7.94986 1.45207 moveto
+7.58882 1.41473 lineto
+6.9849 1.34982 6.38257 1.27261 5.7822 1.1832 curveto
+5.7822 1.1832 lineto
+5.77281 1.35866 lineto
+5.77281 1.35866 lineto
+6.37471 1.45496 6.97853 1.54007 7.58394 1.61392 curveto
+7.9456 1.6567 lineto
+7.9456 1.6567 lineto
+7.94986 1.45212 lineto
+ closepath fill
+newpath 12.28683 1.6967 moveto
+11.27309 1.67807 10.26016 1.6359 9.24884 1.56308 curveto
+9.24887 1.56308 lineto
+9.2471 1.78929 lineto
+9.2471 1.78929 lineto
+10.26053 1.8801 11.27596 1.9431 12.2926 1.98515 curveto
+12.29254 1.98514 lineto
+12.28683 1.6967 lineto
+ closepath fill
+newpath 16.63405 1.65302 moveto
+15.61948 1.68721 14.6046 1.70798 13.59021 1.70822 curveto
+13.59032 1.70822 lineto
+13.59996 2.02818 lineto
+13.59996 2.02818 lineto
+14.61748 2.05353 15.63586 2.06087 16.65431 2.05704 curveto
+16.65428 2.05702 lineto
+16.63388 1.65302 lineto
+ closepath fill
+newpath 21.20567 1.42947 moveto
+20.45467 1.47523 19.7034 1.51712 18.95187 1.5546 curveto
+17.93768 1.60222 lineto
+17.93652 1.60228 17.93883 1.6013 17.93791 1.60204 curveto
+17.93768 1.60222 lineto
+17.96338 2.04648 lineto
+17.96347 2.04666 lineto
+17.96338 2.04648 lineto
+18.98196 2.03186 lineto
+19.73598 2.01938 20.48996 2.00365 21.24382 1.98398 curveto
+21.24382 1.98398 lineto
+21.20567 1.42947 lineto
+ closepath fill
+newpath 26.03194 1.08662 moveto
+24.9067 1.17674 23.78099 1.26059 22.65475 1.33644 curveto
+22.6548 1.33644 lineto
+22.6986 1.94092 lineto
+22.69864 1.94101 lineto
+22.6986 1.94092 lineto
+23.82928 1.90337 24.95958 1.85594 26.08916 1.7963 curveto
+26.08913 1.79631 lineto
+26.03194 1.08662 lineto
+ closepath fill
+newpath 30.85132 0.66718 moveto
+29.72722 0.77164 28.60275 0.87233 27.47786 0.9675 curveto
+27.47668 0.9676 27.47838 0.96619 27.47812 0.9673 curveto
+27.47807 0.96748 lineto
+27.5407 1.71272 lineto
+27.5407 1.71272 lineto
+28.6696 1.64218 29.79768 1.55838 30.92462 1.45903 curveto
+30.92462 1.45903 lineto
+30.85132 0.66718 lineto
+ closepath fill
+newpath 35.6902 0.19261 moveto
+34.56076 0.31029 33.4307 0.42232 32.30028 0.53052 curveto
+32.30028 0.53052 lineto
+32.37674 1.32217 lineto
+32.37674 1.32217 lineto
+33.50911 1.20856 34.63966 1.07924 35.76855 0.93657 curveto
+35.76836 0.93642 lineto
+35.6902 0.19261 lineto
+ closepath fill
+newpath 40.52574 -0.3514 moveto
+39.3986 -0.21394 38.27048 -0.0847 37.1416 0.03813 curveto
+37.14163 0.03812 lineto
+37.21844 0.74606 lineto
+37.21844 0.74606 lineto
+38.34587 0.5924 39.47168 0.4264 40.59601 0.25044 curveto
+40.59596 0.25044 lineto
+40.52574 -0.3514 lineto
+ closepath fill
+newpath 45.25291 -0.98209 moveto
+44.22562 -0.83499 lineto
+43.47601 -0.72995 42.72583 -0.62943 41.97514 -0.5329 curveto
+41.97514 -0.53285 lineto
+42.04153 0.01878 lineto
+42.04153 0.01878 lineto
+42.79012 -0.10391 43.53807 -0.23059 44.28543 -0.36053 curveto
+45.3107 -0.54117 lineto
+45.3107 -0.54117 lineto
+45.25291 -0.98209 lineto
+ closepath fill
+newpath 49.63797 -1.709 moveto
+48.61926 -1.51598 47.5965 -1.34222 46.5715 -1.18167 curveto
+46.57152 -1.18167 lineto
+46.6268 -0.78154 lineto
+46.6268 -0.78154 lineto
+47.64986 -0.97278 48.6708 -1.17479 49.6878 -1.3935 curveto
+49.68785 -1.3935 lineto
+49.63797 -1.709 lineto
+ closepath fill
+newpath 53.97318 -2.67192 moveto
+52.96988 -2.41142 51.95987 -2.17888 50.94499 -1.96822 curveto
+50.94504 -1.96822 lineto
+50.99283 -1.68428 lineto
+50.99283 -1.68428 lineto
+52.00613 -1.91838 53.01472 -2.17169 54.01674 -2.45015 curveto
+54.01671 -2.45012 lineto
+53.97318 -2.67192 lineto
+ closepath fill
+newpath 57.4431 -3.7023 moveto
+56.83772 -3.49864 56.22833 -3.30653 55.61525 -3.1261 curveto
+55.25998 -3.02295 lineto
+55.25998 -3.02295 lineto
+55.30199 -2.82268 lineto
+55.30199 -2.82268 lineto
+55.65688 -2.93124 lineto
+56.2696 -3.12091 56.87883 -3.32117 57.48428 -3.53192 curveto
+57.48428 -3.53192 lineto
+57.4431 -3.7023 lineto
+ closepath fill
+newpath 60.35606 -4.784 moveto
+59.68456 -4.51064 59.00719 -4.25189 58.32442 -4.00795 curveto
+58.3244 -4.00793 lineto
+58.3659 -3.8472 lineto
+58.3659 -3.8472 lineto
+59.04906 -4.09805 59.72717 -4.36237 60.39987 -4.63997 curveto
+60.39992 -4.63998 lineto
+60.35606 -4.784 lineto
+ closepath fill
+newpath 63.19646 -6.04442 moveto
+62.5427 -5.72968 61.88237 -5.42928 61.21597 -5.14342 curveto
+61.21597 -5.14342 lineto
+61.26161 -5.00415 lineto
+61.26161 -5.00415 lineto
+61.92961 -5.29315 62.59201 -5.59538 63.24843 -5.9107 curveto
+63.24843 -5.9107 lineto
+63.19646 -6.04442 lineto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 170 52 a(\304)303 58 y(\304)p 434 64 2 51
+v 434 15 a(\007)p 522 49 2 68 v 586 23 2 59 v 567 23
+a(\007)589 30 y @beginspecial -1 @llx -5 @lly 27 @urx
+1 @ury 280 @rwi @setspecial
+%%BeginDocument: 22m.3
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -5 27 1
+%%Creator: MetaPost
+%%CreationDate: 2003.01.25:2114
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.01437 0.07028 moveto
+1.00781 0.38809 2.05702 0.61136 3.12004 0.73726 curveto
+4.6808 0.92212 6.25566 0.89578 7.82567 0.83528 curveto
+9.57585 0.76784 11.32584 0.65799 13.05754 0.3939 curveto
+14.8091 0.1268 16.53146 -0.29648 18.24092 -0.76143 curveto
+19.82143 -1.1913 21.39447 -1.65785 22.90355 -2.29558 curveto
+23.9864 -2.75319 25.03087 -3.29678 26.02692 -3.92117 curveto
+25.96164 -4.04892 lineto
+24.97688 -3.42754 23.93355 -2.90424 22.84663 -2.48653 curveto
+21.33086 -1.904 19.7461 -1.53229 18.15092 -1.2311 curveto
+16.42096 -0.90445 14.67699 -0.66 12.93677 -0.3939 curveto
+11.21648 -0.13084 9.49907 0.15352 7.77104 0.3602 curveto
+6.22623 0.54498 4.66946 0.66756 3.11835 0.53801 curveto
+2.06447 0.45 1.02351 0.246 0.01436 -0.07027 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 710 40 V 691 40 a(\007)p 835 31 V 816 31
+a(\010)p 991 49 2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22n.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22n.eps
index 97b4e2b0ce6..f34aaa0a866 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22n.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/22n.eps
@@ -1,490 +1,490 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 22n.dvi
-%%CreationDate: Tue Feb 18 18:48:26 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 735 312 782
-%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular TeXXSLD16D-Regular
-%%+ TeXXSLD16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22n
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.18:1848
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXXSLD16-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
-%%CreationDate: 01-07-22 at 22.48
-%%VMusage: 1024 40444
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLD16-Regular) readonly def
- /FamilyName (TeXXSLD16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -199.203 def
- /UnderlineThickness 99.6016 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 199 def
- /descent 801 def
-end readonly def
-/FontName /TeXXSLD16-Regular def
-/Encoding 256 array
-dup 21 /endash put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -1058 2126 349}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
-a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
-f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
-9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
-bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
-0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
-22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
-072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
-999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
-dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
-8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
-20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
-489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
-5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
-5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
-b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8e05
-51c344ba6c106fb38b7b7cd24bee81ae6c7f6c1e145029e685df9ee967889d8d
-6e20373789de3f90a08d8657891dfb978f9915d6ee15665642354806a3c544b7
-bcea42fd7f3a9dbb258fd89872956180b8f50a528cfbf5b7c9620604b95a00d7
-68d19f01ae9e876e128e6ce548b57c4db84a3c805edc4b729fafbd477d881683
-22e263f422b6273a9fadc804c7d3a6080459f05006e25ba750372c06816a2fd7
-674f18a5405ccb8c8423982a6ca167e91a127fb69ac03a06c3a88c5cf353f14e
-7e44b27eea525bbfc958427fef8de11fba4de8e082d6443514a18b33758be234
-a6c660a8e23c4b6721108b001b2d6b0f9e4b5f8a633d233ed55b430998b7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLD16D-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16D-Regular 001.000
-%%CreationDate: 01-07-22 at 22.49
-%%VMusage: 1024 101006
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16D-Regular known{/TeXXSLD16D-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLD16D-Regular) readonly def
- /FamilyName (TeXXSLD16D) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -198.807 def
- /UnderlineThickness 99.4036 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 199 def
- /descent 801 def
-end readonly def
-/FontName /TeXXSLD16D-Regular def
-/Encoding 256 array
-dup 46 /period put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -1056 2126 348}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471d133239612c567cffe2
-e68a96c13aa759e9bea92f146d1bd7deb6237c6663718a48a3b4b35f5770d1a6
-aa0844dcb80543105beab26e17af71b8104110b01f022757a1bba0926fce0114
-0f8e2e9f80e3626eaf47528d2d88b8eb5f551713c02ff925ea2d2c48610cb2b5
-e04808a418c59a1614a59ee0ee01c762ffd6a0d3bfe820e90b8ad0b65c51e472
-5b182e418902268c868dd86a3bf8b64521da766764c9d7f02c78144154c04a3f
-03ab24acb924f5c69062788cb38e86655649ce7baf863ae2dc29516eb994b6d5
-c26f724bebd4bbc7d156b6c6845ec149caddb13b13fbf75201cdb14c1ad6a23d
-c16ef5d62c1cef8d005e5b0e6c75e15eff4529732af047fbcc774679977519c1
-3d9aa503c7a88a986f943dcef878d9ef5df685e28cb4fd64ab20bec26bb359ec
-c130c516c6fd3be4a4bb1e8112f507ef2cf692bb12c59133fea43efe754d9e45
-bf1efe137a26b83ed766137fda599676bf3970eaf03d02093020d5821b123db0
-2f9c69fcca065537bc8ab02e6b2d764d2f51b2393a5ca7b5a00cdd23b5ca2cac
-35cee431509898c63cab854e8030cc0116f6d473bf570b3db7ee8b4e40e94940
-38c8c4146d9e400a2cf76a723747ebc83842109fe7b1598fc7a8f57ae4b0bbde
-52c143be0ac520a180165dd9547464fea7745fc0491fcc36590e24cf6c51e309
-23912bf3f6cb7d359e20543fac8ea65eafe7869c5e2b08975a7f17857a7bcfb9
-c3a5a78d59fd137aaa950898bc3c81e80a6973eb6ce63471bac246ab7837cd7c
-68f292dc979b8cff326da840d6ca86a4534799072e1d3d3fc6e006b77e440311
-b40ed4152963fd7e277b094a32e9ea08bc4520c995d232b1adc50a6713cda1d8
-5ebac05bac1002f7e439c6c0122f7f6a3b1ba8bb1352bcc8068be0915c2c668d
-7bc8ff590e59a42429183e162e1b8accee20152c368e33ee8ef46f25f5f5bf00
-dcaab1c0c3d312647da788ff4e32558ca69622b880c8bd914db02ac733949350
-d07d2fa167d62aa68607216e27cb71d55f12a8a4603ea37d8c5003afb643f744
-45b87f0b07d7060baa062f5792c0805790fd187e4a4a5c9dc0800f2a3edb0174
-489337ee63e558e538ad90a3cb2b647b81de606a8a79597c6532f27d1e4c5153
-973e21d92f10fdc14a9e03ee2f143dc5cf87afb818e1d2a6ce9f7f635ba1d657
-ef71a6000f65f82e8953a6cbd4b45995ef8b28d7d14196cfdfdfcf13d74e1362
-41dae645c1c6b93c7ab3ebd6888edb04330f3cba2658cdc5b9f46e242c71821f
-17a4871d02e64c107d44bc82366b7c6c75d73880cb735085ae5ffd689877bc6d
-91c3db5cf04a9f323f0ccd81a9e35de60cd016612389f5c7adf24de0c454b6a0
-b6e50066a2d5d1eff064f9d024647380a432d5d8fc6447e82644c79b067c10b3
-18b0ebdf0d0b5015851eee2a1bbf544ac088a0eb0715dfbe1ffd5ab84d48f6f4
-52109d62b3a0dba6dd21b4acf560a3fa8e65c719d5c7ed23a3308b403431e904
-dbdcb7e996736ed478e4589217dc8cff3caaa90c01f58fe674dd8280954e13cd
-948db7cb5a14f486e15ce30b57e8de5ebd70abb189d5ab67310c9fff2bb0d733
-014148a3084c2e4941ad13600b5e23b6c4462bd69864844955619a25f540
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.16
-%%VMusage: 1024 39962
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 998 2 0
-%%EndComments
-FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLU16-Regular) readonly def
- /FamilyName (TeXXSLU16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -200 def
- /UnderlineThickness 100 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 998 def
- /descent 2 def
-end readonly def
-/FontName /TeXXSLU16-Regular def
-/Encoding 256 array
-dup 165 /ecaron put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -345 2126 1062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
-74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
-e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
-6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
-881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
-90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
-181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
-e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
-65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
-ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
-bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
-efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
-2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
-2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
-bacda202d38d8ac2fe8dcc0505bb2bdc12857735e15aa93fb3b56e8f27894e84
-7361f418452d43edd0a151152979a54605ec64afb6a3c3eb3cc594f760e3be5b
-ce00880c5e68cd350b863c39106399c281c8746b820d6014c10997777e5740f7
-810b716f23c60fc571e43447ab248f42d7c80d91ceda0e3f8f4ff390dc28c8c8
-7d3d676ea3695f07503158d946a926837a0cb9f34f7f5a40602612f535d9c3d0
-15213545d7eb212c5249098e04fd9b7b4cec678faf9e49c0d5a6877bfefc0531
-b073c6d10200aef42a85e2719511f93bfa5fa32e5f8703275ab6fad0111576d6
-4d6cbe2269673689b24795263a49660084ff2a2a95a50ba12a356fa328acdb93
-e36334ae0da4b58a2708e3
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
-af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
-309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
-e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
-17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
-864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
-6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
-e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
-71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
-64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
-467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
-0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
-1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
-72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
-fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
-e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
-435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
-4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
-46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
-dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
-d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
-890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
-c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
-d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
-6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
-63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/22n.dvi) @start /Fa 234[0 21[{}1
-66.4176 /TeXXSLD16-Regular rf /Fb 209[0 46[{}1 66.4176
-/TeXXSLD16D-Regular rf
-%DVIPSBitmapFont: Fc cmr10 10 10
-/Fc 10 118 df<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E0
-1340A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E0180
-381C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<12
-18123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>105 D<12FC121CB3A9EAFF8009
-1D7F9C0C>108 D<39FC7E07E0391C838838391D019018001EEBE01C001C13C0AD3AFF8F
-F8FF8021127F9124>I<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01
-C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78
-A2EA1C301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF8
-00EA7F80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>
-I<1204A4120CA2121C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<
-38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>I E
-%EndDVIPSBitmapFont
-/Fd 90[0 165[{}1 66.4176 /TeXXSLU16-Regular rf /Fe 59[133
-124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fe(G)p -59 31 2 59 v 51 w(\007)-14
-45 y Fd(\245)p 46 64 V 46 6 a Fe(\007)p 170 52 2 63 v
-170 -10 a(\007)248 131 y Fc(bitmap)12 b(slurs)p 258 56
-2 59 v 258 -2 a Fe(\007)p 346 60 2 55 v 346 6 a(\007)312
--24 y Fb(.)170 52 y Fe(\304)303 58 y(\304)p 434 64 2
-51 v 434 15 a(\007)p 522 49 2 68 v 586 23 2 59 v 567
-23 a(\007)647 9 y Fa(\025)p 710 40 V 691 40 a Fe(\007)p
-835 31 V 816 31 a(\010)p 991 49 2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 22n.dvi
+%%CreationDate: Tue Feb 18 18:48:26 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 735 312 782
+%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular TeXXSLD16D-Regular
+%%+ TeXXSLD16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 22n
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.18:1848
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXXSLD16-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
+%%CreationDate: 01-07-22 at 22.48
+%%VMusage: 1024 40444
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLD16-Regular) readonly def
+ /FamilyName (TeXXSLD16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -199.203 def
+ /UnderlineThickness 99.6016 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 199 def
+ /descent 801 def
+end readonly def
+/FontName /TeXXSLD16-Regular def
+/Encoding 256 array
+dup 21 /endash put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -1058 2126 349}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
+a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
+f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
+9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
+bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
+0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
+22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
+072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
+999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
+dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
+8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
+20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
+489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
+5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
+5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
+b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8e05
+51c344ba6c106fb38b7b7cd24bee81ae6c7f6c1e145029e685df9ee967889d8d
+6e20373789de3f90a08d8657891dfb978f9915d6ee15665642354806a3c544b7
+bcea42fd7f3a9dbb258fd89872956180b8f50a528cfbf5b7c9620604b95a00d7
+68d19f01ae9e876e128e6ce548b57c4db84a3c805edc4b729fafbd477d881683
+22e263f422b6273a9fadc804c7d3a6080459f05006e25ba750372c06816a2fd7
+674f18a5405ccb8c8423982a6ca167e91a127fb69ac03a06c3a88c5cf353f14e
+7e44b27eea525bbfc958427fef8de11fba4de8e082d6443514a18b33758be234
+a6c660a8e23c4b6721108b001b2d6b0f9e4b5f8a633d233ed55b430998b7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLD16D-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16D-Regular 001.000
+%%CreationDate: 01-07-22 at 22.49
+%%VMusage: 1024 101006
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16D-Regular known{/TeXXSLD16D-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLD16D-Regular) readonly def
+ /FamilyName (TeXXSLD16D) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -198.807 def
+ /UnderlineThickness 99.4036 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 199 def
+ /descent 801 def
+end readonly def
+/FontName /TeXXSLD16D-Regular def
+/Encoding 256 array
+dup 46 /period put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -1056 2126 348}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471d133239612c567cffe2
+e68a96c13aa759e9bea92f146d1bd7deb6237c6663718a48a3b4b35f5770d1a6
+aa0844dcb80543105beab26e17af71b8104110b01f022757a1bba0926fce0114
+0f8e2e9f80e3626eaf47528d2d88b8eb5f551713c02ff925ea2d2c48610cb2b5
+e04808a418c59a1614a59ee0ee01c762ffd6a0d3bfe820e90b8ad0b65c51e472
+5b182e418902268c868dd86a3bf8b64521da766764c9d7f02c78144154c04a3f
+03ab24acb924f5c69062788cb38e86655649ce7baf863ae2dc29516eb994b6d5
+c26f724bebd4bbc7d156b6c6845ec149caddb13b13fbf75201cdb14c1ad6a23d
+c16ef5d62c1cef8d005e5b0e6c75e15eff4529732af047fbcc774679977519c1
+3d9aa503c7a88a986f943dcef878d9ef5df685e28cb4fd64ab20bec26bb359ec
+c130c516c6fd3be4a4bb1e8112f507ef2cf692bb12c59133fea43efe754d9e45
+bf1efe137a26b83ed766137fda599676bf3970eaf03d02093020d5821b123db0
+2f9c69fcca065537bc8ab02e6b2d764d2f51b2393a5ca7b5a00cdd23b5ca2cac
+35cee431509898c63cab854e8030cc0116f6d473bf570b3db7ee8b4e40e94940
+38c8c4146d9e400a2cf76a723747ebc83842109fe7b1598fc7a8f57ae4b0bbde
+52c143be0ac520a180165dd9547464fea7745fc0491fcc36590e24cf6c51e309
+23912bf3f6cb7d359e20543fac8ea65eafe7869c5e2b08975a7f17857a7bcfb9
+c3a5a78d59fd137aaa950898bc3c81e80a6973eb6ce63471bac246ab7837cd7c
+68f292dc979b8cff326da840d6ca86a4534799072e1d3d3fc6e006b77e440311
+b40ed4152963fd7e277b094a32e9ea08bc4520c995d232b1adc50a6713cda1d8
+5ebac05bac1002f7e439c6c0122f7f6a3b1ba8bb1352bcc8068be0915c2c668d
+7bc8ff590e59a42429183e162e1b8accee20152c368e33ee8ef46f25f5f5bf00
+dcaab1c0c3d312647da788ff4e32558ca69622b880c8bd914db02ac733949350
+d07d2fa167d62aa68607216e27cb71d55f12a8a4603ea37d8c5003afb643f744
+45b87f0b07d7060baa062f5792c0805790fd187e4a4a5c9dc0800f2a3edb0174
+489337ee63e558e538ad90a3cb2b647b81de606a8a79597c6532f27d1e4c5153
+973e21d92f10fdc14a9e03ee2f143dc5cf87afb818e1d2a6ce9f7f635ba1d657
+ef71a6000f65f82e8953a6cbd4b45995ef8b28d7d14196cfdfdfcf13d74e1362
+41dae645c1c6b93c7ab3ebd6888edb04330f3cba2658cdc5b9f46e242c71821f
+17a4871d02e64c107d44bc82366b7c6c75d73880cb735085ae5ffd689877bc6d
+91c3db5cf04a9f323f0ccd81a9e35de60cd016612389f5c7adf24de0c454b6a0
+b6e50066a2d5d1eff064f9d024647380a432d5d8fc6447e82644c79b067c10b3
+18b0ebdf0d0b5015851eee2a1bbf544ac088a0eb0715dfbe1ffd5ab84d48f6f4
+52109d62b3a0dba6dd21b4acf560a3fa8e65c719d5c7ed23a3308b403431e904
+dbdcb7e996736ed478e4589217dc8cff3caaa90c01f58fe674dd8280954e13cd
+948db7cb5a14f486e15ce30b57e8de5ebd70abb189d5ab67310c9fff2bb0d733
+014148a3084c2e4941ad13600b5e23b6c4462bd69864844955619a25f540
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.16
+%%VMusage: 1024 39962
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 998 2 0
+%%EndComments
+FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLU16-Regular) readonly def
+ /FamilyName (TeXXSLU16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -200 def
+ /UnderlineThickness 100 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 998 def
+ /descent 2 def
+end readonly def
+/FontName /TeXXSLU16-Regular def
+/Encoding 256 array
+dup 165 /ecaron put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -345 2126 1062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
+74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
+e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
+6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
+881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
+90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
+181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
+e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
+65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
+ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
+bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
+efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
+2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
+2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
+bacda202d38d8ac2fe8dcc0505bb2bdc12857735e15aa93fb3b56e8f27894e84
+7361f418452d43edd0a151152979a54605ec64afb6a3c3eb3cc594f760e3be5b
+ce00880c5e68cd350b863c39106399c281c8746b820d6014c10997777e5740f7
+810b716f23c60fc571e43447ab248f42d7c80d91ceda0e3f8f4ff390dc28c8c8
+7d3d676ea3695f07503158d946a926837a0cb9f34f7f5a40602612f535d9c3d0
+15213545d7eb212c5249098e04fd9b7b4cec678faf9e49c0d5a6877bfefc0531
+b073c6d10200aef42a85e2719511f93bfa5fa32e5f8703275ab6fad0111576d6
+4d6cbe2269673689b24795263a49660084ff2a2a95a50ba12a356fa328acdb93
+e36334ae0da4b58a2708e3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a51d56e3bee4f7f22bca7e8f81d22fe4a867ef4b
+af8258fdcf3522ee75116ca98589e3ab90be3eed025a21b09f049fcc73ed4b07
+309a74ffc0e3f725e5dc4cefe3b92c751cbbc758cc51a61397776365299f3279
+e31b9d765385b81ee909c1c6481aeff8d3b068b330780aa15c91269ce1f06499
+17296156e8e29d6cbd165bf413bf26a9b140057238913c596a1ab61eef8ddb25
+864de7b85bdf4980f46a7cbf882618bbdcf807391c51ad133b0a24f1c63d776c
+6b719f23e8541aed00a2c7c3efe88e0ed20b953a41ceba4d753e9089851bd940
+e4707526f8d5bb607ee10bc0a5ac6f1725894a0f74a353d6551d131092dbdfbb
+71d713e88ded82c3315323bc4f5b60e1dd37d6b6ab0c01cfe2ff14daa3f52f03
+64459a7515296c0720044cb4e9b3a17afa897f10bee1a0dc5cfaeccaf8e522c5
+467604ab3744efdbdda0060057ec222af19f907217a26b45c1f6d6352ca35074
+0dabdd8bc7a3d955d8487382994a3eca09be72e7e26584f14e140b36cde343b6
+1ce70acf61679ce5fb72c4c57103ddd04916c32f40d842a640e97be77676847a
+72fb639b93b521051d0219321cb2a3e7f1b87bde035f4b7bae5d704274aad36c
+fa110cab6e9f1dff9c4ad679c1c2c246e98551c49e7ed4c3be302541e47ecac1
+e63b689a8e40ce2ff6a298a9a3018b4e8bcdaf79506a711ab2957090a5d0f34c
+435c9f1b99f0fbb90ad8b503b64ad185263520ba24a3abbe99eb08263f026977
+4a3c0213d5d06fa3f7c6a7435952594803bfdc79222a4cb987d29030dfa461fc
+46be379330d1eff3bd9c5f0daf3e27da648fe1320d231aafa3219720019c855a
+dca4623790a11028b6387293bf55aa1f9c6b0c4c4e7c7156931c4d006cdd1a89
+d62f9cb450601d9f3392b4535c8f7cea3759f8bce124380ae722eda587d63580
+890167493bd3fe7e6008957fe44a76abdc465ed5e5b9eba9353c3efa9d83ddcf
+c7a808390bf02a6071f3316487cc5335a1b9bf685331c5c5999bdac496135903
+d6d958379afe42ad36ab8269101f33d008f271b5bf74a9860cfda44244ae56f4
+6cae82a04d587bbf7e4ef185ebf7822f755c5ab699d8ddde3510c4a19d2a1632
+63238af01fb6abd7bf855213d930856705e870c1c13058330b69007528
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/22n.dvi) @start /Fa 234[0 21[{}1
+66.4176 /TeXXSLD16-Regular rf /Fb 209[0 46[{}1 66.4176
+/TeXXSLD16D-Regular rf
+%DVIPSBitmapFont: Fc cmr10 10 10
+/Fc 10 118 df<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E0
+1340A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E0180
+381C00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<12
+18123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>105 D<12FC121CB3A9EAFF8009
+1D7F9C0C>108 D<39FC7E07E0391C838838391D019018001EEBE01C001C13C0AD3AFF8F
+F8FF8021127F9124>I<EAFC7CEA1D87381E0180001C13C0EB00E0A21470A614E0A2EB01
+C0001E1380381D0700EA1CFC90C7FCA7B47E141A7F9117>112 D<EAFCE0EA1D38EA1E78
+A2EA1C301300ACEAFFC00D127F9110>114 D<EA1F90EA2070EA4030EAC010A212E0EAF8
+00EA7F80EA3FE0EA0FF0EA00F8EA8038131812C0A2EAE010EAD060EA8FC00D127F9110>
+I<1204A4120CA2121C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<
+38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>I E
+%EndDVIPSBitmapFont
+/Fd 90[0 165[{}1 66.4176 /TeXXSLU16-Regular rf /Fe 59[133
+124[53 62[0 0 7[{}4 66.4176 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fe(G)p -59 31 2 59 v 51 w(\007)-14
+45 y Fd(\245)p 46 64 V 46 6 a Fe(\007)p 170 52 2 63 v
+170 -10 a(\007)248 131 y Fc(bitmap)12 b(slurs)p 258 56
+2 59 v 258 -2 a Fe(\007)p 346 60 2 55 v 346 6 a(\007)312
+-24 y Fb(.)170 52 y Fe(\304)303 58 y(\304)p 434 64 2
+51 v 434 15 a(\007)p 522 49 2 68 v 586 23 2 59 v 567
+23 a(\007)647 9 y Fa(\025)p 710 40 V 691 40 a Fe(\007)p
+835 31 V 816 31 a(\010)p 991 49 2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27.eps
index 106341ab4aa..b263d307567 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27.eps
@@ -1,283 +1,283 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 27.dvi
-%%CreationDate: Fri Feb 21 00:53:09 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 639 496 792
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 27
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.21:0053
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 8 /breve put
-dup 55 /seven put
-dup 71 /G put
-dup 195 /Atilde put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a62c09d54884ebb7993d409b068ef9ffbe988850
-c498d4d2749836cb2907b5d085eb314b06637f3358e4df5f1be65bf96d16470e
-76a8097e3ad5167ee2a8a59b158bfb3f6de08540957dd90f22b5025f903758db
-66873a85eb8127504ffff0be8e23f44d0653cf3f0485b766967680394dd984a7
-ac9ab3bf0698c4d9da254cc7967a0387511e6d18c08f61bbedf865c575b32e49
-5d19a868c22acb3e0ce208acb1735e4bef6486ed785849df8d38194f93e326a2
-d3ff5529c38fee8453579ee23f46166e395ce3f6d0e39c25c897f76398dc5063
-6177d1378a450dd143e1e713e955653ecb1ab05d5534a89c269c1b677157a049
-8e1ac4bfa262e910313b7786ff62c99f041d12aadc1d6977a51d2d2838edf509
-1eda11fd47da6fc3eea57385e645bfc6eec30e690f4efcb1b4c1bc69bea260e3
-8375afc8d52483f7dbe060e56105cd9f8b31b1ff011f0eae0e5a4bca2ab5c594
-1300f3ebaf7bed1e992179da35d8eefb377a2cf9f599d3e2fca8bbb2b51560c5
-2d0e5f59bcaef5be31316e0d9eb06518b864dc352726128649a8ae5e237407c5
-790be142a8fd087d8fbe1c73c5fe580339fb6777f56c03d8b34133f90984a19e
-72eea9187ade9491660ef37cdf4ef54b5357697c06270f5956965bf238c9876f
-08cde8629d3a76cab62740f32d10689ba1361fa015fff24e56fe67807c24a4f6
-9020915d5e2e2d94d665bceb1c1d65e6f9f066399c1c19a513750064bd50b4b6
-0326327d2082f602107b6e16f6daa14344e9210aa35253afbed0f9b7e5310f40
-20cb0159f3535ca593faaa1f350f3e613f012476f4c9a2d5842165578f5daa32
-812163a6d64d034d1033603cc87b08da7f8a41f160fb3b6521f6cb3385c38eba
-df2b2e7e52d26f4ce96f4da9918a7fc570a32cce810300e9653a00615a4dfb4c
-2744207cc7ccc94507083721b2e019913434a8539717b2bc3d363c0226fee6a5
-1ac7b88b5ca29668ed467f70dc47ea27f9c6650ce28c57c3a745e020d236a209
-0530b3402364a48296d205c92bb0198f6d6367f1da7a1fa8d8a0f6fae75af047
-738c8b62d371bfafac0f2242b3c0fa7742643f8f5f8684a300143f7d89f5a790
-6df6ad7d825984de760b3ae63962f95bb5a677ec5dff44d8df064f8cf7c2669c
-b334e0e839e6026693f50382b8665075e2f8fe4fab43d4584033d09c5a400e52
-63cb51230cdda97a3e811c9c2ff5932acde3eb024404d421ae9e4fe8ff64ec27
-339541fe
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/27.dvi) @start
-%DVIPSBitmapFont: Fa cmtt10 10 11
-/Fa 11 121 df<127012F8A312700505788416>46 D<12035AA25A5AB4FCA212E71207AE
-EAFFF8A30D197B9816>49 D<EA07E0EA1FF8487EEA783EEAE00700F01380130312601200
-A2EB0700A2130E5B5B5B5B485A485A000FC7FC381E03801238EA7FFFB5FC7E11197E9816
->I<38FE0FE0A338380380EA3C07001C1300A3EA1E0FEA0E0EA46C5AA4EA031813B8A3EA
-01B013F0A26C5A13197F9816>86 D<EA1FE0487E487EEA783CEA300E1200A2EA03FE121F
-EA3E0E127012E0A3EA783E387FFFE0EA3FE7EA0F8313127E9116>97
-D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E03C0EA1C01EB00E0A6EB01C0EA1E0338
-1F0780EBFF00EA1DFEEA0C7813197F9816>I<EA7FC012FF127F1201B3EA7FFFB512806C
-130011197E9816>108 D<EA03E0EA0FF8487EEA3C1E487EEA700738E00380A5EAF00700
-701300EA780FEA3C1EEA1FFC6C5AEA03E011127E9116>111 D<12035AA4EA7FFFB5FCA2
-0007C7FCA75BEB0380A3EB8700EA03FE6C5A6C5A11177F9616>116
-D<387F1FC038FF9FE0387F1FC0381C0700A2EA0E0EA36C5AA4EA03B8A3EA01F0A26C5A13
-127F9116>118 D<387F1FC0133F131F380F1E006C5AEA03B813F012016C5A12017FEA03
-B8EA073C131CEA0E0E387F1FC038FF3FE0387F1FC013127F9116>120
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmr10 10 8
-/Fb 8 119 df<126012F0A2126004047C830C>46 D<5A1207123F12C71207B3A5EAFFF8
-0D1C7C9B15>49 D<EA07C0EA1830EA201CEA400C130EEAF00F12F81307A21270EA000F13
-0EA2131CA213381370136013C0EA0180EA0300EA0601120C1218EA1002EA3FFE127F12FF
-101C7E9B15>I<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E0
-1340A3EA603C38304E80381F870012127E9115>97 D<12FC121CB3A9EAFF80091D7F9C0C
->108 D<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A600601380EA70030030
-1300EA1806EA0E1CEA03F012127F9115>111 D<1204A4120CA2121C123CEAFFE0EA1C00
-A91310A5120CEA0E20EA03C00C1A7F9910>116 D<38FF07E0383C0380381C0100A2EA0E
-02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A3134013127F9116>118
-D E
-%EndDVIPSBitmapFont
-/Fc 60[66 123[53 15[0 46[0 0 7[{}5 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1943 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fc(G)p -69 49 10 68 v -54 49 2
-68 v -42 15 a(7)p 6 65 30 2 v 30 64 2 59 v 11 64 a(\007)p
-158 65 30 2 v 182 64 2 59 v 152 w(\007)p 314 49 2 68
-v 316 -37 2 50 v 331 -52 a Fb(1.)329 98 y Fa(V1)p 388
-48 2 59 v 369 48 a Fc(\007)p 540 31 V 521 31 a(\007)672
-15 y(7)p 682 49 2 68 v 689 49 10 68 v 316 -85 373 2 v
-699 -37 2 50 v 714 -52 a Fb(2.)712 98 y Fa(Vx2)p 771
-48 2 54 v 752 48 a Fc(\007)771 -6 y(\303)812 -4 y(\303)p
-878 56 2 57 v 859 56 a(\007)p 961 65 30 2 v 985 64 2
-59 v 966 64 a(\007)p 1117 49 2 68 v 699 -85 414 2 v 1192
-31 2 59 v 1173 31 a(\007)p 1319 65 30 2 v 1319 82 V 1343
-89 2 75 v 1324 89 a(\007)p 1475 49 2 68 v 699 -85 772
-2 v 1490 114 a Fa(Vx)p 1525 65 30 2 v 1549 64 2 59 v
-1530 64 a Fc(\010)p 1744 49 2 68 v 1751 49 10 68 v -182
-204 1943 2 v -182 221 V -182 238 V -182 254 V -182 271
-V -182 253 a(G)p -52 271 10 68 v -38 271 2 68 v -26 237
-a(7)p 39 287 30 2 v 63 286 2 59 v 44 286 a(\007)p 236
-287 30 2 v 260 286 2 59 v 197 w(\007)p 438 271 2 68 v
-440 185 2 50 v 455 170 a Fb(1.)470 320 y Fa(V1)p 529
-270 2 59 v 510 270 a Fc(\007)p 726 253 V 707 253 a(\007)904
-237 y(7)p 914 271 2 68 v 920 271 10 68 v 440 137 481
-2 v 960 312 a Fa(Vx)p 1019 253 2 59 v 1000 253 a Fc(\007)p
-1192 287 30 2 v 1192 304 V 1216 311 2 75 v 1197 311 a(\007)p
-1394 271 2 68 v 1461 287 30 2 v 1485 286 2 59 v 1466
-286 a(\010)p 1744 271 2 68 v 1751 271 10 68 v -182 427
-1943 2 v -182 443 V -182 460 V -182 476 V -182 493 V
--182 475 a(G)p -69 493 10 68 v -54 493 2 68 v -42 459
-a(7)p 6 510 30 2 v 30 509 2 59 v 11 509 a(\007)p 158
-510 30 2 v 182 509 2 59 v 152 w(\007)p 314 493 2 68 v
-316 407 2 50 v 331 392 a Fb(1.)13 b(v)o(olta.)329 542
-y Fa(V1.)22 b(volta)p 388 492 2 59 v 369 492 a Fc(\007)p
-540 475 V 521 475 a(\007)672 459 y(7)p 682 493 2 68 v
-689 493 10 68 v 316 359 373 2 v 699 407 2 50 v 714 392
-a Fb(v)o(olta.)712 542 y Fa(Vvolxta)p 771 492 2 54 v
-752 492 a Fc(\007)771 438 y(\303)812 440 y(\303)p 878
-500 2 57 v 859 500 a(\007)p 961 510 30 2 v 985 509 2
-59 v 966 509 a(\007)p 1117 493 2 68 v 699 359 414 2 v
-1111 407 2 50 v 1133 534 a Fa(Vxb)p 1192 475 2 59 v 1173
-475 a Fc(\007)p 1319 510 30 2 v 1319 526 V 1343 533 2
-75 v 1324 533 a(\007)p 1475 493 2 68 v 1525 510 30 2
-v 1549 509 2 59 v 1530 509 a(\010)p 1744 493 2 68 v 1751
-493 10 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 27.dvi
+%%CreationDate: Fri Feb 21 00:53:09 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 639 496 792
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 27
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.21:0053
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 8 /breve put
+dup 55 /seven put
+dup 71 /G put
+dup 195 /Atilde put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a62c09d54884ebb7993d409b068ef9ffbe988850
+c498d4d2749836cb2907b5d085eb314b06637f3358e4df5f1be65bf96d16470e
+76a8097e3ad5167ee2a8a59b158bfb3f6de08540957dd90f22b5025f903758db
+66873a85eb8127504ffff0be8e23f44d0653cf3f0485b766967680394dd984a7
+ac9ab3bf0698c4d9da254cc7967a0387511e6d18c08f61bbedf865c575b32e49
+5d19a868c22acb3e0ce208acb1735e4bef6486ed785849df8d38194f93e326a2
+d3ff5529c38fee8453579ee23f46166e395ce3f6d0e39c25c897f76398dc5063
+6177d1378a450dd143e1e713e955653ecb1ab05d5534a89c269c1b677157a049
+8e1ac4bfa262e910313b7786ff62c99f041d12aadc1d6977a51d2d2838edf509
+1eda11fd47da6fc3eea57385e645bfc6eec30e690f4efcb1b4c1bc69bea260e3
+8375afc8d52483f7dbe060e56105cd9f8b31b1ff011f0eae0e5a4bca2ab5c594
+1300f3ebaf7bed1e992179da35d8eefb377a2cf9f599d3e2fca8bbb2b51560c5
+2d0e5f59bcaef5be31316e0d9eb06518b864dc352726128649a8ae5e237407c5
+790be142a8fd087d8fbe1c73c5fe580339fb6777f56c03d8b34133f90984a19e
+72eea9187ade9491660ef37cdf4ef54b5357697c06270f5956965bf238c9876f
+08cde8629d3a76cab62740f32d10689ba1361fa015fff24e56fe67807c24a4f6
+9020915d5e2e2d94d665bceb1c1d65e6f9f066399c1c19a513750064bd50b4b6
+0326327d2082f602107b6e16f6daa14344e9210aa35253afbed0f9b7e5310f40
+20cb0159f3535ca593faaa1f350f3e613f012476f4c9a2d5842165578f5daa32
+812163a6d64d034d1033603cc87b08da7f8a41f160fb3b6521f6cb3385c38eba
+df2b2e7e52d26f4ce96f4da9918a7fc570a32cce810300e9653a00615a4dfb4c
+2744207cc7ccc94507083721b2e019913434a8539717b2bc3d363c0226fee6a5
+1ac7b88b5ca29668ed467f70dc47ea27f9c6650ce28c57c3a745e020d236a209
+0530b3402364a48296d205c92bb0198f6d6367f1da7a1fa8d8a0f6fae75af047
+738c8b62d371bfafac0f2242b3c0fa7742643f8f5f8684a300143f7d89f5a790
+6df6ad7d825984de760b3ae63962f95bb5a677ec5dff44d8df064f8cf7c2669c
+b334e0e839e6026693f50382b8665075e2f8fe4fab43d4584033d09c5a400e52
+63cb51230cdda97a3e811c9c2ff5932acde3eb024404d421ae9e4fe8ff64ec27
+339541fe
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/27.dvi) @start
+%DVIPSBitmapFont: Fa cmtt10 10 11
+/Fa 11 121 df<127012F8A312700505788416>46 D<12035AA25A5AB4FCA212E71207AE
+EAFFF8A30D197B9816>49 D<EA07E0EA1FF8487EEA783EEAE00700F01380130312601200
+A2EB0700A2130E5B5B5B5B485A485A000FC7FC381E03801238EA7FFFB5FC7E11197E9816
+>I<38FE0FE0A338380380EA3C07001C1300A3EA1E0FEA0E0EA46C5AA4EA031813B8A3EA
+01B013F0A26C5A13197F9816>86 D<EA1FE0487E487EEA783CEA300E1200A2EA03FE121F
+EA3E0E127012E0A3EA783E387FFFE0EA3FE7EA0F8313127E9116>97
+D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E03C0EA1C01EB00E0A6EB01C0EA1E0338
+1F0780EBFF00EA1DFEEA0C7813197F9816>I<EA7FC012FF127F1201B3EA7FFFB512806C
+130011197E9816>108 D<EA03E0EA0FF8487EEA3C1E487EEA700738E00380A5EAF00700
+701300EA780FEA3C1EEA1FFC6C5AEA03E011127E9116>111 D<12035AA4EA7FFFB5FCA2
+0007C7FCA75BEB0380A3EB8700EA03FE6C5A6C5A11177F9616>116
+D<387F1FC038FF9FE0387F1FC0381C0700A2EA0E0EA36C5AA4EA03B8A3EA01F0A26C5A13
+127F9116>118 D<387F1FC0133F131F380F1E006C5AEA03B813F012016C5A12017FEA03
+B8EA073C131CEA0E0E387F1FC038FF3FE0387F1FC013127F9116>120
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmr10 10 8
+/Fb 8 119 df<126012F0A2126004047C830C>46 D<5A1207123F12C71207B3A5EAFFF8
+0D1C7C9B15>49 D<EA07C0EA1830EA201CEA400C130EEAF00F12F81307A21270EA000F13
+0EA2131CA213381370136013C0EA0180EA0300EA0601120C1218EA1002EA3FFE127F12FF
+101C7E9B15>I<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E0
+1340A3EA603C38304E80381F870012127E9115>97 D<12FC121CB3A9EAFF80091D7F9C0C
+>108 D<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A600601380EA70030030
+1300EA1806EA0E1CEA03F012127F9115>111 D<1204A4120CA2121C123CEAFFE0EA1C00
+A91310A5120CEA0E20EA03C00C1A7F9910>116 D<38FF07E0383C0380381C0100A2EA0E
+02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A3134013127F9116>118
+D E
+%EndDVIPSBitmapFont
+/Fc 60[66 123[53 15[0 46[0 0 7[{}5 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1943 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fc(G)p -69 49 10 68 v -54 49 2
+68 v -42 15 a(7)p 6 65 30 2 v 30 64 2 59 v 11 64 a(\007)p
+158 65 30 2 v 182 64 2 59 v 152 w(\007)p 314 49 2 68
+v 316 -37 2 50 v 331 -52 a Fb(1.)329 98 y Fa(V1)p 388
+48 2 59 v 369 48 a Fc(\007)p 540 31 V 521 31 a(\007)672
+15 y(7)p 682 49 2 68 v 689 49 10 68 v 316 -85 373 2 v
+699 -37 2 50 v 714 -52 a Fb(2.)712 98 y Fa(Vx2)p 771
+48 2 54 v 752 48 a Fc(\007)771 -6 y(\303)812 -4 y(\303)p
+878 56 2 57 v 859 56 a(\007)p 961 65 30 2 v 985 64 2
+59 v 966 64 a(\007)p 1117 49 2 68 v 699 -85 414 2 v 1192
+31 2 59 v 1173 31 a(\007)p 1319 65 30 2 v 1319 82 V 1343
+89 2 75 v 1324 89 a(\007)p 1475 49 2 68 v 699 -85 772
+2 v 1490 114 a Fa(Vx)p 1525 65 30 2 v 1549 64 2 59 v
+1530 64 a Fc(\010)p 1744 49 2 68 v 1751 49 10 68 v -182
+204 1943 2 v -182 221 V -182 238 V -182 254 V -182 271
+V -182 253 a(G)p -52 271 10 68 v -38 271 2 68 v -26 237
+a(7)p 39 287 30 2 v 63 286 2 59 v 44 286 a(\007)p 236
+287 30 2 v 260 286 2 59 v 197 w(\007)p 438 271 2 68 v
+440 185 2 50 v 455 170 a Fb(1.)470 320 y Fa(V1)p 529
+270 2 59 v 510 270 a Fc(\007)p 726 253 V 707 253 a(\007)904
+237 y(7)p 914 271 2 68 v 920 271 10 68 v 440 137 481
+2 v 960 312 a Fa(Vx)p 1019 253 2 59 v 1000 253 a Fc(\007)p
+1192 287 30 2 v 1192 304 V 1216 311 2 75 v 1197 311 a(\007)p
+1394 271 2 68 v 1461 287 30 2 v 1485 286 2 59 v 1466
+286 a(\010)p 1744 271 2 68 v 1751 271 10 68 v -182 427
+1943 2 v -182 443 V -182 460 V -182 476 V -182 493 V
+-182 475 a(G)p -69 493 10 68 v -54 493 2 68 v -42 459
+a(7)p 6 510 30 2 v 30 509 2 59 v 11 509 a(\007)p 158
+510 30 2 v 182 509 2 59 v 152 w(\007)p 314 493 2 68 v
+316 407 2 50 v 331 392 a Fb(1.)13 b(v)o(olta.)329 542
+y Fa(V1.)22 b(volta)p 388 492 2 59 v 369 492 a Fc(\007)p
+540 475 V 521 475 a(\007)672 459 y(7)p 682 493 2 68 v
+689 493 10 68 v 316 359 373 2 v 699 407 2 50 v 714 392
+a Fb(v)o(olta.)712 542 y Fa(Vvolxta)p 771 492 2 54 v
+752 492 a Fc(\007)771 438 y(\303)812 440 y(\303)p 878
+500 2 57 v 859 500 a(\007)p 961 510 30 2 v 985 509 2
+59 v 966 509 a(\007)p 1117 493 2 68 v 699 359 414 2 v
+1111 407 2 50 v 1133 534 a Fa(Vxb)p 1192 475 2 59 v 1173
+475 a Fc(\007)p 1319 510 30 2 v 1319 526 V 1343 533 2
+75 v 1324 533 a(\007)p 1475 493 2 68 v 1525 510 30 2
+v 1549 509 2 59 v 1530 509 a(\010)p 1744 493 2 68 v 1751
+493 10 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27a.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27a.eps
index 4dc0a823a54..742b7aec8fb 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27a.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/27a.eps
@@ -1,250 +1,250 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 27a.dvi
-%%CreationDate: Thu Feb 20 14:21:27 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 607 312 782
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 27a
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.20:1421
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 55 /seven put
-dup 71 /G put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a44f0df2233f427413222bc8f356e070b18135f3
-6e7208929f9d424e0baa2290b2082f99ed1bd067b391b6c31e94f3a21da50b34
-292a2bd6934b22edc806325ec8f87a10b54edbc03b574f97d781276e2f33745f
-857886daa118db495027386100d44acccfe4f3031e37d143cbbd9da14cb2b88d
-1e22ddd40770b7ae3296e8fb0376062109e58f43dfda8a06c45051e6c2560d52
-294082afbd5b8baf3370ffe7d70e1d3dd339eecf26eb8a0f72473f24f37cde92
-5026e5c8b39987d71053a0301f94cdfe52eded5a436f20b629be8e20ba46cb4b
-17932275cc507439d6c9877ac33535b06fb6427392613338b3c0e123b07788ac
-28e519bcaee48c4d0dbbd693a9195afd5075315fdf8d0883609aa2d2d4cc346b
-61eb4fbb35a68e91bf9d474d642527b12e61b7c54fcf668d96a1dcb53a525f24
-7ac1f7839d01ed3d209600a1bc4b2b335433d105d1149f5b528ea4719bfae122
-771c946c62b61231dc2bea180facf7a152042cf78c9106e78e6702223e67ad43
-3f7d7e1d586820929c4d55fffb205a0464e30b1c85a12148f8f772cac9f838c8
-08177ffdf636ea4c9c1dc8686a50a08d33fea13cd40dc3e3e07f04a5b835bba7
-bd7e3796921ac11469c94fc159079609060ed7f4db0681125acccdef84ca1d63
-9af10315d9742539cdf9280c72385aa8a6e61a906029dd289daf1286b5001022
-781ae99d01cedf8d9d98c222f28eb6ad0c63f65c5a33e3a11065830685d700be
-0b5ecc042584d97d28af3d098a2586db5947d332d619fc312fc48cf8cd054e1c
-d923a80b7cbeecedc6f7bb4d301ab01f2fdc636842efd124cfb49a4bf49ce698
-571a62b7b02d9724541d9b713e05657a914f39fa4e97044ae046f06f0f123da1
-68014f7bcbb80612ca088220d7cc2bcf187334b621c0c891f49c3be7ab254c30
-64618d92b648075e3b72b14e569483826c63dcead5e506e00c27d7abbdab7ff3
-5cca06ee5ad611a0ae56eafb48071a5e2195992e830d82f610819baa91311d63
-8cae11c44a1f484269c7d6f2c7f2bf16eeed
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/27a.dvi) @start
-%DVIPSBitmapFont: Fa cmtt10 10 7
-/Fa 7 123 df<EA7FF8EAFFFE6C7EEA1C0FEB0780EB03C01301A214E01300A8EB01C0A2
-1303EB0780130F387FFF00485AEA7FF81319809816>68 D<EA7FF0EAFFFC6C7EEA1C0FEB
-07801303A41307EB0F00EA1FFE5B7FEA1C0E7FA414101438A2387F03F0EAFF83387F01E0
-1519809816>82 D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E03C0EA1C01EB00E0A6
-EB01C0EA1E03381F0780EBFF00EA1DFEEA0C7813197F9816>98 D<133FA31307A4EA03C7
-EA0FF748B4FCEA3C1F487EEA700712E0A6EA700F12786C5A381FFFE0EA0FF7EA07C71319
-7F9816>100 D<EA7FC012FF127F1201B3EA7FFFB512806C130011197E9816>108
-D<387F0FC038FF3FE0EA7F7F3807F040EBC0005BA290C7FCA8EA7FFC12FF127F13127F91
-16>114 D<383FFFC05AA238700780EB0F00131EC65A5B485A485AEA078048C7FC381E01
-C0123C1278B5FCA312127F9116>122 D E
-%EndDVIPSBitmapFont
-/Fb 184[53 15[0 47[0 7[{}3 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fb(G)p -74 65 30 2 v -50 64 2 59
-v -69 64 a(\007)201 114 y Fa(Rl)p 76 65 30 2 v 100 64
-2 59 v 81 64 a Fb(\007)p 232 49 10 68 v 247 49 2 68 v
-258 15 a(7)p 307 65 30 2 v 331 64 2 59 v 312 64 a(\007)582
-114 y Fa(Rr)p 457 65 30 2 v 481 64 2 59 v 462 64 a Fb(\007)612
-15 y(7)p 622 49 2 68 v 629 49 10 68 v 687 65 30 2 v 711
-64 2 59 v 692 64 a(\007)942 114 y Fa(Rz)p 837 65 30 2
-v 861 64 2 59 v 842 64 a Fb(\007)p -182 169 1175 2 v
--182 186 V -182 202 V -182 219 V -182 236 V -182 218
-a(G)p -49 252 30 2 v -25 251 2 59 v -44 251 a(\007)357
-301 y Fa(Rlr)p 173 252 30 2 v 197 251 2 59 v 178 251
-a Fb(\007)400 202 y(7)p 410 236 10 68 v 425 236 V 45
-w(7)p 518 252 30 2 v 542 251 2 59 v 523 251 a(\007)924
-301 y Fa(Rlr)p 740 252 30 2 v 764 251 2 59 v 745 251
-a Fb(\007)966 202 y(7)p 976 236 2 68 v 983 236 10 68
-v -182 356 1175 2 v -182 373 V -182 389 V -182 406 V
--182 422 V -182 405 a(G)p -49 422 10 68 v -34 422 2 68
-v -22 388 a(7)p 46 439 30 2 v 70 438 2 59 v 51 438 a(\007)419
-488 y Fa(Rdl)p 254 439 30 2 v 278 438 2 59 v 259 438
-a Fb(\007)p 467 422 10 68 v 482 422 2 68 v 494 388 a(7)p
-562 439 30 2 v 586 438 2 59 v 567 438 a(\007)934 488
-y Fa(Rdl)p 770 439 30 2 v 794 438 2 59 v 775 438 a Fb(\007)p
-983 422 2 68 v 991 422 V -182 543 1175 2 v -182 559 V
--182 576 V -182 593 V -182 609 V -182 592 a(G)p -72 609
-10 68 v -57 609 2 68 v -45 575 a(7)p 1 626 30 2 v 25
-625 2 59 v 6 625 a(\007)248 675 y Fa(Rd)p 144 626 30
-2 v 168 625 2 59 v 149 625 a Fb(\007)p 292 609 2 68 v
-300 609 V 347 626 30 2 v 371 625 2 59 v 203 w(\007)615
-675 y Fa(RD)p 490 626 30 2 v 514 625 2 59 v 495 625 a
-Fb(\007)p 638 609 2 68 v 645 609 10 68 v 700 626 30 2
-v 724 625 2 59 v 210 w(\007)948 675 y Fa(Rb)p 843 626
-30 2 v 867 625 2 59 v 848 625 a Fb(\007)p 991 609 2 68
-v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 27a.dvi
+%%CreationDate: Thu Feb 20 14:21:27 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 607 312 782
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 27a
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.20:1421
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 55 /seven put
+dup 71 /G put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a44f0df2233f427413222bc8f356e070b18135f3
+6e7208929f9d424e0baa2290b2082f99ed1bd067b391b6c31e94f3a21da50b34
+292a2bd6934b22edc806325ec8f87a10b54edbc03b574f97d781276e2f33745f
+857886daa118db495027386100d44acccfe4f3031e37d143cbbd9da14cb2b88d
+1e22ddd40770b7ae3296e8fb0376062109e58f43dfda8a06c45051e6c2560d52
+294082afbd5b8baf3370ffe7d70e1d3dd339eecf26eb8a0f72473f24f37cde92
+5026e5c8b39987d71053a0301f94cdfe52eded5a436f20b629be8e20ba46cb4b
+17932275cc507439d6c9877ac33535b06fb6427392613338b3c0e123b07788ac
+28e519bcaee48c4d0dbbd693a9195afd5075315fdf8d0883609aa2d2d4cc346b
+61eb4fbb35a68e91bf9d474d642527b12e61b7c54fcf668d96a1dcb53a525f24
+7ac1f7839d01ed3d209600a1bc4b2b335433d105d1149f5b528ea4719bfae122
+771c946c62b61231dc2bea180facf7a152042cf78c9106e78e6702223e67ad43
+3f7d7e1d586820929c4d55fffb205a0464e30b1c85a12148f8f772cac9f838c8
+08177ffdf636ea4c9c1dc8686a50a08d33fea13cd40dc3e3e07f04a5b835bba7
+bd7e3796921ac11469c94fc159079609060ed7f4db0681125acccdef84ca1d63
+9af10315d9742539cdf9280c72385aa8a6e61a906029dd289daf1286b5001022
+781ae99d01cedf8d9d98c222f28eb6ad0c63f65c5a33e3a11065830685d700be
+0b5ecc042584d97d28af3d098a2586db5947d332d619fc312fc48cf8cd054e1c
+d923a80b7cbeecedc6f7bb4d301ab01f2fdc636842efd124cfb49a4bf49ce698
+571a62b7b02d9724541d9b713e05657a914f39fa4e97044ae046f06f0f123da1
+68014f7bcbb80612ca088220d7cc2bcf187334b621c0c891f49c3be7ab254c30
+64618d92b648075e3b72b14e569483826c63dcead5e506e00c27d7abbdab7ff3
+5cca06ee5ad611a0ae56eafb48071a5e2195992e830d82f610819baa91311d63
+8cae11c44a1f484269c7d6f2c7f2bf16eeed
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/27a.dvi) @start
+%DVIPSBitmapFont: Fa cmtt10 10 7
+/Fa 7 123 df<EA7FF8EAFFFE6C7EEA1C0FEB0780EB03C01301A214E01300A8EB01C0A2
+1303EB0780130F387FFF00485AEA7FF81319809816>68 D<EA7FF0EAFFFC6C7EEA1C0FEB
+07801303A41307EB0F00EA1FFE5B7FEA1C0E7FA414101438A2387F03F0EAFF83387F01E0
+1519809816>82 D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E03C0EA1C01EB00E0A6
+EB01C0EA1E03381F0780EBFF00EA1DFEEA0C7813197F9816>98 D<133FA31307A4EA03C7
+EA0FF748B4FCEA3C1F487EEA700712E0A6EA700F12786C5A381FFFE0EA0FF7EA07C71319
+7F9816>100 D<EA7FC012FF127F1201B3EA7FFFB512806C130011197E9816>108
+D<387F0FC038FF3FE0EA7F7F3807F040EBC0005BA290C7FCA8EA7FFC12FF127F13127F91
+16>114 D<383FFFC05AA238700780EB0F00131EC65A5B485A485AEA078048C7FC381E01
+C0123C1278B5FCA312127F9116>122 D E
+%EndDVIPSBitmapFont
+/Fb 184[53 15[0 47[0 7[{}3 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fb(G)p -74 65 30 2 v -50 64 2 59
+v -69 64 a(\007)201 114 y Fa(Rl)p 76 65 30 2 v 100 64
+2 59 v 81 64 a Fb(\007)p 232 49 10 68 v 247 49 2 68 v
+258 15 a(7)p 307 65 30 2 v 331 64 2 59 v 312 64 a(\007)582
+114 y Fa(Rr)p 457 65 30 2 v 481 64 2 59 v 462 64 a Fb(\007)612
+15 y(7)p 622 49 2 68 v 629 49 10 68 v 687 65 30 2 v 711
+64 2 59 v 692 64 a(\007)942 114 y Fa(Rz)p 837 65 30 2
+v 861 64 2 59 v 842 64 a Fb(\007)p -182 169 1175 2 v
+-182 186 V -182 202 V -182 219 V -182 236 V -182 218
+a(G)p -49 252 30 2 v -25 251 2 59 v -44 251 a(\007)357
+301 y Fa(Rlr)p 173 252 30 2 v 197 251 2 59 v 178 251
+a Fb(\007)400 202 y(7)p 410 236 10 68 v 425 236 V 45
+w(7)p 518 252 30 2 v 542 251 2 59 v 523 251 a(\007)924
+301 y Fa(Rlr)p 740 252 30 2 v 764 251 2 59 v 745 251
+a Fb(\007)966 202 y(7)p 976 236 2 68 v 983 236 10 68
+v -182 356 1175 2 v -182 373 V -182 389 V -182 406 V
+-182 422 V -182 405 a(G)p -49 422 10 68 v -34 422 2 68
+v -22 388 a(7)p 46 439 30 2 v 70 438 2 59 v 51 438 a(\007)419
+488 y Fa(Rdl)p 254 439 30 2 v 278 438 2 59 v 259 438
+a Fb(\007)p 467 422 10 68 v 482 422 2 68 v 494 388 a(7)p
+562 439 30 2 v 586 438 2 59 v 567 438 a(\007)934 488
+y Fa(Rdl)p 770 439 30 2 v 794 438 2 59 v 775 438 a Fb(\007)p
+983 422 2 68 v 991 422 V -182 543 1175 2 v -182 559 V
+-182 576 V -182 593 V -182 609 V -182 592 a(G)p -72 609
+10 68 v -57 609 2 68 v -45 575 a(7)p 1 626 30 2 v 25
+625 2 59 v 6 625 a(\007)248 675 y Fa(Rd)p 144 626 30
+2 v 168 625 2 59 v 149 625 a Fb(\007)p 292 609 2 68 v
+300 609 V 347 626 30 2 v 371 625 2 59 v 203 w(\007)615
+675 y Fa(RD)p 490 626 30 2 v 514 625 2 59 v 495 625 a
+Fb(\007)p 638 609 2 68 v 645 609 10 68 v 700 626 30 2
+v 724 625 2 59 v 210 w(\007)948 675 y Fa(Rb)p 843 626
+30 2 v 867 625 2 59 v 848 625 a Fb(\007)p 991 609 2 68
+v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/28.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/28.eps
index 35afe658a4d..c801eeac18e 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/28.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/28.eps
@@ -1,280 +1,280 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 28.dvi
-%%CreationDate: Fri Feb 21 23:00:14 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 701 510 783
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 28
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.21:2300
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 83 /S put
-dup 132 /Dcaron put
-dup 133 /Ecaron put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a95784e949ce2020a993c461975b322f1c616be8
-3a47a73c6df3cb7602f4ab2da5543def51a25553879c23577539ec4386450eb8
-72bd1e35b9196158df576883828b70426e63b686c90d5587000dcd74159810ae
-878b9a98bd9a3a98c5081c212bc719d9fb67126b0313df47349ba01cd934974a
-ddd103731d18c2495a6dfc23cceee0643768e4abb90533f88af982ee9a52d05c
-28cf0e3a088620e565ffa6b5fd0e71e7d97ff733f2d0e0f46bf7859bf2076581
-ae5fdf3c885d51bd09ec9646935341bd381b4c35874d1384113c17574bd69ea9
-d21a0b5b97c6a49f19a0bcd3b99f47df0ecaae0a39de4dcf572b34d4348316c2
-e30324f9ea70160fd71ea4ce4bdfff3ccfed96cc7fa3e4cce9d73365bfc5571b
-aca1ee7d318fa81f7a8bf9599d6f193fdef64970fd44e590655311bcc82e70d8
-6757861307bbc7e0f2f9f67e40cd624c85ead74d12d448681d65d9d9a5243263
-c9c465dd362fb8ed9375f42a268b704198abe42f5c91ae04d7a2f63ed54cc7c5
-71602714de1d2703992d44c9da966c47e74c137e5a17a7bb146731349a9b6a62
-ec05dc5c2a940bfa7fb3a5a5fd566b6aa26529a6f54fe50ea59832ef28860e02
-09e4bcced123b0f2f2bbddd712ff8e488c1a72841709c8f0a801035f3f8ecf48
-347b190520c9eb3e09c9a6ca4ebaf1157374380dfc6442b31085a254a8c97771
-cad61af2e4ebc8f44675657575ab2d30e0711aeed75d8566db7275460c4d7126
-e136c0164a68d3b301990c355e44411a90662c6a6f5ec2327d8b8693d15f528f
-1e6b2421243505914b9581778208b577abd4bdd45194d41f99e565095299c570
-c7c8030dd368c80ff4947f92c9b406bd5e65536863bbc575a7a9154b3ed57619
-e3795ebfeb064b92ee1acdaf7033207b95344fbb578e2639cab0bb8111b15284
-fc347204f8f864e4026a8014cc28b36710dc698188a938ff99d10945ea8fb49e
-baed3aa464d1ea15de92746554894c9fe15aa6e3ae2702d1c07a839b0ca490de
-512a9f92ff06fb78ffa27eb67a90040bcdee198fa171e8a7819befef8ecbf97d
-bfcfda5cb952b5f12f0e89cad4544fb547c0c1d7d36b276256326707e5ddffbe
-97a2176c90fd941bf3380cf11364790f1fed330a65cbe02479e104b15ab136e4
-9f073a4986f8712de0179be664a22fcfe9e0d22aaede75afc2c2a35b37cde58b
-00b7c086402da1ca38ad79878c17289b56f52df5c353a4cf85df43e99b5f0620
-51f32900c7ebdb76be4fcdcc2cea0527dc40a210d1403cc27f0be06b582b7a07
-2a2f10a931f744cf7095a8cd9595d9c862bf766dcc7eb5359b593639221165ab
-94c00d3b510ca2ba2b8e7debd749e82fcad5578dd1a6225f776c25628af5e89a
-d62d53f8a4ba3d8402c0f8f068db069dd0670c935ab167a21b357057fb1fb7d0
-a60a197f44d5ed38919b09bfce81ae855cecd94e47608e8eca4cf1a54358dacd
-7ddb752b0221f625a8db954e0d419a954cf603a918d4ccccba97d45dfac7fb02
-cd86ec65b2fc752d36d70fd2776e6df5cb1524be17c05a2fe8fbae210ecac0fe
-b3f4394311a12d25c9a81a5181f28d0d4143280b31c04761a2b8163cba42b126
-1049fd2de35a2f836df892ec1e1948c79995003531189f2811e823f4b005268e
-47d142dfb8f1fc65a131621ba11ebb2ce8977fe111b268eb02e85221eb35f468
-5824bc7abf58c0f4e1f6d9b67e4592537b04b547cdd6011df633139ca72773b7
-02a161cb6894c5d740f246e42274f7727a1991ad1d68739d05ee885504f6cc85
-81feb9998d730026cd680dd33f0ac8699ec2c6078ba5684213f4b3fedef8cee8
-b0b1dd5c5444e4ac1bceca4e7770828bcfcc28130e152bde1821ceca7e3a144c
-775a58d02a92523dd6baba8772b5a89ae7d21dba440e01da76ce4eedf7eac423
-9573fda7556691369a
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/28.dvi) @start
-%DVIPSBitmapFont: Fa cmtt10 10 6
-/Fa 6 76 df<13E0A8B512E0A33800E000A813137F9516>43 D<B51280A311037E8D16>
-45 D<EA03E0EA0FF8487EEA1E3CEA380EEA780FEA7007A238E00380A8EAF00700701300
-A2EA780FEA3C1E6C5AEA1FFC6C5AEA03E011197E9816>48 D<EA07E0EA1FF8487EEA783E
-EAE00700F01380130312601200A2EB0700A2130E5B5B5B5B485A485A000FC7FC381E0380
-1238EA7FFFB5FC7E11197E9816>50 D<137C13FC13DC1201EA039CA2EA071C120F120E12
-1E123C1238127812F0B512E0A338001C00A53801FFC0A313197F9816>52
-D<387F0FE038FF8FF0387F0FE0381C0780EB0F00130E5B133C5B5B5BEA1DF0121F7F1338
-EA1E1C121C7FA27FA2EB0380387F07E038FF8FF0387F07E01419809816>75
-D E
-%EndDVIPSBitmapFont
-/Fb 122[266 133 48[33 11[53 16[20 1[20 1[20 42[0 7[{}8
-66.4176 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 2001 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fb(G)-122 15 y(S)p -31 65 30 2
-v -7 64 2 63 v -26 64 a(\007)p 99 56 2 60 v 80 56 a(\007)p
-205 48 2 57 v 186 48 a(\007)-7 2 y(\205)46 0 y(\205)p
-311 40 2 54 v 292 40 a(\007)p 417 31 2 63 v 398 31 a(\007)p
-522 23 2 60 v 503 23 a(\007)p 628 15 2 57 v 609 15 a(\007)417
--31 y(\205)469 -34 y(\205)p 734 6 2 54 v 715 6 a(\007)p
-821 49 2 68 v 828 -18 a(4)844 6 y(4)832 106 y Fa(K+0+2)p
-911 56 2 63 v 892 56 a Fb(\007)p 1017 48 2 60 v 998 48
-a(\007)p 1123 40 2 57 v 1104 40 a(\007)911 -6 y(\205)964
--9 y(\205)p 1229 31 2 54 v 1210 31 a(\007)p 1316 69 2
-46 v 1316 23 a(\007)p 1422 64 2 49 v 1422 15 a(\007)p
-1527 59 2 52 v 1527 6 a(\007)1316 69 y(\205)1369 66 y(\205)p
-1633 54 2 55 v 1633 -2 a(\007)p 1739 49 2 68 v 1741 49
-V 1748 -18 a(4)1764 6 y(4)1781 -27 y(4)1797 -2 y(4)p
--182 169 2001 2 v -182 186 V -182 202 V -182 219 V -182
-236 V -182 218 a(G)-127 168 y(4)-110 193 y(4)-94 160
-y(4)-77 185 y(4)-123 285 y Fa(K+0+4)p -4 235 2 63 v -23
-235 a Fb(\007)p 60 226 2 58 v 41 226 a(\007)p 125 218
-2 53 v 106 218 a(\007)-4 172 y(\204)58 169 y(\204)p 190
-210 2 48 v 171 210 a(\007)p 236 247 2 46 v 236 202 a(\007)p
-300 244 2 51 v 300 193 a(\007)p 365 241 2 56 v 365 185
-a(\007)236 247 y(\204)299 244 y(\204)p 430 238 2 61 v
-430 177 a(\007)p 494 236 2 68 v 548 226 2 63 v 529 226
-a(\007)p 612 218 2 58 v 593 218 a(\007)p 677 210 2 53
-v 658 210 a(\007)782 276 y Fa(K+0-4)548 164 y Fb(\204)610
-161 y(\204)p 742 202 2 48 v 723 202 a(\007)792 168 y(6)809
-193 y(6)826 160 y(6)842 185 y(6)859 202 y(2)875 177 y(2)892
-210 y(2)909 185 y(2)p 946 239 2 46 v 946 193 a(\007)991
-185 y(6)p 1011 236 2 51 v(\007)1056 177 y(6)p 1076 233
-2 56 v(\007)946 239 y(\204)1009 236 y(\204)p 1141 230
-2 61 v 1141 168 a(\007)p 1205 236 2 68 v 1212 210 a(6)1229
-185 y(6)1245 202 y(2)1262 177 y(2)1220 276 y Fa(K+0-2)p
-1319 218 2 63 v 1300 218 a Fb(\007)p 1383 210 2 58 v
-1364 210 a(\007)p 1448 202 2 53 v 1429 202 a(\007)1319
-156 y(\204)1381 153 y(\204)p 1513 193 2 48 v 1494 193
-a(\007)p 1558 231 2 46 v 1558 185 a(\007)1603 177 y(6)p
-1623 228 2 51 v(\007)1668 168 y(4)p 1688 225 2 56 v(\007)1558
-231 y(\204)1621 228 y(\204)p 1753 222 2 61 v 1753 160
-a(\007)p 1817 236 2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 28.dvi
+%%CreationDate: Fri Feb 21 23:00:14 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 701 510 783
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 28
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.21:2300
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 83 /S put
+dup 132 /Dcaron put
+dup 133 /Ecaron put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a95784e949ce2020a993c461975b322f1c616be8
+3a47a73c6df3cb7602f4ab2da5543def51a25553879c23577539ec4386450eb8
+72bd1e35b9196158df576883828b70426e63b686c90d5587000dcd74159810ae
+878b9a98bd9a3a98c5081c212bc719d9fb67126b0313df47349ba01cd934974a
+ddd103731d18c2495a6dfc23cceee0643768e4abb90533f88af982ee9a52d05c
+28cf0e3a088620e565ffa6b5fd0e71e7d97ff733f2d0e0f46bf7859bf2076581
+ae5fdf3c885d51bd09ec9646935341bd381b4c35874d1384113c17574bd69ea9
+d21a0b5b97c6a49f19a0bcd3b99f47df0ecaae0a39de4dcf572b34d4348316c2
+e30324f9ea70160fd71ea4ce4bdfff3ccfed96cc7fa3e4cce9d73365bfc5571b
+aca1ee7d318fa81f7a8bf9599d6f193fdef64970fd44e590655311bcc82e70d8
+6757861307bbc7e0f2f9f67e40cd624c85ead74d12d448681d65d9d9a5243263
+c9c465dd362fb8ed9375f42a268b704198abe42f5c91ae04d7a2f63ed54cc7c5
+71602714de1d2703992d44c9da966c47e74c137e5a17a7bb146731349a9b6a62
+ec05dc5c2a940bfa7fb3a5a5fd566b6aa26529a6f54fe50ea59832ef28860e02
+09e4bcced123b0f2f2bbddd712ff8e488c1a72841709c8f0a801035f3f8ecf48
+347b190520c9eb3e09c9a6ca4ebaf1157374380dfc6442b31085a254a8c97771
+cad61af2e4ebc8f44675657575ab2d30e0711aeed75d8566db7275460c4d7126
+e136c0164a68d3b301990c355e44411a90662c6a6f5ec2327d8b8693d15f528f
+1e6b2421243505914b9581778208b577abd4bdd45194d41f99e565095299c570
+c7c8030dd368c80ff4947f92c9b406bd5e65536863bbc575a7a9154b3ed57619
+e3795ebfeb064b92ee1acdaf7033207b95344fbb578e2639cab0bb8111b15284
+fc347204f8f864e4026a8014cc28b36710dc698188a938ff99d10945ea8fb49e
+baed3aa464d1ea15de92746554894c9fe15aa6e3ae2702d1c07a839b0ca490de
+512a9f92ff06fb78ffa27eb67a90040bcdee198fa171e8a7819befef8ecbf97d
+bfcfda5cb952b5f12f0e89cad4544fb547c0c1d7d36b276256326707e5ddffbe
+97a2176c90fd941bf3380cf11364790f1fed330a65cbe02479e104b15ab136e4
+9f073a4986f8712de0179be664a22fcfe9e0d22aaede75afc2c2a35b37cde58b
+00b7c086402da1ca38ad79878c17289b56f52df5c353a4cf85df43e99b5f0620
+51f32900c7ebdb76be4fcdcc2cea0527dc40a210d1403cc27f0be06b582b7a07
+2a2f10a931f744cf7095a8cd9595d9c862bf766dcc7eb5359b593639221165ab
+94c00d3b510ca2ba2b8e7debd749e82fcad5578dd1a6225f776c25628af5e89a
+d62d53f8a4ba3d8402c0f8f068db069dd0670c935ab167a21b357057fb1fb7d0
+a60a197f44d5ed38919b09bfce81ae855cecd94e47608e8eca4cf1a54358dacd
+7ddb752b0221f625a8db954e0d419a954cf603a918d4ccccba97d45dfac7fb02
+cd86ec65b2fc752d36d70fd2776e6df5cb1524be17c05a2fe8fbae210ecac0fe
+b3f4394311a12d25c9a81a5181f28d0d4143280b31c04761a2b8163cba42b126
+1049fd2de35a2f836df892ec1e1948c79995003531189f2811e823f4b005268e
+47d142dfb8f1fc65a131621ba11ebb2ce8977fe111b268eb02e85221eb35f468
+5824bc7abf58c0f4e1f6d9b67e4592537b04b547cdd6011df633139ca72773b7
+02a161cb6894c5d740f246e42274f7727a1991ad1d68739d05ee885504f6cc85
+81feb9998d730026cd680dd33f0ac8699ec2c6078ba5684213f4b3fedef8cee8
+b0b1dd5c5444e4ac1bceca4e7770828bcfcc28130e152bde1821ceca7e3a144c
+775a58d02a92523dd6baba8772b5a89ae7d21dba440e01da76ce4eedf7eac423
+9573fda7556691369a
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/28.dvi) @start
+%DVIPSBitmapFont: Fa cmtt10 10 6
+/Fa 6 76 df<13E0A8B512E0A33800E000A813137F9516>43 D<B51280A311037E8D16>
+45 D<EA03E0EA0FF8487EEA1E3CEA380EEA780FEA7007A238E00380A8EAF00700701300
+A2EA780FEA3C1E6C5AEA1FFC6C5AEA03E011197E9816>48 D<EA07E0EA1FF8487EEA783E
+EAE00700F01380130312601200A2EB0700A2130E5B5B5B5B485A485A000FC7FC381E0380
+1238EA7FFFB5FC7E11197E9816>50 D<137C13FC13DC1201EA039CA2EA071C120F120E12
+1E123C1238127812F0B512E0A338001C00A53801FFC0A313197F9816>52
+D<387F0FE038FF8FF0387F0FE0381C0780EB0F00130E5B133C5B5B5BEA1DF0121F7F1338
+EA1E1C121C7FA27FA2EB0380387F07E038FF8FF0387F07E01419809816>75
+D E
+%EndDVIPSBitmapFont
+/Fb 122[266 133 48[33 11[53 16[20 1[20 1[20 42[0 7[{}8
+66.4176 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 2001 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fb(G)-122 15 y(S)p -31 65 30 2
+v -7 64 2 63 v -26 64 a(\007)p 99 56 2 60 v 80 56 a(\007)p
+205 48 2 57 v 186 48 a(\007)-7 2 y(\205)46 0 y(\205)p
+311 40 2 54 v 292 40 a(\007)p 417 31 2 63 v 398 31 a(\007)p
+522 23 2 60 v 503 23 a(\007)p 628 15 2 57 v 609 15 a(\007)417
+-31 y(\205)469 -34 y(\205)p 734 6 2 54 v 715 6 a(\007)p
+821 49 2 68 v 828 -18 a(4)844 6 y(4)832 106 y Fa(K+0+2)p
+911 56 2 63 v 892 56 a Fb(\007)p 1017 48 2 60 v 998 48
+a(\007)p 1123 40 2 57 v 1104 40 a(\007)911 -6 y(\205)964
+-9 y(\205)p 1229 31 2 54 v 1210 31 a(\007)p 1316 69 2
+46 v 1316 23 a(\007)p 1422 64 2 49 v 1422 15 a(\007)p
+1527 59 2 52 v 1527 6 a(\007)1316 69 y(\205)1369 66 y(\205)p
+1633 54 2 55 v 1633 -2 a(\007)p 1739 49 2 68 v 1741 49
+V 1748 -18 a(4)1764 6 y(4)1781 -27 y(4)1797 -2 y(4)p
+-182 169 2001 2 v -182 186 V -182 202 V -182 219 V -182
+236 V -182 218 a(G)-127 168 y(4)-110 193 y(4)-94 160
+y(4)-77 185 y(4)-123 285 y Fa(K+0+4)p -4 235 2 63 v -23
+235 a Fb(\007)p 60 226 2 58 v 41 226 a(\007)p 125 218
+2 53 v 106 218 a(\007)-4 172 y(\204)58 169 y(\204)p 190
+210 2 48 v 171 210 a(\007)p 236 247 2 46 v 236 202 a(\007)p
+300 244 2 51 v 300 193 a(\007)p 365 241 2 56 v 365 185
+a(\007)236 247 y(\204)299 244 y(\204)p 430 238 2 61 v
+430 177 a(\007)p 494 236 2 68 v 548 226 2 63 v 529 226
+a(\007)p 612 218 2 58 v 593 218 a(\007)p 677 210 2 53
+v 658 210 a(\007)782 276 y Fa(K+0-4)548 164 y Fb(\204)610
+161 y(\204)p 742 202 2 48 v 723 202 a(\007)792 168 y(6)809
+193 y(6)826 160 y(6)842 185 y(6)859 202 y(2)875 177 y(2)892
+210 y(2)909 185 y(2)p 946 239 2 46 v 946 193 a(\007)991
+185 y(6)p 1011 236 2 51 v(\007)1056 177 y(6)p 1076 233
+2 56 v(\007)946 239 y(\204)1009 236 y(\204)p 1141 230
+2 61 v 1141 168 a(\007)p 1205 236 2 68 v 1212 210 a(6)1229
+185 y(6)1245 202 y(2)1262 177 y(2)1220 276 y Fa(K+0-2)p
+1319 218 2 63 v 1300 218 a Fb(\007)p 1383 210 2 58 v
+1364 210 a(\007)p 1448 202 2 53 v 1429 202 a(\007)1319
+156 y(\204)1381 153 y(\204)p 1513 193 2 48 v 1494 193
+a(\007)p 1558 231 2 46 v 1558 185 a(\007)1603 177 y(6)p
+1623 228 2 51 v(\007)1668 168 y(4)p 1688 225 2 56 v(\007)1558
+231 y(\204)1621 228 y(\204)p 1753 222 2 61 v 1753 160
+a(\007)p 1817 236 2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29.eps
index eceaf0ccef9..340f4ea69ef 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29.eps
@@ -1,248 +1,248 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 29.dvi
-%%CreationDate: Sat Feb 22 23:38:48 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 751 482 785
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.22:2338
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 9 /macron put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a132db9902412754fdd09ec95252cda73da9e914
-71de5d6c3eec8ef7370231d9ef10ce8b4e303cae4e5ea9b44f7bd6ced95facda
-538ba5971866691f71f5ae6e2ed603b7aa25c7a3d074e08a94de14cb27508ea1
-59736969241ad437ddbc7c4519325de152347987b9b8a7cf66573b7a66b7dadf
-335195e19ddd80cdcff6cb61d5ec0d8e0a61b957202905d37f58f66d85ce85ea
-2f711a224e221398f5c04b499b07f05853d00c7917db094e7735068fef3ecc11
-1803763c668eacb4caf134f38f9f372db06a7796f1befc97a3a8c4e5daedbd08
-edbcbcf078a1e0f7d8dacb4c31caa9db993c02fc64a79975c269f2c92cb0d92c
-b33819110fde86084a411ee56fa3b8f7167d32600e2c6660cea200265363148f
-78f67ac03cc42972e603293322b577936f80fd60e015799d4e8a4f2aa376cd87
-c0871097ab4579d18935c9595e831528c5ec8513e80b41c5e46719293743c7b3
-bdd38832f69cbf514233609ace72ea8f599d9defb07c9bcdf6b39a7c66b1f831
-67ebd6b1446ab174b5726bb4181bbd5618729ea2a89ecea3def8cb0a07bf0036
-ff42e78d1947fcb9858a2e404212d2a158854c381522beb7d60f708b43c12b64
-36562f072284a059270bcf37aa467909669de8cd76d02cb46245494f28268b1d
-2a3e7743e67db891d6dce7cec02185a084ae07fe43ff0b3ec6174580f494ccac
-179bb85f2f57f1d1ac2433418d17080041076928595e75332f1c9e128dc42bb8
-8487eaeb01b650231fcf67a62d2a6085f20496a56dd2f08dabe71c0ac9278a7e
-c658bf9b781027dba2517661b820a2d2301d1940e2c588a98c6e209fb5084520
-6622e8eb47f128011cb4020db6fc21529afee0ced814c91a4d33e3a084c87788
-f52e29378772dd482b84079464caac1e8b9c6e31d7a28b560dba608fa3f3eba3
-a4f23046a23473522b7d4b3d2d146350a423abddd2d133410afd0c4ce165c424
-6ee379b5d7d3286fc211b2a29b8e7b8715d3a33d239b610d2bfc7ba64462cf6c
-0188e20404674310572027447c9baa7aed86d6589eb73a99c96ce95e971018a2
-7d0bd396799e4c04fe4240d474e27451b5a32e8dae2fe0762c0df7a42b21e0b4
-7ea4c3e2e26330b21ba4a876fe28426f629869f196078a9045b308bcd4b8e642
-48b456a0995b8a4c5104d12ca636b01ef3c41f759010086cf46e4c06875e6ce2
-a7920184cf212111de91c61c88f5e8914d1404c320acc28d00afd9582e153681
-79478e077085743389edf139d0bf1d80ba09d72dd7c428a82b9a7064ab98b4a3
-a8ac137d89ee5dca316b35521a22cab47b5b60e10f4dee0153baef82dbe494aa
-3f0c76469bf46982f191789804f51ff9f7daf67e10699bfbe6eb4078c1259521
-f41846ac08525e6aabe0e5ffffb380d2b6f4825851c1702a5bbafb9b46f3ab51
-f3948368aab3df014bb91af8c391ca1177701feb4081fa3be0465c47f5954ff5
-ff449b2ed3ae16eace36104004f810306c2ec0dc51d0dadae645ef640698b4bf
-45b1c33dde61e68af757c6303f4cb4771faa27e4db0c270ce39d3d4e636c2645
-e928f48cb7ed185bfe265b2559bcf8d86d6d23b457e5a110b4ef10d753cf8fb5
-811a4bbfdd4b669dc6cfc1dd9a5323cdf940b9c096dbbac9a475915cb6df2d3b
-8f259c45627a4638a189daea7092c23d7b1e53f0e4320e15abc178a123d509b6
-58953d5d34e7ec2f2960078a61862a7869cff962b56427a95c291960bf90c1ca
-c6e7868bb973e62c3930a2e0495c0f9809e108f49200901e723dc6c92b2f3e09
-6b54a0464faf0d6c7e85d3eb2710a988f405362552dc08fb7a527a6fdd980824
-6ccfc68abaa547762afc870378478d9f7d17580a84717eed0de0bf73345bdbe9
-b8e19c68c1be84fa8e82348b1904cac9e428330d0d6fc5137d8fcdcda150cf08
-122cc9e1cd6d0d6dfa5f6bbe6d3b289dcac6fe804884c38a0b790d80a2889aa1
-a59b7d377ac7b0ca931a39c11d920b278b2a650f376885191a7a0b65403b4eaf
-bdc961f7a2422bfe
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/29.dvi) @start /Fa 59[133 66
-62[133 66 59[53 16[20 1[20 1[20 40[0 1[0 7[{}10 66.4176
-/TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
-31 a Fa(G)60 15 y(2)p 157 56 2 54 v 138 56 a(\007)p 270
-48 2 52 v 251 48 a(\007)270 9 y(\203)284 8 y(\203)157
-2 y(\204)218 -1 y(\204)p 350 40 2 48 v 331 40 a(\007)p
-430 31 2 75 v 411 31 a(\007)p 510 23 2 71 v 491 23 a(\007)551
-15 y(6)p 590 15 2 67 v(\007)630 6 y(4)430 -31 y(\204)538
--36 y(\204)430 -43 y(\204)538 -49 y(\204)p 669 6 2 62
-v 650 6 a(\007)p 730 52 2 54 v 730 -2 a(\007)823 6 y(6)p
-843 58 2 52 v(\007)903 15 y(2)843 45 y(\303)858 46 y(\303)730
-52 y(\304)792 55 y(\304)p 923 62 2 48 v 923 15 a(\007)p
-1022 23 2 59 v 1003 23 a(\007)p 1102 31 2 63 v 1083 31
-a(\007)p 1182 40 2 67 v 1163 40 a(\007)1022 -23 y(\304)1130
--17 y(\304)1022 -35 y(\304)1130 -30 y(\304)p 1262 48
-2 72 v 1243 48 a(\007)p 1322 49 2 68 v 1381 56 a(\011)p
-1701 49 V eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 29.dvi
+%%CreationDate: Sat Feb 22 23:38:48 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 751 482 785
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.22:2338
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 9 /macron put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a132db9902412754fdd09ec95252cda73da9e914
+71de5d6c3eec8ef7370231d9ef10ce8b4e303cae4e5ea9b44f7bd6ced95facda
+538ba5971866691f71f5ae6e2ed603b7aa25c7a3d074e08a94de14cb27508ea1
+59736969241ad437ddbc7c4519325de152347987b9b8a7cf66573b7a66b7dadf
+335195e19ddd80cdcff6cb61d5ec0d8e0a61b957202905d37f58f66d85ce85ea
+2f711a224e221398f5c04b499b07f05853d00c7917db094e7735068fef3ecc11
+1803763c668eacb4caf134f38f9f372db06a7796f1befc97a3a8c4e5daedbd08
+edbcbcf078a1e0f7d8dacb4c31caa9db993c02fc64a79975c269f2c92cb0d92c
+b33819110fde86084a411ee56fa3b8f7167d32600e2c6660cea200265363148f
+78f67ac03cc42972e603293322b577936f80fd60e015799d4e8a4f2aa376cd87
+c0871097ab4579d18935c9595e831528c5ec8513e80b41c5e46719293743c7b3
+bdd38832f69cbf514233609ace72ea8f599d9defb07c9bcdf6b39a7c66b1f831
+67ebd6b1446ab174b5726bb4181bbd5618729ea2a89ecea3def8cb0a07bf0036
+ff42e78d1947fcb9858a2e404212d2a158854c381522beb7d60f708b43c12b64
+36562f072284a059270bcf37aa467909669de8cd76d02cb46245494f28268b1d
+2a3e7743e67db891d6dce7cec02185a084ae07fe43ff0b3ec6174580f494ccac
+179bb85f2f57f1d1ac2433418d17080041076928595e75332f1c9e128dc42bb8
+8487eaeb01b650231fcf67a62d2a6085f20496a56dd2f08dabe71c0ac9278a7e
+c658bf9b781027dba2517661b820a2d2301d1940e2c588a98c6e209fb5084520
+6622e8eb47f128011cb4020db6fc21529afee0ced814c91a4d33e3a084c87788
+f52e29378772dd482b84079464caac1e8b9c6e31d7a28b560dba608fa3f3eba3
+a4f23046a23473522b7d4b3d2d146350a423abddd2d133410afd0c4ce165c424
+6ee379b5d7d3286fc211b2a29b8e7b8715d3a33d239b610d2bfc7ba64462cf6c
+0188e20404674310572027447c9baa7aed86d6589eb73a99c96ce95e971018a2
+7d0bd396799e4c04fe4240d474e27451b5a32e8dae2fe0762c0df7a42b21e0b4
+7ea4c3e2e26330b21ba4a876fe28426f629869f196078a9045b308bcd4b8e642
+48b456a0995b8a4c5104d12ca636b01ef3c41f759010086cf46e4c06875e6ce2
+a7920184cf212111de91c61c88f5e8914d1404c320acc28d00afd9582e153681
+79478e077085743389edf139d0bf1d80ba09d72dd7c428a82b9a7064ab98b4a3
+a8ac137d89ee5dca316b35521a22cab47b5b60e10f4dee0153baef82dbe494aa
+3f0c76469bf46982f191789804f51ff9f7daf67e10699bfbe6eb4078c1259521
+f41846ac08525e6aabe0e5ffffb380d2b6f4825851c1702a5bbafb9b46f3ab51
+f3948368aab3df014bb91af8c391ca1177701feb4081fa3be0465c47f5954ff5
+ff449b2ed3ae16eace36104004f810306c2ec0dc51d0dadae645ef640698b4bf
+45b1c33dde61e68af757c6303f4cb4771faa27e4db0c270ce39d3d4e636c2645
+e928f48cb7ed185bfe265b2559bcf8d86d6d23b457e5a110b4ef10d753cf8fb5
+811a4bbfdd4b669dc6cfc1dd9a5323cdf940b9c096dbbac9a475915cb6df2d3b
+8f259c45627a4638a189daea7092c23d7b1e53f0e4320e15abc178a123d509b6
+58953d5d34e7ec2f2960078a61862a7869cff962b56427a95c291960bf90c1ca
+c6e7868bb973e62c3930a2e0495c0f9809e108f49200901e723dc6c92b2f3e09
+6b54a0464faf0d6c7e85d3eb2710a988f405362552dc08fb7a527a6fdd980824
+6ccfc68abaa547762afc870378478d9f7d17580a84717eed0de0bf73345bdbe9
+b8e19c68c1be84fa8e82348b1904cac9e428330d0d6fc5137d8fcdcda150cf08
+122cc9e1cd6d0d6dfa5f6bbe6d3b289dcac6fe804884c38a0b790d80a2889aa1
+a59b7d377ac7b0ca931a39c11d920b278b2a650f376885191a7a0b65403b4eaf
+bdc961f7a2422bfe
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/29.dvi) @start /Fa 59[133 66
+62[133 66 59[53 16[20 1[20 1[20 40[0 1[0 7[{}10 66.4176
+/TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
+31 a Fa(G)60 15 y(2)p 157 56 2 54 v 138 56 a(\007)p 270
+48 2 52 v 251 48 a(\007)270 9 y(\203)284 8 y(\203)157
+2 y(\204)218 -1 y(\204)p 350 40 2 48 v 331 40 a(\007)p
+430 31 2 75 v 411 31 a(\007)p 510 23 2 71 v 491 23 a(\007)551
+15 y(6)p 590 15 2 67 v(\007)630 6 y(4)430 -31 y(\204)538
+-36 y(\204)430 -43 y(\204)538 -49 y(\204)p 669 6 2 62
+v 650 6 a(\007)p 730 52 2 54 v 730 -2 a(\007)823 6 y(6)p
+843 58 2 52 v(\007)903 15 y(2)843 45 y(\303)858 46 y(\303)730
+52 y(\304)792 55 y(\304)p 923 62 2 48 v 923 15 a(\007)p
+1022 23 2 59 v 1003 23 a(\007)p 1102 31 2 63 v 1083 31
+a(\007)p 1182 40 2 67 v 1163 40 a(\007)1022 -23 y(\304)1130
+-17 y(\304)1022 -35 y(\304)1130 -30 y(\304)p 1262 48
+2 72 v 1243 48 a(\007)p 1322 49 2 68 v 1381 56 a(\011)p
+1701 49 V eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29a.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29a.eps
index 8366ae0d3a3..ea23a7130b5 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29a.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29a.eps
@@ -1,244 +1,244 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 29a.dvi
-%%CreationDate: Sat Feb 22 23:38:43 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 749 482 782
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29a
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.22:2338
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 9 /macron put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a133ea4cfc33df445602c8ed05db64af2979bbaa
-d6f8a6dcf011d8c69d751f3fba44b3ab680802d397e078345991e048ad60922d
-c991d8ee5e95920cb7216135e276a8b553d365176a5ad944da1fc126921ad991
-6fedb9214e9739f78ffa74f2544ee4057e042986620cc3862782c6b8d2e2147d
-a9d1837cc49d394550f36c16468c561eed2fe608c083d40762e5b93c2f6bab4a
-4d0e5be3083f4041fc41832af42dfad3352d2beb76a5d490a3faf8ca0e92d8bf
-922d2dcea718b34f57215c6a95e63dd0c50c10a9b2ed10cc62b94eee91c41aff
-7700001fc8b8380afbbc323f1cefe94877f55f7f61dae9954852c69fd94c850a
-a63301c4509a62ceb04812a24a98175485ea3c4b062ee3b296c584945d650066
-58768e0f9c51aab08f5841071e2e2dad3ed0326cb8291417c3f443780106e429
-5dbbb48daabdb53f593786ad46458bd50295db620af891dcbecf9c54527c2bc7
-45b2a99482cc305ca426b1f27c2172df1242fc7e1754a359616d482453edb02e
-72203af938aa5d501869d4ee44cbf5c86827d38d7733eec11a4f0d5465820715
-aeae954720af8d47c25404980f76656942db23a2b17fbe54f313f33c4779db29
-211d890038f19d10a23cedbe8179ef663a65f3cd4512a5ef8bd4229951fe479c
-04fa3d6f083a53ebc5bc7d0e28117bbd2912216b0010a0ac27237849d5ef2807
-f78dd957bbd44000f3980575b8980cededaf4b068d19fc565d10eb5d0ac64d43
-38d5c4ac9979b8ab56ea0bfb2a38d3d4f926a160e7c92f8f60b246785cb9673c
-f9673729b09c993cd2eef92c202bc26e362e9de1574ee1dd819e57e823be5ed4
-785a2817144896e26f948580756c242319d46ea328dab97f4bb4a460940d6cc7
-0173c87499353904999daa2b700feb70bbcd6e008224debe2fbea66deabe87ef
-df19761d1b39430482e49046aa2c87a10ca526eac6c6dbe9c732bc9e7c281e33
-ba23bd63b63e5e0fbb314978bd7f038685b08911aba0d16026433947f57562f4
-6c773fb6ece855be4f826447ce6a30d638a9e9c38c2855cdaf4cf20abe22afb5
-6231123f2b24182d498f0957fbacede09021523e7d2f4ec0714d22a5997f97d7
-8073ff5cbd13c33c682adf3389b196946a360a64929d86e89f69df548d836925
-a2072b1bf0aa35fcb8d9b564e6480ea040fffc1efe3a9f74a57c37812df93459
-5b3e2dd08d4eb7adadcb6428d35ea80d5114465d1775edbf8f1f9ea4b45e8e70
-746d3916d98b505944857dcf4c90e0b323fcdc4787fc47846932907b8be5d16b
-6b0145bbc587b6d8fa5beb79aec6508bb80f98b6e3acc905696b181a0dc3f590
-9113137c8837753f29c54c6670ef03767f590bc0cdeb10d7f48946d79af324ba
-b96760e67d8cfa2464b12ede7f33ca323cbc4e4fafcc45b962a67731c7ead591
-11d12de79d166a7dee5e72e8df0ed22a2ebaed1177ab830ac73d66c3e8a045ed
-7f7c6a007e56f983f6a1d047982ae814685dda990490aca620b66a84c2657ff7
-ea569c1470e6654009036e99f1ca1c006fdcc6e97cfc8fd1f551138525ab2aaa
-b7511d277a148822c32cd9a82c238c7bbae84e9327dd997c44986ef9efcb65ae
-cc7e0e8630ee2e0596cf9fd756ef5d5e2ebea1f4825ac2e7456e9cc6ce93adb4
-e2feb60ea8dacd2b2a743a42d42bc4246d51a4c3ce1f416b11069bd5cbc779d5
-25080ad42d3b7d822fb717a3c6596df21312377cd388f52c1feb6e72f1c7fcfa
-2a441ce67d9b002dfb53ab2a80f9c3e4d478d19cd0f2f0b2db7bb114d229874f
-3ec7f915b8b185a5df2507926a96274ecea89c825a017dcc2f6f7af779126be4
-dbc70327d7b6f1290743e9e0db0fa198ab22b11779b7d96c27f4b54fe666b8d4
-54e9dcf8
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/29a.dvi) @start /Fa 59[133 66
-62[133 66 59[53 16[20 1[20 42[0 1[0 7[{}9 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
-31 a Fa(G)60 -18 y(4)p 157 48 2 54 v 138 48 a(\007)p
-270 40 2 52 v 251 40 a(\007)270 1 y(\203)284 0 y(\203)157
--6 y(\204)218 -9 y(\204)p 350 31 2 48 v 331 31 a(\007)p
-411 81 2 59 v 411 23 a(\007)p 491 77 2 63 v 491 15 a(\007)551
-6 y(4)p 570 73 2 67 v -1 w(\007)630 -2 y(4)411 69 y(\204)519
-63 y(\204)411 81 y(\204)519 76 y(\204)p 650 69 2 72 v
-650 -2 a(\007)p 730 44 2 54 v 730 -10 a(\007)823 -2 y(6)p
-843 49 2 52 v(\007)903 6 y(6)843 37 y(\303)858 38 y(\303)730
-43 y(\304)792 46 y(\304)p 923 53 2 48 v 923 6 a(\007)p
-1022 15 2 59 v 1003 15 a(\007)p 1102 23 2 63 v 1083 23
-a(\007)p 1182 31 2 67 v 1163 31 a(\007)1022 -31 y(\304)1130
--26 y(\304)1022 -43 y(\304)1130 -38 y(\304)p 1262 40
-2 72 v 1243 40 a(\007)p 1322 49 2 68 v 1381 48 a(\011)p
-1701 49 V eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 29a.dvi
+%%CreationDate: Sat Feb 22 23:38:43 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 749 482 782
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29a
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.22:2338
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 9 /macron put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a133ea4cfc33df445602c8ed05db64af2979bbaa
+d6f8a6dcf011d8c69d751f3fba44b3ab680802d397e078345991e048ad60922d
+c991d8ee5e95920cb7216135e276a8b553d365176a5ad944da1fc126921ad991
+6fedb9214e9739f78ffa74f2544ee4057e042986620cc3862782c6b8d2e2147d
+a9d1837cc49d394550f36c16468c561eed2fe608c083d40762e5b93c2f6bab4a
+4d0e5be3083f4041fc41832af42dfad3352d2beb76a5d490a3faf8ca0e92d8bf
+922d2dcea718b34f57215c6a95e63dd0c50c10a9b2ed10cc62b94eee91c41aff
+7700001fc8b8380afbbc323f1cefe94877f55f7f61dae9954852c69fd94c850a
+a63301c4509a62ceb04812a24a98175485ea3c4b062ee3b296c584945d650066
+58768e0f9c51aab08f5841071e2e2dad3ed0326cb8291417c3f443780106e429
+5dbbb48daabdb53f593786ad46458bd50295db620af891dcbecf9c54527c2bc7
+45b2a99482cc305ca426b1f27c2172df1242fc7e1754a359616d482453edb02e
+72203af938aa5d501869d4ee44cbf5c86827d38d7733eec11a4f0d5465820715
+aeae954720af8d47c25404980f76656942db23a2b17fbe54f313f33c4779db29
+211d890038f19d10a23cedbe8179ef663a65f3cd4512a5ef8bd4229951fe479c
+04fa3d6f083a53ebc5bc7d0e28117bbd2912216b0010a0ac27237849d5ef2807
+f78dd957bbd44000f3980575b8980cededaf4b068d19fc565d10eb5d0ac64d43
+38d5c4ac9979b8ab56ea0bfb2a38d3d4f926a160e7c92f8f60b246785cb9673c
+f9673729b09c993cd2eef92c202bc26e362e9de1574ee1dd819e57e823be5ed4
+785a2817144896e26f948580756c242319d46ea328dab97f4bb4a460940d6cc7
+0173c87499353904999daa2b700feb70bbcd6e008224debe2fbea66deabe87ef
+df19761d1b39430482e49046aa2c87a10ca526eac6c6dbe9c732bc9e7c281e33
+ba23bd63b63e5e0fbb314978bd7f038685b08911aba0d16026433947f57562f4
+6c773fb6ece855be4f826447ce6a30d638a9e9c38c2855cdaf4cf20abe22afb5
+6231123f2b24182d498f0957fbacede09021523e7d2f4ec0714d22a5997f97d7
+8073ff5cbd13c33c682adf3389b196946a360a64929d86e89f69df548d836925
+a2072b1bf0aa35fcb8d9b564e6480ea040fffc1efe3a9f74a57c37812df93459
+5b3e2dd08d4eb7adadcb6428d35ea80d5114465d1775edbf8f1f9ea4b45e8e70
+746d3916d98b505944857dcf4c90e0b323fcdc4787fc47846932907b8be5d16b
+6b0145bbc587b6d8fa5beb79aec6508bb80f98b6e3acc905696b181a0dc3f590
+9113137c8837753f29c54c6670ef03767f590bc0cdeb10d7f48946d79af324ba
+b96760e67d8cfa2464b12ede7f33ca323cbc4e4fafcc45b962a67731c7ead591
+11d12de79d166a7dee5e72e8df0ed22a2ebaed1177ab830ac73d66c3e8a045ed
+7f7c6a007e56f983f6a1d047982ae814685dda990490aca620b66a84c2657ff7
+ea569c1470e6654009036e99f1ca1c006fdcc6e97cfc8fd1f551138525ab2aaa
+b7511d277a148822c32cd9a82c238c7bbae84e9327dd997c44986ef9efcb65ae
+cc7e0e8630ee2e0596cf9fd756ef5d5e2ebea1f4825ac2e7456e9cc6ce93adb4
+e2feb60ea8dacd2b2a743a42d42bc4246d51a4c3ce1f416b11069bd5cbc779d5
+25080ad42d3b7d822fb717a3c6596df21312377cd388f52c1feb6e72f1c7fcfa
+2a441ce67d9b002dfb53ab2a80f9c3e4d478d19cd0f2f0b2db7bb114d229874f
+3ec7f915b8b185a5df2507926a96274ecea89c825a017dcc2f6f7af779126be4
+dbc70327d7b6f1290743e9e0db0fa198ab22b11779b7d96c27f4b54fe666b8d4
+54e9dcf8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/29a.dvi) @start /Fa 59[133 66
+62[133 66 59[53 16[20 1[20 42[0 1[0 7[{}9 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
+31 a Fa(G)60 -18 y(4)p 157 48 2 54 v 138 48 a(\007)p
+270 40 2 52 v 251 40 a(\007)270 1 y(\203)284 0 y(\203)157
+-6 y(\204)218 -9 y(\204)p 350 31 2 48 v 331 31 a(\007)p
+411 81 2 59 v 411 23 a(\007)p 491 77 2 63 v 491 15 a(\007)551
+6 y(4)p 570 73 2 67 v -1 w(\007)630 -2 y(4)411 69 y(\204)519
+63 y(\204)411 81 y(\204)519 76 y(\204)p 650 69 2 72 v
+650 -2 a(\007)p 730 44 2 54 v 730 -10 a(\007)823 -2 y(6)p
+843 49 2 52 v(\007)903 6 y(6)843 37 y(\303)858 38 y(\303)730
+43 y(\304)792 46 y(\304)p 923 53 2 48 v 923 6 a(\007)p
+1022 15 2 59 v 1003 15 a(\007)p 1102 23 2 63 v 1083 23
+a(\007)p 1182 31 2 67 v 1163 31 a(\007)1022 -31 y(\304)1130
+-26 y(\304)1022 -43 y(\304)1130 -38 y(\304)p 1262 40
+2 72 v 1243 40 a(\007)p 1322 49 2 68 v 1381 48 a(\011)p
+1701 49 V eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29b.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29b.eps
index 7ccc3b1a345..2467088ed7d 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29b.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29b.eps
@@ -1,254 +1,254 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 29b.dvi
-%%CreationDate: Sat Feb 22 23:38:29 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 751 482 785
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29b
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.22:2338
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 9 /macron put
-dup 52 /four put
-dup 53 /five put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a132db9902412754fdd09ec95252cda73da9e914
-71de5d6c3eec8ef7370231d9ef10ce8b4e303cae4e5ea9b44f7bd6ced95facda
-538ba5971866691f71f5ae6e2ed603b7aa25c7a3d074e08a94de14cb27508ea1
-59736969241ad437ddbc7c4519325de152347987b9b8a7cf66573b7a66b7dadf
-335195e19ddd80cdcff6cb61d5ec0d8e0a61b957202905d37f58f66d85ce85ea
-2f711a224e221398f5c04b499b07f05853d00c7917db094e7735068fef3ecc11
-1803763c668eacb4caf134f38f9f372db06a7796f1ac68b3fc101a2171b190e2
-6707cde0e132432280a755b0c739dddd219c960937f1a81a37ae42fdfe66eac3
-686119a230ce8745dea7dbdd93b3a063b5d6bd70b493ff3b25d4c73ade8897d5
-743efb66726e6e208e581d7157af722a21da2d1d57fbc6e04f2c8d9b2c10f64e
-0668181060c36e34bcbe9ed61b2d9da7a45c4cad6a88632163ba369e2d8f209f
-0091b5f689f4a865666b209cfc349e58822acfb97ca8e8b80387080f6c91bf9e
-535d666b606e90b41a3e4e156ced10c0f00bd67b8a7161e3723580b2460dcf4d
-0696ab81db63d4def8776eb9ca8d3b255ea9a06cce0d3b82145f470df25cdf1a
-876b9c097934ce8157e720933853df4db0b641904485115a8d84f0464bf85f64
-c5772736a3fd0af5b029e45c94cb0ad2f3706fabb90a2779a9a87eb15dab00f3
-1e228705551295cebd99cc7e776eca63dd58431782971a24c954eba683736864
-78be9d3d55987950ea25843fb6f82e59a3f0dd68ae8db2731b71cc7e65c64561
-4b9e470f83b4149e9d15590e07bb08f48e16449683c600a3627bbfd82608ca78
-61d43ba60c717374819a22a21b654cc5a46e985f02ce329700c94b963e36763e
-255e8bb6630ecb3ae1f87650e1f53fc9f06d7aee894a3eb0068ba9150e6ac37f
-180e7b0531c1dfe1cc41898658ee34e10b0f76def6cb4ac56b3402917161adcc
-3be6feb1db4d034db51946345fda75fc2017e80eb01e9fd57174fe1caa647241
-496be58efa265613dbec753a4fd0d9dc2b1660e4e9f19c013b48935ddccbc438
-4160fb789f37fc963bed0f13140167360aa0f5dc60dd12859d84f83275a65654
-823325df162cdcc7d273697e79a5f4f65fdccd552a1db9b69a52d362fd7384d0
-59e329a3ab9c7b211e87c254dc5719a4253b70f9971885819a2f678ab7f557e9
-0c4d85f09bfc23718ba6d2d35dcd639df4f59b75de6d447c35df8c5bdbb2c20d
-25d15aa8662e8f1862ce15d2a549212bbd15ffa393538f5edc4e25c41dcb6696
-1b110f4eb63e72fe5611d4350db38d92bf479e55a11bc138a49e6035ad7f63c9
-5bb0866bd9acba515cdcd2e296b4fff7c52cfd26b00aa5ad364e27728c62755a
-90fe11381df6127a5ba377ec576e70010881e8201ce94c0f462f78716d904477
-01699907349198942abc910d60d73e1b80638efb5558ab5700e0baf851b41ab3
-94b4a4c8a8a51dfdcd2a3145ae67cb9a23f54ecf63b1e9b30662e93af42f3e57
-3969fad4980c651cd7db6a8e9523d8123e599d4e09efeb81b902a9c4cfdb2550
-c72f6ed1e028f8e8c60bb3db20f94ae7feda551f67c3425a7cedff4dce91d9eb
-3ae72c413ea79499785f517b68d6aec0cc6c5797083a30534c2803f4843ed368
-241b1b0a67bc009b33b0aa0156c2f8054f55d0e677bee604aa0ecc2690f8257f
-7ee2bed13d7edb0499a7975aec0ba1dc2c382467ff441a4ac11f2c5a3748ff44
-3a362bdbc3e11441e27fde7192dcc8939c05429363af8aacf8e11ea8f9253e6c
-b743b6662a20962daaca2b3b19c1eae566d1606945bb1d879981d81a3eda7d14
-4828da88c03a7593bf2f15963ef2cfca7630d8562319ce3e9f56084c40e4163a
-94e408beeb54722ba7246920628d00964fb8abbde40e66b308f66613d29bd9ae
-469bba73df6d6830dee0cd6507e89b97158ead76ea373101dc5d97621ef7f5c2
-a96cf522299b703549b8709d3bc83ff8e732ee51bb555eeb14aada4bb911e7bf
-f979f6f5ee718d4a491db508402fc08304b05949647d104216ec2136b99733e7
-4e4174cff925f0350fdbc84d49d21fa0ae82b804b274bbec1826b1b6a83d59f6
-f0da988c6ff0eb549117be116e8cb4e10e6fba637e8220b4670848802290e281
-57b27ca793b20dd0c927c7918fb381c48fe1e85aebd9ddeff3e86e583442be69
-358ff04d541a4f8ff7d6cbcd5881517bf7f7fca2d28e0fe505d001f5e433ff9b
-efe4f0bfc7d557d126
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/29b.dvi) @start /Fa 59[133 66
-62[133 66 59[53 16[20 20 20 42[0 1[0 7[{}10 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
-31 a Fa(G)60 -18 y(4)76 6 y(4)93 -27 y(4)110 -2 y(4)126
-23 y(4)143 -10 y(4)p 237 56 2 54 v 218 56 a(\007)p 345
-48 2 52 v 326 48 a(\007)345 9 y(\203)-56 b(\203)237 2
-y(\204)289 0 y(\204)p 420 40 2 47 v 401 40 a(\007)p 496
-31 2 75 v 477 31 a(\007)p 572 23 2 71 v 553 23 a(\007)608
-15 y(4)p 647 15 2 66 v(\007)684 6 y(5)496 -31 y(\204)591
--36 y(\204)496 -43 y(\204)591 -48 y(\204)p 723 6 2 62
-v 704 6 a(\007)p 780 52 2 54 v 780 -2 a(\007)867 6 y(4)p
-887 57 2 52 v(\007)943 15 y(6)887 45 y(\303)898 46 y(\303)780
-52 y(\304)832 54 y(\304)p 963 61 2 47 v 963 15 a(\007)p
-1058 23 2 59 v 1039 23 a(\007)p 1134 31 2 63 v 1115 31
-a(\007)p 1209 40 2 68 v 1190 40 a(\007)1058 -23 y(\304)1153
--18 y(\304)1058 -35 y(\304)1153 -30 y(\304)p 1285 48
-2 72 v 1266 48 a(\007)p 1342 49 2 68 v 1397 56 a(\011)p
-1701 49 V eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 29b.dvi
+%%CreationDate: Sat Feb 22 23:38:29 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 751 482 785
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29b
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.22:2338
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 9 /macron put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a132db9902412754fdd09ec95252cda73da9e914
+71de5d6c3eec8ef7370231d9ef10ce8b4e303cae4e5ea9b44f7bd6ced95facda
+538ba5971866691f71f5ae6e2ed603b7aa25c7a3d074e08a94de14cb27508ea1
+59736969241ad437ddbc7c4519325de152347987b9b8a7cf66573b7a66b7dadf
+335195e19ddd80cdcff6cb61d5ec0d8e0a61b957202905d37f58f66d85ce85ea
+2f711a224e221398f5c04b499b07f05853d00c7917db094e7735068fef3ecc11
+1803763c668eacb4caf134f38f9f372db06a7796f1ac68b3fc101a2171b190e2
+6707cde0e132432280a755b0c739dddd219c960937f1a81a37ae42fdfe66eac3
+686119a230ce8745dea7dbdd93b3a063b5d6bd70b493ff3b25d4c73ade8897d5
+743efb66726e6e208e581d7157af722a21da2d1d57fbc6e04f2c8d9b2c10f64e
+0668181060c36e34bcbe9ed61b2d9da7a45c4cad6a88632163ba369e2d8f209f
+0091b5f689f4a865666b209cfc349e58822acfb97ca8e8b80387080f6c91bf9e
+535d666b606e90b41a3e4e156ced10c0f00bd67b8a7161e3723580b2460dcf4d
+0696ab81db63d4def8776eb9ca8d3b255ea9a06cce0d3b82145f470df25cdf1a
+876b9c097934ce8157e720933853df4db0b641904485115a8d84f0464bf85f64
+c5772736a3fd0af5b029e45c94cb0ad2f3706fabb90a2779a9a87eb15dab00f3
+1e228705551295cebd99cc7e776eca63dd58431782971a24c954eba683736864
+78be9d3d55987950ea25843fb6f82e59a3f0dd68ae8db2731b71cc7e65c64561
+4b9e470f83b4149e9d15590e07bb08f48e16449683c600a3627bbfd82608ca78
+61d43ba60c717374819a22a21b654cc5a46e985f02ce329700c94b963e36763e
+255e8bb6630ecb3ae1f87650e1f53fc9f06d7aee894a3eb0068ba9150e6ac37f
+180e7b0531c1dfe1cc41898658ee34e10b0f76def6cb4ac56b3402917161adcc
+3be6feb1db4d034db51946345fda75fc2017e80eb01e9fd57174fe1caa647241
+496be58efa265613dbec753a4fd0d9dc2b1660e4e9f19c013b48935ddccbc438
+4160fb789f37fc963bed0f13140167360aa0f5dc60dd12859d84f83275a65654
+823325df162cdcc7d273697e79a5f4f65fdccd552a1db9b69a52d362fd7384d0
+59e329a3ab9c7b211e87c254dc5719a4253b70f9971885819a2f678ab7f557e9
+0c4d85f09bfc23718ba6d2d35dcd639df4f59b75de6d447c35df8c5bdbb2c20d
+25d15aa8662e8f1862ce15d2a549212bbd15ffa393538f5edc4e25c41dcb6696
+1b110f4eb63e72fe5611d4350db38d92bf479e55a11bc138a49e6035ad7f63c9
+5bb0866bd9acba515cdcd2e296b4fff7c52cfd26b00aa5ad364e27728c62755a
+90fe11381df6127a5ba377ec576e70010881e8201ce94c0f462f78716d904477
+01699907349198942abc910d60d73e1b80638efb5558ab5700e0baf851b41ab3
+94b4a4c8a8a51dfdcd2a3145ae67cb9a23f54ecf63b1e9b30662e93af42f3e57
+3969fad4980c651cd7db6a8e9523d8123e599d4e09efeb81b902a9c4cfdb2550
+c72f6ed1e028f8e8c60bb3db20f94ae7feda551f67c3425a7cedff4dce91d9eb
+3ae72c413ea79499785f517b68d6aec0cc6c5797083a30534c2803f4843ed368
+241b1b0a67bc009b33b0aa0156c2f8054f55d0e677bee604aa0ecc2690f8257f
+7ee2bed13d7edb0499a7975aec0ba1dc2c382467ff441a4ac11f2c5a3748ff44
+3a362bdbc3e11441e27fde7192dcc8939c05429363af8aacf8e11ea8f9253e6c
+b743b6662a20962daaca2b3b19c1eae566d1606945bb1d879981d81a3eda7d14
+4828da88c03a7593bf2f15963ef2cfca7630d8562319ce3e9f56084c40e4163a
+94e408beeb54722ba7246920628d00964fb8abbde40e66b308f66613d29bd9ae
+469bba73df6d6830dee0cd6507e89b97158ead76ea373101dc5d97621ef7f5c2
+a96cf522299b703549b8709d3bc83ff8e732ee51bb555eeb14aada4bb911e7bf
+f979f6f5ee718d4a491db508402fc08304b05949647d104216ec2136b99733e7
+4e4174cff925f0350fdbc84d49d21fa0ae82b804b274bbec1826b1b6a83d59f6
+f0da988c6ff0eb549117be116e8cb4e10e6fba637e8220b4670848802290e281
+57b27ca793b20dd0c927c7918fb381c48fe1e85aebd9ddeff3e86e583442be69
+358ff04d541a4f8ff7d6cbcd5881517bf7f7fca2d28e0fe505d001f5e433ff9b
+efe4f0bfc7d557d126
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/29b.dvi) @start /Fa 59[133 66
+62[133 66 59[53 16[20 20 20 42[0 1[0 7[{}10 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
+31 a Fa(G)60 -18 y(4)76 6 y(4)93 -27 y(4)110 -2 y(4)126
+23 y(4)143 -10 y(4)p 237 56 2 54 v 218 56 a(\007)p 345
+48 2 52 v 326 48 a(\007)345 9 y(\203)-56 b(\203)237 2
+y(\204)289 0 y(\204)p 420 40 2 47 v 401 40 a(\007)p 496
+31 2 75 v 477 31 a(\007)p 572 23 2 71 v 553 23 a(\007)608
+15 y(4)p 647 15 2 66 v(\007)684 6 y(5)496 -31 y(\204)591
+-36 y(\204)496 -43 y(\204)591 -48 y(\204)p 723 6 2 62
+v 704 6 a(\007)p 780 52 2 54 v 780 -2 a(\007)867 6 y(4)p
+887 57 2 52 v(\007)943 15 y(6)887 45 y(\303)898 46 y(\303)780
+52 y(\304)832 54 y(\304)p 963 61 2 47 v 963 15 a(\007)p
+1058 23 2 59 v 1039 23 a(\007)p 1134 31 2 63 v 1115 31
+a(\007)p 1209 40 2 68 v 1190 40 a(\007)1058 -23 y(\304)1153
+-18 y(\304)1058 -35 y(\304)1153 -30 y(\304)p 1285 48
+2 72 v 1266 48 a(\007)p 1342 49 2 68 v 1397 56 a(\011)p
+1701 49 V eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29c.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29c.eps
index 15589b9c8ba..9f2d610c032 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29c.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/29c.eps
@@ -1,245 +1,245 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 29c.dvi
-%%CreationDate: Sat Feb 22 23:38:22 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 751 482 783
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29c
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.22:2338
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 9 /macron put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a133ea4cfc33df445602c8ed05db64af2979bbaa
-d6f8a6dcf011d8c69d751f3fba44b3ab680802d397e078345991e048ad60922d
-c991d8ee5e95920cb7216135e276a8b553d365176a5ad944da1fc126921ad991
-6fedb9214e9739f78ffa74f2544ee4057e042986620cc3862782c6b8d2e2147d
-a9d1837cc49d394550f36c16468c561eed2fe608c083d40762e5b93c2f6bab4a
-4d0e5be3083f4041fc41832af42dfad3352d2beb76a5d490a3faf8ca0e92d8bf
-922d2dcea718b34f57215c6a95e63dd0c50c10a9b2ed10cc62b94eee91c41aff
-7700001fc8b8380afbbc323f1cefe94877f55f7f61dae9954852c69fd94c850a
-a63301c4509a62ceb04812a24a98175485ea3c4b062ee3b296c584945d650066
-58768e0f9c51aab08f5841071e2e2dad3ed0326cb8291417c3f443780106e429
-5dbbb48daabdb53f593786ad46458bd50295db620af891dcbecf9c54527c2bc7
-45b2a99482cc305ca426b1f27c2172df1242fc7e1754a359616d482453edb02e
-72203af938aa5d501869d4ee44cbf5c86827d38d7733eec11a4f0d5465820715
-aeae954720af8d47c25404980f76656942db23a2b17fbe54f313f33c4779db29
-211d890038f19d10a23cedbe8179ef663a65f3cd4512a5ef8bd4229951fe479c
-04fa3d6f083a53ebc5bc7d0e28117bbd2912216b0010a0ac27237849d5ef2807
-f78dd957bbd44000f3980575b8980cededaf4b068d19fc565d10eb5d0ac64d43
-38d5c4ac9979b8ab56ea0bfb2a38d3d4f926a160e7c92f8f60b246785cb9673c
-f9673729b09c993cd2eef92c202bc26e362e9de1574ee1dd819e57e823be5ed4
-785a2817144896e26f948580756c242319d46ea328dab97f4bb4a460940d6cc7
-0173c87499353904999daa2b700feb70bbcd6e008224debe2fbea66deabe87ef
-df19761d1b39430482e49046aa2c87a10ca526eac6c6dbe9c732bc9e7c281e33
-ba23bd63b63e5e0fbb314978bd7f038685b08911aba0d16026433947f57562f4
-6c773fb6ece855be4f826447ce6a30d638a9e9c38c2855cdaf4cf20abe22afb5
-6231123f2b24182d498f0957fbacede09021523e7d2f4ec0714d22a5997f97d7
-8073ff5cbd13c33c682adf3389b196946a360a64929d86e89f69df548d836925
-a2072b1bf0aa35fcb8d9b564e6480ea040fffc1efe3a9f74a57c37812df93459
-5b3e2dd08d4eb7adadcb6428d35ea80d5114465d1775edbf8f1f9ea4b45e8e70
-746d3916d98b505944857dcf4c90e0b323fcdc4787fc47846932907b8be5d16b
-6b0145bbc587b6d8fa5beb79aec6508bb80f98b6e3acc905696b181a0dc3f590
-9113137c8837753f29c54c6670ef03767f590bc0cdeb10d7f48946d79af324ba
-b96760e67d8cfa2464b12ede7f33ca323cbc4e4fafcc45b962a67731c7ead591
-11d12de79d166a7dee5e72e8df0ed22a2ebaed1177ab830ac73d66c3e8a045ed
-7f7c6a007e56f983f6a1d047982ae814685dda990490aca620b66a84c2657ff7
-ea569c1470e6654009036e99f1ca1c006fdcc6e97cfc8fd1f551138525ab2aaa
-b7511d277a148822c32cd9a82c238c7bbae84e9327dd997c44986ef9efcb65ae
-cc7e0e8630ee2e0596cf9fd756ef5d5e2ebea1f4825ac2e7456e9cc6ce93adb4
-e2feb60ea8dacd2b2a743a42d42bc4246d51a4c3ce1f416b11069bd5cbc779d5
-25080ad42d3b7d822fb717a3c6596df21312377cd388f52c1feb6e72f1c7fcfa
-2a441ce67d9b002dfb53ab2a80f9c3e4d478d19cd0f2f0b2db7bb114d229874f
-3ec7f915b8b185a5df2507926a96274ecea89c825a017dcc2f6f7af779126be4
-dbc70327d7b6f1290743e9e0db0fa198ab22b11779b7d96c27f4b54fe666b8d4
-54e9dcf8
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/29c.dvi) @start /Fa 59[133 66
-62[133 66 59[53 16[20 1[20 42[0 1[0 7[{}9 66.4176 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
-31 a Fa(G)60 -18 y(4)76 6 y(4)93 -27 y(4)110 -2 y(4)p
-181 65 30 2 v 205 64 2 54 v 186 64 a(\007)p 315 56 2
-52 v 296 56 a(\007)315 18 y(\203)327 17 y(\203)205 11
-y(\204)261 8 y(\204)p 392 48 2 47 v 373 48 a(\007)p 470
-40 2 75 v 451 40 a(\007)p 547 31 2 71 v 528 31 a(\007)585
-23 y(4)p 624 23 2 66 v(\007)663 15 y(4)470 -23 y(\204)570
--28 y(\204)470 -35 y(\204)570 -40 y(\204)p 702 15 2 62
-v 683 15 a(\007)p 760 60 2 54 v 760 6 a(\007)850 15 y(6)p
-870 66 2 52 v(\007)927 23 y(6)870 53 y(\303)883 54 y(\303)760
-61 y(\304)817 63 y(\304)p 947 70 2 47 v 947 23 a(\007)p
-1044 31 2 59 v 1025 31 a(\007)p 1121 40 2 63 v 1102 40
-a(\007)p 1198 48 2 67 v 1179 48 a(\007)1044 -14 y(\304)1144
--9 y(\304)1044 -27 y(\304)1144 -22 y(\304)p 1276 56 2
-72 v 1257 56 a(\007)p 1334 49 2 68 v 1385 65 35 2 v 1390
-64 a(\011)p 1701 49 2 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 29c.dvi
+%%CreationDate: Sat Feb 22 23:38:22 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 751 482 783
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 29c
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.22:2338
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 9 /macron put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a133ea4cfc33df445602c8ed05db64af2979bbaa
+d6f8a6dcf011d8c69d751f3fba44b3ab680802d397e078345991e048ad60922d
+c991d8ee5e95920cb7216135e276a8b553d365176a5ad944da1fc126921ad991
+6fedb9214e9739f78ffa74f2544ee4057e042986620cc3862782c6b8d2e2147d
+a9d1837cc49d394550f36c16468c561eed2fe608c083d40762e5b93c2f6bab4a
+4d0e5be3083f4041fc41832af42dfad3352d2beb76a5d490a3faf8ca0e92d8bf
+922d2dcea718b34f57215c6a95e63dd0c50c10a9b2ed10cc62b94eee91c41aff
+7700001fc8b8380afbbc323f1cefe94877f55f7f61dae9954852c69fd94c850a
+a63301c4509a62ceb04812a24a98175485ea3c4b062ee3b296c584945d650066
+58768e0f9c51aab08f5841071e2e2dad3ed0326cb8291417c3f443780106e429
+5dbbb48daabdb53f593786ad46458bd50295db620af891dcbecf9c54527c2bc7
+45b2a99482cc305ca426b1f27c2172df1242fc7e1754a359616d482453edb02e
+72203af938aa5d501869d4ee44cbf5c86827d38d7733eec11a4f0d5465820715
+aeae954720af8d47c25404980f76656942db23a2b17fbe54f313f33c4779db29
+211d890038f19d10a23cedbe8179ef663a65f3cd4512a5ef8bd4229951fe479c
+04fa3d6f083a53ebc5bc7d0e28117bbd2912216b0010a0ac27237849d5ef2807
+f78dd957bbd44000f3980575b8980cededaf4b068d19fc565d10eb5d0ac64d43
+38d5c4ac9979b8ab56ea0bfb2a38d3d4f926a160e7c92f8f60b246785cb9673c
+f9673729b09c993cd2eef92c202bc26e362e9de1574ee1dd819e57e823be5ed4
+785a2817144896e26f948580756c242319d46ea328dab97f4bb4a460940d6cc7
+0173c87499353904999daa2b700feb70bbcd6e008224debe2fbea66deabe87ef
+df19761d1b39430482e49046aa2c87a10ca526eac6c6dbe9c732bc9e7c281e33
+ba23bd63b63e5e0fbb314978bd7f038685b08911aba0d16026433947f57562f4
+6c773fb6ece855be4f826447ce6a30d638a9e9c38c2855cdaf4cf20abe22afb5
+6231123f2b24182d498f0957fbacede09021523e7d2f4ec0714d22a5997f97d7
+8073ff5cbd13c33c682adf3389b196946a360a64929d86e89f69df548d836925
+a2072b1bf0aa35fcb8d9b564e6480ea040fffc1efe3a9f74a57c37812df93459
+5b3e2dd08d4eb7adadcb6428d35ea80d5114465d1775edbf8f1f9ea4b45e8e70
+746d3916d98b505944857dcf4c90e0b323fcdc4787fc47846932907b8be5d16b
+6b0145bbc587b6d8fa5beb79aec6508bb80f98b6e3acc905696b181a0dc3f590
+9113137c8837753f29c54c6670ef03767f590bc0cdeb10d7f48946d79af324ba
+b96760e67d8cfa2464b12ede7f33ca323cbc4e4fafcc45b962a67731c7ead591
+11d12de79d166a7dee5e72e8df0ed22a2ebaed1177ab830ac73d66c3e8a045ed
+7f7c6a007e56f983f6a1d047982ae814685dda990490aca620b66a84c2657ff7
+ea569c1470e6654009036e99f1ca1c006fdcc6e97cfc8fd1f551138525ab2aaa
+b7511d277a148822c32cd9a82c238c7bbae84e9327dd997c44986ef9efcb65ae
+cc7e0e8630ee2e0596cf9fd756ef5d5e2ebea1f4825ac2e7456e9cc6ce93adb4
+e2feb60ea8dacd2b2a743a42d42bc4246d51a4c3ce1f416b11069bd5cbc779d5
+25080ad42d3b7d822fb717a3c6596df21312377cd388f52c1feb6e72f1c7fcfa
+2a441ce67d9b002dfb53ab2a80f9c3e4d478d19cd0f2f0b2db7bb114d229874f
+3ec7f915b8b185a5df2507926a96274ecea89c825a017dcc2f6f7af779126be4
+dbc70327d7b6f1290743e9e0db0fa198ab22b11779b7d96c27f4b54fe666b8d4
+54e9dcf8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/29c.dvi) @start /Fa 59[133 66
+62[133 66 59[53 16[20 1[20 42[0 1[0 7[{}9 66.4176 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 5 -18 1698 2 v 5 -1 V 5 16 V 5 32 V 5 49 V 5
+31 a Fa(G)60 -18 y(4)76 6 y(4)93 -27 y(4)110 -2 y(4)p
+181 65 30 2 v 205 64 2 54 v 186 64 a(\007)p 315 56 2
+52 v 296 56 a(\007)315 18 y(\203)327 17 y(\203)205 11
+y(\204)261 8 y(\204)p 392 48 2 47 v 373 48 a(\007)p 470
+40 2 75 v 451 40 a(\007)p 547 31 2 71 v 528 31 a(\007)585
+23 y(4)p 624 23 2 66 v(\007)663 15 y(4)470 -23 y(\204)570
+-28 y(\204)470 -35 y(\204)570 -40 y(\204)p 702 15 2 62
+v 683 15 a(\007)p 760 60 2 54 v 760 6 a(\007)850 15 y(6)p
+870 66 2 52 v(\007)927 23 y(6)870 53 y(\303)883 54 y(\303)760
+61 y(\304)817 63 y(\304)p 947 70 2 47 v 947 23 a(\007)p
+1044 31 2 59 v 1025 31 a(\007)p 1121 40 2 63 v 1102 40
+a(\007)p 1198 48 2 67 v 1179 48 a(\007)1044 -14 y(\304)1144
+-9 y(\304)1044 -27 y(\304)1144 -22 y(\304)p 1276 56 2
+72 v 1257 56 a(\007)p 1334 49 2 68 v 1385 65 35 2 v 1390
+64 a(\011)p 1701 49 2 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/34.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/34.eps
index 820ababec91..06c2ce8192c 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/34.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/34.eps
@@ -1,239 +1,239 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: 34.dvi
-%%CreationDate: Mon Mar 3 23:38:49 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 751 482 782
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 34
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.03.03:2338
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 8 /breve put
-dup 26 /dotlessj put
-dup 55 /seven put
-dup 71 /G put
-dup 83 /S put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a7faffefb97efbb37d05ea924290774932022a9f
-32c43eb83beedb107f0a4307d11882899f0047e2603fc7760d0eeb25ed9f8566
-ef59439a069c28cbb4bdb4fc8845d3d6d74416ab572d95ffab0e64e1f759a3d6
-64060df5933ded59a43ab87815c6a96d5442754738352084e394c1859f0dbc46
-e29400b167fda39535b3504cb221c9056d50b3b6d07dd2282c1ba62fe3758e59
-444a7853ab206a712a48700cdc192edafbfc1f379d3ccfcfb357e201a9ccdaf3
-46feb251eb3ab6dc1c80f2b2bb2c7168306e308998485403d71c5590bd10c18e
-72165a7579d38680075c4105cfbc1772c95875dbf42f0aeeae20a7c7c277ea22
-f05d9120182e0b22eb091e6d603fa61a0e85759a3876d4cd42ed49530a04629d
-a4fb688bb1dba5b64b317eab0783ebfa95e57daf120275b8107e48b0364b4ee3
-15ccdc1ba918408b74a118064460f85a0c1d32f0fdefe9172c9f3e25487d1f5b
-c337b488e7710129481f8590b1007d64783d0a1364c3dd5f3e48d030b3e62443
-2ccdd0f5a485afa886adc91c5453c7d9880bae13d4d292a322bd537f94beaef5
-a36f8e552089054f02f5d3062f304c686ea611c3dbe99837977c10eb501bdcfa
-8742d144ca7861ecd4d4f4c5209359be3e521ff0b548500a07699a30a607ad17
-cb441dd6fd65aa1ea6870cf2b2724d695f7a3f582f63c9d6628b574021e6baf6
-d5be15fc22f9f090313b2a1babd0823431f1192bb659a257677a8b1e94d32e8e
-d3a9bfd2e32f55f43a1dbdc005eab1ace3f02497c937f8facf9943cfc86213c7
-a8bc778f1e9c04c75e9811e092db0c7dab182d9cdc6201fa6929704725ceb79f
-0be6cba6bbff47653e01db2e054f3e9379df78ef73c81d0476f6768c863d1621
-2343613c0752de84d3140e7d2ca6403b48b39102837fff9fb9c1d88986850a59
-3108f7a80f64329312be03babe9b78feb07afcfa903d1fb79e224d48bce62c85
-254e3981731da53ab364084e8d7f4c2953b45de4caeb8067027a821336d7e3e1
-caf5a04b3474ebf3f7ce451cbee3cbd6869a396199e7ebba7c3b0c41178cfc39
-1bc57e1c22270a57a89e2ec763a9496c5bdd62ddea5f4798bffa9f17a2ac92f8
-3e4a64bf6dfaf92ca70f71f1eb90df6ab3d7dacd1353acc61a07bc012498eaaf
-18c4e9de5a50a8266ed8ffcaa93511ebcca84d548f69fc3caf0ee669d88c2f86
-75ea410076e1e372ff7d29989c48aa874d9945191286c88085337c0d8e4866a5
-296b35e847847898f180b90d1147e2d7525448a0d3d9ae2c0f763f805b0123ef
-ad90c8c3161b8935adcec385c13c64c08e32974ee6767f79f10d4d1a8de3c705
-a17a4b911bad66e23ae24bac77ea1779414d9e63080128ce1a4f498483755b82
-793b63398819034e420d53987f3e40bca32eb66c91546883d3e79c6abc4ce1cc
-b5f176aa700760c9a3bc9215477781ff1e31ca00b61b3ca4
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/34.dvi) @start /Fa 172[33 11[53
-15[0 28[0 17[0 0 7[{}6 66.4176 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1885 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fa(G)-122 15 y(S)p -61 49 10 68
-v -46 49 2 68 v 54 w(7)p -17 64 2 59 v -17 6 a(\007)p
-33 56 V 33 -2 a(\007)p 82 48 V 82 -10 a(\007)p 132 64
-V 132 6 a(\007)p 182 49 2 68 v 201 64 2 59 v 69 w(\007)p
-251 56 V 251 -2 a(\007)p 301 48 V 301 -10 a(\007)p 351
-64 V 351 6 a(\007)p 400 49 2 68 v 420 48 2 59 v 420 -10
-a(\007)p 469 40 V 469 -18 a(\007)519 -27 y(\032)p 519
-31 V(\010)p 590 49 2 68 v 609 48 2 59 v 609 -10 a(\007)p
-659 40 V 659 -18 a(\007)708 -27 y(\032)p 708 31 V(\010)p
-779 49 2 68 v 798 27 2 54 v 90 w(\007)p 828 -34 30 2
-v 833 27 2 63 v 833 -35 a(\007)p 868 27 2 54 v 868 -27
-a(\007)p 798 31 108 8 v 903 27 2 46 v 903 -18 a(\007)p
-939 48 2 59 v 939 -10 a(\007)p 988 64 V 988 6 a(\007)p
-1038 49 2 68 v 1057 27 2 54 v 1057 -27 a(\007)p 1088
--34 30 2 v 1093 27 2 63 v 1093 -35 a(\007)p 1128 27 2
-54 v 1128 -27 a(\007)p 1057 31 108 8 v 1163 27 2 46 v
-1163 -18 a(\007)p 1198 48 2 59 v 1198 -10 a(\007)p 1248
-64 V 1248 6 a(\007)p 1298 49 2 68 v 1317 64 2 59 v 69
-w(\007)p 1386 31 V 1367 31 a(\007)1417 6 y(\032)p 1417
-64 V(\010)p 1487 49 2 68 v 1506 64 2 59 v 89 w(\007)p
-1575 31 V 1556 31 a(\007)1606 6 y(\032)p 1606 64 V(\010)1676
-15 y(7)p 1686 49 2 68 v 1693 49 10 68 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: 34.dvi
+%%CreationDate: Mon Mar 3 23:38:49 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 751 482 782
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE 34
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.03.03:2338
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 8 /breve put
+dup 26 /dotlessj put
+dup 55 /seven put
+dup 71 /G put
+dup 83 /S put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a7faffefb97efbb37d05ea924290774932022a9f
+32c43eb83beedb107f0a4307d11882899f0047e2603fc7760d0eeb25ed9f8566
+ef59439a069c28cbb4bdb4fc8845d3d6d74416ab572d95ffab0e64e1f759a3d6
+64060df5933ded59a43ab87815c6a96d5442754738352084e394c1859f0dbc46
+e29400b167fda39535b3504cb221c9056d50b3b6d07dd2282c1ba62fe3758e59
+444a7853ab206a712a48700cdc192edafbfc1f379d3ccfcfb357e201a9ccdaf3
+46feb251eb3ab6dc1c80f2b2bb2c7168306e308998485403d71c5590bd10c18e
+72165a7579d38680075c4105cfbc1772c95875dbf42f0aeeae20a7c7c277ea22
+f05d9120182e0b22eb091e6d603fa61a0e85759a3876d4cd42ed49530a04629d
+a4fb688bb1dba5b64b317eab0783ebfa95e57daf120275b8107e48b0364b4ee3
+15ccdc1ba918408b74a118064460f85a0c1d32f0fdefe9172c9f3e25487d1f5b
+c337b488e7710129481f8590b1007d64783d0a1364c3dd5f3e48d030b3e62443
+2ccdd0f5a485afa886adc91c5453c7d9880bae13d4d292a322bd537f94beaef5
+a36f8e552089054f02f5d3062f304c686ea611c3dbe99837977c10eb501bdcfa
+8742d144ca7861ecd4d4f4c5209359be3e521ff0b548500a07699a30a607ad17
+cb441dd6fd65aa1ea6870cf2b2724d695f7a3f582f63c9d6628b574021e6baf6
+d5be15fc22f9f090313b2a1babd0823431f1192bb659a257677a8b1e94d32e8e
+d3a9bfd2e32f55f43a1dbdc005eab1ace3f02497c937f8facf9943cfc86213c7
+a8bc778f1e9c04c75e9811e092db0c7dab182d9cdc6201fa6929704725ceb79f
+0be6cba6bbff47653e01db2e054f3e9379df78ef73c81d0476f6768c863d1621
+2343613c0752de84d3140e7d2ca6403b48b39102837fff9fb9c1d88986850a59
+3108f7a80f64329312be03babe9b78feb07afcfa903d1fb79e224d48bce62c85
+254e3981731da53ab364084e8d7f4c2953b45de4caeb8067027a821336d7e3e1
+caf5a04b3474ebf3f7ce451cbee3cbd6869a396199e7ebba7c3b0c41178cfc39
+1bc57e1c22270a57a89e2ec763a9496c5bdd62ddea5f4798bffa9f17a2ac92f8
+3e4a64bf6dfaf92ca70f71f1eb90df6ab3d7dacd1353acc61a07bc012498eaaf
+18c4e9de5a50a8266ed8ffcaa93511ebcca84d548f69fc3caf0ee669d88c2f86
+75ea410076e1e372ff7d29989c48aa874d9945191286c88085337c0d8e4866a5
+296b35e847847898f180b90d1147e2d7525448a0d3d9ae2c0f763f805b0123ef
+ad90c8c3161b8935adcec385c13c64c08e32974ee6767f79f10d4d1a8de3c705
+a17a4b911bad66e23ae24bac77ea1779414d9e63080128ce1a4f498483755b82
+793b63398819034e420d53987f3e40bca32eb66c91546883d3e79c6abc4ce1cc
+b5f176aa700760c9a3bc9215477781ff1e31ca00b61b3ca4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/34.dvi) @start /Fa 172[33 11[53
+15[0 28[0 17[0 0 7[{}6 66.4176 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1885 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fa(G)-122 15 y(S)p -61 49 10 68
+v -46 49 2 68 v 54 w(7)p -17 64 2 59 v -17 6 a(\007)p
+33 56 V 33 -2 a(\007)p 82 48 V 82 -10 a(\007)p 132 64
+V 132 6 a(\007)p 182 49 2 68 v 201 64 2 59 v 69 w(\007)p
+251 56 V 251 -2 a(\007)p 301 48 V 301 -10 a(\007)p 351
+64 V 351 6 a(\007)p 400 49 2 68 v 420 48 2 59 v 420 -10
+a(\007)p 469 40 V 469 -18 a(\007)519 -27 y(\032)p 519
+31 V(\010)p 590 49 2 68 v 609 48 2 59 v 609 -10 a(\007)p
+659 40 V 659 -18 a(\007)708 -27 y(\032)p 708 31 V(\010)p
+779 49 2 68 v 798 27 2 54 v 90 w(\007)p 828 -34 30 2
+v 833 27 2 63 v 833 -35 a(\007)p 868 27 2 54 v 868 -27
+a(\007)p 798 31 108 8 v 903 27 2 46 v 903 -18 a(\007)p
+939 48 2 59 v 939 -10 a(\007)p 988 64 V 988 6 a(\007)p
+1038 49 2 68 v 1057 27 2 54 v 1057 -27 a(\007)p 1088
+-34 30 2 v 1093 27 2 63 v 1093 -35 a(\007)p 1128 27 2
+54 v 1128 -27 a(\007)p 1057 31 108 8 v 1163 27 2 46 v
+1163 -18 a(\007)p 1198 48 2 59 v 1198 -10 a(\007)p 1248
+64 V 1248 6 a(\007)p 1298 49 2 68 v 1317 64 2 59 v 69
+w(\007)p 1386 31 V 1367 31 a(\007)1417 6 y(\032)p 1417
+64 V(\010)p 1487 49 2 68 v 1506 64 2 59 v 89 w(\007)p
+1575 31 V 1556 31 a(\007)1606 6 y(\032)p 1606 64 V(\010)1676
+15 y(7)p 1686 49 2 68 v 1693 49 10 68 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Donjump.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Donjump.eps
new file mode 100644
index 00000000000..7032dea18b3
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Donjump.eps
@@ -0,0 +1,394 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.96dev Copyright 2007 Radical Eye Software
+%%Title: Donjump.dvi
+%%CreationDate: Tue Jan 24 21:36:19 2012
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 27 740 369 779
+%%DocumentFonts: CMBX12
+%%DocumentPaperSizes: a4
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\Programme\MikTeX_2.7\miktex\bin\dvips.exe
+%+ Donjump.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2012.01.24:2136
+%%BeginProcSet: tex.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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}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]/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[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
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE287EF5CB
+4AFBF055F1F20E242E54A1687053562E48284AA44FD71844BE368A19A186D68C
+2EF25174E1C39A8F6412B7634F31D08A693EE59FABA56B8C51A7BCE95F9E2211
+66F9D77A2EDDA79ED4E4E06DA0D31B7DD5D94288B281913A1D0896BE5D05DFB9
+EA8782194FB56DC85CE99FFE52158B222780F763C3EA599CF3B6B1C7BB8A9126
+A99FCE0DB02761773793827DA26C9E66FC5EBF64496813E2E2F0B3E31D30672B
+D77D8154C19F2CE0FB9CBA05167FB08D991B55296268659ED99C6DAE848B8E60
+415A46507A8A5968530F1C469E5CC29F0BAF6BF13CBF747757BB44D7F70326E4
+A2B863B0ACE913EDDF42E0A4BDA6F0D5C9ECCF062DD9FC2E39ACFC235F6BA531
+734F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39139632 55387786 1000 600 600 (Donjump.dvi)
+@start /Fa 203[67 52[{}1 119.552 /CMBX12 rf
+%DVIPSBitmapFont: Fb musix20 20 7
+/Fb 7 197 df<07801FE03FF07FF87FF8FFFCFFFCFFFCFFFC7FF87FF83FF01FE007800E
+0E3C8600>0 D<0000007FF80000000007FFFF000000003FFFFFC0000000FFFFFFF00000
+03FFFFFFFC00000FFFFFFFFE00001FFFFFFFFF00007FFFFFFFFF8000FFFFFFFFFFC001FF
+FFFFFFFFC003FFFFFFFFFFE007FFFFFFFFFFE00FFFFFFFFFFFF00FFFFFFFFFFFF01FFFFF
+FFFFFFF03FFFFFFFFFFFF03FFFFFFFFFFFF07FFFFFFFFFFFF07FFFFFFFFFFFF07FFFFFFF
+FFFFF0FFFFFFFFFFFFE0FFFFFFFFFFFFE0FFFFFFFFFFFFE0FFFFFFFFFFFFC0FFFFFFFFFF
+FFC0FFFFFFFFFFFF80FFFFFFFFFFFF00FFFFFFFFFFFF007FFFFFFFFFFE007FFFFFFFFFFC
+003FFFFFFFFFF8003FFFFFFFFFF0001FFFFFFFFFE0000FFFFFFFFF800007FFFFFFFF0000
+03FFFFFFFC000000FFFFFFF00000003FFFFFC00000000FFFFE0000000001FFE000000034
+28819300>7 D<0000007FF00000000007FFFE000000003FFFFF80000000FFFFFFE00000
+03FFFFFFF800000FFFFFFFFC00001FFFFFFFFE00007FFFFFFFFF0000FFFFFFFFFF8001FF
+FFFF801F8003FFFFF80007C007FFFFC00003C00FFFFE000001E00FFFF0000001E01FFFC0
+000000E01FFE00000000F03FF800000000F03FE000000000F07FC000000000F07F000000
+0000F07E0000000001F0FC0000000001F0F80000000003F0F80000000007E0F000000000
+0FE0F0000000001FE0F0000000007FC0F000000000FFC0F000000003FF80700000000FFF
+80700000007FFF0078000001FFFF003800000FFFFE003C00007FFFFC001E0003FFFFF800
+1F803FFFFFF0000FFFFFFFFFE00007FFFFFFFFC00003FFFFFFFF000001FFFFFFFE000000
+7FFFFFF80000003FFFFFC000000007FFFE00000000007FE0000000342C819500>I[<8000
+0000008000000000C000000000C000000000E000000000E000000000F000000000F00000
+0000F800000000F800000000FC00000000FC00000000FE00000000FE00000000FF000000
+00FF80000000FF80000000FFC0000000FFC0000000FFE0000000FFF0000000FFF0000000
+FFF8000000FFF8000000FFFC000000FFFE000000FFFE000000FFFF000000FFFF000000FF
+FF800000FFFFC00000FFFFC00000FFFFE00000FFFFF00000FFFFF00000FFFFF80000FFFF
+FC0000FFFFFC0000FFFFFE0000FFFFFF0000FFFFFF00007FFFFF80000FFFFFC00003FFFF
+C00000FFFFE000003FFFF000000FFFF0000007FFF8000001FFF8000000FFFC0000007FFE
+0000001FFE0000000FFF00000007FF00000003FF80000001FF80000000FFC00000007FC0
+0000003FE00000003FE00000001FF00000000FF00000000FF000000007F800000003F800
+000003F800000001FC00000001FC00000000FC00000000FE00000000FE000000007E0000
+00007E000000007E000000003F000000003F000000003F000000003F000000001F000000
+001F000000001F000000001F000000001F000000001F000000001F000000001F00000000
+1F000000001F000000001E000000001E000000001E000000001E000000003E000000003E
+000000003C000000003C000000003C000000003C00000000780000000078000000007800
+0000007000000000F000000000E000000000E000000001E000000001C000000001C00000
+0003800000000380000000070000000006000000000E000000000C000000001800000000
+180000000030000000002000000000400000000040000000008000000001000000000200
+000000040000>40 124 128 272 0 40 D[<000000000000000E00000000000000000000
+00003F0000000000000000000000007F800000000000000000000000FFC0000000000000
+0000000001FFC00000000000000000000003FFE00000000000000000000007FFE0000000
+0000000000000007FFF0000000000000000000000FFFF0000000000000000000001FFFF8
+000000000000000000001FFFF8000000000000000000003FFFF800000000000000000000
+7FFFFC000000000000000000007FFFFC00000000000000000000FFFFFC00000000000000
+000000FFFFFE00000000000000000001FFFFFE00000000000000000001FFFFFF00000000
+000000000003FFFFFF00000000000000000003FFFFFF00000000000000000007FFFFFF80
+000000000000000007FFFC3F8000000000000000000FFFF80FC000000000000000000FFF
+F007C000000000000000000FFFE003E000000000000000001FFFC001E000000000000000
+001FFF8001F000000000000000001FFF0000F000000000000000003FFF0000F000000000
+000000003FFE0000F800000000000000003FFC00007800000000000000003FF800007800
+000000000000007FF800007C00000000000000007FF000007C00000000000000007FE000
+003C00000000000000007FE000003C00000000000000007FC000003C0000000000000000
+FFC000003E0000000000000000FF8000003E0000000000000000FF8000003E0000000000
+000000FF0000003E0000000000000000FF0000003E0000000000000000FE0000003E0000
+000000000000FE0000003E0000000000000001FE0000007E0000000000000001FC000000
+7E0000000000000001FC0000007E0000000000000001FC0000007E0000000000000001FC
+000000FE0000000000000001F8000000FE0000000000000001F8000000FE000000000000
+0001F8000001FC0000000000000001F8000001FC0000000000000001F8000001FC000000
+0000000001F8000003FC0000000000000001F8000003FC0000000000000001F8000007FC
+0000000000000001F8000007F80000000000000001F800000FF80000000000000001F800
+000FF80000000000000001F800001FF80000000000000001F800003FF000000000000000
+01F800003FF00000000000000001F800007FF00000000000000001F80000FFE000000000
+00000001F80000FFE00000000000000001F80001FFE00000000000000001F80003FFC000
+00000000000001F80003FFC00000000000000001F80007FFC00000000000000001F8000F
+FF800000000000000001F8001FFF800000000000000000F8001FFF800000000000000000
+FC003FFF000000000000000000FC007FFF000000000000000000FC00FFFE000000000000
+000000FC01FFFE000000000000000000FC03FFFC000000000000000000FC03FFFC000000
+000000000000FC07FFF8000000000000000000FC0FFFF8000000000000000000FC1FFFF0
+000000000000000000FC3FFFF0000000000000000000FC7FFFE0000000000000000000FC
+FFFFE00000000000000000007DFFFFC00000000000000000007DFFFFC000000000000000
+00007FFFFF800000000000000000007FFFFF800000000000000000007FFFFF0000000000
+00000000007FFFFE000000000000000000007FFFFE000000000000000000007FFFFC0000
+00000000000000007FFFFC00000000000000000000FFFFF800000000000000000001FFFF
+F000000000000000000003FFFFF000000000000000000003FFFFE0000000000000000000
+07FFFFE00000000000000000000FFFFFC00000000000000000001FFFFF80000000000000
+0000001FFFFF800000000000000000003FFFFF000000000000000000007FFFFE00000000
+000000000000FFFFFE00000000000000000000FFFFFC00000000000000000001FFFFFC00
+000000000000000003FFFFF800000000000000000003FFFFF000000000000000000007FF
+FFF00000000000000000000FFFFFE00000000000000000001FFFFFC00000000000000000
+001FFFFFC00000000000000000003FFFFF800000000000000000007FFFFFC00000000000
+000000007FFFFFC0000000000000000000FFFFFFC0000000000000000001FFFFFFC00000
+00000000000001FFFFFFC0000000000000000003FFFFFFC0000000000000000003FFFFF7
+C0000000000000000007FFFFF7E000000000000000000FFFFFE7E000000000000000000F
+FFFFE7E000000000000000001FFFFFC3E000000000000000001FFFFF83E0000000000000
+00003FFFFF83E000000000000000007FFFFF03F000000000000000007FFFFE03F0000000
+0000000000FFFFFE03F00000000000000000FFFFFC01F00000000000000001FFFFF801F0
+0000000000000003FFFFF801F00000000000000003FFFFF001F00000000000000007FFFF
+E001F80000000000000007FFFFE001F8000000000000000FFFFFC000F800000000000000
+0FFFFFC000F8000000000000001FFFFF8000F8000000000000001FFFFF0000F800000000
+0000003FFFFF0000FC000000000000003FFFFE00007C000000000000007FFFFC00007C00
+000000000000FFFFFC00007C00000000000000FFFFF800007C00000000000001FFFFF800
+007C00000000000001FFFFF000007E00000000000003FFFFE000003E00000000000003FF
+FFE000003E0FFF0000000007FFFFC000003FFFFFF800000007FFFFC000003FFFFFFF0000
+0007FFFF8000003FFFFFFFC000000FFFFF000000FFFFFFFFF000000FFFFF000003FFFFFF
+FFFC00001FFFFE000007FFFFFFFFFE00001FFFFE00000FFFFFFFFFFF00001FFFFC00003F
+FFFFFFFFFFC0003FFFFC00007FFFFFFFFFFFE0003FFFF80000FFFFFFFFFFFFF0003FFFF8
+0001FFFFFFFFFFFFF8003FFFF00003FFFFFFFFFFFFFC007FFFE00007FFFFFFFFFFFFFE00
+7FFFE0000FFFFFFFFFFFFFFF007FFFC0000FFFFF801FFFFFFF007FFFC0001FFFFFC001FF
+FFFF807FFF80003FFFC7C0007FFFFFC0FFFF80003FFF07C0001FFFFFC0FFFF00007FFE07
+C0000FFFFFE0FFFF00007FF807C00003FFFFE0FFFE0000FFF003C00001FFFFF0FFFE0000
+FFE003E00000FFFFF0FFFC0001FFC003E000007FFFF8FFFC0001FF8003E000003FFFF8FF
+F80001FF0003E000001FFFFCFFF80003FF0001E000001FFFFCFFF80003FE0001E000000F
+FFFCFFF00003FC0001F000000FFFFEFFF00003FC0001F0000007FFFEFFF00007F80001F0
+000007FFFEFFF00007F80001F0000003FFFEFFF00007F80000F0000003FFFE7FE00007F0
+0000F0000003FFFF7FE00007F00000F8000001FFFF7FE00007F00000F8000001FFFF7FE0
+0007E00000F8000001FFFF7FE00007E0000078000001FFFF7FE00007E0000078000000FF
+FF3FE00007E0000078000000FFFF3FE00007E000007C000000FFFF3FE00003E000007C00
+0000FFFF1FE00003E000007C000000FFFF1FE00003E000003C000000FFFF1FE00003E000
+003C000000FFFF0FF00001E000003C000000FFFF0FF00001F000003E000000FFFE0FF000
+00F000003E000000FFFE07F00000F000003E000000FFFE07F800007000001E000001FFFE
+03F800007800001E000001FFFC03F800003800001E000001FFFC01FC00001C00001E0000
+01FFFC01FC00001C00001F000003FFF800FE00000E00001F000003FFF800FE0000070000
+1F000003FFF8007F00000300000F000007FFF0003F00000000000F000007FFF0003F8000
+0000000F00000FFFE0001F80000000000F00000FFFE0000FC0000000000F80001FFFC000
+07E0000000000F80001FFFC00007E0000000000F80003FFF800003F0000000000780007F
+FF000001F8000000000780007FFE000000FC00000000078000FFFE0000007E0000000007
+8001FFFC0000003F00000000078003FFF80000001F8000000007C007FFF00000000FC000
+000007C00FFFE000000007F000000003C01FFFC000000001F800000003C07FFF80000000
+00FE00000003C0FFFF00000000003F80000003C3FFFC00000000001FE0000003CFFFF800
+0000000007F8000003FFFFE0000000000001FF000003FFFFC00000000000007FF8003FFF
+FF000000000000001FFFFFFFFFFC0000000000000007FFFFFFFFE00000000000000000FF
+FFFFFF8000000000000000000FFFFFF8000000000000000000007FFFE000000000000000
+0000000001E0000000000000000000000001E0000000000000000000000001E000000000
+0000000000000001E0000000000000000000000001F0000000000000000000000000F000
+0000000000000000000000F0000000000000000000000000F00000000000000000000000
+00F0000000000000000000000000F0000000000000000000000000F00000000000000000
+00000000F0000000000000000000000000F0000000000000000000000000F00000000000
+00000000000000F0000000000000000000000000F0000000000000000000000000F00000
+00000000000000000000F000000000000000000000000078000000000000000000000000
+780000000000000000000000007800000000000003FC00000000780000000000001FFF80
+000000780000000000003FFFC000000078000000000000FFFFF000000078000000000001
+FFFFF800000078000000000003FFFFFC00000078000000000007FFFFFE00000078000000
+00000FFFFFFF0000007800000000000FFFFFFF0000007800000000001FFFFFFF80000078
+00000000001FFFFFFF8000007800000000001FFFFFFF8000007800000000003FFFFFFFC0
+00007800000000003FFFFFFFC000007800000000003FFFFFFFC000007800000000003FFF
+FFFFC000007800000000003FFFFFFFC000007800000000003FFFFFFFC000007800000000
+003FFFFFFFC000007800000000001FFFFFFF8000007800000000001FFFFFFF8000007800
+000000001FFFFFFF800000F000000000000FFFFFFF000000F000000000000FFFFFFF0000
+00F000000000000FFFFFFE000001F0000000000007FFFFFC000001E0000000000007FFFF
+F8000003E0000000000003FFFFF0000003C0000000000003FFFFC0000007C00000000000
+01FFFF8000000780000000000001FFFC0000000F80000000000000FF800000001F000000
+00000000FFC00000003F000000000000007FE00000007E000000000000003FF8000001FC
+000000000000001FFE000007F8000000000000000FFF80001FF00000000000000007FFF8
+01FFE00000000000000001FFFFFFFF800000000000000000FFFFFFFF0000000000000000
+003FFFFFFC0000000000000000000FFFFFF000000000000000000003FFFFC00000000000
+00000000003FFC00000000000000>104 296 109 316 133 71 D[<0000000000000000
+00000000000000000000000000000000000000000000001FFFC000000000000000000000
+00000000000000000000000000000000000001FFFFFFFFC0000000000000000000000000
+00000000000000000000000000001FFFFFFFFFFFFFC00000000000000000000000000000
+00000000000000000001FFFFFFFFFFFFFFFFFFC000000000000000000000000000000000
+00000000001FFFFFFFFFFFFFFFFFFFFFFFC0000000000000000000000000000000000000
+01FFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000000000000000000000000000000001FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC00000000000000000000000000001FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC000000000000000000000001FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC0000000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC00000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFF8000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF800000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FF80000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000000000
+00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000000000000000000
+0000000000000000FFFFFFFFFFFFFFFFFFFFFF8000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFF8000000000000000000000000000000000000000000
+00000000FFFFFFFFFFFF8000000000000000000000000000000000000000000000000000
+0000FFFFFFF8000000000000000000000000000000000000000000000000000000000000
+FF800000000000000000000000000000000000000000000000000000000000000000>
+266 33 128 150 266 132 D[<FF80000000000000000000000000000000000000000000
+0000000000000000000000FFFFFFF8000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFF800000000000000000000000000000000000000000
+00000000000000FFFFFFFFFFFFFFFFF80000000000000000000000000000000000000000
+0000000000FFFFFFFFFFFFFFFFFFFFFF8000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000000000000000
+00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000000000000FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000000000000000000FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000000FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC00000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC0000000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C000000000000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000
+00000000000000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0000000
+000000000000000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00000000000
+0000000000000000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000000000000
+00000000000000000000000000001FFFFFFFFFFFFFFFFFFFFFFFC0000000000000000000
+000000000000000000000000000001FFFFFFFFFFFFFFFFFFC00000000000000000000000
+0000000000000000000000000000001FFFFFFFFFFFFFC000000000000000000000000000
+00000000000000000000000000000001FFFFFFFFC0000000000000000000000000000000
+000000000000000000000000000000001FFFC0>266 33 128 137
+266 196 D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 15 2823 4 v -364 56 V -364
+98 V -364 139 V -364 181 V -364 137 a Fb(G)-201 93 y
+Fa(4)-201 176 y(4)p -71 222 75 4 v -10 220 4 146 v -57
+220 a Fb(\010)-57 200 y(\000)p 112 222 66 4 v 168 220
+4 135 v 169 220 a(\()-48 b(\007)p 211 222 66 4 v 267
+220 4 135 v 99 w(\007)p 309 181 4 168 v 341 222 66 4
+v 397 220 4 142 v 130 w(\007)p 469 200 4 125 v 422 200
+a(\007)p 542 179 4 108 v 495 179 a(\007)267 86 y(\204)351
+81 y(\204)p 615 158 4 91 v 568 158 a(\007)p 687 137 4
+146 v 640 137 a(\007)p 790 137 4 135 v 151 w(\()g(\007)p
+889 137 V 99 w(\007)p 931 181 4 168 v 1019 158 4 150
+v 972 158 a(\007)p 1092 179 4 167 v 1045 179 a(\007)p
+1164 200 4 184 v 1117 200 a(\007)889 2 y(\304)973 7 y(\304)p
+1181 222 66 4 v 1237 220 4 201 v 1190 220 a(\007)p 1249
+222 75 4 v 1310 220 4 146 v 73 w(\010)p 1407 181 4 168
+v 1434 222 75 4 v 1495 220 4 146 v 185 w(\010)1448 200
+y(\000)p 1616 222 66 4 v 1672 220 4 135 v 1673 220 a(\()g(\007)p
+1716 222 66 4 v 1772 220 4 135 v 100 w(\007)p 1814 181
+4 168 v 1845 222 66 4 v 1901 220 4 142 v 129 w(\007)p
+1974 200 4 125 v 1927 200 a(\007)p 2046 179 4 108 v 1999
+179 a(\007)1772 86 y(\204)1855 81 y(\204)p 2119 158 4
+91 v 2072 158 a(\007)p 2192 137 4 146 v 2145 137 a(\007)p
+2294 137 4 135 v 150 w(\()g(\007)p 2394 137 V 100 w(\007)p
+2418 181 4 168 v 2434 181 25 168 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Haydn.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Haydn.eps
index 7303d2256fe..d65bc4fd6dc 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Haydn.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/Haydn.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
%%Title: haydn.dvi
%%CreationDate: Wed Jan 21 13:57:12 2004
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 16 570 510 792
+%%BoundingBox: 16 570 510 792
%%DocumentFonts: CMR10 TeXMUSIX16-Regular CMBX10 CMBXTI10 CMBX12
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
@@ -12,61 +12,61 @@
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2004.01.21:1357
%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
@@ -355,77 +355,77 @@ end
%%EndProcSet
%%BeginProcSet: texps.pro
-%!
-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]/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[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
+%!
+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]/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[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
-%!
-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/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/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
+%!
+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/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/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: CMBX12
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/JChrBach.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/JChrBach.eps
index 023d172a7b9..4a15b2203a3 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/JChrBach.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/JChrBach.eps
@@ -1,807 +1,807 @@
-%% LaTeX2e file `eps/JChrBach.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: JChrBach.dvi
-%%CreationDate: Fri Oct 10 15:07:30 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 23 735 552 769
-%%DocumentFonts: CMR10 TeXMUSIX16-Regular CMBXTI10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE JChrBach.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.10.10:1507
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 102 /f put
-dup 109 /m put
-dup 112 /p put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA7A3A1177EFE49258513602C658739CB3F9AEEC8B012E7278509623311D
-4DEBB0B74FCB8AFB65E62E6572F7E35F8D0FB353429084C4BC95E041B8990496
-B58CF3FAB18D2B8BF1EF0F58F5A325A1123CFC5317122020C10DDE14F6172B8A
-ADC7B1866FE5B04426E5544837FE82265804EB7B99E045A3F19C41547158E1C4
-B2F7D79945886DCFBEBEC800778D495B5D7D683B1659F30258173CBB3494709D
-A6664A9F735DA9E793AA0020E79E3D9391249BF572DF66C25988F18325A1D010
-29722F619006EBED250E27C7A9CC2CDA65FAA75659ECB114FAB862B7CA34F8A7
-CE880FBDFAC30E2298101620DECA586E89E363BFF4DF59F2972598027715CA53
-9D1496F846CA7F76F816A9CD5A9413077EDFDFBA440A5AF8B3E3DB7CDFE1AA6B
-8BE9918E9272217AB45CE943B72B17398D99087CF65837DF8D7EDE458EAFC34E
-824A5E23E35DE960C38CF74A2D9C4457C3DAB920F2CE2E0594E66991AB7F5546
-AA9C988EACB50F3470567F814AF87FB8CC2DCCF5EDF10AF5B18DB6BF923F464E
-0E055ECE1AA765BEB4834D76D98C2B8B08C825CA9368DD1A85BA343B82D01CD4
-B64E90E7C809B2E9F873351CC6323A67BB00908E7AB020F7F6734D863FE58821
-43C9CEA1499D0163937720BCA22B1C7EE4337B4AFBEAA9BC58ABCCAF11E45B98
-758469436FB004DF1675273334DDBD17153DF83E3EBF534904ACD59D59CD4E17
-C8A21142BCDAAF6BD67FC6286295A829B8FCA5C3CDD43C1799A2D2C0A858E419
-A6CA1DC9087890AA634CF4AE5D4C259E36AA39F33D841A4D6698BB84F179A062
-2844DE0EE37AC65E416BC7B98B375A3C07206865FECA8163787FDF6F807532D5
-852DAB1B126EC70C480CB49497F86DDBEF7CADAC84E5286C0A5D5D7FA71BF260
-656F32A26F0158FC3A28B262670B9B9C80C8915E0B6B59FD42E613D8B92ED458
-B3135517C5D4E8A095B984F8034215433A2A9C24CFA2D205377B40E80D90ADC7
-0B920F88C367B9738928ED709209925D720A8F0DF35C6B43B54470816F42DA47
-D9F8A2A0CCBD8C3592301F231A107C112DA41C4DFEAD623BFD3D074CF09B0718
-034C63748D683AF40AF7E77C7F13BCF4E017F8A3E7F13BF9053188C69435B48A
-649857702295C7F968B5C2E23DEC2A53D7EBEA9DAD0E1AA26C879978546B0957
-BFAAAF77CB7235C001F2BCC52F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 40 /parenleft put
-dup 50 /two put
-dup 62 /greater put
-dup 73 /I put
-dup 83 /S put
-dup 177 /sacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
-37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
-9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
-50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
-CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
-BF379E82AAC67D2B525096311CB3EB38519CBBA1A6ED0941C58D45F2AEE721C2
-B0BA6F1413D7964156936B44A894E9F0E6887A6537BDF4E4208995B4FBB48646
-6262DA2A69C584F1033C28DA5E3861876A63CC060A2C33DEECE51D9A00A579CE
-16082F391F8BEBDBE59DF120229BED77F78F4204A6ACDCACACD9C90563DABA7D
-DBBD3C5F9471A2B50C615805E8E1580531948D82FE7BF0730850CB3CCA6DACF7
-AC400169BEDFFA3D3E09B0A9165099A6CCD837A0C966E996C36EC2824C1DA79E
-6AC57C58964BECEDE45CCE69FE122BB5CB1BD47FAA1B2F95E8D41CBC95327F71
-DB932FB96FCE0F07975624D9F1C13E6009AB0D6034B01CFD3FE95F0FA402B983
-D5310EFF18C13E43E5265242A849297CEF932E39F486E1E8A67D6DC72B27A765
-F79C7BFCFC1B514C6BE8E4646907410055141AB75E8356FE306633C0A234DBB2
-98F809D25303B464CC352DB4D45A8128E0108C9302D5DC77B121BFF48AC46D50
-B93BA141FB04438DA90A4B166E1444D4EBFD06EDB587FCB9FB7135D4BACD8668
-0541453D520A740D18B6EA748758241D75D2E398747748BDDC3DFDCED0C93AD0
-001A1395C75BC9D6E9B41FD86877C49B1ABF3680B197373E056C052ABDF3F348
-333208B43037132D6D08D4E2B53BBEABD9197F5B6A06CC9C0919ED155A11A5ED
-BA7094137E1C9EF5876810966AC72F60D89B86B3CE3C33CB173511C92058AE0F
-C7D333D307BCA8709CCB44BFADBC490983101DE4D6922A12EAC14146F1CF6E65
-58009E8BDCF15BBEADF29F8C542AB8C2125E0D4ED6C6C2D0C5AC089153C146C2
-A738B26B05C678ECA40FCA473266A32694872CFCE56CCE15825F1DB8C5F1B639
-BD35341ED19406EBE0F2EC122742F462171067E82AFB18A0281FD883C0F77DEB
-9972900DC090FB091B44404796C3744247E3BBD6C205BF0703DB313311D33DA9
-2CC5A008EBCABB1264430ABCB65A3DCC32E4BCF405F325716CAF179926431FA0
-96D778503BC3161EB331848D497E719DA33F5DE9B24CAECF1C228A0B8302E1AA
-94EFC58E66809AB6E5B0CFA0F2E38E993B049C3B2E526723A706D444FC1CC087
-7FE43796D74F6E6F3046FE14E1F024A80A18EC785628A7781C1D732A15ACC4BD
-0F9DFA45413D31A23670DCCFD178EF11AC515047C4D8592F2B6750D0F4F88746
-16A520E0F5FE58BDF391F1196C166DF1F2F693740039F961C1133175E25F09A3
-A1858737DF21060F9418717B19D55747B7DF7240A38176C2DFC7C03023AFEEB5
-9FCF1F74FE5AF83A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 86 /V put
-dup 99 /c put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
-36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
-A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
-4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
-0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
-9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361251DCF8A9302
-D6F53ED0F720442A89467CA60E5396A335EA60A77175B7F6119F4E3D8773D100
-3F307FB7310879760E6E7AF5B06207BC4D8321734432C482581783BB9D29E087
-72D7252FAFA6739687225704EC9BD7B76357E64AD13C1CD4954ACACDB8A3410C
-C121985DFD37D79265C7EEA862D9DF32A38CCFDC7A2ED1CC6EF05E7BE3767D68
-053B9A33CA4AB36C480DCD7DE406D3A4C99EB089F9E064B2CA70C76F697F2EC6
-6D4B9088EB8B6FED2E365477BCBA77F8C5F4C1C3F1F303F4BD8C9642C2E1A4AD
-76284D9C58978ED8A96CA8933B288C1AE7013F266005DCC61B7ED0E2B1CCAB7A
-EFF217F6E6ED3891D50A7C15F57D3CDA8B16033A0E6BA6E30F2E90E9928EAEDF
-1C22C7B7128720C62FF718B5F6B329EB3C63D73A05C9F59C566207D11F9EF6AF
-0FA1A4C38D35D52694A7A4F66EEE2C4DD08D3A643643DC47944FB0E2D35D4A11
-BB818D201AB70E94E19678BDA55289AA23B14E61E0E2ED8134330CB9D4692745
-96087AB4C744B0FBF3226CF7277EA8BEDF1586DBB5FACB10E71EA84EE89082FB
-FB09D6537412037E569BAD0B1CE4879E4F094A8D236F0EBB18D4E5156EA3B881
-B2C7B9BDCD8FE7BD7A51F670612CAA7BC2CB9B8291450A0C8B06524C8D577183
-8C003AA0CBE575B91A824DBE56149CB39E74763322CD669310C2270C4903A462
-30ADA664FD327BD294E465EDEAA2C1911EA831EBF98ED52ACF9A7A57B2E5E07F
-CFCD460AC07D24C1766ECB3D55721F153A9DDDC7C5AC588617D674320009BBB5
-59717ACE1A2A882018D9405CE4CE4F140CB6141BFC7E77F8E47671A0FAD6BA06
-DB52AE4084CC91E2FA1DEB16CA98050957101F810D3A0DAD2E53F9F085A2C7E2
-8A857C6EF817BA79EAF67CD64B193B72325A3094E07F181E65E21A6988099953
-E55D3DE0C56E0617188042153A1CEAC2E52001A8A0E9C9A96DF179C74E943493
-334B5557F188749600AB97BFE048A0670AB47C061FF7735D58F20253C5CBCA71
-20DA6F24BE41EF74FA90F3BA4B856083AC4651AF35AD738718C03477D1A9820F
-04A7485CE258DCB0F735F7A0F76F6D654D5C7B4A10F130106AE7B58D49FA5DF0
-B7AB6844D80F028C5D291367ED71D601E7C86AA6EA1FBA1B3A557AB0B697C20A
-A01507AB23DCD65543C0BF0C96F218D5CD078886FE50BC250E1AF4D38DD50274
-7169AADE3B60681748028B6871F61DD18460172C1C54B1DF79E3381279CD39B8
-E12E3719AD74D83FB9427A33D31C4346A296F35DE45E57A624BFEA03668DBD0D
-FDC563B3FF913950CDC8B593DD4092D728A2FF88518381244D97FD52D9FEECBC
-53140B71890B1563AA0F7328584451FC267F3055A1DA2772211C4C54F495232E
-3CE905056737ED60ED2136C289D137BFCF3B0839E25A8C5EFA94656446568C28
-D633537052EBEE4286DC57E9BAEF278B864B8C0F333E01D6EDC6678DF44F4F10
-3C786A85B3F909525A527BA19AB00E75910A5D05BDAD16BC59C4D4F293CA651C
-C6BC8DFCCDDDDDDC317970D8EF22715B55423038F7F65282461791FE20D9BE1F
-972610C5C0E9ADEF13197232E6CE9C955FAF5A533A160AEB292CF8CE83939433
-6C44462BEC0AD2BAF1285B3D7255119CF7BD3D688E038CEA8DF4239A1D7DAAD3
-EE3363763DD9B24EE0CDD6B9C3813AE5ADCA814B89A6832F932E962DB984B85D
-F2A352E3280AA0DE8BF2F9D5855E1ABE472D8000D253A02538F30641EEAD8641
-3EA75B5C45EE7A80FFB1E74DC3AA0145BCB0108172A22BB4918B6244489D5BFE
-CD9E99176CEE54E2E6ABCCC7F9A8AE8C8A5A40F99B046EA4407076
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (JChrBach.dvi)
-@start /Fa 143[49 2[78 6[33 102[{}3 83.022 /CMBXTI10
-rf /Fb 78[33 93[66 9[106 10[0 11[40 9[0 31[0 0 7[{}8
-132.835 /TeXMUSIX16-Regular rf /Fc 144[42 46 1[23 2[23
-3[37 1[37 12[62 86[{}7 83.022 /CMR10 rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 68 56 3919 4 v 68 89 V 68 122 V
-68 156 V 68 189 V -403 150 a Fc(Violoncello)68 88 y Fb(I)178
-154 y(2)211 104 y(2)254 121 y(S)384 187 y(>)p 507 189
-4 135 v 493 270 a Fa(m)-9 b(f)p 554 146 4 108 v 555 38
-a Fb(\007)p 641 146 V 87 w(\007)p 728 146 V 87 w(\007)p
-554 154 265 16 v 815 146 4 108 v 87 w(\007)882 112 y(\261)892
-108 y(\261)p 902 154 4 117 v 903 38 a(\010)p 1076 189
-4 135 v 1103 129 a(\261)1113 125 y(\261)p 1123 170 4
-117 v 1124 54 a(\010)p 1297 146 4 92 v 174 w(\007)p 1384
-146 V 87 w(\007)p 1471 146 4 108 v 1472 38 a(\007)p 1297
-154 265 16 v 1558 146 4 108 v 87 w(\007)p 1645 189 4
-135 v 1671 179 a(\261)1681 174 y(\261)p 1691 220 4 117
-v 1692 104 a(\010)p 1865 195 4 92 v 174 w(\007)p 1952
-195 V 87 w(\007)p 2039 195 4 108 v 2040 88 a(\007)p 1865
-203 265 16 v 2126 195 4 108 v 87 w(\007)p 2213 189 4
-135 v 2244 254 a Fa(p)2278 96 y Fb(\261)2287 92 y(\261)p
-2298 154 4 117 v 2260 154 a(\010)2452 96 y(\261)2461
-92 y(\261)p 2472 154 V 2434 154 a(\010)p 2608 189 4 135
-v 2673 96 a(\261)2682 92 y(\261)p 2693 154 4 117 v 2655
-154 a(\010)2847 96 y(\261)2856 92 y(\261)p 2867 154 V
-2829 154 a(\010)p 3003 189 4 135 v 3033 270 a Fa(f)3068
-96 y Fb(\261)3076 92 y(\261)p 3088 154 4 117 v 3050 154
-a(\010)p 3262 154 4 108 v 213 w(\()-39 b(\007)3294 254
-y Fa(p)p 3349 154 V 3311 154 a Fb(\007)p 3436 154 V 87
-w(\007)p 3350 54 176 16 v 3523 154 4 108 v 87 w(\007)p
-3572 189 4 135 v 3637 96 a(\261)3645 92 y(\261)p 3657
-154 4 117 v 3619 154 a(\010)3811 96 y(\261)3819 92 y(\261)p
-3831 154 V 3793 154 a(\010)p 3967 189 4 135 v 3983 189
-V 3987 353 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3987 353 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/JChrBach.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: JChrBach.dvi
+%%CreationDate: Fri Oct 10 15:07:30 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 23 735 552 769
+%%DocumentFonts: CMR10 TeXMUSIX16-Regular CMBXTI10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE JChrBach.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.10.10:1507
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 102 /f put
+dup 109 /m put
+dup 112 /p put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7A3A1177EFE49258513602C658739CB3F9AEEC8B012E7278509623311D
+4DEBB0B74FCB8AFB65E62E6572F7E35F8D0FB353429084C4BC95E041B8990496
+B58CF3FAB18D2B8BF1EF0F58F5A325A1123CFC5317122020C10DDE14F6172B8A
+ADC7B1866FE5B04426E5544837FE82265804EB7B99E045A3F19C41547158E1C4
+B2F7D79945886DCFBEBEC800778D495B5D7D683B1659F30258173CBB3494709D
+A6664A9F735DA9E793AA0020E79E3D9391249BF572DF66C25988F18325A1D010
+29722F619006EBED250E27C7A9CC2CDA65FAA75659ECB114FAB862B7CA34F8A7
+CE880FBDFAC30E2298101620DECA586E89E363BFF4DF59F2972598027715CA53
+9D1496F846CA7F76F816A9CD5A9413077EDFDFBA440A5AF8B3E3DB7CDFE1AA6B
+8BE9918E9272217AB45CE943B72B17398D99087CF65837DF8D7EDE458EAFC34E
+824A5E23E35DE960C38CF74A2D9C4457C3DAB920F2CE2E0594E66991AB7F5546
+AA9C988EACB50F3470567F814AF87FB8CC2DCCF5EDF10AF5B18DB6BF923F464E
+0E055ECE1AA765BEB4834D76D98C2B8B08C825CA9368DD1A85BA343B82D01CD4
+B64E90E7C809B2E9F873351CC6323A67BB00908E7AB020F7F6734D863FE58821
+43C9CEA1499D0163937720BCA22B1C7EE4337B4AFBEAA9BC58ABCCAF11E45B98
+758469436FB004DF1675273334DDBD17153DF83E3EBF534904ACD59D59CD4E17
+C8A21142BCDAAF6BD67FC6286295A829B8FCA5C3CDD43C1799A2D2C0A858E419
+A6CA1DC9087890AA634CF4AE5D4C259E36AA39F33D841A4D6698BB84F179A062
+2844DE0EE37AC65E416BC7B98B375A3C07206865FECA8163787FDF6F807532D5
+852DAB1B126EC70C480CB49497F86DDBEF7CADAC84E5286C0A5D5D7FA71BF260
+656F32A26F0158FC3A28B262670B9B9C80C8915E0B6B59FD42E613D8B92ED458
+B3135517C5D4E8A095B984F8034215433A2A9C24CFA2D205377B40E80D90ADC7
+0B920F88C367B9738928ED709209925D720A8F0DF35C6B43B54470816F42DA47
+D9F8A2A0CCBD8C3592301F231A107C112DA41C4DFEAD623BFD3D074CF09B0718
+034C63748D683AF40AF7E77C7F13BCF4E017F8A3E7F13BF9053188C69435B48A
+649857702295C7F968B5C2E23DEC2A53D7EBEA9DAD0E1AA26C879978546B0957
+BFAAAF77CB7235C001F2BCC52F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 40 /parenleft put
+dup 50 /two put
+dup 62 /greater put
+dup 73 /I put
+dup 83 /S put
+dup 177 /sacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
+37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
+9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
+50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
+CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
+BF379E82AAC67D2B525096311CB3EB38519CBBA1A6ED0941C58D45F2AEE721C2
+B0BA6F1413D7964156936B44A894E9F0E6887A6537BDF4E4208995B4FBB48646
+6262DA2A69C584F1033C28DA5E3861876A63CC060A2C33DEECE51D9A00A579CE
+16082F391F8BEBDBE59DF120229BED77F78F4204A6ACDCACACD9C90563DABA7D
+DBBD3C5F9471A2B50C615805E8E1580531948D82FE7BF0730850CB3CCA6DACF7
+AC400169BEDFFA3D3E09B0A9165099A6CCD837A0C966E996C36EC2824C1DA79E
+6AC57C58964BECEDE45CCE69FE122BB5CB1BD47FAA1B2F95E8D41CBC95327F71
+DB932FB96FCE0F07975624D9F1C13E6009AB0D6034B01CFD3FE95F0FA402B983
+D5310EFF18C13E43E5265242A849297CEF932E39F486E1E8A67D6DC72B27A765
+F79C7BFCFC1B514C6BE8E4646907410055141AB75E8356FE306633C0A234DBB2
+98F809D25303B464CC352DB4D45A8128E0108C9302D5DC77B121BFF48AC46D50
+B93BA141FB04438DA90A4B166E1444D4EBFD06EDB587FCB9FB7135D4BACD8668
+0541453D520A740D18B6EA748758241D75D2E398747748BDDC3DFDCED0C93AD0
+001A1395C75BC9D6E9B41FD86877C49B1ABF3680B197373E056C052ABDF3F348
+333208B43037132D6D08D4E2B53BBEABD9197F5B6A06CC9C0919ED155A11A5ED
+BA7094137E1C9EF5876810966AC72F60D89B86B3CE3C33CB173511C92058AE0F
+C7D333D307BCA8709CCB44BFADBC490983101DE4D6922A12EAC14146F1CF6E65
+58009E8BDCF15BBEADF29F8C542AB8C2125E0D4ED6C6C2D0C5AC089153C146C2
+A738B26B05C678ECA40FCA473266A32694872CFCE56CCE15825F1DB8C5F1B639
+BD35341ED19406EBE0F2EC122742F462171067E82AFB18A0281FD883C0F77DEB
+9972900DC090FB091B44404796C3744247E3BBD6C205BF0703DB313311D33DA9
+2CC5A008EBCABB1264430ABCB65A3DCC32E4BCF405F325716CAF179926431FA0
+96D778503BC3161EB331848D497E719DA33F5DE9B24CAECF1C228A0B8302E1AA
+94EFC58E66809AB6E5B0CFA0F2E38E993B049C3B2E526723A706D444FC1CC087
+7FE43796D74F6E6F3046FE14E1F024A80A18EC785628A7781C1D732A15ACC4BD
+0F9DFA45413D31A23670DCCFD178EF11AC515047C4D8592F2B6750D0F4F88746
+16A520E0F5FE58BDF391F1196C166DF1F2F693740039F961C1133175E25F09A3
+A1858737DF21060F9418717B19D55747B7DF7240A38176C2DFC7C03023AFEEB5
+9FCF1F74FE5AF83A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 86 /V put
+dup 99 /c put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361251DCF8A9302
+D6F53ED0F720442A89467CA60E5396A335EA60A77175B7F6119F4E3D8773D100
+3F307FB7310879760E6E7AF5B06207BC4D8321734432C482581783BB9D29E087
+72D7252FAFA6739687225704EC9BD7B76357E64AD13C1CD4954ACACDB8A3410C
+C121985DFD37D79265C7EEA862D9DF32A38CCFDC7A2ED1CC6EF05E7BE3767D68
+053B9A33CA4AB36C480DCD7DE406D3A4C99EB089F9E064B2CA70C76F697F2EC6
+6D4B9088EB8B6FED2E365477BCBA77F8C5F4C1C3F1F303F4BD8C9642C2E1A4AD
+76284D9C58978ED8A96CA8933B288C1AE7013F266005DCC61B7ED0E2B1CCAB7A
+EFF217F6E6ED3891D50A7C15F57D3CDA8B16033A0E6BA6E30F2E90E9928EAEDF
+1C22C7B7128720C62FF718B5F6B329EB3C63D73A05C9F59C566207D11F9EF6AF
+0FA1A4C38D35D52694A7A4F66EEE2C4DD08D3A643643DC47944FB0E2D35D4A11
+BB818D201AB70E94E19678BDA55289AA23B14E61E0E2ED8134330CB9D4692745
+96087AB4C744B0FBF3226CF7277EA8BEDF1586DBB5FACB10E71EA84EE89082FB
+FB09D6537412037E569BAD0B1CE4879E4F094A8D236F0EBB18D4E5156EA3B881
+B2C7B9BDCD8FE7BD7A51F670612CAA7BC2CB9B8291450A0C8B06524C8D577183
+8C003AA0CBE575B91A824DBE56149CB39E74763322CD669310C2270C4903A462
+30ADA664FD327BD294E465EDEAA2C1911EA831EBF98ED52ACF9A7A57B2E5E07F
+CFCD460AC07D24C1766ECB3D55721F153A9DDDC7C5AC588617D674320009BBB5
+59717ACE1A2A882018D9405CE4CE4F140CB6141BFC7E77F8E47671A0FAD6BA06
+DB52AE4084CC91E2FA1DEB16CA98050957101F810D3A0DAD2E53F9F085A2C7E2
+8A857C6EF817BA79EAF67CD64B193B72325A3094E07F181E65E21A6988099953
+E55D3DE0C56E0617188042153A1CEAC2E52001A8A0E9C9A96DF179C74E943493
+334B5557F188749600AB97BFE048A0670AB47C061FF7735D58F20253C5CBCA71
+20DA6F24BE41EF74FA90F3BA4B856083AC4651AF35AD738718C03477D1A9820F
+04A7485CE258DCB0F735F7A0F76F6D654D5C7B4A10F130106AE7B58D49FA5DF0
+B7AB6844D80F028C5D291367ED71D601E7C86AA6EA1FBA1B3A557AB0B697C20A
+A01507AB23DCD65543C0BF0C96F218D5CD078886FE50BC250E1AF4D38DD50274
+7169AADE3B60681748028B6871F61DD18460172C1C54B1DF79E3381279CD39B8
+E12E3719AD74D83FB9427A33D31C4346A296F35DE45E57A624BFEA03668DBD0D
+FDC563B3FF913950CDC8B593DD4092D728A2FF88518381244D97FD52D9FEECBC
+53140B71890B1563AA0F7328584451FC267F3055A1DA2772211C4C54F495232E
+3CE905056737ED60ED2136C289D137BFCF3B0839E25A8C5EFA94656446568C28
+D633537052EBEE4286DC57E9BAEF278B864B8C0F333E01D6EDC6678DF44F4F10
+3C786A85B3F909525A527BA19AB00E75910A5D05BDAD16BC59C4D4F293CA651C
+C6BC8DFCCDDDDDDC317970D8EF22715B55423038F7F65282461791FE20D9BE1F
+972610C5C0E9ADEF13197232E6CE9C955FAF5A533A160AEB292CF8CE83939433
+6C44462BEC0AD2BAF1285B3D7255119CF7BD3D688E038CEA8DF4239A1D7DAAD3
+EE3363763DD9B24EE0CDD6B9C3813AE5ADCA814B89A6832F932E962DB984B85D
+F2A352E3280AA0DE8BF2F9D5855E1ABE472D8000D253A02538F30641EEAD8641
+3EA75B5C45EE7A80FFB1E74DC3AA0145BCB0108172A22BB4918B6244489D5BFE
+CD9E99176CEE54E2E6ABCCC7F9A8AE8C8A5A40F99B046EA4407076
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (JChrBach.dvi)
+@start /Fa 143[49 2[78 6[33 102[{}3 83.022 /CMBXTI10
+rf /Fb 78[33 93[66 9[106 10[0 11[40 9[0 31[0 0 7[{}8
+132.835 /TeXMUSIX16-Regular rf /Fc 144[42 46 1[23 2[23
+3[37 1[37 12[62 86[{}7 83.022 /CMR10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 68 56 3919 4 v 68 89 V 68 122 V
+68 156 V 68 189 V -403 150 a Fc(Violoncello)68 88 y Fb(I)178
+154 y(2)211 104 y(2)254 121 y(S)384 187 y(>)p 507 189
+4 135 v 493 270 a Fa(m)-9 b(f)p 554 146 4 108 v 555 38
+a Fb(\007)p 641 146 V 87 w(\007)p 728 146 V 87 w(\007)p
+554 154 265 16 v 815 146 4 108 v 87 w(\007)882 112 y(\261)892
+108 y(\261)p 902 154 4 117 v 903 38 a(\010)p 1076 189
+4 135 v 1103 129 a(\261)1113 125 y(\261)p 1123 170 4
+117 v 1124 54 a(\010)p 1297 146 4 92 v 174 w(\007)p 1384
+146 V 87 w(\007)p 1471 146 4 108 v 1472 38 a(\007)p 1297
+154 265 16 v 1558 146 4 108 v 87 w(\007)p 1645 189 4
+135 v 1671 179 a(\261)1681 174 y(\261)p 1691 220 4 117
+v 1692 104 a(\010)p 1865 195 4 92 v 174 w(\007)p 1952
+195 V 87 w(\007)p 2039 195 4 108 v 2040 88 a(\007)p 1865
+203 265 16 v 2126 195 4 108 v 87 w(\007)p 2213 189 4
+135 v 2244 254 a Fa(p)2278 96 y Fb(\261)2287 92 y(\261)p
+2298 154 4 117 v 2260 154 a(\010)2452 96 y(\261)2461
+92 y(\261)p 2472 154 V 2434 154 a(\010)p 2608 189 4 135
+v 2673 96 a(\261)2682 92 y(\261)p 2693 154 4 117 v 2655
+154 a(\010)2847 96 y(\261)2856 92 y(\261)p 2867 154 V
+2829 154 a(\010)p 3003 189 4 135 v 3033 270 a Fa(f)3068
+96 y Fb(\261)3076 92 y(\261)p 3088 154 4 117 v 3050 154
+a(\010)p 3262 154 4 108 v 213 w(\()-39 b(\007)3294 254
+y Fa(p)p 3349 154 V 3311 154 a Fb(\007)p 3436 154 V 87
+w(\007)p 3350 54 176 16 v 3523 154 4 108 v 87 w(\007)p
+3572 189 4 135 v 3637 96 a(\261)3645 92 y(\261)p 3657
+154 4 117 v 3619 154 a(\010)3811 96 y(\261)3819 92 y(\261)p
+3831 154 V 3793 154 a(\010)p 3967 189 4 135 v 3983 189
+V 3987 353 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3987 353 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDI.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDI.eps
index e857872fe77..e7f5cac2dd7 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDI.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDI.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
%%Title: MIDI.dvi
%%CreationDate: Sat Oct 25 18:08:55 2003
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 28 734 538 786
+%%BoundingBox: 28 734 538 786
%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMTI10 CMTT10 CMR10
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
@@ -12,77 +12,77 @@
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2003.10.25:1808
%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
+%!
+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]/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[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
%%BeginFont: CMR10
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDIbaroque.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDIbaroque.eps
index 41e3b46b9dc..f20c70e7fa5 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDIbaroque.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/MIDIbaroque.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96 Copyright 2007 Radical Eye Software
%%Title: midibaroque.dvi
%%CreationDate: Wed Nov 14 21:20:39 2007
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 73 746 483 786
+%%BoundingBox: 73 746 483 786
%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMTI10
%%DocumentPaperSizes: a4
%%EndComments
@@ -14,61 +14,61 @@
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2007.11.14:2120
%%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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro 0 0
@@ -357,77 +357,77 @@ 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]/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[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
+%!
+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]/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[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/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/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
+%!
+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/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/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: CMTI10
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/agon.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/agon.eps
index 164f166e798..8907c7b9a14 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/agon.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/agon.eps
@@ -1,1397 +1,1397 @@
-%% LaTeX2e file `eps/agon.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: agon.dvi
-%%CreationDate: Wed Jan 21 13:49:58 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 23 423 552 782
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX20-Regular CMR10
-%%+ TeXMUSIX16-Regular CMBX12 CMBX10 CMBXTI10 CMTI8
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE agon.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1349
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 51 /three put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
-8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
-B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
-FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
-C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
-74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
-20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
-DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
-C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
-900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
-2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
-C9D16A50DEBBD3862698DD582667C8A8079FD1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 102 /f put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA7C97C35EAFA47778CE03E863303582D8A9901881E9A5E2B11B1B3C37D5
-69048F1FF37F535313F28EAD00061C788547D3D2EB16DFAFBC7024854A277D0D
-F4AAC20E3976FF31771141FB9F3D09836B0CFCFAF9E7D244071B530339516E5F
-AFED73B2D0E42C724CED873AA66142B95C8F46C83ACB6F5198450DAD0B85AE88
-2499B67C297F1AACC09B75E17345047F5E29A702C2DB50EC133977251F24C074
-69B4D9E2D854537671BBBDDC731BA5E0F963E75BCCC20162661199E89CCD5C05
-BE422124B8CE4668445BD623969823F3D6E94F5669153944489270BA786094FE
-655994C9314928787530F7D1AB9C171917984AF4E70823C6F9CB950F02184BD2
-B07E752DC88685DBA68B8989BBD83AECDE0FBB628235A71B1F39BC0406AA3B1A
-196770D283690A5579F36F7D0D479FA61601520C602F9296518227564200B4A4
-AA10760391183B27B7701DC3ED5C68C8F575A253BD54275131A21C002E
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX10
-%!PS-AdobeFont-1.1: CMBX10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:06
-% 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 (CMBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX10 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 105 /i put
-dup 112 /p put
-dup 122 /z put
-readonly def
-/FontBBox{-301 -250 1164 946}readonly def
-/UniqueID 5000768 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
-FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
-DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
-7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
-9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
-CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
-6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
-E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
-8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
-3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
-EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
-0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
-4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA62096D089075D406
-DA26D85EEE2E39C5B7B8744351560D8FA3A5A87057656A44B0C6EE4B4EFE3380
-8277D947D080AECAA54AC5EAA48CA4A8D440083C99B6C425B64C934913363097
-BBC34829CFF22B2286F2439B95D48C104ABB6F15BD9C543C02BAA1E9B80906F3
-98E709E4D642D169A45681E0C39074A51C110542CC37FE9A5127BD39090EFDFF
-950AED31E65936442C20E14598F0BFA3B6C2011B842784111020D76D9D154648
-8B7E05ABAA458C5CE797A327685C2CF67DE36BD013A05DB41B01540963159E3E
-FBB7126AE6231E3C48243AA2E95DF0659993DF1C0DEA4E495547C25D2893E35E
-24435F55A2D66CE9FDEFA9A40E38B7DC25D78E2AA6DE2D8C18BDF9A390CB27B1
-7E572A8DB0D0565F05E271CF122E3770490B395CD0710083A77BDC82ADA7B15D
-4FCBB6EEF0D1E8D9575FE95B6B95517D685A8FBEA16853877991059EA431790C
-34B0DF36A8825B776FAAEF162FA24EB17C99F0EDFACC763141BB17A96BCFC812
-74142D452C210D2B91279D88C443C2F8967138A65F45FA34328D15C87D38CEFD
-39D11A9D53C18C3435ED03A52149BC1B5BCA08A201142248276B7E4F8924750C
-8361FDB1FA328B4A292B55A210FCB74F1B7D0C32C7ECB4241699220EBDB1EAE7
-37051C55625AD1F9B8F9966E65A7C94A8BAAA7EF735E4FAB04830EF077A8D788
-B224C18433977A97CC824F55F98CE5C578A52FF470E124B6A09DF2EB1E99918B
-82D8BBDB1DCFE65325453720F02A01A65CCF93D555CDC7F4D5012C1B23E48331
-7E848D4299227895D8AAE708196E122DAA1E98C127199A84F062F58BDAD01BC6
-64D35CE925F6F04405595BD5A8A008C01248A4D19B97CB47F87BB44B486BE483
-5A8BB911F79B093DEEC937526816B7E00D14BF1C354506C4D96785EF71100D53
-E3D4AF5E2FEA0ADC9B907A21E57660B4F871BBF68329A3D45A586F01FE26B76B
-F98026BBBE228675A553F3A56FF81A199C05409367F650E5565495A5978375AB
-DCD02EA24E6776FDCA857FBE0C3CFF9C5CAD1CB5BA1AF1B6A8D13F6A0D3E159A
-A2644EC087D61BD7F509234968915C6A9FAB3D220C7305A0E23FA232F7FE0E4D
-FFF2374F35B430D539E3084CC51598593A29A579A3F8030338951F8A9B5A721A
-CA5A4942F0C8B9441F7902B05E41E873AB4B7F777B9230CD225D6B39AC832EE1
-D4924DEE59511A01820C735A89408B246DEC7015D1FBEB59F18E30F87F492CAC
-57E7870BCE9CB417CF67B7B3A873ADE9D4B578B6F12E3B2B4111CDB5B0210711
-0125C9A43CA42E677AF6E8F024F1F828C721A0BD5B76C4669B7417051F43AC8B
-03581B584CAEAEB1A211436BE37B14409E6900FF327B3904ED3AE0A5E602A1C0
-C9FB0FF0035ACFC8630CB828BE3B18FC7BF38796150F907B6F51A7DFCE3FBAD4
-6BB13E4E9E49725E385686B5E8743B8E00D220ADA11055B3F6021879263F62D3
-A7E4B47465BD14D5AF91C07A66BF4818A2CF7CEF58ECD31833A3712B1C947E98
-433CED96A4E61DCAB568F9D71F3A5BDB36632F567F897821C24E693ACAD00ED8
-D34419C64DD5C21C8BA997980EB1FDFEBF394B2F49B6E384C9EE17F4D8EF5564
-8FAF2D132863B44FD79756CAF72E7AF89D6E523CBB731EB2491A0B26218D65E8
-9B23CB7C2605D0AF8F7957010CD81944E67EB971CB01D4906FB669169CC596FA
-20049428612BC4F75FBA92851B26F717AB0C475014A72E0802D22680779397DB
-F417A58DA3259D67774E302FD34E2F4F6667B2AFF82596506CA75B69EC1EB68A
-1680639139ADC6982E5922BA0ACA82D8799DB4FCAA3E7D404C2373F74A76AF18
-170C64266A2D18B662D501AE6C95AB8E8FD70DD7A6458B775651BE8FF5387F0F
-33F15E3C8535556C6D96DE887F9FD6150DC29A3D56F53709602F48A48B65E990
-29E26B41EB5A90E84B27C5B7A46457DF48A72C4C8AC4FA0BF1536C27FD496CB5
-AF570596F76FBF986DE7D67D093CF4C480D97CAF974DCC858139E3B4EDA2D087
-462DE4D9A78AF573E4577488E7D02E282B34CB53AA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 52 /four put
-dup 56 /eight put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13D37A678E6C544AC8C13C10252078C4B31389
-56E1CA0B7BE6A6AA7CDA8B3A12CE3242CB944A345392BE21B77039E7A2A828F1
-FC838C23704D78FDA95B4C563092AD358A9501822BFC8CDDC263202A83687975
-EF90EFD45C30C5079EA0C652271360C4FBF9B4F52A51001AA56B3EF31F5505BB
-6876B86EA3AE17B7C4808DC676A9BAE6D4AF2E5E55140D98A91F7D869319AEF7
-F8EAF3103B4BE05668DC178BA7CF9CAA9B8ACCF3187E051197CD82F138A05818
-D153E5368A5B3D673B08FA24A33299C5DA9F28D1D8DFD08CFAE5EF56E86CC806
-40083D590C2D8B62AFDBBE0253B3441538D60E4A4C2EAA80333A504F4732E41A
-05559E56F9A03B5B3814A55106805357AEC7B8A2F4231A316E09D4143B8467A5
-0B36EF89792710016701E03D0F6584F84FCFE519DD39B0337CF098BE95AF6DD3
-7120F7DF5DCC10D73A689FD9A484995611A1E0C3800C34E59BE59EF50EEF55B1
-6311731A57850D048BA8AAE0CAE557ED692A3840F743C509BF18D0F166271203
-008188663DD3A77112E2EA9E5CFC358304485456FFA7F323EA5F705AD0D8C2E1
-F56D2A09082050E197765888B7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 24 /perthousand put
-dup 25 /dotlessi put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 46 /period put
-dup 62 /greater put
-dup 63 /question put
-dup 64 /at put
-dup 71 /G put
-dup 73 /I put
-dup 75 /K put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8647CDA944FFAE6182F991CDF884A974262D31362D2CF0317CF97E29
-EEC652612CE1B987BF57B7A60BA840D2512039A8C81F229855008D6E58B76DA1
-D93486DDE86D173AD3B5AF2997FBA58A2FB615DEB2C802351A89F44B6CD6663B
-BCD73ABFD0DB844C34EDAE6C1F1D0498B158C9C0BBA09D05EAEC505A60623A12
-A6FB844DF87E1ED01AF28839F5C26D608DFDAA4148A9460970D89BCC2348730C
-4A5DDFB22A306A35C15732EE150B25508C66C33CCAF53D3CD8B03248064960FE
-8716EA3E4FAE4F451BF3A3E1E046900D33B0201CF6CCF265241002CC42F60DAA
-9D286C8B5D78DDF9D53CD444FD0B3A8FF9B42192ABF55E74D787B420E947EF23
-02E50773CF8E838BEBC400E637A1B0A8D7C648105BD5B50C8AD964B73257EB84
-A4067DC8ADF99166634C1AE4F510438121E13EFAA746BA88DC002B18739152C5
-D1F3D735A4CF070F4BDF9EBB68C9D019C7DB8A982F379C4625E7CF700215C8EA
-D6B1E6F4A1E7CAEAE63E2E9D761D4A0827062A23EB0887BA9EA3B199933C1308
-A54C41A032E2C24FF4C62FFA6997C4073BD50510962B2CF1AA39AA99D4EAC2D9
-B2C97BD3100591C098082C1837AB9CFB4DDA5896A9C538BCED24FB078553E2B5
-1246BFE9AAB7FC3E725CF3057E6E4AC4FE22664F4100D4F9FF6CAD4677CE4950
-4F31F635D5487A397CF1DCFA7C6B01594FE49F1D0008D67D1E0830714256F79A
-31895A6832E0C9CC8A05B0B5B2B2CE3368C46FA4EEE9AF3DA0C1F7F0FF0EB061
-E7B60D2B0827457D8B12E6838C2DEE02661ACBDDE1EBE40D8759250080777EB6
-409B789945C719B96D3F5D35C8D91180E1A023AD4650F7D0DAB80A3E4DE00823
-2815C3FB4CF56309FA76C8295084E204042970084BC090369063DAB7255C91B9
-0185B1424DA3363910025A85A776FF563CB81EFA2E7821675C33942889FB5BB4
-6E15814DF96FD989CF9A31719B42545B9CB5E04C48B489BA7858453B8EFA26B1
-30DEEDFD5CE658F87BAA6CC8535435A893D777D441C627EBF6F3030620E4117A
-C4E7B1B352621066089F879641C60D97C01C7E84EC60773DB2882FFA9FB65BB8
-BF6BC4F19F9439948DE79B5C2C55866D2F869DEF9B3A6B1D713EC6C75D38E639
-98E15BF5B2D521930F5644D992297686ACF4C25CD73E57DB060139B41A59200F
-2539DAA2F3D3B33E7D926FA1F357D91FF07D79D237B13C1696CF8EF359F6299B
-5907B16B0F9677E6E5DF0115C7B07525F6FFA33259EA8740AE62E0AF3A0B96C4
-88E0140614D7FA00CD78D96C59A7EB64EED2A24C4A7C9036B7EAD93FB929EB79
-E2E3FD0B3D5610432EDC60A28B95AF2A1501E0DB2A4572613498B689FA681BB4
-884D054AA38BC5095FB69B5F52AEA7E52D5292655B345B8F6A09A844D3C2E5FF
-CF8B5C2F15AC093845B7E6A1DF5333EEB339AFFF61DC80DCED3673EF48F97064
-27C3390EBF8FD343DF47F8C7E9C696DB23A19F7E23005DB768F71017B3BFDBB1
-D077273AEE8F6AC4C3A5157BC3CD1600D7FBB91DB4B0278ADE86F32EDE26C1C7
-82D49EE1DBC9FA9BA4D4D7BBD14CDF04D17A779164296B1367BF1D6DC30DF9B4
-8C7D65364F958529A0BB69BC304B03F5C4D6C8C611ED14FB2F017F2D024FDA2C
-A3E8FE4D515C50BEFD1036F8BF6CA77B6013F0CFAA7874FAFA749F128F5F7C55
-4C2FCB16399DD16864A66B472B7A6EA03677A1EBA87859AC909BEECBFFA80AFB
-A600F749FB8C5D485DDFB24BEF2E6960970B2DFDE2F1758230E4D49BC081EAFD
-915DD86FD22C6BC67A51E609B6E3AC660ECB430C715E08836B571621A37746CD
-1F3ECF3A6E378BA3A9B44DD4D6DC6365EEAEBC4DDC8AD9A37B65DB564C544034
-04EDBC6FD2936221345E6B95F045586C5D60C9D148852CFCF4C9D29AE9F951D6
-39FC48B1365C6EAFD09F7B90BE82E27A41EF326E0F7C28D89FEC19E95715D356
-D0CD4DC6D6947250C06389EC2E578B94BBE1F533AA4BD0C6CFCC5F668D9437BC
-11192D51E6010B9F2DE9DC87A7F37237B5F7FF6BF55351ECFB5FCF325BE20362
-45736A607EC88723BB270647C17F458D5BF4AA8607AAB4A0D8D46BB676059901
-57AD31094A111006B333CE42335BDB9B9C6E8C68218520A0A6F0D6B779F77F63
-656A97DB291E65923C80B26432E16C8FEC99BE84C656A9E8C4076A60BFAA87BD
-D5BDFAAB4D349CE980ACDA02567A9A1EB12130FE4B37838B1F91A0269E4C4B62
-53E4E0D4ECEFE9D46B418E0900C121D957FD9F95EF7AC8345CB665FC720C6A7B
-F995035406C640BC77D0B7B40BA407442A38FF3A480A46641C9ED807CAF7008D
-EC766B5A419C6E613260F326D01FF16F7A149128101A60B122DE9EF37AB3CE07
-58F04F0E7374ABE98523E72061011729BAB5E06FB439CE4A08369A2A26E69BF8
-28680716185F9BA8C2F6FC05B4E1E8E4BF7DE3A0846F082DB947B84956CE462A
-9D29DA5A619DF6CEBB66B67CA5C3009CD67EAA761674ADEEDF0F9367401C9999
-2CAC30279793AADF367CD7EC598FB1C5F7F5EA9DC9C6EEC0FEE5B90489D803DE
-A874BFE9FEE6ECB6AD565E776E901D08E1CC506BCAAC63D151A7E9952CC62452
-9ADE02123F9081C67909663F66818F022FFB29FA04031E404F6A1587C70508D7
-EDADAFA9D0437837F599667621C99EA25D260B2FC8D65DAA6CF77A75CDF00F29
-F73D0FEC9FC74B65216890A85CBA5E4F32FCECC92A6997281ECDE447146E57B1
-07FE754B3B994FA79DB15599636952F4CA63A2E1EF5CA8A2FC1E46E001259800
-7654E1CB775E3CF6268F5E6683E27914D7C89FC8B01185ACBA8E721820116736
-3DB3727802306CFABE628B3EF30566E4E0BF301875B1F001CE586CD0F1FEDDC3
-98D33F71ADEED3F1E3C32D8075640367E7ADD99FD66C282464560EA03C661CE7
-F1FA2724E40EFDA919AF1DE762AC4E74F9A8ECDB60EC2EF0B468654717817F11
-202A7CB60501B9A6EA455C19858A98B907B32556E3402CFF3DC1B9B1767F4DA8
-D6CE110B4E207276DD91533E05DB72BB08EC68B27D1479E971E5608B5A353D98
-E8E2EE3C075DA92DE349BC6192A112BB0E4A3C0BDD01537ABE304B2A70A1811F
-CC34C66E5840B8A350AF4F32FD2A26E8093EBEBAE1603C9FB5DCE9EC4FC368CF
-E4F746A59FC702B3A18EE9DCCB0DB2D5B6CC0EAAD8AC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 66 /B put
-dup 72 /H put
-dup 73 /I put
-dup 80 /P put
-dup 84 /T put
-dup 86 /V put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
-71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
-F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
-81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
-8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
-4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
-9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
-B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
-4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
-828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
-E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
-C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
-C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
-3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
-CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
-78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
-31E8F6E32F83DE748E345F81D3BFD57E78461379ACDEB99CDE6205C96BFD3DFE
-3B966D19B25596A888D7530D42F284E22E30D2B418CAE285AA38F9FB436D3937
-147E92E69D23E9FD278CD5F26788A7E5D8476DE8E214B027C657944A22B273DE
-AF5C865DEA06501B0FC53390C31DB0C5524FC0B441DBBBDF8CA7719FEF82D047
-EC589721661434F10863F360C03889E73C6D5284A9C8FBCC63BCFE94F92F30B6
-631AD70770A6C965714022203CBCD92E290F4C5C6C5F3BCD35EBA1FC0941BADF
-67DC1C8217D75912AB398D75ECA80CAB9790B649B619DA1B4F0D18FEE4AAAA38
-2B97D66E5A22B56F79FEF4AC37087C92DEF6DFF655DFF39C5B92C79835F6A047
-1D958A46754F0381669CEF48B7DEB4A08ABFFCBF52345BE913E32A3390EF29EA
-6A156CB0B5C7D2152683D4FE7CC6AC4B33741066D8931BA1BA8D7818400B19CF
-A8E8D53DDC4E950DB64D53B6FDAC295C7FC1FD7C16A6A5DEBDD82A0C4A86F031
-7F94386C42736A73E137E86E9DF6F0B3562FE944394FA556BB62FE7F4C170298
-88C8905B12E29B0FC79F2AE5CE24539060B9E93DF5CA29B7192A9393F1B9CEFA
-A4A44E275657D01F6292FCEE04FE42EB033DFBE2E387A0EAEFD03A12376C5901
-B015925EC3C0018ABB259D686337D1B0D90EF10851030542EF8331C996864845
-4AEDA437998668EF51093AF2E3374C18A0BA897B83358223B2C0F9A2909F033F
-DC0D2A7358C2252FE748CF2E3CE32D1283166224A2EABB0E13B10776BF053936
-95C8A9EA6304B71209708E33ED54AD64BB8CC956C9349C360F7F1E932F261A47
-D51DC6765CDC63BD40BA31E7D8780797EB8CE491F09B7ED9A6937FCB9CAD4921
-4D2BCFD5678B350ED0A65EB67D6D048B2F5F54BE2D88D03F217A2104FB78E5BC
-65A42D5B1CA9315FBCA41860F3D867974538D4CA5CA091D11018F88F751A0B71
-1A8386B947AD11787810B424890476474CAE0A619EEB054F8A0211851F0FD318
-501B1D117E7704E05D034CC48E37A3F6464249A72D57722D4D4F81A557146FE5
-3B6D711797093C75901ABAE442C718842F56E9E59AA8382EEC294D059CEAA9F9
-EF3D26066CB3D5F262AFFB112318990E0124CE0AFFE5E67A741CEBF562D083A8
-A82860EC6FD6D2CD18615CF4A358F86908ACD4AD4C81383D9206A268AF85A5EE
-88900A806E46FCF9E596AE4F4B10E112ED47B28990B3E6FEE9BEB89EDC15F08F
-7FD90C0392928468F1A07C4967AB9F1BD05556055F2280AEB89353F757602570
-374F9F612556E354675D4A06EFDB5FADBD66A3ED009375DB65700AF565AA2AFB
-38B6FAFAA3508F42E449E0AD86DD47A87264AE93292737E05D4A1AAEE12EA96C
-46B59758BAA8513245CD74AEA8836574E8A41581396AF2513C347F925F4CED4F
-4E4A65A91430C1CA99F5A01E5A442DF93A1A62342AC7E4223E78329AF285A0B8
-D6104A7EE6BFB881E9F19E13711603D1E0B577E54242CAC04D53681D20399AEF
-1B5E96C71D1DC72611F2A7C0D95F3693FC4A17DB4D287A658259E3ED6AC959D6
-326DD7BBF055A7A99B6365DE5AE9008FA1C3EBA8A644A19318581FE4ED41F1F5
-6CCEC8880C14F2A8A8B15FE7E894F9D0A857E9C8D2A5F5D0D5DFC52080A8023A
-C62BDD826FB64303E2E32195F42936CC723BE62217EFC98B6DA2A53A03303F96
-F1ADC2A59CF10E58583708514DFF65CAF7DDCF04D3ABC48761C6C001B09B1E54
-2D8D420A1536E1AB8235B4C6B570FD8A588A4B07605F52F4CE5E50C0DAD58876
-46921C867A04FA8668EEADF464746331B206DC66DD93614989378872F81D65E2
-822AB6F45A3AFB2A21A0E5628379DEEA9C1D9D954769F453772F27CD63569579
-77940AB3FC8667797FA406F747656544320C3A3548817AB37CD96C454DD1FA01
-C5A6D5797422282975B103C4C4D7D38525BCB5D7B8D3E6C18BDC8689AD064767
-F07B6121F7B5A3AE055E911904EC1D509D6F80A4632E96E57EA59F4C222F3634
-7554EA08FBAA610C9ECA630E8ACF8558176DEBA66E39D7485B69C07CBDDA13E1
-0FD175998013D9B9E3C0ABBAC3A0C1364E66ADE84A8821495E7E2BDBD22578DD
-ACB1993520053E7E9FD8852D8634AD6E9A12195F8F24DC3E4C004999636D9CB5
-A68503FBD3C814374D97B2721809F80307EF492F5B644B52036D2AF57B14F047
-8EB7242CE76FDA46244E1EE25CA5D65316B3417641CF072E5B4497B8C4A73AD7
-D22046363C80A818C2E2E3D130269B1FBB18B443D9842A5C1E45F9D6C3E6F669
-5CF14DDEEB8734768AED4E9BC63C28F0F2FB869A1FFD7422EF2E9F47EDBA2183
-8B4E0253A4EB35CFEA15AF9F1BEFD2399654ACEEE92E69BF73D972C7BF20061E
-4F17351528C4F0AC99AA6C3BBEEE665233D87586380A1243259A25E43E2E53B8
-1B3A5558593CC57A8EC0658B0A68B19F75768A4D9922707469F6EF6E54F61028
-6B87619DAAD208CD94F566A5BB6B7D5C91FCEFA71D4DF64E405AB251ED880BE2
-2BC85264D10014245FAA8B3D24AF4EA6C94DC182B490529B959C2AF445D0B64F
-00A84B263C75D921520272358971913827F80D9EDC0FC6D530DEEC98694E371F
-F99D68EBB6ACC724E9E24B35A041E30FA683448C7F911D3BAB0C015784356B3E
-3877A3930B39CA4F044B5F27BE21363177D87F3AA17443F719577566706FE5E2
-5AD4C08831CFF69682FA5C79A35F161C3D3A2FCF947E220C745548A8AAE4DE02
-393C348F823EDC0E8217D7A0A22D29EC81E870D847E0B5AC70373288321CEE2F
-6792A5A049373C3ADCC406CBD073EFB7F8E02B7C8DDA5AA5C677846353DE26F9
-FF6E8BB1E5C9205CF85AD47A1AF6A0106EA21CAEEF6248751EF9AD8C9332A062
-014FF0437BB06BBC69EE3DF00CFCC9B305C6EF7BD56A83DB7FDC3EBDB4F38B8E
-F8563843C545D63D7696C0712FDA1355647EA227A114BFF168E80237B9F4E8C0
-D8BF6D5F35B3893765455BC93F0C7C1B8F7CE1C9FADEAF99B347D3BC89D77403
-B52F18E169160B3D7B4B285DC8AD793789B3C38283A68366F31AF984DB4B1462
-15664B31878402710C06CDDE93CF3D2D8FB3FA4C77454FCAC2C00D04FAE30CF7
-AF07BC3AB99EBB3E53FB8F61790A485F3C75DD2643DADEFA40F65DF14FB51A47
-4BD45ED025DABE0E51F61191C2CE01679461CF687CF82BFAE5C862C76755CFF2
-63772D06B2DBBCF939D391A6FD31197AFDE1FBC887B8F721A3FFD7ED503FCE64
-738A2BD925497B132C71953A40DA66E66A9995FA086A9BA65EFE12EB9AF9F17F
-F874954FA5088ABC6BD5183FA0CCE6EFAFBC25E660FA696B835841078E094ACB
-3A69C47EAEE44DC7D5C805FF3E8FBD98D7D627BC3FFC4D3B0D5105A808C8814C
-E834135A2E695A043BA77F896BFCB05100A3569C9A54DF75D5FC39DA6A6E423F
-FC9D55F1BEF24421C7E278F5ECC0BAA7EC37C813980D2BE521DDD9C458E5DDA8
-617E65DE1AFB3034C82456A53281B3538062DB3AB83D159A1BB56336A693F3EE
-9E5AADABBF04678E221677AB3929BB0E2FDAE67BC99CC1BA336093DCCAE56449
-9131825F927003F43EDF02F351E9DFCEBDD798E550D5341340BF50F385C8E4B3
-300C72217F05B4B8CF40202C3C94D6C2CA0EA2078A66C2995FBE47DC11724374
-C2F88EECDFA55E4D78CC5B4A452F9F584F30B3A850CE9CD3B7574110BCC26065
-FE245E3DBAB9C6E7FCFDAFCB799165346F72B1F2EEE7912AA0D8A980E1A41203
-E9DEBB4F42D85F8F279BBE4295078CE0922875B17485908E4D6A820AB382BC2A
-716328737006119FC2C8D7A133A3934672A6428E8DF330D7C62D3AC9D74B636D
-E31E6D8B296A8A9E55D344BB35B080491D090EFE1A4FA49D021F029FE6DCB598
-83B9F9E058710E22E701C6BC3AA07824732717B5A999E60A4201B94560EC01DA
-F0ECEADF2405386ABFBD777AD4E65B5F6E7C6AC622E5727C93A0B3BADDE1F82A
-05899B63F8CF0C3E0BA9714FDB7C36265177D367ED86B917BA382897BEF9BD7D
-74BFDA757D244BE2EECE36EE4FBFEF0D1FCBE29EF7CFBD160678ED108B5F4ACF
-9F1EECB3EC858651B57FEE3BD3E51706534910A98311D45D297B831DB014F04E
-A065A9A9392046EAC5339CE1709875C7183266F6CA7C38A77CA6954D9A2B3E22
-BC52B6E9ADB639C65B88C7716111FA97F74CEB52621832B5CF9E2C23E5A5189C
-7B11402646E577D18BDEA38064F06E1F08C23DEABC958C6F65B709044BEE4F90
-28A51130C4FC246BE609D7820E1577C41CAF34C674BF18350BF34ABAFE904805
-D8E90CBF8FE3519EC80F8CD1D44BEF4988960AF99C866A90FB0CBB43E28046AA
-F67D9C71456D546BA2F93CB61C3B478AE602BFD0B308A920B97861338DFE0377
-1C4B256394D4C6A33043728BB685C0DF7AA973FA27B2845016B5D21F42C30351
-463A3A6B41EE813ACCAF2B37DD92E8CD4ADED3914391B465592B6F54780C849F
-E4A99A3039829D777D26F4FB6CA7690D9214F43D76B35A8E970E7BF725E6131E
-A39B28935FEC35F3F4F4B6B70D8BB7B0CD0DF5F210B5CB9745A2591A7468A313
-064C5AA1AEA701D67D10EBECC14B231AAE493686F0983B9107B7EBE90CFC3E1F
-A3F8595185D06F86940B18AFFEBB5C64CCE090026D22E2B1651D56085BA52042
-EAEC21524A2841EC34F93EB917FC370A159C16E2EC464AA9524FA9CB89532F16
-5731E07F3D4AD95CCBEA55337BA8956A212631AA04957ACDF1D0DC5E863DB4D5
-1FA9414A411EF386DA295EDB0E412F5750038D86E38A5E52BF01C60053A5FCDB
-F41229C1EC19984957655412BE676EDC3BB437079D5F3CDD66DFE8F873115785
-3C23C2FE07BE4CDCF75735814CCFEBDAD0CC1A7C537285ACEA94A10EE9B3B756
-470FA5269E8AC533FACF62B876C4F7E1081C68AA3F99A841F06C9F7CB6B4B781
-A705CDFB3DF74DABAF51024D1319E3BB29A6477678226855285B1ECCA912ABC0
-F8F126B2A1A76486A313350BB38BA0A7906EA71CF31BCA0A035CB58D5D3B6D0B
-BB3D56C606E1F9E296D3A78A7403FE3425DBAD4CB82A39A8461467422AAED595
-C1AC3C24EAB70CB41E0E8800B5A689B70A846FA9F1D41D00EC81169819F26365
-1B07B437BC916C8DCB3B100D417B78B7EEDFAEB5DF6A821F9DC9BCC9144DD282
-69880656B07594EC372AB227B2251E55A43A63A52F7C4C7F356DDA40A9921ECF
-018AD77698154D5E3D70425DDC27
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX20-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 35768
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 14 /guilsinglleft put
-dup 15 /guilsinglright put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB97A2075592DB74A1A04E90939C9E9C4A8F438BEFC93D5AC7CB71AF1026
-AF32540C0FC74F3E14C9239E2F222D5A9C4E8F92C7B91830080EAE6FC0A9450D
-8EBC5FA8F7416B2E490B12C00F9C9EC927282D9F0729E4CD3D8880E3E04E1FAE
-3B9227357235D96D627E3ACA3446F802571351CC6B1E21E2AC3DBD4F5A7BDBDA
-C371E05E4AE97BBAE69A4A1CBF84790B20E882C3A13092D14B1AFD217F6C6714
-C9F383DCC8BBF7224653928010D9C297C61993388CE6F247F438F597F62178D8
-7854EC9FA698B4855DCBF3BDE7660099E5411F1C45DC780E1147750E6811B0B8
-94A902F1E0E35278812A5D58EED4242B54BCF63A8347443849FFF1388EEADAA3
-07232C6978897511DE1DABC18874AD2E075004B780CCC943753D16BA91A8403C
-09059249DAC2F51AAA8B7234C8
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 156 /IJ put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
-19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
-F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
-78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
-3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
-ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
-E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
-51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
-906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
-30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
-C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
-CF6FF708F7024031
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (agon.dvi)
-@start /Fa 204[36 51[{}1 66.4176 /CMTI8 rf /Fb 153[33
-102[{}1 83.022 /CMBXTI10 rf /Fc 133[42 9[53 6[27 58[27
-46[{}4 83.022 /CMBX10 rf /Fd 199[56 3[56 52[{}2 99.6264
-/CMBX12 rf /Fe 180[106 1[106 1[106 6[0 0 0 15[0 4[0 0
-14[0 0 16[0 6[0{}13 132.835 /TeXMUSIX16-Regular rf /Ff
-140[33 33 1[46 42 46 69 23 2[23 3[37 46 37 46 42 10[62
-1[60 3[57 6[30 62 5[59 66[{}19 83.022 /CMR10 rf /Fg 240[0
-0 14[{}2 166.044 /TeXMUSIX20-Regular rf /Fh 99[0 156[{}1
-166.044 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 242 2621 3745 4 v 242 2655 V 242
-2688 V 242 2721 V 242 2754 V 242 2289 V 242 2323 V 242
-2356 V 242 2389 V 242 2422 V 242 1957 V 242 1990 V 242
-2024 V 242 2057 V 242 2090 V 242 1625 V 242 1658 V 242
-1692 V 242 1725 V 242 1758 V 242 1192 a Fh(\234)p 242
-1293 V 242 1326 V 242 1359 V 242 1393 V 242 1426 V 242
-961 V 242 994 V 242 1027 V 242 1061 V 242 1094 V -664
-x(\234)p 242 629 V 242 662 V 242 695 V 242 728 V 242
-762 V 242 297 V 242 330 V 242 363 V 242 396 V 242 430
-V 242 -35 V 242 -2 V 242 31 V 242 64 V 242 98 V 242 2754
-4 2792 v 209 1607 a Fg(\016)p 209 2769 17 1163 v 1162
-x(\017)-234 2715 y Ff(Basses)-306 2383 y(Violoncelli)-228
-2051 y(Violas)-397 1719 y(Violins)28 b(I)g(and)f(I)r(I)-220
-1220 y(Piano)-207 556 y(Harp)-328 58 y(T)-7 b(rom)n(b)r(one)26
-b(I)242 2653 y Fe(I)242 2321 y(I)242 2022 y(K)242 1723
-y(G)242 1325 y(I)242 1059 y(G)242 660 y(I)242 395 y(G)242
-63 y(G)376 2685 y Fd(4)376 2751 y(8)376 2353 y(4)376
-2419 y(8)376 2021 y(4)376 2087 y(8)376 1689 y(4)376 1755
-y(8)376 1357 y(4)376 1423 y(8)376 1025 y(4)376 1091 y(8)376
-693 y(4)376 759 y(8)376 360 y(4)376 427 y(8)376 28 y(4)376
-95 y(8)1000 2869 y Fc(pizz.)641 2753 y Fe(@)863 2852
-y Fb(f)890 2636 y Fe(\030)p 890 2761 4 108 v 891 2761
-a(.)891 2653 y(\007)1138 2753 y(?)1000 2504 y Fc(pizz.)641
-2420 y Fe(@)793 2504 y Fb(f)64 b Fe(\030)890 2271 y(\007)p
-928 2437 4 274 v 39 w(\))890 2437 y(\007)1138 2420 y(?)1000
-2171 y Fc(pizz.)641 2088 y Fe(@)873 2171 y Fb(f)p 928
-2039 4 108 v 929 2039 a Fe(\))-39 b(\007)1138 2088 y(?)1000
-1873 y Fc(pizz.)641 1756 y Fe(@)863 1873 y Fb(f)890 1673
-y Fe(\030)p 890 1781 V 891 1781 a(.)891 1673 y(\007)1138
-1756 y(?)641 1424 y(@)873 1540 y Fb(f)p 928 1441 V 929
-1441 a Fe(\()g(\007\000)641 1092 y(@)793 1175 y Fb(f)890
-1208 y Fe(\030)890 1009 y(\007)p 880 1127 60 4 v 928
-1142 4 241 v 39 w(\))890 1142 y(\007)1138 1092 y(?)641
-760 y(@)873 876 y Fb(f)p 928 777 4 108 v 929 777 a Fe(\()g(\007\000)641
-428 y(@)793 511 y Fb(f)890 544 y Fe(\030)890 345 y(\007)p
-880 463 60 4 v 928 478 4 241 v 39 w(\))890 478 y(\007)1138
-428 y(?)641 96 y(@)863 229 y Fb(f)890 13 y Fe(\030)p
-890 146 4 133 v 1 w(\007)247 b(\030)p 1138 146 V 1 w(\007)g(\030)p
-890 129 500 16 v 890 154 V 1386 146 4 133 v 1 w(\007)p
-1634 2754 4 2792 v 1813 2753 a(@)2061 2636 y(\030)p 2061
-2761 4 108 v 2062 2761 a(.)2062 2653 y(\007)2310 2753
-y(?)496 b(>)1813 2420 y(@)2061 2504 y(\030)2061 2271
-y(\007)p 2100 2437 4 274 v 40 w(\))2062 2437 y(\007)2310
-2420 y(?)g(>)1813 2088 y(@)2061 2039 y(\031)p 2100 2039
-4 108 v 40 w(\))-39 b(\007)2310 2088 y(?)496 b(>)1813
-1756 y(@)2061 1673 y(\030)p 2061 1781 V 2062 1781 a(.)2062
-1673 y(\007)2310 1756 y(?)g(>)1813 1424 y(@)2085 1467
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (180.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 2085 1467 a 2100 1441 4 108 v 2101 1441 a Fe(\()-39
-b(\007\000)2826 1441 y
- slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2826 1441 a 2826 1441 a
- end
- 2826 1441
-a 2844 1441 4 117 v -20 w Fe(\007)1813 1092 y(@)2061
-1208 y(\030)2061 1009 y(\007)p 2052 1127 60 4 v 2100
-1142 4 241 v 40 w(\))2062 1142 y(\007)2310 1092 y(?)496
-b(>)1813 760 y(@)2085 803 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (260.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 2085 803 a 2100 777 4 108
-v 2101 777 a Fe(\()-39 b(\007\000)2826 777 y
- slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2826 777
-a 2826 777 a
- end
- 2826 777 a 2844 777 4 117 v -20 w Fe(\007)1813
-428 y(@)2061 544 y(\030)2061 345 y(\007)p 2052 463 60
-4 v 2100 478 4 241 v 40 w(\))2062 478 y(\007)2310 428
-y(?)496 b(>)1813 96 y(?)p 2310 146 4 133 v 2311 13 a(\007)p
-2558 146 V 248 w(\007)p 2310 129 500 16 v 2806 146 4
-133 v 248 w(\007)p 3054 146 V 248 w(\007)p 3302 146 V
-248 w(\007)3674 212 y Fa(3)p 3550 146 V 3551 13 a Fe(\007)p
-3695 146 V 145 w(\007)p 3550 104 292 16 v 3054 129 789
-16 v 2310 154 1533 16 v 3839 146 4 133 v 144 w(\007)p
-3983 2754 4 2792 v 3987 2919 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3987 2919 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/agon.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: agon.dvi
+%%CreationDate: Wed Jan 21 13:49:58 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 23 423 552 782
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX20-Regular CMR10
+%%+ TeXMUSIX16-Regular CMBX12 CMBX10 CMBXTI10 CMTI8
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE agon.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1349
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 51 /three put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
+8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
+B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
+FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
+C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
+74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
+20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
+DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
+C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
+900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
+2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
+C9D16A50DEBBD3862698DD582667C8A8079FD1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 102 /f put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7C97C35EAFA47778CE03E863303582D8A9901881E9A5E2B11B1B3C37D5
+69048F1FF37F535313F28EAD00061C788547D3D2EB16DFAFBC7024854A277D0D
+F4AAC20E3976FF31771141FB9F3D09836B0CFCFAF9E7D244071B530339516E5F
+AFED73B2D0E42C724CED873AA66142B95C8F46C83ACB6F5198450DAD0B85AE88
+2499B67C297F1AACC09B75E17345047F5E29A702C2DB50EC133977251F24C074
+69B4D9E2D854537671BBBDDC731BA5E0F963E75BCCC20162661199E89CCD5C05
+BE422124B8CE4668445BD623969823F3D6E94F5669153944489270BA786094FE
+655994C9314928787530F7D1AB9C171917984AF4E70823C6F9CB950F02184BD2
+B07E752DC88685DBA68B8989BBD83AECDE0FBB628235A71B1F39BC0406AA3B1A
+196770D283690A5579F36F7D0D479FA61601520C602F9296518227564200B4A4
+AA10760391183B27B7701DC3ED5C68C8F575A253BD54275131A21C002E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX10
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:06
+% 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 (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 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 105 /i put
+dup 112 /p put
+dup 122 /z put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA62096D089075D406
+DA26D85EEE2E39C5B7B8744351560D8FA3A5A87057656A44B0C6EE4B4EFE3380
+8277D947D080AECAA54AC5EAA48CA4A8D440083C99B6C425B64C934913363097
+BBC34829CFF22B2286F2439B95D48C104ABB6F15BD9C543C02BAA1E9B80906F3
+98E709E4D642D169A45681E0C39074A51C110542CC37FE9A5127BD39090EFDFF
+950AED31E65936442C20E14598F0BFA3B6C2011B842784111020D76D9D154648
+8B7E05ABAA458C5CE797A327685C2CF67DE36BD013A05DB41B01540963159E3E
+FBB7126AE6231E3C48243AA2E95DF0659993DF1C0DEA4E495547C25D2893E35E
+24435F55A2D66CE9FDEFA9A40E38B7DC25D78E2AA6DE2D8C18BDF9A390CB27B1
+7E572A8DB0D0565F05E271CF122E3770490B395CD0710083A77BDC82ADA7B15D
+4FCBB6EEF0D1E8D9575FE95B6B95517D685A8FBEA16853877991059EA431790C
+34B0DF36A8825B776FAAEF162FA24EB17C99F0EDFACC763141BB17A96BCFC812
+74142D452C210D2B91279D88C443C2F8967138A65F45FA34328D15C87D38CEFD
+39D11A9D53C18C3435ED03A52149BC1B5BCA08A201142248276B7E4F8924750C
+8361FDB1FA328B4A292B55A210FCB74F1B7D0C32C7ECB4241699220EBDB1EAE7
+37051C55625AD1F9B8F9966E65A7C94A8BAAA7EF735E4FAB04830EF077A8D788
+B224C18433977A97CC824F55F98CE5C578A52FF470E124B6A09DF2EB1E99918B
+82D8BBDB1DCFE65325453720F02A01A65CCF93D555CDC7F4D5012C1B23E48331
+7E848D4299227895D8AAE708196E122DAA1E98C127199A84F062F58BDAD01BC6
+64D35CE925F6F04405595BD5A8A008C01248A4D19B97CB47F87BB44B486BE483
+5A8BB911F79B093DEEC937526816B7E00D14BF1C354506C4D96785EF71100D53
+E3D4AF5E2FEA0ADC9B907A21E57660B4F871BBF68329A3D45A586F01FE26B76B
+F98026BBBE228675A553F3A56FF81A199C05409367F650E5565495A5978375AB
+DCD02EA24E6776FDCA857FBE0C3CFF9C5CAD1CB5BA1AF1B6A8D13F6A0D3E159A
+A2644EC087D61BD7F509234968915C6A9FAB3D220C7305A0E23FA232F7FE0E4D
+FFF2374F35B430D539E3084CC51598593A29A579A3F8030338951F8A9B5A721A
+CA5A4942F0C8B9441F7902B05E41E873AB4B7F777B9230CD225D6B39AC832EE1
+D4924DEE59511A01820C735A89408B246DEC7015D1FBEB59F18E30F87F492CAC
+57E7870BCE9CB417CF67B7B3A873ADE9D4B578B6F12E3B2B4111CDB5B0210711
+0125C9A43CA42E677AF6E8F024F1F828C721A0BD5B76C4669B7417051F43AC8B
+03581B584CAEAEB1A211436BE37B14409E6900FF327B3904ED3AE0A5E602A1C0
+C9FB0FF0035ACFC8630CB828BE3B18FC7BF38796150F907B6F51A7DFCE3FBAD4
+6BB13E4E9E49725E385686B5E8743B8E00D220ADA11055B3F6021879263F62D3
+A7E4B47465BD14D5AF91C07A66BF4818A2CF7CEF58ECD31833A3712B1C947E98
+433CED96A4E61DCAB568F9D71F3A5BDB36632F567F897821C24E693ACAD00ED8
+D34419C64DD5C21C8BA997980EB1FDFEBF394B2F49B6E384C9EE17F4D8EF5564
+8FAF2D132863B44FD79756CAF72E7AF89D6E523CBB731EB2491A0B26218D65E8
+9B23CB7C2605D0AF8F7957010CD81944E67EB971CB01D4906FB669169CC596FA
+20049428612BC4F75FBA92851B26F717AB0C475014A72E0802D22680779397DB
+F417A58DA3259D67774E302FD34E2F4F6667B2AFF82596506CA75B69EC1EB68A
+1680639139ADC6982E5922BA0ACA82D8799DB4FCAA3E7D404C2373F74A76AF18
+170C64266A2D18B662D501AE6C95AB8E8FD70DD7A6458B775651BE8FF5387F0F
+33F15E3C8535556C6D96DE887F9FD6150DC29A3D56F53709602F48A48B65E990
+29E26B41EB5A90E84B27C5B7A46457DF48A72C4C8AC4FA0BF1536C27FD496CB5
+AF570596F76FBF986DE7D67D093CF4C480D97CAF974DCC858139E3B4EDA2D087
+462DE4D9A78AF573E4577488E7D02E282B34CB53AA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 52 /four put
+dup 56 /eight put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13D37A678E6C544AC8C13C10252078C4B31389
+56E1CA0B7BE6A6AA7CDA8B3A12CE3242CB944A345392BE21B77039E7A2A828F1
+FC838C23704D78FDA95B4C563092AD358A9501822BFC8CDDC263202A83687975
+EF90EFD45C30C5079EA0C652271360C4FBF9B4F52A51001AA56B3EF31F5505BB
+6876B86EA3AE17B7C4808DC676A9BAE6D4AF2E5E55140D98A91F7D869319AEF7
+F8EAF3103B4BE05668DC178BA7CF9CAA9B8ACCF3187E051197CD82F138A05818
+D153E5368A5B3D673B08FA24A33299C5DA9F28D1D8DFD08CFAE5EF56E86CC806
+40083D590C2D8B62AFDBBE0253B3441538D60E4A4C2EAA80333A504F4732E41A
+05559E56F9A03B5B3814A55106805357AEC7B8A2F4231A316E09D4143B8467A5
+0B36EF89792710016701E03D0F6584F84FCFE519DD39B0337CF098BE95AF6DD3
+7120F7DF5DCC10D73A689FD9A484995611A1E0C3800C34E59BE59EF50EEF55B1
+6311731A57850D048BA8AAE0CAE557ED692A3840F743C509BF18D0F166271203
+008188663DD3A77112E2EA9E5CFC358304485456FFA7F323EA5F705AD0D8C2E1
+F56D2A09082050E197765888B7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 24 /perthousand put
+dup 25 /dotlessi put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 46 /period put
+dup 62 /greater put
+dup 63 /question put
+dup 64 /at put
+dup 71 /G put
+dup 73 /I put
+dup 75 /K put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8647CDA944FFAE6182F991CDF884A974262D31362D2CF0317CF97E29
+EEC652612CE1B987BF57B7A60BA840D2512039A8C81F229855008D6E58B76DA1
+D93486DDE86D173AD3B5AF2997FBA58A2FB615DEB2C802351A89F44B6CD6663B
+BCD73ABFD0DB844C34EDAE6C1F1D0498B158C9C0BBA09D05EAEC505A60623A12
+A6FB844DF87E1ED01AF28839F5C26D608DFDAA4148A9460970D89BCC2348730C
+4A5DDFB22A306A35C15732EE150B25508C66C33CCAF53D3CD8B03248064960FE
+8716EA3E4FAE4F451BF3A3E1E046900D33B0201CF6CCF265241002CC42F60DAA
+9D286C8B5D78DDF9D53CD444FD0B3A8FF9B42192ABF55E74D787B420E947EF23
+02E50773CF8E838BEBC400E637A1B0A8D7C648105BD5B50C8AD964B73257EB84
+A4067DC8ADF99166634C1AE4F510438121E13EFAA746BA88DC002B18739152C5
+D1F3D735A4CF070F4BDF9EBB68C9D019C7DB8A982F379C4625E7CF700215C8EA
+D6B1E6F4A1E7CAEAE63E2E9D761D4A0827062A23EB0887BA9EA3B199933C1308
+A54C41A032E2C24FF4C62FFA6997C4073BD50510962B2CF1AA39AA99D4EAC2D9
+B2C97BD3100591C098082C1837AB9CFB4DDA5896A9C538BCED24FB078553E2B5
+1246BFE9AAB7FC3E725CF3057E6E4AC4FE22664F4100D4F9FF6CAD4677CE4950
+4F31F635D5487A397CF1DCFA7C6B01594FE49F1D0008D67D1E0830714256F79A
+31895A6832E0C9CC8A05B0B5B2B2CE3368C46FA4EEE9AF3DA0C1F7F0FF0EB061
+E7B60D2B0827457D8B12E6838C2DEE02661ACBDDE1EBE40D8759250080777EB6
+409B789945C719B96D3F5D35C8D91180E1A023AD4650F7D0DAB80A3E4DE00823
+2815C3FB4CF56309FA76C8295084E204042970084BC090369063DAB7255C91B9
+0185B1424DA3363910025A85A776FF563CB81EFA2E7821675C33942889FB5BB4
+6E15814DF96FD989CF9A31719B42545B9CB5E04C48B489BA7858453B8EFA26B1
+30DEEDFD5CE658F87BAA6CC8535435A893D777D441C627EBF6F3030620E4117A
+C4E7B1B352621066089F879641C60D97C01C7E84EC60773DB2882FFA9FB65BB8
+BF6BC4F19F9439948DE79B5C2C55866D2F869DEF9B3A6B1D713EC6C75D38E639
+98E15BF5B2D521930F5644D992297686ACF4C25CD73E57DB060139B41A59200F
+2539DAA2F3D3B33E7D926FA1F357D91FF07D79D237B13C1696CF8EF359F6299B
+5907B16B0F9677E6E5DF0115C7B07525F6FFA33259EA8740AE62E0AF3A0B96C4
+88E0140614D7FA00CD78D96C59A7EB64EED2A24C4A7C9036B7EAD93FB929EB79
+E2E3FD0B3D5610432EDC60A28B95AF2A1501E0DB2A4572613498B689FA681BB4
+884D054AA38BC5095FB69B5F52AEA7E52D5292655B345B8F6A09A844D3C2E5FF
+CF8B5C2F15AC093845B7E6A1DF5333EEB339AFFF61DC80DCED3673EF48F97064
+27C3390EBF8FD343DF47F8C7E9C696DB23A19F7E23005DB768F71017B3BFDBB1
+D077273AEE8F6AC4C3A5157BC3CD1600D7FBB91DB4B0278ADE86F32EDE26C1C7
+82D49EE1DBC9FA9BA4D4D7BBD14CDF04D17A779164296B1367BF1D6DC30DF9B4
+8C7D65364F958529A0BB69BC304B03F5C4D6C8C611ED14FB2F017F2D024FDA2C
+A3E8FE4D515C50BEFD1036F8BF6CA77B6013F0CFAA7874FAFA749F128F5F7C55
+4C2FCB16399DD16864A66B472B7A6EA03677A1EBA87859AC909BEECBFFA80AFB
+A600F749FB8C5D485DDFB24BEF2E6960970B2DFDE2F1758230E4D49BC081EAFD
+915DD86FD22C6BC67A51E609B6E3AC660ECB430C715E08836B571621A37746CD
+1F3ECF3A6E378BA3A9B44DD4D6DC6365EEAEBC4DDC8AD9A37B65DB564C544034
+04EDBC6FD2936221345E6B95F045586C5D60C9D148852CFCF4C9D29AE9F951D6
+39FC48B1365C6EAFD09F7B90BE82E27A41EF326E0F7C28D89FEC19E95715D356
+D0CD4DC6D6947250C06389EC2E578B94BBE1F533AA4BD0C6CFCC5F668D9437BC
+11192D51E6010B9F2DE9DC87A7F37237B5F7FF6BF55351ECFB5FCF325BE20362
+45736A607EC88723BB270647C17F458D5BF4AA8607AAB4A0D8D46BB676059901
+57AD31094A111006B333CE42335BDB9B9C6E8C68218520A0A6F0D6B779F77F63
+656A97DB291E65923C80B26432E16C8FEC99BE84C656A9E8C4076A60BFAA87BD
+D5BDFAAB4D349CE980ACDA02567A9A1EB12130FE4B37838B1F91A0269E4C4B62
+53E4E0D4ECEFE9D46B418E0900C121D957FD9F95EF7AC8345CB665FC720C6A7B
+F995035406C640BC77D0B7B40BA407442A38FF3A480A46641C9ED807CAF7008D
+EC766B5A419C6E613260F326D01FF16F7A149128101A60B122DE9EF37AB3CE07
+58F04F0E7374ABE98523E72061011729BAB5E06FB439CE4A08369A2A26E69BF8
+28680716185F9BA8C2F6FC05B4E1E8E4BF7DE3A0846F082DB947B84956CE462A
+9D29DA5A619DF6CEBB66B67CA5C3009CD67EAA761674ADEEDF0F9367401C9999
+2CAC30279793AADF367CD7EC598FB1C5F7F5EA9DC9C6EEC0FEE5B90489D803DE
+A874BFE9FEE6ECB6AD565E776E901D08E1CC506BCAAC63D151A7E9952CC62452
+9ADE02123F9081C67909663F66818F022FFB29FA04031E404F6A1587C70508D7
+EDADAFA9D0437837F599667621C99EA25D260B2FC8D65DAA6CF77A75CDF00F29
+F73D0FEC9FC74B65216890A85CBA5E4F32FCECC92A6997281ECDE447146E57B1
+07FE754B3B994FA79DB15599636952F4CA63A2E1EF5CA8A2FC1E46E001259800
+7654E1CB775E3CF6268F5E6683E27914D7C89FC8B01185ACBA8E721820116736
+3DB3727802306CFABE628B3EF30566E4E0BF301875B1F001CE586CD0F1FEDDC3
+98D33F71ADEED3F1E3C32D8075640367E7ADD99FD66C282464560EA03C661CE7
+F1FA2724E40EFDA919AF1DE762AC4E74F9A8ECDB60EC2EF0B468654717817F11
+202A7CB60501B9A6EA455C19858A98B907B32556E3402CFF3DC1B9B1767F4DA8
+D6CE110B4E207276DD91533E05DB72BB08EC68B27D1479E971E5608B5A353D98
+E8E2EE3C075DA92DE349BC6192A112BB0E4A3C0BDD01537ABE304B2A70A1811F
+CC34C66E5840B8A350AF4F32FD2A26E8093EBEBAE1603C9FB5DCE9EC4FC368CF
+E4F746A59FC702B3A18EE9DCCB0DB2D5B6CC0EAAD8AC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 66 /B put
+dup 72 /H put
+dup 73 /I put
+dup 80 /P put
+dup 84 /T put
+dup 86 /V put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
+71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
+F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
+81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
+8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
+4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
+9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
+B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
+4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
+828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
+E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
+C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
+C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
+3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
+CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
+78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
+31E8F6E32F83DE748E345F81D3BFD57E78461379ACDEB99CDE6205C96BFD3DFE
+3B966D19B25596A888D7530D42F284E22E30D2B418CAE285AA38F9FB436D3937
+147E92E69D23E9FD278CD5F26788A7E5D8476DE8E214B027C657944A22B273DE
+AF5C865DEA06501B0FC53390C31DB0C5524FC0B441DBBBDF8CA7719FEF82D047
+EC589721661434F10863F360C03889E73C6D5284A9C8FBCC63BCFE94F92F30B6
+631AD70770A6C965714022203CBCD92E290F4C5C6C5F3BCD35EBA1FC0941BADF
+67DC1C8217D75912AB398D75ECA80CAB9790B649B619DA1B4F0D18FEE4AAAA38
+2B97D66E5A22B56F79FEF4AC37087C92DEF6DFF655DFF39C5B92C79835F6A047
+1D958A46754F0381669CEF48B7DEB4A08ABFFCBF52345BE913E32A3390EF29EA
+6A156CB0B5C7D2152683D4FE7CC6AC4B33741066D8931BA1BA8D7818400B19CF
+A8E8D53DDC4E950DB64D53B6FDAC295C7FC1FD7C16A6A5DEBDD82A0C4A86F031
+7F94386C42736A73E137E86E9DF6F0B3562FE944394FA556BB62FE7F4C170298
+88C8905B12E29B0FC79F2AE5CE24539060B9E93DF5CA29B7192A9393F1B9CEFA
+A4A44E275657D01F6292FCEE04FE42EB033DFBE2E387A0EAEFD03A12376C5901
+B015925EC3C0018ABB259D686337D1B0D90EF10851030542EF8331C996864845
+4AEDA437998668EF51093AF2E3374C18A0BA897B83358223B2C0F9A2909F033F
+DC0D2A7358C2252FE748CF2E3CE32D1283166224A2EABB0E13B10776BF053936
+95C8A9EA6304B71209708E33ED54AD64BB8CC956C9349C360F7F1E932F261A47
+D51DC6765CDC63BD40BA31E7D8780797EB8CE491F09B7ED9A6937FCB9CAD4921
+4D2BCFD5678B350ED0A65EB67D6D048B2F5F54BE2D88D03F217A2104FB78E5BC
+65A42D5B1CA9315FBCA41860F3D867974538D4CA5CA091D11018F88F751A0B71
+1A8386B947AD11787810B424890476474CAE0A619EEB054F8A0211851F0FD318
+501B1D117E7704E05D034CC48E37A3F6464249A72D57722D4D4F81A557146FE5
+3B6D711797093C75901ABAE442C718842F56E9E59AA8382EEC294D059CEAA9F9
+EF3D26066CB3D5F262AFFB112318990E0124CE0AFFE5E67A741CEBF562D083A8
+A82860EC6FD6D2CD18615CF4A358F86908ACD4AD4C81383D9206A268AF85A5EE
+88900A806E46FCF9E596AE4F4B10E112ED47B28990B3E6FEE9BEB89EDC15F08F
+7FD90C0392928468F1A07C4967AB9F1BD05556055F2280AEB89353F757602570
+374F9F612556E354675D4A06EFDB5FADBD66A3ED009375DB65700AF565AA2AFB
+38B6FAFAA3508F42E449E0AD86DD47A87264AE93292737E05D4A1AAEE12EA96C
+46B59758BAA8513245CD74AEA8836574E8A41581396AF2513C347F925F4CED4F
+4E4A65A91430C1CA99F5A01E5A442DF93A1A62342AC7E4223E78329AF285A0B8
+D6104A7EE6BFB881E9F19E13711603D1E0B577E54242CAC04D53681D20399AEF
+1B5E96C71D1DC72611F2A7C0D95F3693FC4A17DB4D287A658259E3ED6AC959D6
+326DD7BBF055A7A99B6365DE5AE9008FA1C3EBA8A644A19318581FE4ED41F1F5
+6CCEC8880C14F2A8A8B15FE7E894F9D0A857E9C8D2A5F5D0D5DFC52080A8023A
+C62BDD826FB64303E2E32195F42936CC723BE62217EFC98B6DA2A53A03303F96
+F1ADC2A59CF10E58583708514DFF65CAF7DDCF04D3ABC48761C6C001B09B1E54
+2D8D420A1536E1AB8235B4C6B570FD8A588A4B07605F52F4CE5E50C0DAD58876
+46921C867A04FA8668EEADF464746331B206DC66DD93614989378872F81D65E2
+822AB6F45A3AFB2A21A0E5628379DEEA9C1D9D954769F453772F27CD63569579
+77940AB3FC8667797FA406F747656544320C3A3548817AB37CD96C454DD1FA01
+C5A6D5797422282975B103C4C4D7D38525BCB5D7B8D3E6C18BDC8689AD064767
+F07B6121F7B5A3AE055E911904EC1D509D6F80A4632E96E57EA59F4C222F3634
+7554EA08FBAA610C9ECA630E8ACF8558176DEBA66E39D7485B69C07CBDDA13E1
+0FD175998013D9B9E3C0ABBAC3A0C1364E66ADE84A8821495E7E2BDBD22578DD
+ACB1993520053E7E9FD8852D8634AD6E9A12195F8F24DC3E4C004999636D9CB5
+A68503FBD3C814374D97B2721809F80307EF492F5B644B52036D2AF57B14F047
+8EB7242CE76FDA46244E1EE25CA5D65316B3417641CF072E5B4497B8C4A73AD7
+D22046363C80A818C2E2E3D130269B1FBB18B443D9842A5C1E45F9D6C3E6F669
+5CF14DDEEB8734768AED4E9BC63C28F0F2FB869A1FFD7422EF2E9F47EDBA2183
+8B4E0253A4EB35CFEA15AF9F1BEFD2399654ACEEE92E69BF73D972C7BF20061E
+4F17351528C4F0AC99AA6C3BBEEE665233D87586380A1243259A25E43E2E53B8
+1B3A5558593CC57A8EC0658B0A68B19F75768A4D9922707469F6EF6E54F61028
+6B87619DAAD208CD94F566A5BB6B7D5C91FCEFA71D4DF64E405AB251ED880BE2
+2BC85264D10014245FAA8B3D24AF4EA6C94DC182B490529B959C2AF445D0B64F
+00A84B263C75D921520272358971913827F80D9EDC0FC6D530DEEC98694E371F
+F99D68EBB6ACC724E9E24B35A041E30FA683448C7F911D3BAB0C015784356B3E
+3877A3930B39CA4F044B5F27BE21363177D87F3AA17443F719577566706FE5E2
+5AD4C08831CFF69682FA5C79A35F161C3D3A2FCF947E220C745548A8AAE4DE02
+393C348F823EDC0E8217D7A0A22D29EC81E870D847E0B5AC70373288321CEE2F
+6792A5A049373C3ADCC406CBD073EFB7F8E02B7C8DDA5AA5C677846353DE26F9
+FF6E8BB1E5C9205CF85AD47A1AF6A0106EA21CAEEF6248751EF9AD8C9332A062
+014FF0437BB06BBC69EE3DF00CFCC9B305C6EF7BD56A83DB7FDC3EBDB4F38B8E
+F8563843C545D63D7696C0712FDA1355647EA227A114BFF168E80237B9F4E8C0
+D8BF6D5F35B3893765455BC93F0C7C1B8F7CE1C9FADEAF99B347D3BC89D77403
+B52F18E169160B3D7B4B285DC8AD793789B3C38283A68366F31AF984DB4B1462
+15664B31878402710C06CDDE93CF3D2D8FB3FA4C77454FCAC2C00D04FAE30CF7
+AF07BC3AB99EBB3E53FB8F61790A485F3C75DD2643DADEFA40F65DF14FB51A47
+4BD45ED025DABE0E51F61191C2CE01679461CF687CF82BFAE5C862C76755CFF2
+63772D06B2DBBCF939D391A6FD31197AFDE1FBC887B8F721A3FFD7ED503FCE64
+738A2BD925497B132C71953A40DA66E66A9995FA086A9BA65EFE12EB9AF9F17F
+F874954FA5088ABC6BD5183FA0CCE6EFAFBC25E660FA696B835841078E094ACB
+3A69C47EAEE44DC7D5C805FF3E8FBD98D7D627BC3FFC4D3B0D5105A808C8814C
+E834135A2E695A043BA77F896BFCB05100A3569C9A54DF75D5FC39DA6A6E423F
+FC9D55F1BEF24421C7E278F5ECC0BAA7EC37C813980D2BE521DDD9C458E5DDA8
+617E65DE1AFB3034C82456A53281B3538062DB3AB83D159A1BB56336A693F3EE
+9E5AADABBF04678E221677AB3929BB0E2FDAE67BC99CC1BA336093DCCAE56449
+9131825F927003F43EDF02F351E9DFCEBDD798E550D5341340BF50F385C8E4B3
+300C72217F05B4B8CF40202C3C94D6C2CA0EA2078A66C2995FBE47DC11724374
+C2F88EECDFA55E4D78CC5B4A452F9F584F30B3A850CE9CD3B7574110BCC26065
+FE245E3DBAB9C6E7FCFDAFCB799165346F72B1F2EEE7912AA0D8A980E1A41203
+E9DEBB4F42D85F8F279BBE4295078CE0922875B17485908E4D6A820AB382BC2A
+716328737006119FC2C8D7A133A3934672A6428E8DF330D7C62D3AC9D74B636D
+E31E6D8B296A8A9E55D344BB35B080491D090EFE1A4FA49D021F029FE6DCB598
+83B9F9E058710E22E701C6BC3AA07824732717B5A999E60A4201B94560EC01DA
+F0ECEADF2405386ABFBD777AD4E65B5F6E7C6AC622E5727C93A0B3BADDE1F82A
+05899B63F8CF0C3E0BA9714FDB7C36265177D367ED86B917BA382897BEF9BD7D
+74BFDA757D244BE2EECE36EE4FBFEF0D1FCBE29EF7CFBD160678ED108B5F4ACF
+9F1EECB3EC858651B57FEE3BD3E51706534910A98311D45D297B831DB014F04E
+A065A9A9392046EAC5339CE1709875C7183266F6CA7C38A77CA6954D9A2B3E22
+BC52B6E9ADB639C65B88C7716111FA97F74CEB52621832B5CF9E2C23E5A5189C
+7B11402646E577D18BDEA38064F06E1F08C23DEABC958C6F65B709044BEE4F90
+28A51130C4FC246BE609D7820E1577C41CAF34C674BF18350BF34ABAFE904805
+D8E90CBF8FE3519EC80F8CD1D44BEF4988960AF99C866A90FB0CBB43E28046AA
+F67D9C71456D546BA2F93CB61C3B478AE602BFD0B308A920B97861338DFE0377
+1C4B256394D4C6A33043728BB685C0DF7AA973FA27B2845016B5D21F42C30351
+463A3A6B41EE813ACCAF2B37DD92E8CD4ADED3914391B465592B6F54780C849F
+E4A99A3039829D777D26F4FB6CA7690D9214F43D76B35A8E970E7BF725E6131E
+A39B28935FEC35F3F4F4B6B70D8BB7B0CD0DF5F210B5CB9745A2591A7468A313
+064C5AA1AEA701D67D10EBECC14B231AAE493686F0983B9107B7EBE90CFC3E1F
+A3F8595185D06F86940B18AFFEBB5C64CCE090026D22E2B1651D56085BA52042
+EAEC21524A2841EC34F93EB917FC370A159C16E2EC464AA9524FA9CB89532F16
+5731E07F3D4AD95CCBEA55337BA8956A212631AA04957ACDF1D0DC5E863DB4D5
+1FA9414A411EF386DA295EDB0E412F5750038D86E38A5E52BF01C60053A5FCDB
+F41229C1EC19984957655412BE676EDC3BB437079D5F3CDD66DFE8F873115785
+3C23C2FE07BE4CDCF75735814CCFEBDAD0CC1A7C537285ACEA94A10EE9B3B756
+470FA5269E8AC533FACF62B876C4F7E1081C68AA3F99A841F06C9F7CB6B4B781
+A705CDFB3DF74DABAF51024D1319E3BB29A6477678226855285B1ECCA912ABC0
+F8F126B2A1A76486A313350BB38BA0A7906EA71CF31BCA0A035CB58D5D3B6D0B
+BB3D56C606E1F9E296D3A78A7403FE3425DBAD4CB82A39A8461467422AAED595
+C1AC3C24EAB70CB41E0E8800B5A689B70A846FA9F1D41D00EC81169819F26365
+1B07B437BC916C8DCB3B100D417B78B7EEDFAEB5DF6A821F9DC9BCC9144DD282
+69880656B07594EC372AB227B2251E55A43A63A52F7C4C7F356DDA40A9921ECF
+018AD77698154D5E3D70425DDC27
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX20-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 35768
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 14 /guilsinglleft put
+dup 15 /guilsinglright put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB97A2075592DB74A1A04E90939C9E9C4A8F438BEFC93D5AC7CB71AF1026
+AF32540C0FC74F3E14C9239E2F222D5A9C4E8F92C7B91830080EAE6FC0A9450D
+8EBC5FA8F7416B2E490B12C00F9C9EC927282D9F0729E4CD3D8880E3E04E1FAE
+3B9227357235D96D627E3ACA3446F802571351CC6B1E21E2AC3DBD4F5A7BDBDA
+C371E05E4AE97BBAE69A4A1CBF84790B20E882C3A13092D14B1AFD217F6C6714
+C9F383DCC8BBF7224653928010D9C297C61993388CE6F247F438F597F62178D8
+7854EC9FA698B4855DCBF3BDE7660099E5411F1C45DC780E1147750E6811B0B8
+94A902F1E0E35278812A5D58EED4242B54BCF63A8347443849FFF1388EEADAA3
+07232C6978897511DE1DABC18874AD2E075004B780CCC943753D16BA91A8403C
+09059249DAC2F51AAA8B7234C8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 156 /IJ put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
+19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
+F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
+78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
+3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
+ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
+E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
+51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
+906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
+30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
+C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
+CF6FF708F7024031
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (agon.dvi)
+@start /Fa 204[36 51[{}1 66.4176 /CMTI8 rf /Fb 153[33
+102[{}1 83.022 /CMBXTI10 rf /Fc 133[42 9[53 6[27 58[27
+46[{}4 83.022 /CMBX10 rf /Fd 199[56 3[56 52[{}2 99.6264
+/CMBX12 rf /Fe 180[106 1[106 1[106 6[0 0 0 15[0 4[0 0
+14[0 0 16[0 6[0{}13 132.835 /TeXMUSIX16-Regular rf /Ff
+140[33 33 1[46 42 46 69 23 2[23 3[37 46 37 46 42 10[62
+1[60 3[57 6[30 62 5[59 66[{}19 83.022 /CMR10 rf /Fg 240[0
+0 14[{}2 166.044 /TeXMUSIX20-Regular rf /Fh 99[0 156[{}1
+166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 242 2621 3745 4 v 242 2655 V 242
+2688 V 242 2721 V 242 2754 V 242 2289 V 242 2323 V 242
+2356 V 242 2389 V 242 2422 V 242 1957 V 242 1990 V 242
+2024 V 242 2057 V 242 2090 V 242 1625 V 242 1658 V 242
+1692 V 242 1725 V 242 1758 V 242 1192 a Fh(\234)p 242
+1293 V 242 1326 V 242 1359 V 242 1393 V 242 1426 V 242
+961 V 242 994 V 242 1027 V 242 1061 V 242 1094 V -664
+x(\234)p 242 629 V 242 662 V 242 695 V 242 728 V 242
+762 V 242 297 V 242 330 V 242 363 V 242 396 V 242 430
+V 242 -35 V 242 -2 V 242 31 V 242 64 V 242 98 V 242 2754
+4 2792 v 209 1607 a Fg(\016)p 209 2769 17 1163 v 1162
+x(\017)-234 2715 y Ff(Basses)-306 2383 y(Violoncelli)-228
+2051 y(Violas)-397 1719 y(Violins)28 b(I)g(and)f(I)r(I)-220
+1220 y(Piano)-207 556 y(Harp)-328 58 y(T)-7 b(rom)n(b)r(one)26
+b(I)242 2653 y Fe(I)242 2321 y(I)242 2022 y(K)242 1723
+y(G)242 1325 y(I)242 1059 y(G)242 660 y(I)242 395 y(G)242
+63 y(G)376 2685 y Fd(4)376 2751 y(8)376 2353 y(4)376
+2419 y(8)376 2021 y(4)376 2087 y(8)376 1689 y(4)376 1755
+y(8)376 1357 y(4)376 1423 y(8)376 1025 y(4)376 1091 y(8)376
+693 y(4)376 759 y(8)376 360 y(4)376 427 y(8)376 28 y(4)376
+95 y(8)1000 2869 y Fc(pizz.)641 2753 y Fe(@)863 2852
+y Fb(f)890 2636 y Fe(\030)p 890 2761 4 108 v 891 2761
+a(.)891 2653 y(\007)1138 2753 y(?)1000 2504 y Fc(pizz.)641
+2420 y Fe(@)793 2504 y Fb(f)64 b Fe(\030)890 2271 y(\007)p
+928 2437 4 274 v 39 w(\))890 2437 y(\007)1138 2420 y(?)1000
+2171 y Fc(pizz.)641 2088 y Fe(@)873 2171 y Fb(f)p 928
+2039 4 108 v 929 2039 a Fe(\))-39 b(\007)1138 2088 y(?)1000
+1873 y Fc(pizz.)641 1756 y Fe(@)863 1873 y Fb(f)890 1673
+y Fe(\030)p 890 1781 V 891 1781 a(.)891 1673 y(\007)1138
+1756 y(?)641 1424 y(@)873 1540 y Fb(f)p 928 1441 V 929
+1441 a Fe(\()g(\007\000)641 1092 y(@)793 1175 y Fb(f)890
+1208 y Fe(\030)890 1009 y(\007)p 880 1127 60 4 v 928
+1142 4 241 v 39 w(\))890 1142 y(\007)1138 1092 y(?)641
+760 y(@)873 876 y Fb(f)p 928 777 4 108 v 929 777 a Fe(\()g(\007\000)641
+428 y(@)793 511 y Fb(f)890 544 y Fe(\030)890 345 y(\007)p
+880 463 60 4 v 928 478 4 241 v 39 w(\))890 478 y(\007)1138
+428 y(?)641 96 y(@)863 229 y Fb(f)890 13 y Fe(\030)p
+890 146 4 133 v 1 w(\007)247 b(\030)p 1138 146 V 1 w(\007)g(\030)p
+890 129 500 16 v 890 154 V 1386 146 4 133 v 1 w(\007)p
+1634 2754 4 2792 v 1813 2753 a(@)2061 2636 y(\030)p 2061
+2761 4 108 v 2062 2761 a(.)2062 2653 y(\007)2310 2753
+y(?)496 b(>)1813 2420 y(@)2061 2504 y(\030)2061 2271
+y(\007)p 2100 2437 4 274 v 40 w(\))2062 2437 y(\007)2310
+2420 y(?)g(>)1813 2088 y(@)2061 2039 y(\031)p 2100 2039
+4 108 v 40 w(\))-39 b(\007)2310 2088 y(?)496 b(>)1813
+1756 y(@)2061 1673 y(\030)p 2061 1781 V 2062 1781 a(.)2062
+1673 y(\007)2310 1756 y(?)g(>)1813 1424 y(@)2085 1467
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (180.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 2085 1467 a 2100 1441 4 108 v 2101 1441 a Fe(\()-39
+b(\007\000)2826 1441 y
+ slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2826 1441 a 2826 1441 a
+ end
+ 2826 1441
+a 2844 1441 4 117 v -20 w Fe(\007)1813 1092 y(@)2061
+1208 y(\030)2061 1009 y(\007)p 2052 1127 60 4 v 2100
+1142 4 241 v 40 w(\))2062 1142 y(\007)2310 1092 y(?)496
+b(>)1813 760 y(@)2085 803 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (260.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 2085 803 a 2100 777 4 108
+v 2101 777 a Fe(\()-39 b(\007\000)2826 777 y
+ slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2826 777
+a 2826 777 a
+ end
+ 2826 777 a 2844 777 4 117 v -20 w Fe(\007)1813
+428 y(@)2061 544 y(\030)2061 345 y(\007)p 2052 463 60
+4 v 2100 478 4 241 v 40 w(\))2062 478 y(\007)2310 428
+y(?)496 b(>)1813 96 y(?)p 2310 146 4 133 v 2311 13 a(\007)p
+2558 146 V 248 w(\007)p 2310 129 500 16 v 2806 146 4
+133 v 248 w(\007)p 3054 146 V 248 w(\007)p 3302 146 V
+248 w(\007)3674 212 y Fa(3)p 3550 146 V 3551 13 a Fe(\007)p
+3695 146 V 145 w(\007)p 3550 104 292 16 v 3054 129 789
+16 v 2310 154 1533 16 v 3839 146 4 133 v 144 w(\007)p
+3983 2754 4 2792 v 3987 2919 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3987 2919 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/autobeam.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/autobeam.eps
index aa151f9a1e3..b72a9ef26f4 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/autobeam.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/autobeam.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96dev Copyright 2007 Radical Eye Software
%%Title: autobeam.dvi
%%CreationDate: Thu Jan 27 21:37:26 2011
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 28 706 309 785
+%%BoundingBox: 28 706 309 785
%%DocumentFonts: TeXMUSIX16-Regular
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bars.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bars.eps
index 2ba98355761..497211e16f6 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bars.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bars.eps
@@ -1,716 +1,716 @@
-%% LaTeX2e file `eps/bars.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: bars.dvi
-%%CreationDate: Wed Jan 21 13:50:47 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 547 313 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE bars.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1350
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 68 /D put
-dup 82 /R put
-dup 98 /b put
-dup 100 /d put
-dup 108 /l put
-dup 114 /r put
-dup 122 /z put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A77C8392948FE1B07931A19298FB60E443E198089A0A
-16D46095558E6DBAB7E03022F2A762470D545CE6B8D931FA66E63DDB04125D5E
-A2F86EC0944B0D160100C2DB33B92C400A8CCB715F68477177459BCD57C86D97
-449A25D63E9584EEF820A7AB919BC62D28434BFBA0EC53913CEB3BF4857057BB
-3FB43E95092D6DC0B7CE4E1D8C1FDD292F80E973E277C7FCC9878D2F97D0E3E9
-8DD466CCB4EEC3E16429C36FC9583A048A83F68049C707E5FC1473E7DF90125D
-BCC3489C04F227D170EA0C1E8E021294FBF894B19E966F94B1F3FF879474E9EA
-34D55A9EEB4459E5DBF801CDAB652D681BC673C26D3C73FE1AE6232638CB2582
-F75CA7F1BA6327B0A39B251E10606247224799C0B710586D3E3DDF28A5864D56
-6F5C532735511ECB7C52B7B6D47042B26B5C7B7D12DE631FE3BB27C41F4FB436
-5874CC0D1A182B42E4E0146BBECF156134C82BC2BE6F136D0439FF5B2585A53C
-7CB0DA52270915680C1610576D93988FC7CBCE8F8EEAD343E3ECEFC659191023
-535D48D74EF82BB5C27A4F560CF281011DBFB3AE77F0833EA7CB73F9812B6C57
-4F506493DDFF1FCB2FB7F9F4B2A47C512F51339FAD5776CBF8589F4C9FD3DBA0
-3EF6E49A632BF7DE5EC45B64A1F4ECF43A686529B303FE7A7A6F9BF69F3C40AA
-BFFB9D7E353A94D5829CE98C4B7A2AFB114183DA45B72912008470EAA54F3DA1
-1614F3572DF7D43FC9CD4F2278E704762F83464FB19C5B5F5940EF2F716CFCB8
-C09BBC8863D02E7CBBC3F9B1AB0D125837CA2BDDFA65ADE7B824DCB6753DCD85
-34FB2CB20A8A656A5B91896E629F88B5154687013151452CC2EE73E36C7D753A
-182B0BAC8AB381658DF10814D8C2A0F73A01FC220D1D53AE3CC92C910CAC5922
-F6AFB148FCE2FA7ACD5D5FEAB7B6C6A1BD4E6F8E61B2B8C26A1EFF7D7EE86171
-437F24D239CDAC3ECA00F77AF773067C4C4759322BAA23F3B6469506D5E38BFE
-6F3996001BC328E6E729E810C5FB083E7C6B004DDE9B0F4B3E605DDC7157570B
-F9274971D48919E8BA3457D005A9C5ACBF0E52BB9F1908D48215F6542C6A7833
-6BFB77D9D6C791BD63B7CDA608E9F06BA20DDEC232B6AE477C2422A39ED8E31B
-0BB9134DDFE14371AE8B33281C5998DB170387BC3D47F241BE6D4A8EE7D3AF53
-EAB42411AE0AA34B548C4E1B8EC8AD38647A4FA834E3E4830B5F83E1D2DD5D2B
-8ED9F4816FEAC5DC6E80968AAD0AEDC47D092B8B9A90A0BA1CCC44AC2981940F
-F040B09E085538B9D1C951D4E9D935271BE98D00DDF221DA25F993F7D86EF134
-61CC5EE31412D6C4ED6838337F04058281F5A4D350CD920F85BAB48E5CA2599C
-B6701ECDC005DF577D8AAD692F4A4CD74939D1D5F04B2663BE718EFF2C356C10
-D38D5A3AC19C37409358D389258D904D6B5AACBC67C8F390B2B402F07E087AB7
-B61EFF8AD14FFBBE455A478244C0B62A636E998D44AE5DBB1F382DC641B706C0
-03A84B77A058ABE27076A2C241E6E419DBB5896BF6F28469924DE46ADAF38730
-A412BE10349E3D0D6667CE70A39B3AB37F9FE7C76C1900E187C4729279A7D965
-6D90E03FFC2AE9BF8EC8B9B127A7AEC3F7180C6D7EE5F55E8BD5C2A727F29105
-BEF5A6D1938CAEAE4C0538D8C0AD5BADA198B16172907A85AB66F78E3B576C96
-5DE54A91F8F281E296F6F266CD43305700E77E5C63A4F1EA12655C29CF5BFFC9
-0C961AD8806EBDDB4A2C88A269743872352941861AFA9EA2F0E454F32A2083C0
-25707C49420EA0995CDB31576185F222343A2182B33E5FACB7A0207E4F007C3E
-B33FF24BFB4A5D326517095A17A9D5C967DBFA445B473D3B13285D7AD0553005
-95CB964F310AF4073E54681ECA050BBB3C7F1B0EA6FD2610DA3C00A96AD89D52
-D8AC5A139AC2A6A4A02C29962574628518C4FE1C3197730326117913CB9E73D5
-6B2C227DF81855B9FB7C69357C816EADC44B9BE9677B617A43B25721DE6F0542
-DB1FE7C1B6D5C6CFC9E2D443B93C7CB809A71BBE8888955567EAC8AB7C2DA3BA
-3F1CC797CE77D691FDAE14F81CF8459106809B17E4BADBE2800BEDE109A60918
-EC17AC66FAE2711900EA359C7253F607B52F3EFD436D360CD94F92C0D2BEC384
-637E902FA1FFD02AED29A128023FAD394A133C64E3CB68CE31D32F14D6AD272F
-1F1FA973CFDE594BC034D2EB3EA7B764B4A9B9BC450A19D4D91FE0CD74C5B27E
-C27782FB06F3D72CF84A2AE568A9FF156A1BD34362A0410FE2D4DC743BC7836C
-7FFCC14105BBFB20CB771FB38124B53DE215B358B128E41A50FB3B92A8B60587
-4A1B5BB1AD88F4892F70D3478AC94AD461A719D9975E6AD9C8817609220DDC03
-C71B73A07D22C6A7F585156069CBCF4DBA04150310CFE84DFF58D16F99401623
-E678C1E449EADF915E4E55042D3D485F4586BA0DE0D755FAA961992F209FA94E
-479FC5A2DFCE519EA914A7A43D36E5F0AFD493F548EC2415547FD0EDEDEF6D3E
-99EEDF2E491CECFFC3922659123D9369129ADF512DB339552BDD2EF629679414
-EA5986E95944BDAA58EA49D3364C526457694C47
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 55 /seven put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF83287B2C762EFD151232F1E1B856941A07C76AD4A6030971385C9614
-AF82D00B6895EE8090AE00C2AABDB1D374E9C0317A2F09AC4177697BF63E3627
-D9EBBE30E9D146E27FC0ADC8AE7C3D7A1991AD1D359B07E351803740C4B8309E
-79BEA25ACF13873C669756B9D73223D3E289CFD6FA0F87BF343611A2F54A1D02
-CA34055BBBD5B262CBB18998FB2D253017D1A87DE221B566B0AD4B363C2FF090
-128A8879E4D361053E6506D3F85F85BC040258DB2EF8859D898A60C87448EA99
-01715FF1B7816D8AF69443062C892A86A89DB67A009C31DBD87781C9C5255EAB
-F55969CD0C81800DECFEDB795B410D59D8ED4D61483D286A7994784588F802E5
-C6855AEB0D88E059CC4E66D721570545883A15FBA0D86B87EB2C7140FB7F4BCE
-D7B39DF43D0702D3189A48C38F0A5C46A4556A75B08018D68F2E5C183CBC97EF
-61AC87AF08AC93A433F81432FFE017C15B10022E061AC5D5B6B812E65ED7F9EE
-0C03751077B51F590D22923CBFB4802CB5A4FCD94EBA79FFE335352993F38347
-9618BC5CCCF2E29D8B5F1FF30FB396BE8CD00708F2561F78FF0926E007323FD6
-33A86584AF10FCE84F35780238679F9566ED55C213216D9BA04665001ECE96B7
-3757ABD09CF8DA42DD884670B2592449AA7566E9ED55743531CDBDC2C7F132E2
-75496EF5A49560CD1F1C2B2658C53ED31D302CD20A76674A470D4DF6EAEFEE76
-6BA3E7ACD35A76409267F2330145EC2FC59AC0B71D41798817216A5EE1D7E309
-D121C7781F4E84C4D56A3E5DF56433470ACEA996ADE1F8BACA27BC373E96A0F5
-3BDCD364187DFD94F5F4142BB91805865A3C906DBF072A19BE0FBF6A3848B720
-9428C9DD806A507D675B4CCE83C9E5ECB2738A8FFD801B0BC31DE582D629AB5E
-98A4B4085FB2341A8BFCBFAE18A1B97811001A943178C668EA844AA6DE3A8ADD
-9BF3BB5CEC200AAD4A686599331C4017DAB19B8199229DA382EA87A9DA562A16
-71F3465AE3F4F1BEBE3C2530BB7B1751ED796E9D4F5D122FAC582D0B632C0B5A
-4CE6D47FDAC75F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (bars.dvi)
-@start /Fa 133[44 7[44 5[44 7[44 1[44 15[44 13[44 68[{}7
-83.022 /CMTT10 rf /Fb 184[106 15[0 47[0 7[{}3 132.835
-/TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)p -148 131 60
-4 v -100 129 4 117 v -138 129 a(\007)402 229 y Fa(Rl)p
-153 131 60 4 v 201 129 4 117 v 163 129 a Fb(\007)p 464
-98 20 135 v 494 98 4 135 v 517 29 a(7)p 613 131 60 4
-v 661 129 4 117 v 623 129 a(\007)1163 229 y Fa(Rr)p 914
-131 60 4 v 962 129 4 117 v 924 129 a Fb(\007)1225 29
-y(7)p 1245 98 4 135 v 1258 98 20 135 v 1374 131 60 4
-v 1422 129 4 117 v 1384 129 a(\007)1884 229 y Fa(Rz)p
-1675 131 60 4 v 1723 129 4 117 v 1685 129 a Fb(\007)1986
-262 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 262 a -364 504 2350 4 v -364 538 V -364 571
-V -364 604 V -364 637 V -364 602 a Fb(G)p -97 670 60
-4 v -49 668 4 117 v -87 668 a(\007)715 768 y Fa(Rlr)p
-346 670 60 4 v 394 668 4 117 v 356 668 a Fb(\007)799
-569 y(7)p 819 637 20 135 v 849 637 V 90 w(7)p 1036 670
-60 4 v 1084 668 4 117 v 1046 668 a(\007)1848 768 y Fa(Rlr)p
-1479 670 60 4 v 1527 668 4 117 v 1489 668 a Fb(\007)1933
-569 y(7)p 1953 637 4 135 v 1966 637 20 135 v 1986 802
-a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 802 a -364 1044 2350 4 v -364 1077 V -364 1110
-V -364 1144 V -364 1177 V -364 1142 a Fb(G)p -97 1177
-20 135 v -67 1177 4 135 v -44 1109 a(7)p 93 1210 60 4
-v 141 1208 4 117 v 103 1208 a(\007)837 1308 y Fa(Rdl)p
-509 1210 60 4 v 557 1208 4 117 v 519 1208 a Fb(\007)p
-934 1177 20 135 v 964 1177 4 135 v 987 1109 a(7)p 1124
-1210 60 4 v 1172 1208 4 117 v 1134 1208 a(\007)1869 1308
-y Fa(Rdl)p 1540 1210 60 4 v 1588 1208 4 117 v 1550 1208
-a Fb(\007)p 1966 1177 4 135 v 1982 1177 V 1986 1341 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
-
-1986 1341 a -364 1584 2350 4 v -364 1617 V -364 1650
-V -364 1683 V -364 1716 V -364 1682 a Fb(G)p -143 1716
-20 135 v -113 1716 4 135 v -90 1648 a(7)p 1 1750 60 4
-v 49 1748 4 117 v 11 1748 a(\007)496 1848 y Fa(Rd)p 287
-1750 60 4 v 335 1748 4 117 v 297 1748 a Fb(\007)p 583
-1716 4 135 v 600 1716 V 694 1750 60 4 v 742 1748 4 117
-v 407 w(\007)1229 1848 y Fa(RD)p 980 1750 60 4 v 1028
-1748 4 117 v 990 1748 a Fb(\007)p 1276 1716 4 135 v 1289
-1716 20 135 v 1400 1750 60 4 v 1448 1748 4 117 v 420
-w(\007)1896 1848 y Fa(Rb)p 1686 1750 60 4 v 1734 1748
-4 117 v 1696 1748 a Fb(\007)p 1982 1716 4 135 v 1986
-1881 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 1881 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/bars.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: bars.dvi
+%%CreationDate: Wed Jan 21 13:50:47 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 547 313 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE bars.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1350
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 68 /D put
+dup 82 /R put
+dup 98 /b put
+dup 100 /d put
+dup 108 /l put
+dup 114 /r put
+dup 122 /z put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A77C8392948FE1B07931A19298FB60E443E198089A0A
+16D46095558E6DBAB7E03022F2A762470D545CE6B8D931FA66E63DDB04125D5E
+A2F86EC0944B0D160100C2DB33B92C400A8CCB715F68477177459BCD57C86D97
+449A25D63E9584EEF820A7AB919BC62D28434BFBA0EC53913CEB3BF4857057BB
+3FB43E95092D6DC0B7CE4E1D8C1FDD292F80E973E277C7FCC9878D2F97D0E3E9
+8DD466CCB4EEC3E16429C36FC9583A048A83F68049C707E5FC1473E7DF90125D
+BCC3489C04F227D170EA0C1E8E021294FBF894B19E966F94B1F3FF879474E9EA
+34D55A9EEB4459E5DBF801CDAB652D681BC673C26D3C73FE1AE6232638CB2582
+F75CA7F1BA6327B0A39B251E10606247224799C0B710586D3E3DDF28A5864D56
+6F5C532735511ECB7C52B7B6D47042B26B5C7B7D12DE631FE3BB27C41F4FB436
+5874CC0D1A182B42E4E0146BBECF156134C82BC2BE6F136D0439FF5B2585A53C
+7CB0DA52270915680C1610576D93988FC7CBCE8F8EEAD343E3ECEFC659191023
+535D48D74EF82BB5C27A4F560CF281011DBFB3AE77F0833EA7CB73F9812B6C57
+4F506493DDFF1FCB2FB7F9F4B2A47C512F51339FAD5776CBF8589F4C9FD3DBA0
+3EF6E49A632BF7DE5EC45B64A1F4ECF43A686529B303FE7A7A6F9BF69F3C40AA
+BFFB9D7E353A94D5829CE98C4B7A2AFB114183DA45B72912008470EAA54F3DA1
+1614F3572DF7D43FC9CD4F2278E704762F83464FB19C5B5F5940EF2F716CFCB8
+C09BBC8863D02E7CBBC3F9B1AB0D125837CA2BDDFA65ADE7B824DCB6753DCD85
+34FB2CB20A8A656A5B91896E629F88B5154687013151452CC2EE73E36C7D753A
+182B0BAC8AB381658DF10814D8C2A0F73A01FC220D1D53AE3CC92C910CAC5922
+F6AFB148FCE2FA7ACD5D5FEAB7B6C6A1BD4E6F8E61B2B8C26A1EFF7D7EE86171
+437F24D239CDAC3ECA00F77AF773067C4C4759322BAA23F3B6469506D5E38BFE
+6F3996001BC328E6E729E810C5FB083E7C6B004DDE9B0F4B3E605DDC7157570B
+F9274971D48919E8BA3457D005A9C5ACBF0E52BB9F1908D48215F6542C6A7833
+6BFB77D9D6C791BD63B7CDA608E9F06BA20DDEC232B6AE477C2422A39ED8E31B
+0BB9134DDFE14371AE8B33281C5998DB170387BC3D47F241BE6D4A8EE7D3AF53
+EAB42411AE0AA34B548C4E1B8EC8AD38647A4FA834E3E4830B5F83E1D2DD5D2B
+8ED9F4816FEAC5DC6E80968AAD0AEDC47D092B8B9A90A0BA1CCC44AC2981940F
+F040B09E085538B9D1C951D4E9D935271BE98D00DDF221DA25F993F7D86EF134
+61CC5EE31412D6C4ED6838337F04058281F5A4D350CD920F85BAB48E5CA2599C
+B6701ECDC005DF577D8AAD692F4A4CD74939D1D5F04B2663BE718EFF2C356C10
+D38D5A3AC19C37409358D389258D904D6B5AACBC67C8F390B2B402F07E087AB7
+B61EFF8AD14FFBBE455A478244C0B62A636E998D44AE5DBB1F382DC641B706C0
+03A84B77A058ABE27076A2C241E6E419DBB5896BF6F28469924DE46ADAF38730
+A412BE10349E3D0D6667CE70A39B3AB37F9FE7C76C1900E187C4729279A7D965
+6D90E03FFC2AE9BF8EC8B9B127A7AEC3F7180C6D7EE5F55E8BD5C2A727F29105
+BEF5A6D1938CAEAE4C0538D8C0AD5BADA198B16172907A85AB66F78E3B576C96
+5DE54A91F8F281E296F6F266CD43305700E77E5C63A4F1EA12655C29CF5BFFC9
+0C961AD8806EBDDB4A2C88A269743872352941861AFA9EA2F0E454F32A2083C0
+25707C49420EA0995CDB31576185F222343A2182B33E5FACB7A0207E4F007C3E
+B33FF24BFB4A5D326517095A17A9D5C967DBFA445B473D3B13285D7AD0553005
+95CB964F310AF4073E54681ECA050BBB3C7F1B0EA6FD2610DA3C00A96AD89D52
+D8AC5A139AC2A6A4A02C29962574628518C4FE1C3197730326117913CB9E73D5
+6B2C227DF81855B9FB7C69357C816EADC44B9BE9677B617A43B25721DE6F0542
+DB1FE7C1B6D5C6CFC9E2D443B93C7CB809A71BBE8888955567EAC8AB7C2DA3BA
+3F1CC797CE77D691FDAE14F81CF8459106809B17E4BADBE2800BEDE109A60918
+EC17AC66FAE2711900EA359C7253F607B52F3EFD436D360CD94F92C0D2BEC384
+637E902FA1FFD02AED29A128023FAD394A133C64E3CB68CE31D32F14D6AD272F
+1F1FA973CFDE594BC034D2EB3EA7B764B4A9B9BC450A19D4D91FE0CD74C5B27E
+C27782FB06F3D72CF84A2AE568A9FF156A1BD34362A0410FE2D4DC743BC7836C
+7FFCC14105BBFB20CB771FB38124B53DE215B358B128E41A50FB3B92A8B60587
+4A1B5BB1AD88F4892F70D3478AC94AD461A719D9975E6AD9C8817609220DDC03
+C71B73A07D22C6A7F585156069CBCF4DBA04150310CFE84DFF58D16F99401623
+E678C1E449EADF915E4E55042D3D485F4586BA0DE0D755FAA961992F209FA94E
+479FC5A2DFCE519EA914A7A43D36E5F0AFD493F548EC2415547FD0EDEDEF6D3E
+99EEDF2E491CECFFC3922659123D9369129ADF512DB339552BDD2EF629679414
+EA5986E95944BDAA58EA49D3364C526457694C47
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 55 /seven put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF83287B2C762EFD151232F1E1B856941A07C76AD4A6030971385C9614
+AF82D00B6895EE8090AE00C2AABDB1D374E9C0317A2F09AC4177697BF63E3627
+D9EBBE30E9D146E27FC0ADC8AE7C3D7A1991AD1D359B07E351803740C4B8309E
+79BEA25ACF13873C669756B9D73223D3E289CFD6FA0F87BF343611A2F54A1D02
+CA34055BBBD5B262CBB18998FB2D253017D1A87DE221B566B0AD4B363C2FF090
+128A8879E4D361053E6506D3F85F85BC040258DB2EF8859D898A60C87448EA99
+01715FF1B7816D8AF69443062C892A86A89DB67A009C31DBD87781C9C5255EAB
+F55969CD0C81800DECFEDB795B410D59D8ED4D61483D286A7994784588F802E5
+C6855AEB0D88E059CC4E66D721570545883A15FBA0D86B87EB2C7140FB7F4BCE
+D7B39DF43D0702D3189A48C38F0A5C46A4556A75B08018D68F2E5C183CBC97EF
+61AC87AF08AC93A433F81432FFE017C15B10022E061AC5D5B6B812E65ED7F9EE
+0C03751077B51F590D22923CBFB4802CB5A4FCD94EBA79FFE335352993F38347
+9618BC5CCCF2E29D8B5F1FF30FB396BE8CD00708F2561F78FF0926E007323FD6
+33A86584AF10FCE84F35780238679F9566ED55C213216D9BA04665001ECE96B7
+3757ABD09CF8DA42DD884670B2592449AA7566E9ED55743531CDBDC2C7F132E2
+75496EF5A49560CD1F1C2B2658C53ED31D302CD20A76674A470D4DF6EAEFEE76
+6BA3E7ACD35A76409267F2330145EC2FC59AC0B71D41798817216A5EE1D7E309
+D121C7781F4E84C4D56A3E5DF56433470ACEA996ADE1F8BACA27BC373E96A0F5
+3BDCD364187DFD94F5F4142BB91805865A3C906DBF072A19BE0FBF6A3848B720
+9428C9DD806A507D675B4CCE83C9E5ECB2738A8FFD801B0BC31DE582D629AB5E
+98A4B4085FB2341A8BFCBFAE18A1B97811001A943178C668EA844AA6DE3A8ADD
+9BF3BB5CEC200AAD4A686599331C4017DAB19B8199229DA382EA87A9DA562A16
+71F3465AE3F4F1BEBE3C2530BB7B1751ED796E9D4F5D122FAC582D0B632C0B5A
+4CE6D47FDAC75F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (bars.dvi)
+@start /Fa 133[44 7[44 5[44 7[44 1[44 15[44 13[44 68[{}7
+83.022 /CMTT10 rf /Fb 184[106 15[0 47[0 7[{}3 132.835
+/TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)p -148 131 60
+4 v -100 129 4 117 v -138 129 a(\007)402 229 y Fa(Rl)p
+153 131 60 4 v 201 129 4 117 v 163 129 a Fb(\007)p 464
+98 20 135 v 494 98 4 135 v 517 29 a(7)p 613 131 60 4
+v 661 129 4 117 v 623 129 a(\007)1163 229 y Fa(Rr)p 914
+131 60 4 v 962 129 4 117 v 924 129 a Fb(\007)1225 29
+y(7)p 1245 98 4 135 v 1258 98 20 135 v 1374 131 60 4
+v 1422 129 4 117 v 1384 129 a(\007)1884 229 y Fa(Rz)p
+1675 131 60 4 v 1723 129 4 117 v 1685 129 a Fb(\007)1986
+262 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 262 a -364 504 2350 4 v -364 538 V -364 571
+V -364 604 V -364 637 V -364 602 a Fb(G)p -97 670 60
+4 v -49 668 4 117 v -87 668 a(\007)715 768 y Fa(Rlr)p
+346 670 60 4 v 394 668 4 117 v 356 668 a Fb(\007)799
+569 y(7)p 819 637 20 135 v 849 637 V 90 w(7)p 1036 670
+60 4 v 1084 668 4 117 v 1046 668 a(\007)1848 768 y Fa(Rlr)p
+1479 670 60 4 v 1527 668 4 117 v 1489 668 a Fb(\007)1933
+569 y(7)p 1953 637 4 135 v 1966 637 20 135 v 1986 802
+a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 802 a -364 1044 2350 4 v -364 1077 V -364 1110
+V -364 1144 V -364 1177 V -364 1142 a Fb(G)p -97 1177
+20 135 v -67 1177 4 135 v -44 1109 a(7)p 93 1210 60 4
+v 141 1208 4 117 v 103 1208 a(\007)837 1308 y Fa(Rdl)p
+509 1210 60 4 v 557 1208 4 117 v 519 1208 a Fb(\007)p
+934 1177 20 135 v 964 1177 4 135 v 987 1109 a(7)p 1124
+1210 60 4 v 1172 1208 4 117 v 1134 1208 a(\007)1869 1308
+y Fa(Rdl)p 1540 1210 60 4 v 1588 1208 4 117 v 1550 1208
+a Fb(\007)p 1966 1177 4 135 v 1982 1177 V 1986 1341 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+
+1986 1341 a -364 1584 2350 4 v -364 1617 V -364 1650
+V -364 1683 V -364 1716 V -364 1682 a Fb(G)p -143 1716
+20 135 v -113 1716 4 135 v -90 1648 a(7)p 1 1750 60 4
+v 49 1748 4 117 v 11 1748 a(\007)496 1848 y Fa(Rd)p 287
+1750 60 4 v 335 1748 4 117 v 297 1748 a Fb(\007)p 583
+1716 4 135 v 600 1716 V 694 1750 60 4 v 742 1748 4 117
+v 407 w(\007)1229 1848 y Fa(RD)p 980 1750 60 4 v 1028
+1748 4 117 v 990 1748 a Fb(\007)p 1276 1716 4 135 v 1289
+1716 20 135 v 1400 1750 60 4 v 1448 1748 4 117 v 420
+w(\007)1896 1848 y Fa(Rb)p 1686 1750 60 4 v 1734 1748
+4 117 v 1696 1748 a Fb(\007)p 1982 1716 4 135 v 1986
+1881 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 1881 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beams.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beams.eps
index dbdb012806d..785f92bab2c 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beams.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beams.eps
@@ -1,947 +1,947 @@
-%% LaTeX2e file `eps/beams.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: beams.dvi
-%%CreationDate: Wed Jan 21 13:51:20 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 596 510 795
-%%DocumentFonts: TeXMUSIX16-Regular CMTI10 CMTI8 CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE beams.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1351
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 51 /three put
-dup 52 /four put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
-E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
-32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
-27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
-2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
-CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
-2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A48CFB68D9BDBBE7
-543C91905FC3D38CEE89E1C1ABA2DB1A9B51B409B99600A15F13481BD7C92CC1
-8FD67B95E43F20B716A97BCA8EE79248973E175941441393F86D428F2F26DF91
-41933793DBF8873D1091B7582708A77B194905AB97A3F4578FB10C2564E4E138
-48AC7463E64924E1559D27811FB307913209E647DE73D18DF120533FB7BA460F
-0AA80E9BF624D194859EB4A2511779A22ABC439C0456BE66483B88075E427FB9
-E8D21431035638AD76CFE9E46DBAF380638F8B2BAC8C5D0687769F13C4EA868B
-23C2FBD892636686461F269AB9B7270F8AD666F200C907D2F8CFCD2A103B3F46
-BDD5073EE7DA2E3207794F6A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 51 /three put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
-8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
-B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
-FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
-C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
-74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
-20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
-DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
-C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
-900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
-2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
-C9D16A50DEBBD3862698DD582667C8A8079FD1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
-98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
-2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
-CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
-F78C2BEE2F86E821575E5736395ABF4FC55D7438F97C498F924F2B504D7A441B
-D879408C6A5BB0FE548F2F09D4C3A224C5AD107D27D006B97034C4B0F6304D99
-45B4E4781EDCC5087493448FEB4B9CBE9367F43BD84B1A24147E48E6E6693966
-B7A16B1DC24C371E43980D231F4E57697CC3E231A7D65D47EFDBF81CC7DB9DA5
-39BCA62041D591729BDDD536612B27A6D39FA768490F46BB83A5FA4D33E72F35
-68D42589C6064FEA7A68B8AACBC30F21BB6D10A2A9A2AEEA3C6A91DFDC9D9E41
-C065BCBD0656AC7907DC1D48C71B1F75E438A7103B2948177B31F81EB3BCE9AF
-C480C8B03B41984D50CDF49AE34FA70D0CF859FCB487D6E90779BF93547C9D0E
-B827923FA873A5627B4940B77DC8B2A13CF6EB869867885CFCBCC4C4875D2BB3
-1F53B7FF63AB36300E0AFB9B1BFC6D5080D6C1FF1FC3AA95C2924E5F6FCCD284
-B63C9DA3D575F6DB28C909D014BA42E0606B32EDF2728DC523DC4FF71391C0AD
-6DF4DA6C8551434824DF73F75919AEF2482145D238C6EEBD7AEE8510E0BD8FA2
-A9674F7B615883BC960EF368BF12FF9B39F42989871B6F4D5976813741BCB343
-82DC9DACE5AEEBB18694006B3F145B9763550B658D3BB5E906DBC7CAF6DBCA5A
-1FCF6D3D984007F1F4C52FD2149198ED7CD52EA0E888D67916E9161573630D31
-E7C53615B7D0DCF102803EC3960D1E8B10CB8CC6F945BE8EF774C6BDD7EFDEAE
-CC96E20809281725579173CC3D32A32B4521AE8010D99B446F599C1F72D816D8
-D06280AC2763C18C5E99C36CA222E0AFF0FBCD3AA7CDCB6E97D25B3D1487609E
-1201A2FB12BB01BB5FBC4BBED6AD57929667F14865CB2DEA403AD3A5A417C8BB
-E53E79E89022FDC213EE8BFFB7FA256477AB8A65766B4C2705A3332378350FF2
-C76F959D01C1E6F6DAF4796DC96E6CE3ADF9C95DC6BC178CFBB0CC1B9549449D
-69FF0345639F4D16746635A39EE8C54C0E9215FB4653076D8B0F0B748BF4BE4B
-A534918ADBFEE01674AF2A182B5EDD26096218ED4B90910A5B5D4CD16045CF64
-DA845F3CAB6D20A2B30219A949C4B06AAAEF00CC2E6FD88B998D07237FAE74B8
-D3489DCB2AD9F613FF5B650F386E9A0A4FB0767757D0DE6F369430450F61D9C4
-9517AA8E4C0F39DE429E5B8DCC68B5A133438A25B0EBCF40B2FFBE463AB2D2F8
-EF206314F4E9BF8E6FC66337E45ADC18FCE30499D9AA97F1A53BB630D3D4765E
-176F27B55EA9E6E75ADE95A79FB672C01E565A02370F6226D33F2EEC79C78B0E
-F8C96254B1F71E89DAE0252BCE673DD2E4EAA83E4B5008E186E4FBCC6FE8D436
-15B08B114C295984272F91B5A1FBB66864CC8A78DD2F4B784FD044BC9246243F
-BE8BF7B2662404B35414692ED09D3FE6B6AA7F6EE0270E0A9A75FCDBB5DA3CA8
-80FA4AE8580B1CF54CE8293F5B2029EE4A910C485AE22E90ACD90D6CEDA65DC7
-E86E4E05A8C0C0B92C1F1877D330134E33246670AACEB9181055FB278444EE04
-0507197E8874080620B8E1D1990C5309AE07F2085ADE4EB5CE12EC68AB3995EA
-183DE8B0C1009A2078EA578CA804BCA4BA14B6722F364C4134BA4A572B0B4E10
-97335651C9A9924EAE7F9497F5AC5FDCC72D9ADD54252AA3BFDE2868DA998014
-44DD7A2D83DF6CED0EA3F26BE49AD27BB0F82BE873CFCA5D353D7DE2CAD5115F
-779A4B38CBC16AEFDE3529B0693E9F1CC5F66DEBE5E862922308F7AAB6F9E14D
-FBE796712EAFCE4F4F00
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 50 /two put
-dup 52 /four put
-dup 71 /G put
-dup 83 /S put
-dup 138 /Lslash put
-dup 139 /Nacute put
-dup 144 /Rcaron put
-dup 156 /IJ put
-dup 162 /cacute put
-dup 202 /Ecircumflex put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
-C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
-4226CD5767409C950CA6359948F6C7DB49D6856A4417B9F66703DEA27A0D8555
-A091D72E3C920EEFAA1104AE27820AB0739C50AE616F29D9FD47C1E8EB345CE6
-F9EE4D50F5E3447265E1498F75CD31E7AC3427983983BF8603BC8FDD534D606A
-6CED5D8AF78041105F9C3B731BB3960C85516DF5A845A5085E5FEB1867A1526B
-2B510BF040BF01F327624789C74748D84B7304C9810306755611B7CDFE215E27
-E5AF68CC8A7BD87F9CA2AE32F8055D9003A15E1225310A7870FEF40D2901D147
-A11A3E83D3206B5D3C99A743B0897715B8D75308612F752CCAE5B283EEE63D8E
-C07689A690FD7F68C476FECA5317EE9D2C5794001D6E3B3569F8A4EA18B0819C
-2BFBFF69A5B0B73668219A383E354F7107E8BFBABC782415C7355895AF96E8A2
-C3599A56E30619B8232AA12C4393972D47EF4CA6F7409FDC9DA583C9AF9A3E6E
-0076A9514D2DC25966FD42A95210FCD6BF443864F1C8CF57267668A760032C96
-5EFACA8AFB4A787337EB1489F7A9D905E5828B7846B0B67F5DC453D83920670C
-48982F09564C5025BDC3D3A4DB46817F62EF00CE5D784A3B1A24B570D6274B15
-E5FB8C279EC16EAA4C5E75AEC6C03B849FF7940C14E9F2117C73728CB2126B10
-1CC8E9E2CB3310CB01A8E9C2278CF1EDAB71C109A63665C7C08CB53F79D5A258
-8D068EB8592DB3C2C98E1E8F0748E5E98A712167E8DCD204CB14D0CDD9786682
-4EEA3AACB50F1507995598D63908134A52B133A79C82D477F99E7F884738F851
-3E54F49EBF9434DE24CFE08B8237D74942EB29FC2B764E0C19BB175AABF8AAA3
-8627F4B8A24E9DE75C6D408A2CB9D1671CEA506DBF03F4A05314B560CFEDBC61
-C152BD77EDAD89BB36BCCBF07FA6A2145039CA676E4386FF75968D6155DFAF90
-944ED1DE40390E03916B519C6E82DBCFEC71360984817480807F5D446EDE494A
-CC3EE5BBEAA96C9EDEFC97D8F1C5CCA48E467282E2201BFE1642E90B71861AD7
-F0DF6C5DCCC687A7EC69FAD0FFF197FEC9E5E4E5FA2C0E354FD0D6766AA35179
-17A5089EEE7719E3018BBB4F7F03F3BE37C548EA958FF4ED236CDBCCF87D1C13
-2B84BD9C747FD92C1FC142626B08A1557AF4B46641F696C81CD0D9EF3A239730
-C20464ECE84CF7A8C288F94EDDDB26C6DDC8103B17C803480F041B22E310B15F
-B1CB549201741CAFCDA9E92EEA7602F1CF841E734E597E5BDC363CB1A366D1DF
-2A06FF426B667C4CA2B7ED51191E90781FE8728637A49E919EF58FE1115AD2C9
-E5E1D120322AF2181A4EEC2CCE2D98EE9393F668D4E4A37E9A3DD39C2F5D3DC5
-A9740F47EF5815919620B1D647037160227170A07A78DC48EF9EBCF39C4DAC9C
-D8A7A770CA288EE5653A702E5A21F65372155A69152903BA5B35C8FAD78C069A
-A2873BFBFCAE553F03741AA8B8AAE38412E6700E9E878A93FFE2FFB50412131A
-26C60AEA7DB1080AAF2961D3E3030CCEC4D2DF8401F7C586B27EA6BD6FB8D7DA
-8A16C4B82884F8C400D1774C601F10DB0856C9F10FA9604508A3FCCC76F5ED4C
-040F5F26E96A74AE28707EEB2822110059E1965417588BFBC3F564A949A9B2AB
-8CD976B4ABA0BC65258E104B909543374B51F191B2B4794752D7EEDD3E5D4C30
-8622D146A03997883C671528DC03CF5EF3426D2C66DFFD881323B58A240A8B0F
-E9EAD6AFCB0BE38C7DA2CEAB11C275B5ABEBE72E55AB10A4988F54D17AB512E7
-B1B78FA1286B0F7FD1B009DB023ABD67407AAD6B75FA9358CE53D9922291B862
-8EF65FC40A05EF002EC496974315A4492219CE8562CCE9D0CEB6AFFC9D1F6D83
-5235B217CDA3A1532843CEFD6C2CB0AA20F167B1D27ADEA74D49AE18A5A2F795
-65623A9C7CC0BBF9C6AEFC2649ED107A2FA2AB1B276B793ACF6A6DAD57888ED7
-F9AE0905FEF236B100F2A5755E1358D7586FCEC810124136C1DF700B79150E42
-FB04FF29AB34E824D11EDDBD9D775865ED137862D16D2EB92E4049DE90CEB53E
-8BAB27EA19A4B4AFBFE38FF179506E077382418F068AC461D7FDE3FF
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (beams.dvi)
-@start /Fa 203[56 56 51[{}2 99.6264 /CMBX12 rf /Fb 204[36
-51[{}1 66.4176 /CMTI8 rf /Fc 153[25 38 42 38 38 42 97[{}6
-83.022 /CMTI10 rf /Fd 53[266 39[266 5[266 11[266 4[531
-266 54[66 11[106 18[40 1[40 42[0 6[0{}12 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fd(G)-254 29 y(2)-221
--20 y(2)-178 29 y(S)-13 -120 y Fc(a)-53 79 y Fd(4)p 25
-79 4 133 v(\007)p 87 131 60 4 v 135 129 4 183 v 97 129
-a(\007)p 246 79 4 133 v 208 79 a(\007)p 25 -21 333 16
-v 25 -46 V 356 46 4 100 v 318 46 a(\007)p 428 112 V 429
-13 a(\007)499 -37 y(4)p 539 112 4 150 v 1 w(\007)p 639
--69 60 4 v 649 112 4 183 v 650 -70 a(\007)p 428 96 335
-16 v 428 120 V 760 112 4 100 v 761 13 a(\007)p 870 129
-V 871 29 a(\007)p 980 113 4 167 v 981 -54 a(\007)p 1081
--69 60 4 v 1091 96 4 183 v 1092 -87 a(\007)870 104 y(\220)939
-94 y(\220)870 129 y(\220)939 119 y(\220)p 1201 79 4 133
-v 1202 -54 a(\007)p 1302 131 60 4 v 1350 146 4 125 v
-1312 146 a(\007)p 1422 53 4 107 v 1423 -54 a(\007)p 1523
--69 60 4 v 1533 64 4 151 v 1534 -87 a(\007)1352 21 y(\312)1381
-24 y(\312)1352 46 y(\312)1381 49 y(\312)p 1643 75 4 129
-v 1644 -54 a(\007)p 1753 98 4 135 v 1770 98 V 1832 -87
-a Fc(b)1812 79 y Fd(4)p 1852 229 4 150 v 1 w(\007)p 1952
-131 60 4 v 1962 229 4 100 v 1963 129 a(\007)p 2072 229
-4 150 v 2073 79 a(\007)p 1852 212 335 16 v 1852 237 V
-2183 229 4 183 v 2184 46 a(\007)p 2331 13 V 2293 13 a(\007)2364
--37 y(4)p 2442 -37 4 133 v(\007)p 2504 -69 60 4 v 2552
--71 4 100 v 2514 -71 a(\007)p 2331 -137 333 16 v 2331
--162 V 2663 13 4 183 v 2625 13 a(\007)p 2773 29 4 216
-v 2735 29 a(\007)p 2883 -54 4 133 v 2845 -54 a(\007)p
-2946 -69 60 4 v 2994 -87 4 100 v 2956 -87 a(\007)p 2773
--154 333 16 v 2773 -178 V 3104 -54 4 133 v 3066 -54 a(\007)p
-3166 131 60 4 v 3176 245 4 100 v 3177 146 a(\007)p 3287
-212 4 266 v 3288 -54 a(\007)p 3387 -69 60 4 v 3397 179
-4 266 v 3398 -87 a(\007)3176 220 y(\242)3245 200 y(\242)3176
-245 y(\242)3245 225 y(\242)p 3508 146 4 200 v 3509 -54
-a(\007)p 3618 98 4 135 v 3635 98 V 3638 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 262
-a -364 583 4002 4 v -364 617 V -364 650 V -364 683 V
--364 716 V -364 681 a Fd(G)-254 648 y(2)-221 598 y(2)-98
-499 y Fc(c)-138 698 y Fd(4)p -59 698 4 183 v 1 w(\007)p
-5 749 60 4 v 53 747 4 233 v 15 747 a(\007)p 166 698 4
-183 v 128 698 a(\007)p -59 598 341 16 v -59 573 V -59
-548 V -59 523 V 279 665 4 150 v 241 665 a(\007)p 354
-706 4 75 v 355 632 a(\007)427 582 y(4)p 467 706 4 125
-v 1 w(\007)p 570 550 60 4 v 580 706 4 158 v 581 549 a(\007)p
-354 714 343 16 v 693 706 4 75 v 694 632 a(\007)p 806
-748 4 100 v 807 648 a(\007)p 919 731 4 166 v 920 565
-a(\007)p 1022 550 60 4 v 1032 714 4 182 v 1033 532 a(\007)806
-723 y(\220)883 711 y(\220)806 748 y(\220)883 736 y(\220)p
-1145 697 4 132 v 1146 565 a(\007)p 1248 749 60 4 v 1258
-864 4 100 v 1259 764 a(\007)p 1371 864 4 299 v 1372 565
-a(\007)p 1474 550 60 4 v 1484 864 4 333 v 1485 532 a(\007)p
-1258 847 343 16 v 1258 872 V 1597 864 4 299 v 1598 565
-a(\007)p 1710 716 4 135 v 1727 716 V 1810 499 a Fc(d)1770
-698 y Fd(4)p 1848 698 4 183 v(\007)p 1913 749 60 4 v
-1961 747 4 244 v 1923 747 a(\007)p 2074 698 4 206 v 2036
-698 a(\007)1848 540 y(\212)1923 533 y(\212)p 2187 665
-4 184 v 2149 665 a(\007)p 2300 632 4 162 v 2262 632 a(\007)2335
-582 y(4)p 2413 582 4 123 v(\007)p 2478 550 60 4 v 2526
-548 4 101 v 2488 548 a(\007)2300 495 y(\212)2375 488
-y(\212)1848 515 y(\213)2110 489 y(\213)p 2639 632 4 196
-v 2601 632 a(\007)p 2714 864 4 216 v 2715 648 a(\007)p
-2827 864 4 299 v 2828 565 a(\007)p 2930 550 60 4 v 2940
-864 4 333 v 2941 532 a(\007)p 2714 847 343 16 v 2714
-872 V 3053 864 4 299 v 3054 565 a(\007)p 3156 749 60
-4 v 3166 864 4 100 v 3167 764 a(\007)p 3279 864 4 299
-v 3280 565 a(\007)p 3382 550 60 4 v 3392 864 4 333 v
-3393 532 a(\007)p 3166 847 343 16 v 3166 872 V 3505 864
-4 299 v 3506 565 a(\007)p 3618 716 4 135 v 3635 716 V
-3638 881 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 881 a -364 1148 4002 4 v -364 1181 V
--364 1214 V -364 1247 V -364 1280 V -364 1245 a Fd(G)-254
-1212 y(2)-221 1162 y(2)52 1445 y Fb(3)-103 1129 y Fc(e)-123
-1262 y Fd(4)p -83 1403 4 142 v 1 w(\007)p 62 1314 60
-4 v 72 1388 4 76 v 73 1312 a(\007)p 226 1372 4 144 v
-227 1229 a(\007)p 381 1357 4 162 v 382 1196 a(\007)475
-1146 y(4)p 515 1344 4 198 v 1 w(\007)p 638 1114 60 4
-v 648 1330 4 218 v 649 1113 a(\007)381 1332 y(\212)520
-1318 y(\212)-83 1403 y(\213)254 1370 y(\213)p 782 1317
-4 122 v 783 1196 a(\007)p 916 1312 4 100 v 917 1212 a(\007)p
-1049 1299 4 170 v 1050 1129 a(\007)p 1173 1114 60 4 v
-1183 1285 4 190 v 1184 1096 a(\007)916 1287 y(\212)1055
-1273 y(\212)916 1312 y(\212)1055 1298 y(\212)p 1317 1272
-4 143 v 1318 1129 a(\007)p 1441 1314 60 4 v 1451 1428
-4 100 v 1452 1328 a(\007)p 1584 1395 4 266 v 1585 1129
-a(\007)p 1708 1114 60 4 v 1718 1361 4 266 v 1719 1096
-a(\007)1451 1403 y(\234)1590 1368 y(\234)1451 1428 y(\234)1590
-1393 y(\234)p 1852 1328 4 199 v 1853 1129 a(\007)p 1985
-1280 4 135 v 2002 1280 V 2048 1211 a Fa(3)2048 1278 y(4)2232
-1113 y Fc(f)p 2222 1314 60 4 v 2270 1312 4 125 v 2232
-1312 a Fd(\007)2232 1295 y(\000)p 2455 1314 60 4 v 2503
-1312 4 125 v 2465 1312 a(\007)p 2550 1314 60 4 v 2599
-1312 4 125 v 96 w(\007)p 2600 1270 69 16 v 2505 1245
-164 16 v 2505 1220 V 2271 1195 397 16 v 2619 1314 60
-4 v 2668 1312 4 125 v 69 w(\007)p 2732 1195 2 16 v 2732
-1170 V 2732 1146 V 2684 1314 60 4 v 2732 1312 4 200 v
-64 w(\007)2694 1295 y(\000)p 2917 1314 60 4 v 2965 1312
-4 200 v 2927 1312 a(\007)p 3012 1314 60 4 v 3061 1312
-4 200 v 96 w(\007)p 3062 1195 69 16 v 2967 1170 164 16
-v 2967 1146 V 2732 1121 397 16 v 3081 1314 60 4 v 3130
-1312 4 200 v 69 w(\007)p 3194 1212 2 16 v 3194 1187 V
-3194 1162 V 3146 1314 60 4 v 3194 1312 4 183 v 64 w(\007)3156
-1295 y(\000)p 3378 1314 60 4 v 3426 1312 4 183 v 3388
-1312 a(\007)p 3474 1314 60 4 v 3523 1312 4 183 v 97 w(\007)p
-3524 1212 69 16 v 3429 1187 164 16 v 3429 1162 V 3194
-1137 397 16 v 3543 1314 60 4 v 3592 1312 4 183 v 69 w(\007)p
-3618 1280 4 135 v 3635 1280 V 3638 1445 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 1445 a
-eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/beams.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: beams.dvi
+%%CreationDate: Wed Jan 21 13:51:20 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 596 510 795
+%%DocumentFonts: TeXMUSIX16-Regular CMTI10 CMTI8 CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE beams.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1351
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 51 /three put
+dup 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
+E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
+32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
+27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
+2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
+CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
+2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A48CFB68D9BDBBE7
+543C91905FC3D38CEE89E1C1ABA2DB1A9B51B409B99600A15F13481BD7C92CC1
+8FD67B95E43F20B716A97BCA8EE79248973E175941441393F86D428F2F26DF91
+41933793DBF8873D1091B7582708A77B194905AB97A3F4578FB10C2564E4E138
+48AC7463E64924E1559D27811FB307913209E647DE73D18DF120533FB7BA460F
+0AA80E9BF624D194859EB4A2511779A22ABC439C0456BE66483B88075E427FB9
+E8D21431035638AD76CFE9E46DBAF380638F8B2BAC8C5D0687769F13C4EA868B
+23C2FBD892636686461F269AB9B7270F8AD666F200C907D2F8CFCD2A103B3F46
+BDD5073EE7DA2E3207794F6A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 51 /three put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
+8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
+B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
+FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
+C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
+74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
+20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
+DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
+C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
+900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
+2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
+C9D16A50DEBBD3862698DD582667C8A8079FD1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
+98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
+2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
+CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
+F78C2BEE2F86E821575E5736395ABF4FC55D7438F97C498F924F2B504D7A441B
+D879408C6A5BB0FE548F2F09D4C3A224C5AD107D27D006B97034C4B0F6304D99
+45B4E4781EDCC5087493448FEB4B9CBE9367F43BD84B1A24147E48E6E6693966
+B7A16B1DC24C371E43980D231F4E57697CC3E231A7D65D47EFDBF81CC7DB9DA5
+39BCA62041D591729BDDD536612B27A6D39FA768490F46BB83A5FA4D33E72F35
+68D42589C6064FEA7A68B8AACBC30F21BB6D10A2A9A2AEEA3C6A91DFDC9D9E41
+C065BCBD0656AC7907DC1D48C71B1F75E438A7103B2948177B31F81EB3BCE9AF
+C480C8B03B41984D50CDF49AE34FA70D0CF859FCB487D6E90779BF93547C9D0E
+B827923FA873A5627B4940B77DC8B2A13CF6EB869867885CFCBCC4C4875D2BB3
+1F53B7FF63AB36300E0AFB9B1BFC6D5080D6C1FF1FC3AA95C2924E5F6FCCD284
+B63C9DA3D575F6DB28C909D014BA42E0606B32EDF2728DC523DC4FF71391C0AD
+6DF4DA6C8551434824DF73F75919AEF2482145D238C6EEBD7AEE8510E0BD8FA2
+A9674F7B615883BC960EF368BF12FF9B39F42989871B6F4D5976813741BCB343
+82DC9DACE5AEEBB18694006B3F145B9763550B658D3BB5E906DBC7CAF6DBCA5A
+1FCF6D3D984007F1F4C52FD2149198ED7CD52EA0E888D67916E9161573630D31
+E7C53615B7D0DCF102803EC3960D1E8B10CB8CC6F945BE8EF774C6BDD7EFDEAE
+CC96E20809281725579173CC3D32A32B4521AE8010D99B446F599C1F72D816D8
+D06280AC2763C18C5E99C36CA222E0AFF0FBCD3AA7CDCB6E97D25B3D1487609E
+1201A2FB12BB01BB5FBC4BBED6AD57929667F14865CB2DEA403AD3A5A417C8BB
+E53E79E89022FDC213EE8BFFB7FA256477AB8A65766B4C2705A3332378350FF2
+C76F959D01C1E6F6DAF4796DC96E6CE3ADF9C95DC6BC178CFBB0CC1B9549449D
+69FF0345639F4D16746635A39EE8C54C0E9215FB4653076D8B0F0B748BF4BE4B
+A534918ADBFEE01674AF2A182B5EDD26096218ED4B90910A5B5D4CD16045CF64
+DA845F3CAB6D20A2B30219A949C4B06AAAEF00CC2E6FD88B998D07237FAE74B8
+D3489DCB2AD9F613FF5B650F386E9A0A4FB0767757D0DE6F369430450F61D9C4
+9517AA8E4C0F39DE429E5B8DCC68B5A133438A25B0EBCF40B2FFBE463AB2D2F8
+EF206314F4E9BF8E6FC66337E45ADC18FCE30499D9AA97F1A53BB630D3D4765E
+176F27B55EA9E6E75ADE95A79FB672C01E565A02370F6226D33F2EEC79C78B0E
+F8C96254B1F71E89DAE0252BCE673DD2E4EAA83E4B5008E186E4FBCC6FE8D436
+15B08B114C295984272F91B5A1FBB66864CC8A78DD2F4B784FD044BC9246243F
+BE8BF7B2662404B35414692ED09D3FE6B6AA7F6EE0270E0A9A75FCDBB5DA3CA8
+80FA4AE8580B1CF54CE8293F5B2029EE4A910C485AE22E90ACD90D6CEDA65DC7
+E86E4E05A8C0C0B92C1F1877D330134E33246670AACEB9181055FB278444EE04
+0507197E8874080620B8E1D1990C5309AE07F2085ADE4EB5CE12EC68AB3995EA
+183DE8B0C1009A2078EA578CA804BCA4BA14B6722F364C4134BA4A572B0B4E10
+97335651C9A9924EAE7F9497F5AC5FDCC72D9ADD54252AA3BFDE2868DA998014
+44DD7A2D83DF6CED0EA3F26BE49AD27BB0F82BE873CFCA5D353D7DE2CAD5115F
+779A4B38CBC16AEFDE3529B0693E9F1CC5F66DEBE5E862922308F7AAB6F9E14D
+FBE796712EAFCE4F4F00
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 50 /two put
+dup 52 /four put
+dup 71 /G put
+dup 83 /S put
+dup 138 /Lslash put
+dup 139 /Nacute put
+dup 144 /Rcaron put
+dup 156 /IJ put
+dup 162 /cacute put
+dup 202 /Ecircumflex put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
+C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
+4226CD5767409C950CA6359948F6C7DB49D6856A4417B9F66703DEA27A0D8555
+A091D72E3C920EEFAA1104AE27820AB0739C50AE616F29D9FD47C1E8EB345CE6
+F9EE4D50F5E3447265E1498F75CD31E7AC3427983983BF8603BC8FDD534D606A
+6CED5D8AF78041105F9C3B731BB3960C85516DF5A845A5085E5FEB1867A1526B
+2B510BF040BF01F327624789C74748D84B7304C9810306755611B7CDFE215E27
+E5AF68CC8A7BD87F9CA2AE32F8055D9003A15E1225310A7870FEF40D2901D147
+A11A3E83D3206B5D3C99A743B0897715B8D75308612F752CCAE5B283EEE63D8E
+C07689A690FD7F68C476FECA5317EE9D2C5794001D6E3B3569F8A4EA18B0819C
+2BFBFF69A5B0B73668219A383E354F7107E8BFBABC782415C7355895AF96E8A2
+C3599A56E30619B8232AA12C4393972D47EF4CA6F7409FDC9DA583C9AF9A3E6E
+0076A9514D2DC25966FD42A95210FCD6BF443864F1C8CF57267668A760032C96
+5EFACA8AFB4A787337EB1489F7A9D905E5828B7846B0B67F5DC453D83920670C
+48982F09564C5025BDC3D3A4DB46817F62EF00CE5D784A3B1A24B570D6274B15
+E5FB8C279EC16EAA4C5E75AEC6C03B849FF7940C14E9F2117C73728CB2126B10
+1CC8E9E2CB3310CB01A8E9C2278CF1EDAB71C109A63665C7C08CB53F79D5A258
+8D068EB8592DB3C2C98E1E8F0748E5E98A712167E8DCD204CB14D0CDD9786682
+4EEA3AACB50F1507995598D63908134A52B133A79C82D477F99E7F884738F851
+3E54F49EBF9434DE24CFE08B8237D74942EB29FC2B764E0C19BB175AABF8AAA3
+8627F4B8A24E9DE75C6D408A2CB9D1671CEA506DBF03F4A05314B560CFEDBC61
+C152BD77EDAD89BB36BCCBF07FA6A2145039CA676E4386FF75968D6155DFAF90
+944ED1DE40390E03916B519C6E82DBCFEC71360984817480807F5D446EDE494A
+CC3EE5BBEAA96C9EDEFC97D8F1C5CCA48E467282E2201BFE1642E90B71861AD7
+F0DF6C5DCCC687A7EC69FAD0FFF197FEC9E5E4E5FA2C0E354FD0D6766AA35179
+17A5089EEE7719E3018BBB4F7F03F3BE37C548EA958FF4ED236CDBCCF87D1C13
+2B84BD9C747FD92C1FC142626B08A1557AF4B46641F696C81CD0D9EF3A239730
+C20464ECE84CF7A8C288F94EDDDB26C6DDC8103B17C803480F041B22E310B15F
+B1CB549201741CAFCDA9E92EEA7602F1CF841E734E597E5BDC363CB1A366D1DF
+2A06FF426B667C4CA2B7ED51191E90781FE8728637A49E919EF58FE1115AD2C9
+E5E1D120322AF2181A4EEC2CCE2D98EE9393F668D4E4A37E9A3DD39C2F5D3DC5
+A9740F47EF5815919620B1D647037160227170A07A78DC48EF9EBCF39C4DAC9C
+D8A7A770CA288EE5653A702E5A21F65372155A69152903BA5B35C8FAD78C069A
+A2873BFBFCAE553F03741AA8B8AAE38412E6700E9E878A93FFE2FFB50412131A
+26C60AEA7DB1080AAF2961D3E3030CCEC4D2DF8401F7C586B27EA6BD6FB8D7DA
+8A16C4B82884F8C400D1774C601F10DB0856C9F10FA9604508A3FCCC76F5ED4C
+040F5F26E96A74AE28707EEB2822110059E1965417588BFBC3F564A949A9B2AB
+8CD976B4ABA0BC65258E104B909543374B51F191B2B4794752D7EEDD3E5D4C30
+8622D146A03997883C671528DC03CF5EF3426D2C66DFFD881323B58A240A8B0F
+E9EAD6AFCB0BE38C7DA2CEAB11C275B5ABEBE72E55AB10A4988F54D17AB512E7
+B1B78FA1286B0F7FD1B009DB023ABD67407AAD6B75FA9358CE53D9922291B862
+8EF65FC40A05EF002EC496974315A4492219CE8562CCE9D0CEB6AFFC9D1F6D83
+5235B217CDA3A1532843CEFD6C2CB0AA20F167B1D27ADEA74D49AE18A5A2F795
+65623A9C7CC0BBF9C6AEFC2649ED107A2FA2AB1B276B793ACF6A6DAD57888ED7
+F9AE0905FEF236B100F2A5755E1358D7586FCEC810124136C1DF700B79150E42
+FB04FF29AB34E824D11EDDBD9D775865ED137862D16D2EB92E4049DE90CEB53E
+8BAB27EA19A4B4AFBFE38FF179506E077382418F068AC461D7FDE3FF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (beams.dvi)
+@start /Fa 203[56 56 51[{}2 99.6264 /CMBX12 rf /Fb 204[36
+51[{}1 66.4176 /CMTI8 rf /Fc 153[25 38 42 38 38 42 97[{}6
+83.022 /CMTI10 rf /Fd 53[266 39[266 5[266 11[266 4[531
+266 54[66 11[106 18[40 1[40 42[0 6[0{}12 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fd(G)-254 29 y(2)-221
+-20 y(2)-178 29 y(S)-13 -120 y Fc(a)-53 79 y Fd(4)p 25
+79 4 133 v(\007)p 87 131 60 4 v 135 129 4 183 v 97 129
+a(\007)p 246 79 4 133 v 208 79 a(\007)p 25 -21 333 16
+v 25 -46 V 356 46 4 100 v 318 46 a(\007)p 428 112 V 429
+13 a(\007)499 -37 y(4)p 539 112 4 150 v 1 w(\007)p 639
+-69 60 4 v 649 112 4 183 v 650 -70 a(\007)p 428 96 335
+16 v 428 120 V 760 112 4 100 v 761 13 a(\007)p 870 129
+V 871 29 a(\007)p 980 113 4 167 v 981 -54 a(\007)p 1081
+-69 60 4 v 1091 96 4 183 v 1092 -87 a(\007)870 104 y(\220)939
+94 y(\220)870 129 y(\220)939 119 y(\220)p 1201 79 4 133
+v 1202 -54 a(\007)p 1302 131 60 4 v 1350 146 4 125 v
+1312 146 a(\007)p 1422 53 4 107 v 1423 -54 a(\007)p 1523
+-69 60 4 v 1533 64 4 151 v 1534 -87 a(\007)1352 21 y(\312)1381
+24 y(\312)1352 46 y(\312)1381 49 y(\312)p 1643 75 4 129
+v 1644 -54 a(\007)p 1753 98 4 135 v 1770 98 V 1832 -87
+a Fc(b)1812 79 y Fd(4)p 1852 229 4 150 v 1 w(\007)p 1952
+131 60 4 v 1962 229 4 100 v 1963 129 a(\007)p 2072 229
+4 150 v 2073 79 a(\007)p 1852 212 335 16 v 1852 237 V
+2183 229 4 183 v 2184 46 a(\007)p 2331 13 V 2293 13 a(\007)2364
+-37 y(4)p 2442 -37 4 133 v(\007)p 2504 -69 60 4 v 2552
+-71 4 100 v 2514 -71 a(\007)p 2331 -137 333 16 v 2331
+-162 V 2663 13 4 183 v 2625 13 a(\007)p 2773 29 4 216
+v 2735 29 a(\007)p 2883 -54 4 133 v 2845 -54 a(\007)p
+2946 -69 60 4 v 2994 -87 4 100 v 2956 -87 a(\007)p 2773
+-154 333 16 v 2773 -178 V 3104 -54 4 133 v 3066 -54 a(\007)p
+3166 131 60 4 v 3176 245 4 100 v 3177 146 a(\007)p 3287
+212 4 266 v 3288 -54 a(\007)p 3387 -69 60 4 v 3397 179
+4 266 v 3398 -87 a(\007)3176 220 y(\242)3245 200 y(\242)3176
+245 y(\242)3245 225 y(\242)p 3508 146 4 200 v 3509 -54
+a(\007)p 3618 98 4 135 v 3635 98 V 3638 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 262
+a -364 583 4002 4 v -364 617 V -364 650 V -364 683 V
+-364 716 V -364 681 a Fd(G)-254 648 y(2)-221 598 y(2)-98
+499 y Fc(c)-138 698 y Fd(4)p -59 698 4 183 v 1 w(\007)p
+5 749 60 4 v 53 747 4 233 v 15 747 a(\007)p 166 698 4
+183 v 128 698 a(\007)p -59 598 341 16 v -59 573 V -59
+548 V -59 523 V 279 665 4 150 v 241 665 a(\007)p 354
+706 4 75 v 355 632 a(\007)427 582 y(4)p 467 706 4 125
+v 1 w(\007)p 570 550 60 4 v 580 706 4 158 v 581 549 a(\007)p
+354 714 343 16 v 693 706 4 75 v 694 632 a(\007)p 806
+748 4 100 v 807 648 a(\007)p 919 731 4 166 v 920 565
+a(\007)p 1022 550 60 4 v 1032 714 4 182 v 1033 532 a(\007)806
+723 y(\220)883 711 y(\220)806 748 y(\220)883 736 y(\220)p
+1145 697 4 132 v 1146 565 a(\007)p 1248 749 60 4 v 1258
+864 4 100 v 1259 764 a(\007)p 1371 864 4 299 v 1372 565
+a(\007)p 1474 550 60 4 v 1484 864 4 333 v 1485 532 a(\007)p
+1258 847 343 16 v 1258 872 V 1597 864 4 299 v 1598 565
+a(\007)p 1710 716 4 135 v 1727 716 V 1810 499 a Fc(d)1770
+698 y Fd(4)p 1848 698 4 183 v(\007)p 1913 749 60 4 v
+1961 747 4 244 v 1923 747 a(\007)p 2074 698 4 206 v 2036
+698 a(\007)1848 540 y(\212)1923 533 y(\212)p 2187 665
+4 184 v 2149 665 a(\007)p 2300 632 4 162 v 2262 632 a(\007)2335
+582 y(4)p 2413 582 4 123 v(\007)p 2478 550 60 4 v 2526
+548 4 101 v 2488 548 a(\007)2300 495 y(\212)2375 488
+y(\212)1848 515 y(\213)2110 489 y(\213)p 2639 632 4 196
+v 2601 632 a(\007)p 2714 864 4 216 v 2715 648 a(\007)p
+2827 864 4 299 v 2828 565 a(\007)p 2930 550 60 4 v 2940
+864 4 333 v 2941 532 a(\007)p 2714 847 343 16 v 2714
+872 V 3053 864 4 299 v 3054 565 a(\007)p 3156 749 60
+4 v 3166 864 4 100 v 3167 764 a(\007)p 3279 864 4 299
+v 3280 565 a(\007)p 3382 550 60 4 v 3392 864 4 333 v
+3393 532 a(\007)p 3166 847 343 16 v 3166 872 V 3505 864
+4 299 v 3506 565 a(\007)p 3618 716 4 135 v 3635 716 V
+3638 881 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 881 a -364 1148 4002 4 v -364 1181 V
+-364 1214 V -364 1247 V -364 1280 V -364 1245 a Fd(G)-254
+1212 y(2)-221 1162 y(2)52 1445 y Fb(3)-103 1129 y Fc(e)-123
+1262 y Fd(4)p -83 1403 4 142 v 1 w(\007)p 62 1314 60
+4 v 72 1388 4 76 v 73 1312 a(\007)p 226 1372 4 144 v
+227 1229 a(\007)p 381 1357 4 162 v 382 1196 a(\007)475
+1146 y(4)p 515 1344 4 198 v 1 w(\007)p 638 1114 60 4
+v 648 1330 4 218 v 649 1113 a(\007)381 1332 y(\212)520
+1318 y(\212)-83 1403 y(\213)254 1370 y(\213)p 782 1317
+4 122 v 783 1196 a(\007)p 916 1312 4 100 v 917 1212 a(\007)p
+1049 1299 4 170 v 1050 1129 a(\007)p 1173 1114 60 4 v
+1183 1285 4 190 v 1184 1096 a(\007)916 1287 y(\212)1055
+1273 y(\212)916 1312 y(\212)1055 1298 y(\212)p 1317 1272
+4 143 v 1318 1129 a(\007)p 1441 1314 60 4 v 1451 1428
+4 100 v 1452 1328 a(\007)p 1584 1395 4 266 v 1585 1129
+a(\007)p 1708 1114 60 4 v 1718 1361 4 266 v 1719 1096
+a(\007)1451 1403 y(\234)1590 1368 y(\234)1451 1428 y(\234)1590
+1393 y(\234)p 1852 1328 4 199 v 1853 1129 a(\007)p 1985
+1280 4 135 v 2002 1280 V 2048 1211 a Fa(3)2048 1278 y(4)2232
+1113 y Fc(f)p 2222 1314 60 4 v 2270 1312 4 125 v 2232
+1312 a Fd(\007)2232 1295 y(\000)p 2455 1314 60 4 v 2503
+1312 4 125 v 2465 1312 a(\007)p 2550 1314 60 4 v 2599
+1312 4 125 v 96 w(\007)p 2600 1270 69 16 v 2505 1245
+164 16 v 2505 1220 V 2271 1195 397 16 v 2619 1314 60
+4 v 2668 1312 4 125 v 69 w(\007)p 2732 1195 2 16 v 2732
+1170 V 2732 1146 V 2684 1314 60 4 v 2732 1312 4 200 v
+64 w(\007)2694 1295 y(\000)p 2917 1314 60 4 v 2965 1312
+4 200 v 2927 1312 a(\007)p 3012 1314 60 4 v 3061 1312
+4 200 v 96 w(\007)p 3062 1195 69 16 v 2967 1170 164 16
+v 2967 1146 V 2732 1121 397 16 v 3081 1314 60 4 v 3130
+1312 4 200 v 69 w(\007)p 3194 1212 2 16 v 3194 1187 V
+3194 1162 V 3146 1314 60 4 v 3194 1312 4 183 v 64 w(\007)3156
+1295 y(\000)p 3378 1314 60 4 v 3426 1312 4 183 v 3388
+1312 a(\007)p 3474 1314 60 4 v 3523 1312 4 183 v 97 w(\007)p
+3524 1212 69 16 v 3429 1187 164 16 v 3429 1162 V 3194
+1137 397 16 v 3543 1314 60 4 v 3592 1312 4 183 v 69 w(\007)p
+3618 1280 4 135 v 3635 1280 V 3638 1445 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 1445 a
+eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven0.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven0.eps
index c9877ac750f..c8a188dad94 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven0.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven0.eps
@@ -1,907 +1,907 @@
-%% LaTeX2e file `eps/beethoven0.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: beethoven0.dvi
-%%CreationDate: Wed Feb 18 00:00:51 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 698 510 798
-%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE beethoven0.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.02.18:0000
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 49 /one put
-dup 54 /six put
-dup 57 /nine put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E15E0A3
-32D9D2069E82BB9906811AD94C3D4009F0E9E9A15F9880381EBFD43C30CD5AC1
-5256430DC19838B32B67F2CDAEFD72A072D7BDF46756305033C5635D9632017D
-F7DB2847FA735B9408C43E9E6666688350417B40483C6872B5F405366C8DE033
-48DBA20058B6BBA1BA16C14522A55AD339D12FC52F8A679FF13C0287FC78617B
-6035D1ACDC54F2BB8F1849F5E2E8FAB9C51E914FB5F83F1A2217ECED7C9B3042
-AF2540B8B64E793192CD53D260B93096F27D8B069E4B44E5234B21CB44F26C4B
-FCCC50B4CD9F406ACD3A5B6FFE69539278924563E2006F5EA54A674339108092
-29E25A4140D7593334220B97629CDA893255724C245188D81EF8C6F4B83391BA
-77DCDA7CFAB550AD37425EFC1A1F9F47B0F38A1F65DB8393EB426F20BC3B521E
-AF9211FE6D59268FB7CDB24B03D15B5E66B7EF6197A46E63C5BAF0BF14C27192
-FC27AE2BE7744E56A9C610CC3175AF4CC290197F9600325FA321AB4F22E7E51F
-F85690A0B0350EC71FD0C29ED947C142F938615E853F0698E606113A9C3E1749
-797E9DA6632FC9AAD415CBE4C2FBA8578627B7C7D61C54511AFAAA165769BEDD
-D0C65AD0BEA29C474588679A87949325A7E9575ECE458EB8AB6EDAAC34B549C6
-2E8DC9C5E69400AF4D922273195954F1117D802FB63037F1DA54BA2DAD99CF3B
-DDA9DCC48896A13A3D1C532C2817021848B8EDD1549DDA868C9241C826A837CF
-831213BBFF636A326E1CD1A2898DC7023905E7EF3E9E3CCD5D32912B8E16DABD
-1D13FA9021549B6D5CBE687CD583AB97BC534B3A5DAD5562B365C7D3BE4D8140
-DC2178A3
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 45 /hyphen put
-dup 52 /four put
-dup 71 /G put
-dup 73 /I put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A147678B652072CAFB2A7
-A02BC29585F88AE4DB41F2F259FCFF1983F17697620FF3186E9E102D35317B24
-46839F2837B6C7A515511E397B19AC2C76DCDE7063E1FCD278C1CBB2D87B70D2
-F2BA26A6A7A832699F447002F1270A02278D1DED35F0876382D8135358CDF95A
-DC51A88BEE96B9ED20F15C2DF307F46C07A91F8D428E9BB0B84A445FE6CDDEB0
-B1291BB7304F45A7129B347A86321CBED06D3594FE2130558210157C297591B0
-425FDBD997B04F069F6B47BAE53FE48BA7E67E4F383F9DC5B160492F083890A6
-E336E1D48A3AD0FD50FABBECF3A9597AD76B6A7DCFF8E0DE6771C9422033D52D
-CEE5518EE31C214C7DC30BD088DC524BAC2CAFDB01689C4D2E0F9A028A462508
-DDC131C15B2D4B0335C7B2BA228EC16B862F424152F41D7C474B8BF414BFAADE
-D4020B2DFF941C8310393FBAE9B505D0C92F02A88C79D71DD723F8215C09C384
-A2FB40D38B0D21B0161AAC5649870AD629FFCE217A5F6E65A1DA42275296E0DF
-147EBCD5269F6E7F5A5432E1D6779517B340B943F9F5E2BE30B088FD123ADBF5
-DE040C36EA842867E32321503FC904CE386E13BC777CEF522192FF0E10EE64AB
-D023D8CA14CCFECF092A6A1721B2FCB9A96154DD81F42FE8F284C98288A8387A
-32CE9E5386DA53A991FAE4F7270DF046F6435A0E9E458039CF90510CA647515F
-92BEDA8DD4120AD393B902960A8DFE8C64E5D02BBAE36C4116B3509D1CF287D9
-CC03AE9F2ED245987319175395E26DED9937A8C157A477DDE741454E0E839E82
-94B98A3AFB23D5C8110550D3026EF9EB370CDB306683AE63593FA21B2C0649B9
-F1290994473DDC2097572459B2784704D734CB71231587964E9F78A4FE1EA416
-3A25D5AA2F48B25DB9C6D3E09846BEE06683440AA281929B3B087465DB5AD981
-FD9EA18F6A4E880B1434ADC82B8A153162EB6F324004328EFAE174FA5F134529
-58488FBBF5BF4CD9667268166D59153EFE4CAF2416A6543C719A24816F379843
-BA6A22D3E57354E98C18764007C0E7C1B66A30ED48FCE124B848BC7A31CB626A
-B4B14CA7FFFEAAB979D56E06B5FECCCED3C823E0051798D3E6EBA7EAF470AD1E
-48EA93F1A940906CC7D00C235A7B1AF0BC4FA010452DDA85090031B0E3ED6894
-5F3FA9131470AB9FD280A67316C3B25CF563ED20BF9F3369E5E11E546B4ECA3C
-8545B9BEE793C1A52FE6A62E0B23F4776C44E9AA5DD73AD431182EDE2B1CC8BD
-035E3BA9F74A4DFE17B1F4F82E17A96570F8F3BF858ED8C39FFF274B4E1CA95D
-A6A7FC61A99DD228DBBFE5E55AC0047E8CBEAE1834D9594DCB22ABEC9AFAED2F
-8479F7A90C0C707E88070215B60A200E6820BE697A9E855C045552E60E51324B
-B7FBCCD459D4442C0114599B53233315260A86BE636FC059816B1417A1E316EC
-43B256D3B74DE52B4197BD4D27D428E1A20C84A2BDF7FFB8861C76AC2EF46B85
-29771EAA3820AABE8A94455FC574861C0505E8A21FDB0098C7CCC9A76249C706
-C8A586975BF4C383CA9EFBF35C20EB41CE5108F4D5A92038DE2B88DA5A9D2504
-E4A92F9531A9E80120D7379C77C9FA6E40CD474E35AF5CAFF22D9517D10EC59C
-4A16473D9D90E7650845D2F7242678869E5DE1A1C002156D2DA02EE8CE8B13EF
-A7E506DDCF297C03A2DBC838CDE04C051E32A39345FFEC6D0E7C1D451F9AAA24
-7DB90A3E492AB669E0A5BA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 80 /P put
-dup 97 /a put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
-36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
-A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
-4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
-0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
-9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
-C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
-F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
-0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
-BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
-9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
-1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
-D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
-CBBD534323A8D661D56AA5DC42BC8BFAA5BC6C322093460223EA50789047AC60
-4EACAB6E95576C2BC1388EF8C633E67DA506210D4A26D8D64A117796E8EB2B2B
-B51218447418B593FCBF6D71CDE52F70D5D2D6F08EF58B126A96627120A847BC
-7DE861B70914FF4300CC03A9FDA150A410448A6D529AFB4D82A7FEEE9E758D9E
-86177BC7CE728B3AC1E2034DAA7AD92DAC2CF1E774B39430C9E7F09E4D964CE6
-22BA6EC5184AE6493C19970CCC0B38DCA85A2BB66A287D0BA0678663205CACE4
-139D54BAA0AE86174F9774AAA689FD7212A56263ECEC01137303AF81D77CB6A5
-4B5F83450FA28844F41F5D704E03EE989DEE0CFCD0D268CCFDA1123AD3474CBF
-EAAF5ECF15BBDA72ACEA150D4B241193D450E3C3B92F758FD2A6516F07D3599E
-680E6FCBA1171250245AE9F4A7741E817F2C2D455125C4405E299EDB88771DF9
-44B4899ACDE5612CD3F7BCB097BE7C996559A8B724043992A3DB9B9744564D07
-34BBDF6D4283F0EC765134FF442007402AB9B2A58A76A373C50F07F92D93ACAC
-EEE6B227A9FA43A6A2B88062D50C2D3ACEDB3DB0042D798028F718BA869376DF
-E5B117FCF03CFACFC4F95ECC142E639E034E2F1187E5FEA2F9F3554E0D3DD8A9
-116E82B55B1F5E80E9793A4EE26B5297E2F295003992A40DD1B65831766E4871
-A23F3D621CE21E1FD97FC40A51268F1A60143A2AD58628269FBF6F6E004F1A65
-B064FB316BA4D18B5BA818FF682B861FD82D181923EC23C580634F4BDEF01E04
-CDB078C16EBB18E1D872E1102BB0B5D5AE5EB3FFC567DD3BC288787D1470411D
-B6E1C1FBFE36B28FAA6A8BA1A0DAD997D481AEA853FC73ABD6BE8DD33F8B19EF
-C70C5F74874664AA02DBBEB58DDAE21B0F39BA08CDDF4B4B8F68B3F493951279
-4192AB74FC50FA6D7D5D4D023D42A8AA8B781A3FE1541DB2936085CDD05B9D2D
-542B424D5D42ECD8FD8A58FE313B84A88F8A16E8B3D22A7A6FE870C36BDCE807
-247287DEB939CA99FD04C6519D3897523B8E02C531813B64583109C4383C9A43
-0B9397C1024614AD68F8691D812E34C16AA34E6D27765EC819A1C9D23AB7EEC4
-4FD22E191986AC8D9843F7283A6A74E2C5740AD6E122D2FF99461F5E681FF9AC
-ABCE227D536255DC1F5A7CD5CED43E12E0B012504C320FCE8CE68E882EE7D13E
-A51B796EE128C045956A3D761695109405E2112C707F10498503C7ECB3217B32
-D88B309C700BFDC85BADFB14A4B13AC4CA645C69C1839F632965E5D829563981
-3179A518977FC7DC6209A58BAC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 162 /cacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4EA829C06B838583D3
-BBC6282E98DAD2C3AD17563ECCECE646A50618C8E644036928897E6FDE05D36E
-B01EE384214C1078FF6868DB40CCD12C151C69130D8B5A267782B14FE6B4EBAC
-8B58235C77FB8F8D4A1A9DBBBB0D68BB0C71CD8CA7A7A6D7114C65E70A2A9C2C
-06AAA46DA5D72695CBFDC586D88658C2C7A3993C41B8F34F10B9D1B0867555DA
-D2C58DA8B12EA655649DBAEBA0FEB0767BB37DEEC6DE5164B4A42A4360711194
-41D1DA71E19358D415FC8C7B6D32073EEA8560680AF6B062F9F7FADF1DF947B1
-EED68B722E708009CF074A7809B9058C1DE2BBD0777CCA7E18A689394DC1F4FE
-E8F146E1007F67B925086CE919746E9CDBFD2E66E0E89708174D9459FA04A80E
-B3BF7DEF41CA3B9D30BA2A190599B4A4B56AD5DECA2DD3133A8F09C02E36AA15
-6C7AA86DF443EEBB9CE5598E11F2073D6B6ADC3B591CA66D2EB0859925182267
-C07CB0EC3DD9CA348DFF4CAD25F742B55B280688BA8AFA47C71332385A94337E
-6355883CBE38D83C7F1D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (beethoven0.dvi)
-@start /Fa 198[56 2[56 4[56 49[{}3 99.6264 /CMBX12 rf
-/Fb 182[106 1[106 18[40 6[0 37[0 6[0{}6 132.835 /TeXMUSIX16-Regular
-rf /Fc 144[42 46 4[23 7[42 16[57 80[{}5 83.022 /CMR10
-rf /Fd 93[0 162[{}1 166.044 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -40 245 a Fd(\242)p -40 396 3678
-4 v -40 430 V -40 463 V -40 496 V -40 529 V -40 -35 V
--40 -2 V -40 31 V -40 64 V -40 98 V -40 529 4 567 v -362
-274 a Fc(Piano)-40 428 y Fb(I)-40 63 y(G)121 460 y Fa(9)93
-526 y(16)121 28 y(9)93 95 y(16)p 375 363 60 4 v 375 330
-V 385 328 a Fb(\007)385 312 y(\000)p 385 569 4 241 v
-386 445 a(\007\000)1486 302 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (27.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1486 302 a 1453 363 60
-4 v 1453 330 V 1463 328 a Fb(\007)p 1463 569 4 241 v
-1464 445 a(\007)2201 362 y
- slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2201 362 a 2201 362 a
- end
- 2201
-362 a 2171 363 60 4 v 2181 361 a Fb(\007)p 2141 552 44
-16 v 385 577 1800 16 v 2181 569 4 208 v 2182 478 a(\007)p
-2530 363 60 4 v 2540 361 a(\007)2540 345 y(\000)p 2540
-586 4 225 v 2541 586 a(-)2541 478 y(\007\000)p 385 154
-4 142 v 386 13 a(\007)p 505 154 4 208 v 506 -54 a(\007)p
-615 -69 60 4 v 615 -102 V 625 154 4 258 v 626 -103 a(\007)p
-744 154 4 125 v 745 29 a(\007)p 864 154 4 208 v 865 -54
-a(\007)p 974 -69 60 4 v 984 154 4 241 v 985 -87 a(\007)p
-1104 154 4 142 v 1105 13 a(\007)p 1223 154 4 208 v 1224
--54 a(\007)p 385 112 962 16 v 385 137 V 385 162 V 1333
--69 60 4 v 1333 -102 V 1343 154 4 258 v 1344 -103 a(\007)1423
--54 y(4)p 1463 71 4 125 v 1 w(\007)p 1573 -69 60 4 v
-1583 71 4 158 v 1584 -87 a(\007)1662 -170 y(4)p 1692
--69 60 4 v 1692 -102 V 1692 -135 V 1692 -168 V 1702 71
-4 241 v 1 w(\007)p 1822 71 4 125 v 1823 -54 a(\007)p
-1932 -69 60 4 v 1942 71 4 158 v 1943 -87 a(\007)p 2052
--69 60 4 v 2052 -102 V 2052 -135 V 2062 71 4 208 v 2063
--137 a(\007)p 2171 -69 60 4 v 2181 71 4 142 v 2182 -70
-a(\007)p 2291 -69 60 4 v 2291 -102 V 2291 -135 V 2301
-71 4 208 v 2302 -137 a(\007)p 1463 29 962 16 v 1463 54
-V 1463 79 V 2411 -69 60 4 v 2411 -102 V 2411 -135 V 2411
--168 V 2421 71 4 258 v 2422 -186 a(\007)p 2530 -69 60
-4 v 2540 71 4 142 v 2541 -70 a(\007)p 2650 -69 60 4 v
-2650 -102 V 2650 -135 V 2660 71 4 208 v 2661 -137 a(\007)p
-2770 -69 60 4 v 2770 -102 V 2770 -135 V 2770 -168 V 2780
-71 4 258 v 2781 -186 a(\007)p 2900 71 4 125 v 2901 -54
-a(\007)p 3009 -69 60 4 v 3009 -102 V 3009 -135 V 3019
-71 4 208 v 3020 -137 a(\007)p 3129 -69 60 4 v 3129 -102
-V 3129 -135 V 3129 -168 V 3139 71 4 241 v 3140 -170 a(\007)p
-3249 -69 60 4 v 3259 71 4 142 v 3260 -70 a(\007)p 3369
--69 60 4 v 3369 -102 V 3369 -135 V 3379 71 4 208 v 3380
--137 a(\007)p 2540 29 962 16 v 2540 54 V 2540 79 V 3488
--69 60 4 v 3488 -102 V 3488 -135 V 3488 -168 V 3498 71
-4 258 v 3499 -186 a(\007)p 3618 529 4 567 v 3635 529
-V 3638 694 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 694 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/beethoven0.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: beethoven0.dvi
+%%CreationDate: Wed Feb 18 00:00:51 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 698 510 798
+%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE beethoven0.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.02.18:0000
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 49 /one put
+dup 54 /six put
+dup 57 /nine put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E15E0A3
+32D9D2069E82BB9906811AD94C3D4009F0E9E9A15F9880381EBFD43C30CD5AC1
+5256430DC19838B32B67F2CDAEFD72A072D7BDF46756305033C5635D9632017D
+F7DB2847FA735B9408C43E9E6666688350417B40483C6872B5F405366C8DE033
+48DBA20058B6BBA1BA16C14522A55AD339D12FC52F8A679FF13C0287FC78617B
+6035D1ACDC54F2BB8F1849F5E2E8FAB9C51E914FB5F83F1A2217ECED7C9B3042
+AF2540B8B64E793192CD53D260B93096F27D8B069E4B44E5234B21CB44F26C4B
+FCCC50B4CD9F406ACD3A5B6FFE69539278924563E2006F5EA54A674339108092
+29E25A4140D7593334220B97629CDA893255724C245188D81EF8C6F4B83391BA
+77DCDA7CFAB550AD37425EFC1A1F9F47B0F38A1F65DB8393EB426F20BC3B521E
+AF9211FE6D59268FB7CDB24B03D15B5E66B7EF6197A46E63C5BAF0BF14C27192
+FC27AE2BE7744E56A9C610CC3175AF4CC290197F9600325FA321AB4F22E7E51F
+F85690A0B0350EC71FD0C29ED947C142F938615E853F0698E606113A9C3E1749
+797E9DA6632FC9AAD415CBE4C2FBA8578627B7C7D61C54511AFAAA165769BEDD
+D0C65AD0BEA29C474588679A87949325A7E9575ECE458EB8AB6EDAAC34B549C6
+2E8DC9C5E69400AF4D922273195954F1117D802FB63037F1DA54BA2DAD99CF3B
+DDA9DCC48896A13A3D1C532C2817021848B8EDD1549DDA868C9241C826A837CF
+831213BBFF636A326E1CD1A2898DC7023905E7EF3E9E3CCD5D32912B8E16DABD
+1D13FA9021549B6D5CBE687CD583AB97BC534B3A5DAD5562B365C7D3BE4D8140
+DC2178A3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 45 /hyphen put
+dup 52 /four put
+dup 71 /G put
+dup 73 /I put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A147678B652072CAFB2A7
+A02BC29585F88AE4DB41F2F259FCFF1983F17697620FF3186E9E102D35317B24
+46839F2837B6C7A515511E397B19AC2C76DCDE7063E1FCD278C1CBB2D87B70D2
+F2BA26A6A7A832699F447002F1270A02278D1DED35F0876382D8135358CDF95A
+DC51A88BEE96B9ED20F15C2DF307F46C07A91F8D428E9BB0B84A445FE6CDDEB0
+B1291BB7304F45A7129B347A86321CBED06D3594FE2130558210157C297591B0
+425FDBD997B04F069F6B47BAE53FE48BA7E67E4F383F9DC5B160492F083890A6
+E336E1D48A3AD0FD50FABBECF3A9597AD76B6A7DCFF8E0DE6771C9422033D52D
+CEE5518EE31C214C7DC30BD088DC524BAC2CAFDB01689C4D2E0F9A028A462508
+DDC131C15B2D4B0335C7B2BA228EC16B862F424152F41D7C474B8BF414BFAADE
+D4020B2DFF941C8310393FBAE9B505D0C92F02A88C79D71DD723F8215C09C384
+A2FB40D38B0D21B0161AAC5649870AD629FFCE217A5F6E65A1DA42275296E0DF
+147EBCD5269F6E7F5A5432E1D6779517B340B943F9F5E2BE30B088FD123ADBF5
+DE040C36EA842867E32321503FC904CE386E13BC777CEF522192FF0E10EE64AB
+D023D8CA14CCFECF092A6A1721B2FCB9A96154DD81F42FE8F284C98288A8387A
+32CE9E5386DA53A991FAE4F7270DF046F6435A0E9E458039CF90510CA647515F
+92BEDA8DD4120AD393B902960A8DFE8C64E5D02BBAE36C4116B3509D1CF287D9
+CC03AE9F2ED245987319175395E26DED9937A8C157A477DDE741454E0E839E82
+94B98A3AFB23D5C8110550D3026EF9EB370CDB306683AE63593FA21B2C0649B9
+F1290994473DDC2097572459B2784704D734CB71231587964E9F78A4FE1EA416
+3A25D5AA2F48B25DB9C6D3E09846BEE06683440AA281929B3B087465DB5AD981
+FD9EA18F6A4E880B1434ADC82B8A153162EB6F324004328EFAE174FA5F134529
+58488FBBF5BF4CD9667268166D59153EFE4CAF2416A6543C719A24816F379843
+BA6A22D3E57354E98C18764007C0E7C1B66A30ED48FCE124B848BC7A31CB626A
+B4B14CA7FFFEAAB979D56E06B5FECCCED3C823E0051798D3E6EBA7EAF470AD1E
+48EA93F1A940906CC7D00C235A7B1AF0BC4FA010452DDA85090031B0E3ED6894
+5F3FA9131470AB9FD280A67316C3B25CF563ED20BF9F3369E5E11E546B4ECA3C
+8545B9BEE793C1A52FE6A62E0B23F4776C44E9AA5DD73AD431182EDE2B1CC8BD
+035E3BA9F74A4DFE17B1F4F82E17A96570F8F3BF858ED8C39FFF274B4E1CA95D
+A6A7FC61A99DD228DBBFE5E55AC0047E8CBEAE1834D9594DCB22ABEC9AFAED2F
+8479F7A90C0C707E88070215B60A200E6820BE697A9E855C045552E60E51324B
+B7FBCCD459D4442C0114599B53233315260A86BE636FC059816B1417A1E316EC
+43B256D3B74DE52B4197BD4D27D428E1A20C84A2BDF7FFB8861C76AC2EF46B85
+29771EAA3820AABE8A94455FC574861C0505E8A21FDB0098C7CCC9A76249C706
+C8A586975BF4C383CA9EFBF35C20EB41CE5108F4D5A92038DE2B88DA5A9D2504
+E4A92F9531A9E80120D7379C77C9FA6E40CD474E35AF5CAFF22D9517D10EC59C
+4A16473D9D90E7650845D2F7242678869E5DE1A1C002156D2DA02EE8CE8B13EF
+A7E506DDCF297C03A2DBC838CDE04C051E32A39345FFEC6D0E7C1D451F9AAA24
+7DB90A3E492AB669E0A5BA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 80 /P put
+dup 97 /a put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
+C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
+F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
+0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
+BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
+9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
+1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
+D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
+CBBD534323A8D661D56AA5DC42BC8BFAA5BC6C322093460223EA50789047AC60
+4EACAB6E95576C2BC1388EF8C633E67DA506210D4A26D8D64A117796E8EB2B2B
+B51218447418B593FCBF6D71CDE52F70D5D2D6F08EF58B126A96627120A847BC
+7DE861B70914FF4300CC03A9FDA150A410448A6D529AFB4D82A7FEEE9E758D9E
+86177BC7CE728B3AC1E2034DAA7AD92DAC2CF1E774B39430C9E7F09E4D964CE6
+22BA6EC5184AE6493C19970CCC0B38DCA85A2BB66A287D0BA0678663205CACE4
+139D54BAA0AE86174F9774AAA689FD7212A56263ECEC01137303AF81D77CB6A5
+4B5F83450FA28844F41F5D704E03EE989DEE0CFCD0D268CCFDA1123AD3474CBF
+EAAF5ECF15BBDA72ACEA150D4B241193D450E3C3B92F758FD2A6516F07D3599E
+680E6FCBA1171250245AE9F4A7741E817F2C2D455125C4405E299EDB88771DF9
+44B4899ACDE5612CD3F7BCB097BE7C996559A8B724043992A3DB9B9744564D07
+34BBDF6D4283F0EC765134FF442007402AB9B2A58A76A373C50F07F92D93ACAC
+EEE6B227A9FA43A6A2B88062D50C2D3ACEDB3DB0042D798028F718BA869376DF
+E5B117FCF03CFACFC4F95ECC142E639E034E2F1187E5FEA2F9F3554E0D3DD8A9
+116E82B55B1F5E80E9793A4EE26B5297E2F295003992A40DD1B65831766E4871
+A23F3D621CE21E1FD97FC40A51268F1A60143A2AD58628269FBF6F6E004F1A65
+B064FB316BA4D18B5BA818FF682B861FD82D181923EC23C580634F4BDEF01E04
+CDB078C16EBB18E1D872E1102BB0B5D5AE5EB3FFC567DD3BC288787D1470411D
+B6E1C1FBFE36B28FAA6A8BA1A0DAD997D481AEA853FC73ABD6BE8DD33F8B19EF
+C70C5F74874664AA02DBBEB58DDAE21B0F39BA08CDDF4B4B8F68B3F493951279
+4192AB74FC50FA6D7D5D4D023D42A8AA8B781A3FE1541DB2936085CDD05B9D2D
+542B424D5D42ECD8FD8A58FE313B84A88F8A16E8B3D22A7A6FE870C36BDCE807
+247287DEB939CA99FD04C6519D3897523B8E02C531813B64583109C4383C9A43
+0B9397C1024614AD68F8691D812E34C16AA34E6D27765EC819A1C9D23AB7EEC4
+4FD22E191986AC8D9843F7283A6A74E2C5740AD6E122D2FF99461F5E681FF9AC
+ABCE227D536255DC1F5A7CD5CED43E12E0B012504C320FCE8CE68E882EE7D13E
+A51B796EE128C045956A3D761695109405E2112C707F10498503C7ECB3217B32
+D88B309C700BFDC85BADFB14A4B13AC4CA645C69C1839F632965E5D829563981
+3179A518977FC7DC6209A58BAC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 162 /cacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4EA829C06B838583D3
+BBC6282E98DAD2C3AD17563ECCECE646A50618C8E644036928897E6FDE05D36E
+B01EE384214C1078FF6868DB40CCD12C151C69130D8B5A267782B14FE6B4EBAC
+8B58235C77FB8F8D4A1A9DBBBB0D68BB0C71CD8CA7A7A6D7114C65E70A2A9C2C
+06AAA46DA5D72695CBFDC586D88658C2C7A3993C41B8F34F10B9D1B0867555DA
+D2C58DA8B12EA655649DBAEBA0FEB0767BB37DEEC6DE5164B4A42A4360711194
+41D1DA71E19358D415FC8C7B6D32073EEA8560680AF6B062F9F7FADF1DF947B1
+EED68B722E708009CF074A7809B9058C1DE2BBD0777CCA7E18A689394DC1F4FE
+E8F146E1007F67B925086CE919746E9CDBFD2E66E0E89708174D9459FA04A80E
+B3BF7DEF41CA3B9D30BA2A190599B4A4B56AD5DECA2DD3133A8F09C02E36AA15
+6C7AA86DF443EEBB9CE5598E11F2073D6B6ADC3B591CA66D2EB0859925182267
+C07CB0EC3DD9CA348DFF4CAD25F742B55B280688BA8AFA47C71332385A94337E
+6355883CBE38D83C7F1D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (beethoven0.dvi)
+@start /Fa 198[56 2[56 4[56 49[{}3 99.6264 /CMBX12 rf
+/Fb 182[106 1[106 18[40 6[0 37[0 6[0{}6 132.835 /TeXMUSIX16-Regular
+rf /Fc 144[42 46 4[23 7[42 16[57 80[{}5 83.022 /CMR10
+rf /Fd 93[0 162[{}1 166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -40 245 a Fd(\242)p -40 396 3678
+4 v -40 430 V -40 463 V -40 496 V -40 529 V -40 -35 V
+-40 -2 V -40 31 V -40 64 V -40 98 V -40 529 4 567 v -362
+274 a Fc(Piano)-40 428 y Fb(I)-40 63 y(G)121 460 y Fa(9)93
+526 y(16)121 28 y(9)93 95 y(16)p 375 363 60 4 v 375 330
+V 385 328 a Fb(\007)385 312 y(\000)p 385 569 4 241 v
+386 445 a(\007\000)1486 302 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (27.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1486 302 a 1453 363 60
+4 v 1453 330 V 1463 328 a Fb(\007)p 1463 569 4 241 v
+1464 445 a(\007)2201 362 y
+ slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2201 362 a 2201 362 a
+ end
+ 2201
+362 a 2171 363 60 4 v 2181 361 a Fb(\007)p 2141 552 44
+16 v 385 577 1800 16 v 2181 569 4 208 v 2182 478 a(\007)p
+2530 363 60 4 v 2540 361 a(\007)2540 345 y(\000)p 2540
+586 4 225 v 2541 586 a(-)2541 478 y(\007\000)p 385 154
+4 142 v 386 13 a(\007)p 505 154 4 208 v 506 -54 a(\007)p
+615 -69 60 4 v 615 -102 V 625 154 4 258 v 626 -103 a(\007)p
+744 154 4 125 v 745 29 a(\007)p 864 154 4 208 v 865 -54
+a(\007)p 974 -69 60 4 v 984 154 4 241 v 985 -87 a(\007)p
+1104 154 4 142 v 1105 13 a(\007)p 1223 154 4 208 v 1224
+-54 a(\007)p 385 112 962 16 v 385 137 V 385 162 V 1333
+-69 60 4 v 1333 -102 V 1343 154 4 258 v 1344 -103 a(\007)1423
+-54 y(4)p 1463 71 4 125 v 1 w(\007)p 1573 -69 60 4 v
+1583 71 4 158 v 1584 -87 a(\007)1662 -170 y(4)p 1692
+-69 60 4 v 1692 -102 V 1692 -135 V 1692 -168 V 1702 71
+4 241 v 1 w(\007)p 1822 71 4 125 v 1823 -54 a(\007)p
+1932 -69 60 4 v 1942 71 4 158 v 1943 -87 a(\007)p 2052
+-69 60 4 v 2052 -102 V 2052 -135 V 2062 71 4 208 v 2063
+-137 a(\007)p 2171 -69 60 4 v 2181 71 4 142 v 2182 -70
+a(\007)p 2291 -69 60 4 v 2291 -102 V 2291 -135 V 2301
+71 4 208 v 2302 -137 a(\007)p 1463 29 962 16 v 1463 54
+V 1463 79 V 2411 -69 60 4 v 2411 -102 V 2411 -135 V 2411
+-168 V 2421 71 4 258 v 2422 -186 a(\007)p 2530 -69 60
+4 v 2540 71 4 142 v 2541 -70 a(\007)p 2650 -69 60 4 v
+2650 -102 V 2650 -135 V 2660 71 4 208 v 2661 -137 a(\007)p
+2770 -69 60 4 v 2770 -102 V 2770 -135 V 2770 -168 V 2780
+71 4 258 v 2781 -186 a(\007)p 2900 71 4 125 v 2901 -54
+a(\007)p 3009 -69 60 4 v 3009 -102 V 3009 -135 V 3019
+71 4 208 v 3020 -137 a(\007)p 3129 -69 60 4 v 3129 -102
+V 3129 -135 V 3129 -168 V 3139 71 4 241 v 3140 -170 a(\007)p
+3249 -69 60 4 v 3259 71 4 142 v 3260 -70 a(\007)p 3369
+-69 60 4 v 3369 -102 V 3369 -135 V 3379 71 4 208 v 3380
+-137 a(\007)p 2540 29 962 16 v 2540 54 V 2540 79 V 3488
+-69 60 4 v 3488 -102 V 3488 -135 V 3488 -168 V 3498 71
+4 258 v 3499 -186 a(\007)p 3618 529 4 567 v 3635 529
+V 3638 694 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 694 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven1.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven1.eps
index f09d990c231..e777c43ffbb 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven1.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/beethoven1.eps
@@ -1,993 +1,993 @@
-%% LaTeX2e file `eps/beethoven1.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: beethoven1.dvi
-%%CreationDate: Wed Feb 18 00:01:35 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 698 510 792
-%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBX12
-%%+ CMMI7
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE beethoven1.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.02.18:0001
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMMI7
-%!PS-AdobeFont-1.1: CMMI7 1.100
-%%CreationDate: 1996 Jul 23 07:53:53
-% 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 (CMMI7) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMMI7 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 97 /a put
-dup 118 /v put
-readonly def
-/FontBBox{0 -250 1171 750}readonly def
-/UniqueID 5087382 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
-C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
-B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
-DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
-4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
-FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
-76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
-123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
-012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
-A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
-44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
-4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
-01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
-D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
-914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
-261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
-24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
-A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
-9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
-889787CDC0C51802EA1E0C63E6DE20980D3DD206F053686B961982863FF25207
-D4CC93C03871BA584C41E7095C90C0000DAF1AAF8C0873E9DDC5D3062311AE37
-185F06152488311CF528FBC6A49E6F6E44630092924EE211A0A685E0CB7DA857
-866D90E2C651124C577F2BE5BD30632794A75AE08990CCE63C907F6600B3CAC1
-F681F29DD15A96C7C85A2A7C83606FBC55317F7B5D93BEC5D2693C439EB63122
-3D59641D68D9EA7D623EFC1260764A304ACED831C2E54F5DB2B2609FC82C6CBC
-11C11C6B8F083FA2C1BA9B5C237657D9309D2A2A5F0E9C1F030E2A61104C1256
-D965BA3F9EF3E64F240A32290861CBE89B82D021ADA6B1B839F3D741C873901C
-832CD56132B7D0AB651EABAC69815A8295AA2E800A263D4B6D09C5D59930B61E
-54D4C67B8F11A0E9268064A996829E3B1CB25EE1840F547FE66D529486AD41CD
-DE6925A93BEC218CB1AF8DDBFCA47F7EBA58233830D130B52819545066163D84
-5CBDD8B0EF927B385E269680475738B3ADB7F41A45446C8F014DEFD7D1D564EA
-A5A9631733D6FE91E85F5A0AB5F436AEE0AA7B4A5BF373F4C24EDB9804FF51A7
-6963C494219AC601C55B69828CCA8B577E77B3309C519097E1FE308AD823E373
-B8C65B70F218FB31CBF3900CA4D2B8F1151E9C1250E97FF1E5DF6FA8B2AE32A5
-97E7CD07C21F704CE36F1351C1C21985316327530A79522EEAB9871AFC74DF58
-76F1F4E19BCF7AAE
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 49 /one put
-dup 54 /six put
-dup 57 /nine put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E15E0A3
-32D9D2069E82BB9906811AD94C3D4009F0E9E9A15F9880381EBFD43C30CD5AC1
-5256430DC19838B32B67F2CDAEFD72A072D7BDF46756305033C5635D9632017D
-F7DB2847FA735B9408C43E9E6666688350417B40483C6872B5F405366C8DE033
-48DBA20058B6BBA1BA16C14522A55AD339D12FC52F8A679FF13C0287FC78617B
-6035D1ACDC54F2BB8F1849F5E2E8FAB9C51E914FB5F83F1A2217ECED7C9B3042
-AF2540B8B64E793192CD53D260B93096F27D8B069E4B44E5234B21CB44F26C4B
-FCCC50B4CD9F406ACD3A5B6FFE69539278924563E2006F5EA54A674339108092
-29E25A4140D7593334220B97629CDA893255724C245188D81EF8C6F4B83391BA
-77DCDA7CFAB550AD37425EFC1A1F9F47B0F38A1F65DB8393EB426F20BC3B521E
-AF9211FE6D59268FB7CDB24B03D15B5E66B7EF6197A46E63C5BAF0BF14C27192
-FC27AE2BE7744E56A9C610CC3175AF4CC290197F9600325FA321AB4F22E7E51F
-F85690A0B0350EC71FD0C29ED947C142F938615E853F0698E606113A9C3E1749
-797E9DA6632FC9AAD415CBE4C2FBA8578627B7C7D61C54511AFAAA165769BEDD
-D0C65AD0BEA29C474588679A87949325A7E9575ECE458EB8AB6EDAAC34B549C6
-2E8DC9C5E69400AF4D922273195954F1117D802FB63037F1DA54BA2DAD99CF3B
-DDA9DCC48896A13A3D1C532C2817021848B8EDD1549DDA868C9241C826A837CF
-831213BBFF636A326E1CD1A2898DC7023905E7EF3E9E3CCD5D32912B8E16DABD
-1D13FA9021549B6D5CBE687CD583AB97BC534B3A5DAD5562B365C7D3BE4D8140
-DC2178A3
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 45 /hyphen put
-dup 52 /four put
-dup 71 /G put
-dup 73 /I put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A147678B652072CAFB2A7
-A02BC29585F88AE4DB41F2F259FCFF1983F17697620FF3186E9E102D35317B24
-46839F2837B6C7A515511E397B19AC2C76DCDE7063E1FCD278C1CBB2D87B70D2
-F2BA26A6A7A832699F447002F1270A02278D1DED35F0876382D8135358CDF95A
-DC51A88BEE96B9ED20F15C2DF307F46C07A91F8D428E9BB0B84A445FE6CDDEB0
-B1291BB7304F45A7129B347A86321CBED06D3594FE2130558210157C297591B0
-425FDBD997B04F069F6B47BAE53FE48BA7E67E4F383F9DC5B160492F083890A6
-E336E1D48A3AD0FD50FABBECF3A9597AD76B6A7DCFF8E0DE6771C9422033D52D
-CEE5518EE31C214C7DC30BD088DC524BAC2CAFDB01689C4D2E0F9A028A462508
-DDC131C15B2D4B0335C7B2BA228EC16B862F424152F41D7C474B8BF414BFAADE
-D4020B2DFF941C8310393FBAE9B505D0C92F02A88C79D71DD723F8215C09C384
-A2FB40D38B0D21B0161AAC5649870AD629FFCE217A5F6E65A1DA42275296E0DF
-147EBCD5269F6E7F5A5432E1D6779517B340B943F9F5E2BE30B088FD123ADBF5
-DE040C36EA842867E32321503FC904CE386E13BC777CEF522192FF0E10EE64AB
-D023D8CA14CCFECF092A6A1721B2FCB9A96154DD81F42FE8F284C98288A8387A
-32CE9E5386DA53A991FAE4F7270DF046F6435A0E9E458039CF90510CA647515F
-92BEDA8DD4120AD393B902960A8DFE8C64E5D02BBAE36C4116B3509D1CF287D9
-CC03AE9F2ED245987319175395E26DED9937A8C157A477DDE741454E0E839E82
-94B98A3AFB23D5C8110550D3026EF9EB370CDB306683AE63593FA21B2C0649B9
-F1290994473DDC2097572459B2784704D734CB71231587964E9F78A4FE1EA416
-3A25D5AA2F48B25DB9C6D3E09846BEE06683440AA281929B3B087465DB5AD981
-FD9EA18F6A4E880B1434ADC82B8A153162EB6F324004328EFAE174FA5F134529
-58488FBBF5BF4CD9667268166D59153EFE4CAF2416A6543C719A24816F379843
-BA6A22D3E57354E98C18764007C0E7C1B66A30ED48FCE124B848BC7A31CB626A
-B4B14CA7FFFEAAB979D56E06B5FECCCED3C823E0051798D3E6EBA7EAF470AD1E
-48EA93F1A940906CC7D00C235A7B1AF0BC4FA010452DDA85090031B0E3ED6894
-5F3FA9131470AB9FD280A67316C3B25CF563ED20BF9F3369E5E11E546B4ECA3C
-8545B9BEE793C1A52FE6A62E0B23F4776C44E9AA5DD73AD431182EDE2B1CC8BD
-035E3BA9F74A4DFE17B1F4F82E17A96570F8F3BF858ED8C39FFF274B4E1CA95D
-A6A7FC61A99DD228DBBFE5E55AC0047E8CBEAE1834D9594DCB22ABEC9AFAED2F
-8479F7A90C0C707E88070215B60A200E6820BE697A9E855C045552E60E51324B
-B7FBCCD459D4442C0114599B53233315260A86BE636FC059816B1417A1E316EC
-43B256D3B74DE52B4197BD4D27D428E1A20C84A2BDF7FFB8861C76AC2EF46B85
-29771EAA3820AABE8A94455FC574861C0505E8A21FDB0098C7CCC9A76249C706
-C8A586975BF4C383CA9EFBF35C20EB41CE5108F4D5A92038DE2B88DA5A9D2504
-E4A92F9531A9E80120D7379C77C9FA6E40CD474E35AF5CAFF22D9517D10EC59C
-4A16473D9D90E7650845D2F7242678869E5DE1A1C002156D2DA02EE8CE8B13EF
-A7E506DDCF297C03A2DBC838CDE04C051E32A39345FFEC6D0E7C1D451F9AAA24
-7DB90A3E492AB669E0A5BA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 56 /eight put
-dup 80 /P put
-dup 97 /a put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F289B80BA6EEA70668BDB79CFC0890
-B47D0094BBC8B4195DE66AE45801FF0A29945D6D5B651C251B9EB5A26DEF9EFA
-45B44CC4377562BCFF8F324E2AB57D00D2AB94AC15D29E63BC4D26CE4803A4E0
-0B71FB9FF3F957634501ED2FAB2017C34B786182DEA18A90251F8BE10CC00A48
-0EB1FB57CB36234F24C2A589FAC56B303CD63E243AE47A34544330A9ACCEF12E
-CC6EA8BD938949438A3D3510D28B3A9C69854144690024FD13CDE6D313A06587
-E6329F6CC3FF5883859343307FDF526399CF45B3CD727425B7A59F6BBB9125A3
-CD72EA7A7B7572BCC60FAF5D6DC87C2D2A77E09104B5A1B93AD710BCBFEE6A59
-B9B386BE9C3B49C3C94D1FDA53878B06D9774D944B8F077BFD9BDC2EB03C158F
-08302570C3EC5EDAB74AC0DC147F025EF2D81C228425F8551D2315D6FE8A58CD
-4CAA1D976708CE68C3E4BB5BB57AFB7CB4A48605ED1E2CB6E07CF56686E31B66
-D8C1D7E8DAA6804AAE5DE138E8A3131FAD3493874D67FB56FED2C58DD18152F7
-5E9E3A619B04CCCBA54BD90B9DEDE6EBE1C95D775842961370B4B3F00F2C67CA
-ADDEB269BAB33C7B2F538CB123B2178C163E11B6967796F9B34391870B62ACFE
-4FAA6E6D33044800DB3F20739AE80187B54C843F8E434894BB92D3FC091B2B1C
-68C410114D47C08DA4A59D1DE0322EE04F4ABC9B3E8694ECD0E3926F2374BF28
-D1F275701A6F081079BAA1B361CE9FF561729D23512492142D1E5058061DE1DE
-87490CAA05E47181D7A44084FB086122A3A935A10620534D0D3B816DAF5CCBB3
-1BE11F1C528AE32EAF73872FA1160FBFE1C5AE9498047E49ECA577558B8C9F4C
-DFBCAA60783AD6510BE1DE80D692D975F0297150E3C222E374BEA299CD1BE014
-B56D2FE837971F68241CDD999C865F296F2561B7E261272F995602FD0D7BA232
-15EC0AD4EE14CE2BD2B42443C26E4DDDF9FD558598DD71D43D158ECC801A7854
-C8D9194F458D398D1A63B11B83E97DFCD05E8D60B617F0B97010C8DF05798FD0
-882C37C441DA46A342F027E252005F6A9BDAE70FE0CD6FEC6BD5BF2EEAB851E8
-1AA7BDBB80090760D7C7F105B1B917ACD004AB28B303C7258222CE2AFA82DA40
-0E67C43A0C29079DD2CBAF4F45EA6E78D4EB2EDC926AB7519E5E603F375C94B5
-DFF2AF19C7A44052F78A80536FABEA760B37470C1ABA47EA240B1B24970D0695
-8AF7B4C8781B386217DB11CFEF9DCF047D80EDD5BE8D33FF617DE44C5F840A7D
-AE7F9E2AB9613F4BE66904CC266B7E86AC1C9B6D05DE4BEC37BDBC5AD929C477
-6E31DB9ECE50B8650269BBFDB4EB2AA61318CC00848B865C7913BD78FAA03BE7
-872D2CF024A0F6DB87F63308DE6221C00902D48AF050A5AC1865582CFCA0AE0E
-1C80D6E3A7C8FC328D58A44AC45A5B04A455121C65AC4AE9B754B92F70DC67B7
-ED6A46DBECE0EAD7582A1F8C0ECF908A525A874D2DF37F6B984EA83328145A87
-FB916E8592E2763AEEC6493A83551E3AADF3E5023F2DC1D32745966A2BB385F1
-23DB5766C7F138E97FD6D087B435BB17C6BC07C345BD13CCD64A48498FF45F77
-91D6CF3C8E530F8BC4804B1A9A99B37892402E28E0C4E699A30DF0547FF76810
-13ED6B148367458DC39E707ACD2B308A60F4FCCE3FC84E11FBE8D1E24E622329
-35EA9458B3991277C48527B50501F2A9D09EA8F4E0223F0479617F31693FDA2B
-9911D4370A29C304708A141A79B79B42C6488057DA517317474890E34702C805
-E3126217AEDC0F651BE3008C8B8EFBC682574D3DEA9FDA600FF5CC8AC2B94B59
-1FD668D4B9EEBEDC4530A9045B0206441AF39C7DAAAE74F44D757E0E6E4E04C8
-5FB570318D467B9F5DD5FBEF5B56E81725392E627B1083C13E8FB29BEAAB5923
-B51C986A150706676E375C6727CF31E36953A72B6D445F97F5E735A3AF41027B
-4BEF1E61BB0E793670C2EA9A85D21374C2533243BA90C7BEA795D5E1D29347FE
-CD8D71FF7389FC534C4CBC156C32A71E3195883BB23246535CD0E64CBAE7B795
-B0B09BBAA260A8C557FBF02FEB4CAAC83CE56557F0A1B90F0C6042D53DEB89E2
-AF39E0A12DE58E503F930162CA78DF94FEE8B044804079E9B631A772C7ACCFCF
-6D49D04ED6895184238BADE3
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 23 /cwm put
-dup 162 /cacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1EF666D1C109A37E7EBE016D2C880B9802C73AAB6BD1898A0E570E
-8CF04E85BAF50087A15057D05A4B113EE4204626FE83DB20E750FF241B70851B
-BF70F865D566B98BD9C25AA26A40BA585CBD8D272037E7EB77D41CBDC68C6F9E
-53C82E2B7D736DB0F325B1FE87C62BC6F53E182B587029E46CA665A4396A2515
-93779FA449A2AC4290BDDF6E2562C055AEF3AAD3C7DA52BEAB3C863771B8F0D3
-8951F94B164A204B6650D487F7A50CE38806200D73B5F3018DFA4B9DDCDF14BA
-E8E1A4A81E6AD64BD5DDCC14A1BFBF338CCF0016DC6B8AB0C7731ECA201E20B1
-E191FEAFD5E39474A74BD04784B68CD6F1F0D24E9FF3D3E5778D8BA24F3B1F4A
-46A545F6EF8097CB89061C550250577AC6CED126726FFBC2F4CA589A888AC087
-4B96EBE2AE02A51E870965572229CBA59FE2AFD3E01C2A8F093F10468540FEF7
-55D29F3321077AFBE5084EB1BC9D40826095912090F71AF453F1E2F31C9A6614
-5809EBDC8373B81B66C35178719497BD2905E188A95FB2E0929853170FE9731D
-8E6C09D1971DA611DA775F5279BBE1ABB90B5659BFCE9D437046C000899DEE38
-0D7FD54B52194B7EC347A4E9FEA5EBF49483CC26F229142CFF5425935D845D98
-8D52DE7C64040E9312E262
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (beethoven1.dvi)
-@start /Fa 137[33 20[36 97[{}2 58.1154 /CMMI7 rf /Fb
-198[56 2[56 4[56 49[{}3 99.6264 /CMBX12 rf /Fc 182[106
-1[106 18[40 6[0 37[0 6[0{}6 132.835 /TeXMUSIX16-Regular
-rf /Fd 144[42 46 4[23 7[42 16[57 23[42 56[{}6 83.022
-/CMR10 rf /Fe 93[0 138[50 23[{}2 166.044 /TeXMUSIXSPX-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -40 245 a Fe(\242)p -40 396 3678
-4 v -40 430 V -40 463 V -40 496 V -40 529 V -40 -35 V
--40 -2 V -40 31 V -40 64 V -40 98 V -40 529 4 567 v -362
-274 a Fd(Piano)-40 428 y Fc(I)-40 63 y(G)121 460 y Fb(9)93
-526 y(16)121 28 y(9)93 95 y(16)p 375 363 60 4 v 375 330
-V 385 328 a Fc(\007)385 312 y(\000)p 385 569 4 241 v
-386 445 a(\007\000)1486 302 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (27.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1486 302 a 1453 363 60
-4 v 1453 330 V 1463 328 a Fc(\007)p 1463 569 4 241 v
-1464 445 a(\007)2201 362 y
- slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2201 362 a 2201 362 a
- end
- 2201
-362 a 2171 363 60 4 v 2181 361 a Fc(\007)p 2141 552 44
-16 v 385 577 1800 16 v 2181 569 4 208 v 2182 478 a(\007)p
-2530 363 60 4 v 2540 361 a(\007)2540 345 y(\000)p 2540
-586 4 225 v 2541 586 a(-)2541 478 y(\007\000)p 385 154
-4 142 v 386 13 a(\007)p 505 154 4 208 v 506 -54 a(\007)p
-615 -69 60 4 v 615 -102 V 625 154 4 258 v 626 -103 a(\007)p
-744 154 4 125 v 745 29 a(\007)p 864 154 4 208 v 865 -54
-a(\007)p 974 -69 60 4 v 984 154 4 241 v 985 -87 a(\007)p
-1104 154 4 142 v 1105 13 a(\007)p 1223 154 4 208 v 1224
--54 a(\007)p 385 112 962 16 v 385 137 V 385 162 V 1333
--69 60 4 v 1333 -102 V 1343 154 4 258 v 1344 -103 a(\007)1423
-63 y(4)p 1463 187 4 125 v 1 w(\007)p 1583 187 4 158 v
-1584 29 a(\007)1662 -54 y(4)p 1702 187 4 241 v 1 w(\007)p
-1822 187 4 125 v 1823 63 a(\007)p 1942 187 4 158 v 1943
-29 a(\007)p 2061 187 4 208 v 2062 -20 a(\007)p 2181 187
-4 142 v 2182 46 a(\007)p 2301 187 4 208 v 2302 -20 a(\007)p
-1463 145 962 16 v 1463 170 V 1463 195 V 2411 -69 60 4
-v 2421 187 4 258 v 2422 -70 a(\007)p 2540 187 4 142 v
-2541 46 a(\007)p 2660 187 4 208 v 2661 -20 a(\007)p 2770
--69 60 4 v 2780 187 4 258 v 2781 -70 a(\007)p 2900 187
-4 125 v 2901 63 a(\007)p 3019 187 4 208 v 3020 -20 a(\007)p
-3139 187 4 241 v 3140 -54 a(\007)p 3259 187 4 142 v 3260
-46 a(\007)p 3378 187 4 208 v 3379 -20 a(\007)p 2540 145
-962 16 v 2540 170 V 2540 195 V 3488 -69 60 4 v 3498 187
-4 258 v 3499 -70 a(\007)p 3618 529 4 567 v 3635 529 V
-3638 694 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 694 a 1463 -120 a Fd(8)1505 -150 y Fa(v)r(a)1580
--120 y Fe(\027\027)q(\027\027\027\027\027\027)q(\027\027\027\027\027)q
-(\027\027\027\027\027)q(\027\027\027\027\027\027)q
-(\027\027\027\027\027)q(\027\027\027\027\027)q(\027\027\027\027\027)q
-(\027\027)p eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/beethoven1.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: beethoven1.dvi
+%%CreationDate: Wed Feb 18 00:01:35 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 698 510 792
+%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBX12
+%%+ CMMI7
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE beethoven1.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.02.18:0001
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMMI7
+%!PS-AdobeFont-1.1: CMMI7 1.100
+%%CreationDate: 1996 Jul 23 07:53:53
+% 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 (CMMI7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI7 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 97 /a put
+dup 118 /v put
+readonly def
+/FontBBox{0 -250 1171 750}readonly def
+/UniqueID 5087382 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
+C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
+B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
+DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
+4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
+FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
+76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
+123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
+012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
+A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
+44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
+4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
+01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
+D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
+914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
+261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
+24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
+A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
+9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
+889787CDC0C51802EA1E0C63E6DE20980D3DD206F053686B961982863FF25207
+D4CC93C03871BA584C41E7095C90C0000DAF1AAF8C0873E9DDC5D3062311AE37
+185F06152488311CF528FBC6A49E6F6E44630092924EE211A0A685E0CB7DA857
+866D90E2C651124C577F2BE5BD30632794A75AE08990CCE63C907F6600B3CAC1
+F681F29DD15A96C7C85A2A7C83606FBC55317F7B5D93BEC5D2693C439EB63122
+3D59641D68D9EA7D623EFC1260764A304ACED831C2E54F5DB2B2609FC82C6CBC
+11C11C6B8F083FA2C1BA9B5C237657D9309D2A2A5F0E9C1F030E2A61104C1256
+D965BA3F9EF3E64F240A32290861CBE89B82D021ADA6B1B839F3D741C873901C
+832CD56132B7D0AB651EABAC69815A8295AA2E800A263D4B6D09C5D59930B61E
+54D4C67B8F11A0E9268064A996829E3B1CB25EE1840F547FE66D529486AD41CD
+DE6925A93BEC218CB1AF8DDBFCA47F7EBA58233830D130B52819545066163D84
+5CBDD8B0EF927B385E269680475738B3ADB7F41A45446C8F014DEFD7D1D564EA
+A5A9631733D6FE91E85F5A0AB5F436AEE0AA7B4A5BF373F4C24EDB9804FF51A7
+6963C494219AC601C55B69828CCA8B577E77B3309C519097E1FE308AD823E373
+B8C65B70F218FB31CBF3900CA4D2B8F1151E9C1250E97FF1E5DF6FA8B2AE32A5
+97E7CD07C21F704CE36F1351C1C21985316327530A79522EEAB9871AFC74DF58
+76F1F4E19BCF7AAE
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 49 /one put
+dup 54 /six put
+dup 57 /nine put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E15E0A3
+32D9D2069E82BB9906811AD94C3D4009F0E9E9A15F9880381EBFD43C30CD5AC1
+5256430DC19838B32B67F2CDAEFD72A072D7BDF46756305033C5635D9632017D
+F7DB2847FA735B9408C43E9E6666688350417B40483C6872B5F405366C8DE033
+48DBA20058B6BBA1BA16C14522A55AD339D12FC52F8A679FF13C0287FC78617B
+6035D1ACDC54F2BB8F1849F5E2E8FAB9C51E914FB5F83F1A2217ECED7C9B3042
+AF2540B8B64E793192CD53D260B93096F27D8B069E4B44E5234B21CB44F26C4B
+FCCC50B4CD9F406ACD3A5B6FFE69539278924563E2006F5EA54A674339108092
+29E25A4140D7593334220B97629CDA893255724C245188D81EF8C6F4B83391BA
+77DCDA7CFAB550AD37425EFC1A1F9F47B0F38A1F65DB8393EB426F20BC3B521E
+AF9211FE6D59268FB7CDB24B03D15B5E66B7EF6197A46E63C5BAF0BF14C27192
+FC27AE2BE7744E56A9C610CC3175AF4CC290197F9600325FA321AB4F22E7E51F
+F85690A0B0350EC71FD0C29ED947C142F938615E853F0698E606113A9C3E1749
+797E9DA6632FC9AAD415CBE4C2FBA8578627B7C7D61C54511AFAAA165769BEDD
+D0C65AD0BEA29C474588679A87949325A7E9575ECE458EB8AB6EDAAC34B549C6
+2E8DC9C5E69400AF4D922273195954F1117D802FB63037F1DA54BA2DAD99CF3B
+DDA9DCC48896A13A3D1C532C2817021848B8EDD1549DDA868C9241C826A837CF
+831213BBFF636A326E1CD1A2898DC7023905E7EF3E9E3CCD5D32912B8E16DABD
+1D13FA9021549B6D5CBE687CD583AB97BC534B3A5DAD5562B365C7D3BE4D8140
+DC2178A3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 45 /hyphen put
+dup 52 /four put
+dup 71 /G put
+dup 73 /I put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A147678B652072CAFB2A7
+A02BC29585F88AE4DB41F2F259FCFF1983F17697620FF3186E9E102D35317B24
+46839F2837B6C7A515511E397B19AC2C76DCDE7063E1FCD278C1CBB2D87B70D2
+F2BA26A6A7A832699F447002F1270A02278D1DED35F0876382D8135358CDF95A
+DC51A88BEE96B9ED20F15C2DF307F46C07A91F8D428E9BB0B84A445FE6CDDEB0
+B1291BB7304F45A7129B347A86321CBED06D3594FE2130558210157C297591B0
+425FDBD997B04F069F6B47BAE53FE48BA7E67E4F383F9DC5B160492F083890A6
+E336E1D48A3AD0FD50FABBECF3A9597AD76B6A7DCFF8E0DE6771C9422033D52D
+CEE5518EE31C214C7DC30BD088DC524BAC2CAFDB01689C4D2E0F9A028A462508
+DDC131C15B2D4B0335C7B2BA228EC16B862F424152F41D7C474B8BF414BFAADE
+D4020B2DFF941C8310393FBAE9B505D0C92F02A88C79D71DD723F8215C09C384
+A2FB40D38B0D21B0161AAC5649870AD629FFCE217A5F6E65A1DA42275296E0DF
+147EBCD5269F6E7F5A5432E1D6779517B340B943F9F5E2BE30B088FD123ADBF5
+DE040C36EA842867E32321503FC904CE386E13BC777CEF522192FF0E10EE64AB
+D023D8CA14CCFECF092A6A1721B2FCB9A96154DD81F42FE8F284C98288A8387A
+32CE9E5386DA53A991FAE4F7270DF046F6435A0E9E458039CF90510CA647515F
+92BEDA8DD4120AD393B902960A8DFE8C64E5D02BBAE36C4116B3509D1CF287D9
+CC03AE9F2ED245987319175395E26DED9937A8C157A477DDE741454E0E839E82
+94B98A3AFB23D5C8110550D3026EF9EB370CDB306683AE63593FA21B2C0649B9
+F1290994473DDC2097572459B2784704D734CB71231587964E9F78A4FE1EA416
+3A25D5AA2F48B25DB9C6D3E09846BEE06683440AA281929B3B087465DB5AD981
+FD9EA18F6A4E880B1434ADC82B8A153162EB6F324004328EFAE174FA5F134529
+58488FBBF5BF4CD9667268166D59153EFE4CAF2416A6543C719A24816F379843
+BA6A22D3E57354E98C18764007C0E7C1B66A30ED48FCE124B848BC7A31CB626A
+B4B14CA7FFFEAAB979D56E06B5FECCCED3C823E0051798D3E6EBA7EAF470AD1E
+48EA93F1A940906CC7D00C235A7B1AF0BC4FA010452DDA85090031B0E3ED6894
+5F3FA9131470AB9FD280A67316C3B25CF563ED20BF9F3369E5E11E546B4ECA3C
+8545B9BEE793C1A52FE6A62E0B23F4776C44E9AA5DD73AD431182EDE2B1CC8BD
+035E3BA9F74A4DFE17B1F4F82E17A96570F8F3BF858ED8C39FFF274B4E1CA95D
+A6A7FC61A99DD228DBBFE5E55AC0047E8CBEAE1834D9594DCB22ABEC9AFAED2F
+8479F7A90C0C707E88070215B60A200E6820BE697A9E855C045552E60E51324B
+B7FBCCD459D4442C0114599B53233315260A86BE636FC059816B1417A1E316EC
+43B256D3B74DE52B4197BD4D27D428E1A20C84A2BDF7FFB8861C76AC2EF46B85
+29771EAA3820AABE8A94455FC574861C0505E8A21FDB0098C7CCC9A76249C706
+C8A586975BF4C383CA9EFBF35C20EB41CE5108F4D5A92038DE2B88DA5A9D2504
+E4A92F9531A9E80120D7379C77C9FA6E40CD474E35AF5CAFF22D9517D10EC59C
+4A16473D9D90E7650845D2F7242678869E5DE1A1C002156D2DA02EE8CE8B13EF
+A7E506DDCF297C03A2DBC838CDE04C051E32A39345FFEC6D0E7C1D451F9AAA24
+7DB90A3E492AB669E0A5BA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 56 /eight put
+dup 80 /P put
+dup 97 /a put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F289B80BA6EEA70668BDB79CFC0890
+B47D0094BBC8B4195DE66AE45801FF0A29945D6D5B651C251B9EB5A26DEF9EFA
+45B44CC4377562BCFF8F324E2AB57D00D2AB94AC15D29E63BC4D26CE4803A4E0
+0B71FB9FF3F957634501ED2FAB2017C34B786182DEA18A90251F8BE10CC00A48
+0EB1FB57CB36234F24C2A589FAC56B303CD63E243AE47A34544330A9ACCEF12E
+CC6EA8BD938949438A3D3510D28B3A9C69854144690024FD13CDE6D313A06587
+E6329F6CC3FF5883859343307FDF526399CF45B3CD727425B7A59F6BBB9125A3
+CD72EA7A7B7572BCC60FAF5D6DC87C2D2A77E09104B5A1B93AD710BCBFEE6A59
+B9B386BE9C3B49C3C94D1FDA53878B06D9774D944B8F077BFD9BDC2EB03C158F
+08302570C3EC5EDAB74AC0DC147F025EF2D81C228425F8551D2315D6FE8A58CD
+4CAA1D976708CE68C3E4BB5BB57AFB7CB4A48605ED1E2CB6E07CF56686E31B66
+D8C1D7E8DAA6804AAE5DE138E8A3131FAD3493874D67FB56FED2C58DD18152F7
+5E9E3A619B04CCCBA54BD90B9DEDE6EBE1C95D775842961370B4B3F00F2C67CA
+ADDEB269BAB33C7B2F538CB123B2178C163E11B6967796F9B34391870B62ACFE
+4FAA6E6D33044800DB3F20739AE80187B54C843F8E434894BB92D3FC091B2B1C
+68C410114D47C08DA4A59D1DE0322EE04F4ABC9B3E8694ECD0E3926F2374BF28
+D1F275701A6F081079BAA1B361CE9FF561729D23512492142D1E5058061DE1DE
+87490CAA05E47181D7A44084FB086122A3A935A10620534D0D3B816DAF5CCBB3
+1BE11F1C528AE32EAF73872FA1160FBFE1C5AE9498047E49ECA577558B8C9F4C
+DFBCAA60783AD6510BE1DE80D692D975F0297150E3C222E374BEA299CD1BE014
+B56D2FE837971F68241CDD999C865F296F2561B7E261272F995602FD0D7BA232
+15EC0AD4EE14CE2BD2B42443C26E4DDDF9FD558598DD71D43D158ECC801A7854
+C8D9194F458D398D1A63B11B83E97DFCD05E8D60B617F0B97010C8DF05798FD0
+882C37C441DA46A342F027E252005F6A9BDAE70FE0CD6FEC6BD5BF2EEAB851E8
+1AA7BDBB80090760D7C7F105B1B917ACD004AB28B303C7258222CE2AFA82DA40
+0E67C43A0C29079DD2CBAF4F45EA6E78D4EB2EDC926AB7519E5E603F375C94B5
+DFF2AF19C7A44052F78A80536FABEA760B37470C1ABA47EA240B1B24970D0695
+8AF7B4C8781B386217DB11CFEF9DCF047D80EDD5BE8D33FF617DE44C5F840A7D
+AE7F9E2AB9613F4BE66904CC266B7E86AC1C9B6D05DE4BEC37BDBC5AD929C477
+6E31DB9ECE50B8650269BBFDB4EB2AA61318CC00848B865C7913BD78FAA03BE7
+872D2CF024A0F6DB87F63308DE6221C00902D48AF050A5AC1865582CFCA0AE0E
+1C80D6E3A7C8FC328D58A44AC45A5B04A455121C65AC4AE9B754B92F70DC67B7
+ED6A46DBECE0EAD7582A1F8C0ECF908A525A874D2DF37F6B984EA83328145A87
+FB916E8592E2763AEEC6493A83551E3AADF3E5023F2DC1D32745966A2BB385F1
+23DB5766C7F138E97FD6D087B435BB17C6BC07C345BD13CCD64A48498FF45F77
+91D6CF3C8E530F8BC4804B1A9A99B37892402E28E0C4E699A30DF0547FF76810
+13ED6B148367458DC39E707ACD2B308A60F4FCCE3FC84E11FBE8D1E24E622329
+35EA9458B3991277C48527B50501F2A9D09EA8F4E0223F0479617F31693FDA2B
+9911D4370A29C304708A141A79B79B42C6488057DA517317474890E34702C805
+E3126217AEDC0F651BE3008C8B8EFBC682574D3DEA9FDA600FF5CC8AC2B94B59
+1FD668D4B9EEBEDC4530A9045B0206441AF39C7DAAAE74F44D757E0E6E4E04C8
+5FB570318D467B9F5DD5FBEF5B56E81725392E627B1083C13E8FB29BEAAB5923
+B51C986A150706676E375C6727CF31E36953A72B6D445F97F5E735A3AF41027B
+4BEF1E61BB0E793670C2EA9A85D21374C2533243BA90C7BEA795D5E1D29347FE
+CD8D71FF7389FC534C4CBC156C32A71E3195883BB23246535CD0E64CBAE7B795
+B0B09BBAA260A8C557FBF02FEB4CAAC83CE56557F0A1B90F0C6042D53DEB89E2
+AF39E0A12DE58E503F930162CA78DF94FEE8B044804079E9B631A772C7ACCFCF
+6D49D04ED6895184238BADE3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 23 /cwm put
+dup 162 /cacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1EF666D1C109A37E7EBE016D2C880B9802C73AAB6BD1898A0E570E
+8CF04E85BAF50087A15057D05A4B113EE4204626FE83DB20E750FF241B70851B
+BF70F865D566B98BD9C25AA26A40BA585CBD8D272037E7EB77D41CBDC68C6F9E
+53C82E2B7D736DB0F325B1FE87C62BC6F53E182B587029E46CA665A4396A2515
+93779FA449A2AC4290BDDF6E2562C055AEF3AAD3C7DA52BEAB3C863771B8F0D3
+8951F94B164A204B6650D487F7A50CE38806200D73B5F3018DFA4B9DDCDF14BA
+E8E1A4A81E6AD64BD5DDCC14A1BFBF338CCF0016DC6B8AB0C7731ECA201E20B1
+E191FEAFD5E39474A74BD04784B68CD6F1F0D24E9FF3D3E5778D8BA24F3B1F4A
+46A545F6EF8097CB89061C550250577AC6CED126726FFBC2F4CA589A888AC087
+4B96EBE2AE02A51E870965572229CBA59FE2AFD3E01C2A8F093F10468540FEF7
+55D29F3321077AFBE5084EB1BC9D40826095912090F71AF453F1E2F31C9A6614
+5809EBDC8373B81B66C35178719497BD2905E188A95FB2E0929853170FE9731D
+8E6C09D1971DA611DA775F5279BBE1ABB90B5659BFCE9D437046C000899DEE38
+0D7FD54B52194B7EC347A4E9FEA5EBF49483CC26F229142CFF5425935D845D98
+8D52DE7C64040E9312E262
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (beethoven1.dvi)
+@start /Fa 137[33 20[36 97[{}2 58.1154 /CMMI7 rf /Fb
+198[56 2[56 4[56 49[{}3 99.6264 /CMBX12 rf /Fc 182[106
+1[106 18[40 6[0 37[0 6[0{}6 132.835 /TeXMUSIX16-Regular
+rf /Fd 144[42 46 4[23 7[42 16[57 23[42 56[{}6 83.022
+/CMR10 rf /Fe 93[0 138[50 23[{}2 166.044 /TeXMUSIXSPX-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -40 245 a Fe(\242)p -40 396 3678
+4 v -40 430 V -40 463 V -40 496 V -40 529 V -40 -35 V
+-40 -2 V -40 31 V -40 64 V -40 98 V -40 529 4 567 v -362
+274 a Fd(Piano)-40 428 y Fc(I)-40 63 y(G)121 460 y Fb(9)93
+526 y(16)121 28 y(9)93 95 y(16)p 375 363 60 4 v 375 330
+V 385 328 a Fc(\007)385 312 y(\000)p 385 569 4 241 v
+386 445 a(\007\000)1486 302 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (27.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1486 302 a 1453 363 60
+4 v 1453 330 V 1463 328 a Fc(\007)p 1463 569 4 241 v
+1464 445 a(\007)2201 362 y
+ slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2201 362 a 2201 362 a
+ end
+ 2201
+362 a 2171 363 60 4 v 2181 361 a Fc(\007)p 2141 552 44
+16 v 385 577 1800 16 v 2181 569 4 208 v 2182 478 a(\007)p
+2530 363 60 4 v 2540 361 a(\007)2540 345 y(\000)p 2540
+586 4 225 v 2541 586 a(-)2541 478 y(\007\000)p 385 154
+4 142 v 386 13 a(\007)p 505 154 4 208 v 506 -54 a(\007)p
+615 -69 60 4 v 615 -102 V 625 154 4 258 v 626 -103 a(\007)p
+744 154 4 125 v 745 29 a(\007)p 864 154 4 208 v 865 -54
+a(\007)p 974 -69 60 4 v 984 154 4 241 v 985 -87 a(\007)p
+1104 154 4 142 v 1105 13 a(\007)p 1223 154 4 208 v 1224
+-54 a(\007)p 385 112 962 16 v 385 137 V 385 162 V 1333
+-69 60 4 v 1333 -102 V 1343 154 4 258 v 1344 -103 a(\007)1423
+63 y(4)p 1463 187 4 125 v 1 w(\007)p 1583 187 4 158 v
+1584 29 a(\007)1662 -54 y(4)p 1702 187 4 241 v 1 w(\007)p
+1822 187 4 125 v 1823 63 a(\007)p 1942 187 4 158 v 1943
+29 a(\007)p 2061 187 4 208 v 2062 -20 a(\007)p 2181 187
+4 142 v 2182 46 a(\007)p 2301 187 4 208 v 2302 -20 a(\007)p
+1463 145 962 16 v 1463 170 V 1463 195 V 2411 -69 60 4
+v 2421 187 4 258 v 2422 -70 a(\007)p 2540 187 4 142 v
+2541 46 a(\007)p 2660 187 4 208 v 2661 -20 a(\007)p 2770
+-69 60 4 v 2780 187 4 258 v 2781 -70 a(\007)p 2900 187
+4 125 v 2901 63 a(\007)p 3019 187 4 208 v 3020 -20 a(\007)p
+3139 187 4 241 v 3140 -54 a(\007)p 3259 187 4 142 v 3260
+46 a(\007)p 3378 187 4 208 v 3379 -20 a(\007)p 2540 145
+962 16 v 2540 170 V 2540 195 V 3488 -69 60 4 v 3498 187
+4 258 v 3499 -70 a(\007)p 3618 529 4 567 v 3635 529 V
+3638 694 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 694 a 1463 -120 a Fd(8)1505 -150 y Fa(v)r(a)1580
+-120 y Fe(\027\027)q(\027\027\027\027\027\027)q(\027\027\027\027\027)q
+(\027\027\027\027\027)q(\027\027\027\027\027\027)q
+(\027\027\027\027\027)q(\027\027\027\027\027)q(\027\027\027\027\027)q
+(\027\027)p eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bloch.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bloch.eps
index 1cd1807e12c..305cf313fb7 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bloch.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bloch.eps
@@ -1,856 +1,856 @@
-%% LaTeX2e file `eps/bloch.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: bloch.dvi
-%%CreationDate: Wed Jan 21 13:52:01 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 20 700 496 801
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE bloch.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1352
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 51 /three put
-dup 52 /four put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
-E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
-32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
-27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
-2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
-CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
-2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A48CFB68D9BDBBE7
-543C91905FC3D38CEE89E1C1ABA2DB1A9B51B409B99600A15F13481BD7C92CC1
-8FD67B95E43F20B716A97BCA8EE79248973E175941441393F86D428F2F26DF91
-41933793DBF8873D1091B7582708A77B194905AB97A3F4578FB10C2564E4E138
-48AC7463E64924E1559D27811FB307913209E647DE73D18DF120533FB7BA460F
-0AA80E9BF624D194859EB4A2511779A22ABC439C0456BE66483B88075E427FB9
-E8D21431035638AD76CFE9E46DBAF380638F8B2BAC8C5D0687769F13C4EA868B
-23C2FBD892636686461F269AB9B7270F8AD666F200C907D2F8CFCD2A103B3F46
-BDD5073EE7DA2E3207794F6A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 5 /hungarumlaut put
-dup 7 /caron put
-dup 26 /dotlessj put
-dup 45 /hyphen put
-dup 50 /two put
-dup 51 /three put
-dup 54 /six put
-dup 71 /G put
-dup 94 /asciicircum put
-dup 138 /Lslash put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E27CA9ADAC96E22F1B1B05B1551FA95CC8
-18F3FA54EDDE17A157456349A48ECE7DCC4A4F2B99B3D5BBCECAA7DCEF90EA10
-8FD087CFA2B674EF4110E2CD07CEBF9C10385F50DCB41C31DF25804854742EEE
-429C762D4EBF42E4BCEC08145966CA058EF1547E0A63CCCF22CF3B8FCC21E294
-27B795F704B433E7F16CA402557CADCA9FA4CFF4760609AEAFC2FA33F1DCA467
-1D5D31756BCE2BCBFAF2C67A9966AC1F127FC85209B98F6B6B6547299492F48D
-36A2C145FAACCFC80D56FDCB2C8B29A3231D61FCF11832AC295BB1D4EC543CE8
-5648A3DCA4C2EE635667AE1CB1D6B34E1B3E2D5223C2981891C1E2A1F149E849
-E4CEFD6AF00CB38E64331C2231FAAF9199A3E780252185938BA3F031B638BEC8
-6C4DF51F43B26B595DA7B1942ADE7E2C13C98ECDC9BC76FDFDA335010827F502
-FE40BF444BF9E8F505D5DBD7BB629727F91D83983E2218110704CF12A13780F9
-EF38DE6FF32F2616307B785A5F62003F1DBC63B812560164DD2DDCBE54FF6471
-34DE89E9DC087C8B248CC15BF3CB5EDADE84B1A940DB1F6103A57C298E5767D6
-881C64BEBA3CD92510D333B1464F6EAAED82C6528E5FB3757BDEE9996E676FDB
-097DFBBC4E4E9613091C2721A3E38C679550A7ED643E7CC57515C33D0D5F24C4
-4EBABEA6CCB85B0071D8A621822230F7986AC155E3A5A745D0E33FD560F1E3D3
-28078F37F6022D698727E76872017A60247F4EAB22E5A847F937D102D9A19877
-A80ECBC4EA8D5ABE7B4441A866A34B6B2A63A2300264FC97C8AC04B353EA8FD6
-D201F4ADA5447364086F148D56FDCACE26E90759BCC7978BC11120ECF68C7B06
-E1BF042A2630F6D74E4042DF71789DDC55AF2CE64BF4462F75346DC383DCA670
-4FE2A78938AD64368BAF43EA3C4C91DF2E74ADAC0893C86A704001A06C0067A6
-AC24E2F598AD0BCD1EFE6F341D3CD2731A9D32F5AD84D4B2DD4513C1F1A45F3C
-6E22E7ED89C0F71DF41D3D8BB145F94F4F0CF62D4E0CD4AC62C394C47C32EDA1
-F26857E348B08A73B195DEDEE752A74124B0C9C3D1AD21C1E8AD0A1CA7E52816
-3448504710D3C4B71B7D030360ABF98A92C3AB7BC4FA3D455D4534E2AC2BB45F
-00D75CD251701B242F7E2745BF2441E5E65E02024738F76038296F4AA8E37F9D
-7C57A1E176E1B4761CAC27B855F2BC838E12D39B2FE5B0CD222593C5D3B73094
-B152C9335B60AF87CA394B4916DA025E88F08B6AD36F4D94273D0A60668ED24E
-6B41DF3E14A4D4AC7B8A9F166EF21FA9B3981359BA36F83617ECF635707D0F08
-F9F4ADE7F71796E44FD68D38006FFC2E700C5A8CE5A2568BC0529485A4175E53
-462EB97C6A4957E1E6519CE45E195FA33D6C94057901DC14F4E276188C79D944
-D7FCB69DCBAFD6DF3B86A85806E13957C2C6B3A5E977E0F098579D690ED754F0
-785559E5B40F60426C61B407C35AB087128D6034114D47D7C41FCD59F73E513A
-CCFD500B39E09BCAEE77EBF6B5A730E66F7DBDAA837141E8CAF155692394200A
-4F83489291B00DEB23B84598BC4BB0A5BBEC05108ED76797280CD9C1CA8A6076
-D48AE36174ABF9D522D032B3528A9C0ACA376CD451AEB8DF06A0909F846CED2B
-D80121F9C96E28D5C92B6C913053B67D2CA99477C71F740D3AF7FBBB3AD26CCF
-B95E23303FCAC248F631E539B44EA1C3A8DB3B75A6A0B435073F589063C36112
-CEDB202CFA9D2D7B897A7A088395E09F3131AF3B6FDF09D85F8E59EBC99B443B
-103F3C0C681A46CC9D22B525A91DC158B669A79BBD2DAFDD4D8B87CFB4AA3E92
-A323AC3192194C42171046265C2BF442EE9D7E50CA7BDD78CA89595059DBDB3A
-5562FB7CFE653EA82CCBE476DFF84393FF121A0C41E23AF1331790233A7CD6FB
-BF8D18C6DD9499734F164D771FE45FDE1E90DF000F113E0F593B966A1FCB87A2
-944E966FFD641DC4C987BDCEC9737A39F495AC07199FA852E773C85074FA0C46
-3FFF18DBBA8F06A931D68A2C05D73B4162E8F822BF74B1C2240BF5E960962DF2
-7C6A3661584CED0AC7AFC3232FAC90F9C00F7E720947950F2A7E77405D0F4DE4
-C14C336A1CF4AC53E9CEB9B518E581391B7DD8EDD44E82CC74DDA29602EEEBAD
-6A1D7699D66239284104B7A56E12A9C1B94B2EAC6162C89610943E0B49AEC18A
-4D917A0AA7837644435519F21A862138EDEC6AE314C8EA0D60F8676BDCAC5A10
-4F03B1EF1CCCB456C4160665C16BE74997348602B302F6F0A44123E762AEA071
-E73644EF2F1B7649D09A107578BA9732F9D896298E5D6448
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 156 /IJ put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
-19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
-F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
-78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
-3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
-ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
-E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
-51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
-906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
-30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
-C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
-CF6FF708F7024031
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (bloch.dvi)
-@start /Fa 203[56 56 51[{}2 99.6264 /CMBX12 rf /Fb 59[266
-57[266 43[30 22[106 16[40 2[68 40 4[0 18[0 18[0 1[0 4[0{}12
-132.835 /TeXMUSIX16-Regular rf /Fc 99[0 156[{}1 166.044
-/TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 195 a Fc(\234)p -364 297 3886
-4 v -364 330 V -364 363 V -364 396 V -364 430 V -364
--35 V -364 -2 V -364 31 V -364 64 V -364 98 V -364 430
-4 467 v 200 x Fb(G)-364 63 y(G)-254 362 y(2)-221 312
-y(2)-188 378 y(2)-155 328 y(2)-121 395 y(2)-254 29 y(2)-221
--20 y(2)-188 46 y(2)-155 -4 y(2)-121 63 y(2)-64 360 y
-Fa(3)-64 427 y(4)-64 28 y(3)-64 95 y(4)160 455 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 160
-455 a 175 428 4 125 v 137 428 a Fb(\007)160 -180 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (33.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
-1 N /S1dash 0 N /S1adj 0 N end
- 160
--180 a 127 -69 60 4 v 127 -102 V 127 -135 V 137 -153
-a Fb(\007)p 137 71 4 225 v 138 -37 a(\007)p 356 395 4
-110 v 318 395 a(\007)p 399 -69 60 4 v 399 -102 V 399
--135 V 409 -137 a(\007)137 71 y(\304)-256 b(\304)p 409
-85 4 222 v 410 -20 a(\007)433 362 y(3)175 303 y(\212)275
-293 y(\212)p 539 362 4 95 v 501 362 a(\007)642 345 y(2)p
-720 345 4 92 v(\007)p 902 362 4 99 v 864 362 a(\007)1065
-395 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1065 395 a 1065 395 a
- end
- 1065 395 a 720 254 a Fb(\304)820
-259 y(\304)p 1083 395 4 123 v 1045 395 a(\007)1249 455
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1249 455 a 1264 428 4 92 v 1226 428 a Fb(\007)1368
-478 y(2)p 1398 463 60 4 v 1446 478 4 142 v(\007)p 1264
-345 365 16 v 1627 428 4 92 v 1589 428 a(\007)640 -103
-y(\005^)p 672 -69 60 4 v 672 -102 V 682 -104 a(\007)640
-13 y(\005^)p 682 129 4 233 v 13 w(\007)1269 51 y
- slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
-(5.4pt) GD N /T2dir -1 N /T2dash 0 N /T2adj 0 N end
- 1269
-51 a 1269 -108 a
- slur@Dict begin /S1alt (60.0pt) GDAR N CP /T3y1 ED /T3x1 ED /T3hgt
-(24.6pt) GD N /T3dir 1 N /T3dash 0 N /T3adj 0 N end
- 1269 -108 a 1226 195 a
- slur@Dict begin CP /C2y1 ED /C2x1 ED /C2alt (48.0pt) GD N /C2dir 0
-N end
- 1226 195 a 1216
--69 60 4 v -282 x Fb(\007)p 1226 146 4 233 v 1227 29
-a(\007)p 1770 430 4 467 v 1923 395 4 108 v 1885 395 a(\007)2026
-378 y(6)p 2104 378 4 92 v(\007)p 1923 295 365 16 v 2286
-395 4 108 v 2248 395 a(\007)p 2467 428 4 92 v 2429 428
-a(\007)p 2600 463 60 4 v 2648 478 4 142 v 2610 478 a(\007)p
-2467 345 365 16 v 2830 428 4 92 v 2792 428 a(\007)p 3011
-395 4 108 v 2973 395 a(\007)1878 96 y
- slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
-M 0.14 30 T2dash T2adj 40 DS end
- 1878 96 a 1890
-96 a
- slur@Dict begin (2.0pt) GD T3hgt DP T3x1 T3y1 CP P T3y1 0.7 T3dir
-M 0.14 30 T3dash T3adj 40 DS end
- 1890 96 a 1905 -87 a
- slur@Dict begin (2.0pt) GD S1hgt (22.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1905 -87 a 1905 -87 a
- end
- 1905
--87 a 1885 195 a
- slur@Dict begin C2x1 C2y1 CP 4 C2dir R DC end
- 1885 195 a 1875 -69 60 4 v -282 x Fb(\007)p
-1885 146 4 233 v 1886 29 a(\007)2452 -163 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (31.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
-1 N /S1dash 0 N /S1adj 0 N end
- 2452 -163
-a 2429 162 a
- slur@Dict begin CP /C2y1 ED /C2x1 ED /C2alt (52.0pt) GD N /C2dir 0
-N end
- 2429 162 a -282 x Fb(\032)p 2419 -69 60
-4 v 2419 -102 V(\007\000)p 2429 112 4 233 v 2430 -4 a(\007)2430
--20 y(\000)p 3193 378 4 92 v 3155 378 a(\007)3266 -137
-y
- slur@Dict begin (2.0pt) GD S1hgt (28.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3266 -137 a 3266 -137 a
- end
- 3266 -137 a 3246 162 a
- slur@Dict begin C2x1 C2y1 CP 4 C2dir R DC end
- 3246
-162 a 3236 -69 60 4 v 3236 -102 V 3236 -135 V -299 x
-Fb(\007)p 3246 88 4 225 v 3247 88 a(-)3247 -20 y(\007)3357
-395 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3357 395 a 3357 395 a
- end
- 3357 395 a 3011 295 366 16
-v 3375 395 4 108 v -20 w Fb(\007)p 3518 430 4 467 v 3522
-594 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 594 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/bloch.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: bloch.dvi
+%%CreationDate: Wed Jan 21 13:52:01 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 20 700 496 801
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE bloch.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1352
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 51 /three put
+dup 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
+E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
+32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
+27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
+2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
+CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
+2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A48CFB68D9BDBBE7
+543C91905FC3D38CEE89E1C1ABA2DB1A9B51B409B99600A15F13481BD7C92CC1
+8FD67B95E43F20B716A97BCA8EE79248973E175941441393F86D428F2F26DF91
+41933793DBF8873D1091B7582708A77B194905AB97A3F4578FB10C2564E4E138
+48AC7463E64924E1559D27811FB307913209E647DE73D18DF120533FB7BA460F
+0AA80E9BF624D194859EB4A2511779A22ABC439C0456BE66483B88075E427FB9
+E8D21431035638AD76CFE9E46DBAF380638F8B2BAC8C5D0687769F13C4EA868B
+23C2FBD892636686461F269AB9B7270F8AD666F200C907D2F8CFCD2A103B3F46
+BDD5073EE7DA2E3207794F6A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 5 /hungarumlaut put
+dup 7 /caron put
+dup 26 /dotlessj put
+dup 45 /hyphen put
+dup 50 /two put
+dup 51 /three put
+dup 54 /six put
+dup 71 /G put
+dup 94 /asciicircum put
+dup 138 /Lslash put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E27CA9ADAC96E22F1B1B05B1551FA95CC8
+18F3FA54EDDE17A157456349A48ECE7DCC4A4F2B99B3D5BBCECAA7DCEF90EA10
+8FD087CFA2B674EF4110E2CD07CEBF9C10385F50DCB41C31DF25804854742EEE
+429C762D4EBF42E4BCEC08145966CA058EF1547E0A63CCCF22CF3B8FCC21E294
+27B795F704B433E7F16CA402557CADCA9FA4CFF4760609AEAFC2FA33F1DCA467
+1D5D31756BCE2BCBFAF2C67A9966AC1F127FC85209B98F6B6B6547299492F48D
+36A2C145FAACCFC80D56FDCB2C8B29A3231D61FCF11832AC295BB1D4EC543CE8
+5648A3DCA4C2EE635667AE1CB1D6B34E1B3E2D5223C2981891C1E2A1F149E849
+E4CEFD6AF00CB38E64331C2231FAAF9199A3E780252185938BA3F031B638BEC8
+6C4DF51F43B26B595DA7B1942ADE7E2C13C98ECDC9BC76FDFDA335010827F502
+FE40BF444BF9E8F505D5DBD7BB629727F91D83983E2218110704CF12A13780F9
+EF38DE6FF32F2616307B785A5F62003F1DBC63B812560164DD2DDCBE54FF6471
+34DE89E9DC087C8B248CC15BF3CB5EDADE84B1A940DB1F6103A57C298E5767D6
+881C64BEBA3CD92510D333B1464F6EAAED82C6528E5FB3757BDEE9996E676FDB
+097DFBBC4E4E9613091C2721A3E38C679550A7ED643E7CC57515C33D0D5F24C4
+4EBABEA6CCB85B0071D8A621822230F7986AC155E3A5A745D0E33FD560F1E3D3
+28078F37F6022D698727E76872017A60247F4EAB22E5A847F937D102D9A19877
+A80ECBC4EA8D5ABE7B4441A866A34B6B2A63A2300264FC97C8AC04B353EA8FD6
+D201F4ADA5447364086F148D56FDCACE26E90759BCC7978BC11120ECF68C7B06
+E1BF042A2630F6D74E4042DF71789DDC55AF2CE64BF4462F75346DC383DCA670
+4FE2A78938AD64368BAF43EA3C4C91DF2E74ADAC0893C86A704001A06C0067A6
+AC24E2F598AD0BCD1EFE6F341D3CD2731A9D32F5AD84D4B2DD4513C1F1A45F3C
+6E22E7ED89C0F71DF41D3D8BB145F94F4F0CF62D4E0CD4AC62C394C47C32EDA1
+F26857E348B08A73B195DEDEE752A74124B0C9C3D1AD21C1E8AD0A1CA7E52816
+3448504710D3C4B71B7D030360ABF98A92C3AB7BC4FA3D455D4534E2AC2BB45F
+00D75CD251701B242F7E2745BF2441E5E65E02024738F76038296F4AA8E37F9D
+7C57A1E176E1B4761CAC27B855F2BC838E12D39B2FE5B0CD222593C5D3B73094
+B152C9335B60AF87CA394B4916DA025E88F08B6AD36F4D94273D0A60668ED24E
+6B41DF3E14A4D4AC7B8A9F166EF21FA9B3981359BA36F83617ECF635707D0F08
+F9F4ADE7F71796E44FD68D38006FFC2E700C5A8CE5A2568BC0529485A4175E53
+462EB97C6A4957E1E6519CE45E195FA33D6C94057901DC14F4E276188C79D944
+D7FCB69DCBAFD6DF3B86A85806E13957C2C6B3A5E977E0F098579D690ED754F0
+785559E5B40F60426C61B407C35AB087128D6034114D47D7C41FCD59F73E513A
+CCFD500B39E09BCAEE77EBF6B5A730E66F7DBDAA837141E8CAF155692394200A
+4F83489291B00DEB23B84598BC4BB0A5BBEC05108ED76797280CD9C1CA8A6076
+D48AE36174ABF9D522D032B3528A9C0ACA376CD451AEB8DF06A0909F846CED2B
+D80121F9C96E28D5C92B6C913053B67D2CA99477C71F740D3AF7FBBB3AD26CCF
+B95E23303FCAC248F631E539B44EA1C3A8DB3B75A6A0B435073F589063C36112
+CEDB202CFA9D2D7B897A7A088395E09F3131AF3B6FDF09D85F8E59EBC99B443B
+103F3C0C681A46CC9D22B525A91DC158B669A79BBD2DAFDD4D8B87CFB4AA3E92
+A323AC3192194C42171046265C2BF442EE9D7E50CA7BDD78CA89595059DBDB3A
+5562FB7CFE653EA82CCBE476DFF84393FF121A0C41E23AF1331790233A7CD6FB
+BF8D18C6DD9499734F164D771FE45FDE1E90DF000F113E0F593B966A1FCB87A2
+944E966FFD641DC4C987BDCEC9737A39F495AC07199FA852E773C85074FA0C46
+3FFF18DBBA8F06A931D68A2C05D73B4162E8F822BF74B1C2240BF5E960962DF2
+7C6A3661584CED0AC7AFC3232FAC90F9C00F7E720947950F2A7E77405D0F4DE4
+C14C336A1CF4AC53E9CEB9B518E581391B7DD8EDD44E82CC74DDA29602EEEBAD
+6A1D7699D66239284104B7A56E12A9C1B94B2EAC6162C89610943E0B49AEC18A
+4D917A0AA7837644435519F21A862138EDEC6AE314C8EA0D60F8676BDCAC5A10
+4F03B1EF1CCCB456C4160665C16BE74997348602B302F6F0A44123E762AEA071
+E73644EF2F1B7649D09A107578BA9732F9D896298E5D6448
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 156 /IJ put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
+19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
+F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
+78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
+3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
+ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
+E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
+51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
+906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
+30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
+C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
+CF6FF708F7024031
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (bloch.dvi)
+@start /Fa 203[56 56 51[{}2 99.6264 /CMBX12 rf /Fb 59[266
+57[266 43[30 22[106 16[40 2[68 40 4[0 18[0 18[0 1[0 4[0{}12
+132.835 /TeXMUSIX16-Regular rf /Fc 99[0 156[{}1 166.044
+/TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 195 a Fc(\234)p -364 297 3886
+4 v -364 330 V -364 363 V -364 396 V -364 430 V -364
+-35 V -364 -2 V -364 31 V -364 64 V -364 98 V -364 430
+4 467 v 200 x Fb(G)-364 63 y(G)-254 362 y(2)-221 312
+y(2)-188 378 y(2)-155 328 y(2)-121 395 y(2)-254 29 y(2)-221
+-20 y(2)-188 46 y(2)-155 -4 y(2)-121 63 y(2)-64 360 y
+Fa(3)-64 427 y(4)-64 28 y(3)-64 95 y(4)160 455 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 160
+455 a 175 428 4 125 v 137 428 a Fb(\007)160 -180 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (33.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
+1 N /S1dash 0 N /S1adj 0 N end
+ 160
+-180 a 127 -69 60 4 v 127 -102 V 127 -135 V 137 -153
+a Fb(\007)p 137 71 4 225 v 138 -37 a(\007)p 356 395 4
+110 v 318 395 a(\007)p 399 -69 60 4 v 399 -102 V 399
+-135 V 409 -137 a(\007)137 71 y(\304)-256 b(\304)p 409
+85 4 222 v 410 -20 a(\007)433 362 y(3)175 303 y(\212)275
+293 y(\212)p 539 362 4 95 v 501 362 a(\007)642 345 y(2)p
+720 345 4 92 v(\007)p 902 362 4 99 v 864 362 a(\007)1065
+395 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1065 395 a 1065 395 a
+ end
+ 1065 395 a 720 254 a Fb(\304)820
+259 y(\304)p 1083 395 4 123 v 1045 395 a(\007)1249 455
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1249 455 a 1264 428 4 92 v 1226 428 a Fb(\007)1368
+478 y(2)p 1398 463 60 4 v 1446 478 4 142 v(\007)p 1264
+345 365 16 v 1627 428 4 92 v 1589 428 a(\007)640 -103
+y(\005^)p 672 -69 60 4 v 672 -102 V 682 -104 a(\007)640
+13 y(\005^)p 682 129 4 233 v 13 w(\007)1269 51 y
+ slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
+(5.4pt) GD N /T2dir -1 N /T2dash 0 N /T2adj 0 N end
+ 1269
+51 a 1269 -108 a
+ slur@Dict begin /S1alt (60.0pt) GDAR N CP /T3y1 ED /T3x1 ED /T3hgt
+(24.6pt) GD N /T3dir 1 N /T3dash 0 N /T3adj 0 N end
+ 1269 -108 a 1226 195 a
+ slur@Dict begin CP /C2y1 ED /C2x1 ED /C2alt (48.0pt) GD N /C2dir 0
+N end
+ 1226 195 a 1216
+-69 60 4 v -282 x Fb(\007)p 1226 146 4 233 v 1227 29
+a(\007)p 1770 430 4 467 v 1923 395 4 108 v 1885 395 a(\007)2026
+378 y(6)p 2104 378 4 92 v(\007)p 1923 295 365 16 v 2286
+395 4 108 v 2248 395 a(\007)p 2467 428 4 92 v 2429 428
+a(\007)p 2600 463 60 4 v 2648 478 4 142 v 2610 478 a(\007)p
+2467 345 365 16 v 2830 428 4 92 v 2792 428 a(\007)p 3011
+395 4 108 v 2973 395 a(\007)1878 96 y
+ slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
+M 0.14 30 T2dash T2adj 40 DS end
+ 1878 96 a 1890
+96 a
+ slur@Dict begin (2.0pt) GD T3hgt DP T3x1 T3y1 CP P T3y1 0.7 T3dir
+M 0.14 30 T3dash T3adj 40 DS end
+ 1890 96 a 1905 -87 a
+ slur@Dict begin (2.0pt) GD S1hgt (22.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1905 -87 a 1905 -87 a
+ end
+ 1905
+-87 a 1885 195 a
+ slur@Dict begin C2x1 C2y1 CP 4 C2dir R DC end
+ 1885 195 a 1875 -69 60 4 v -282 x Fb(\007)p
+1885 146 4 233 v 1886 29 a(\007)2452 -163 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (31.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
+1 N /S1dash 0 N /S1adj 0 N end
+ 2452 -163
+a 2429 162 a
+ slur@Dict begin CP /C2y1 ED /C2x1 ED /C2alt (52.0pt) GD N /C2dir 0
+N end
+ 2429 162 a -282 x Fb(\032)p 2419 -69 60
+4 v 2419 -102 V(\007\000)p 2429 112 4 233 v 2430 -4 a(\007)2430
+-20 y(\000)p 3193 378 4 92 v 3155 378 a(\007)3266 -137
+y
+ slur@Dict begin (2.0pt) GD S1hgt (28.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3266 -137 a 3266 -137 a
+ end
+ 3266 -137 a 3246 162 a
+ slur@Dict begin C2x1 C2y1 CP 4 C2dir R DC end
+ 3246
+162 a 3236 -69 60 4 v 3236 -102 V 3236 -135 V -299 x
+Fb(\007)p 3246 88 4 225 v 3247 88 a(-)3247 -20 y(\007)3357
+395 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3357 395 a 3357 395 a
+ end
+ 3357 395 a 3011 295 366 16
+v 3375 395 4 108 v -20 w Fb(\007)p 3518 430 4 467 v 3522
+594 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 594 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bruckner.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bruckner.eps
index fa7fa0c591a..6b15f1f9bd3 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bruckner.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/bruckner.eps
@@ -1,563 +1,563 @@
-%% LaTeX2e file `eps/bruckner.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: bruckner.dvi
-%%CreationDate: Sun Oct 12 13:17:30 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 580 552 777
-%%DocumentFonts: TeXMUSIX20-Regular CMTI8 CMR10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE bruckner.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.10.12:1317
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%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 45 /hyphen put
-dup 68 /D put
-dup 76 /L put
-dup 97 /a put
-dup 99 /c put
-dup 101 /e put
-dup 102 /f put
-dup 105 /i put
-dup 108 /l put
-dup 111 /o put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D6FBE90EA40D6
-F8B539EDCB0A1EFE2AAAEC6B56780F9312CE3CF757F815AD506873D2884BFED0
-EEBBC826E2C4F589833F59AB6528318A5DC7648A46AFE9EAA17E79A2B07D1997
-E6DC26B83665DB71ADF03DB565CB3278F5B3E256945C846896C782331AE75E78
-968646E00976B91923F497A3791CE96B004FB1BA6F86A7FB5283308615AD5982
-F37635C601B5E996FFCEDC9BBD2D073A400E7CA0B870EE6EBF02A0707CEABD8F
-2BAF184694442AADDBB4DEAF6141D460D1FE4D5BA98246A89FB52AEDCBBDBFCD
-424CA16FAA485D6A574B0812AC95DA0AEBFEAD38B6016D9F92BAC170EF577E98
-F85590F436635DBD68DDDE8996FA2403795AB21438CEFCB8A59AE9FB7ECD21F1
-33B000DA6224A2584BBE6CD8FC46F585A4EE52CE2D9C1D1C99AACE038915882E
-7867BB39FD262DC7F7D015F4B8BA222C71CFF0347BCA6F106A3262751477F37A
-E25D1795BE9D28A0D1CE5CC52ED4B21764F7368A3E2703E75EB4EABD95EAC604
-A272DB7146B65088B62F099F550286FC572BC581A6FCE6E04900CB6B585AE398
-E7F639C8DD424543EFE53F4046147CC156DA87C77F68668B4C7E78BC13594FC5
-C2D721C1F7164CA0BC3C3D4CE0D1B8E6D1DCB6521E2A0DEA08084401CAC45324
-6CDA813589F29105D1571850CC8DCA57AA2D8A62AA1F9DA19A20B40320D607C5
-EAD0D7C9A3538F2E54FCF9513875C9B7AF32600FE7CF3E1A5418AE37D62587B3
-45DAC532AE7A16732D6996C138414670E68DB9FF25C4252957914AE1E4200D2B
-788C3C8FA7F6DAD45C9A626D9487305F60402DC446C691156F43849EACF69096
-459D8EE412EBE6E44B05A89F5CA70D83D31716D4D84E9467C41E726F7F619871
-9D9936FBFAA59C814F34C6A278DA52B26FE5E3B8EA6304E50D0EDDB0E726C9A1
-E11F4F12B333C91F445DD80343221B0DB3E9E47704B7825827BA52A65E8EBBCF
-E98BFA09B0ECA54E23293CE2EB9256410A521BBEE72EA7C6C04A57C721D2BC48
-AC1AF44E0EB50FA2C07BFEF8C8C65B3128FB41E51BE9EA8CDA7B80A273789870
-0C5F60CBB24813D76011FFCC858BAD4925476F67430F98DD297BBD3E92351706
-5139A33F305AEF3C5705B7E743B179898FC2E3DAD15AB72A50CD747F9AB1AFA0
-1C1B1F4247E71C27FBBBE9BCE6920B06B1940C4DC102CA337F39574363114562
-452A5983CBEB981DE801F086A1AD52935D84BD49C0A00C607622EF121E2EC27F
-22D1D2AE71F95AC1316197F57FCBFDA386DC96867B155B296A8FF75EDDAABF5A
-A05D362867AD9FB3107011B330722D6DAF9F198DF16E26F758873E97159F4230
-F3063632166E7EC9FC25FD89D1B8BF5995EDA2EFAD0A745D4C0F41B4D9CFB87D
-F7BB2DEBCEA665FEEBBD183F1F7F672FBF25BAD245A529B997F7D1DFDF7693CA
-6F2BE5D1EC2D4F2FD29E07282C618368B2B60B749D922FAC8D5A90B4DBAC9CFB
-55DBC462B4E6DF23C03066FFDD8B5BE7F64C2640D8F3AA8D9197952FE8749DAC
-759273958B826073B46B9FC18AD35247360070EE1E6732D0549D72DC74AFB79F
-ADB264B90688DC5D51F8FE2A9097AE9B6D1D67B762A341A2108A66B72992FA4B
-17FA53DA5FC536501BEDF9E54CB3F20DD5EB7CCBF6D98900ECF66FF4C100AB77
-ACEB05F9D058E8877125E77C278D04E0ED29D68E61E39BC7DFADC1E805DFFE92
-6C0FCEA1251178002D71F4F77C0BB3365D57BF5B774E3AF3B7DAABC01B97A77E
-B42F111B26714A8584DA82E6D7F1259C57E4A5F92C671C56820AC7ABC4A1B304
-37CE223F62FF09948ED179FBF40D689FB06C9108F628D572E1AD24544284F86C
-BFC27C33DFC1EC3A22F9E7AC2B47E1F7AE895E7DD4675BF2766DF846900A0168
-45F8EC63E369515DD1197ECDF6FF695F339BA5128EF4FEB5E70C7770A421697C
-41AD85E1BAE536EADA9549960BE832DBE149B00B65BD7B52292CC7DC289521FC
-35951637202A60800DB659A42E6558F1CA51414BE5A80286C84D6FBB853CE329
-79798B4696A284A20B5B582E15151002C8F47F451DB953472DABB8F1D07917C2
-1BBC8208BF35C3D02952C3A560DA07DBAA1F87BDFE76775B4BA039360267BE55
-17E320481F56A620FC1945739A6F6D4FB2C0671B6C01AA4440A9626F982115E2
-5DBAD2A46B3EF07ECA67F116AC56C481B5EA6530E439A6DAC8BB001FA95D0922
-6DE19F384C8ADC84B557A4612720C1F5ED8E3732CA86DF4097049B7F26B584B8
-EC8FC760F383DE464603AFD592F32361CEE7DFEC6D518A863D89E495529C37C8
-549B5946948DA1912B71F36BB38706F03430CE3B28DE22DA37CAC2393CCE0482
-0B499A2B12D700959527910BBF0BAC3B353474C432925AC5C764D3A2F82E5F20
-4A0149832E37802C663E7D3C02AACD47A61F42B5A30FAB54DA754B0E7CD098CA
-824D0566731BDB048B63B2A8C7478943BE5C00D9506E58C2C9D91DF752930DE3
-CED7AAD27E6DC542C0EE3E66B8044046C88579D9FE90E0792A14C1B16D94E1A5
-EC7A27F055500D0FC4F1E0022498C2929E509F3B9E621A1FFDB8B1E46B7D54AA
-BFD8238B31EEA3029C3BBC4A0ED975D8EDC9139FE9C4E9A0C6412A18D2284E41
-6F10D5818560DF450AF128EACD4AEED7E0E88F26F497D993D4E7D754036CEF53
-4204AD28197DD6B60062275AB2905991ED8ADC83FA4FF4F0F5FF3FE0A57E7575
-D3264215D754B9B49AD6DDEA0F1F1FD98F9928B7FFBEB0EF32F286E7FBB3B203
-07B49E4F7CCB5DB490F55755F984FC948817577A4F43AB95668884FDF2D855C1
-E5AB38964D23119F4535E17DF5FE2D1DBE85AD7C7AD43AA2CE416F777750B742
-57080BDBF1767B1EB66925A04F936041241AE17F04E72202F175853E20AFD3BD
-43D50655D1B60320808B9A6ED312C085B2C5DBB3A918BFCCCFBD421C9F6B9711
-AC8916DDB7C671590CCD4C1B0CD7659A9AB0199501F4AD2C43B311C314EC7095
-FE71790CFAB102508EF65F7435AFEC6074BD1DBC446A9F73189CC1D85A85CCE0
-A74B2D95B44A61E8E1B4B586BA3066ADD233E3BCA55118C716796AFAF1C33F48
-E51F2AFC903D22EBF9EC3348FA051C817E2A55D503DF25092E04517BAE0F261E
-78A77BA1FEF50970825FD1E5F78054A9FC1824F839AD63
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 56 /eight put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4803AA3E45F388F65179AA988898B7B7A8252625EA5D7BBE65642F35DE
-6926648975C26BB71EC4AAA2C6B061F34705BB1D6366B0410E461F4A4573E422
-A6DBBED212134EA12D0A744EFD8B5A8043C4C98E70FB61AB44AD65396F903CE6
-C75567EA638DCB1AE5C7FDC2535439C4A948A94DC17DB26CAF391EE972891DA5
-AFBEEF4A5893EABB4976611AE3579228B0B980F3A9608C8B9912B166886EF6A9
-467B1DB9349470B8C001FE43AC234638ABA572238D147B23955C053CBFDEA682
-3C8492AC68F7DA2A03201B749878C0A4F08C1CF33E27EDB13F1145CCE6406642
-E72E7D84E0E5BBC7CC381FC635621540FA735619E502DFEC0146AD485114AB3F
-40944FEFE1562249944C410AC526A17ACB00319ECC675E6570FEEEC37CE863DE
-DDB1280C7A23A512C6D12294203C728393E6DBEB55B976C3D5E1B9AFDF240658
-9F3F6B1DF2301CD5975A054A844C0F9A0672B0ED
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX20-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 35768
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 14 /guilsinglleft put
-dup 15 /guilsinglright put
-dup 40 /parenleft put
-dup 45 /hyphen put
-dup 52 /four put
-dup 62 /greater put
-dup 71 /G put
-dup 73 /I put
-dup 83 /S put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB95D63CB87ABF7FC0CADC3D74C6280FD7DA4F1D426EFBDAE91C6EFCB5F5
-978A3FC55B706A80196603FAD8033D77E6432FA5F54265F76CBA3C3AF0AB7C55
-ECCE18D0CDA8AD36C63DABACD5610A63F2007018162FA3AA6C50684EA6FB6EBC
-C9F2645F176A34E76128FCDFB3C8AB1106A0F5733B332162BE915D3AEB27378E
-816D31A44D42D237A493E92ED5FA446ED078DCDDBB09F25A5B1D96D66FC3D700
-A656A601ECCE63731A62F4F482470782E519D48D257B7CE75C806F265203A740
-E40B10ABE4E52D9D391239B9C8FB77FD0B54AF75E4C20729ABA886D4258DD785
-6D0190899D77821BBCCE6E9F2240D91D159146CA0E95B00BD913F35AB9B9F693
-9BB4EFB3DC6F73C8C98D4E4C14AB3983EFB7DC4E2D45528337CBFF07BE01FBDA
-8A7C0AD2B84B742EE60C6C6A3251C4511D613F79CBECF797BD0D67C257810440
-0475660A3B114221BD66157375CF02D031E0E8233312EC571A9C947A604E1EEC
-78513C04DE4C72911A953DA3E208F870FFF39684E300E4747BF7642E7E30D9EC
-9B0EA16DECC96B68C0D0334DEECF31EA7B1718FCC5393E0B0D3E8592BC01483D
-8D64CFB558FAB3664C6D5D17CC7BBCA8FB7C9E2037569E4EDBA4A878B5CA02D2
-0341C9F95F2600D233EC0703B3124C22ACDBCAAD82D96843450CF7267FB6AFE6
-D6B4953936AD3EA9B2FDA8455B1D5E93B9BD02DA973278C397C03688457FA906
-0F639860B092DC132DC4ACB1DD4455B66E9D6DAF1F58ECE895771104A407D9C3
-C6E9115FA5593DBCB7BA9E6E8E252CDE164A59B5437CF6FC236A81C9664B28D3
-52185C9C61754E35E6A62752AB619167A52826205D4CCB473ED647014295C5D2
-3E3A7F5EB7F326F77E7D2D7A3D1C11650E7016B4698C77A9F0D9D160A4944686
-FE6782E0974C4EDD5432845102DD4270B3C98542DD95CCE9F89E60193121521E
-F55CDD1CF16BAEC8817BA4E72CE8A5FD8FC37AAA566D82C9DC416A36060725B1
-EAC72D44BE3377E3A9019ED683AD1D081FBE236D88A4D37471EC09FFDAC808AA
-3E54739FE7BCA486A615C6A7E11B3645A1C94A82471679EA4E2A341488C0861A
-E34C9A85C44A368C7031F8DD25C202CABD15AEEC1BCBD8E36341FAE6A3728697
-4BA2E01452CA739BE676302533C60F2FB139F69E34D36013AE5BDAEAE09A8D3D
-FE74FB3A4024B34C79CF15100DE34A6AE4AE6A6FBFC240013E972617B93A14C6
-06E4311E4182959742675A929F400604C9A861A5B738DF144217D5AF921CAD13
-5A2E2EAA1B60689011E1757CC5E9245EEEF89556FA1654E730D4415926A5F701
-07FBEDC982BA1E35824528E781B05985EB7D6EA3AC4160FA65FF20541F2EE349
-A308458E3583041764D127C390A6C3E6373F5C2FE13C8F5D65CD912FFD26AC32
-EC6464719934B4342C7A8F52C277688D2BD253A62E4C314E59005837019F0F28
-71F15B05B7D5599A4B49FF3F83E6FEE067887FA114C6D5D601B787730C703372
-D262CE92A665DF75B0DB11DD2D3A73531C6FBCD626B4F496EF5E043ED65A804E
-021E2468AA2C98F9C0571DFE44B1D1FA0F44569586BE96C87CF79AB9EDB04330
-1F24FB8805E2606C5BB9835DBDA6AA15C40991D7DDBC826AD1C3269D7171DE53
-8FC12F86C78058A3455BD149FFC2E689D178D3CFF8237DE6AEBDB2C420300849
-A81D08D8067CC415A35C5F04A0107EE9EFA0C17F1E86DAF38D172F1B871E6D69
-6962D198257FCC8623D0F94C5405C3CA3B2CB3D37B2E4BF2748CDAFF689CDA2B
-94E7083785EF58B7843F91997EF46D27D259E1E157AC87B01D4F9812D8A115F0
-5A77C2016F10F2D29F88375B260F929861D3E616E99FA0BC7FAE0053A5103EE6
-945AD8180F8A00AE280BF485738F5256025166C112604F029ABE3C2307E705D4
-3E2A0B96917FC5CD6C7D4E316E0BFAE6D937A6834DEBA2B292605999CBC67140
-36FE5CEF39B89324D539BD7949D26DB833F1960FD6F26CABFAFB0221439CD639
-7D60A0232E11D01A1C98305B1FE818D2B59AFDDF8B10B6A05BB7DAAEE0F06A2F
-B88F8DB0C22CF7B094087BCE563623B8C3DBEFD817355D4F8772BE53EC2D8D8C
-78F55199F882F7ECC3EBA7FEC4892B676DFB6227E0E3038306417A55B01C33E4
-84AF231BDD2DFA4DFA702887DD689160FD5734649FBD5F5F80BC54E3D9C76780
-846A3BC2EDA7728FB2728AC1A42A0C7DB2B4BB3B921F4D25C34BA12E0D228913
-0A25DC27CC16ED5CFAD535056464769E8C021C263F09E7930D245618313B2397
-7B169AE7A5130B9CF477B3230247D266FE5BAE4A6F61ECD40F11E78AA2066EE7
-B5EFA899682689AA76DAAC132707229BA42A74D3C7121F9D673AA58E7371A6DF
-831E7938C82BFBA2D48217950C12EB28459783802CDF5CAD27CBB27589ECF38C
-0164508BE071C30F494E0005972BAFDF1309B21CA7278FA95155AB98A55AC565
-2E876D457CCC89D9011EB713D003CEE1070383B5D1D55155E82E1ED2705659D6
-D516E59B22A72A972C41977EBDA3932FDBCF1B865B43527A6E173AB764E93D7D
-27CDDDD70BED4BBC5977E158994661047B615D77B4E31498CAC8C817877523FF
-883AB3509BA14441ADED40A6FBA7758C3837A152449563F0757DB4F8041298B8
-243476ED59367737EAE57ED2F648FB24347E9811AA5E5DD4D32DB17C1E7BA688
-D0BF00B6BFD1C80AEA424356BA2EBB988E1F429B3B4475758D1C0896
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (bruckner.dvi)
-@start /Fa 138[46 32 33 3[42 2[23 2[23 2[25 37 1[37 1[42
-20[52 7[63 22[28 45[{}13 83.022 /CMR10 rf /Fb 199[36
-56[{}1 66.4176 /CMTI8 rf /Fc 172[83 9[133 1[133 8[0 9[50
-6[0 4[0 24[0 0 5[0 0 6[0{}12 166.044 /TeXMUSIX20-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 1260 175 4 v -364 1301 V -364
-1343 V -364 1384 V -364 1426 V -364 845 V -364 886 V
--364 928 V -364 969 V -364 1011 V -364 430 V -364 471
-V -364 513 V -364 554 V -364 596 V -364 15 V -364 56
-V -364 98 V -364 139 V -364 181 V -331 1445 a Fc(\007)p
--343 1218 75 4 v -330 1216 a(\007)p -343 1052 V -166
-x(\007)-330 864 y(\007)p -343 637 V -343 679 V -166 x(\007)-330
-511 y(\007)p -343 222 V -270 x(\007)-330 -8 y(\007)p
--189 1260 4177 4 v -189 1301 V -189 1343 V -189 1384
-V -189 1426 V -189 845 V -189 886 V -189 928 V -189 969
-V -189 1011 V -189 430 V -189 471 V -189 513 V -189 554
-V -189 596 V -189 15 V -189 56 V -189 98 V -189 139 V
--189 181 V -189 1426 4 1414 v 99 w(\016)p -231 1445 21
-1453 v 1453 x(\017)-189 1300 y(I)-189 968 y(G)-151 1113
-y Fb(8)-189 552 y Fc(G)-189 137 y(G)-40 1341 y(S)-40
-926 y(S)-40 511 y(S)-40 96 y(S)108 1572 y Fa(Lo)p 178
-1362 4 146 v 131 1362 a Fc(\010\000)108 1156 y Fa(Lo)p
-178 968 V 131 968 a Fc(\010)131 947 y(\000)108 741 y
-Fa(Lo)p 178 594 V 131 594 a Fc(\010)131 573 y(\000)108
-326 y Fa(Lo)p 130 220 V 131 75 a Fc(\010\000)286 1572
-y Fa(-)85 b(cus)p 480 1362 V 433 1362 a Fc(\007)286 1156
-y Fa(-)g(cus)p 480 968 V 433 968 a Fc(\007)286 741 y
-Fa(-)g(cus)p 480 594 V 433 594 a Fc(\007)286 326 y Fa(-)g(cus)p
-432 241 V 433 96 a Fc(\007)p 606 1426 4 168 v 606 1011
-V 606 596 V 606 181 V 685 1572 a Fa(i)p 719 1362 4 146
-v 672 1362 a Fc(\010)685 1156 y Fa(i)p 671 1050 V 672
-905 a Fc(\010)685 741 y Fa(i)p 719 594 V 672 594 a Fc(\010)685
-326 y Fa(i)p 719 117 V 672 117 a Fc(\010)786 1572 y Fa(-)78
-b(ste)p 966 1362 V 919 1362 a Fc(\007)1097 1572 y Fa(a)p
-1141 1362 V 1094 1362 a Fc(\007)786 1156 y Fa(-)g(ste)p
-918 1050 V 919 905 a Fc(\007)1092 1009 y(>)786 741 y
-Fa(-)g(ste)p 966 594 V 919 594 a Fc(\007)173 b(>)786
-326 y Fa(-)78 b(ste)p 966 137 V 919 137 a Fc(\007)1092
-179 y(>)p 1267 1426 4 168 v 1267 1011 V 1267 596 V 1267
-181 V 1307 1572 a Fa(De)p 1380 1362 4 146 v 1333 1362
-a Fc(\010\000)1506 1572 y Fa(-)199 b(-)99 b(o)p 1904
-1362 V 1857 1362 a Fc(\007)1332 1009 y(>)1511 1156 y
-Fa(a)p 1507 1050 V 1508 905 a Fc(\007)1656 1156 y Fa(De)p
-1681 1050 V 1682 905 a Fc(\007)1794 1156 y Fa(-)38 b(o)p
-1856 1050 V 1857 905 a Fc(\007)1332 594 y(>)1511 741
-y Fa(a)p 1555 594 V 1508 594 a Fc(\007)1656 741 y Fa(De)p
-1729 594 V 1682 594 a Fc(\007)1794 741 y Fa(-)g(o)p 1904
-594 V 1857 594 a Fc(\007)1332 179 y(>)1511 326 y Fa(a)p
-1555 137 V 1508 137 a Fc(\007)1656 326 y Fa(De)p 1729
-117 V 1682 117 a Fc(\007)1794 326 y Fa(-)g(o)p 1904 179
-V 1857 179 a Fc(\007)p 2030 1426 4 168 v 2030 1011 V
-2030 596 V 2030 181 V 2087 1572 a Fa(fa)p 2095 1486 4
-146 v 2096 1341 a Fc(\007)2096 1320 y(\000)2087 1156
-y Fa(fa)p 2143 947 V 2096 947 a Fc(\007\000)2087 741
-y Fa(fa)p 2143 615 V 2096 615 a Fc(\007\000)2087 326
-y Fa(fa)p 2143 137 V 2096 137 a Fc(\007)2096 117 y(\000)2193
-1572 y Fa(-)g(ctus)p 2308 1476 4 135 v 2309 1476 a Fc(-)2309
-1341 y(\007)2193 1156 y Fa(-)g(ctus)p 2357 947 V 2358
-947 a Fc(\()-48 b(\007)2193 741 y Fa(-)38 b(ctus)p 2357
-615 V 2358 615 a Fc(\()-48 b(\007)2193 326 y Fa(-)38
-b(ctus)p 2357 137 V 2358 137 a Fc(\()-48 b(\007)2432
-1572 y Fa(est)p 2432 1486 4 146 v 2433 1341 a Fc(\007)2606
-1424 y(>)2432 1156 y Fa(est)p 2480 947 V 2433 947 a Fc(\007)2606
-1009 y(>)2432 741 y Fa(est)p 2480 615 V 2433 615 a Fc(\007)2606
-594 y(>)2432 326 y Fa(est)p 2480 158 V 2433 158 a Fc(\007)2606
-179 y(>)p 2781 1426 4 168 v 2781 1011 V 2781 596 V 2781
-181 V 2838 1572 a Fa(lo)p 2846 1486 4 146 v 2847 1341
-a Fc(\010)2847 1320 y(\000)2838 1156 y Fa(lo)p 2894 947
-V 2847 947 a Fc(\010\000)2796 573 y(4)2838 741 y Fa(lo)p
-2894 573 V 2847 573 a Fc(\010\000)2838 326 y Fa(lo)p
-2846 199 V 2847 54 a Fc(\010)2847 34 y(\000)2995 1572
-y Fa(-)92 b(cus)p 3148 1486 V 3149 1341 a Fc(\007)2995
-1156 y Fa(-)g(cus)p 3148 1030 V 3149 885 a Fc(\007)2995
-741 y Fa(-)g(cus)p 3196 573 V 3149 573 a Fc(\007)2995
-326 y Fa(-)g(cus)p 3148 220 V 3149 75 a Fc(\007)p 3323
-1426 4 168 v 3323 1011 V 3323 596 V 3323 181 V 3401 1572
-a Fa(i)p 3436 1424 4 146 v 3389 1424 a Fc(\010)3401 1156
-y Fa(i)p 3388 1030 V 3389 885 a Fc(\010)3338 573 y(4)3401
-741 y Fa(i)p 3436 573 V 3389 573 a Fc(\010)3401 326 y
-Fa(i)p 3388 220 V 3389 75 a Fc(\010)3502 1572 y Fa(-)78
-b(ste)p 3682 1424 V 3635 1424 a Fc(\007)3813 1572 y Fa(a)p
-3809 1424 V 3810 1279 a Fc(\007)3502 1156 y Fa(-)g(ste)p
-3634 1030 V 3635 885 a Fc(\007)3809 1009 y(>)3502 741
-y Fa(-)g(ste)p 3682 552 V 3635 552 a Fc(\007)3809 594
-y(>)3502 326 y Fa(-)g(ste)p 3634 241 V 3635 96 a Fc(\007)3809
-179 y(>)p 3983 1426 4 168 v 3983 1011 V 3983 596 V 3983
-181 V eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/bruckner.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: bruckner.dvi
+%%CreationDate: Sun Oct 12 13:17:30 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 580 552 777
+%%DocumentFonts: TeXMUSIX20-Regular CMTI8 CMR10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE bruckner.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.10.12:1317
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%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 45 /hyphen put
+dup 68 /D put
+dup 76 /L put
+dup 97 /a put
+dup 99 /c put
+dup 101 /e put
+dup 102 /f put
+dup 105 /i put
+dup 108 /l put
+dup 111 /o put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D6FBE90EA40D6
+F8B539EDCB0A1EFE2AAAEC6B56780F9312CE3CF757F815AD506873D2884BFED0
+EEBBC826E2C4F589833F59AB6528318A5DC7648A46AFE9EAA17E79A2B07D1997
+E6DC26B83665DB71ADF03DB565CB3278F5B3E256945C846896C782331AE75E78
+968646E00976B91923F497A3791CE96B004FB1BA6F86A7FB5283308615AD5982
+F37635C601B5E996FFCEDC9BBD2D073A400E7CA0B870EE6EBF02A0707CEABD8F
+2BAF184694442AADDBB4DEAF6141D460D1FE4D5BA98246A89FB52AEDCBBDBFCD
+424CA16FAA485D6A574B0812AC95DA0AEBFEAD38B6016D9F92BAC170EF577E98
+F85590F436635DBD68DDDE8996FA2403795AB21438CEFCB8A59AE9FB7ECD21F1
+33B000DA6224A2584BBE6CD8FC46F585A4EE52CE2D9C1D1C99AACE038915882E
+7867BB39FD262DC7F7D015F4B8BA222C71CFF0347BCA6F106A3262751477F37A
+E25D1795BE9D28A0D1CE5CC52ED4B21764F7368A3E2703E75EB4EABD95EAC604
+A272DB7146B65088B62F099F550286FC572BC581A6FCE6E04900CB6B585AE398
+E7F639C8DD424543EFE53F4046147CC156DA87C77F68668B4C7E78BC13594FC5
+C2D721C1F7164CA0BC3C3D4CE0D1B8E6D1DCB6521E2A0DEA08084401CAC45324
+6CDA813589F29105D1571850CC8DCA57AA2D8A62AA1F9DA19A20B40320D607C5
+EAD0D7C9A3538F2E54FCF9513875C9B7AF32600FE7CF3E1A5418AE37D62587B3
+45DAC532AE7A16732D6996C138414670E68DB9FF25C4252957914AE1E4200D2B
+788C3C8FA7F6DAD45C9A626D9487305F60402DC446C691156F43849EACF69096
+459D8EE412EBE6E44B05A89F5CA70D83D31716D4D84E9467C41E726F7F619871
+9D9936FBFAA59C814F34C6A278DA52B26FE5E3B8EA6304E50D0EDDB0E726C9A1
+E11F4F12B333C91F445DD80343221B0DB3E9E47704B7825827BA52A65E8EBBCF
+E98BFA09B0ECA54E23293CE2EB9256410A521BBEE72EA7C6C04A57C721D2BC48
+AC1AF44E0EB50FA2C07BFEF8C8C65B3128FB41E51BE9EA8CDA7B80A273789870
+0C5F60CBB24813D76011FFCC858BAD4925476F67430F98DD297BBD3E92351706
+5139A33F305AEF3C5705B7E743B179898FC2E3DAD15AB72A50CD747F9AB1AFA0
+1C1B1F4247E71C27FBBBE9BCE6920B06B1940C4DC102CA337F39574363114562
+452A5983CBEB981DE801F086A1AD52935D84BD49C0A00C607622EF121E2EC27F
+22D1D2AE71F95AC1316197F57FCBFDA386DC96867B155B296A8FF75EDDAABF5A
+A05D362867AD9FB3107011B330722D6DAF9F198DF16E26F758873E97159F4230
+F3063632166E7EC9FC25FD89D1B8BF5995EDA2EFAD0A745D4C0F41B4D9CFB87D
+F7BB2DEBCEA665FEEBBD183F1F7F672FBF25BAD245A529B997F7D1DFDF7693CA
+6F2BE5D1EC2D4F2FD29E07282C618368B2B60B749D922FAC8D5A90B4DBAC9CFB
+55DBC462B4E6DF23C03066FFDD8B5BE7F64C2640D8F3AA8D9197952FE8749DAC
+759273958B826073B46B9FC18AD35247360070EE1E6732D0549D72DC74AFB79F
+ADB264B90688DC5D51F8FE2A9097AE9B6D1D67B762A341A2108A66B72992FA4B
+17FA53DA5FC536501BEDF9E54CB3F20DD5EB7CCBF6D98900ECF66FF4C100AB77
+ACEB05F9D058E8877125E77C278D04E0ED29D68E61E39BC7DFADC1E805DFFE92
+6C0FCEA1251178002D71F4F77C0BB3365D57BF5B774E3AF3B7DAABC01B97A77E
+B42F111B26714A8584DA82E6D7F1259C57E4A5F92C671C56820AC7ABC4A1B304
+37CE223F62FF09948ED179FBF40D689FB06C9108F628D572E1AD24544284F86C
+BFC27C33DFC1EC3A22F9E7AC2B47E1F7AE895E7DD4675BF2766DF846900A0168
+45F8EC63E369515DD1197ECDF6FF695F339BA5128EF4FEB5E70C7770A421697C
+41AD85E1BAE536EADA9549960BE832DBE149B00B65BD7B52292CC7DC289521FC
+35951637202A60800DB659A42E6558F1CA51414BE5A80286C84D6FBB853CE329
+79798B4696A284A20B5B582E15151002C8F47F451DB953472DABB8F1D07917C2
+1BBC8208BF35C3D02952C3A560DA07DBAA1F87BDFE76775B4BA039360267BE55
+17E320481F56A620FC1945739A6F6D4FB2C0671B6C01AA4440A9626F982115E2
+5DBAD2A46B3EF07ECA67F116AC56C481B5EA6530E439A6DAC8BB001FA95D0922
+6DE19F384C8ADC84B557A4612720C1F5ED8E3732CA86DF4097049B7F26B584B8
+EC8FC760F383DE464603AFD592F32361CEE7DFEC6D518A863D89E495529C37C8
+549B5946948DA1912B71F36BB38706F03430CE3B28DE22DA37CAC2393CCE0482
+0B499A2B12D700959527910BBF0BAC3B353474C432925AC5C764D3A2F82E5F20
+4A0149832E37802C663E7D3C02AACD47A61F42B5A30FAB54DA754B0E7CD098CA
+824D0566731BDB048B63B2A8C7478943BE5C00D9506E58C2C9D91DF752930DE3
+CED7AAD27E6DC542C0EE3E66B8044046C88579D9FE90E0792A14C1B16D94E1A5
+EC7A27F055500D0FC4F1E0022498C2929E509F3B9E621A1FFDB8B1E46B7D54AA
+BFD8238B31EEA3029C3BBC4A0ED975D8EDC9139FE9C4E9A0C6412A18D2284E41
+6F10D5818560DF450AF128EACD4AEED7E0E88F26F497D993D4E7D754036CEF53
+4204AD28197DD6B60062275AB2905991ED8ADC83FA4FF4F0F5FF3FE0A57E7575
+D3264215D754B9B49AD6DDEA0F1F1FD98F9928B7FFBEB0EF32F286E7FBB3B203
+07B49E4F7CCB5DB490F55755F984FC948817577A4F43AB95668884FDF2D855C1
+E5AB38964D23119F4535E17DF5FE2D1DBE85AD7C7AD43AA2CE416F777750B742
+57080BDBF1767B1EB66925A04F936041241AE17F04E72202F175853E20AFD3BD
+43D50655D1B60320808B9A6ED312C085B2C5DBB3A918BFCCCFBD421C9F6B9711
+AC8916DDB7C671590CCD4C1B0CD7659A9AB0199501F4AD2C43B311C314EC7095
+FE71790CFAB102508EF65F7435AFEC6074BD1DBC446A9F73189CC1D85A85CCE0
+A74B2D95B44A61E8E1B4B586BA3066ADD233E3BCA55118C716796AFAF1C33F48
+E51F2AFC903D22EBF9EC3348FA051C817E2A55D503DF25092E04517BAE0F261E
+78A77BA1FEF50970825FD1E5F78054A9FC1824F839AD63
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 56 /eight put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4803AA3E45F388F65179AA988898B7B7A8252625EA5D7BBE65642F35DE
+6926648975C26BB71EC4AAA2C6B061F34705BB1D6366B0410E461F4A4573E422
+A6DBBED212134EA12D0A744EFD8B5A8043C4C98E70FB61AB44AD65396F903CE6
+C75567EA638DCB1AE5C7FDC2535439C4A948A94DC17DB26CAF391EE972891DA5
+AFBEEF4A5893EABB4976611AE3579228B0B980F3A9608C8B9912B166886EF6A9
+467B1DB9349470B8C001FE43AC234638ABA572238D147B23955C053CBFDEA682
+3C8492AC68F7DA2A03201B749878C0A4F08C1CF33E27EDB13F1145CCE6406642
+E72E7D84E0E5BBC7CC381FC635621540FA735619E502DFEC0146AD485114AB3F
+40944FEFE1562249944C410AC526A17ACB00319ECC675E6570FEEEC37CE863DE
+DDB1280C7A23A512C6D12294203C728393E6DBEB55B976C3D5E1B9AFDF240658
+9F3F6B1DF2301CD5975A054A844C0F9A0672B0ED
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX20-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 35768
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 14 /guilsinglleft put
+dup 15 /guilsinglright put
+dup 40 /parenleft put
+dup 45 /hyphen put
+dup 52 /four put
+dup 62 /greater put
+dup 71 /G put
+dup 73 /I put
+dup 83 /S put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB95D63CB87ABF7FC0CADC3D74C6280FD7DA4F1D426EFBDAE91C6EFCB5F5
+978A3FC55B706A80196603FAD8033D77E6432FA5F54265F76CBA3C3AF0AB7C55
+ECCE18D0CDA8AD36C63DABACD5610A63F2007018162FA3AA6C50684EA6FB6EBC
+C9F2645F176A34E76128FCDFB3C8AB1106A0F5733B332162BE915D3AEB27378E
+816D31A44D42D237A493E92ED5FA446ED078DCDDBB09F25A5B1D96D66FC3D700
+A656A601ECCE63731A62F4F482470782E519D48D257B7CE75C806F265203A740
+E40B10ABE4E52D9D391239B9C8FB77FD0B54AF75E4C20729ABA886D4258DD785
+6D0190899D77821BBCCE6E9F2240D91D159146CA0E95B00BD913F35AB9B9F693
+9BB4EFB3DC6F73C8C98D4E4C14AB3983EFB7DC4E2D45528337CBFF07BE01FBDA
+8A7C0AD2B84B742EE60C6C6A3251C4511D613F79CBECF797BD0D67C257810440
+0475660A3B114221BD66157375CF02D031E0E8233312EC571A9C947A604E1EEC
+78513C04DE4C72911A953DA3E208F870FFF39684E300E4747BF7642E7E30D9EC
+9B0EA16DECC96B68C0D0334DEECF31EA7B1718FCC5393E0B0D3E8592BC01483D
+8D64CFB558FAB3664C6D5D17CC7BBCA8FB7C9E2037569E4EDBA4A878B5CA02D2
+0341C9F95F2600D233EC0703B3124C22ACDBCAAD82D96843450CF7267FB6AFE6
+D6B4953936AD3EA9B2FDA8455B1D5E93B9BD02DA973278C397C03688457FA906
+0F639860B092DC132DC4ACB1DD4455B66E9D6DAF1F58ECE895771104A407D9C3
+C6E9115FA5593DBCB7BA9E6E8E252CDE164A59B5437CF6FC236A81C9664B28D3
+52185C9C61754E35E6A62752AB619167A52826205D4CCB473ED647014295C5D2
+3E3A7F5EB7F326F77E7D2D7A3D1C11650E7016B4698C77A9F0D9D160A4944686
+FE6782E0974C4EDD5432845102DD4270B3C98542DD95CCE9F89E60193121521E
+F55CDD1CF16BAEC8817BA4E72CE8A5FD8FC37AAA566D82C9DC416A36060725B1
+EAC72D44BE3377E3A9019ED683AD1D081FBE236D88A4D37471EC09FFDAC808AA
+3E54739FE7BCA486A615C6A7E11B3645A1C94A82471679EA4E2A341488C0861A
+E34C9A85C44A368C7031F8DD25C202CABD15AEEC1BCBD8E36341FAE6A3728697
+4BA2E01452CA739BE676302533C60F2FB139F69E34D36013AE5BDAEAE09A8D3D
+FE74FB3A4024B34C79CF15100DE34A6AE4AE6A6FBFC240013E972617B93A14C6
+06E4311E4182959742675A929F400604C9A861A5B738DF144217D5AF921CAD13
+5A2E2EAA1B60689011E1757CC5E9245EEEF89556FA1654E730D4415926A5F701
+07FBEDC982BA1E35824528E781B05985EB7D6EA3AC4160FA65FF20541F2EE349
+A308458E3583041764D127C390A6C3E6373F5C2FE13C8F5D65CD912FFD26AC32
+EC6464719934B4342C7A8F52C277688D2BD253A62E4C314E59005837019F0F28
+71F15B05B7D5599A4B49FF3F83E6FEE067887FA114C6D5D601B787730C703372
+D262CE92A665DF75B0DB11DD2D3A73531C6FBCD626B4F496EF5E043ED65A804E
+021E2468AA2C98F9C0571DFE44B1D1FA0F44569586BE96C87CF79AB9EDB04330
+1F24FB8805E2606C5BB9835DBDA6AA15C40991D7DDBC826AD1C3269D7171DE53
+8FC12F86C78058A3455BD149FFC2E689D178D3CFF8237DE6AEBDB2C420300849
+A81D08D8067CC415A35C5F04A0107EE9EFA0C17F1E86DAF38D172F1B871E6D69
+6962D198257FCC8623D0F94C5405C3CA3B2CB3D37B2E4BF2748CDAFF689CDA2B
+94E7083785EF58B7843F91997EF46D27D259E1E157AC87B01D4F9812D8A115F0
+5A77C2016F10F2D29F88375B260F929861D3E616E99FA0BC7FAE0053A5103EE6
+945AD8180F8A00AE280BF485738F5256025166C112604F029ABE3C2307E705D4
+3E2A0B96917FC5CD6C7D4E316E0BFAE6D937A6834DEBA2B292605999CBC67140
+36FE5CEF39B89324D539BD7949D26DB833F1960FD6F26CABFAFB0221439CD639
+7D60A0232E11D01A1C98305B1FE818D2B59AFDDF8B10B6A05BB7DAAEE0F06A2F
+B88F8DB0C22CF7B094087BCE563623B8C3DBEFD817355D4F8772BE53EC2D8D8C
+78F55199F882F7ECC3EBA7FEC4892B676DFB6227E0E3038306417A55B01C33E4
+84AF231BDD2DFA4DFA702887DD689160FD5734649FBD5F5F80BC54E3D9C76780
+846A3BC2EDA7728FB2728AC1A42A0C7DB2B4BB3B921F4D25C34BA12E0D228913
+0A25DC27CC16ED5CFAD535056464769E8C021C263F09E7930D245618313B2397
+7B169AE7A5130B9CF477B3230247D266FE5BAE4A6F61ECD40F11E78AA2066EE7
+B5EFA899682689AA76DAAC132707229BA42A74D3C7121F9D673AA58E7371A6DF
+831E7938C82BFBA2D48217950C12EB28459783802CDF5CAD27CBB27589ECF38C
+0164508BE071C30F494E0005972BAFDF1309B21CA7278FA95155AB98A55AC565
+2E876D457CCC89D9011EB713D003CEE1070383B5D1D55155E82E1ED2705659D6
+D516E59B22A72A972C41977EBDA3932FDBCF1B865B43527A6E173AB764E93D7D
+27CDDDD70BED4BBC5977E158994661047B615D77B4E31498CAC8C817877523FF
+883AB3509BA14441ADED40A6FBA7758C3837A152449563F0757DB4F8041298B8
+243476ED59367737EAE57ED2F648FB24347E9811AA5E5DD4D32DB17C1E7BA688
+D0BF00B6BFD1C80AEA424356BA2EBB988E1F429B3B4475758D1C0896
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (bruckner.dvi)
+@start /Fa 138[46 32 33 3[42 2[23 2[23 2[25 37 1[37 1[42
+20[52 7[63 22[28 45[{}13 83.022 /CMR10 rf /Fb 199[36
+56[{}1 66.4176 /CMTI8 rf /Fc 172[83 9[133 1[133 8[0 9[50
+6[0 4[0 24[0 0 5[0 0 6[0{}12 166.044 /TeXMUSIX20-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 1260 175 4 v -364 1301 V -364
+1343 V -364 1384 V -364 1426 V -364 845 V -364 886 V
+-364 928 V -364 969 V -364 1011 V -364 430 V -364 471
+V -364 513 V -364 554 V -364 596 V -364 15 V -364 56
+V -364 98 V -364 139 V -364 181 V -331 1445 a Fc(\007)p
+-343 1218 75 4 v -330 1216 a(\007)p -343 1052 V -166
+x(\007)-330 864 y(\007)p -343 637 V -343 679 V -166 x(\007)-330
+511 y(\007)p -343 222 V -270 x(\007)-330 -8 y(\007)p
+-189 1260 4177 4 v -189 1301 V -189 1343 V -189 1384
+V -189 1426 V -189 845 V -189 886 V -189 928 V -189 969
+V -189 1011 V -189 430 V -189 471 V -189 513 V -189 554
+V -189 596 V -189 15 V -189 56 V -189 98 V -189 139 V
+-189 181 V -189 1426 4 1414 v 99 w(\016)p -231 1445 21
+1453 v 1453 x(\017)-189 1300 y(I)-189 968 y(G)-151 1113
+y Fb(8)-189 552 y Fc(G)-189 137 y(G)-40 1341 y(S)-40
+926 y(S)-40 511 y(S)-40 96 y(S)108 1572 y Fa(Lo)p 178
+1362 4 146 v 131 1362 a Fc(\010\000)108 1156 y Fa(Lo)p
+178 968 V 131 968 a Fc(\010)131 947 y(\000)108 741 y
+Fa(Lo)p 178 594 V 131 594 a Fc(\010)131 573 y(\000)108
+326 y Fa(Lo)p 130 220 V 131 75 a Fc(\010\000)286 1572
+y Fa(-)85 b(cus)p 480 1362 V 433 1362 a Fc(\007)286 1156
+y Fa(-)g(cus)p 480 968 V 433 968 a Fc(\007)286 741 y
+Fa(-)g(cus)p 480 594 V 433 594 a Fc(\007)286 326 y Fa(-)g(cus)p
+432 241 V 433 96 a Fc(\007)p 606 1426 4 168 v 606 1011
+V 606 596 V 606 181 V 685 1572 a Fa(i)p 719 1362 4 146
+v 672 1362 a Fc(\010)685 1156 y Fa(i)p 671 1050 V 672
+905 a Fc(\010)685 741 y Fa(i)p 719 594 V 672 594 a Fc(\010)685
+326 y Fa(i)p 719 117 V 672 117 a Fc(\010)786 1572 y Fa(-)78
+b(ste)p 966 1362 V 919 1362 a Fc(\007)1097 1572 y Fa(a)p
+1141 1362 V 1094 1362 a Fc(\007)786 1156 y Fa(-)g(ste)p
+918 1050 V 919 905 a Fc(\007)1092 1009 y(>)786 741 y
+Fa(-)g(ste)p 966 594 V 919 594 a Fc(\007)173 b(>)786
+326 y Fa(-)78 b(ste)p 966 137 V 919 137 a Fc(\007)1092
+179 y(>)p 1267 1426 4 168 v 1267 1011 V 1267 596 V 1267
+181 V 1307 1572 a Fa(De)p 1380 1362 4 146 v 1333 1362
+a Fc(\010\000)1506 1572 y Fa(-)199 b(-)99 b(o)p 1904
+1362 V 1857 1362 a Fc(\007)1332 1009 y(>)1511 1156 y
+Fa(a)p 1507 1050 V 1508 905 a Fc(\007)1656 1156 y Fa(De)p
+1681 1050 V 1682 905 a Fc(\007)1794 1156 y Fa(-)38 b(o)p
+1856 1050 V 1857 905 a Fc(\007)1332 594 y(>)1511 741
+y Fa(a)p 1555 594 V 1508 594 a Fc(\007)1656 741 y Fa(De)p
+1729 594 V 1682 594 a Fc(\007)1794 741 y Fa(-)g(o)p 1904
+594 V 1857 594 a Fc(\007)1332 179 y(>)1511 326 y Fa(a)p
+1555 137 V 1508 137 a Fc(\007)1656 326 y Fa(De)p 1729
+117 V 1682 117 a Fc(\007)1794 326 y Fa(-)g(o)p 1904 179
+V 1857 179 a Fc(\007)p 2030 1426 4 168 v 2030 1011 V
+2030 596 V 2030 181 V 2087 1572 a Fa(fa)p 2095 1486 4
+146 v 2096 1341 a Fc(\007)2096 1320 y(\000)2087 1156
+y Fa(fa)p 2143 947 V 2096 947 a Fc(\007\000)2087 741
+y Fa(fa)p 2143 615 V 2096 615 a Fc(\007\000)2087 326
+y Fa(fa)p 2143 137 V 2096 137 a Fc(\007)2096 117 y(\000)2193
+1572 y Fa(-)g(ctus)p 2308 1476 4 135 v 2309 1476 a Fc(-)2309
+1341 y(\007)2193 1156 y Fa(-)g(ctus)p 2357 947 V 2358
+947 a Fc(\()-48 b(\007)2193 741 y Fa(-)38 b(ctus)p 2357
+615 V 2358 615 a Fc(\()-48 b(\007)2193 326 y Fa(-)38
+b(ctus)p 2357 137 V 2358 137 a Fc(\()-48 b(\007)2432
+1572 y Fa(est)p 2432 1486 4 146 v 2433 1341 a Fc(\007)2606
+1424 y(>)2432 1156 y Fa(est)p 2480 947 V 2433 947 a Fc(\007)2606
+1009 y(>)2432 741 y Fa(est)p 2480 615 V 2433 615 a Fc(\007)2606
+594 y(>)2432 326 y Fa(est)p 2480 158 V 2433 158 a Fc(\007)2606
+179 y(>)p 2781 1426 4 168 v 2781 1011 V 2781 596 V 2781
+181 V 2838 1572 a Fa(lo)p 2846 1486 4 146 v 2847 1341
+a Fc(\010)2847 1320 y(\000)2838 1156 y Fa(lo)p 2894 947
+V 2847 947 a Fc(\010\000)2796 573 y(4)2838 741 y Fa(lo)p
+2894 573 V 2847 573 a Fc(\010\000)2838 326 y Fa(lo)p
+2846 199 V 2847 54 a Fc(\010)2847 34 y(\000)2995 1572
+y Fa(-)92 b(cus)p 3148 1486 V 3149 1341 a Fc(\007)2995
+1156 y Fa(-)g(cus)p 3148 1030 V 3149 885 a Fc(\007)2995
+741 y Fa(-)g(cus)p 3196 573 V 3149 573 a Fc(\007)2995
+326 y Fa(-)g(cus)p 3148 220 V 3149 75 a Fc(\007)p 3323
+1426 4 168 v 3323 1011 V 3323 596 V 3323 181 V 3401 1572
+a Fa(i)p 3436 1424 4 146 v 3389 1424 a Fc(\010)3401 1156
+y Fa(i)p 3388 1030 V 3389 885 a Fc(\010)3338 573 y(4)3401
+741 y Fa(i)p 3436 573 V 3389 573 a Fc(\010)3401 326 y
+Fa(i)p 3388 220 V 3389 75 a Fc(\010)3502 1572 y Fa(-)78
+b(ste)p 3682 1424 V 3635 1424 a Fc(\007)3813 1572 y Fa(a)p
+3809 1424 V 3810 1279 a Fc(\007)3502 1156 y Fa(-)g(ste)p
+3634 1030 V 3635 885 a Fc(\007)3809 1009 y(>)3502 741
+y Fa(-)g(ste)p 3682 552 V 3635 552 a Fc(\007)3809 594
+y(>)3502 326 y Fa(-)g(ste)p 3634 241 V 3635 96 a Fc(\007)3809
+179 y(>)p 3983 1426 4 168 v 3983 1011 V 3983 596 V 3983
+181 V eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini1.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini1.eps
index d9192f6b4a9..1a07e32ed8a 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini1.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini1.eps
@@ -1,2030 +1,2030 @@
-%% LaTeX2e file `eps/caccini1.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 21 93 556 793
-% EPSF created by ps2eps 1.39
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: imp.dvi
-%%CreationDate: Fri Sep 13 09:08:44 2002
-%%PageOrder: Ascend
-%%DocumentFonts: TeXMUSIXSPX-Regular CMTI10 TeXMUSIX20-Regular
-%%+ TeXMUSIX16-Regular CMB10 CMR12 CMR10 CMMI10 CMR9
-%%DocumentPaperSizes: a4
-%%EndComments
-%%BeginProlog
-save
-countdictstack
-mark
-newpath
-/showpage {} def
-/setpagedevice {pop} def%%EndProlog
-%%Page 1 1
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 imp
-%DVIPSParameters: dpi=2540, compressed
-%DVIPSSource: TeX output 2002.09.13:0818
-%!
-/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
-/p{show}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
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-/slur@Dict 200 dict def
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-% align the slur to the staff lines
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
- aa 0 gt { /shift shift neg def } if
- ifadjust 0 eq {
- /shift 0 def
- } if
-% and finally draw it...
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
- grestore
- % now some \slurtext code...
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-% differenced line
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-% sloped line
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-% free line (init & terminate)
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-end
-%!
-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]/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[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
-%!
-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/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/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
-%!PS-AdobeFont-1.1: CMR9 1.0
-% 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 (CMR9) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR9 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 48 /zero put
-dup 49 /one put
-readonly def
-/FontBBox{-39 -250 1036 750}readonly def
-/UniqueID 5000792 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
-3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
-046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
-C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
-A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
-A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
-731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
-09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
-49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
-5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
-54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
-C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
-11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
-D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
-109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
-3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
-C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7DE90DFECF89
-9E58BB6430D9915B21B801B7EF6E62C2DAEBA34EC115F1D18F1F2BEC381020E2
-3FEF9CB4F3C3997C3F0587AF7C2A6B08A2823EC3DD3623E073DD07E7E8995DF8
-D81B2B6C8D36C964B75C7E4DAD8723126043FD455BBF4F1C21609729D9CF2620
-A6322AA2244D98C7BE825289C2F09F2ECCA97F4DC25F93D44954392BCB47A2CC
-1A11F6CD6101DD405EEB13945A1AE4CF6427F53AF9A0F76ED8D9E6B2C81562A7
-7F3A89339B0D12BBF34BA71F6FD2D75D0C3068843119AF94ED88AAC850664154
-78973B221D800E5A0556DAC4679C62294751C1C74701994332D8B29CB51DA91E
-215C8699F47D2A56EE9905A4716B97DF456ECA78BFBA774F1665042B47CB2FF1
-F3617C88959B667624EA096EBA7BCA7C4924947DE35FEAE25FD055C0843FFF09
-F80AC8F15EBA70D546F3EADC6E4153DA1E91D63FD90AE7EDBFD786C323E6B4F8
-92A3197807FAF44DACE5097BA940DAA972C26620BAC146E91310CD0C853AB86F
-3D3D65342EFB3B01762FCED5F6EE42F3B47BC5B9DE9F1517BF3B32A22DE23FAB
-31341D9B8F55040572476437F5A81BD297A6FFD971B963458CF4779AE811F0CC
-4AD74B3CFD7A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMMI10 1.100
-% 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 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 93 /sharp put
-dup 94 /slurbelow put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-/UniqueID 5087385 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
-95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEFBBB4AD66A4D7350B0
-38A001EBC9735BE41A41B4836FCFC0D4029C02D8DAEA734951E57209889EFD2A
-33D220471B99E877FD166D30A54B29D4CC17CD581611477EC6BF8A58479ADE5F
-FE8DB690DF606BDA5AE6D1E2B1B797C835A026E933D593975A7AC4DF8EA7662F
-F51A30717A92A2FD10030E749FFF416FAA31794A3EF90832F493C1012ACCC272
-9313AA60DA29EAABE06C313A7D6190B3FC20E0E400E647ADBDC6C63CE3AB0D21
-DB0EF15268C3056C4E28FA7625F2BF7AC6343417D3E54CEFDAFE3B0E42E96C59
-8348EE6BD0843B0509FEABE63FB91C89FB452047789D36B69A355F2F605C77D7
-5AC7BBC694A05A4D42224F1051296857DB8D542F78DF1AEBD0F55AD2BB1795D3
-880CFA7AE2B14CB898327A058D330FC29BEEA39661FB8AA17B1D9298969629C0
-035D90094EC5D33B9C91B3E9EFB648BD3303BAB96EED1D209811066CDC3AA0DC
-664C576F01B39C04F54F9BD393B74D4620666DB9DEC4F49C46E85A14EB1B1FA6
-ED1E13DF0BBF930F995A14AF9AFD04EA8317ED31FCA841133D742CE53BC44A84
-2B8E98B6F78927A4783284DE22942EFE6E9685D880CBF2F215ECF20A00D6D3C7
-8F31303AFB2DC22CA1036C787A4CBF0AA39D5E5614AF8E2B2DFA8188C2C5DC62
-307206815717F190E854D2160D541D087A24701E05DA93D5F0F9A3E18C13F44D
-28281D018CE0ED65FDC7A41DD2D7569CAC04FC3FF086F89392339070DC4436D4
-52F283791522918DAD8C01873436B6665C4D698647FD7ECFB67495AFF97A1656
-9DE0D0EC6053AD025EDEA86CBF26B4789B67CB490B76F6F03E8564829096F390
-32198C0F01E5605A0E6AECF6FC99CBFF8A113D88EFFC6E047361EF267F3FEF0A
-0D13514F1DBE782888278818953F05D660FDEC6ACC4F927EF6A7071DC11A2367
-8C5EF70B850DD123EFA3379291241CBFE455C88264E058F2C2B57D2BAF5D7224
-AA236B06B756D47DB4AB4D1C1B0B848BA1E5403D3AB2B135FD14579AE258F4D3
-EB02EBF44EED73AD6C4D5B0A414A58305793DE8236E673299E45313DC42278DB
-6AE93703D8D4F70A0AB11E4D19878AD245264F36050EB65B6F10125779C70D8E
-0065B0F31E8689D7006E25B1E01364A1FE370CCCABCD955C6A518A26DEE209A4
-F070657B786E9C670611E0E53076B0B6183C2D4796DCB9BB59851A0EEFA715B0
-E105FE75ABAFA9973524631BD22CC222A5D3B1F63015A392E43C857FBC8CE769
-16C103777607E18CFB4D096708FFD430EA3EE8B0E813B137B5784962EAB607FE
-717079429B675D90F3D973CAAFA004F6243EE0A53FE515D255C95DBA5C0DFB32
-5E0529B1D0E5183523AC111882566D14788F53F22FBDE907B26238A814E57C29
-A6DAF9C7E2F79537824F0DAFD9A521628565B526F000862857D9BA6CFF593510
-610A2EA10FA423C056C12B19EC53840AEB340515986D8976F02606413FC6AA39
-ECDF92C5897AD6CFA9A89E0CB23D4904A5BE2E849EC7BC2FF4A88228E8CB6196
-B6DE62566DABD4C85005211C83BFCFA86CE4D2EBDB699FF3819760B188DA7CFF
-909FC74CF024AED318E00AA51F8750406B0E2EA33363E385303CFBDAFBD2D8F0
-4F6A8B00431BB0776AB91470E2832667C97C8F7A7384445A2A42555BEEF95EC2
-F2C78B89891CE666F2B47FF1141ACF80AFE627FEC568168A61C99C941BA7D0AC
-54ACF918B72619207C0182A6BB1D59E58FC3C96B0078EBA276B9C02DB668F0A8
-E046BE4633E66E36369CDFD881E71A969F1EDFD8D7CAE207A74A8CB8AAB39C8F
-935BEEBE8D07D4559608F75254ECF672C2CDE1578D099D79152D8B41E054CD25
-56A856CB0593F0B676DD7E9FAE9844C6B6A781B9F823D5DEC60AA90E33498A93
-D6DF663FFF523C171B1F841D5E60C321B644EEBBAB0E0C418CB206C8775D4D0E
-33AB23D397B2DC98EFEBC3CC473ABB6EFA4DC2636E945BA3EFB03FFA680EEFE0
-7FB5C8F1945B699EE4F394204FF362262D2DC7CF759C5526B81D0326A5D14658
-B209F34B9334ED0B046DEE32B4E38776DDE43F803F8D029E8410BF7B1517E6A7
-0D84C40AB2A013C58C3BB28D496F6CEFF70E73F3486FCD3984F8297061E72171
-A17BE235ED5A38F7B73245B46E65EB4AF055C4568D1A19BEF6D5B184D3C26D45
-A2DA85EF7AADFB104419D7B6DC939726F6AD4A1335C425A5086969B7366F53F8
-9DD041A90FF2A593B547C37520BA014060801BDF84B7D386E4ABC862D8E3EBBB
-AC62431C625EFDE888E07A4548727C26141F0D9818CA289C79FBA2287620E29C
-71FF406FFE49048FBFE82EC631AE264580CD091EE22377D428069D99D6184D42
-C5A7A438933764CB1AC1534CE9D8F0717A0DC4A466DC21DC42791F06C28BDDAD
-AFC10D8C5147209ECBB9B87A0F3BC62359AA1D046A713B8E78CD857FCBCAF6C3
-F17B1453FF3443D60D0B5F75DE6DFFB09CD5BC44083DF8353E4A97CC03541BAD
-AAFA0E927D08919D13825535AD9F1C081436F0E550BAEE4A6902A411A653EC8F
-95621DB5D9AB5C155B1F1575268D724F51F82D9E5993AB42D724FF649F48F800
-67D2176665344A6CCE606C1D60062581FD4CC87D8C3EA72F1494F8967480180B
-3055576BACEF9322EDCD5E49C1DE7D7525C7F44391BF7DB360AA55F6A443621B
-1E1B7CFA3017A6A4E0B0980DE9BBFCC95A8EC512058A35877917A0F377705C6C
-86DF168ED49AE75998C8D7D2BE79E89066734A6B532830BDE10EDCDA303BA891
-880693359383EFF5EA85DF0575A9C5A114A6435EC71B124FA279F81D723C7EDF
-60F764D1E975BD48A295B8E29E247BB795BFB8E200F3B803631C90CDFC32999D
-CA367C5E4ADFE9268145F667A4E159C784525AD8B759959820E4B5978576A3AE
-CED1DC29EA92CB1910D84AC73494FFFD5C163C1A2094FC216227DA8C39213F8D
-00C4E673604D2E52F34B58AB257A18E91BB4B05B0A0712E260D14D6043361159
-D55C19B63E79B0688CE275B2DDEDA27191678D620375C0DEFB3F0268201A6CA6
-0ECF5F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR10 1.00B
-% 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 18 /grave put
-dup 19 /acute 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 48 /zero put
-dup 49 /one put
-dup 53 /five put
-dup 54 /six put
-dup 55 /seven put
-dup 56 /eight put
-dup 58 /colon put
-dup 65 /A put
-dup 80 /P put
-dup 81 /Q put
-dup 84 /T 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 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 123 /endash put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1B9EEC89A0DF5D4E908F32BC77D09A266DC98E9669626354E
-59FA354352E609F3A359C0E8B82075C60AA8F917C3B46A51D65DE1F6F050160A
-412DAD1DCB1A35E49A520F31B3EF2B0A27E393E20EE871DBD2628AEC086AA0F1
-CB11E1DFC7E94792E38B0F8DFEC565B1676FD5BD49E5757F7D03092489A7A0FD
-2DA2ECE42C2BB3C481C676B3BB029368632768C2988B90ADA328C745443F93B1
-C31CBEA19AAE4FFC83A933DEF484A753B513A289FBBED75E3EE8C1117912BAF8
-54CC8AA4496B318283B80AC61EDF21B109D7DC8DDB8FEB1F20265E06C2E2E8DF
-9532840F5737838DE90773008DC7A4E23C0F133241F066096999887AD4D12DDE
-23656B80578308ADA3B73C7D92DFFA19F1A79AC9B99F4971AC65B49FAFA4EB21
-B05DA8A257B3CA70C7584768D4D1A8F45777FFBDB6C69A56A56B76B10D228B4E
-AC4A163E08E21F24E9DF40752B9CAC62E84596EAF822F177C4CF65B7078A536F
-97E22792FA75CD39AD747A1FEA72CEB4B2658DBB9A4CD46FBF5FAAB0D2342DAD
-04D93804B95AAEA397D0ACA78A3E49FFCA7473C3610C6E9A9251EE17F88E790E
-82C4755F75EE3A7FA6C0237A7030CAA69F77BD9D4EF25FB1A2D45B649DD78499
-586027D49923A3E2870543F4CF74A00499B8BB5A903645E546A5403B88BB5F97
-F04924E8CE2A3446643AF9F1BCD69552B351076B53AF9F34FFDFE3548F31607C
-CA8F999426CA7D9B3464D2C6BF22AD989D98D0C5799E54FBECA219E2EF410CF4
-A049606A988FA48884717E52FF08B3322390C85C4D2B9CBE74801B538E9590DD
-C2A7874BA3A795BE0E40B300B16C4E06251E8A90BB725687A489828848C7F6F7
-3DAFA7C01A21CF7318E8C26D5B336E7B6E4F4F0B397904564BBA28BDB9794B45
-8CEA36266178898E3612D7DF333CB7FEE6396B67761361CE1791E3B18B629B17
-1667584AFDC209377CCB279582FCAB62725237AAF4879364006A0B717EA427EF
-5CF24C44FF4A6FE8ED167A40EF438CA0A6B0D80DD46552563B36DA5DAD53AEE6
-E116D35D0321DCAF45D1808418490D772C50B6FB0810F2E259E21AEEFBD7C5D5
-B7FA3E9BD20A02299701F473294B6C8445E0769EA93307756CE2A7FF454B2C1E
-E1CEEE797D5DA0A8A7EEAA2090AA69FD220CD70080AAEF76EFB53FF7759BC68E
-D7047DBBC8DB5C13320F77A8FB94B9DB259A9AE460B8634A22AAA2E363084BA4
-E2B77C1E29568B02BA3B160E78799B29B38D1BE9FD53F4D847CE1542DBDDDAFB
-00CEA31C5E9A63C6A5A02740A29EF7EEAA640DF24DE62385E2BC5E7FFDE1F362
-C7F86BFC2A4E9BCE82A37D5BB4BF26BAE85459B6945F7A7E4AA99002B9475A9B
-8A0CF51FEE063B939B1E1737BECC470D3DFC46D97E97D77DA85253440C570804
-C3B5EE537499CC481CA523B7320D59AF0A4102406DC5A264E7393E04B39A3458
-2B241C46D8D9A99604E48C85DFBEC0FEDE37A7BD53DD20A62CECA82A6E6640F2
-F68B66B65EB2D6C1C582FC10A4EF57711F19AF71D8D4BFDD735C3E67A4D9216A
-5BBC655423FD1FF2DF40A19E528EE4B81FA837525865A6CEDF9E7F27D3FC5C61
-CFC31DB55A2586B6F8D598DCC500ADE62C8132B4D65F5DE6637A34E2CCB7F225
-3AC04CECF1FAB29399A33D06DC3010F4B44CD0DC34FC72792CB645FC4079C34D
-3497C9617FD607C5FB0D804E5DE41B07542D2437A7530C200BB839542CEDD201
-D8E0D0840FC242DDF4A5A4CD973353DC491E06E684C99B0B074649978EBD11B6
-774C5224BB091BB445FE2E4F276F6A9DADAB7DA417847FAF1B04BF5DE12D356D
-06D6E83E6362178B804B95FD8683ED3CD511002BE0B87ACF8AC9292897C2F85B
-5C8814D40EA5DB190A52E05623E0BC0C7FC19943CB2B07573F7CCC885FA8AB29
-367930831009DBB9CA6E7E879641394526398F3209369D875A1EBDD45D7A203E
-74C03B38AC0FA1A379A5E399AB7700AACD2DC5B2BC3132BE82C64AF9662B9230
-6D06DAD71F74EA0C28A85C8629C97A1699DF1C91C0F5D035B459CC13E7CCE42E
-376A24E9AB4825C15AF2445CD206B9C39D70D735560A65C2BA5BBB76121A503E
-4FA1992D3C7C8001080FC8705BCE06B4113472B8A69E9CF1AA8C5CA2450F8539
-E7D48DD5785217F519DA9534D13EE228F59DFC78A53AE949EAE75C484F223E88
-1D470D03227FC75C23BD32C3F64F87053D9F366CB37C014CCD36409458D90C99
-54D24B8BF0D3FC446FF633438A9447D9E33C90E4B0CFE115F7E81FB13E43BC51
-C725947F66E2D79877A155D4D373FC4C3FBFFDBBF04820F73F292B8E5D932917
-B27D7A4B20B7C471419CE731AE8CE958E8B750242D09E07EB1917433F77632A7
-A7775361484064D6B02AC57E14BD0B3C332A4BA36AA02F35AB09C83037796B79
-46FA4F4D506687B80BE0E2D2374050501A5793171CA3C14F8CF6521F7575DC2F
-9A9ED29C80B8092C98FA1BA67C5E1B02B9976EA0CC363B7F1027EB779C1A6A38
-9DF3F9853B8A71483DE1BB5B9FF9D766EBDD648512DDDA9CFD418AAA51F754D1
-27ADBADC3B3CE807E7BB6650EE72646930EAEE073C2004535D5C4770C8FFDEC7
-B5882F2D49AD63DDE41665FD5D0D4213711CD7C0C503EC77511B1F304DC9E571
-8FC9C19B49D4974FC8B530490EC1F1C346A6B3569A9FC23B48F1EF63A8F1FA66
-456B40A2EF7F8A6BA3837D698D0F1A0C6EFF8AD59F5FFFC53C790D5D0A35073B
-842323D6D5BF3858496D366C42DCE69AA5C87B100CB358FDCDF7683446E685EC
-67583895433A6E73F94186BD778FF5D331F200F74F1866D29A83E6A2AA368442
-4735C4E14CBBC730C00B58B36396A9C81DCC9CDA324B847D8763CE7052FF7B3E
-EAC8A2DCE192B308C84AE5EFE62E38219BF151227C472952528C21EBD7F93150
-58CB8CD9B4F7E301EC2842F4E912103DC2758A56B4C5645F9CA35A826534A3C8
-042B990117D1A53CB13408D4960417F81A1FA442BD7ABB8FA91BF38F6D332256
-ACDBD26DDDDEFA833CAAB3D7084EF9C4649F73407ADCE0ADA5CCE19126924BB9
-6B48355F311A3AFCBE5EF10252F86D751DBD977C9DBF0C81E200AB77E0BB117F
-F48DCD53AF3A56E58BC1E6757A5AAAAED24616266B4E264F7927D70754DB9A3C
-AE063F688DEFB66B51F00D022075987696F54AD3D0286EF95E592F9D40454D0D
-69B061694D2AFE3697C7CA36196DD6B26BB1057AE5070D25A2F89326DE260440
-0AAED51ED7B254E279538C31D4BB4EFDDFFD4FD09232BC430A573FB657AFE742
-7CCB996E988FBDF600D809019F4B4D2F041A6BE4C60A52B2F3A8B6BC8DBF772F
-CB58477926D6E01384D7B718EACE9BF22096FFE7B3F398BE07AC814DD2C534A9
-06A17475DE88392A48B82535093DF87A1B23ED55EA725DD7533D905A67939D1F
-53ABF978B748AB202A077195E495E5F0CE042836BB5743565F7AEBF31284A99E
-C0CACFF65EEF9A9E7EB161253762CF243889BDD834460E1EE5A752E5254BB6B8
-C21D0B674C80FC55123E3DA6CD90B17B4CACA4F5425D9322643F2139FD90A8D3
-2BD3B9E0C4DA58871EB78A764A6E035A2DDE468BD45F40A5B2AD4D32D51B54CD
-C87C566C0DE3933EE423DF2930F0369A27EF1E609B0152886A26C7EB8E625DE5
-2DADBA71433FF7315006FA226BA80581B0554D0D65F610F59D61756676EFCD96
-1189905D27790D7910E8411FFAAF646D531C03FB3317AD77C8F4681C6C493D84
-E0BE58C096868A579A570A68B65DAA98D12ECEE1EAE774C282F9CE38E37FD95D
-B8056E30202FBC31832E734096C7B9B164665420698551A252C0458D901FE316
-1E2A8B629E1142815AB39369C89D6E366EA53608F0A0D8E5D09FD5F0AA1E1F8B
-6183806A9ACE9BA79DBDECF8AD1E9C3BD589B2D758CB90AE642746083F938040
-4B319D0BDBD61A24646615F744BDDEE2D19F7E6885BEA4BEE3CBEB98044F5C3B
-CCE180CD94E00957C7663E17F31AA2009ECCB464F1D19CD212A6F64C2C3BDE77
-4AF718A7005F7AF21879513A760ED3902B658534F00BE8277A3C09302780FBF5
-3D4CC7A4D399CDF38C3918DD85DE9D359252932AF5274ABCFBD8952957F642E2
-2C9846C20F8C95DBD53953A87FB4D72FB07177C8B9180368FE562C6757BA26A4
-4F5C241B377C1658B6DBC05574FD228E8745AC865F24C7C94700BA3DB4D53F3C
-46032B19870E44BE006A610365CE5AB3891C4053CEB9ABD70061B23F55910C29
-18E1AAB37F3EF51267D977EAA70349C7D4DA9B7809453BD23F17C1563335B87E
-DD90E4F74ABFB462D4EDA74CA37B88A4128A6712A9D861F9456F394064C4F8CC
-C8BA0BBF2C02EE11EAB8899FFB7C630D97C0290F13824E5F5576AC1381272427
-1E17F47562C5636E75DD779FBD1D18CE4D4257C0831FD68B412EB1905AE4101D
-DF68A74CD6F7ED92DE2667A080164989B807F84F126BDDFBA60987B2E780886F
-DFE3937A932304D88FAFF809ACB111BB06C64EF01F28756D2A6D6CCD5D6C9057
-E00FC93E619898BE6DC47573A02A60D8CC5140CDEEA11A453FCE09F9CEAD7FF1
-076F68CBB6EC2FC1D7EB66E1E831E886507CBF1A0C8E688FF91C45AA8566D747
-997F0EEBC72B8C77D812AD3820D7D837BA5ABFC231B8B6E8A7F2C85886CF7A39
-4C0AB000695BFB1E88BD9DBAD72BE505DA4830D4E57D4F519C6E7BF91CF5D72C
-47A98A9B7C6C2CE4A99587DA2BE19B8BB56EB7021D451654F92FAE4240CE623C
-CB57CFE0A0F00DF03EA7E40E75EBFDEC4B572C9570ADD9FEE4354A50BEF41CD2
-E622AAF95C6C467051BDC980D8E1C59B57B938073865D5624EE77C634CEB5863
-D3E020B88F535EEC5DAD9E81E6BCAFAC4AA3531A751F8830772C12AF1020564B
-4C4EDC4A8AA8F1B605A91E88CD7B11B3326C2B82AE540951DD6FC3BCA10DD078
-448DDF3F224745F2C88B53365EEDE976BB8D94D1F57E353EDE19F588DC56D99F
-EB3C628F9A5A6C9F79BC97D69F55EE0E337598806D0BC1EDE2CA8021EBCC1A50
-ADDB55DC3EABC67613B09E9A1674C0058702497C21EFD6322530E8040422A032
-6B6E872A2FE553E3792D7DAA2CD97FC2193EA2BDAC7E78C10673EAE640985389
-7E0C5C663DC10138C6FA5FBF3C24D7E72E5DB12DD4E5FBC213F7C72F9ACE751E
-FFED9C3B60907E04006F0FAFE98B31C607B5C84C3D1F181E1DFF2FF1E7A016AE
-C8799D765D52DA2EB5BA62575EB85243B5EA52A50DE2EF945C600EE8CBF1BDD5
-8F9E917193AD2E2D7C37162DECC00AD50C071B0A209327E87C8BAF529EE5B561
-5979F1515A78007AB6AF532219951A3B950534ED8646078EE7C933051E0C5DA1
-3B902956FAFB5CEE7A6D1881F2CA72686D74A00BB26A5627DBE2991771D8CDC5
-D35FA42713272A3346B5FB0C4250849CE0CF4F026B9E9D5E9FD5258AAF1B2D55
-1E7CD3C80BECD4E44C504E0F935A4F8B463373271EB7BD942698CF1D005403BA
-CDA5F1996D85F0656116CB2EFC49D25321AC051CC24784587B6969A226BFEEAE
-773444F741B04520C28298621800FE12CC18918C56FFA5D43FEB24125156B379
-F9BBAE01A58A1DAA21E5574BAAD2697042F540874FED03C4147A9A82EB3939A6
-5C941D015CF75D30766A7E954B9E2A8F2E9E808372B7FAF2E0871A7004C5508F
-EB9280D63471E9EF75D80BFB0D6C2430A061D4E2C4BB4C295DF63BF8C1DC0952
-D5DAD5E0A2653A8D03DE0868C14027464D871F9760DDDE95A903E1C1F8C2A7C0
-A0862FF3587BF172566E388F875A160CA150C3B2DF2728103F8EDDD08AD0BC6F
-65BF032EEF85FC54E299252B7F32E4A8DB7542418E09F073236E68F4F11485D3
-F6A0624C207CE7EC5B0B984A3C0F3FA609118C22CB6BDBA37A48BD0897204015
-7D9AF0D3F975F2ED088D91B6721CB604BB19291EE7B332CB852643678FC4B66A
-A15221B430720AC37E6C2140DF182968E3A28BFDF8BB2B1A90DA691CC419405A
-F2DD423B27F81CE1499708F11D4E3F6A86DBC243522C0CF3B83F39EE6312563B
-A3A624219E36CC78CA68466A781933E79F238D93416910B791C97502377A0A12
-CAD42241B814B8B37E35074DBB48B79CDDA2E8540CB303ED02DB330D9E542371
-D7E183C060F9307C2E0345D41736348ED1E50D2F9A531716ECD91AEC136448B2
-87E17C5EC71DDE13F79BFCF469C8062CB60132388865AB64A77558A8974875F2
-9FD46FB1B07B50CEF579FB3C4D862160A3615F2D3CD3E6D88B06182C2887AAF6
-AB70E2961CE467D409DA39E44C7A890FB1FE59977C954DA9ED0C4D2CE9F42C76
-94F8EB9D9980F40DDBF09A61B71CD07A2ECF3F1A3DAE84BEA1F38FED60DCA960
-462C7F22763841A260EB5AFD515E9E93AA2DE67F64C83835D5C3F1E3DA1A6051
-9CBB3750EB26ADD07DFB62FE7CBCE154CDAB84A6EFC9797A891D4D699C96280F
-6819A9067964B3D048F12B812395CD40E20EFAA9555FD0CE35E7D566929CFB0D
-8CBECB7ACC08CFCDCA43B6D105B89593121653030575F12566AEAAE800C00BBE
-E88EEC131577E9BFAB2CD2A5BD45F6A286B00B4C5CA09A5550C4EBD107EBEC39
-94AFAD0E3A8A6E729284B62169D853A658A10EB2A53E4CC4BF29F127273E0120
-60A1BC4C08DDC4F7DC298071CF0D8DE93A8F189D6C76EFBE0A591EE1180AC6A3
-D7F8E47B023C5833570D6AA04970F4EC552221A701826BFD2C9CF06197AB11CD
-2BA1C51C8FC1175A7D643F505CA573A87740C337CFBCDAE535E1B90D3236BB96
-92393450186C9A749B0A3A30FAB7B433610D2A0DE303E421B3C1E18BEA34D891
-CD6449CC5DBF1C1D01B2A47263C7D24052F8FE37F2AC085D0516EFD72CD78530
-7E2522917A7B863572752E9B1BBEDB7210516E62B73136F9DC1D96323DC3F78B
-C9E43A21A7AB7626A7454B655DE2CFFBDF27847616D52DBC72D54BE7BFE6CB49
-78FEF0FB1F710D55D123C7756F12AE2B5D4A9108C17F2AFB4E421B08E79E81C9
-E7F0029C052A27F5AD1C7AAB82C4B45B364408235DE134DCD74D93264F77BB7B
-E738B52C31CA5C734F9453478819E6E1F1317BA6496719A8CC91A30F6754A600
-AB170520C4872A328D2D84D09055A3AEB730DC8A47CD97A09E7E6481A85B6957
-0959D2623290BB04BD8612865A0443C9EF9C861494A5EAEACDC32FF5C572D2A5
-91ED31F8F8A3C0CDC34F5A4F271A0C067111C70D95526C4FE05A7018259333E1
-207AE3E9AED942612024BA3E2238C1E5F56CA70FD0ACAAD5F92A91AF5A59A9C3
-EE4FAC04CCC9C31A2502D1C0A5D6D2D5BF4A8EEEEDE64A31CAA16A9A97FC2EDF
-8351236C48C7FE4DB3542ABBBA24504A9EE692560DF455334A6E894085CE8423
-94F78CDFF2B7BAC537FEDE02CE127249B9611439582656A2B75E4639893C8F43
-AA0079E72110293C16C632AC7903C2417FFABA1D72BE58B0F9149E0DBECBA0FE
-383EFD0FD763DF63724CBF81178551CB9BB20AF338C850BAAE023BFD4329C733
-6F32CFB740828CA5103D9D21C516627CF62190A508351417109B1A66A62EC7E6
-F548CBD76FFC807E96D7AF6D351A40918B98F7154DE4575C14BF6B4BDDBAFE68
-C93C9381374226DC40D718356B7E1808ABE73D01A6C8893AA8EB9190D5352692
-5A3E97636A20AB4B189875FCE9F90E765E724533B9EFBEB36FF59F47215C7E19
-0B2C9640B9B68FF3BA17D140090190B3432E37A7E2E166117E5B1BFE5A0D9F3F
-1ED0495B2726D032E13EA3CE9E4D8394BD3430A9E4272E6543DBE0257780BA5F
-906B58E3A49BB916FFFC7104EB414C051C74D099F5A1B634AFFE11E899F73378
-9CDC9034F6FBAD517387FFD58B348FFB610AD6F2720B080A2E3A61572DD7C663
-47D6E93DBD490CCDAF473476392030D9D8B956ADA8C791519E7A0210E922CADC
-60A6AE1CD3ECF6D95907126E8A6B7DE8A15CEAB085778F293F36AF1123F98F03
-C0FE62786155B9BF44D8D217D942927234BB6EBDFB23ABA5896C985D6811CA74
-8EB0D20448147DEF5D942EB6042C938C60E4E5D2BA7749F3B7ADEFF5F9352DDD
-160898B6BED1B1677399E0135299A17A31D19F570E7ED8503F02F70664297483
-A51A1CA586234088845CB1F99C6514B9E482E7CE579AAF24A74AF73C1F94E1D2
-9C1C00E91CBC973B990BDF1E11434B3FF37BB51BDC6AF411E7CE909FD6949FE5
-98B5838CA1FED715B1E246BAE174BA96FBD83111B3DF2905F1ABEDC3A1C00238
-0D01A2940E460C9861342221AF69B38088424BFD60F3A18859DF3A3BBA929ABB
-0DFB70C4A315CC737339A61EC41671C38874C228A5B6A6BD033DA7C83EEDE739
-B0EF4AEFDDFF6FB2697B1C22F5E38DF8E05068FF834BB27E579DBA1A4B8C452D
-F404B122A158F748316168C3CCAC210230C38C33BD38EC7A9863B4C6AEF35839
-D3C8029F0D14E51E121C68172D14968541E92EC404D85429D101DBCA73105A20
-C40A1046144532FF3010533E7EEEA503F5966785D1443C40772212480C86C9DF
-8989B703365F91BA7395FBF1EEEBDDA805BF7C996CA46631CBE40C5F92C5F455
-DC5761943DA6FFD099D3559DE18530F7FA759E7F2EA87BA82180FDB1D00FF21E
-D1091DCCFFE9728F8B97AC1E0ADD4798ED663643EE649DBE15FFE94CEAA7B860
-7131CCB1C05D93D3284E5311F485E64F1AABD4BA39A2E07BC7CF0021FB8C1F7F
-885E8FFE4FD4DDEBDCAAF4EC20D7EA3E1323DF8A5C7D1443DF7B4E8F4AAF71BE
-7AEEDC4B8B67D72FEE01675EC95C828E63E83E252D9CF63DB0D05BB057B39AF2
-432540FBBF3805F6BCFAB8691485A4D302FBDD8AFED7BAC7F163A5F7B71B627C
-D29B643D20497E9127CF799DD2D02A30D362964464ADCAE2C0C5FA92AFB7FD11
-CEAECE70291D6F6FAC915EFE01958BC43057D7B7B145DF5CE75C5CDCEA8B04A8
-572F0FB5586E6E235FA416DB9DE5BF236B465CDB08B27CDCFE02201D0FE09A0A
-FAEC3709579C643DC58065D6E49C0F4BAB3C9AE9FD4940C78F57D1959B3BCD31
-3C7DA587227C03E3BF8B66A3AAF3B8B2713A834CA8A796D7805554FF8AE86BD9
-A625AE7FA1E431C647640B4AC1718C054793ADC2FD296FDE66F31B6B1C43E014
-924D4C3770FA293C9B68CDE3B90A6E382A042B45E1767A47E890CF1AEF8DF011
-16B2FFE40153BE44269852E7A113D274CE18A6E432C8740A12AA9EC80BEA5504
-01313B92F997A6D65C69D157FB45DAA5C23176619CA3760E0CA75A67033FBE61
-6C74B7D88FC7DF1051FDD8064D41E81EE5CEF382270133833F93C270D3AC0AC8
-3CAC747391C22E4E89B720957530DDDD029A371C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR12 1.0
-% 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 (CMR12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR12 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 67 /C put
-dup 71 /G put
-dup 97 /a put
-dup 99 /c put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 117 /u put
-readonly def
-/FontBBox{-34 -251 988 750}readonly def
-/UniqueID 5000794 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
-68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
-3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
-59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
-51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
-DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
-AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
-45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
-821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
-96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
-9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
-26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
-140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
-1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
-1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
-377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
-0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
-5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
-ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
-FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB
-4370BA2C96960CE9E688231626B3CF1C23A31C5800D54F5BB64FC84D0C7D4998
-5288AF2722FE7A2629BF422D026F31E189E82C9A451AFF9A9C138164F0CCF315
-D76FD849BC98A74FBC93F09F9EDF85B13F8869F08699C6C90C58DD45CA958E34
-0DC970D40DFCF3FAB15BA18C1750261B02CE16097938C466291A55062345D8D6
-61F775EA958D3BE761207F828DDED3DF5DDF243C0A352B08B165D887245FC857
-2FBB64CBC928B34F2831ABD03C5CC0D29E0802F21B3BDE32E069E0DF9B54DD6B
-3D13D19BFAE271A6AFF16A8C697EB07C1432D59A2D2039E686028D3808009A17
-696738793896F91DE802D1B7509045B438CC7C62CEE684AAEC9214932EE9FDAC
-09A0A8914D22F5B469811DF488AF012A4C5EC81769698621D17B2D30EE858069
-49CA4A8061410FE24196ABBD37BA67A77E86A8B3B75D511353F42915D1314F1C
-65C7A16FD9523316061970F95DE693FB4DD6088EE2189C9DD4E22B2AD113FFAE
-37CA2695338CC2508BC52FF04F9A88367C10F60B09F24DA37AD881A150DF1017
-FE577A2B0CC891A38542F1CED14F6CF2C5FC980D459F6D1BAD15D6B952DF882E
-6076B5186F4B941069410E0ACAEFF0BF6431608163354082ED6D5B68021C0BD3
-C1F1B12CB7C7805BFC4A5A488920C77159011727EA004D11AC691AB11DC98FA9
-6EB7BCF534C4B4F8D6935FD970ECCB1C5B7196BAA1A9C75F0001194EE690A8DA
-23D328CF84C74A96F973BF202D851AA689BA7F0C99D3E2D9447BE0C2F6CCD2F4
-782652DAC900FA6AE01E9DC4AE0E539B155B24B1A67F85D5F96E1F51289CC943
-D4DBC0034E48481339A60639EDA2212916BC83EFD34D89A19FCFB720C231222B
-845551D438A20AC06DDF9A49E5FC89974A1336657390445FADA16744A094E7BB
-EE7079DAB01CC8A528B20DA4F20306F9EECBEDBB86636E8DF0C431575F551F95
-B2823EE823C0C8E02D94F50FCE3E6F7D2B1557D5B89F55297207F11D1547FC0E
-989107AF90947310EBD726F89BC1EFFC51B59449AA91F2F8F760995E5F388316
-6FBC13791D2828FED49E2E586943D7517395F9EE3CB99726D32853B7448D2834
-B02D7BEBF573AE4C1D887CB512F243FB16E4800567B0FE2C4A1E7B64B2B3501C
-B612926E9E880FA6E1FE15FA94DA7E1F1EEEDEF2303DC2DEEEE9BEEBF5FB4880
-82F6B6BCF38AAFCFC65062841C725D0B88D9761FEFF0BEE46B5D6B2C5A508D23
-AEF7D71F427F3339562A29FD432D70265238C4414A6D94BD13505148FBF3C8FA
-91FA94792E73082E619D946F9CD0A13B4D8DA14136901C04AEEF70105E4C3859
-28200013F68E11BACF8FD94CD56B69DCF855E83312E3B023276B941C778E9AA4
-B8CFE29C945151AA4E3BDF36E3CB06204EDD004B7CD3F6EBF3FF847D0018227B
-1206E3507554F062441A46BE726C97A1355CE7B053E7B1B4ABFA0C96E3E001B0
-BE07923F11E7D570FD350CB7C8E293A6C6CE7AE79E7F8309C95F80BB957A1AE2
-2A32E6A4F314540759A2AEDD0213E3D42D88344DCEE7B732432277DC8C734EC4
-6E7BB880539DDB8A687238E8403AAB5DF383216546B82825067CFF7FCC3E32A1
-B6A082734315B0506DD1060501FD87AE62CFB30BBAAA0260D9C875924EF68581
-A3A73771F84F6D7628D17291AA202CD744B8F394D3B7F619D0C4A2F791046EB0
-5B101501BCCBCD260F9BDE8BCE7A1E085E2B120ED9982841715260CE4B6BEC7A
-B26AE2794C53C7835112CCE3A057ED48E6FA05FF88D3C7F943FCAC35831A9258
-5A8FB6584BC3346A018E0B569992E6EBA31ACB9EC876495D3C0CE59A0A70DF62
-B9D056F2ABE55C47AB17C9BAD970CA3EF4403549803D9B5D83FFB46990A56BB5
-946CC09A4C89D0EBD31438788B19DF3B1EEC2AC9A426E21E3966A8A25069799F
-26A40EA6149DA6402F83FFA12774D942450668AFE2F771A41506FBC5839CFC5D
-F6100F7FAA6B04BB659729D463F3A3BECCC38F8D435BC168550E3C7E5B55A970
-05670D4D2EC83BCD057B8E3BAC3FE2A464EE17
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMB10 1.0
-% 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 (CMB10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMB10 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 39 /quoteright put
-dup 65 /A put
-dup 97 /a put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-readonly def
-/FontBBox{-62 -250 1011 750}readonly def
-/UniqueID 5000761 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
-A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
-99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
-2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
-C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
-00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
-B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
-BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
-8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
-FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
-31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
-2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
-9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
-EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
-69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
-CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
-87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8EA36BB6C
-87B9939DADA60888E78E14E626AE6717EFA40C50FB362A81EA3C4C5279819327
-CFC2ADF1D8DD65B2CDB9E3B5941E81AA802A5745A3A4148591AABDABF9A08F04
-66CBFE887F0FF82364F351928E7D4779E54A0FF53FD088E0FA50F3047F42AC28
-EC0AFE3DC1F380DA575D618D5CF337900631F57ED0A59EF0C84488FF48B79823
-47F34E75E63D07B10B9DE367258E80C6E5227B9F2BFB79E16AD1BFE9E6707199
-FD35D296B5BC55DEB7F9547A9898C608547C2BBEF1054AF18DECD8CCECE80B8A
-F52CCB190B0626BFBBF59C2E7AC15E8EF0E570610DF4053748E3C8555DD89D73
-942DBD8F1AC6072DFBF74FA57C65196AB859F0E6D4150AA7592E746AAC3E302E
-D406427CF7159AA524780548F603E7AA624E4EDE5870936D037618E92DBF02D3
-D1E9FEB1CF0DEA80D5646E4765991669488028A8B7B9DBECF8286FFE00FC06AE
-EDAE0ADC9E6394A2A330A3BA3E00BFFFCB8FBA98DD7605FE9D7AAFF070A3AE7B
-69593C8B6E0E9D10D1584F23CC19110073E5922B9CF0DD28E4C7D51BE7B76435
-AE678608B03EA7820962F3859970ABDCD860311B6E753FE843FA992C0BF910DC
-B86B86277FE91A964CD34E80E1AC3245CD004CC8BE7F0E704104271660A2C75C
-B9368D509994377616C0B966DB9A1E9FDE2F2D7C577047D6FEF9A79D538104A5
-0DF65A8BBDE8FAE9D3C64D9B4BF3C4E94366FDBA02DF99B7C527BE53D391E8E5
-F0BB566F8A42C4A92A3605C12B8808D657DC68E4F9BD58D26AC06B7E6C046224
-C349FE0EB80B822F171E27051C391B1EEB65E599FDF6076581AE5FD01B6DCBB6
-84A2ABD1E4B3045EFC6CCB27961E8FC6A3EC8FCC97BFB427B82A50098A907B82
-E6ADBD19894DFF74BC7B3798A06501F217811F12567E2F5431F8C3A82D4C5E94
-72A1B18C3CE4795FC1DEA4E7BDB127552F16E4BCABCFF2A574997BF2ED680B82
-8C310E717B81F3FD47906BA609A9833AA4AD9CC095EE3D1140A8126EE55A2278
-3F9FA28FBAA51AEF1691B39039C2D97EE2FC79FFE04ED5AF5921D20C560E4742
-ABA899568CD661FFFEE92D9E8802C2F75271D9D6BD7F5107CC3D03D8E21A40A5
-2F951C89EA84C8F742162989BCBB4FD74A8BB55CF6EF3B1AE5B6760951D5E2B6
-2DCEDC1F15CD0C99DB0E1FA9661EC43DF5DB9D1BFA117EA1CEE98153FDD636BC
-A38ABEA43C5D63BF895F9DE24CE6FBFB74224802BF2A24FCFD2FC8D38B0D0B83
-A8E631D1FA4F6F9B88C67A89B72C3934D6E759072602A05774FAF6C019440AD0
-5317137F3E70E51E3F0DC06262F9909EADF48417A46435076BEE48834C56D17D
-33D1442743D8E3F1733257A8C6BBEE9E5BF7089B28CB17222370714D6CBB4730
-C13BED5DA331A9ED85058910A8944DDB3862C7CAB2868D2D8C8C6B7DAE6705E2
-6F2E5BF45C43508FF638C23185B72E45A20B8F852AD6FB3F98E7B4A632B98B8E
-F49C4BEDF0F4D7701FBD00CA484AF80F5C0D07294E50167511107E75DBFB3175
-FBF983BA6D323D6E1AF9037341461A52F5FD775C9BE3B9A3DB9EA13E278910F1
-87CA56B76729B35336A7DA17265DBBE96C6B0D77AD2C47D4885785BA62C4CB90
-0C486E4DBBE774463897BC9D42007C5AA437FA216EA617659237DA625FD5373A
-335EFCD92D30D84996593F098847F73F1281AE13B97D7FBD19A9C819C4D00110
-BF6D100792D50E15042ED820BFED504744FD088855D37C4A4C3A12CA9344F981
-99DE37602B5F84EFE6452DB3B917D4F571B0E17C48586FC2DAB4481C0F495920
-36A22B2422D232FB3B69D1B77A316A59FD69E4890D74AB4FF9D45657C074664F
-7D0DB216E611F18E2184650ACC94B63C47F14263F522F0869A8BB19599E97058
-8C73C56CF2FFFB2F81D0D128E6C5E90DFB0BACE596E0B27903433DE9EE40179C
-6153768280762BDBCD0E6BD9B3C715E0A150677BE056BFD51DBF5A624F618E7A
-0729AEA869E2079FC2F969DAAE9D32FA705D24AB4D69FCE6678E2B8B7012B5F6
-F5449C2163726624B49CFD0051D7CB552C30F0986E6FDDED2E90F9BDD39F4072
-1263CEA8AC5855D02F651B79C10593507AB630CAA3D0998CD6B0972BEA297DA2
-B7D9EC25296EA7F59925E53F503BDCE2A0AFC64C1A64A29D5160E6B08C71909D
-E297A5CB5A398D7EBB12AAA01D300C70073B39ECD3CE3940DED4F491A872F628
-8BF40EE2F085DF947A28797FB7CA7FEE0C6981C89CC68F322B5E83DACDEEAAED
-66DA926386FF6BBF82109967BD427308F40DDC79ED73DDD5849EBD609DAD4C5F
-719B2D04EB9D04DBF27B40769677188D7670968E5AA3BCED8E5DAE6C201BB7EF
-1621301F49D649C948B916390BBB47CA60D0C3F7CF888DEA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 40 /parenleft put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 63 /question put
-dup 71 /G put
-dup 83 /S put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
-C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
-4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
-12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
-86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
-88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
-62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
-71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
-4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
-63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
-D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
-702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
-4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC2584632973B223E128481FFD5458C
-1D90E5BA815DE9239AED29DBC31C66502FBF95B1BEB72174CDDC64B1A18AB3A8
-18395976ECCDADD00E05ADED05A1116A6B1EA4A21980C0EA58C48022AF810634
-3F540BE1E0857C0316572E489C72557EC92C0811E0A86655F86011EC26234DF2
-33A0F99927AEFD354AFA3929E73C4D1CDCA3D89425D84DEC9D394D8CB277E568
-E7F8A54E3A00B6969C792BDC7A0D1E4C58D0792CB7850C8C6A9A85446484C39D
-C755D1231C42608FEFDA72002F63C15E2FBE3B7E9402112C543CB8289EDEEF63
-D31EE112BB33C63DA84F73215EE783B9D9F0FAEBD7C1949AF55F58703AD93DD9
-AD543DDB096C1F197CE7EC8BBCDCC76A00A5A9E6F2AF056C92481EDE53F52CFF
-8E830A8B6CB970065A8D8687F196E32B8F9F3F2B3C6670983929A77AA2E15AA2
-6DB6EE65CD38A2A8207ECD3A4447F436D0EF0B9445FCF1712D34CDD4ADC9A275
-AEEF2B2CF35CBE6F49B8544DBB38CCE0A32AE15BE2EB7F51E77BEB0C63674424
-EB0486D0912BE4D6ECB15BC2F5CCBD793C0758046FA7BD6C7F957BF96A8EC794
-171CA15FD9F75DB00760188776BE43A48CDBD659E4E66571045A39F49468EE25
-80BD580B907324BF32FF93671E567EFA2D8E0BF3744798A06C247EA4FD65BEE7
-BE9989EAF5B8E198E8F937133E3A8AE287A8DF0E010638ABD9D0BA0A589332D9
-76A126F13D8842E1174019BF663CA592759C4669B1AB0F9667A3AD0C9C310C62
-E2FC83A5EEDF20A3BA66E2ACB093B0F01C0C54EBB878B4CB678A2032B783D236
-C7FA32E2B134B36850379B1F747F1354E70EE251DF57B99FC7FCFFA00BA15340
-AD91C35F48162911D538BDFAD841D6995BEBF07B96D88547B6286D3145E237AB
-6C097A0A612998946401FBAA92A0841A6FCF4678D8481CF415C9BA8C3245B61B
-D829F2B709BC63D7E8C1C032426D1D36BE103A82B0467C6B1DA7CCF7811143DF
-10349AB0D587587E7965230D82421B41C33B8326BFEE60EEA6B1D66C49DC8B72
-74742D9947C3B049D630377A9ACCAF46FA262064E1BA6E861CAC7CB75A259398
-4EE4872F0D120E85F6C9015A3F4EEB5DFA7E450ECC2261752438425907484021
-5B2F86BDBD569EA57802F421CF273A0409A56C76F551B2F60D845C4AD9530EAD
-21DC805903922C8B1555C690DB54D28E029CB67AB023E617CD9782F8C385ABDA
-D3CE300FEF213422266C4A6328536B67697DEF9298F83B14AF554F52A675E0E1
-0E08576368321BF31F96391A6CAF3E30D6E887D74DC1B1A4F144DB945AA53144
-3D1C53E9DCF6CD6026D2AA1213B92473235DE61A6EF0A355CE4B9E7E91F59562
-953253A41B658B9A368A6CDCE3F9AA5BF034BF3C16B9C2ADD26651799CEF4952
-E85131F539A0729F2CA8690E935B074B202241F06EC07BF6141D188FCE7026B4
-66A5431CC867B6892460D8108F2F07C9FB0082EFEF87FAC7710AD0368D54D25E
-49CE016F8996181E4F34DFF29D8E897B239C67FDA93FBE739D85AC448B58B60E
-87AD878A34FC239E53FC43402AECF4F56FA8C4A0DBB40E5F5566424482ED3A8C
-97C5B6CE362A2A2BB7C6EC8DC4D4ADE9F6477E52960EFD6EABDAEBE710A8CF10
-5F2DECAAC2B970F5D3D039FD7728A784F3CDBED6393A42FDF06E7FAB889D5247
-8CF1696852E057F28D75B553496F0DFE7E38207C0C4BBA87AA3EC796B7870AF0
-F66EE303428DB37A919F6D4294657A0069B5A4654A5D86AC2652BAA95C11D1DA
-60C8B4F8E9F2B629F5A403C207C4521E3B7FBD24DFE37E30E8A8A7DEEFFACB23
-5A567A89F43B4F4D28307D573C9AC5A8DB3F61F1BF1347B3D49839B935BE0671
-9AD4EA0D75430F5B609C8F747321C19ADF63A1CFCB0C733954A9207DFD99193D
-6A1C8181C6C438B6AF057E21AFAD19F31B962B356F1AD271E6F7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 45 /hyphen put
-dup 46 /period put
-dup 50 /two put
-dup 52 /four put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 83 /S put
-dup 90 /Z put
-dup 92 /backslash put
-dup 129 /Aogonek put
-dup 131 /Ccaron put
-dup 138 /Lslash put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-dup 197 /Aring put
-dup 200 /Egrave put
-dup 202 /Ecircumflex put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB9685462A8D186BFB195D91EE1109A9CB8BA9FE46114B4834595CA6973C
-7B5548E265972854CB21F9A13E3D8547644471145C0A7B7A6792298C740DB643
-56C099DFC3C658095EFFDB41A137F739897DDC9F0BD87094ED2C21EC501CB243
-B9A75B978F399215FE2EA1DD52681513E5040B6FE8E50B513F3F5827652A0C50
-594BC927681A4B85236136C4A980A62CA1E3B89862EE64378E0F255B34CCA86D
-B877F95E2DE6AFD3DCDF7EEC40BFA23C3E7271BEF2C4552F49F59D629E51B8B4
-E7417B181BC8D460EB6518910AD4722CB9562A9BF80002A91F4A251DFF1C031A
-6806D1C498581E9A00F39FA8E1AD778FA855337127C6068B9C7924ED590063A5
-4E4F941E744568F5488964D6B122E008C4BFA9DB26BAADFA11D7B81B16245C8C
-F04EEA395CC080171DB42A817743226635A3A3DEF727056EBCF0C77692190E41
-BDCED59FE781DABA153624E7B1C8ED1FBE5EC358BFD2DD3C150EA2DA8179B45F
-8D09D1F687437A337643CBDF9A16487327DC3C2D168C150982215B6DA065A4EB
-6E539DBFEB15B3836BDB5E8A19FD01D984C301239B6DFF467CA850631779F7B2
-329937C757244B1E80EBC5098C3C5604D0F3C6B770ADA4AABD72C2110E9C6E72
-4CC33E25518FAD3E211EB59728E316C326E16CBA7735B57748AA42EC8C43CE8F
-FC9D1AEB17D8962C9926BDAD1AD4AF852F335A9B6EDE657419792C008F42B604
-C3343DCF7FF63218743DCB29FDCD3A079BE95A6FC8AD660D65DE290EAEA4A0A9
-F78170889394B3C9F73E00067289D8BA8D6EFE55742F76FA4A3F1D73D3F7D5DF
-D75E50D5832B28701C81C143F623AE15FF2AB2E20C666F3F2E183B6F14560830
-4C84B6D6F5045EC8E3E61244856C0EF1162F9E231DEC58275F977DCC558E820D
-AB918FCB9EBA14713CDB2DD0E54BE4F2FFA915DB590EF21EE2C1B69F6F554B83
-BE133269E798BD2E4883EB6D6701D9BD11323EAFEFC1801FCBACF0CF8B8F8EEB
-EE82D396F2A3B3A73860BCCC022BF75EE12D20959A5997470888384710FC7DAF
-01580CE9925712FB15486A51F72C9C2D4E2B0DB1E5A1B3E86C1E9EC0199F7454
-8D1C9A49D9C766033200FD0BDAE4E800FD6533C379036925E9D9D9E6C1213988
-B2899461AFB63550F2A7E0DCF66CDAD1CA6836E9039D008984D6864E5D964CE7
-8022D710BCBFEE6A59B9B34DA0CB1E323813309CB7015A2E9DD9CD3CB4F2E86E
-3DBE1096A3E901FC2EC5EB593C89F4FCF8F01C784A266DFA0579EAA5A7F4E7CA
-50F4A12C26EAB09A63470DC0CACC9D5B98ECA75CE333C1F6ACF79B6EF88FE126
-95EC06F1332A1865EAF1316BFAADBA913556F35DECF6FAB4303B76D12F0E2350
-45B8626D4F48D7FCFA6D64F94E591CED467A817D4B14BE110E7090BB6DBC7C73
-385184FAE53EE1785D4B928C2D3C21A04A8232D0A84D7A992A2690F33B98EB48
-DEC7B9BD9FFAFC04E4E70BBEE71CA2686BAB8454D5CFDC8D56EC8A9373E5B354
-990DD4AE5DD1E1D8F889E679AB5E5611F3ADCEB7A9FFA31823B580081B223542
-0FD6E15BBF3D47D3E9289B5F4B610CD07DCC76866B2A25B47130F24167D8C3F2
-F91D8423B46D64DA82AD74FC365DEA4DAD6F272745D68529772DD689CFEA6042
-7A85D710E0C35F5B503B3278946AAA7D1D5278744DF2B9B254C074CF99003F15
-57B7979B9C7E61656FE6D00F3E871684AF08EE786E22A19579F2BFE1C5D08D94
-FD1D2A9B7D11AFA6EDB8194DDA6901D7CD0B50974D0CC24CEB074C40D4363B4E
-68146A833AE22AEF0DA100357050D8DDC725E7A893DAB1AC07C4E38456787364
-89BE5C0400BC295EE9504E97C3023B6729331CEAC20E2292ED625D30ECCE324B
-58941E79BD830362C3A2A2F63DDB7E2CDA94DF2AC0F91C0CA120F700432D751D
-9D3FE51D9D7EC0B9B914DB5485C187CC7A95A4192331018562E8798B7FD14C48
-BC09477CC35F855D4A16FA09ADD2A566538E4529F4CFC1AC58DCAB048D5E2D67
-7742AC7130538C071F896A4E2087D273D71EC87EC61B9A5FB73862BA7CA57CC2
-CB5D9252A089A8312CF5A686C9002A805F8FC7D034E7A0385A33645A63B74620
-103535381525D7E90F5CF1E1677C4B945D3C077974B769505E0704E07139CABA
-9B6630F6D21EFF4085B9D23E09872EF3CB9574B9673470BA040A32D6AAA66F72
-130A6F44BF1BD0DC620109C103595819FA81AA13063AFD011F4D2028266551CA
-9AFD20CC6280A290087C0E37C7470D59A23A0B2537A3663ABB526CB6FF04734F
-F41B5F9B43E7465251C8A75D07E77A5C387D91D8D5AC3F293E1C65E8D4624072
-55E9A11A36CDCA286E2877E89FCBCDEDBB49FA0E002C8EC33208485FE7AF3543
-AF6DA7D771D8F597B4EA7652A25257962F5FE182D7AAF823A8E89B5F3159A6AE
-AC3CB9930DAC7311423D447243A4C78C216D1128A94FCFAABCBCB88D84ABEDF3
-E31A6447AB94F374F8AC31DC051A2BDAE241C11E604CE1F3D1F8A23493071A0C
-E71F68BD86D3B1983944D97BEB31B458F642F834B7A7A869CD18F9F9B79C883B
-2B91FB1BA8F71112547A7D7D9D2F7EE52F5DB930CC7B6D0B78C031DD50549F70
-0C21F74EFF50C9BC76F115054D8B91AC9480DAFAE67331D7D4521240C113BCAD
-E6383F30E957DC259A2B258B6AC96B24AB89D86A46886113A8970B40252EB8C2
-60BA8F921197C488C7CE6639C904312EA22508105EBA7B26F5153A4A9C6CE061
-1606F965A610A2CA59A5B4B84A9D2810F32EB3813FBF9946AD4B43AF011E56B1
-1C7BC7D64D06EC98073D64F834F60310DC880DD87C63BB36AA2B2E2458A6DEE4
-2F7F0061427661BD2F495FF69F23485A2064D92586DBF6821B8BF18E6294E2B5
-3E999BF796F25984B4624E705CE53F869E6A665C22A2270ABB03D5A706E3B5BB
-FCCA5CF090EBC1E53A69F1ECE5875892D7FBA6A727F2CB24A46A139E7BD165F9
-DCF14293A62B78AE97AE9CA76C2038AE8640C219C6D2446859F237F8B871F433
-F7E98BA78C2B52608302D9988C52B0719647715672C9C877B7E4F261A429E2DB
-7FD30FB8A5681BFFDADF38DF5F540BFDBCBC68B3731F75511339705F2B882666
-CA282472D3D35DDB471B77E854F5876E2A41C63D31AEA592479D4BB8B31C6416
-5ED45222F39960CFC268198EFA04375387505247D09E986A9902820D72983925
-9713A5F51460211A17CCFC09188158AE2D823315A38F22882BAC40518720D034
-976CAA557E963A39B4715EF762CEB6A026E523F6212384716FF3E90C10298B47
-2AF7539E7E11815631124EF302E84EC639BD4EA95893D3590BCFF1D1125F6415
-9A7DD06067B9FCD7174736A57F1F11F8AC40BE09C8E3760C353120CB155F93F1
-84FC7DAEE9D12FDE3B37F6BE5F347D6CF026AE3FC17A8CDBB183E2373E4626A1
-6E980E2D52E0C17A76B8E42FB48329039C68638916020A8EDC659EBF0233B5AA
-D866EACC35D756882837027C69AF03B5103CE9223B9D6EA655D50F204C3F7277
-2E6DE152B244DB2F44CB088236A31CC9100531A62380C2BE607A1C170FEB4EAF
-0C3D1AEFCAFDC120FF4C851DDAC857CDBB78521A97C91B7417B92B9CD541D98F
-100A6C501E0A57DE9BE6F6B5217644F8855384A09BC0AF8668EC2E50DE63123F
-85316B1F9F215FE93F2A9BD2F9EDBE2FAC02A4FE47E81007CD148BB5D4E86241
-AB753C3221CF4744AEE68E5CF929269A0626A61EA1ED78BFB6343488EFCBE1B9
-77EC4CC4680AF3CC4323F9CC2B62339B839947E1E27B831EA0A8B4ABE1A402AC
-E92CDA9B9ACC156A073647F498E6288251B27B781C476A196840998C1F47473E
-C4C62D25B1ED56BCF537451642253CD69772FFCA61972A2CBAEB2576D1E0F8C5
-424FE2B3DBC0742B35F3BCC49112BA83C7D648D109C9D48182213F1B48224627
-B7762296902229C264B1C0AF9A99702A8D11CE809CC2E4642E75FF143F980BA3
-91DD9EF780B92A7377F932E280F44CBD0A30AC10E0ED4AD82E3DFF6185BCE800
-C064EED575F8C7A0F18B2393C3ABA2BE74DBCC42B627C72EF5D354BDA1425FF6
-58B698F37B7B59226CBC34EC86D24AB4FE5D3A51A2AA1010508D9251DA6778E9
-48D28B8F613D10CD545A4CB32ACE352C0EB9D18834E09B75A2A14E00DFD63294
-8DC202C0490E2B44BD08F8EFC3D60C733B6908467783997CE8BC6B8AA4D69FD5
-055351F7123E9E3F3264DA88E92C5E780199559258BDDA7CD4A1AD4CACBEB2E1
-DD7FC79766F0ACD89F8E85F1C64B0804CCA22BDE79F5C29D8E74DEF849C1DFFF
-95D2215212513CEA6F2C00C6B9B53A0DD1602A4DBB136BFBA5E8A9C1D5460FE7
-C7E75AEB19A58643F81E3C919AB6DBDCBC8D5A6D7D19B17B52371E4712A89839
-4EAD3511F8967789B89DF60E196CF6FBB84D9F7157923AF29EBB029D4988747C
-E94A7F108E1F356E29AB1C0B2BACE005E1D9D45053341A995E2F3F749919111F
-9718
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 67 /C put
-dup 83 /S put
-dup 97 /a put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
-E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
-BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
-72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
-5EE89221BFD28AE8117B69C0EDD6A58ACDDAE1AF77CC8602B0803A063A78E590
-6228BEAD4031FF82DF1C414753313B1CE7A0FEF2546F18F026DB52C7B9D56FA9
-23145E410B55F2655D12AF85D3291DAE7E838BDFA9A27F61407B392A4FBEED5E
-13E9176E7D52E4560C2FED71C6F18977226B49C37DDEEE11AAA4C46FB141884E
-934DBB9595C82C9FDB8E6C8C4D6A223490D0AEA24EDDE28E6D64F7ECEE30F0C2
-EA32F09B32CC34C36090E5896EC05400FD932A5DE6D44840E453F70AE55A0A09
-9146720A839B0CCDC4905B7C138792A09C7BE08D9FBC35566A70C5485ACC6988
-E11F60FC89F391E7AEE3D61FD567E6C4C2525D7F05A3B2C05CD88821862ADC60
-B9F25AC90893F79C4D1BD69AEC40E2FF06F0F32258E705E65D98A4770EE07815
-F797C2674BFE0B7A3B73A688930A9B6DBEF337D4942F98CB509A10544664C418
-47BF2D9FC9A6E07701488BDBF8AE664F40DAAC18009EF4059E9EC0938F4B65D0
-252C92989C09FA3061AEFE5C9C70A03744EBC1611583BAE9C0A3B2A937C26AFC
-9D6E889616B63DE1BADBD472DB792B10985737ACF5AB54CDD888E11C369EEB5B
-70A6F9F90FFE8BB6D869B2E73975E27C799EB04AAD217C1E9FB5C370FF95D282
-33FF883BB8FF49402A7C5B7EB5D4D4B92E4473E2BD66F6E8C97420B2B4895806
-0EF5F860E80248FC251EC656BE08757E9CBB69EDA5482C95B1B2A9DCB2E0DA3B
-88FEAE4D89D8D0C76B8843BDDDB1083500E68E2B1759B4C6B88009240160DF4D
-A93CDAF97714B8F7316834CDCE52194E8DEB837AF42FE7732D236DA764C37750
-A0512EA79E41972BFDB345E48906BFBD65B52CBB4BB2488825AC42FEDF0DC62D
-51A7EEF82E5E5D210CA341F0341116EC0E30E639289584EE4267EDC27BC77BD2
-3BDC306EEC0220F4F2EF8A2692FE0A72486FCD2BEB81968807E082F3783D7101
-861AA446FC0D31C6E327721D38F0B033901B72532528F6E0BD824DA390315E07
-B547182C8C9C7FCA3704E8CFBBEFD2755C288602B31576376C172FB8FC99F9A7
-4F34CBC57ACA336C94A0DE922957BDCC3D95D7EB62F68A58CC23DFBEEF48768A
-48A5BE9AAAEFE1929D0662229431677C713C631DFAFF8D39CE04B4A7C36FEE5D
-CF506D9407ADBB50E30C7E92E9C3E41F72C9A3C47FB0F1247E493BD3DFE81CD0
-E85B3634F20D53B49B161B042EBBA935C0E0A6AB565ED44E44B2843E581D53E0
-83D099E0A7FF88B0C9002A84172FA6D6BD9ED95E167FEF868207B7895C5F18E5
-81CD8AA7E1260E2CA141F5C6B78DD8D745A3A9EEA2B3825CA8E53827C51D3BFE
-9F6604951244FF5B09E9C6D2A3167E202F3EF55CD74E31796481931EEFB7DC43
-3EF68519F7648E007682208E87F41916555261748F6CD6BA8BA548C482E88A60
-53BF3E0AFF2E3BBDAF3522F1B41A81FB3BFE26B4584C8E32AA147C917C3822DB
-BDC91E06E7E46DBACC29FD6190C4F294D8DB9A9471BCC6BDA32C71C13C48DAC8
-AE3D3F144294904FF608058F0B543A2DE3186AB08A3D930C529F7E848F71BCD6
-104CF90D1828E1361A9487C23A80EFB9261573B9F234B0B43BCD35EEB3F6B0B3
-0909C29884F801D005A1026658E2893D3F4DC5C5C69671F759DC0F315738275D
-FF02FC8AF9EE50C8705DD1E7761EAE3618345A611558810C0C8F14285D5E4D32
-9F74E994984F77293882016123463DD07C43E0D66FC05AD4DB9F1AE0FC67FBA9
-C908B5A2AEC5123590D79092BB6041A65D70A5B8A374E7EBBB31B97CA1076F2D
-AEF0C22D77E79A16064C2265CC78089DC98452E95E613A89714B52180C4B4AFD
-838877ECA6DBEF3CC7D20D1EEDE3929E3F94B6A63718DB669427B91CB2803886
-08DE53D1D22FD62C1A7EEAD41FC68759FC8A54BBD929E1E191F1CC18309AD684
-C9C51D1A7252C03BA4E1942289E536F4E191C0051E20235FF8EE23438BD00C5E
-27CE47EB4E4DCEC5BEAFFA95984B177C0EA5D1A64F75D746840A597A0B477BDE
-63C3EF3C4E1879B2C052D923428B003811AEB03FEF3B7C8D86F1E51394ED55DD
-14F3F9EF169F5509BAD5C9DB99FCBC458D7037A46CAC664064763210A0D43ABB
-CFC0A9C8B3ABBCE0B75A6B80CF500EFD043CB0955D959B5C417376A576447E7B
-E076D4D1BD4A36693174A43A34771A2EF4A089FB0CE8EB0E285E19824049AABF
-161FD0E98A55E0037D7FD4C811926623756E0E1F3AE388F299567065BC55D7BE
-6FFB5907015CAE18E4E2C86F9F99B77CB3159B46E1A61A558969D621714D303A
-41DCBEECD2D97F216AEAC845C4A45BE9AF143827715A1FE671847EE2F8DF2EDE
-5F89D890CA410D0614A3A0349D4173E50EE0F4D97521CB974E2DDEA9073D77C4
-DF49EBC8F2B26243020F9F619D4BA0984BC74BCCA2C9465AC2642896E817C076
-52891681283D056DFCA9157458A4D18396BF0AF34B7926CDBE1066213E111126
-5A7FA968596D73A578EEB21E4F84A8177757F63DB6A8D969D605D073C0381E14
-DDCFD706CC6ECF3BD35AA8C751DBFE15E52586D0953506F5A1049F072612E814
-01D3376BFFCDD837B7AC2F97D1A2291FB1DA5C1E7B1045388CC8FC9625ECE3A8
-8ADD7641265C805C4605C0459005265339F3E488BCFC3444ED6069FCECD621CA
-6483EE193B1FD0EAA7B8527DE12825F4CDA3A2539D89ED8D07454A08F6709FCC
-E6E2A69DE1A16232E7303A0D3BEA6DC655BB977A09A301D875A8DA34AB354552
-F1148892767A1CFF8DEE1593F7A40BFD77A047C9B3A25890984FCF189E80A748
-1A7B79EA99649053B3A8B3FB1116524C8439589C3030AB7875CCA1ED6738CCEA
-0852662239E33797AAA0519540A17CEB94124D499F06219B7AF2F410AABFEFA5
-86BFF51D4622AA5D7873C77E016AD925E5D4B2431D8423BC9D56000F7B61DFA5
-46637C42EF5160CC4C1DB7E0C24C604579B34F8C063E011E0FD306A7AB3B23ED
-7163FA717AEF2908F657EB8AE94ECF91
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 160 /abreve put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
-EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
-3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
-B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
-16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
-DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
-A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
-DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
-710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
-D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
-19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
-852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-TeXDict begin 39158280 55380996 1000 2540 2540 (imp.dvi)
-@start /Fa 206[163 163 48[{}2 316.314 /CMR9 rf /Fb 161[351
-137 36[176 176 176 176 176 176 176 176 176 48[{}11 351.46
-/CMMI10 rf /Fc 132[176 5[195 137 139 138 185 195 176
-195 293 98 2[98 195 176 107 156 195 156 195 176 12[254
-2[273 239 14[264 6[98 1[176 176 176 176 3[176 176 1[98
-117 98 2[137 137 98 19[176 176 18[{}39 351.46 /CMR10
-rf /Fd 138[229 5[206 229 1[115 2[115 5[184 1[206 25[324
-3[298 67[{}9 421.752 /CMR12 rf /Fe 141[312 1[405 364
-405 607 202 2[202 3[340 3[354 31[551 25[202 39[{}11 728.927
-/CMB10 rf /Ff 59[1125 112[281 11[450 7[0 8[169 1[169
-1[169 9[0 30[0 0 0 6[0{}12 562.336 /TeXMUSIX16-Regular
-rf /Fg 53[1125 1[281 2[2249 1125 562 56[1125 6[562 1[141
-36[158 1[158 6[351 9[562 1[562 7[0 0 9[211 1[211 3[0
-0 3[0 0 30[0 0 0 6[0{}25 702.92 /TeXMUSIX20-Regular rf
-/Fh 138[189 117 1[148 1[180 180 198 4[108 7[180 13[198
-15[251 67[{}10 351.46 /CMTI10 rf /Fi 95[0 160[{}1 702.92
-/TeXMUSIXSPX-Regular rf end
-TeXDict begin
-a4
- end
-TeXDict begin 1 0 bop 323 5395 16765 15 v 323 5571 V
-323 5747 V 323 5923 V 323 6098 V 323 3779 V 323 3919
-V 323 4060 V 323 4201 V 323 4341 V 323 1670 V 323 1846
-V 323 2021 V 323 2197 V 323 2373 V 323 6098 15 4436 v
-323 4949 a Fi(\240)-1552 5860 y Fh(Continuo)-1465 2135
-y(Sopr)-18 b(ano)323 5564 y Fg(I)375 4193 y Ff(G)323
-2190 y Fg(G)903 5916 y(2)906 4053 y Ff(2)903 2014 y Fg(2)1131
-5740 y(S)1131 4053 y Ff(S)1131 2014 y Fg(S)4257 -283
-y Fe(Amor)243 b(l'ali)i(m'imp)20 b(enna)14515 363 y Fd(Giulio)138
-b(Caccini)15232 784 y Fc(\(1550{1618\))2032 5564 y Fg(\011)p
-1990 4482 296 15 v 1991 4622 V 2034 4615 a Ff(\011)p
-1992 4482 V 2035 4475 a(\011)2032 4264 y(\011)2006 3078
-y Fc(A)2032 2278 y Fg(\011)p 4547 6091 15 703 v 4547
-5388 15 1617 v 4547 2366 15 703 v 5037 6531 a(Z)p 5005
-6354 15 615 v 5006 5740 a(\010)5005 4404 y Ff(\010)p
-4963 4482 254 15 v 4964 4622 V 5007 4948 15 545 v 5008
-4615 a(\010)p 5167 4264 15 492 v 5006 4264 a(\010)2845
-3078 y Fc(-)1153 b(-)576 b(mor)p 5209 2278 15 615 v 5006
-2278 a Fg(\010)6814 6619 y Fc(6)p 6986 6003 V 6783 6003
-a Fg(\010)p 6740 4482 254 15 v 6741 4622 V 6742 4763
-V 6785 4756 a Ff(\010)p 6743 4482 V 6786 5089 15 615
-v 6787 4475 a(\010)p 6944 4264 15 492 v 6783 4264 a(\007)p
-8202 4334 V 8041 4334 a(\007)6906 2419 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.50002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (106.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 6906 2419 a
-6783 3078 a Fc(l'a)p 6986 2278 15 615 v 6783 2278 a Fg(\010)p
-9297 6091 15 703 v 9297 5388 15 1617 v 9297 2366 15 703
-v 9960 5916 15 615 v 9757 5916 a(\010)p 9714 4482 254
-15 v 9715 4622 V 9716 4763 V 9759 4756 a Ff(\010)p 9717
-4482 V 9760 5089 15 545 v 9761 4545 a(\010)p 9917 4404
-15 492 v 9756 4404 a(\007\000)9861 2278 y
- slur@Dict begin (2.5pt) GD S0hgt (2.5pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 9861 2278 a
-9861 2278 a
- end
- 9861 2278 a 9960 2278 15 615 v -104 w Fg(\007)p
-12063 4334 15 457 v 12064 4334 a Ff(\()-162 b(\007)7740
-3078 y Fc(-)1172 b(-)g(-)586 b(li)p 11217 2278 15 572
-v 11218 2278 a Fg(\()-204 b(\007)11617 3078 y Fc(m'im)p
-12106 2190 V 12107 2190 a Fg(\()g(\007)12822 6619 y Fc(6)p
-12994 6003 15 615 v 12791 6003 a Fg(\010)p 12748 4482
-254 15 v -1528 x Ff(\010)p 12749 4482 V 12750 4622 V
-12751 4763 V 12794 5089 15 615 v 12795 4756 a(\010)p
-12952 4264 15 492 v 12791 4264 a(\007\000)12535 3078
-y Fc(-)138 b(p)10 b(en)p 12790 2717 15 616 v 12791 2102
-a Fg(\007)p 13417 2717 15 703 v 13418 2014 a(\007)p 14043
-2717 15 791 v 14044 1927 a(\007)p 12790 2628 1894 85
-v 12790 2759 V 14670 2717 15 703 v 14671 2014 a(\007)p
-16346 4334 15 457 v 16347 4334 a Ff(\()-162 b(\007)p
-15500 2102 15 572 v 15297 2102 a Fg(\007)15501 1531 y(\303)15833
-1548 y(\303)p 16389 2190 15 615 v 16186 2190 a(\007)p
-17073 6091 15 703 v 17073 5388 15 1617 v 17073 2366 15
-703 v 13912 3078 a Fc(-)1129 b(-)h(-)17087 6091 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087
-6091 a -1540 11092 18628 15 v -1540 11268 V -1540 11443
-V -1540 11619 V -1540 11795 V -1540 9475 V -1540 9616
-V -1540 9756 V -1540 9897 V -1540 10037 V -1540 7366
-V -1540 7542 V -1540 7718 V -1540 7894 V -1540 8069 V
--1540 11795 15 4436 v -1628 7052 a Fb(4)-1540 10645 y
-Fi(\240)-1540 11261 y Fg(I)-1487 9890 y Ff(G)-1540 7887
-y Fg(G)-960 11612 y(2)-957 9749 y Ff(2)-960 7711 y Fg(2)-294
-12315 y Fc(7)p -326 12050 15 615 v -325 11436 a Fg(\010)p
--368 10178 254 15 v -367 10319 V -366 10459 V -323 10452
-a Ff(\010)-323 10382 y(\000)p -365 10178 V -322 10785
-15 615 v -321 10171 a(\010)-321 10101 y(\000)-174 b(\011)p
--122 7974 15 572 v -325 7974 a Fg(\007\000)661 7496 y(\201)738
-7492 y(\201)-122 7403 y(\203)316 7381 y(\203)p 872 7887
-15 533 v 669 7887 a(\007)p 1444 7974 15 572 v 1241 7974
-a(\007)1445 7403 y(\203)1700 7391 y(\203)p 2255 7887
-15 524 v 2052 7887 a(\007)2894 12315 y Fc(7)2986 11296
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.00002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 2986 11296 a 2863 12050 15 615 v 2864 11436 a Fg(\007)p
-3067 7799 15 616 v -3637 x(\007)3558 8027 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (0.99998pt) GD N /S1brk
-S1hgt (2.5pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (106.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 1 N end
- 3558 8027
-a 3068 7358 580 85 v 3639 7887 15 703 v 3436 7887 a Fg(\007)4112
-7887 y
- slur@Dict begin (2.5pt) GD S1hgt (5.0pt) GD 1.6 (2.5pt) GD M S1dir
-M A S1x1 S1y1 CP (4.00002pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 4112 7887 a 4112 7887 a
- end
- 4112 7887 a 3067 7226
-1152 85 v 4211 7887 15 703 v -104 w Fg(\007)4692 12227
-y(\\)4850 12315 y Fc(6)4923 11436 y
- slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 4923 11436 a 4923
-11436 a
- end
- 4923 11436 a 4818 12050 15 615 v -104 w Fg(\007)4649
-10241 y Ff(6)p 4776 10178 254 15 v 1 w(\007)p 4777 10178
-V 4778 10319 V 4821 10715 15 474 v 4822 10382 a(\007)p
-5022 7799 15 616 v 4819 7799 a Fg(\007)5513 8115 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.50002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (106.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 5513
-8115 a 5023 7358 580 85 v 5594 7974 15 791 v 5391 7974
-a Fg(\007)6068 7974 y
- slur@Dict begin (2.5pt) GD S0hgt (2.5pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 6068 7974 a 6068 7974 a
- end
- 6068 7974
-a 5022 7226 1152 85 v 6166 7974 15 791 v -105 w Fg(\007)p
-6773 11788 15 703 v 6773 11085 15 1617 v 6773 8062 15
-703 v 7397 11524 15 615 v 7194 11524 a(\010)p 7151 10178
-254 15 v 7152 10319 V 7195 10382 a Ff(\010)p 7153 10178
-V 7196 10715 15 545 v 7197 10171 a(\010)p 7355 10030
-15 492 v 7194 10030 a(\010)-141 8774 y Fc(-)1183 b(-)f(-)g(-)h(-)f(-)
-591 b(na.)p 7397 7887 15 615 v 7194 7887 a Fg(\010)p
-9020 11524 V 8817 11524 a(\010)p 8774 10178 254 15 v
--1353 x Ff(\010)p 8817 10531 15 501 v 8818 10030 a(\010)p
-8978 9890 15 492 v 8817 9890 a(\010)8816 8062 y Fg(>)9938
-8774 y Fc(A)p 10168 7887 15 572 v 10169 7887 a Fg(\()-204
-b(\007)10331 8774 y Fc(-)130 b(mor)p 10979 7887 V 10980
-7887 a Fg(\()-204 b(\007)p 11587 11788 15 703 v 11587
-11085 15 1617 v 11587 8062 15 703 v 12038 12227 a(Z)p
-12210 11788 15 615 v 12007 11788 a(\010)p 14506 11788
-V 2296 w(\010)p 11838 10328 15 439 v 11839 9890 a Ff(\010)p
-14260 10178 254 15 v 14303 10241 a(\010)p 14303 10574
-15 474 v 14304 10101 a(\010)-2298 b(\007)p 12168 10101
-15 843 v 12007 9749 a(\007)p 13112 10178 254 15 v 13155
-10171 a(\007)p 13317 10171 15 843 v 13156 9820 a(\007)p
-14464 9890 15 492 v 14303 9890 a(\010)11878 8774 y Fc(dol)p
-12006 8325 15 615 v 12007 7711 a Fg(\010)12752 8774 y
-Fc(-)811 b(-)406 b(ce,)p 14506 7887 V 14303 7887 a Fg(\007)15468
-8774 y Fc(a)p 15654 8150 15 572 v 15655 8150 a Fg(\()-204
-b(\007)15796 8774 y Fc(-)151 b(mor)p 16466 8150 V 16467
-8150 a Fg(\()-204 b(\007)p 17073 11788 15 703 v 17073
-11085 15 1617 v 17073 8062 15 703 v 17087 11788 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087
-11788 a -1540 16876 18628 15 v -1540 17052 V -1540 17228
-V -1540 17403 V -1540 17579 V -1540 15259 V -1540 15400
-V -1540 15541 V -1540 15681 V -1540 15822 V -1540 13151
-V -1540 13326 V -1540 13502 V -1540 13678 V -1540 13853
-V -1540 17579 15 4436 v -1628 12836 a Fb(7)-1540 16430
-y Fi(\240)-1540 17045 y Fg(I)-1487 15674 y Ff(G)-1540
-13671 y Fg(G)-960 17396 y(2)-957 15533 y Ff(2)-960 13495
-y Fg(2)-344 18011 y(Z)p -376 17835 15 615 v -375 17220
-a(\010)p -544 16271 15 386 v -543 15885 a Ff(\010)p -418
-15962 254 15 v -417 16103 V -374 16096 a(\010)-374 16026
-y(\000)p -212 16096 15 843 v -373 15744 a(\010\000)-436
-14558 y Fc(ca)p -172 13759 15 615 v -375 13759 a Fg(\007)205
-14558 y Fc(-)310 b(ro,)927 14719 y Fb(^)1160 14558 y
-Fc(a)p 836 13759 15 703 v 633 13759 a Fg(\007)p 1337
-13846 15 791 v 1134 13846 a(\007)p 1839 13759 15 703
-v 1636 13759 a(\007)p 836 13230 1513 85 v 836 13098 V
-2341 13671 15 616 v 2138 13671 a(\007)p 2843 17484 15
-615 v 2640 17484 a(\007)p 2597 15962 254 15 v 2640 16315
-15 360 v 2641 15955 a Ff(\010)1830 14558 y Fc(-)495 b(mor)p
-2843 13583 15 615 v 2640 13583 a Fg(\007)p 3851 17308
-V 3648 17308 a(\007)3647 15815 y Ff(\007)p 3605 15962
-254 15 v 3606 16103 V 3811 16166 15 843 v 3650 16166
-a(\007)3647 14558 y Fc(fe)p 3851 13846 15 703 v 3648
-13846 a Fg(\007)p 4353 13934 15 791 v 4150 13934 a(\007)p
-4854 13846 15 703 v 4651 13846 a(\007)p 3851 13318 1513
-85 v 3851 13186 V 5356 13759 15 616 v 5153 13759 a(\007)p
-5654 17572 15 703 v 5654 16869 15 1617 v 5654 13846 15
-703 v 6024 18099 a Fa(11)6147 17713 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 6147 17713 a 6228
-17572 15 615 v 6025 17572 a Fg(\010)7448 18099 y Fa(10)7554
-17572 y
- slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 7554 17572 a 7554 17572 a
- end
- 7554 17572 a 7652 17572
-15 615 v -105 w Fg(\010)p 5814 15962 254 15 v 5857 16315
-15 360 v 5858 15955 a Ff(\010)7280 16026 y(6)p 7406 15962
-254 15 v 7449 16359 15 334 v 1 w(\010)p 5982 15962 296
-15 v 5983 16103 V 6026 16166 a(\011)6026 15885 y(\011)4382
-14558 y Fc(-)944 b(-)472 b(li)6024 13671 y Fg(\011)p
-8872 17572 15 703 v 8872 16869 15 1617 v 8872 13846 15
-703 v 9242 17308 a(\011)p 9200 15962 296 15 v 9201 16103
-V 9244 16166 a Ff(\011)p 9202 15962 V 9245 15955 a(\011)9242
-15815 y(\011)6898 14558 y Fc(-)1340 b(-)671 b(ce.)9242
-13671 y Fg(\011)p 11257 17572 15 703 v 11257 16869 15
-1617 v 11257 13846 15 703 v 11831 17308 15 615 v 11628
-17308 a(\010)11627 15815 y Ff(\010)p 11585 15962 254
-15 v 11628 16315 15 501 v 11629 15955 a(\010)p 11789
-15674 15 492 v 11628 15674 a(\010)11483 14558 y Fc(T)-29
-b(al)p 11627 14021 15 615 v 11628 13407 a Fg(\007)12491
-14558 y Fc(c)-10 b(he)p 12838 13671 15 572 v 12839 13671
-a Fg(\()-204 b(\007)13169 14558 y Fc(non)p 13550 13671
-V 13551 13671 a Fg(\()g(\007)14090 18011 y(Z)p 14262
-17572 15 615 v 14059 17572 a(\010)p 14016 15962 254 15
-v -1547 x Ff(\010)p 14059 16359 15 474 v 14060 15885
-a(\010)p 14220 15674 15 492 v 14059 15674 a(\010)13914
-14558 y Fc(sp)10 b(e)p 14058 14109 15 615 v 14059 13495
-a Fg(\007)14681 14558 y Fc(-)268 b(ro)p 15066 14198 15
-616 v 15067 13583 a Fg(\007)p 15568 14198 15 703 v 15569
-13495 a(\007)p 16069 14198 15 791 v 16070 13407 a(\007)p
-15450 14558 1333 15 v 15066 14108 1520 85 v 15066 14240
-V 16571 14198 15 703 v 16572 13495 a(\007)p 17073 17572
-V 17073 16869 15 1617 v 17073 13846 15 703 v 17087 17572
-a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 17572 a -1540 22572 18628 15 v -1540 22748 V
--1540 22924 V -1540 23100 V -1540 23275 V -1540 20956
-V -1540 21096 V -1540 21237 V -1540 21377 V -1540 21518
-V -1540 18847 V -1540 19023 V -1540 19198 V -1540 19374
-V -1540 19550 V -1540 23275 15 4436 v -1716 18532 a Fb(11)-1540
-22126 y Fi(\240)-1540 22741 y Fg(I)-1487 21370 y Ff(G)-1540
-19367 y Fg(G)-960 23093 y(2)-957 21230 y Ff(2)-960 19191
-y Fg(2)-381 23708 y(Z)p -413 23531 15 615 v -412 22917
-a(\010)-413 21581 y Ff(\010)p -455 21659 254 15 v -454
-21799 V -411 22125 15 545 v -410 21792 a(\010)p -251
-21441 15 492 v -412 21441 a(\010\000)-551 20255 y Fc(pi)10
-b(\022)-185 b(u)p -209 19279 15 615 v -412 19279 a Fg(\007\000)620
-20255 y Fc(n)-10 b(\023)-166 b(e)p 894 19631 15 572 v
-895 19631 a Fg(\()-204 b(\007)p 1532 23093 15 615 v 1329
-23093 a(\007)p 1286 21659 254 15 v -1371 x Ff(\010)p
-1329 22055 15 474 v 1330 21581 a(\010)1189 20255 y Fc(pi)10
-b(\022)-185 b(u)p 1532 19455 15 615 v 1329 19455 a Fg(\007)2262
-23708 y(Z)p 2434 23268 V 2231 23268 a(\007)p 2392 21370
-15 492 v -1898 x Ff(\007)2230 20255 y Fc(mi)p 2434 19543
-15 791 v 2231 19543 a Fg(\007)p 2884 19455 15 703 v 2681
-19455 a(\007)p 3333 19367 15 616 v 3130 19367 a(\007)p
-2692 20255 1099 15 v 2434 18926 1356 85 v 2434 18794
-V 3783 19455 15 703 v 3580 19455 a(\007)p 4029 23268
-V 4029 22565 15 1617 v 4029 19543 15 703 v 4362 23795
-a Fa(11)4653 23233 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.99998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 4653 23233 a 4565 23180 15 615 v
-4362 23180 a Fg(\010)p 4319 21659 254 15 v 4320 21799
-V 4363 22125 15 334 v 4364 21792 a Ff(\010)4364 21862
-y(\000)4362 21511 y(\011)p 4692 21581 15 492 v 4531 21581
-a(\010)4369 20255 y Fc(li)4362 19543 y Fg(\011)5637 23795
-y Fb(])p Fa(10)5574 23093 y
- slur@Dict begin (2.5pt) GD S0hgt (5.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 5574 23093 a 5574 23093 a
- end
-5574 23093 a 5929 23233 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.99998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 5929 23233 a 5841 23180 15
-615 v 5638 23180 a Fg(\007)6571 23795 y Fc(7)6476 23093
-y
- slur@Dict begin (2.5pt) GD S0hgt (5.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 6476 23093 a 6476 23093 a
- end
- 6476 23093 a 6743 23180 15
-615 v 6540 23180 a Fg(\007)p 6497 21659 254 15 v 6498
-21799 V 6541 22196 15 334 v 6542 21862 a Ff(\007)5468
-21652 y(4)p 5595 21659 254 15 v 5800 21652 15 492 v 2
-w(\010)p 7442 23268 15 703 v 7442 22565 15 1617 v 7442
-19543 15 703 v 7806 23708 a Fg(\\)p 7775 23531 15 615
-v 7776 22917 a(\010)7775 21581 y Ff(\010)7606 21933 y(4)p
-7732 21659 254 15 v 7733 21799 V 7734 21940 V 7777 22266
-15 685 v 3 w(\010)p 7936 21581 15 492 v 7775 21581 a(\010)5024
-20255 y Fc(-)920 b(-)g(-)460 b(ce.)p 7978 19631 15 615
-v 7775 19631 a Fg(\010)p 9050 23531 V 9051 22917 a(\010)p
-9008 21659 254 15 v 9009 21799 V 9052 21792 a Ff(\010)p
-9052 22125 15 545 v 9053 21581 a(\010)8881 21441 y(4)p
-9212 21441 15 492 v 1 w(\010)9050 19543 y Fg(>)9741 19455
-y(4)9786 20255 y Fc(P)-10 b(as)p 10156 19455 15 572 v
-10157 19455 a Fg(\()-204 b(\007)10375 20255 y Fc(-)46
-b(so)p 10794 19455 V 10795 19455 a Fg(\()-204 b(\007)p
-11228 23268 15 703 v 11228 22565 15 1617 v 11228 19543
-15 703 v 11764 23268 15 615 v 11561 23268 a(\010)11561
-21581 y Ff(\010)p 11518 21659 254 15 v 11561 22055 15
-474 v 11562 21722 a(\010)p 11722 21370 15 492 v 11561
-21370 a(\007)11344 20255 y Fc(nem)p 11764 19367 15 615
-v 11561 19367 a Fg(\007)p 13942 23005 V 13739 23005 a(\010)p
-13696 21659 254 15 v 13697 21799 V 13740 21862 a Ff(\010)p
-13698 21659 V 13741 22196 15 545 v 13742 21652 a(\010)12294
-21441 y(6)p 12625 21441 15 492 v 1 w(\007)p 13900 21511
-V 13739 21511 a(\010)12078 20255 y Fc(-)90 b(bi)12461
-20415 y Fb(^)12695 20255 y Fc(e)p 12667 19631 15 572
-v 12668 19631 a Fg(\()-204 b(\007)12957 20255 y Fc(pro)p
-13304 19631 V 13305 19631 a Fg(\()g(\007)13543 20255
-y Fc(-)78 b(cel)p 13942 19543 V 13739 19543 a Fg(\007)p
-14580 19455 15 484 v 14377 19455 a(\007)p 14581 19146
-457 85 v 13943 19014 1095 85 v 15029 19543 15 572 v 14826
-19543 a(\007)p 15479 19455 15 616 v 15276 19455 a(\007)p
-15928 19543 15 703 v 15725 19543 a(\007)p 16378 19631
-15 791 v 16175 19631 a(\007)p 15479 19014 1356 85 v 15479
-18882 V 16828 19543 15 703 v 16625 19543 a(\007)p 17073
-23268 V 17073 22565 15 1617 v 17073 19543 15 703 v 14824
-20255 a Fc(-)1353 b(-)17087 23268 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 23268 a eop
-end
-userdict /end-hook known{end-hook}if
-%%Trailer
-cleartomark
-countdictstack
-exch sub { end } repeat
-restore
-%%EOF
+%% LaTeX2e file `eps/caccini1.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 21 93 556 793
+% EPSF created by ps2eps 1.39
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: imp.dvi
+%%CreationDate: Fri Sep 13 09:08:44 2002
+%%PageOrder: Ascend
+%%DocumentFonts: TeXMUSIXSPX-Regular CMTI10 TeXMUSIX20-Regular
+%%+ TeXMUSIX16-Regular CMB10 CMR12 CMR10 CMMI10 CMR9
+%%DocumentPaperSizes: a4
+%%EndComments
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def%%EndProlog
+%%Page 1 1
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 imp
+%DVIPSParameters: dpi=2540, compressed
+%DVIPSSource: TeX output 2002.09.13:0818
+%!
+/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
+/p{show}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
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+/slur@Dict 200 dict def
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+% align the slur to the staff lines
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+ aa 0 gt { /shift shift neg def } if
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+% and finally draw it...
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+ grestore
+ % now some \slurtext code...
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+% differenced line
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+% sloped line
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+% free line (init & terminate)
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+end
+%!
+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]/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[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
+%!
+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/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/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
+%!PS-AdobeFont-1.1: CMR9 1.0
+% 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 (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR9 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 48 /zero put
+dup 49 /one put
+readonly def
+/FontBBox{-39 -250 1036 750}readonly def
+/UniqueID 5000792 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
+3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
+046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
+C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
+A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
+A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
+731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
+09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
+49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
+5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
+54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
+C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
+11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
+D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
+109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
+3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
+C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7DE90DFECF89
+9E58BB6430D9915B21B801B7EF6E62C2DAEBA34EC115F1D18F1F2BEC381020E2
+3FEF9CB4F3C3997C3F0587AF7C2A6B08A2823EC3DD3623E073DD07E7E8995DF8
+D81B2B6C8D36C964B75C7E4DAD8723126043FD455BBF4F1C21609729D9CF2620
+A6322AA2244D98C7BE825289C2F09F2ECCA97F4DC25F93D44954392BCB47A2CC
+1A11F6CD6101DD405EEB13945A1AE4CF6427F53AF9A0F76ED8D9E6B2C81562A7
+7F3A89339B0D12BBF34BA71F6FD2D75D0C3068843119AF94ED88AAC850664154
+78973B221D800E5A0556DAC4679C62294751C1C74701994332D8B29CB51DA91E
+215C8699F47D2A56EE9905A4716B97DF456ECA78BFBA774F1665042B47CB2FF1
+F3617C88959B667624EA096EBA7BCA7C4924947DE35FEAE25FD055C0843FFF09
+F80AC8F15EBA70D546F3EADC6E4153DA1E91D63FD90AE7EDBFD786C323E6B4F8
+92A3197807FAF44DACE5097BA940DAA972C26620BAC146E91310CD0C853AB86F
+3D3D65342EFB3B01762FCED5F6EE42F3B47BC5B9DE9F1517BF3B32A22DE23FAB
+31341D9B8F55040572476437F5A81BD297A6FFD971B963458CF4779AE811F0CC
+4AD74B3CFD7A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMMI10 1.100
+% 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 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 93 /sharp put
+dup 94 /slurbelow put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 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
+95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEFBBB4AD66A4D7350B0
+38A001EBC9735BE41A41B4836FCFC0D4029C02D8DAEA734951E57209889EFD2A
+33D220471B99E877FD166D30A54B29D4CC17CD581611477EC6BF8A58479ADE5F
+FE8DB690DF606BDA5AE6D1E2B1B797C835A026E933D593975A7AC4DF8EA7662F
+F51A30717A92A2FD10030E749FFF416FAA31794A3EF90832F493C1012ACCC272
+9313AA60DA29EAABE06C313A7D6190B3FC20E0E400E647ADBDC6C63CE3AB0D21
+DB0EF15268C3056C4E28FA7625F2BF7AC6343417D3E54CEFDAFE3B0E42E96C59
+8348EE6BD0843B0509FEABE63FB91C89FB452047789D36B69A355F2F605C77D7
+5AC7BBC694A05A4D42224F1051296857DB8D542F78DF1AEBD0F55AD2BB1795D3
+880CFA7AE2B14CB898327A058D330FC29BEEA39661FB8AA17B1D9298969629C0
+035D90094EC5D33B9C91B3E9EFB648BD3303BAB96EED1D209811066CDC3AA0DC
+664C576F01B39C04F54F9BD393B74D4620666DB9DEC4F49C46E85A14EB1B1FA6
+ED1E13DF0BBF930F995A14AF9AFD04EA8317ED31FCA841133D742CE53BC44A84
+2B8E98B6F78927A4783284DE22942EFE6E9685D880CBF2F215ECF20A00D6D3C7
+8F31303AFB2DC22CA1036C787A4CBF0AA39D5E5614AF8E2B2DFA8188C2C5DC62
+307206815717F190E854D2160D541D087A24701E05DA93D5F0F9A3E18C13F44D
+28281D018CE0ED65FDC7A41DD2D7569CAC04FC3FF086F89392339070DC4436D4
+52F283791522918DAD8C01873436B6665C4D698647FD7ECFB67495AFF97A1656
+9DE0D0EC6053AD025EDEA86CBF26B4789B67CB490B76F6F03E8564829096F390
+32198C0F01E5605A0E6AECF6FC99CBFF8A113D88EFFC6E047361EF267F3FEF0A
+0D13514F1DBE782888278818953F05D660FDEC6ACC4F927EF6A7071DC11A2367
+8C5EF70B850DD123EFA3379291241CBFE455C88264E058F2C2B57D2BAF5D7224
+AA236B06B756D47DB4AB4D1C1B0B848BA1E5403D3AB2B135FD14579AE258F4D3
+EB02EBF44EED73AD6C4D5B0A414A58305793DE8236E673299E45313DC42278DB
+6AE93703D8D4F70A0AB11E4D19878AD245264F36050EB65B6F10125779C70D8E
+0065B0F31E8689D7006E25B1E01364A1FE370CCCABCD955C6A518A26DEE209A4
+F070657B786E9C670611E0E53076B0B6183C2D4796DCB9BB59851A0EEFA715B0
+E105FE75ABAFA9973524631BD22CC222A5D3B1F63015A392E43C857FBC8CE769
+16C103777607E18CFB4D096708FFD430EA3EE8B0E813B137B5784962EAB607FE
+717079429B675D90F3D973CAAFA004F6243EE0A53FE515D255C95DBA5C0DFB32
+5E0529B1D0E5183523AC111882566D14788F53F22FBDE907B26238A814E57C29
+A6DAF9C7E2F79537824F0DAFD9A521628565B526F000862857D9BA6CFF593510
+610A2EA10FA423C056C12B19EC53840AEB340515986D8976F02606413FC6AA39
+ECDF92C5897AD6CFA9A89E0CB23D4904A5BE2E849EC7BC2FF4A88228E8CB6196
+B6DE62566DABD4C85005211C83BFCFA86CE4D2EBDB699FF3819760B188DA7CFF
+909FC74CF024AED318E00AA51F8750406B0E2EA33363E385303CFBDAFBD2D8F0
+4F6A8B00431BB0776AB91470E2832667C97C8F7A7384445A2A42555BEEF95EC2
+F2C78B89891CE666F2B47FF1141ACF80AFE627FEC568168A61C99C941BA7D0AC
+54ACF918B72619207C0182A6BB1D59E58FC3C96B0078EBA276B9C02DB668F0A8
+E046BE4633E66E36369CDFD881E71A969F1EDFD8D7CAE207A74A8CB8AAB39C8F
+935BEEBE8D07D4559608F75254ECF672C2CDE1578D099D79152D8B41E054CD25
+56A856CB0593F0B676DD7E9FAE9844C6B6A781B9F823D5DEC60AA90E33498A93
+D6DF663FFF523C171B1F841D5E60C321B644EEBBAB0E0C418CB206C8775D4D0E
+33AB23D397B2DC98EFEBC3CC473ABB6EFA4DC2636E945BA3EFB03FFA680EEFE0
+7FB5C8F1945B699EE4F394204FF362262D2DC7CF759C5526B81D0326A5D14658
+B209F34B9334ED0B046DEE32B4E38776DDE43F803F8D029E8410BF7B1517E6A7
+0D84C40AB2A013C58C3BB28D496F6CEFF70E73F3486FCD3984F8297061E72171
+A17BE235ED5A38F7B73245B46E65EB4AF055C4568D1A19BEF6D5B184D3C26D45
+A2DA85EF7AADFB104419D7B6DC939726F6AD4A1335C425A5086969B7366F53F8
+9DD041A90FF2A593B547C37520BA014060801BDF84B7D386E4ABC862D8E3EBBB
+AC62431C625EFDE888E07A4548727C26141F0D9818CA289C79FBA2287620E29C
+71FF406FFE49048FBFE82EC631AE264580CD091EE22377D428069D99D6184D42
+C5A7A438933764CB1AC1534CE9D8F0717A0DC4A466DC21DC42791F06C28BDDAD
+AFC10D8C5147209ECBB9B87A0F3BC62359AA1D046A713B8E78CD857FCBCAF6C3
+F17B1453FF3443D60D0B5F75DE6DFFB09CD5BC44083DF8353E4A97CC03541BAD
+AAFA0E927D08919D13825535AD9F1C081436F0E550BAEE4A6902A411A653EC8F
+95621DB5D9AB5C155B1F1575268D724F51F82D9E5993AB42D724FF649F48F800
+67D2176665344A6CCE606C1D60062581FD4CC87D8C3EA72F1494F8967480180B
+3055576BACEF9322EDCD5E49C1DE7D7525C7F44391BF7DB360AA55F6A443621B
+1E1B7CFA3017A6A4E0B0980DE9BBFCC95A8EC512058A35877917A0F377705C6C
+86DF168ED49AE75998C8D7D2BE79E89066734A6B532830BDE10EDCDA303BA891
+880693359383EFF5EA85DF0575A9C5A114A6435EC71B124FA279F81D723C7EDF
+60F764D1E975BD48A295B8E29E247BB795BFB8E200F3B803631C90CDFC32999D
+CA367C5E4ADFE9268145F667A4E159C784525AD8B759959820E4B5978576A3AE
+CED1DC29EA92CB1910D84AC73494FFFD5C163C1A2094FC216227DA8C39213F8D
+00C4E673604D2E52F34B58AB257A18E91BB4B05B0A0712E260D14D6043361159
+D55C19B63E79B0688CE275B2DDEDA27191678D620375C0DEFB3F0268201A6CA6
+0ECF5F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR10 1.00B
+% 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 18 /grave put
+dup 19 /acute 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 48 /zero put
+dup 49 /one put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 58 /colon put
+dup 65 /A put
+dup 80 /P put
+dup 81 /Q put
+dup 84 /T 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 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 123 /endash put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1B9EEC89A0DF5D4E908F32BC77D09A266DC98E9669626354E
+59FA354352E609F3A359C0E8B82075C60AA8F917C3B46A51D65DE1F6F050160A
+412DAD1DCB1A35E49A520F31B3EF2B0A27E393E20EE871DBD2628AEC086AA0F1
+CB11E1DFC7E94792E38B0F8DFEC565B1676FD5BD49E5757F7D03092489A7A0FD
+2DA2ECE42C2BB3C481C676B3BB029368632768C2988B90ADA328C745443F93B1
+C31CBEA19AAE4FFC83A933DEF484A753B513A289FBBED75E3EE8C1117912BAF8
+54CC8AA4496B318283B80AC61EDF21B109D7DC8DDB8FEB1F20265E06C2E2E8DF
+9532840F5737838DE90773008DC7A4E23C0F133241F066096999887AD4D12DDE
+23656B80578308ADA3B73C7D92DFFA19F1A79AC9B99F4971AC65B49FAFA4EB21
+B05DA8A257B3CA70C7584768D4D1A8F45777FFBDB6C69A56A56B76B10D228B4E
+AC4A163E08E21F24E9DF40752B9CAC62E84596EAF822F177C4CF65B7078A536F
+97E22792FA75CD39AD747A1FEA72CEB4B2658DBB9A4CD46FBF5FAAB0D2342DAD
+04D93804B95AAEA397D0ACA78A3E49FFCA7473C3610C6E9A9251EE17F88E790E
+82C4755F75EE3A7FA6C0237A7030CAA69F77BD9D4EF25FB1A2D45B649DD78499
+586027D49923A3E2870543F4CF74A00499B8BB5A903645E546A5403B88BB5F97
+F04924E8CE2A3446643AF9F1BCD69552B351076B53AF9F34FFDFE3548F31607C
+CA8F999426CA7D9B3464D2C6BF22AD989D98D0C5799E54FBECA219E2EF410CF4
+A049606A988FA48884717E52FF08B3322390C85C4D2B9CBE74801B538E9590DD
+C2A7874BA3A795BE0E40B300B16C4E06251E8A90BB725687A489828848C7F6F7
+3DAFA7C01A21CF7318E8C26D5B336E7B6E4F4F0B397904564BBA28BDB9794B45
+8CEA36266178898E3612D7DF333CB7FEE6396B67761361CE1791E3B18B629B17
+1667584AFDC209377CCB279582FCAB62725237AAF4879364006A0B717EA427EF
+5CF24C44FF4A6FE8ED167A40EF438CA0A6B0D80DD46552563B36DA5DAD53AEE6
+E116D35D0321DCAF45D1808418490D772C50B6FB0810F2E259E21AEEFBD7C5D5
+B7FA3E9BD20A02299701F473294B6C8445E0769EA93307756CE2A7FF454B2C1E
+E1CEEE797D5DA0A8A7EEAA2090AA69FD220CD70080AAEF76EFB53FF7759BC68E
+D7047DBBC8DB5C13320F77A8FB94B9DB259A9AE460B8634A22AAA2E363084BA4
+E2B77C1E29568B02BA3B160E78799B29B38D1BE9FD53F4D847CE1542DBDDDAFB
+00CEA31C5E9A63C6A5A02740A29EF7EEAA640DF24DE62385E2BC5E7FFDE1F362
+C7F86BFC2A4E9BCE82A37D5BB4BF26BAE85459B6945F7A7E4AA99002B9475A9B
+8A0CF51FEE063B939B1E1737BECC470D3DFC46D97E97D77DA85253440C570804
+C3B5EE537499CC481CA523B7320D59AF0A4102406DC5A264E7393E04B39A3458
+2B241C46D8D9A99604E48C85DFBEC0FEDE37A7BD53DD20A62CECA82A6E6640F2
+F68B66B65EB2D6C1C582FC10A4EF57711F19AF71D8D4BFDD735C3E67A4D9216A
+5BBC655423FD1FF2DF40A19E528EE4B81FA837525865A6CEDF9E7F27D3FC5C61
+CFC31DB55A2586B6F8D598DCC500ADE62C8132B4D65F5DE6637A34E2CCB7F225
+3AC04CECF1FAB29399A33D06DC3010F4B44CD0DC34FC72792CB645FC4079C34D
+3497C9617FD607C5FB0D804E5DE41B07542D2437A7530C200BB839542CEDD201
+D8E0D0840FC242DDF4A5A4CD973353DC491E06E684C99B0B074649978EBD11B6
+774C5224BB091BB445FE2E4F276F6A9DADAB7DA417847FAF1B04BF5DE12D356D
+06D6E83E6362178B804B95FD8683ED3CD511002BE0B87ACF8AC9292897C2F85B
+5C8814D40EA5DB190A52E05623E0BC0C7FC19943CB2B07573F7CCC885FA8AB29
+367930831009DBB9CA6E7E879641394526398F3209369D875A1EBDD45D7A203E
+74C03B38AC0FA1A379A5E399AB7700AACD2DC5B2BC3132BE82C64AF9662B9230
+6D06DAD71F74EA0C28A85C8629C97A1699DF1C91C0F5D035B459CC13E7CCE42E
+376A24E9AB4825C15AF2445CD206B9C39D70D735560A65C2BA5BBB76121A503E
+4FA1992D3C7C8001080FC8705BCE06B4113472B8A69E9CF1AA8C5CA2450F8539
+E7D48DD5785217F519DA9534D13EE228F59DFC78A53AE949EAE75C484F223E88
+1D470D03227FC75C23BD32C3F64F87053D9F366CB37C014CCD36409458D90C99
+54D24B8BF0D3FC446FF633438A9447D9E33C90E4B0CFE115F7E81FB13E43BC51
+C725947F66E2D79877A155D4D373FC4C3FBFFDBBF04820F73F292B8E5D932917
+B27D7A4B20B7C471419CE731AE8CE958E8B750242D09E07EB1917433F77632A7
+A7775361484064D6B02AC57E14BD0B3C332A4BA36AA02F35AB09C83037796B79
+46FA4F4D506687B80BE0E2D2374050501A5793171CA3C14F8CF6521F7575DC2F
+9A9ED29C80B8092C98FA1BA67C5E1B02B9976EA0CC363B7F1027EB779C1A6A38
+9DF3F9853B8A71483DE1BB5B9FF9D766EBDD648512DDDA9CFD418AAA51F754D1
+27ADBADC3B3CE807E7BB6650EE72646930EAEE073C2004535D5C4770C8FFDEC7
+B5882F2D49AD63DDE41665FD5D0D4213711CD7C0C503EC77511B1F304DC9E571
+8FC9C19B49D4974FC8B530490EC1F1C346A6B3569A9FC23B48F1EF63A8F1FA66
+456B40A2EF7F8A6BA3837D698D0F1A0C6EFF8AD59F5FFFC53C790D5D0A35073B
+842323D6D5BF3858496D366C42DCE69AA5C87B100CB358FDCDF7683446E685EC
+67583895433A6E73F94186BD778FF5D331F200F74F1866D29A83E6A2AA368442
+4735C4E14CBBC730C00B58B36396A9C81DCC9CDA324B847D8763CE7052FF7B3E
+EAC8A2DCE192B308C84AE5EFE62E38219BF151227C472952528C21EBD7F93150
+58CB8CD9B4F7E301EC2842F4E912103DC2758A56B4C5645F9CA35A826534A3C8
+042B990117D1A53CB13408D4960417F81A1FA442BD7ABB8FA91BF38F6D332256
+ACDBD26DDDDEFA833CAAB3D7084EF9C4649F73407ADCE0ADA5CCE19126924BB9
+6B48355F311A3AFCBE5EF10252F86D751DBD977C9DBF0C81E200AB77E0BB117F
+F48DCD53AF3A56E58BC1E6757A5AAAAED24616266B4E264F7927D70754DB9A3C
+AE063F688DEFB66B51F00D022075987696F54AD3D0286EF95E592F9D40454D0D
+69B061694D2AFE3697C7CA36196DD6B26BB1057AE5070D25A2F89326DE260440
+0AAED51ED7B254E279538C31D4BB4EFDDFFD4FD09232BC430A573FB657AFE742
+7CCB996E988FBDF600D809019F4B4D2F041A6BE4C60A52B2F3A8B6BC8DBF772F
+CB58477926D6E01384D7B718EACE9BF22096FFE7B3F398BE07AC814DD2C534A9
+06A17475DE88392A48B82535093DF87A1B23ED55EA725DD7533D905A67939D1F
+53ABF978B748AB202A077195E495E5F0CE042836BB5743565F7AEBF31284A99E
+C0CACFF65EEF9A9E7EB161253762CF243889BDD834460E1EE5A752E5254BB6B8
+C21D0B674C80FC55123E3DA6CD90B17B4CACA4F5425D9322643F2139FD90A8D3
+2BD3B9E0C4DA58871EB78A764A6E035A2DDE468BD45F40A5B2AD4D32D51B54CD
+C87C566C0DE3933EE423DF2930F0369A27EF1E609B0152886A26C7EB8E625DE5
+2DADBA71433FF7315006FA226BA80581B0554D0D65F610F59D61756676EFCD96
+1189905D27790D7910E8411FFAAF646D531C03FB3317AD77C8F4681C6C493D84
+E0BE58C096868A579A570A68B65DAA98D12ECEE1EAE774C282F9CE38E37FD95D
+B8056E30202FBC31832E734096C7B9B164665420698551A252C0458D901FE316
+1E2A8B629E1142815AB39369C89D6E366EA53608F0A0D8E5D09FD5F0AA1E1F8B
+6183806A9ACE9BA79DBDECF8AD1E9C3BD589B2D758CB90AE642746083F938040
+4B319D0BDBD61A24646615F744BDDEE2D19F7E6885BEA4BEE3CBEB98044F5C3B
+CCE180CD94E00957C7663E17F31AA2009ECCB464F1D19CD212A6F64C2C3BDE77
+4AF718A7005F7AF21879513A760ED3902B658534F00BE8277A3C09302780FBF5
+3D4CC7A4D399CDF38C3918DD85DE9D359252932AF5274ABCFBD8952957F642E2
+2C9846C20F8C95DBD53953A87FB4D72FB07177C8B9180368FE562C6757BA26A4
+4F5C241B377C1658B6DBC05574FD228E8745AC865F24C7C94700BA3DB4D53F3C
+46032B19870E44BE006A610365CE5AB3891C4053CEB9ABD70061B23F55910C29
+18E1AAB37F3EF51267D977EAA70349C7D4DA9B7809453BD23F17C1563335B87E
+DD90E4F74ABFB462D4EDA74CA37B88A4128A6712A9D861F9456F394064C4F8CC
+C8BA0BBF2C02EE11EAB8899FFB7C630D97C0290F13824E5F5576AC1381272427
+1E17F47562C5636E75DD779FBD1D18CE4D4257C0831FD68B412EB1905AE4101D
+DF68A74CD6F7ED92DE2667A080164989B807F84F126BDDFBA60987B2E780886F
+DFE3937A932304D88FAFF809ACB111BB06C64EF01F28756D2A6D6CCD5D6C9057
+E00FC93E619898BE6DC47573A02A60D8CC5140CDEEA11A453FCE09F9CEAD7FF1
+076F68CBB6EC2FC1D7EB66E1E831E886507CBF1A0C8E688FF91C45AA8566D747
+997F0EEBC72B8C77D812AD3820D7D837BA5ABFC231B8B6E8A7F2C85886CF7A39
+4C0AB000695BFB1E88BD9DBAD72BE505DA4830D4E57D4F519C6E7BF91CF5D72C
+47A98A9B7C6C2CE4A99587DA2BE19B8BB56EB7021D451654F92FAE4240CE623C
+CB57CFE0A0F00DF03EA7E40E75EBFDEC4B572C9570ADD9FEE4354A50BEF41CD2
+E622AAF95C6C467051BDC980D8E1C59B57B938073865D5624EE77C634CEB5863
+D3E020B88F535EEC5DAD9E81E6BCAFAC4AA3531A751F8830772C12AF1020564B
+4C4EDC4A8AA8F1B605A91E88CD7B11B3326C2B82AE540951DD6FC3BCA10DD078
+448DDF3F224745F2C88B53365EEDE976BB8D94D1F57E353EDE19F588DC56D99F
+EB3C628F9A5A6C9F79BC97D69F55EE0E337598806D0BC1EDE2CA8021EBCC1A50
+ADDB55DC3EABC67613B09E9A1674C0058702497C21EFD6322530E8040422A032
+6B6E872A2FE553E3792D7DAA2CD97FC2193EA2BDAC7E78C10673EAE640985389
+7E0C5C663DC10138C6FA5FBF3C24D7E72E5DB12DD4E5FBC213F7C72F9ACE751E
+FFED9C3B60907E04006F0FAFE98B31C607B5C84C3D1F181E1DFF2FF1E7A016AE
+C8799D765D52DA2EB5BA62575EB85243B5EA52A50DE2EF945C600EE8CBF1BDD5
+8F9E917193AD2E2D7C37162DECC00AD50C071B0A209327E87C8BAF529EE5B561
+5979F1515A78007AB6AF532219951A3B950534ED8646078EE7C933051E0C5DA1
+3B902956FAFB5CEE7A6D1881F2CA72686D74A00BB26A5627DBE2991771D8CDC5
+D35FA42713272A3346B5FB0C4250849CE0CF4F026B9E9D5E9FD5258AAF1B2D55
+1E7CD3C80BECD4E44C504E0F935A4F8B463373271EB7BD942698CF1D005403BA
+CDA5F1996D85F0656116CB2EFC49D25321AC051CC24784587B6969A226BFEEAE
+773444F741B04520C28298621800FE12CC18918C56FFA5D43FEB24125156B379
+F9BBAE01A58A1DAA21E5574BAAD2697042F540874FED03C4147A9A82EB3939A6
+5C941D015CF75D30766A7E954B9E2A8F2E9E808372B7FAF2E0871A7004C5508F
+EB9280D63471E9EF75D80BFB0D6C2430A061D4E2C4BB4C295DF63BF8C1DC0952
+D5DAD5E0A2653A8D03DE0868C14027464D871F9760DDDE95A903E1C1F8C2A7C0
+A0862FF3587BF172566E388F875A160CA150C3B2DF2728103F8EDDD08AD0BC6F
+65BF032EEF85FC54E299252B7F32E4A8DB7542418E09F073236E68F4F11485D3
+F6A0624C207CE7EC5B0B984A3C0F3FA609118C22CB6BDBA37A48BD0897204015
+7D9AF0D3F975F2ED088D91B6721CB604BB19291EE7B332CB852643678FC4B66A
+A15221B430720AC37E6C2140DF182968E3A28BFDF8BB2B1A90DA691CC419405A
+F2DD423B27F81CE1499708F11D4E3F6A86DBC243522C0CF3B83F39EE6312563B
+A3A624219E36CC78CA68466A781933E79F238D93416910B791C97502377A0A12
+CAD42241B814B8B37E35074DBB48B79CDDA2E8540CB303ED02DB330D9E542371
+D7E183C060F9307C2E0345D41736348ED1E50D2F9A531716ECD91AEC136448B2
+87E17C5EC71DDE13F79BFCF469C8062CB60132388865AB64A77558A8974875F2
+9FD46FB1B07B50CEF579FB3C4D862160A3615F2D3CD3E6D88B06182C2887AAF6
+AB70E2961CE467D409DA39E44C7A890FB1FE59977C954DA9ED0C4D2CE9F42C76
+94F8EB9D9980F40DDBF09A61B71CD07A2ECF3F1A3DAE84BEA1F38FED60DCA960
+462C7F22763841A260EB5AFD515E9E93AA2DE67F64C83835D5C3F1E3DA1A6051
+9CBB3750EB26ADD07DFB62FE7CBCE154CDAB84A6EFC9797A891D4D699C96280F
+6819A9067964B3D048F12B812395CD40E20EFAA9555FD0CE35E7D566929CFB0D
+8CBECB7ACC08CFCDCA43B6D105B89593121653030575F12566AEAAE800C00BBE
+E88EEC131577E9BFAB2CD2A5BD45F6A286B00B4C5CA09A5550C4EBD107EBEC39
+94AFAD0E3A8A6E729284B62169D853A658A10EB2A53E4CC4BF29F127273E0120
+60A1BC4C08DDC4F7DC298071CF0D8DE93A8F189D6C76EFBE0A591EE1180AC6A3
+D7F8E47B023C5833570D6AA04970F4EC552221A701826BFD2C9CF06197AB11CD
+2BA1C51C8FC1175A7D643F505CA573A87740C337CFBCDAE535E1B90D3236BB96
+92393450186C9A749B0A3A30FAB7B433610D2A0DE303E421B3C1E18BEA34D891
+CD6449CC5DBF1C1D01B2A47263C7D24052F8FE37F2AC085D0516EFD72CD78530
+7E2522917A7B863572752E9B1BBEDB7210516E62B73136F9DC1D96323DC3F78B
+C9E43A21A7AB7626A7454B655DE2CFFBDF27847616D52DBC72D54BE7BFE6CB49
+78FEF0FB1F710D55D123C7756F12AE2B5D4A9108C17F2AFB4E421B08E79E81C9
+E7F0029C052A27F5AD1C7AAB82C4B45B364408235DE134DCD74D93264F77BB7B
+E738B52C31CA5C734F9453478819E6E1F1317BA6496719A8CC91A30F6754A600
+AB170520C4872A328D2D84D09055A3AEB730DC8A47CD97A09E7E6481A85B6957
+0959D2623290BB04BD8612865A0443C9EF9C861494A5EAEACDC32FF5C572D2A5
+91ED31F8F8A3C0CDC34F5A4F271A0C067111C70D95526C4FE05A7018259333E1
+207AE3E9AED942612024BA3E2238C1E5F56CA70FD0ACAAD5F92A91AF5A59A9C3
+EE4FAC04CCC9C31A2502D1C0A5D6D2D5BF4A8EEEEDE64A31CAA16A9A97FC2EDF
+8351236C48C7FE4DB3542ABBBA24504A9EE692560DF455334A6E894085CE8423
+94F78CDFF2B7BAC537FEDE02CE127249B9611439582656A2B75E4639893C8F43
+AA0079E72110293C16C632AC7903C2417FFABA1D72BE58B0F9149E0DBECBA0FE
+383EFD0FD763DF63724CBF81178551CB9BB20AF338C850BAAE023BFD4329C733
+6F32CFB740828CA5103D9D21C516627CF62190A508351417109B1A66A62EC7E6
+F548CBD76FFC807E96D7AF6D351A40918B98F7154DE4575C14BF6B4BDDBAFE68
+C93C9381374226DC40D718356B7E1808ABE73D01A6C8893AA8EB9190D5352692
+5A3E97636A20AB4B189875FCE9F90E765E724533B9EFBEB36FF59F47215C7E19
+0B2C9640B9B68FF3BA17D140090190B3432E37A7E2E166117E5B1BFE5A0D9F3F
+1ED0495B2726D032E13EA3CE9E4D8394BD3430A9E4272E6543DBE0257780BA5F
+906B58E3A49BB916FFFC7104EB414C051C74D099F5A1B634AFFE11E899F73378
+9CDC9034F6FBAD517387FFD58B348FFB610AD6F2720B080A2E3A61572DD7C663
+47D6E93DBD490CCDAF473476392030D9D8B956ADA8C791519E7A0210E922CADC
+60A6AE1CD3ECF6D95907126E8A6B7DE8A15CEAB085778F293F36AF1123F98F03
+C0FE62786155B9BF44D8D217D942927234BB6EBDFB23ABA5896C985D6811CA74
+8EB0D20448147DEF5D942EB6042C938C60E4E5D2BA7749F3B7ADEFF5F9352DDD
+160898B6BED1B1677399E0135299A17A31D19F570E7ED8503F02F70664297483
+A51A1CA586234088845CB1F99C6514B9E482E7CE579AAF24A74AF73C1F94E1D2
+9C1C00E91CBC973B990BDF1E11434B3FF37BB51BDC6AF411E7CE909FD6949FE5
+98B5838CA1FED715B1E246BAE174BA96FBD83111B3DF2905F1ABEDC3A1C00238
+0D01A2940E460C9861342221AF69B38088424BFD60F3A18859DF3A3BBA929ABB
+0DFB70C4A315CC737339A61EC41671C38874C228A5B6A6BD033DA7C83EEDE739
+B0EF4AEFDDFF6FB2697B1C22F5E38DF8E05068FF834BB27E579DBA1A4B8C452D
+F404B122A158F748316168C3CCAC210230C38C33BD38EC7A9863B4C6AEF35839
+D3C8029F0D14E51E121C68172D14968541E92EC404D85429D101DBCA73105A20
+C40A1046144532FF3010533E7EEEA503F5966785D1443C40772212480C86C9DF
+8989B703365F91BA7395FBF1EEEBDDA805BF7C996CA46631CBE40C5F92C5F455
+DC5761943DA6FFD099D3559DE18530F7FA759E7F2EA87BA82180FDB1D00FF21E
+D1091DCCFFE9728F8B97AC1E0ADD4798ED663643EE649DBE15FFE94CEAA7B860
+7131CCB1C05D93D3284E5311F485E64F1AABD4BA39A2E07BC7CF0021FB8C1F7F
+885E8FFE4FD4DDEBDCAAF4EC20D7EA3E1323DF8A5C7D1443DF7B4E8F4AAF71BE
+7AEEDC4B8B67D72FEE01675EC95C828E63E83E252D9CF63DB0D05BB057B39AF2
+432540FBBF3805F6BCFAB8691485A4D302FBDD8AFED7BAC7F163A5F7B71B627C
+D29B643D20497E9127CF799DD2D02A30D362964464ADCAE2C0C5FA92AFB7FD11
+CEAECE70291D6F6FAC915EFE01958BC43057D7B7B145DF5CE75C5CDCEA8B04A8
+572F0FB5586E6E235FA416DB9DE5BF236B465CDB08B27CDCFE02201D0FE09A0A
+FAEC3709579C643DC58065D6E49C0F4BAB3C9AE9FD4940C78F57D1959B3BCD31
+3C7DA587227C03E3BF8B66A3AAF3B8B2713A834CA8A796D7805554FF8AE86BD9
+A625AE7FA1E431C647640B4AC1718C054793ADC2FD296FDE66F31B6B1C43E014
+924D4C3770FA293C9B68CDE3B90A6E382A042B45E1767A47E890CF1AEF8DF011
+16B2FFE40153BE44269852E7A113D274CE18A6E432C8740A12AA9EC80BEA5504
+01313B92F997A6D65C69D157FB45DAA5C23176619CA3760E0CA75A67033FBE61
+6C74B7D88FC7DF1051FDD8064D41E81EE5CEF382270133833F93C270D3AC0AC8
+3CAC747391C22E4E89B720957530DDDD029A371C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR12 1.0
+% 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 (CMR12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR12 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 67 /C put
+dup 71 /G put
+dup 97 /a put
+dup 99 /c put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 117 /u put
+readonly def
+/FontBBox{-34 -251 988 750}readonly def
+/UniqueID 5000794 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
+59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
+51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
+DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
+AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
+45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
+821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
+96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
+9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
+26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
+140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
+1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
+1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
+377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
+0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
+5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
+ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
+FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB
+4370BA2C96960CE9E688231626B3CF1C23A31C5800D54F5BB64FC84D0C7D4998
+5288AF2722FE7A2629BF422D026F31E189E82C9A451AFF9A9C138164F0CCF315
+D76FD849BC98A74FBC93F09F9EDF85B13F8869F08699C6C90C58DD45CA958E34
+0DC970D40DFCF3FAB15BA18C1750261B02CE16097938C466291A55062345D8D6
+61F775EA958D3BE761207F828DDED3DF5DDF243C0A352B08B165D887245FC857
+2FBB64CBC928B34F2831ABD03C5CC0D29E0802F21B3BDE32E069E0DF9B54DD6B
+3D13D19BFAE271A6AFF16A8C697EB07C1432D59A2D2039E686028D3808009A17
+696738793896F91DE802D1B7509045B438CC7C62CEE684AAEC9214932EE9FDAC
+09A0A8914D22F5B469811DF488AF012A4C5EC81769698621D17B2D30EE858069
+49CA4A8061410FE24196ABBD37BA67A77E86A8B3B75D511353F42915D1314F1C
+65C7A16FD9523316061970F95DE693FB4DD6088EE2189C9DD4E22B2AD113FFAE
+37CA2695338CC2508BC52FF04F9A88367C10F60B09F24DA37AD881A150DF1017
+FE577A2B0CC891A38542F1CED14F6CF2C5FC980D459F6D1BAD15D6B952DF882E
+6076B5186F4B941069410E0ACAEFF0BF6431608163354082ED6D5B68021C0BD3
+C1F1B12CB7C7805BFC4A5A488920C77159011727EA004D11AC691AB11DC98FA9
+6EB7BCF534C4B4F8D6935FD970ECCB1C5B7196BAA1A9C75F0001194EE690A8DA
+23D328CF84C74A96F973BF202D851AA689BA7F0C99D3E2D9447BE0C2F6CCD2F4
+782652DAC900FA6AE01E9DC4AE0E539B155B24B1A67F85D5F96E1F51289CC943
+D4DBC0034E48481339A60639EDA2212916BC83EFD34D89A19FCFB720C231222B
+845551D438A20AC06DDF9A49E5FC89974A1336657390445FADA16744A094E7BB
+EE7079DAB01CC8A528B20DA4F20306F9EECBEDBB86636E8DF0C431575F551F95
+B2823EE823C0C8E02D94F50FCE3E6F7D2B1557D5B89F55297207F11D1547FC0E
+989107AF90947310EBD726F89BC1EFFC51B59449AA91F2F8F760995E5F388316
+6FBC13791D2828FED49E2E586943D7517395F9EE3CB99726D32853B7448D2834
+B02D7BEBF573AE4C1D887CB512F243FB16E4800567B0FE2C4A1E7B64B2B3501C
+B612926E9E880FA6E1FE15FA94DA7E1F1EEEDEF2303DC2DEEEE9BEEBF5FB4880
+82F6B6BCF38AAFCFC65062841C725D0B88D9761FEFF0BEE46B5D6B2C5A508D23
+AEF7D71F427F3339562A29FD432D70265238C4414A6D94BD13505148FBF3C8FA
+91FA94792E73082E619D946F9CD0A13B4D8DA14136901C04AEEF70105E4C3859
+28200013F68E11BACF8FD94CD56B69DCF855E83312E3B023276B941C778E9AA4
+B8CFE29C945151AA4E3BDF36E3CB06204EDD004B7CD3F6EBF3FF847D0018227B
+1206E3507554F062441A46BE726C97A1355CE7B053E7B1B4ABFA0C96E3E001B0
+BE07923F11E7D570FD350CB7C8E293A6C6CE7AE79E7F8309C95F80BB957A1AE2
+2A32E6A4F314540759A2AEDD0213E3D42D88344DCEE7B732432277DC8C734EC4
+6E7BB880539DDB8A687238E8403AAB5DF383216546B82825067CFF7FCC3E32A1
+B6A082734315B0506DD1060501FD87AE62CFB30BBAAA0260D9C875924EF68581
+A3A73771F84F6D7628D17291AA202CD744B8F394D3B7F619D0C4A2F791046EB0
+5B101501BCCBCD260F9BDE8BCE7A1E085E2B120ED9982841715260CE4B6BEC7A
+B26AE2794C53C7835112CCE3A057ED48E6FA05FF88D3C7F943FCAC35831A9258
+5A8FB6584BC3346A018E0B569992E6EBA31ACB9EC876495D3C0CE59A0A70DF62
+B9D056F2ABE55C47AB17C9BAD970CA3EF4403549803D9B5D83FFB46990A56BB5
+946CC09A4C89D0EBD31438788B19DF3B1EEC2AC9A426E21E3966A8A25069799F
+26A40EA6149DA6402F83FFA12774D942450668AFE2F771A41506FBC5839CFC5D
+F6100F7FAA6B04BB659729D463F3A3BECCC38F8D435BC168550E3C7E5B55A970
+05670D4D2EC83BCD057B8E3BAC3FE2A464EE17
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMB10 1.0
+% 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 (CMB10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMB10 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 39 /quoteright put
+dup 65 /A put
+dup 97 /a put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+readonly def
+/FontBBox{-62 -250 1011 750}readonly def
+/UniqueID 5000761 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
+A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
+99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
+2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
+C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
+00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
+B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
+BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
+8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
+FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
+31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
+2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
+9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
+EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
+69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
+CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
+87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8EA36BB6C
+87B9939DADA60888E78E14E626AE6717EFA40C50FB362A81EA3C4C5279819327
+CFC2ADF1D8DD65B2CDB9E3B5941E81AA802A5745A3A4148591AABDABF9A08F04
+66CBFE887F0FF82364F351928E7D4779E54A0FF53FD088E0FA50F3047F42AC28
+EC0AFE3DC1F380DA575D618D5CF337900631F57ED0A59EF0C84488FF48B79823
+47F34E75E63D07B10B9DE367258E80C6E5227B9F2BFB79E16AD1BFE9E6707199
+FD35D296B5BC55DEB7F9547A9898C608547C2BBEF1054AF18DECD8CCECE80B8A
+F52CCB190B0626BFBBF59C2E7AC15E8EF0E570610DF4053748E3C8555DD89D73
+942DBD8F1AC6072DFBF74FA57C65196AB859F0E6D4150AA7592E746AAC3E302E
+D406427CF7159AA524780548F603E7AA624E4EDE5870936D037618E92DBF02D3
+D1E9FEB1CF0DEA80D5646E4765991669488028A8B7B9DBECF8286FFE00FC06AE
+EDAE0ADC9E6394A2A330A3BA3E00BFFFCB8FBA98DD7605FE9D7AAFF070A3AE7B
+69593C8B6E0E9D10D1584F23CC19110073E5922B9CF0DD28E4C7D51BE7B76435
+AE678608B03EA7820962F3859970ABDCD860311B6E753FE843FA992C0BF910DC
+B86B86277FE91A964CD34E80E1AC3245CD004CC8BE7F0E704104271660A2C75C
+B9368D509994377616C0B966DB9A1E9FDE2F2D7C577047D6FEF9A79D538104A5
+0DF65A8BBDE8FAE9D3C64D9B4BF3C4E94366FDBA02DF99B7C527BE53D391E8E5
+F0BB566F8A42C4A92A3605C12B8808D657DC68E4F9BD58D26AC06B7E6C046224
+C349FE0EB80B822F171E27051C391B1EEB65E599FDF6076581AE5FD01B6DCBB6
+84A2ABD1E4B3045EFC6CCB27961E8FC6A3EC8FCC97BFB427B82A50098A907B82
+E6ADBD19894DFF74BC7B3798A06501F217811F12567E2F5431F8C3A82D4C5E94
+72A1B18C3CE4795FC1DEA4E7BDB127552F16E4BCABCFF2A574997BF2ED680B82
+8C310E717B81F3FD47906BA609A9833AA4AD9CC095EE3D1140A8126EE55A2278
+3F9FA28FBAA51AEF1691B39039C2D97EE2FC79FFE04ED5AF5921D20C560E4742
+ABA899568CD661FFFEE92D9E8802C2F75271D9D6BD7F5107CC3D03D8E21A40A5
+2F951C89EA84C8F742162989BCBB4FD74A8BB55CF6EF3B1AE5B6760951D5E2B6
+2DCEDC1F15CD0C99DB0E1FA9661EC43DF5DB9D1BFA117EA1CEE98153FDD636BC
+A38ABEA43C5D63BF895F9DE24CE6FBFB74224802BF2A24FCFD2FC8D38B0D0B83
+A8E631D1FA4F6F9B88C67A89B72C3934D6E759072602A05774FAF6C019440AD0
+5317137F3E70E51E3F0DC06262F9909EADF48417A46435076BEE48834C56D17D
+33D1442743D8E3F1733257A8C6BBEE9E5BF7089B28CB17222370714D6CBB4730
+C13BED5DA331A9ED85058910A8944DDB3862C7CAB2868D2D8C8C6B7DAE6705E2
+6F2E5BF45C43508FF638C23185B72E45A20B8F852AD6FB3F98E7B4A632B98B8E
+F49C4BEDF0F4D7701FBD00CA484AF80F5C0D07294E50167511107E75DBFB3175
+FBF983BA6D323D6E1AF9037341461A52F5FD775C9BE3B9A3DB9EA13E278910F1
+87CA56B76729B35336A7DA17265DBBE96C6B0D77AD2C47D4885785BA62C4CB90
+0C486E4DBBE774463897BC9D42007C5AA437FA216EA617659237DA625FD5373A
+335EFCD92D30D84996593F098847F73F1281AE13B97D7FBD19A9C819C4D00110
+BF6D100792D50E15042ED820BFED504744FD088855D37C4A4C3A12CA9344F981
+99DE37602B5F84EFE6452DB3B917D4F571B0E17C48586FC2DAB4481C0F495920
+36A22B2422D232FB3B69D1B77A316A59FD69E4890D74AB4FF9D45657C074664F
+7D0DB216E611F18E2184650ACC94B63C47F14263F522F0869A8BB19599E97058
+8C73C56CF2FFFB2F81D0D128E6C5E90DFB0BACE596E0B27903433DE9EE40179C
+6153768280762BDBCD0E6BD9B3C715E0A150677BE056BFD51DBF5A624F618E7A
+0729AEA869E2079FC2F969DAAE9D32FA705D24AB4D69FCE6678E2B8B7012B5F6
+F5449C2163726624B49CFD0051D7CB552C30F0986E6FDDED2E90F9BDD39F4072
+1263CEA8AC5855D02F651B79C10593507AB630CAA3D0998CD6B0972BEA297DA2
+B7D9EC25296EA7F59925E53F503BDCE2A0AFC64C1A64A29D5160E6B08C71909D
+E297A5CB5A398D7EBB12AAA01D300C70073B39ECD3CE3940DED4F491A872F628
+8BF40EE2F085DF947A28797FB7CA7FEE0C6981C89CC68F322B5E83DACDEEAAED
+66DA926386FF6BBF82109967BD427308F40DDC79ED73DDD5849EBD609DAD4C5F
+719B2D04EB9D04DBF27B40769677188D7670968E5AA3BCED8E5DAE6C201BB7EF
+1621301F49D649C948B916390BBB47CA60D0C3F7CF888DEA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 40 /parenleft put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 63 /question put
+dup 71 /G put
+dup 83 /S put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
+C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
+4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
+12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
+86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
+88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
+62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
+71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
+4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
+63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
+D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
+702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
+4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC2584632973B223E128481FFD5458C
+1D90E5BA815DE9239AED29DBC31C66502FBF95B1BEB72174CDDC64B1A18AB3A8
+18395976ECCDADD00E05ADED05A1116A6B1EA4A21980C0EA58C48022AF810634
+3F540BE1E0857C0316572E489C72557EC92C0811E0A86655F86011EC26234DF2
+33A0F99927AEFD354AFA3929E73C4D1CDCA3D89425D84DEC9D394D8CB277E568
+E7F8A54E3A00B6969C792BDC7A0D1E4C58D0792CB7850C8C6A9A85446484C39D
+C755D1231C42608FEFDA72002F63C15E2FBE3B7E9402112C543CB8289EDEEF63
+D31EE112BB33C63DA84F73215EE783B9D9F0FAEBD7C1949AF55F58703AD93DD9
+AD543DDB096C1F197CE7EC8BBCDCC76A00A5A9E6F2AF056C92481EDE53F52CFF
+8E830A8B6CB970065A8D8687F196E32B8F9F3F2B3C6670983929A77AA2E15AA2
+6DB6EE65CD38A2A8207ECD3A4447F436D0EF0B9445FCF1712D34CDD4ADC9A275
+AEEF2B2CF35CBE6F49B8544DBB38CCE0A32AE15BE2EB7F51E77BEB0C63674424
+EB0486D0912BE4D6ECB15BC2F5CCBD793C0758046FA7BD6C7F957BF96A8EC794
+171CA15FD9F75DB00760188776BE43A48CDBD659E4E66571045A39F49468EE25
+80BD580B907324BF32FF93671E567EFA2D8E0BF3744798A06C247EA4FD65BEE7
+BE9989EAF5B8E198E8F937133E3A8AE287A8DF0E010638ABD9D0BA0A589332D9
+76A126F13D8842E1174019BF663CA592759C4669B1AB0F9667A3AD0C9C310C62
+E2FC83A5EEDF20A3BA66E2ACB093B0F01C0C54EBB878B4CB678A2032B783D236
+C7FA32E2B134B36850379B1F747F1354E70EE251DF57B99FC7FCFFA00BA15340
+AD91C35F48162911D538BDFAD841D6995BEBF07B96D88547B6286D3145E237AB
+6C097A0A612998946401FBAA92A0841A6FCF4678D8481CF415C9BA8C3245B61B
+D829F2B709BC63D7E8C1C032426D1D36BE103A82B0467C6B1DA7CCF7811143DF
+10349AB0D587587E7965230D82421B41C33B8326BFEE60EEA6B1D66C49DC8B72
+74742D9947C3B049D630377A9ACCAF46FA262064E1BA6E861CAC7CB75A259398
+4EE4872F0D120E85F6C9015A3F4EEB5DFA7E450ECC2261752438425907484021
+5B2F86BDBD569EA57802F421CF273A0409A56C76F551B2F60D845C4AD9530EAD
+21DC805903922C8B1555C690DB54D28E029CB67AB023E617CD9782F8C385ABDA
+D3CE300FEF213422266C4A6328536B67697DEF9298F83B14AF554F52A675E0E1
+0E08576368321BF31F96391A6CAF3E30D6E887D74DC1B1A4F144DB945AA53144
+3D1C53E9DCF6CD6026D2AA1213B92473235DE61A6EF0A355CE4B9E7E91F59562
+953253A41B658B9A368A6CDCE3F9AA5BF034BF3C16B9C2ADD26651799CEF4952
+E85131F539A0729F2CA8690E935B074B202241F06EC07BF6141D188FCE7026B4
+66A5431CC867B6892460D8108F2F07C9FB0082EFEF87FAC7710AD0368D54D25E
+49CE016F8996181E4F34DFF29D8E897B239C67FDA93FBE739D85AC448B58B60E
+87AD878A34FC239E53FC43402AECF4F56FA8C4A0DBB40E5F5566424482ED3A8C
+97C5B6CE362A2A2BB7C6EC8DC4D4ADE9F6477E52960EFD6EABDAEBE710A8CF10
+5F2DECAAC2B970F5D3D039FD7728A784F3CDBED6393A42FDF06E7FAB889D5247
+8CF1696852E057F28D75B553496F0DFE7E38207C0C4BBA87AA3EC796B7870AF0
+F66EE303428DB37A919F6D4294657A0069B5A4654A5D86AC2652BAA95C11D1DA
+60C8B4F8E9F2B629F5A403C207C4521E3B7FBD24DFE37E30E8A8A7DEEFFACB23
+5A567A89F43B4F4D28307D573C9AC5A8DB3F61F1BF1347B3D49839B935BE0671
+9AD4EA0D75430F5B609C8F747321C19ADF63A1CFCB0C733954A9207DFD99193D
+6A1C8181C6C438B6AF057E21AFAD19F31B962B356F1AD271E6F7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 45 /hyphen put
+dup 46 /period put
+dup 50 /two put
+dup 52 /four put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 83 /S put
+dup 90 /Z put
+dup 92 /backslash put
+dup 129 /Aogonek put
+dup 131 /Ccaron put
+dup 138 /Lslash put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+dup 197 /Aring put
+dup 200 /Egrave put
+dup 202 /Ecircumflex put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB9685462A8D186BFB195D91EE1109A9CB8BA9FE46114B4834595CA6973C
+7B5548E265972854CB21F9A13E3D8547644471145C0A7B7A6792298C740DB643
+56C099DFC3C658095EFFDB41A137F739897DDC9F0BD87094ED2C21EC501CB243
+B9A75B978F399215FE2EA1DD52681513E5040B6FE8E50B513F3F5827652A0C50
+594BC927681A4B85236136C4A980A62CA1E3B89862EE64378E0F255B34CCA86D
+B877F95E2DE6AFD3DCDF7EEC40BFA23C3E7271BEF2C4552F49F59D629E51B8B4
+E7417B181BC8D460EB6518910AD4722CB9562A9BF80002A91F4A251DFF1C031A
+6806D1C498581E9A00F39FA8E1AD778FA855337127C6068B9C7924ED590063A5
+4E4F941E744568F5488964D6B122E008C4BFA9DB26BAADFA11D7B81B16245C8C
+F04EEA395CC080171DB42A817743226635A3A3DEF727056EBCF0C77692190E41
+BDCED59FE781DABA153624E7B1C8ED1FBE5EC358BFD2DD3C150EA2DA8179B45F
+8D09D1F687437A337643CBDF9A16487327DC3C2D168C150982215B6DA065A4EB
+6E539DBFEB15B3836BDB5E8A19FD01D984C301239B6DFF467CA850631779F7B2
+329937C757244B1E80EBC5098C3C5604D0F3C6B770ADA4AABD72C2110E9C6E72
+4CC33E25518FAD3E211EB59728E316C326E16CBA7735B57748AA42EC8C43CE8F
+FC9D1AEB17D8962C9926BDAD1AD4AF852F335A9B6EDE657419792C008F42B604
+C3343DCF7FF63218743DCB29FDCD3A079BE95A6FC8AD660D65DE290EAEA4A0A9
+F78170889394B3C9F73E00067289D8BA8D6EFE55742F76FA4A3F1D73D3F7D5DF
+D75E50D5832B28701C81C143F623AE15FF2AB2E20C666F3F2E183B6F14560830
+4C84B6D6F5045EC8E3E61244856C0EF1162F9E231DEC58275F977DCC558E820D
+AB918FCB9EBA14713CDB2DD0E54BE4F2FFA915DB590EF21EE2C1B69F6F554B83
+BE133269E798BD2E4883EB6D6701D9BD11323EAFEFC1801FCBACF0CF8B8F8EEB
+EE82D396F2A3B3A73860BCCC022BF75EE12D20959A5997470888384710FC7DAF
+01580CE9925712FB15486A51F72C9C2D4E2B0DB1E5A1B3E86C1E9EC0199F7454
+8D1C9A49D9C766033200FD0BDAE4E800FD6533C379036925E9D9D9E6C1213988
+B2899461AFB63550F2A7E0DCF66CDAD1CA6836E9039D008984D6864E5D964CE7
+8022D710BCBFEE6A59B9B34DA0CB1E323813309CB7015A2E9DD9CD3CB4F2E86E
+3DBE1096A3E901FC2EC5EB593C89F4FCF8F01C784A266DFA0579EAA5A7F4E7CA
+50F4A12C26EAB09A63470DC0CACC9D5B98ECA75CE333C1F6ACF79B6EF88FE126
+95EC06F1332A1865EAF1316BFAADBA913556F35DECF6FAB4303B76D12F0E2350
+45B8626D4F48D7FCFA6D64F94E591CED467A817D4B14BE110E7090BB6DBC7C73
+385184FAE53EE1785D4B928C2D3C21A04A8232D0A84D7A992A2690F33B98EB48
+DEC7B9BD9FFAFC04E4E70BBEE71CA2686BAB8454D5CFDC8D56EC8A9373E5B354
+990DD4AE5DD1E1D8F889E679AB5E5611F3ADCEB7A9FFA31823B580081B223542
+0FD6E15BBF3D47D3E9289B5F4B610CD07DCC76866B2A25B47130F24167D8C3F2
+F91D8423B46D64DA82AD74FC365DEA4DAD6F272745D68529772DD689CFEA6042
+7A85D710E0C35F5B503B3278946AAA7D1D5278744DF2B9B254C074CF99003F15
+57B7979B9C7E61656FE6D00F3E871684AF08EE786E22A19579F2BFE1C5D08D94
+FD1D2A9B7D11AFA6EDB8194DDA6901D7CD0B50974D0CC24CEB074C40D4363B4E
+68146A833AE22AEF0DA100357050D8DDC725E7A893DAB1AC07C4E38456787364
+89BE5C0400BC295EE9504E97C3023B6729331CEAC20E2292ED625D30ECCE324B
+58941E79BD830362C3A2A2F63DDB7E2CDA94DF2AC0F91C0CA120F700432D751D
+9D3FE51D9D7EC0B9B914DB5485C187CC7A95A4192331018562E8798B7FD14C48
+BC09477CC35F855D4A16FA09ADD2A566538E4529F4CFC1AC58DCAB048D5E2D67
+7742AC7130538C071F896A4E2087D273D71EC87EC61B9A5FB73862BA7CA57CC2
+CB5D9252A089A8312CF5A686C9002A805F8FC7D034E7A0385A33645A63B74620
+103535381525D7E90F5CF1E1677C4B945D3C077974B769505E0704E07139CABA
+9B6630F6D21EFF4085B9D23E09872EF3CB9574B9673470BA040A32D6AAA66F72
+130A6F44BF1BD0DC620109C103595819FA81AA13063AFD011F4D2028266551CA
+9AFD20CC6280A290087C0E37C7470D59A23A0B2537A3663ABB526CB6FF04734F
+F41B5F9B43E7465251C8A75D07E77A5C387D91D8D5AC3F293E1C65E8D4624072
+55E9A11A36CDCA286E2877E89FCBCDEDBB49FA0E002C8EC33208485FE7AF3543
+AF6DA7D771D8F597B4EA7652A25257962F5FE182D7AAF823A8E89B5F3159A6AE
+AC3CB9930DAC7311423D447243A4C78C216D1128A94FCFAABCBCB88D84ABEDF3
+E31A6447AB94F374F8AC31DC051A2BDAE241C11E604CE1F3D1F8A23493071A0C
+E71F68BD86D3B1983944D97BEB31B458F642F834B7A7A869CD18F9F9B79C883B
+2B91FB1BA8F71112547A7D7D9D2F7EE52F5DB930CC7B6D0B78C031DD50549F70
+0C21F74EFF50C9BC76F115054D8B91AC9480DAFAE67331D7D4521240C113BCAD
+E6383F30E957DC259A2B258B6AC96B24AB89D86A46886113A8970B40252EB8C2
+60BA8F921197C488C7CE6639C904312EA22508105EBA7B26F5153A4A9C6CE061
+1606F965A610A2CA59A5B4B84A9D2810F32EB3813FBF9946AD4B43AF011E56B1
+1C7BC7D64D06EC98073D64F834F60310DC880DD87C63BB36AA2B2E2458A6DEE4
+2F7F0061427661BD2F495FF69F23485A2064D92586DBF6821B8BF18E6294E2B5
+3E999BF796F25984B4624E705CE53F869E6A665C22A2270ABB03D5A706E3B5BB
+FCCA5CF090EBC1E53A69F1ECE5875892D7FBA6A727F2CB24A46A139E7BD165F9
+DCF14293A62B78AE97AE9CA76C2038AE8640C219C6D2446859F237F8B871F433
+F7E98BA78C2B52608302D9988C52B0719647715672C9C877B7E4F261A429E2DB
+7FD30FB8A5681BFFDADF38DF5F540BFDBCBC68B3731F75511339705F2B882666
+CA282472D3D35DDB471B77E854F5876E2A41C63D31AEA592479D4BB8B31C6416
+5ED45222F39960CFC268198EFA04375387505247D09E986A9902820D72983925
+9713A5F51460211A17CCFC09188158AE2D823315A38F22882BAC40518720D034
+976CAA557E963A39B4715EF762CEB6A026E523F6212384716FF3E90C10298B47
+2AF7539E7E11815631124EF302E84EC639BD4EA95893D3590BCFF1D1125F6415
+9A7DD06067B9FCD7174736A57F1F11F8AC40BE09C8E3760C353120CB155F93F1
+84FC7DAEE9D12FDE3B37F6BE5F347D6CF026AE3FC17A8CDBB183E2373E4626A1
+6E980E2D52E0C17A76B8E42FB48329039C68638916020A8EDC659EBF0233B5AA
+D866EACC35D756882837027C69AF03B5103CE9223B9D6EA655D50F204C3F7277
+2E6DE152B244DB2F44CB088236A31CC9100531A62380C2BE607A1C170FEB4EAF
+0C3D1AEFCAFDC120FF4C851DDAC857CDBB78521A97C91B7417B92B9CD541D98F
+100A6C501E0A57DE9BE6F6B5217644F8855384A09BC0AF8668EC2E50DE63123F
+85316B1F9F215FE93F2A9BD2F9EDBE2FAC02A4FE47E81007CD148BB5D4E86241
+AB753C3221CF4744AEE68E5CF929269A0626A61EA1ED78BFB6343488EFCBE1B9
+77EC4CC4680AF3CC4323F9CC2B62339B839947E1E27B831EA0A8B4ABE1A402AC
+E92CDA9B9ACC156A073647F498E6288251B27B781C476A196840998C1F47473E
+C4C62D25B1ED56BCF537451642253CD69772FFCA61972A2CBAEB2576D1E0F8C5
+424FE2B3DBC0742B35F3BCC49112BA83C7D648D109C9D48182213F1B48224627
+B7762296902229C264B1C0AF9A99702A8D11CE809CC2E4642E75FF143F980BA3
+91DD9EF780B92A7377F932E280F44CBD0A30AC10E0ED4AD82E3DFF6185BCE800
+C064EED575F8C7A0F18B2393C3ABA2BE74DBCC42B627C72EF5D354BDA1425FF6
+58B698F37B7B59226CBC34EC86D24AB4FE5D3A51A2AA1010508D9251DA6778E9
+48D28B8F613D10CD545A4CB32ACE352C0EB9D18834E09B75A2A14E00DFD63294
+8DC202C0490E2B44BD08F8EFC3D60C733B6908467783997CE8BC6B8AA4D69FD5
+055351F7123E9E3F3264DA88E92C5E780199559258BDDA7CD4A1AD4CACBEB2E1
+DD7FC79766F0ACD89F8E85F1C64B0804CCA22BDE79F5C29D8E74DEF849C1DFFF
+95D2215212513CEA6F2C00C6B9B53A0DD1602A4DBB136BFBA5E8A9C1D5460FE7
+C7E75AEB19A58643F81E3C919AB6DBDCBC8D5A6D7D19B17B52371E4712A89839
+4EAD3511F8967789B89DF60E196CF6FBB84D9F7157923AF29EBB029D4988747C
+E94A7F108E1F356E29AB1C0B2BACE005E1D9D45053341A995E2F3F749919111F
+9718
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 67 /C put
+dup 83 /S put
+dup 97 /a put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
+BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
+72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
+5EE89221BFD28AE8117B69C0EDD6A58ACDDAE1AF77CC8602B0803A063A78E590
+6228BEAD4031FF82DF1C414753313B1CE7A0FEF2546F18F026DB52C7B9D56FA9
+23145E410B55F2655D12AF85D3291DAE7E838BDFA9A27F61407B392A4FBEED5E
+13E9176E7D52E4560C2FED71C6F18977226B49C37DDEEE11AAA4C46FB141884E
+934DBB9595C82C9FDB8E6C8C4D6A223490D0AEA24EDDE28E6D64F7ECEE30F0C2
+EA32F09B32CC34C36090E5896EC05400FD932A5DE6D44840E453F70AE55A0A09
+9146720A839B0CCDC4905B7C138792A09C7BE08D9FBC35566A70C5485ACC6988
+E11F60FC89F391E7AEE3D61FD567E6C4C2525D7F05A3B2C05CD88821862ADC60
+B9F25AC90893F79C4D1BD69AEC40E2FF06F0F32258E705E65D98A4770EE07815
+F797C2674BFE0B7A3B73A688930A9B6DBEF337D4942F98CB509A10544664C418
+47BF2D9FC9A6E07701488BDBF8AE664F40DAAC18009EF4059E9EC0938F4B65D0
+252C92989C09FA3061AEFE5C9C70A03744EBC1611583BAE9C0A3B2A937C26AFC
+9D6E889616B63DE1BADBD472DB792B10985737ACF5AB54CDD888E11C369EEB5B
+70A6F9F90FFE8BB6D869B2E73975E27C799EB04AAD217C1E9FB5C370FF95D282
+33FF883BB8FF49402A7C5B7EB5D4D4B92E4473E2BD66F6E8C97420B2B4895806
+0EF5F860E80248FC251EC656BE08757E9CBB69EDA5482C95B1B2A9DCB2E0DA3B
+88FEAE4D89D8D0C76B8843BDDDB1083500E68E2B1759B4C6B88009240160DF4D
+A93CDAF97714B8F7316834CDCE52194E8DEB837AF42FE7732D236DA764C37750
+A0512EA79E41972BFDB345E48906BFBD65B52CBB4BB2488825AC42FEDF0DC62D
+51A7EEF82E5E5D210CA341F0341116EC0E30E639289584EE4267EDC27BC77BD2
+3BDC306EEC0220F4F2EF8A2692FE0A72486FCD2BEB81968807E082F3783D7101
+861AA446FC0D31C6E327721D38F0B033901B72532528F6E0BD824DA390315E07
+B547182C8C9C7FCA3704E8CFBBEFD2755C288602B31576376C172FB8FC99F9A7
+4F34CBC57ACA336C94A0DE922957BDCC3D95D7EB62F68A58CC23DFBEEF48768A
+48A5BE9AAAEFE1929D0662229431677C713C631DFAFF8D39CE04B4A7C36FEE5D
+CF506D9407ADBB50E30C7E92E9C3E41F72C9A3C47FB0F1247E493BD3DFE81CD0
+E85B3634F20D53B49B161B042EBBA935C0E0A6AB565ED44E44B2843E581D53E0
+83D099E0A7FF88B0C9002A84172FA6D6BD9ED95E167FEF868207B7895C5F18E5
+81CD8AA7E1260E2CA141F5C6B78DD8D745A3A9EEA2B3825CA8E53827C51D3BFE
+9F6604951244FF5B09E9C6D2A3167E202F3EF55CD74E31796481931EEFB7DC43
+3EF68519F7648E007682208E87F41916555261748F6CD6BA8BA548C482E88A60
+53BF3E0AFF2E3BBDAF3522F1B41A81FB3BFE26B4584C8E32AA147C917C3822DB
+BDC91E06E7E46DBACC29FD6190C4F294D8DB9A9471BCC6BDA32C71C13C48DAC8
+AE3D3F144294904FF608058F0B543A2DE3186AB08A3D930C529F7E848F71BCD6
+104CF90D1828E1361A9487C23A80EFB9261573B9F234B0B43BCD35EEB3F6B0B3
+0909C29884F801D005A1026658E2893D3F4DC5C5C69671F759DC0F315738275D
+FF02FC8AF9EE50C8705DD1E7761EAE3618345A611558810C0C8F14285D5E4D32
+9F74E994984F77293882016123463DD07C43E0D66FC05AD4DB9F1AE0FC67FBA9
+C908B5A2AEC5123590D79092BB6041A65D70A5B8A374E7EBBB31B97CA1076F2D
+AEF0C22D77E79A16064C2265CC78089DC98452E95E613A89714B52180C4B4AFD
+838877ECA6DBEF3CC7D20D1EEDE3929E3F94B6A63718DB669427B91CB2803886
+08DE53D1D22FD62C1A7EEAD41FC68759FC8A54BBD929E1E191F1CC18309AD684
+C9C51D1A7252C03BA4E1942289E536F4E191C0051E20235FF8EE23438BD00C5E
+27CE47EB4E4DCEC5BEAFFA95984B177C0EA5D1A64F75D746840A597A0B477BDE
+63C3EF3C4E1879B2C052D923428B003811AEB03FEF3B7C8D86F1E51394ED55DD
+14F3F9EF169F5509BAD5C9DB99FCBC458D7037A46CAC664064763210A0D43ABB
+CFC0A9C8B3ABBCE0B75A6B80CF500EFD043CB0955D959B5C417376A576447E7B
+E076D4D1BD4A36693174A43A34771A2EF4A089FB0CE8EB0E285E19824049AABF
+161FD0E98A55E0037D7FD4C811926623756E0E1F3AE388F299567065BC55D7BE
+6FFB5907015CAE18E4E2C86F9F99B77CB3159B46E1A61A558969D621714D303A
+41DCBEECD2D97F216AEAC845C4A45BE9AF143827715A1FE671847EE2F8DF2EDE
+5F89D890CA410D0614A3A0349D4173E50EE0F4D97521CB974E2DDEA9073D77C4
+DF49EBC8F2B26243020F9F619D4BA0984BC74BCCA2C9465AC2642896E817C076
+52891681283D056DFCA9157458A4D18396BF0AF34B7926CDBE1066213E111126
+5A7FA968596D73A578EEB21E4F84A8177757F63DB6A8D969D605D073C0381E14
+DDCFD706CC6ECF3BD35AA8C751DBFE15E52586D0953506F5A1049F072612E814
+01D3376BFFCDD837B7AC2F97D1A2291FB1DA5C1E7B1045388CC8FC9625ECE3A8
+8ADD7641265C805C4605C0459005265339F3E488BCFC3444ED6069FCECD621CA
+6483EE193B1FD0EAA7B8527DE12825F4CDA3A2539D89ED8D07454A08F6709FCC
+E6E2A69DE1A16232E7303A0D3BEA6DC655BB977A09A301D875A8DA34AB354552
+F1148892767A1CFF8DEE1593F7A40BFD77A047C9B3A25890984FCF189E80A748
+1A7B79EA99649053B3A8B3FB1116524C8439589C3030AB7875CCA1ED6738CCEA
+0852662239E33797AAA0519540A17CEB94124D499F06219B7AF2F410AABFEFA5
+86BFF51D4622AA5D7873C77E016AD925E5D4B2431D8423BC9D56000F7B61DFA5
+46637C42EF5160CC4C1DB7E0C24C604579B34F8C063E011E0FD306A7AB3B23ED
+7163FA717AEF2908F657EB8AE94ECF91
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 160 /abreve put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
+EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
+3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
+B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
+16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
+DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
+A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
+DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
+710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
+D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
+19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
+852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+TeXDict begin 39158280 55380996 1000 2540 2540 (imp.dvi)
+@start /Fa 206[163 163 48[{}2 316.314 /CMR9 rf /Fb 161[351
+137 36[176 176 176 176 176 176 176 176 176 48[{}11 351.46
+/CMMI10 rf /Fc 132[176 5[195 137 139 138 185 195 176
+195 293 98 2[98 195 176 107 156 195 156 195 176 12[254
+2[273 239 14[264 6[98 1[176 176 176 176 3[176 176 1[98
+117 98 2[137 137 98 19[176 176 18[{}39 351.46 /CMR10
+rf /Fd 138[229 5[206 229 1[115 2[115 5[184 1[206 25[324
+3[298 67[{}9 421.752 /CMR12 rf /Fe 141[312 1[405 364
+405 607 202 2[202 3[340 3[354 31[551 25[202 39[{}11 728.927
+/CMB10 rf /Ff 59[1125 112[281 11[450 7[0 8[169 1[169
+1[169 9[0 30[0 0 0 6[0{}12 562.336 /TeXMUSIX16-Regular
+rf /Fg 53[1125 1[281 2[2249 1125 562 56[1125 6[562 1[141
+36[158 1[158 6[351 9[562 1[562 7[0 0 9[211 1[211 3[0
+0 3[0 0 30[0 0 0 6[0{}25 702.92 /TeXMUSIX20-Regular rf
+/Fh 138[189 117 1[148 1[180 180 198 4[108 7[180 13[198
+15[251 67[{}10 351.46 /CMTI10 rf /Fi 95[0 160[{}1 702.92
+/TeXMUSIXSPX-Regular rf end
+TeXDict begin
+a4
+ end
+TeXDict begin 1 0 bop 323 5395 16765 15 v 323 5571 V
+323 5747 V 323 5923 V 323 6098 V 323 3779 V 323 3919
+V 323 4060 V 323 4201 V 323 4341 V 323 1670 V 323 1846
+V 323 2021 V 323 2197 V 323 2373 V 323 6098 15 4436 v
+323 4949 a Fi(\240)-1552 5860 y Fh(Continuo)-1465 2135
+y(Sopr)-18 b(ano)323 5564 y Fg(I)375 4193 y Ff(G)323
+2190 y Fg(G)903 5916 y(2)906 4053 y Ff(2)903 2014 y Fg(2)1131
+5740 y(S)1131 4053 y Ff(S)1131 2014 y Fg(S)4257 -283
+y Fe(Amor)243 b(l'ali)i(m'imp)20 b(enna)14515 363 y Fd(Giulio)138
+b(Caccini)15232 784 y Fc(\(1550{1618\))2032 5564 y Fg(\011)p
+1990 4482 296 15 v 1991 4622 V 2034 4615 a Ff(\011)p
+1992 4482 V 2035 4475 a(\011)2032 4264 y(\011)2006 3078
+y Fc(A)2032 2278 y Fg(\011)p 4547 6091 15 703 v 4547
+5388 15 1617 v 4547 2366 15 703 v 5037 6531 a(Z)p 5005
+6354 15 615 v 5006 5740 a(\010)5005 4404 y Ff(\010)p
+4963 4482 254 15 v 4964 4622 V 5007 4948 15 545 v 5008
+4615 a(\010)p 5167 4264 15 492 v 5006 4264 a(\010)2845
+3078 y Fc(-)1153 b(-)576 b(mor)p 5209 2278 15 615 v 5006
+2278 a Fg(\010)6814 6619 y Fc(6)p 6986 6003 V 6783 6003
+a Fg(\010)p 6740 4482 254 15 v 6741 4622 V 6742 4763
+V 6785 4756 a Ff(\010)p 6743 4482 V 6786 5089 15 615
+v 6787 4475 a(\010)p 6944 4264 15 492 v 6783 4264 a(\007)p
+8202 4334 V 8041 4334 a(\007)6906 2419 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.50002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (106.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 6906 2419 a
+6783 3078 a Fc(l'a)p 6986 2278 15 615 v 6783 2278 a Fg(\010)p
+9297 6091 15 703 v 9297 5388 15 1617 v 9297 2366 15 703
+v 9960 5916 15 615 v 9757 5916 a(\010)p 9714 4482 254
+15 v 9715 4622 V 9716 4763 V 9759 4756 a Ff(\010)p 9717
+4482 V 9760 5089 15 545 v 9761 4545 a(\010)p 9917 4404
+15 492 v 9756 4404 a(\007\000)9861 2278 y
+ slur@Dict begin (2.5pt) GD S0hgt (2.5pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 9861 2278 a
+9861 2278 a
+ end
+ 9861 2278 a 9960 2278 15 615 v -104 w Fg(\007)p
+12063 4334 15 457 v 12064 4334 a Ff(\()-162 b(\007)7740
+3078 y Fc(-)1172 b(-)g(-)586 b(li)p 11217 2278 15 572
+v 11218 2278 a Fg(\()-204 b(\007)11617 3078 y Fc(m'im)p
+12106 2190 V 12107 2190 a Fg(\()g(\007)12822 6619 y Fc(6)p
+12994 6003 15 615 v 12791 6003 a Fg(\010)p 12748 4482
+254 15 v -1528 x Ff(\010)p 12749 4482 V 12750 4622 V
+12751 4763 V 12794 5089 15 615 v 12795 4756 a(\010)p
+12952 4264 15 492 v 12791 4264 a(\007\000)12535 3078
+y Fc(-)138 b(p)10 b(en)p 12790 2717 15 616 v 12791 2102
+a Fg(\007)p 13417 2717 15 703 v 13418 2014 a(\007)p 14043
+2717 15 791 v 14044 1927 a(\007)p 12790 2628 1894 85
+v 12790 2759 V 14670 2717 15 703 v 14671 2014 a(\007)p
+16346 4334 15 457 v 16347 4334 a Ff(\()-162 b(\007)p
+15500 2102 15 572 v 15297 2102 a Fg(\007)15501 1531 y(\303)15833
+1548 y(\303)p 16389 2190 15 615 v 16186 2190 a(\007)p
+17073 6091 15 703 v 17073 5388 15 1617 v 17073 2366 15
+703 v 13912 3078 a Fc(-)1129 b(-)h(-)17087 6091 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087
+6091 a -1540 11092 18628 15 v -1540 11268 V -1540 11443
+V -1540 11619 V -1540 11795 V -1540 9475 V -1540 9616
+V -1540 9756 V -1540 9897 V -1540 10037 V -1540 7366
+V -1540 7542 V -1540 7718 V -1540 7894 V -1540 8069 V
+-1540 11795 15 4436 v -1628 7052 a Fb(4)-1540 10645 y
+Fi(\240)-1540 11261 y Fg(I)-1487 9890 y Ff(G)-1540 7887
+y Fg(G)-960 11612 y(2)-957 9749 y Ff(2)-960 7711 y Fg(2)-294
+12315 y Fc(7)p -326 12050 15 615 v -325 11436 a Fg(\010)p
+-368 10178 254 15 v -367 10319 V -366 10459 V -323 10452
+a Ff(\010)-323 10382 y(\000)p -365 10178 V -322 10785
+15 615 v -321 10171 a(\010)-321 10101 y(\000)-174 b(\011)p
+-122 7974 15 572 v -325 7974 a Fg(\007\000)661 7496 y(\201)738
+7492 y(\201)-122 7403 y(\203)316 7381 y(\203)p 872 7887
+15 533 v 669 7887 a(\007)p 1444 7974 15 572 v 1241 7974
+a(\007)1445 7403 y(\203)1700 7391 y(\203)p 2255 7887
+15 524 v 2052 7887 a(\007)2894 12315 y Fc(7)2986 11296
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.00002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 2986 11296 a 2863 12050 15 615 v 2864 11436 a Fg(\007)p
+3067 7799 15 616 v -3637 x(\007)3558 8027 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (0.99998pt) GD N /S1brk
+S1hgt (2.5pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (106.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 1 N end
+ 3558 8027
+a 3068 7358 580 85 v 3639 7887 15 703 v 3436 7887 a Fg(\007)4112
+7887 y
+ slur@Dict begin (2.5pt) GD S1hgt (5.0pt) GD 1.6 (2.5pt) GD M S1dir
+M A S1x1 S1y1 CP (4.00002pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 4112 7887 a 4112 7887 a
+ end
+ 4112 7887 a 3067 7226
+1152 85 v 4211 7887 15 703 v -104 w Fg(\007)4692 12227
+y(\\)4850 12315 y Fc(6)4923 11436 y
+ slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 4923 11436 a 4923
+11436 a
+ end
+ 4923 11436 a 4818 12050 15 615 v -104 w Fg(\007)4649
+10241 y Ff(6)p 4776 10178 254 15 v 1 w(\007)p 4777 10178
+V 4778 10319 V 4821 10715 15 474 v 4822 10382 a(\007)p
+5022 7799 15 616 v 4819 7799 a Fg(\007)5513 8115 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.50002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (106.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 5513
+8115 a 5023 7358 580 85 v 5594 7974 15 791 v 5391 7974
+a Fg(\007)6068 7974 y
+ slur@Dict begin (2.5pt) GD S0hgt (2.5pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 6068 7974 a 6068 7974 a
+ end
+ 6068 7974
+a 5022 7226 1152 85 v 6166 7974 15 791 v -105 w Fg(\007)p
+6773 11788 15 703 v 6773 11085 15 1617 v 6773 8062 15
+703 v 7397 11524 15 615 v 7194 11524 a(\010)p 7151 10178
+254 15 v 7152 10319 V 7195 10382 a Ff(\010)p 7153 10178
+V 7196 10715 15 545 v 7197 10171 a(\010)p 7355 10030
+15 492 v 7194 10030 a(\010)-141 8774 y Fc(-)1183 b(-)f(-)g(-)h(-)f(-)
+591 b(na.)p 7397 7887 15 615 v 7194 7887 a Fg(\010)p
+9020 11524 V 8817 11524 a(\010)p 8774 10178 254 15 v
+-1353 x Ff(\010)p 8817 10531 15 501 v 8818 10030 a(\010)p
+8978 9890 15 492 v 8817 9890 a(\010)8816 8062 y Fg(>)9938
+8774 y Fc(A)p 10168 7887 15 572 v 10169 7887 a Fg(\()-204
+b(\007)10331 8774 y Fc(-)130 b(mor)p 10979 7887 V 10980
+7887 a Fg(\()-204 b(\007)p 11587 11788 15 703 v 11587
+11085 15 1617 v 11587 8062 15 703 v 12038 12227 a(Z)p
+12210 11788 15 615 v 12007 11788 a(\010)p 14506 11788
+V 2296 w(\010)p 11838 10328 15 439 v 11839 9890 a Ff(\010)p
+14260 10178 254 15 v 14303 10241 a(\010)p 14303 10574
+15 474 v 14304 10101 a(\010)-2298 b(\007)p 12168 10101
+15 843 v 12007 9749 a(\007)p 13112 10178 254 15 v 13155
+10171 a(\007)p 13317 10171 15 843 v 13156 9820 a(\007)p
+14464 9890 15 492 v 14303 9890 a(\010)11878 8774 y Fc(dol)p
+12006 8325 15 615 v 12007 7711 a Fg(\010)12752 8774 y
+Fc(-)811 b(-)406 b(ce,)p 14506 7887 V 14303 7887 a Fg(\007)15468
+8774 y Fc(a)p 15654 8150 15 572 v 15655 8150 a Fg(\()-204
+b(\007)15796 8774 y Fc(-)151 b(mor)p 16466 8150 V 16467
+8150 a Fg(\()-204 b(\007)p 17073 11788 15 703 v 17073
+11085 15 1617 v 17073 8062 15 703 v 17087 11788 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087
+11788 a -1540 16876 18628 15 v -1540 17052 V -1540 17228
+V -1540 17403 V -1540 17579 V -1540 15259 V -1540 15400
+V -1540 15541 V -1540 15681 V -1540 15822 V -1540 13151
+V -1540 13326 V -1540 13502 V -1540 13678 V -1540 13853
+V -1540 17579 15 4436 v -1628 12836 a Fb(7)-1540 16430
+y Fi(\240)-1540 17045 y Fg(I)-1487 15674 y Ff(G)-1540
+13671 y Fg(G)-960 17396 y(2)-957 15533 y Ff(2)-960 13495
+y Fg(2)-344 18011 y(Z)p -376 17835 15 615 v -375 17220
+a(\010)p -544 16271 15 386 v -543 15885 a Ff(\010)p -418
+15962 254 15 v -417 16103 V -374 16096 a(\010)-374 16026
+y(\000)p -212 16096 15 843 v -373 15744 a(\010\000)-436
+14558 y Fc(ca)p -172 13759 15 615 v -375 13759 a Fg(\007)205
+14558 y Fc(-)310 b(ro,)927 14719 y Fb(^)1160 14558 y
+Fc(a)p 836 13759 15 703 v 633 13759 a Fg(\007)p 1337
+13846 15 791 v 1134 13846 a(\007)p 1839 13759 15 703
+v 1636 13759 a(\007)p 836 13230 1513 85 v 836 13098 V
+2341 13671 15 616 v 2138 13671 a(\007)p 2843 17484 15
+615 v 2640 17484 a(\007)p 2597 15962 254 15 v 2640 16315
+15 360 v 2641 15955 a Ff(\010)1830 14558 y Fc(-)495 b(mor)p
+2843 13583 15 615 v 2640 13583 a Fg(\007)p 3851 17308
+V 3648 17308 a(\007)3647 15815 y Ff(\007)p 3605 15962
+254 15 v 3606 16103 V 3811 16166 15 843 v 3650 16166
+a(\007)3647 14558 y Fc(fe)p 3851 13846 15 703 v 3648
+13846 a Fg(\007)p 4353 13934 15 791 v 4150 13934 a(\007)p
+4854 13846 15 703 v 4651 13846 a(\007)p 3851 13318 1513
+85 v 3851 13186 V 5356 13759 15 616 v 5153 13759 a(\007)p
+5654 17572 15 703 v 5654 16869 15 1617 v 5654 13846 15
+703 v 6024 18099 a Fa(11)6147 17713 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 6147 17713 a 6228
+17572 15 615 v 6025 17572 a Fg(\010)7448 18099 y Fa(10)7554
+17572 y
+ slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 7554 17572 a 7554 17572 a
+ end
+ 7554 17572 a 7652 17572
+15 615 v -105 w Fg(\010)p 5814 15962 254 15 v 5857 16315
+15 360 v 5858 15955 a Ff(\010)7280 16026 y(6)p 7406 15962
+254 15 v 7449 16359 15 334 v 1 w(\010)p 5982 15962 296
+15 v 5983 16103 V 6026 16166 a(\011)6026 15885 y(\011)4382
+14558 y Fc(-)944 b(-)472 b(li)6024 13671 y Fg(\011)p
+8872 17572 15 703 v 8872 16869 15 1617 v 8872 13846 15
+703 v 9242 17308 a(\011)p 9200 15962 296 15 v 9201 16103
+V 9244 16166 a Ff(\011)p 9202 15962 V 9245 15955 a(\011)9242
+15815 y(\011)6898 14558 y Fc(-)1340 b(-)671 b(ce.)9242
+13671 y Fg(\011)p 11257 17572 15 703 v 11257 16869 15
+1617 v 11257 13846 15 703 v 11831 17308 15 615 v 11628
+17308 a(\010)11627 15815 y Ff(\010)p 11585 15962 254
+15 v 11628 16315 15 501 v 11629 15955 a(\010)p 11789
+15674 15 492 v 11628 15674 a(\010)11483 14558 y Fc(T)-29
+b(al)p 11627 14021 15 615 v 11628 13407 a Fg(\007)12491
+14558 y Fc(c)-10 b(he)p 12838 13671 15 572 v 12839 13671
+a Fg(\()-204 b(\007)13169 14558 y Fc(non)p 13550 13671
+V 13551 13671 a Fg(\()g(\007)14090 18011 y(Z)p 14262
+17572 15 615 v 14059 17572 a(\010)p 14016 15962 254 15
+v -1547 x Ff(\010)p 14059 16359 15 474 v 14060 15885
+a(\010)p 14220 15674 15 492 v 14059 15674 a(\010)13914
+14558 y Fc(sp)10 b(e)p 14058 14109 15 615 v 14059 13495
+a Fg(\007)14681 14558 y Fc(-)268 b(ro)p 15066 14198 15
+616 v 15067 13583 a Fg(\007)p 15568 14198 15 703 v 15569
+13495 a(\007)p 16069 14198 15 791 v 16070 13407 a(\007)p
+15450 14558 1333 15 v 15066 14108 1520 85 v 15066 14240
+V 16571 14198 15 703 v 16572 13495 a(\007)p 17073 17572
+V 17073 16869 15 1617 v 17073 13846 15 703 v 17087 17572
+a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 17572 a -1540 22572 18628 15 v -1540 22748 V
+-1540 22924 V -1540 23100 V -1540 23275 V -1540 20956
+V -1540 21096 V -1540 21237 V -1540 21377 V -1540 21518
+V -1540 18847 V -1540 19023 V -1540 19198 V -1540 19374
+V -1540 19550 V -1540 23275 15 4436 v -1716 18532 a Fb(11)-1540
+22126 y Fi(\240)-1540 22741 y Fg(I)-1487 21370 y Ff(G)-1540
+19367 y Fg(G)-960 23093 y(2)-957 21230 y Ff(2)-960 19191
+y Fg(2)-381 23708 y(Z)p -413 23531 15 615 v -412 22917
+a(\010)-413 21581 y Ff(\010)p -455 21659 254 15 v -454
+21799 V -411 22125 15 545 v -410 21792 a(\010)p -251
+21441 15 492 v -412 21441 a(\010\000)-551 20255 y Fc(pi)10
+b(\022)-185 b(u)p -209 19279 15 615 v -412 19279 a Fg(\007\000)620
+20255 y Fc(n)-10 b(\023)-166 b(e)p 894 19631 15 572 v
+895 19631 a Fg(\()-204 b(\007)p 1532 23093 15 615 v 1329
+23093 a(\007)p 1286 21659 254 15 v -1371 x Ff(\010)p
+1329 22055 15 474 v 1330 21581 a(\010)1189 20255 y Fc(pi)10
+b(\022)-185 b(u)p 1532 19455 15 615 v 1329 19455 a Fg(\007)2262
+23708 y(Z)p 2434 23268 V 2231 23268 a(\007)p 2392 21370
+15 492 v -1898 x Ff(\007)2230 20255 y Fc(mi)p 2434 19543
+15 791 v 2231 19543 a Fg(\007)p 2884 19455 15 703 v 2681
+19455 a(\007)p 3333 19367 15 616 v 3130 19367 a(\007)p
+2692 20255 1099 15 v 2434 18926 1356 85 v 2434 18794
+V 3783 19455 15 703 v 3580 19455 a(\007)p 4029 23268
+V 4029 22565 15 1617 v 4029 19543 15 703 v 4362 23795
+a Fa(11)4653 23233 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.99998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 4653 23233 a 4565 23180 15 615 v
+4362 23180 a Fg(\010)p 4319 21659 254 15 v 4320 21799
+V 4363 22125 15 334 v 4364 21792 a Ff(\010)4364 21862
+y(\000)4362 21511 y(\011)p 4692 21581 15 492 v 4531 21581
+a(\010)4369 20255 y Fc(li)4362 19543 y Fg(\011)5637 23795
+y Fb(])p Fa(10)5574 23093 y
+ slur@Dict begin (2.5pt) GD S0hgt (5.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 5574 23093 a 5574 23093 a
+ end
+5574 23093 a 5929 23233 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.99998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 5929 23233 a 5841 23180 15
+615 v 5638 23180 a Fg(\007)6571 23795 y Fc(7)6476 23093
+y
+ slur@Dict begin (2.5pt) GD S0hgt (5.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 6476 23093 a 6476 23093 a
+ end
+ 6476 23093 a 6743 23180 15
+615 v 6540 23180 a Fg(\007)p 6497 21659 254 15 v 6498
+21799 V 6541 22196 15 334 v 6542 21862 a Ff(\007)5468
+21652 y(4)p 5595 21659 254 15 v 5800 21652 15 492 v 2
+w(\010)p 7442 23268 15 703 v 7442 22565 15 1617 v 7442
+19543 15 703 v 7806 23708 a Fg(\\)p 7775 23531 15 615
+v 7776 22917 a(\010)7775 21581 y Ff(\010)7606 21933 y(4)p
+7732 21659 254 15 v 7733 21799 V 7734 21940 V 7777 22266
+15 685 v 3 w(\010)p 7936 21581 15 492 v 7775 21581 a(\010)5024
+20255 y Fc(-)920 b(-)g(-)460 b(ce.)p 7978 19631 15 615
+v 7775 19631 a Fg(\010)p 9050 23531 V 9051 22917 a(\010)p
+9008 21659 254 15 v 9009 21799 V 9052 21792 a Ff(\010)p
+9052 22125 15 545 v 9053 21581 a(\010)8881 21441 y(4)p
+9212 21441 15 492 v 1 w(\010)9050 19543 y Fg(>)9741 19455
+y(4)9786 20255 y Fc(P)-10 b(as)p 10156 19455 15 572 v
+10157 19455 a Fg(\()-204 b(\007)10375 20255 y Fc(-)46
+b(so)p 10794 19455 V 10795 19455 a Fg(\()-204 b(\007)p
+11228 23268 15 703 v 11228 22565 15 1617 v 11228 19543
+15 703 v 11764 23268 15 615 v 11561 23268 a(\010)11561
+21581 y Ff(\010)p 11518 21659 254 15 v 11561 22055 15
+474 v 11562 21722 a(\010)p 11722 21370 15 492 v 11561
+21370 a(\007)11344 20255 y Fc(nem)p 11764 19367 15 615
+v 11561 19367 a Fg(\007)p 13942 23005 V 13739 23005 a(\010)p
+13696 21659 254 15 v 13697 21799 V 13740 21862 a Ff(\010)p
+13698 21659 V 13741 22196 15 545 v 13742 21652 a(\010)12294
+21441 y(6)p 12625 21441 15 492 v 1 w(\007)p 13900 21511
+V 13739 21511 a(\010)12078 20255 y Fc(-)90 b(bi)12461
+20415 y Fb(^)12695 20255 y Fc(e)p 12667 19631 15 572
+v 12668 19631 a Fg(\()-204 b(\007)12957 20255 y Fc(pro)p
+13304 19631 V 13305 19631 a Fg(\()g(\007)13543 20255
+y Fc(-)78 b(cel)p 13942 19543 V 13739 19543 a Fg(\007)p
+14580 19455 15 484 v 14377 19455 a(\007)p 14581 19146
+457 85 v 13943 19014 1095 85 v 15029 19543 15 572 v 14826
+19543 a(\007)p 15479 19455 15 616 v 15276 19455 a(\007)p
+15928 19543 15 703 v 15725 19543 a(\007)p 16378 19631
+15 791 v 16175 19631 a(\007)p 15479 19014 1356 85 v 15479
+18882 V 16828 19543 15 703 v 16625 19543 a(\007)p 17073
+23268 V 17073 22565 15 1617 v 17073 19543 15 703 v 14824
+20255 a Fc(-)1353 b(-)17087 23268 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 23268 a eop
+end
+userdict /end-hook known{end-hook}if
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini2.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini2.eps
index a036462b807..c7efd644f4a 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini2.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini2.eps
@@ -1,2098 +1,2098 @@
-%% LaTeX2e file `eps/caccini2.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 21 94 556 785
-% EPSF created by ps2eps 1.39
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: imp.dvi
-%%CreationDate: Fri Sep 13 09:08:44 2002
-%%PageOrder: Ascend
-%%DocumentFonts: TeXMUSIXSPX-Regular CMTI10 TeXMUSIX20-Regular
-%%+ TeXMUSIX16-Regular CMB10 CMR12 CMR10 CMMI10 CMR9
-%%DocumentPaperSizes: a4
-%%EndComments
-%%BeginProlog
-save
-countdictstack
-mark
-newpath
-/showpage {} def
-/setpagedevice {pop} def%%EndProlog
-%%Page 1 1
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 imp
-%DVIPSParameters: dpi=2540, compressed
-%DVIPSSource: TeX output 2002.09.13:0818
-%!
-/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
-/p{show}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
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-/slur@Dict 200 dict def
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-% align the slur to the staff lines
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
- aa 0 gt { /shift shift neg def } if
- ifadjust 0 eq {
- /shift 0 def
- } if
-% and finally draw it...
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
- grestore
- % now some \slurtext code...
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-% differenced line
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-% sloped line
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-% free line (init & terminate)
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-end
-%!
-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]/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[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
-%!
-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/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/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
-%!PS-AdobeFont-1.1: CMR9 1.0
-% 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 (CMR9) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR9 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 48 /zero put
-dup 49 /one put
-readonly def
-/FontBBox{-39 -250 1036 750}readonly def
-/UniqueID 5000792 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
-3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
-046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
-C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
-A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
-A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
-731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
-09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
-49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
-5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
-54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
-C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
-11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
-D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
-109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
-3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
-C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7DE90DFECF89
-9E58BB6430D9915B21B801B7EF6E62C2DAEBA34EC115F1D18F1F2BEC381020E2
-3FEF9CB4F3C3997C3F0587AF7C2A6B08A2823EC3DD3623E073DD07E7E8995DF8
-D81B2B6C8D36C964B75C7E4DAD8723126043FD455BBF4F1C21609729D9CF2620
-A6322AA2244D98C7BE825289C2F09F2ECCA97F4DC25F93D44954392BCB47A2CC
-1A11F6CD6101DD405EEB13945A1AE4CF6427F53AF9A0F76ED8D9E6B2C81562A7
-7F3A89339B0D12BBF34BA71F6FD2D75D0C3068843119AF94ED88AAC850664154
-78973B221D800E5A0556DAC4679C62294751C1C74701994332D8B29CB51DA91E
-215C8699F47D2A56EE9905A4716B97DF456ECA78BFBA774F1665042B47CB2FF1
-F3617C88959B667624EA096EBA7BCA7C4924947DE35FEAE25FD055C0843FFF09
-F80AC8F15EBA70D546F3EADC6E4153DA1E91D63FD90AE7EDBFD786C323E6B4F8
-92A3197807FAF44DACE5097BA940DAA972C26620BAC146E91310CD0C853AB86F
-3D3D65342EFB3B01762FCED5F6EE42F3B47BC5B9DE9F1517BF3B32A22DE23FAB
-31341D9B8F55040572476437F5A81BD297A6FFD971B963458CF4779AE811F0CC
-4AD74B3CFD7A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMMI10 1.100
-% 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 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 93 /sharp put
-dup 94 /slurbelow put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-/UniqueID 5087385 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
-95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEFBBB4AD66A4D7350B0
-38A001EBC9735BE41A41B4836FCFC0D4029C02D8DAEA734951E57209889EFD2A
-33D220471B99E877FD166D30A54B29D4CC17CD581611477EC6BF8A58479ADE5F
-FE8DB690DF606BDA5AE6D1E2B1B797C835A026E933D593975A7AC4DF8EA7662F
-F51A30717A92A2FD10030E749FFF416FAA31794A3EF90832F493C1012ACCC272
-9313AA60DA29EAABE06C313A7D6190B3FC20E0E400E647ADBDC6C63CE3AB0D21
-DB0EF15268C3056C4E28FA7625F2BF7AC6343417D3E54CEFDAFE3B0E42E96C59
-8348EE6BD0843B0509FEABE63FB91C89FB452047789D36B69A355F2F605C77D7
-5AC7BBC694A05A4D42224F1051296857DB8D542F78DF1AEBD0F55AD2BB1795D3
-880CFA7AE2B14CB898327A058D330FC29BEEA39661FB8AA17B1D9298969629C0
-035D90094EC5D33B9C91B3E9EFB648BD3303BAB96EED1D209811066CDC3AA0DC
-664C576F01B39C04F54F9BD393B74D4620666DB9DEC4F49C46E85A14EB1B1FA6
-ED1E13DF0BBF930F995A14AF9AFD04EA8317ED31FCA841133D742CE53BC44A84
-2B8E98B6F78927A4783284DE22942EFE6E9685D880CBF2F215ECF20A00D6D3C7
-8F31303AFB2DC22CA1036C787A4CBF0AA39D5E5614AF8E2B2DFA8188C2C5DC62
-307206815717F190E854D2160D541D087A24701E05DA93D5F0F9A3E18C13F44D
-28281D018CE0ED65FDC7A41DD2D7569CAC04FC3FF086F89392339070DC4436D4
-52F283791522918DAD8C01873436B6665C4D698647FD7ECFB67495AFF97A1656
-9DE0D0EC6053AD025EDEA86CBF26B4789B67CB490B76F6F03E8564829096F390
-32198C0F01E5605A0E6AECF6FC99CBFF8A113D88EFFC6E047361EF267F3FEF0A
-0D13514F1DBE782888278818953F05D660FDEC6ACC4F927EF6A7071DC11A2367
-8C5EF70B850DD123EFA3379291241CBFE455C88264E058F2C2B57D2BAF5D7224
-AA236B06B756D47DB4AB4D1C1B0B848BA1E5403D3AB2B135FD14579AE258F4D3
-EB02EBF44EED73AD6C4D5B0A414A58305793DE8236E673299E45313DC42278DB
-6AE93703D8D4F70A0AB11E4D19878AD245264F36050EB65B6F10125779C70D8E
-0065B0F31E8689D7006E25B1E01364A1FE370CCCABCD955C6A518A26DEE209A4
-F070657B786E9C670611E0E53076B0B6183C2D4796DCB9BB59851A0EEFA715B0
-E105FE75ABAFA9973524631BD22CC222A5D3B1F63015A392E43C857FBC8CE769
-16C103777607E18CFB4D096708FFD430EA3EE8B0E813B137B5784962EAB607FE
-717079429B675D90F3D973CAAFA004F6243EE0A53FE515D255C95DBA5C0DFB32
-5E0529B1D0E5183523AC111882566D14788F53F22FBDE907B26238A814E57C29
-A6DAF9C7E2F79537824F0DAFD9A521628565B526F000862857D9BA6CFF593510
-610A2EA10FA423C056C12B19EC53840AEB340515986D8976F02606413FC6AA39
-ECDF92C5897AD6CFA9A89E0CB23D4904A5BE2E849EC7BC2FF4A88228E8CB6196
-B6DE62566DABD4C85005211C83BFCFA86CE4D2EBDB699FF3819760B188DA7CFF
-909FC74CF024AED318E00AA51F8750406B0E2EA33363E385303CFBDAFBD2D8F0
-4F6A8B00431BB0776AB91470E2832667C97C8F7A7384445A2A42555BEEF95EC2
-F2C78B89891CE666F2B47FF1141ACF80AFE627FEC568168A61C99C941BA7D0AC
-54ACF918B72619207C0182A6BB1D59E58FC3C96B0078EBA276B9C02DB668F0A8
-E046BE4633E66E36369CDFD881E71A969F1EDFD8D7CAE207A74A8CB8AAB39C8F
-935BEEBE8D07D4559608F75254ECF672C2CDE1578D099D79152D8B41E054CD25
-56A856CB0593F0B676DD7E9FAE9844C6B6A781B9F823D5DEC60AA90E33498A93
-D6DF663FFF523C171B1F841D5E60C321B644EEBBAB0E0C418CB206C8775D4D0E
-33AB23D397B2DC98EFEBC3CC473ABB6EFA4DC2636E945BA3EFB03FFA680EEFE0
-7FB5C8F1945B699EE4F394204FF362262D2DC7CF759C5526B81D0326A5D14658
-B209F34B9334ED0B046DEE32B4E38776DDE43F803F8D029E8410BF7B1517E6A7
-0D84C40AB2A013C58C3BB28D496F6CEFF70E73F3486FCD3984F8297061E72171
-A17BE235ED5A38F7B73245B46E65EB4AF055C4568D1A19BEF6D5B184D3C26D45
-A2DA85EF7AADFB104419D7B6DC939726F6AD4A1335C425A5086969B7366F53F8
-9DD041A90FF2A593B547C37520BA014060801BDF84B7D386E4ABC862D8E3EBBB
-AC62431C625EFDE888E07A4548727C26141F0D9818CA289C79FBA2287620E29C
-71FF406FFE49048FBFE82EC631AE264580CD091EE22377D428069D99D6184D42
-C5A7A438933764CB1AC1534CE9D8F0717A0DC4A466DC21DC42791F06C28BDDAD
-AFC10D8C5147209ECBB9B87A0F3BC62359AA1D046A713B8E78CD857FCBCAF6C3
-F17B1453FF3443D60D0B5F75DE6DFFB09CD5BC44083DF8353E4A97CC03541BAD
-AAFA0E927D08919D13825535AD9F1C081436F0E550BAEE4A6902A411A653EC8F
-95621DB5D9AB5C155B1F1575268D724F51F82D9E5993AB42D724FF649F48F800
-67D2176665344A6CCE606C1D60062581FD4CC87D8C3EA72F1494F8967480180B
-3055576BACEF9322EDCD5E49C1DE7D7525C7F44391BF7DB360AA55F6A443621B
-1E1B7CFA3017A6A4E0B0980DE9BBFCC95A8EC512058A35877917A0F377705C6C
-86DF168ED49AE75998C8D7D2BE79E89066734A6B532830BDE10EDCDA303BA891
-880693359383EFF5EA85DF0575A9C5A114A6435EC71B124FA279F81D723C7EDF
-60F764D1E975BD48A295B8E29E247BB795BFB8E200F3B803631C90CDFC32999D
-CA367C5E4ADFE9268145F667A4E159C784525AD8B759959820E4B5978576A3AE
-CED1DC29EA92CB1910D84AC73494FFFD5C163C1A2094FC216227DA8C39213F8D
-00C4E673604D2E52F34B58AB257A18E91BB4B05B0A0712E260D14D6043361159
-D55C19B63E79B0688CE275B2DDEDA27191678D620375C0DEFB3F0268201A6CA6
-0ECF5F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR10 1.00B
-% 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 18 /grave put
-dup 19 /acute 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 48 /zero put
-dup 49 /one put
-dup 53 /five put
-dup 54 /six put
-dup 55 /seven put
-dup 56 /eight put
-dup 58 /colon put
-dup 65 /A put
-dup 80 /P put
-dup 81 /Q put
-dup 84 /T 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 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 123 /endash put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1B9EEC89A0DF5D4E908F32BC77D09A266DC98E9669626354E
-59FA354352E609F3A359C0E8B82075C60AA8F917C3B46A51D65DE1F6F050160A
-412DAD1DCB1A35E49A520F31B3EF2B0A27E393E20EE871DBD2628AEC086AA0F1
-CB11E1DFC7E94792E38B0F8DFEC565B1676FD5BD49E5757F7D03092489A7A0FD
-2DA2ECE42C2BB3C481C676B3BB029368632768C2988B90ADA328C745443F93B1
-C31CBEA19AAE4FFC83A933DEF484A753B513A289FBBED75E3EE8C1117912BAF8
-54CC8AA4496B318283B80AC61EDF21B109D7DC8DDB8FEB1F20265E06C2E2E8DF
-9532840F5737838DE90773008DC7A4E23C0F133241F066096999887AD4D12DDE
-23656B80578308ADA3B73C7D92DFFA19F1A79AC9B99F4971AC65B49FAFA4EB21
-B05DA8A257B3CA70C7584768D4D1A8F45777FFBDB6C69A56A56B76B10D228B4E
-AC4A163E08E21F24E9DF40752B9CAC62E84596EAF822F177C4CF65B7078A536F
-97E22792FA75CD39AD747A1FEA72CEB4B2658DBB9A4CD46FBF5FAAB0D2342DAD
-04D93804B95AAEA397D0ACA78A3E49FFCA7473C3610C6E9A9251EE17F88E790E
-82C4755F75EE3A7FA6C0237A7030CAA69F77BD9D4EF25FB1A2D45B649DD78499
-586027D49923A3E2870543F4CF74A00499B8BB5A903645E546A5403B88BB5F97
-F04924E8CE2A3446643AF9F1BCD69552B351076B53AF9F34FFDFE3548F31607C
-CA8F999426CA7D9B3464D2C6BF22AD989D98D0C5799E54FBECA219E2EF410CF4
-A049606A988FA48884717E52FF08B3322390C85C4D2B9CBE74801B538E9590DD
-C2A7874BA3A795BE0E40B300B16C4E06251E8A90BB725687A489828848C7F6F7
-3DAFA7C01A21CF7318E8C26D5B336E7B6E4F4F0B397904564BBA28BDB9794B45
-8CEA36266178898E3612D7DF333CB7FEE6396B67761361CE1791E3B18B629B17
-1667584AFDC209377CCB279582FCAB62725237AAF4879364006A0B717EA427EF
-5CF24C44FF4A6FE8ED167A40EF438CA0A6B0D80DD46552563B36DA5DAD53AEE6
-E116D35D0321DCAF45D1808418490D772C50B6FB0810F2E259E21AEEFBD7C5D5
-B7FA3E9BD20A02299701F473294B6C8445E0769EA93307756CE2A7FF454B2C1E
-E1CEEE797D5DA0A8A7EEAA2090AA69FD220CD70080AAEF76EFB53FF7759BC68E
-D7047DBBC8DB5C13320F77A8FB94B9DB259A9AE460B8634A22AAA2E363084BA4
-E2B77C1E29568B02BA3B160E78799B29B38D1BE9FD53F4D847CE1542DBDDDAFB
-00CEA31C5E9A63C6A5A02740A29EF7EEAA640DF24DE62385E2BC5E7FFDE1F362
-C7F86BFC2A4E9BCE82A37D5BB4BF26BAE85459B6945F7A7E4AA99002B9475A9B
-8A0CF51FEE063B939B1E1737BECC470D3DFC46D97E97D77DA85253440C570804
-C3B5EE537499CC481CA523B7320D59AF0A4102406DC5A264E7393E04B39A3458
-2B241C46D8D9A99604E48C85DFBEC0FEDE37A7BD53DD20A62CECA82A6E6640F2
-F68B66B65EB2D6C1C582FC10A4EF57711F19AF71D8D4BFDD735C3E67A4D9216A
-5BBC655423FD1FF2DF40A19E528EE4B81FA837525865A6CEDF9E7F27D3FC5C61
-CFC31DB55A2586B6F8D598DCC500ADE62C8132B4D65F5DE6637A34E2CCB7F225
-3AC04CECF1FAB29399A33D06DC3010F4B44CD0DC34FC72792CB645FC4079C34D
-3497C9617FD607C5FB0D804E5DE41B07542D2437A7530C200BB839542CEDD201
-D8E0D0840FC242DDF4A5A4CD973353DC491E06E684C99B0B074649978EBD11B6
-774C5224BB091BB445FE2E4F276F6A9DADAB7DA417847FAF1B04BF5DE12D356D
-06D6E83E6362178B804B95FD8683ED3CD511002BE0B87ACF8AC9292897C2F85B
-5C8814D40EA5DB190A52E05623E0BC0C7FC19943CB2B07573F7CCC885FA8AB29
-367930831009DBB9CA6E7E879641394526398F3209369D875A1EBDD45D7A203E
-74C03B38AC0FA1A379A5E399AB7700AACD2DC5B2BC3132BE82C64AF9662B9230
-6D06DAD71F74EA0C28A85C8629C97A1699DF1C91C0F5D035B459CC13E7CCE42E
-376A24E9AB4825C15AF2445CD206B9C39D70D735560A65C2BA5BBB76121A503E
-4FA1992D3C7C8001080FC8705BCE06B4113472B8A69E9CF1AA8C5CA2450F8539
-E7D48DD5785217F519DA9534D13EE228F59DFC78A53AE949EAE75C484F223E88
-1D470D03227FC75C23BD32C3F64F87053D9F366CB37C014CCD36409458D90C99
-54D24B8BF0D3FC446FF633438A9447D9E33C90E4B0CFE115F7E81FB13E43BC51
-C725947F66E2D79877A155D4D373FC4C3FBFFDBBF04820F73F292B8E5D932917
-B27D7A4B20B7C471419CE731AE8CE958E8B750242D09E07EB1917433F77632A7
-A7775361484064D6B02AC57E14BD0B3C332A4BA36AA02F35AB09C83037796B79
-46FA4F4D506687B80BE0E2D2374050501A5793171CA3C14F8CF6521F7575DC2F
-9A9ED29C80B8092C98FA1BA67C5E1B02B9976EA0CC363B7F1027EB779C1A6A38
-9DF3F9853B8A71483DE1BB5B9FF9D766EBDD648512DDDA9CFD418AAA51F754D1
-27ADBADC3B3CE807E7BB6650EE72646930EAEE073C2004535D5C4770C8FFDEC7
-B5882F2D49AD63DDE41665FD5D0D4213711CD7C0C503EC77511B1F304DC9E571
-8FC9C19B49D4974FC8B530490EC1F1C346A6B3569A9FC23B48F1EF63A8F1FA66
-456B40A2EF7F8A6BA3837D698D0F1A0C6EFF8AD59F5FFFC53C790D5D0A35073B
-842323D6D5BF3858496D366C42DCE69AA5C87B100CB358FDCDF7683446E685EC
-67583895433A6E73F94186BD778FF5D331F200F74F1866D29A83E6A2AA368442
-4735C4E14CBBC730C00B58B36396A9C81DCC9CDA324B847D8763CE7052FF7B3E
-EAC8A2DCE192B308C84AE5EFE62E38219BF151227C472952528C21EBD7F93150
-58CB8CD9B4F7E301EC2842F4E912103DC2758A56B4C5645F9CA35A826534A3C8
-042B990117D1A53CB13408D4960417F81A1FA442BD7ABB8FA91BF38F6D332256
-ACDBD26DDDDEFA833CAAB3D7084EF9C4649F73407ADCE0ADA5CCE19126924BB9
-6B48355F311A3AFCBE5EF10252F86D751DBD977C9DBF0C81E200AB77E0BB117F
-F48DCD53AF3A56E58BC1E6757A5AAAAED24616266B4E264F7927D70754DB9A3C
-AE063F688DEFB66B51F00D022075987696F54AD3D0286EF95E592F9D40454D0D
-69B061694D2AFE3697C7CA36196DD6B26BB1057AE5070D25A2F89326DE260440
-0AAED51ED7B254E279538C31D4BB4EFDDFFD4FD09232BC430A573FB657AFE742
-7CCB996E988FBDF600D809019F4B4D2F041A6BE4C60A52B2F3A8B6BC8DBF772F
-CB58477926D6E01384D7B718EACE9BF22096FFE7B3F398BE07AC814DD2C534A9
-06A17475DE88392A48B82535093DF87A1B23ED55EA725DD7533D905A67939D1F
-53ABF978B748AB202A077195E495E5F0CE042836BB5743565F7AEBF31284A99E
-C0CACFF65EEF9A9E7EB161253762CF243889BDD834460E1EE5A752E5254BB6B8
-C21D0B674C80FC55123E3DA6CD90B17B4CACA4F5425D9322643F2139FD90A8D3
-2BD3B9E0C4DA58871EB78A764A6E035A2DDE468BD45F40A5B2AD4D32D51B54CD
-C87C566C0DE3933EE423DF2930F0369A27EF1E609B0152886A26C7EB8E625DE5
-2DADBA71433FF7315006FA226BA80581B0554D0D65F610F59D61756676EFCD96
-1189905D27790D7910E8411FFAAF646D531C03FB3317AD77C8F4681C6C493D84
-E0BE58C096868A579A570A68B65DAA98D12ECEE1EAE774C282F9CE38E37FD95D
-B8056E30202FBC31832E734096C7B9B164665420698551A252C0458D901FE316
-1E2A8B629E1142815AB39369C89D6E366EA53608F0A0D8E5D09FD5F0AA1E1F8B
-6183806A9ACE9BA79DBDECF8AD1E9C3BD589B2D758CB90AE642746083F938040
-4B319D0BDBD61A24646615F744BDDEE2D19F7E6885BEA4BEE3CBEB98044F5C3B
-CCE180CD94E00957C7663E17F31AA2009ECCB464F1D19CD212A6F64C2C3BDE77
-4AF718A7005F7AF21879513A760ED3902B658534F00BE8277A3C09302780FBF5
-3D4CC7A4D399CDF38C3918DD85DE9D359252932AF5274ABCFBD8952957F642E2
-2C9846C20F8C95DBD53953A87FB4D72FB07177C8B9180368FE562C6757BA26A4
-4F5C241B377C1658B6DBC05574FD228E8745AC865F24C7C94700BA3DB4D53F3C
-46032B19870E44BE006A610365CE5AB3891C4053CEB9ABD70061B23F55910C29
-18E1AAB37F3EF51267D977EAA70349C7D4DA9B7809453BD23F17C1563335B87E
-DD90E4F74ABFB462D4EDA74CA37B88A4128A6712A9D861F9456F394064C4F8CC
-C8BA0BBF2C02EE11EAB8899FFB7C630D97C0290F13824E5F5576AC1381272427
-1E17F47562C5636E75DD779FBD1D18CE4D4257C0831FD68B412EB1905AE4101D
-DF68A74CD6F7ED92DE2667A080164989B807F84F126BDDFBA60987B2E780886F
-DFE3937A932304D88FAFF809ACB111BB06C64EF01F28756D2A6D6CCD5D6C9057
-E00FC93E619898BE6DC47573A02A60D8CC5140CDEEA11A453FCE09F9CEAD7FF1
-076F68CBB6EC2FC1D7EB66E1E831E886507CBF1A0C8E688FF91C45AA8566D747
-997F0EEBC72B8C77D812AD3820D7D837BA5ABFC231B8B6E8A7F2C85886CF7A39
-4C0AB000695BFB1E88BD9DBAD72BE505DA4830D4E57D4F519C6E7BF91CF5D72C
-47A98A9B7C6C2CE4A99587DA2BE19B8BB56EB7021D451654F92FAE4240CE623C
-CB57CFE0A0F00DF03EA7E40E75EBFDEC4B572C9570ADD9FEE4354A50BEF41CD2
-E622AAF95C6C467051BDC980D8E1C59B57B938073865D5624EE77C634CEB5863
-D3E020B88F535EEC5DAD9E81E6BCAFAC4AA3531A751F8830772C12AF1020564B
-4C4EDC4A8AA8F1B605A91E88CD7B11B3326C2B82AE540951DD6FC3BCA10DD078
-448DDF3F224745F2C88B53365EEDE976BB8D94D1F57E353EDE19F588DC56D99F
-EB3C628F9A5A6C9F79BC97D69F55EE0E337598806D0BC1EDE2CA8021EBCC1A50
-ADDB55DC3EABC67613B09E9A1674C0058702497C21EFD6322530E8040422A032
-6B6E872A2FE553E3792D7DAA2CD97FC2193EA2BDAC7E78C10673EAE640985389
-7E0C5C663DC10138C6FA5FBF3C24D7E72E5DB12DD4E5FBC213F7C72F9ACE751E
-FFED9C3B60907E04006F0FAFE98B31C607B5C84C3D1F181E1DFF2FF1E7A016AE
-C8799D765D52DA2EB5BA62575EB85243B5EA52A50DE2EF945C600EE8CBF1BDD5
-8F9E917193AD2E2D7C37162DECC00AD50C071B0A209327E87C8BAF529EE5B561
-5979F1515A78007AB6AF532219951A3B950534ED8646078EE7C933051E0C5DA1
-3B902956FAFB5CEE7A6D1881F2CA72686D74A00BB26A5627DBE2991771D8CDC5
-D35FA42713272A3346B5FB0C4250849CE0CF4F026B9E9D5E9FD5258AAF1B2D55
-1E7CD3C80BECD4E44C504E0F935A4F8B463373271EB7BD942698CF1D005403BA
-CDA5F1996D85F0656116CB2EFC49D25321AC051CC24784587B6969A226BFEEAE
-773444F741B04520C28298621800FE12CC18918C56FFA5D43FEB24125156B379
-F9BBAE01A58A1DAA21E5574BAAD2697042F540874FED03C4147A9A82EB3939A6
-5C941D015CF75D30766A7E954B9E2A8F2E9E808372B7FAF2E0871A7004C5508F
-EB9280D63471E9EF75D80BFB0D6C2430A061D4E2C4BB4C295DF63BF8C1DC0952
-D5DAD5E0A2653A8D03DE0868C14027464D871F9760DDDE95A903E1C1F8C2A7C0
-A0862FF3587BF172566E388F875A160CA150C3B2DF2728103F8EDDD08AD0BC6F
-65BF032EEF85FC54E299252B7F32E4A8DB7542418E09F073236E68F4F11485D3
-F6A0624C207CE7EC5B0B984A3C0F3FA609118C22CB6BDBA37A48BD0897204015
-7D9AF0D3F975F2ED088D91B6721CB604BB19291EE7B332CB852643678FC4B66A
-A15221B430720AC37E6C2140DF182968E3A28BFDF8BB2B1A90DA691CC419405A
-F2DD423B27F81CE1499708F11D4E3F6A86DBC243522C0CF3B83F39EE6312563B
-A3A624219E36CC78CA68466A781933E79F238D93416910B791C97502377A0A12
-CAD42241B814B8B37E35074DBB48B79CDDA2E8540CB303ED02DB330D9E542371
-D7E183C060F9307C2E0345D41736348ED1E50D2F9A531716ECD91AEC136448B2
-87E17C5EC71DDE13F79BFCF469C8062CB60132388865AB64A77558A8974875F2
-9FD46FB1B07B50CEF579FB3C4D862160A3615F2D3CD3E6D88B06182C2887AAF6
-AB70E2961CE467D409DA39E44C7A890FB1FE59977C954DA9ED0C4D2CE9F42C76
-94F8EB9D9980F40DDBF09A61B71CD07A2ECF3F1A3DAE84BEA1F38FED60DCA960
-462C7F22763841A260EB5AFD515E9E93AA2DE67F64C83835D5C3F1E3DA1A6051
-9CBB3750EB26ADD07DFB62FE7CBCE154CDAB84A6EFC9797A891D4D699C96280F
-6819A9067964B3D048F12B812395CD40E20EFAA9555FD0CE35E7D566929CFB0D
-8CBECB7ACC08CFCDCA43B6D105B89593121653030575F12566AEAAE800C00BBE
-E88EEC131577E9BFAB2CD2A5BD45F6A286B00B4C5CA09A5550C4EBD107EBEC39
-94AFAD0E3A8A6E729284B62169D853A658A10EB2A53E4CC4BF29F127273E0120
-60A1BC4C08DDC4F7DC298071CF0D8DE93A8F189D6C76EFBE0A591EE1180AC6A3
-D7F8E47B023C5833570D6AA04970F4EC552221A701826BFD2C9CF06197AB11CD
-2BA1C51C8FC1175A7D643F505CA573A87740C337CFBCDAE535E1B90D3236BB96
-92393450186C9A749B0A3A30FAB7B433610D2A0DE303E421B3C1E18BEA34D891
-CD6449CC5DBF1C1D01B2A47263C7D24052F8FE37F2AC085D0516EFD72CD78530
-7E2522917A7B863572752E9B1BBEDB7210516E62B73136F9DC1D96323DC3F78B
-C9E43A21A7AB7626A7454B655DE2CFFBDF27847616D52DBC72D54BE7BFE6CB49
-78FEF0FB1F710D55D123C7756F12AE2B5D4A9108C17F2AFB4E421B08E79E81C9
-E7F0029C052A27F5AD1C7AAB82C4B45B364408235DE134DCD74D93264F77BB7B
-E738B52C31CA5C734F9453478819E6E1F1317BA6496719A8CC91A30F6754A600
-AB170520C4872A328D2D84D09055A3AEB730DC8A47CD97A09E7E6481A85B6957
-0959D2623290BB04BD8612865A0443C9EF9C861494A5EAEACDC32FF5C572D2A5
-91ED31F8F8A3C0CDC34F5A4F271A0C067111C70D95526C4FE05A7018259333E1
-207AE3E9AED942612024BA3E2238C1E5F56CA70FD0ACAAD5F92A91AF5A59A9C3
-EE4FAC04CCC9C31A2502D1C0A5D6D2D5BF4A8EEEEDE64A31CAA16A9A97FC2EDF
-8351236C48C7FE4DB3542ABBBA24504A9EE692560DF455334A6E894085CE8423
-94F78CDFF2B7BAC537FEDE02CE127249B9611439582656A2B75E4639893C8F43
-AA0079E72110293C16C632AC7903C2417FFABA1D72BE58B0F9149E0DBECBA0FE
-383EFD0FD763DF63724CBF81178551CB9BB20AF338C850BAAE023BFD4329C733
-6F32CFB740828CA5103D9D21C516627CF62190A508351417109B1A66A62EC7E6
-F548CBD76FFC807E96D7AF6D351A40918B98F7154DE4575C14BF6B4BDDBAFE68
-C93C9381374226DC40D718356B7E1808ABE73D01A6C8893AA8EB9190D5352692
-5A3E97636A20AB4B189875FCE9F90E765E724533B9EFBEB36FF59F47215C7E19
-0B2C9640B9B68FF3BA17D140090190B3432E37A7E2E166117E5B1BFE5A0D9F3F
-1ED0495B2726D032E13EA3CE9E4D8394BD3430A9E4272E6543DBE0257780BA5F
-906B58E3A49BB916FFFC7104EB414C051C74D099F5A1B634AFFE11E899F73378
-9CDC9034F6FBAD517387FFD58B348FFB610AD6F2720B080A2E3A61572DD7C663
-47D6E93DBD490CCDAF473476392030D9D8B956ADA8C791519E7A0210E922CADC
-60A6AE1CD3ECF6D95907126E8A6B7DE8A15CEAB085778F293F36AF1123F98F03
-C0FE62786155B9BF44D8D217D942927234BB6EBDFB23ABA5896C985D6811CA74
-8EB0D20448147DEF5D942EB6042C938C60E4E5D2BA7749F3B7ADEFF5F9352DDD
-160898B6BED1B1677399E0135299A17A31D19F570E7ED8503F02F70664297483
-A51A1CA586234088845CB1F99C6514B9E482E7CE579AAF24A74AF73C1F94E1D2
-9C1C00E91CBC973B990BDF1E11434B3FF37BB51BDC6AF411E7CE909FD6949FE5
-98B5838CA1FED715B1E246BAE174BA96FBD83111B3DF2905F1ABEDC3A1C00238
-0D01A2940E460C9861342221AF69B38088424BFD60F3A18859DF3A3BBA929ABB
-0DFB70C4A315CC737339A61EC41671C38874C228A5B6A6BD033DA7C83EEDE739
-B0EF4AEFDDFF6FB2697B1C22F5E38DF8E05068FF834BB27E579DBA1A4B8C452D
-F404B122A158F748316168C3CCAC210230C38C33BD38EC7A9863B4C6AEF35839
-D3C8029F0D14E51E121C68172D14968541E92EC404D85429D101DBCA73105A20
-C40A1046144532FF3010533E7EEEA503F5966785D1443C40772212480C86C9DF
-8989B703365F91BA7395FBF1EEEBDDA805BF7C996CA46631CBE40C5F92C5F455
-DC5761943DA6FFD099D3559DE18530F7FA759E7F2EA87BA82180FDB1D00FF21E
-D1091DCCFFE9728F8B97AC1E0ADD4798ED663643EE649DBE15FFE94CEAA7B860
-7131CCB1C05D93D3284E5311F485E64F1AABD4BA39A2E07BC7CF0021FB8C1F7F
-885E8FFE4FD4DDEBDCAAF4EC20D7EA3E1323DF8A5C7D1443DF7B4E8F4AAF71BE
-7AEEDC4B8B67D72FEE01675EC95C828E63E83E252D9CF63DB0D05BB057B39AF2
-432540FBBF3805F6BCFAB8691485A4D302FBDD8AFED7BAC7F163A5F7B71B627C
-D29B643D20497E9127CF799DD2D02A30D362964464ADCAE2C0C5FA92AFB7FD11
-CEAECE70291D6F6FAC915EFE01958BC43057D7B7B145DF5CE75C5CDCEA8B04A8
-572F0FB5586E6E235FA416DB9DE5BF236B465CDB08B27CDCFE02201D0FE09A0A
-FAEC3709579C643DC58065D6E49C0F4BAB3C9AE9FD4940C78F57D1959B3BCD31
-3C7DA587227C03E3BF8B66A3AAF3B8B2713A834CA8A796D7805554FF8AE86BD9
-A625AE7FA1E431C647640B4AC1718C054793ADC2FD296FDE66F31B6B1C43E014
-924D4C3770FA293C9B68CDE3B90A6E382A042B45E1767A47E890CF1AEF8DF011
-16B2FFE40153BE44269852E7A113D274CE18A6E432C8740A12AA9EC80BEA5504
-01313B92F997A6D65C69D157FB45DAA5C23176619CA3760E0CA75A67033FBE61
-6C74B7D88FC7DF1051FDD8064D41E81EE5CEF382270133833F93C270D3AC0AC8
-3CAC747391C22E4E89B720957530DDDD029A371C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR12 1.0
-% 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 (CMR12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR12 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 67 /C put
-dup 71 /G put
-dup 97 /a put
-dup 99 /c put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 117 /u put
-readonly def
-/FontBBox{-34 -251 988 750}readonly def
-/UniqueID 5000794 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
-68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
-3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
-59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
-51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
-DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
-AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
-45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
-821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
-96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
-9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
-26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
-140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
-1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
-1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
-377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
-0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
-5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
-ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
-FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB
-4370BA2C96960CE9E688231626B3CF1C23A31C5800D54F5BB64FC84D0C7D4998
-5288AF2722FE7A2629BF422D026F31E189E82C9A451AFF9A9C138164F0CCF315
-D76FD849BC98A74FBC93F09F9EDF85B13F8869F08699C6C90C58DD45CA958E34
-0DC970D40DFCF3FAB15BA18C1750261B02CE16097938C466291A55062345D8D6
-61F775EA958D3BE761207F828DDED3DF5DDF243C0A352B08B165D887245FC857
-2FBB64CBC928B34F2831ABD03C5CC0D29E0802F21B3BDE32E069E0DF9B54DD6B
-3D13D19BFAE271A6AFF16A8C697EB07C1432D59A2D2039E686028D3808009A17
-696738793896F91DE802D1B7509045B438CC7C62CEE684AAEC9214932EE9FDAC
-09A0A8914D22F5B469811DF488AF012A4C5EC81769698621D17B2D30EE858069
-49CA4A8061410FE24196ABBD37BA67A77E86A8B3B75D511353F42915D1314F1C
-65C7A16FD9523316061970F95DE693FB4DD6088EE2189C9DD4E22B2AD113FFAE
-37CA2695338CC2508BC52FF04F9A88367C10F60B09F24DA37AD881A150DF1017
-FE577A2B0CC891A38542F1CED14F6CF2C5FC980D459F6D1BAD15D6B952DF882E
-6076B5186F4B941069410E0ACAEFF0BF6431608163354082ED6D5B68021C0BD3
-C1F1B12CB7C7805BFC4A5A488920C77159011727EA004D11AC691AB11DC98FA9
-6EB7BCF534C4B4F8D6935FD970ECCB1C5B7196BAA1A9C75F0001194EE690A8DA
-23D328CF84C74A96F973BF202D851AA689BA7F0C99D3E2D9447BE0C2F6CCD2F4
-782652DAC900FA6AE01E9DC4AE0E539B155B24B1A67F85D5F96E1F51289CC943
-D4DBC0034E48481339A60639EDA2212916BC83EFD34D89A19FCFB720C231222B
-845551D438A20AC06DDF9A49E5FC89974A1336657390445FADA16744A094E7BB
-EE7079DAB01CC8A528B20DA4F20306F9EECBEDBB86636E8DF0C431575F551F95
-B2823EE823C0C8E02D94F50FCE3E6F7D2B1557D5B89F55297207F11D1547FC0E
-989107AF90947310EBD726F89BC1EFFC51B59449AA91F2F8F760995E5F388316
-6FBC13791D2828FED49E2E586943D7517395F9EE3CB99726D32853B7448D2834
-B02D7BEBF573AE4C1D887CB512F243FB16E4800567B0FE2C4A1E7B64B2B3501C
-B612926E9E880FA6E1FE15FA94DA7E1F1EEEDEF2303DC2DEEEE9BEEBF5FB4880
-82F6B6BCF38AAFCFC65062841C725D0B88D9761FEFF0BEE46B5D6B2C5A508D23
-AEF7D71F427F3339562A29FD432D70265238C4414A6D94BD13505148FBF3C8FA
-91FA94792E73082E619D946F9CD0A13B4D8DA14136901C04AEEF70105E4C3859
-28200013F68E11BACF8FD94CD56B69DCF855E83312E3B023276B941C778E9AA4
-B8CFE29C945151AA4E3BDF36E3CB06204EDD004B7CD3F6EBF3FF847D0018227B
-1206E3507554F062441A46BE726C97A1355CE7B053E7B1B4ABFA0C96E3E001B0
-BE07923F11E7D570FD350CB7C8E293A6C6CE7AE79E7F8309C95F80BB957A1AE2
-2A32E6A4F314540759A2AEDD0213E3D42D88344DCEE7B732432277DC8C734EC4
-6E7BB880539DDB8A687238E8403AAB5DF383216546B82825067CFF7FCC3E32A1
-B6A082734315B0506DD1060501FD87AE62CFB30BBAAA0260D9C875924EF68581
-A3A73771F84F6D7628D17291AA202CD744B8F394D3B7F619D0C4A2F791046EB0
-5B101501BCCBCD260F9BDE8BCE7A1E085E2B120ED9982841715260CE4B6BEC7A
-B26AE2794C53C7835112CCE3A057ED48E6FA05FF88D3C7F943FCAC35831A9258
-5A8FB6584BC3346A018E0B569992E6EBA31ACB9EC876495D3C0CE59A0A70DF62
-B9D056F2ABE55C47AB17C9BAD970CA3EF4403549803D9B5D83FFB46990A56BB5
-946CC09A4C89D0EBD31438788B19DF3B1EEC2AC9A426E21E3966A8A25069799F
-26A40EA6149DA6402F83FFA12774D942450668AFE2F771A41506FBC5839CFC5D
-F6100F7FAA6B04BB659729D463F3A3BECCC38F8D435BC168550E3C7E5B55A970
-05670D4D2EC83BCD057B8E3BAC3FE2A464EE17
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMB10 1.0
-% 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 (CMB10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMB10 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 39 /quoteright put
-dup 65 /A put
-dup 97 /a put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-readonly def
-/FontBBox{-62 -250 1011 750}readonly def
-/UniqueID 5000761 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
-A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
-99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
-2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
-C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
-00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
-B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
-BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
-8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
-FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
-31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
-2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
-9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
-EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
-69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
-CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
-87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8EA36BB6C
-87B9939DADA60888E78E14E626AE6717EFA40C50FB362A81EA3C4C5279819327
-CFC2ADF1D8DD65B2CDB9E3B5941E81AA802A5745A3A4148591AABDABF9A08F04
-66CBFE887F0FF82364F351928E7D4779E54A0FF53FD088E0FA50F3047F42AC28
-EC0AFE3DC1F380DA575D618D5CF337900631F57ED0A59EF0C84488FF48B79823
-47F34E75E63D07B10B9DE367258E80C6E5227B9F2BFB79E16AD1BFE9E6707199
-FD35D296B5BC55DEB7F9547A9898C608547C2BBEF1054AF18DECD8CCECE80B8A
-F52CCB190B0626BFBBF59C2E7AC15E8EF0E570610DF4053748E3C8555DD89D73
-942DBD8F1AC6072DFBF74FA57C65196AB859F0E6D4150AA7592E746AAC3E302E
-D406427CF7159AA524780548F603E7AA624E4EDE5870936D037618E92DBF02D3
-D1E9FEB1CF0DEA80D5646E4765991669488028A8B7B9DBECF8286FFE00FC06AE
-EDAE0ADC9E6394A2A330A3BA3E00BFFFCB8FBA98DD7605FE9D7AAFF070A3AE7B
-69593C8B6E0E9D10D1584F23CC19110073E5922B9CF0DD28E4C7D51BE7B76435
-AE678608B03EA7820962F3859970ABDCD860311B6E753FE843FA992C0BF910DC
-B86B86277FE91A964CD34E80E1AC3245CD004CC8BE7F0E704104271660A2C75C
-B9368D509994377616C0B966DB9A1E9FDE2F2D7C577047D6FEF9A79D538104A5
-0DF65A8BBDE8FAE9D3C64D9B4BF3C4E94366FDBA02DF99B7C527BE53D391E8E5
-F0BB566F8A42C4A92A3605C12B8808D657DC68E4F9BD58D26AC06B7E6C046224
-C349FE0EB80B822F171E27051C391B1EEB65E599FDF6076581AE5FD01B6DCBB6
-84A2ABD1E4B3045EFC6CCB27961E8FC6A3EC8FCC97BFB427B82A50098A907B82
-E6ADBD19894DFF74BC7B3798A06501F217811F12567E2F5431F8C3A82D4C5E94
-72A1B18C3CE4795FC1DEA4E7BDB127552F16E4BCABCFF2A574997BF2ED680B82
-8C310E717B81F3FD47906BA609A9833AA4AD9CC095EE3D1140A8126EE55A2278
-3F9FA28FBAA51AEF1691B39039C2D97EE2FC79FFE04ED5AF5921D20C560E4742
-ABA899568CD661FFFEE92D9E8802C2F75271D9D6BD7F5107CC3D03D8E21A40A5
-2F951C89EA84C8F742162989BCBB4FD74A8BB55CF6EF3B1AE5B6760951D5E2B6
-2DCEDC1F15CD0C99DB0E1FA9661EC43DF5DB9D1BFA117EA1CEE98153FDD636BC
-A38ABEA43C5D63BF895F9DE24CE6FBFB74224802BF2A24FCFD2FC8D38B0D0B83
-A8E631D1FA4F6F9B88C67A89B72C3934D6E759072602A05774FAF6C019440AD0
-5317137F3E70E51E3F0DC06262F9909EADF48417A46435076BEE48834C56D17D
-33D1442743D8E3F1733257A8C6BBEE9E5BF7089B28CB17222370714D6CBB4730
-C13BED5DA331A9ED85058910A8944DDB3862C7CAB2868D2D8C8C6B7DAE6705E2
-6F2E5BF45C43508FF638C23185B72E45A20B8F852AD6FB3F98E7B4A632B98B8E
-F49C4BEDF0F4D7701FBD00CA484AF80F5C0D07294E50167511107E75DBFB3175
-FBF983BA6D323D6E1AF9037341461A52F5FD775C9BE3B9A3DB9EA13E278910F1
-87CA56B76729B35336A7DA17265DBBE96C6B0D77AD2C47D4885785BA62C4CB90
-0C486E4DBBE774463897BC9D42007C5AA437FA216EA617659237DA625FD5373A
-335EFCD92D30D84996593F098847F73F1281AE13B97D7FBD19A9C819C4D00110
-BF6D100792D50E15042ED820BFED504744FD088855D37C4A4C3A12CA9344F981
-99DE37602B5F84EFE6452DB3B917D4F571B0E17C48586FC2DAB4481C0F495920
-36A22B2422D232FB3B69D1B77A316A59FD69E4890D74AB4FF9D45657C074664F
-7D0DB216E611F18E2184650ACC94B63C47F14263F522F0869A8BB19599E97058
-8C73C56CF2FFFB2F81D0D128E6C5E90DFB0BACE596E0B27903433DE9EE40179C
-6153768280762BDBCD0E6BD9B3C715E0A150677BE056BFD51DBF5A624F618E7A
-0729AEA869E2079FC2F969DAAE9D32FA705D24AB4D69FCE6678E2B8B7012B5F6
-F5449C2163726624B49CFD0051D7CB552C30F0986E6FDDED2E90F9BDD39F4072
-1263CEA8AC5855D02F651B79C10593507AB630CAA3D0998CD6B0972BEA297DA2
-B7D9EC25296EA7F59925E53F503BDCE2A0AFC64C1A64A29D5160E6B08C71909D
-E297A5CB5A398D7EBB12AAA01D300C70073B39ECD3CE3940DED4F491A872F628
-8BF40EE2F085DF947A28797FB7CA7FEE0C6981C89CC68F322B5E83DACDEEAAED
-66DA926386FF6BBF82109967BD427308F40DDC79ED73DDD5849EBD609DAD4C5F
-719B2D04EB9D04DBF27B40769677188D7670968E5AA3BCED8E5DAE6C201BB7EF
-1621301F49D649C948B916390BBB47CA60D0C3F7CF888DEA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 40 /parenleft put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 63 /question put
-dup 71 /G put
-dup 83 /S put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
-C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
-4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
-12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
-86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
-88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
-62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
-71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
-4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
-63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
-D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
-702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
-4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC2584632973B223E128481FFD5458C
-1D90E5BA815DE9239AED29DBC31C66502FBF95B1BEB72174CDDC64B1A18AB3A8
-18395976ECCDADD00E05ADED05A1116A6B1EA4A21980C0EA58C48022AF810634
-3F540BE1E0857C0316572E489C72557EC92C0811E0A86655F86011EC26234DF2
-33A0F99927AEFD354AFA3929E73C4D1CDCA3D89425D84DEC9D394D8CB277E568
-E7F8A54E3A00B6969C792BDC7A0D1E4C58D0792CB7850C8C6A9A85446484C39D
-C755D1231C42608FEFDA72002F63C15E2FBE3B7E9402112C543CB8289EDEEF63
-D31EE112BB33C63DA84F73215EE783B9D9F0FAEBD7C1949AF55F58703AD93DD9
-AD543DDB096C1F197CE7EC8BBCDCC76A00A5A9E6F2AF056C92481EDE53F52CFF
-8E830A8B6CB970065A8D8687F196E32B8F9F3F2B3C6670983929A77AA2E15AA2
-6DB6EE65CD38A2A8207ECD3A4447F436D0EF0B9445FCF1712D34CDD4ADC9A275
-AEEF2B2CF35CBE6F49B8544DBB38CCE0A32AE15BE2EB7F51E77BEB0C63674424
-EB0486D0912BE4D6ECB15BC2F5CCBD793C0758046FA7BD6C7F957BF96A8EC794
-171CA15FD9F75DB00760188776BE43A48CDBD659E4E66571045A39F49468EE25
-80BD580B907324BF32FF93671E567EFA2D8E0BF3744798A06C247EA4FD65BEE7
-BE9989EAF5B8E198E8F937133E3A8AE287A8DF0E010638ABD9D0BA0A589332D9
-76A126F13D8842E1174019BF663CA592759C4669B1AB0F9667A3AD0C9C310C62
-E2FC83A5EEDF20A3BA66E2ACB093B0F01C0C54EBB878B4CB678A2032B783D236
-C7FA32E2B134B36850379B1F747F1354E70EE251DF57B99FC7FCFFA00BA15340
-AD91C35F48162911D538BDFAD841D6995BEBF07B96D88547B6286D3145E237AB
-6C097A0A612998946401FBAA92A0841A6FCF4678D8481CF415C9BA8C3245B61B
-D829F2B709BC63D7E8C1C032426D1D36BE103A82B0467C6B1DA7CCF7811143DF
-10349AB0D587587E7965230D82421B41C33B8326BFEE60EEA6B1D66C49DC8B72
-74742D9947C3B049D630377A9ACCAF46FA262064E1BA6E861CAC7CB75A259398
-4EE4872F0D120E85F6C9015A3F4EEB5DFA7E450ECC2261752438425907484021
-5B2F86BDBD569EA57802F421CF273A0409A56C76F551B2F60D845C4AD9530EAD
-21DC805903922C8B1555C690DB54D28E029CB67AB023E617CD9782F8C385ABDA
-D3CE300FEF213422266C4A6328536B67697DEF9298F83B14AF554F52A675E0E1
-0E08576368321BF31F96391A6CAF3E30D6E887D74DC1B1A4F144DB945AA53144
-3D1C53E9DCF6CD6026D2AA1213B92473235DE61A6EF0A355CE4B9E7E91F59562
-953253A41B658B9A368A6CDCE3F9AA5BF034BF3C16B9C2ADD26651799CEF4952
-E85131F539A0729F2CA8690E935B074B202241F06EC07BF6141D188FCE7026B4
-66A5431CC867B6892460D8108F2F07C9FB0082EFEF87FAC7710AD0368D54D25E
-49CE016F8996181E4F34DFF29D8E897B239C67FDA93FBE739D85AC448B58B60E
-87AD878A34FC239E53FC43402AECF4F56FA8C4A0DBB40E5F5566424482ED3A8C
-97C5B6CE362A2A2BB7C6EC8DC4D4ADE9F6477E52960EFD6EABDAEBE710A8CF10
-5F2DECAAC2B970F5D3D039FD7728A784F3CDBED6393A42FDF06E7FAB889D5247
-8CF1696852E057F28D75B553496F0DFE7E38207C0C4BBA87AA3EC796B7870AF0
-F66EE303428DB37A919F6D4294657A0069B5A4654A5D86AC2652BAA95C11D1DA
-60C8B4F8E9F2B629F5A403C207C4521E3B7FBD24DFE37E30E8A8A7DEEFFACB23
-5A567A89F43B4F4D28307D573C9AC5A8DB3F61F1BF1347B3D49839B935BE0671
-9AD4EA0D75430F5B609C8F747321C19ADF63A1CFCB0C733954A9207DFD99193D
-6A1C8181C6C438B6AF057E21AFAD19F31B962B356F1AD271E6F7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 45 /hyphen put
-dup 46 /period put
-dup 50 /two put
-dup 52 /four put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 83 /S put
-dup 90 /Z put
-dup 92 /backslash put
-dup 129 /Aogonek put
-dup 131 /Ccaron put
-dup 138 /Lslash put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-dup 197 /Aring put
-dup 200 /Egrave put
-dup 202 /Ecircumflex put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB9685462A8D186BFB195D91EE1109A9CB8BA9FE46114B4834595CA6973C
-7B5548E265972854CB21F9A13E3D8547644471145C0A7B7A6792298C740DB643
-56C099DFC3C658095EFFDB41A137F739897DDC9F0BD87094ED2C21EC501CB243
-B9A75B978F399215FE2EA1DD52681513E5040B6FE8E50B513F3F5827652A0C50
-594BC927681A4B85236136C4A980A62CA1E3B89862EE64378E0F255B34CCA86D
-B877F95E2DE6AFD3DCDF7EEC40BFA23C3E7271BEF2C4552F49F59D629E51B8B4
-E7417B181BC8D460EB6518910AD4722CB9562A9BF80002A91F4A251DFF1C031A
-6806D1C498581E9A00F39FA8E1AD778FA855337127C6068B9C7924ED590063A5
-4E4F941E744568F5488964D6B122E008C4BFA9DB26BAADFA11D7B81B16245C8C
-F04EEA395CC080171DB42A817743226635A3A3DEF727056EBCF0C77692190E41
-BDCED59FE781DABA153624E7B1C8ED1FBE5EC358BFD2DD3C150EA2DA8179B45F
-8D09D1F687437A337643CBDF9A16487327DC3C2D168C150982215B6DA065A4EB
-6E539DBFEB15B3836BDB5E8A19FD01D984C301239B6DFF467CA850631779F7B2
-329937C757244B1E80EBC5098C3C5604D0F3C6B770ADA4AABD72C2110E9C6E72
-4CC33E25518FAD3E211EB59728E316C326E16CBA7735B57748AA42EC8C43CE8F
-FC9D1AEB17D8962C9926BDAD1AD4AF852F335A9B6EDE657419792C008F42B604
-C3343DCF7FF63218743DCB29FDCD3A079BE95A6FC8AD660D65DE290EAEA4A0A9
-F78170889394B3C9F73E00067289D8BA8D6EFE55742F76FA4A3F1D73D3F7D5DF
-D75E50D5832B28701C81C143F623AE15FF2AB2E20C666F3F2E183B6F14560830
-4C84B6D6F5045EC8E3E61244856C0EF1162F9E231DEC58275F977DCC558E820D
-AB918FCB9EBA14713CDB2DD0E54BE4F2FFA915DB590EF21EE2C1B69F6F554B83
-BE133269E798BD2E4883EB6D6701D9BD11323EAFEFC1801FCBACF0CF8B8F8EEB
-EE82D396F2A3B3A73860BCCC022BF75EE12D20959A5997470888384710FC7DAF
-01580CE9925712FB15486A51F72C9C2D4E2B0DB1E5A1B3E86C1E9EC0199F7454
-8D1C9A49D9C766033200FD0BDAE4E800FD6533C379036925E9D9D9E6C1213988
-B2899461AFB63550F2A7E0DCF66CDAD1CA6836E9039D008984D6864E5D964CE7
-8022D710BCBFEE6A59B9B34DA0CB1E323813309CB7015A2E9DD9CD3CB4F2E86E
-3DBE1096A3E901FC2EC5EB593C89F4FCF8F01C784A266DFA0579EAA5A7F4E7CA
-50F4A12C26EAB09A63470DC0CACC9D5B98ECA75CE333C1F6ACF79B6EF88FE126
-95EC06F1332A1865EAF1316BFAADBA913556F35DECF6FAB4303B76D12F0E2350
-45B8626D4F48D7FCFA6D64F94E591CED467A817D4B14BE110E7090BB6DBC7C73
-385184FAE53EE1785D4B928C2D3C21A04A8232D0A84D7A992A2690F33B98EB48
-DEC7B9BD9FFAFC04E4E70BBEE71CA2686BAB8454D5CFDC8D56EC8A9373E5B354
-990DD4AE5DD1E1D8F889E679AB5E5611F3ADCEB7A9FFA31823B580081B223542
-0FD6E15BBF3D47D3E9289B5F4B610CD07DCC76866B2A25B47130F24167D8C3F2
-F91D8423B46D64DA82AD74FC365DEA4DAD6F272745D68529772DD689CFEA6042
-7A85D710E0C35F5B503B3278946AAA7D1D5278744DF2B9B254C074CF99003F15
-57B7979B9C7E61656FE6D00F3E871684AF08EE786E22A19579F2BFE1C5D08D94
-FD1D2A9B7D11AFA6EDB8194DDA6901D7CD0B50974D0CC24CEB074C40D4363B4E
-68146A833AE22AEF0DA100357050D8DDC725E7A893DAB1AC07C4E38456787364
-89BE5C0400BC295EE9504E97C3023B6729331CEAC20E2292ED625D30ECCE324B
-58941E79BD830362C3A2A2F63DDB7E2CDA94DF2AC0F91C0CA120F700432D751D
-9D3FE51D9D7EC0B9B914DB5485C187CC7A95A4192331018562E8798B7FD14C48
-BC09477CC35F855D4A16FA09ADD2A566538E4529F4CFC1AC58DCAB048D5E2D67
-7742AC7130538C071F896A4E2087D273D71EC87EC61B9A5FB73862BA7CA57CC2
-CB5D9252A089A8312CF5A686C9002A805F8FC7D034E7A0385A33645A63B74620
-103535381525D7E90F5CF1E1677C4B945D3C077974B769505E0704E07139CABA
-9B6630F6D21EFF4085B9D23E09872EF3CB9574B9673470BA040A32D6AAA66F72
-130A6F44BF1BD0DC620109C103595819FA81AA13063AFD011F4D2028266551CA
-9AFD20CC6280A290087C0E37C7470D59A23A0B2537A3663ABB526CB6FF04734F
-F41B5F9B43E7465251C8A75D07E77A5C387D91D8D5AC3F293E1C65E8D4624072
-55E9A11A36CDCA286E2877E89FCBCDEDBB49FA0E002C8EC33208485FE7AF3543
-AF6DA7D771D8F597B4EA7652A25257962F5FE182D7AAF823A8E89B5F3159A6AE
-AC3CB9930DAC7311423D447243A4C78C216D1128A94FCFAABCBCB88D84ABEDF3
-E31A6447AB94F374F8AC31DC051A2BDAE241C11E604CE1F3D1F8A23493071A0C
-E71F68BD86D3B1983944D97BEB31B458F642F834B7A7A869CD18F9F9B79C883B
-2B91FB1BA8F71112547A7D7D9D2F7EE52F5DB930CC7B6D0B78C031DD50549F70
-0C21F74EFF50C9BC76F115054D8B91AC9480DAFAE67331D7D4521240C113BCAD
-E6383F30E957DC259A2B258B6AC96B24AB89D86A46886113A8970B40252EB8C2
-60BA8F921197C488C7CE6639C904312EA22508105EBA7B26F5153A4A9C6CE061
-1606F965A610A2CA59A5B4B84A9D2810F32EB3813FBF9946AD4B43AF011E56B1
-1C7BC7D64D06EC98073D64F834F60310DC880DD87C63BB36AA2B2E2458A6DEE4
-2F7F0061427661BD2F495FF69F23485A2064D92586DBF6821B8BF18E6294E2B5
-3E999BF796F25984B4624E705CE53F869E6A665C22A2270ABB03D5A706E3B5BB
-FCCA5CF090EBC1E53A69F1ECE5875892D7FBA6A727F2CB24A46A139E7BD165F9
-DCF14293A62B78AE97AE9CA76C2038AE8640C219C6D2446859F237F8B871F433
-F7E98BA78C2B52608302D9988C52B0719647715672C9C877B7E4F261A429E2DB
-7FD30FB8A5681BFFDADF38DF5F540BFDBCBC68B3731F75511339705F2B882666
-CA282472D3D35DDB471B77E854F5876E2A41C63D31AEA592479D4BB8B31C6416
-5ED45222F39960CFC268198EFA04375387505247D09E986A9902820D72983925
-9713A5F51460211A17CCFC09188158AE2D823315A38F22882BAC40518720D034
-976CAA557E963A39B4715EF762CEB6A026E523F6212384716FF3E90C10298B47
-2AF7539E7E11815631124EF302E84EC639BD4EA95893D3590BCFF1D1125F6415
-9A7DD06067B9FCD7174736A57F1F11F8AC40BE09C8E3760C353120CB155F93F1
-84FC7DAEE9D12FDE3B37F6BE5F347D6CF026AE3FC17A8CDBB183E2373E4626A1
-6E980E2D52E0C17A76B8E42FB48329039C68638916020A8EDC659EBF0233B5AA
-D866EACC35D756882837027C69AF03B5103CE9223B9D6EA655D50F204C3F7277
-2E6DE152B244DB2F44CB088236A31CC9100531A62380C2BE607A1C170FEB4EAF
-0C3D1AEFCAFDC120FF4C851DDAC857CDBB78521A97C91B7417B92B9CD541D98F
-100A6C501E0A57DE9BE6F6B5217644F8855384A09BC0AF8668EC2E50DE63123F
-85316B1F9F215FE93F2A9BD2F9EDBE2FAC02A4FE47E81007CD148BB5D4E86241
-AB753C3221CF4744AEE68E5CF929269A0626A61EA1ED78BFB6343488EFCBE1B9
-77EC4CC4680AF3CC4323F9CC2B62339B839947E1E27B831EA0A8B4ABE1A402AC
-E92CDA9B9ACC156A073647F498E6288251B27B781C476A196840998C1F47473E
-C4C62D25B1ED56BCF537451642253CD69772FFCA61972A2CBAEB2576D1E0F8C5
-424FE2B3DBC0742B35F3BCC49112BA83C7D648D109C9D48182213F1B48224627
-B7762296902229C264B1C0AF9A99702A8D11CE809CC2E4642E75FF143F980BA3
-91DD9EF780B92A7377F932E280F44CBD0A30AC10E0ED4AD82E3DFF6185BCE800
-C064EED575F8C7A0F18B2393C3ABA2BE74DBCC42B627C72EF5D354BDA1425FF6
-58B698F37B7B59226CBC34EC86D24AB4FE5D3A51A2AA1010508D9251DA6778E9
-48D28B8F613D10CD545A4CB32ACE352C0EB9D18834E09B75A2A14E00DFD63294
-8DC202C0490E2B44BD08F8EFC3D60C733B6908467783997CE8BC6B8AA4D69FD5
-055351F7123E9E3F3264DA88E92C5E780199559258BDDA7CD4A1AD4CACBEB2E1
-DD7FC79766F0ACD89F8E85F1C64B0804CCA22BDE79F5C29D8E74DEF849C1DFFF
-95D2215212513CEA6F2C00C6B9B53A0DD1602A4DBB136BFBA5E8A9C1D5460FE7
-C7E75AEB19A58643F81E3C919AB6DBDCBC8D5A6D7D19B17B52371E4712A89839
-4EAD3511F8967789B89DF60E196CF6FBB84D9F7157923AF29EBB029D4988747C
-E94A7F108E1F356E29AB1C0B2BACE005E1D9D45053341A995E2F3F749919111F
-9718
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 67 /C put
-dup 83 /S put
-dup 97 /a put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
-E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
-BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
-72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
-5EE89221BFD28AE8117B69C0EDD6A58ACDDAE1AF77CC8602B0803A063A78E590
-6228BEAD4031FF82DF1C414753313B1CE7A0FEF2546F18F026DB52C7B9D56FA9
-23145E410B55F2655D12AF85D3291DAE7E838BDFA9A27F61407B392A4FBEED5E
-13E9176E7D52E4560C2FED71C6F18977226B49C37DDEEE11AAA4C46FB141884E
-934DBB9595C82C9FDB8E6C8C4D6A223490D0AEA24EDDE28E6D64F7ECEE30F0C2
-EA32F09B32CC34C36090E5896EC05400FD932A5DE6D44840E453F70AE55A0A09
-9146720A839B0CCDC4905B7C138792A09C7BE08D9FBC35566A70C5485ACC6988
-E11F60FC89F391E7AEE3D61FD567E6C4C2525D7F05A3B2C05CD88821862ADC60
-B9F25AC90893F79C4D1BD69AEC40E2FF06F0F32258E705E65D98A4770EE07815
-F797C2674BFE0B7A3B73A688930A9B6DBEF337D4942F98CB509A10544664C418
-47BF2D9FC9A6E07701488BDBF8AE664F40DAAC18009EF4059E9EC0938F4B65D0
-252C92989C09FA3061AEFE5C9C70A03744EBC1611583BAE9C0A3B2A937C26AFC
-9D6E889616B63DE1BADBD472DB792B10985737ACF5AB54CDD888E11C369EEB5B
-70A6F9F90FFE8BB6D869B2E73975E27C799EB04AAD217C1E9FB5C370FF95D282
-33FF883BB8FF49402A7C5B7EB5D4D4B92E4473E2BD66F6E8C97420B2B4895806
-0EF5F860E80248FC251EC656BE08757E9CBB69EDA5482C95B1B2A9DCB2E0DA3B
-88FEAE4D89D8D0C76B8843BDDDB1083500E68E2B1759B4C6B88009240160DF4D
-A93CDAF97714B8F7316834CDCE52194E8DEB837AF42FE7732D236DA764C37750
-A0512EA79E41972BFDB345E48906BFBD65B52CBB4BB2488825AC42FEDF0DC62D
-51A7EEF82E5E5D210CA341F0341116EC0E30E639289584EE4267EDC27BC77BD2
-3BDC306EEC0220F4F2EF8A2692FE0A72486FCD2BEB81968807E082F3783D7101
-861AA446FC0D31C6E327721D38F0B033901B72532528F6E0BD824DA390315E07
-B547182C8C9C7FCA3704E8CFBBEFD2755C288602B31576376C172FB8FC99F9A7
-4F34CBC57ACA336C94A0DE922957BDCC3D95D7EB62F68A58CC23DFBEEF48768A
-48A5BE9AAAEFE1929D0662229431677C713C631DFAFF8D39CE04B4A7C36FEE5D
-CF506D9407ADBB50E30C7E92E9C3E41F72C9A3C47FB0F1247E493BD3DFE81CD0
-E85B3634F20D53B49B161B042EBBA935C0E0A6AB565ED44E44B2843E581D53E0
-83D099E0A7FF88B0C9002A84172FA6D6BD9ED95E167FEF868207B7895C5F18E5
-81CD8AA7E1260E2CA141F5C6B78DD8D745A3A9EEA2B3825CA8E53827C51D3BFE
-9F6604951244FF5B09E9C6D2A3167E202F3EF55CD74E31796481931EEFB7DC43
-3EF68519F7648E007682208E87F41916555261748F6CD6BA8BA548C482E88A60
-53BF3E0AFF2E3BBDAF3522F1B41A81FB3BFE26B4584C8E32AA147C917C3822DB
-BDC91E06E7E46DBACC29FD6190C4F294D8DB9A9471BCC6BDA32C71C13C48DAC8
-AE3D3F144294904FF608058F0B543A2DE3186AB08A3D930C529F7E848F71BCD6
-104CF90D1828E1361A9487C23A80EFB9261573B9F234B0B43BCD35EEB3F6B0B3
-0909C29884F801D005A1026658E2893D3F4DC5C5C69671F759DC0F315738275D
-FF02FC8AF9EE50C8705DD1E7761EAE3618345A611558810C0C8F14285D5E4D32
-9F74E994984F77293882016123463DD07C43E0D66FC05AD4DB9F1AE0FC67FBA9
-C908B5A2AEC5123590D79092BB6041A65D70A5B8A374E7EBBB31B97CA1076F2D
-AEF0C22D77E79A16064C2265CC78089DC98452E95E613A89714B52180C4B4AFD
-838877ECA6DBEF3CC7D20D1EEDE3929E3F94B6A63718DB669427B91CB2803886
-08DE53D1D22FD62C1A7EEAD41FC68759FC8A54BBD929E1E191F1CC18309AD684
-C9C51D1A7252C03BA4E1942289E536F4E191C0051E20235FF8EE23438BD00C5E
-27CE47EB4E4DCEC5BEAFFA95984B177C0EA5D1A64F75D746840A597A0B477BDE
-63C3EF3C4E1879B2C052D923428B003811AEB03FEF3B7C8D86F1E51394ED55DD
-14F3F9EF169F5509BAD5C9DB99FCBC458D7037A46CAC664064763210A0D43ABB
-CFC0A9C8B3ABBCE0B75A6B80CF500EFD043CB0955D959B5C417376A576447E7B
-E076D4D1BD4A36693174A43A34771A2EF4A089FB0CE8EB0E285E19824049AABF
-161FD0E98A55E0037D7FD4C811926623756E0E1F3AE388F299567065BC55D7BE
-6FFB5907015CAE18E4E2C86F9F99B77CB3159B46E1A61A558969D621714D303A
-41DCBEECD2D97F216AEAC845C4A45BE9AF143827715A1FE671847EE2F8DF2EDE
-5F89D890CA410D0614A3A0349D4173E50EE0F4D97521CB974E2DDEA9073D77C4
-DF49EBC8F2B26243020F9F619D4BA0984BC74BCCA2C9465AC2642896E817C076
-52891681283D056DFCA9157458A4D18396BF0AF34B7926CDBE1066213E111126
-5A7FA968596D73A578EEB21E4F84A8177757F63DB6A8D969D605D073C0381E14
-DDCFD706CC6ECF3BD35AA8C751DBFE15E52586D0953506F5A1049F072612E814
-01D3376BFFCDD837B7AC2F97D1A2291FB1DA5C1E7B1045388CC8FC9625ECE3A8
-8ADD7641265C805C4605C0459005265339F3E488BCFC3444ED6069FCECD621CA
-6483EE193B1FD0EAA7B8527DE12825F4CDA3A2539D89ED8D07454A08F6709FCC
-E6E2A69DE1A16232E7303A0D3BEA6DC655BB977A09A301D875A8DA34AB354552
-F1148892767A1CFF8DEE1593F7A40BFD77A047C9B3A25890984FCF189E80A748
-1A7B79EA99649053B3A8B3FB1116524C8439589C3030AB7875CCA1ED6738CCEA
-0852662239E33797AAA0519540A17CEB94124D499F06219B7AF2F410AABFEFA5
-86BFF51D4622AA5D7873C77E016AD925E5D4B2431D8423BC9D56000F7B61DFA5
-46637C42EF5160CC4C1DB7E0C24C604579B34F8C063E011E0FD306A7AB3B23ED
-7163FA717AEF2908F657EB8AE94ECF91
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 160 /abreve put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
-EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
-3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
-B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
-16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
-DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
-A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
-DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
-710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
-D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
-19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
-852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-TeXDict begin 39158280 55380996 1000 2540 2540 (imp.dvi)
-@start /Fa 206[163 163 48[{}2 316.314 /CMR9 rf /Fb 161[351
-137 36[176 176 176 176 176 176 176 176 176 48[{}11 351.46
-/CMMI10 rf /Fc 132[176 5[195 137 139 138 185 195 176
-195 293 98 2[98 195 176 107 156 195 156 195 176 12[254
-2[273 239 14[264 6[98 1[176 176 176 176 3[176 176 1[98
-117 98 2[137 137 98 19[176 176 18[{}39 351.46 /CMR10
-rf /Fd 138[229 5[206 229 1[115 2[115 5[184 1[206 25[324
-3[298 67[{}9 421.752 /CMR12 rf /Fe 141[312 1[405 364
-405 607 202 2[202 3[340 3[354 31[551 25[202 39[{}11 728.927
-/CMB10 rf /Ff 59[1125 112[281 11[450 7[0 8[169 1[169
-1[169 9[0 30[0 0 0 6[0{}12 562.336 /TeXMUSIX16-Regular
-rf /Fg 53[1125 1[281 2[2249 1125 562 56[1125 6[562 1[141
-36[158 1[158 6[351 9[562 1[562 7[0 0 9[211 1[211 3[0
-0 3[0 0 30[0 0 0 6[0{}25 702.92 /TeXMUSIX20-Regular rf
-/Fh 138[189 117 1[148 1[180 180 198 4[108 7[180 13[198
-15[251 67[{}10 351.46 /CMTI10 rf /Fi 95[0 160[{}1 702.92
-/TeXMUSIXSPX-Regular rf end
-TeXDict begin
-a4
- end
-TeXDict begin 2 1 bop -1540 3699 18628 15 v -1540 3875
-V -1540 4050 V -1540 4226 V -1540 4402 V -1540 2082 V
--1540 2223 V -1540 2363 V -1540 2504 V -1540 2645 V -1540
--26 V -1540 149 V -1540 325 V -1540 501 V -1540 676 V
--1540 4402 15 4436 v -1716 -341 a Fb(15)-1540 3253 y
-Fi(\240)-1540 3868 y Fg(I)-1487 2497 y Ff(G)-1540 494
-y Fg(G)-960 4219 y(2)-957 2356 y Ff(2)-960 318 y Fg(2)p
--310 4482 15 615 v -309 3868 a(\010)p -352 2785 254 15
-v -1090 x Ff(\010)p -351 2785 V -350 2926 V -307 3252
-15 474 v -306 2919 a(\010)p -149 2567 15 492 v -310 2567
-a(\010)-380 1381 y Fc(le,)p -106 582 15 615 v -309 582
-a Fg(\010)p 1376 4658 V 1377 4043 a(\010)p 1333 2785
-254 15 v 1334 2926 V -1124 x Ff(\010)p 1377 3252 15 545
-v 1378 2708 a(\010)1207 2567 y(4)p 1537 2567 15 492 v(\010)1376
-669 y Fg(>)2357 582 y(4)2419 1381 y Fc(pas)p 2772 582
-15 572 v 2773 582 a Fg(\()-204 b(\007)3037 1381 y Fc(-)108
-b(so'l)p 3615 582 V 3616 582 a Fg(\()-204 b(\007)p 4254
-4395 15 703 v 4254 3692 15 1617 v 4254 669 15 703 v 4893
-4395 15 615 v 4690 4395 a(\010)4690 2708 y Ff(\010)p
-4647 2785 254 15 v 4690 3182 15 474 v 4691 2848 a(\010)p
-4851 2497 15 492 v 4690 2497 a(\007)4541 1381 y Fc(ciel)p
-4893 494 15 615 v 4690 494 a Fg(\007)p 7772 4131 V 7569
-4131 a(\010)p 7526 2785 254 15 v 7527 2926 V 7570 2989
-a Ff(\010)p 7528 2785 V 7571 3322 15 545 v 7572 2778
-a(\010)5714 2567 y(6)p 6044 2567 15 492 v(\007)p 7730
-2638 V 7569 2638 a(\010)5910 1381 y Fc(e)p 6086 757 15
-572 v 6087 757 a Fg(\()g(\007)6704 1381 y Fc(le)p 6929
-757 V 6930 757 a Fg(\()g(\007)7568 1381 y Fc(stel)p 7772
-669 15 659 v 7569 669 a Fg(\007)p 8615 582 15 572 v 8412
-582 a(\007)p 9458 582 V 843 w(\007\000)p 10279 184 218
-85 v 7772 53 2726 85 v 10490 669 15 659 v 10287 669 a(\007)p
-10881 4395 15 703 v 10881 3692 15 1617 v 10881 669 15
-703 v 11316 4482 15 615 v 11317 3868 a(\010)p 11274 2785
-254 15 v -1090 x Ff(\010)p 11275 2785 V 11276 2926 V
-11319 3252 15 474 v 11320 2919 a(\010)p 11478 2567 15
-492 v 11317 2567 a(\010)8564 1381 y Fc(-)932 b(-)h(-)466
-b(le,)p 11520 582 15 615 v 11317 582 a Fg(\007)12390
-1381 y Fc(del)p 12713 582 15 572 v 12714 582 a Fg(\()-204
-b(\007)13223 1381 y Fc(pia)p 13556 494 V 13557 494 a
-Fg(\()g(\007)p 14195 4482 15 615 v 14196 3868 a(\007)p
-14153 2785 254 15 v 14154 2926 V 14197 2919 a Ff(\010)p
-14155 2785 V 14198 3252 15 474 v 14199 2778 a(\010)p
-14356 2567 15 492 v 14195 2567 a(\010)13825 1381 y Fc(-)133
-b(cer)p 14399 406 15 615 v 14196 406 a Fg(\010)p 15388
-4527 15 572 v 15389 3956 a(\007)15389 4527 y(\303)15682
-4542 y(\303)p 16230 4569 15 526 v 16231 4043 a(\007)p
-17073 4395 15 703 v 17073 3692 15 1617 v 17073 669 15
-703 v 17087 4395 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 4395 a -1540 9892 18628 15 v
--1540 10068 V -1540 10244 V -1540 10419 V -1540 10595
-V -1540 8276 V -1540 8416 V -1540 8557 V -1540 8697 V
--1540 8838 V -1540 6167 V -1540 6343 V -1540 6518 V -1540
-6694 V -1540 6870 V -1540 10595 15 4436 v -1716 5852
-a Fb(18)-1540 9446 y Fi(\240)-1540 10061 y Fg(I)-1487
-8690 y Ff(G)-1540 6687 y Fg(G)-960 10412 y(2)-957 8550
-y Ff(2)-960 6511 y Fg(2)-275 10465 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (3.49998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- -275 10465 a -195
-10325 15 615 v -398 10325 a Fg(\007)p -441 8978 254 15
-v -1354 x Ff(\010)p -440 8978 V -439 9119 V -396 9516
-15 545 v -395 9182 a(\010)p -237 8831 15 492 v -398 8831
-a(\007)-561 7574 y Fc(que)p -398 6994 15 572 v -397 6994
-a Fg(-)-397 6423 y(\007\000)888 11115 y Fa(11)993 10325
-y
- slur@Dict begin (2.5pt) GD S0hgt (7.5pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 993 10325 a 993 10325 a
- end
- 993 10325 a 1092 10325 15 615
-v -104 w Fg(\007)1121 8648 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 1121 8648 a 1049 8761 15
-492 v 888 8761 a Ff(\007)10 7574 y Fc(-)34 b(st')-10
-b(\022)-166 b(e'l)p 418 6994 15 572 v 419 6994 a Fg(.)419
-6423 y(\007)991 7574 y Fc(re)p 1092 6511 15 616 v 889
-6511 a Fg(\007)p 1561 6599 15 656 v 1358 6599 a(\007)p
-2031 6687 15 697 v 1828 6687 a(\007)1092 6028 y(\312)1384
-6057 y(\312)1092 5896 y(\312)1384 5925 y(\312)p 2501
-6775 15 738 v 2298 6775 a(\007)2767 11115 y Fa(11)p 2971
-10325 15 615 v 2768 10325 a Fg(\007)3710 11115 y Fa(10)p
-3914 10325 V 3711 10325 a Fg(\007)p 2725 8978 254 15
-v 2726 9119 V 2769 9182 a Ff(\010)p 2727 8978 V 2770
-9516 15 545 v 2771 8971 a(\010)2851 8761 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2851 8761
-a 2851 8761 a
- end
- 2851 8761 a 2929 8761 15 492 v -83 w Ff(\007)p
-3872 8831 V 3711 8831 a(\007)p 2971 6687 15 615 v 2768
-6687 a Fg(\010)p 4653 10588 15 703 v 4653 9885 15 1617
-v 4653 6863 15 703 v 5000 10676 a(\011)p 4958 8978 296
-15 v 5001 8971 a Ff(\011)p 4959 8978 V 4960 9119 V 5003
-9112 a(\011)5000 8761 y(\011)1809 7574 y Fc(-)1050 b(-)f(-)524
-b(gno.)5000 6775 y Fg(\011)p 6886 10588 15 703 v 6886
-9885 15 1617 v 6886 6863 15 703 v 7233 10675 15 615 v
-7234 10061 a(\007)p 8176 10763 V 8177 10149 a(\007)9242
-10096 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.00002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 9242 10096 a 9119 10851 15 615 v 9120 10237 a
-Fg(\007)p 7191 8978 254 15 v 7192 9119 V 7235 9445 15
-334 v 7236 9112 a Ff(\007)p 8134 8978 254 15 v 8135 9119
-V 8178 9516 15 334 v 8179 9182 a(\007)9218 9365 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-15.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (50.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 1 N end
- 9218
-9365 a 9077 8978 254 15 v 9078 9119 V 9079 9260 V 9122
-9586 15 334 v 9123 9253 a Ff(\007)p 7395 8761 15 492
-v 7234 8761 a(\007)8410 8859 y
- slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (-0.79999pt) GD N /S2brk
-S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (50.0pt) GDAR N /S2dir
-1 N /S2dash 0 N /S2adj 1 N end
- 8410 8859 a 8134 8978
-254 15 v 8339 8971 15 492 v 8178 8971 a Ff(\007)9204
-8971 y
- slur@Dict begin (2.0pt) GD S2hgt (-4.0pt) GD 1.6 (2.0pt) GD M S2dir
-M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
-S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 9204 8971 a 9204 8971 a
- end
- 9204 8971 a 9077 8978
-254 15 v 9282 8971 15 492 v -83 w Ff(\007)7060 7574 y
-Fc(Ah,)p 7437 6599 15 615 v 7234 6599 a Fg(\010\000)10168
-10237 y
- slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 10168 10237 a 10168 10237 a
- end
- 10168 10237 a 10062
-10851 15 615 v -105 w Fg(\007)10011 9253 y
- slur@Dict begin (2.0pt) GD S1hgt (-12.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 10011 9253
-a 10011 9253 a
- end
- 10011 9253 a 10020 8978 254 15 v 10021
-9119 V 10022 9260 V 10065 9586 15 334 v 55 w Ff(\007)9893
-9042 y(6)p 10020 8978 254 15 v 10225 9041 15 493 v 10064
-9041 a(\007)9884 7574 y Fc(mia)p 10266 6687 15 572 v
-10267 6687 a Fg(\()-204 b(\007)10624 7574 y Fc(for)p
-10932 6775 V 10933 6775 a Fg(\()g(\007)p 11395 10588
-15 703 v 11395 9885 15 1617 v 11395 6863 15 703 v 11865
-10465 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (3.49998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 11865 10465 a 11946 10325 15 615 v 11743 10325
-a Fg(\010)14513 10325 y
- slur@Dict begin (2.5pt) GD S0hgt (7.5pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 14513 10325 a 14513 10325 a
- end
- 14513
-10325 a 14612 10325 15 572 v -104 w Fg(\007)p 15278 10325
-15 538 v 666 w(\007)p 15944 10412 15 593 v 15741 10412
-a(\007)14612 9753 y(\304)15494 9798 y(\304)p 16611 10500
-15 647 v 16408 10500 a(\007)p 11700 8978 254 15 v 11701
-9119 V 11702 9260 V 11745 9323 a Ff(\010)p 11703 8978
-V 11704 9119 V 11747 9656 15 474 v 11748 9182 a(\010)p
-11700 8978 254 15 v 11905 8971 15 492 v 11744 8971 a(\010)14408
-8831 y(?)p 15236 8831 15 387 v 667 w(\007)p 15902 8901
-15 424 v 15741 8901 a(\007)15236 8444 y(\304)15452 8455
-y(\304)p 16365 8978 254 15 v 16570 8971 15 461 v 16409
-8971 a(\007)11304 7574 y Fc(-)261 b(tu)p 11946 6863 15
-572 v 11947 6863 a Fg(\()-204 b(\007)12112 7574 y Fc(-)99
-b(na)p 12612 6951 V 12613 6951 a Fg(\()-204 b(\007)12897
-7574 y Fc(non)p 13279 6863 V 13280 6863 a Fg(\()g(\007)13699
-7574 y Fc(se)p 13945 6775 V 13946 6775 a Fg(\()g(\007)14230
-7574 y Fc(l'ab)p 14612 6687 15 615 v 14409 6687 a Fg(\010)p
-17073 10588 15 703 v 17073 9885 15 1617 v 17073 6863
-15 703 v 15310 7574 a Fc(-)1029 b(-)17087 10588 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087
-10588 a -1540 16275 18628 15 v -1540 16451 V -1540 16626
-V -1540 16802 V -1540 16978 V -1540 14658 V -1540 14799
-V -1540 14939 V -1540 15080 V -1540 15220 V -1540 12549
-V -1540 12725 V -1540 12901 V -1540 13077 V -1540 13252
-V -1540 16978 15 4436 v -1716 12235 a Fb(22)-1540 15828
-y Fi(\240)-1540 16444 y Fg(I)-1487 15073 y Ff(G)-1540
-13069 y Fg(G)-960 16795 y(2)-957 14932 y Ff(2)-960 12894
-y Fg(2)-339 17498 y Fb(])p Fa(10)-216 17111 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- -216 17111
-a -135 16971 15 615 v -338 16971 a Fg(\007)771 17498
-y Fa(11)877 16971 y
- slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 877 16971 a 877 16971 a
- end
- 877 16971
-a 975 16971 15 615 v -105 w Fg(\007)1882 17498 y Fa(11)2005
-17111 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 2005 17111 a 2085 16971 15 615 v 1882 16971 a
-Fg(\007)2992 17498 y Fb(])p Fa(10)3097 16971 y
- slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3097 16971
-a 3097 16971 a
- end
- 3097 16971 a 3196 16971 15 615 v -104
-w Fg(\007)-339 15284 y Ff(\011)p -381 15361 296 15 v
--380 15502 V -337 15565 a(\011)-508 15424 y(6)p -213
-15361 254 15 v -8 15424 15 493 v 170 w(\007)1005 15242
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 1005 15242 a 729 15361 254 15 v 934 15354 15 492 v
-773 15354 a Ff(\007)1966 15354 y
- slur@Dict begin (2.0pt) GD S0hgt (-4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1966 15354 a 1966 15354
-a
- end
- 1966 15354 a 1839 15361 254 15 v 2044 15354 15 492
-v -83 w Ff(\007)p 2950 15361 254 15 v 3155 15424 15 493
-v 2994 15424 a(\007)-468 13957 y Fc(bia)p -135 13069
-15 615 v -338 13069 a Fg(\007)789 13957 y Fc(a)p 975
-13333 V 772 13333 a Fg(\007)1742 13957 y Fc(sde)p 2085
-13333 V 1882 13333 a Fg(\010)p 4102 16971 15 703 v 4102
-16268 15 1617 v 4102 13245 15 703 v 4509 16707 a(\011)p
-4467 15361 296 15 v 4468 15502 V 4511 15565 a Ff(\011)p
-4469 15361 V 4512 15354 a(\011)4509 15213 y(\011)2688
-13957 y Fc(-)914 b(-)456 b(gno.)p 4456 13428 370 15 v
-4510 13421 a Fg(\011)p 6730 16971 15 703 v 6730 16268
-15 1617 v 6730 13245 15 703 v 7340 16707 15 615 v 7137
-16707 a(\010)p 7094 15361 254 15 v -1353 x Ff(\010)p
-7095 15361 V 7096 15502 V 7139 15898 15 545 v 7140 15565
-a(\010)p 7298 15213 15 492 v 7137 15213 a(\010)6929 13957
-y Fc(Que)p 7340 13069 15 615 v 7137 13069 a Fg(\007)7137
-12982 y(\000)7881 13957 y Fc(-)327 b(sto,)p 8698 13245
-15 572 v 8699 13245 a Fg(\()-204 b(\007)p 9482 16883
-15 615 v 9279 16883 a(\007)p 9236 15361 254 15 v 9237
-15502 V 9280 15495 a Ff(\010)p 9238 15361 V 9281 15828
-15 474 v 9282 15354 a(\010)p 9440 15213 15 492 v 9279
-15213 a(\007)9115 13957 y Fc(que)p 9482 12982 15 615
-v 9279 12982 a Fg(\007)p 10593 17059 V 10390 17059 a(\007)p
-10551 15143 15 492 v -1916 x Ff(\007)9902 13957 y Fc(-)250
-b(sto)p 10593 13069 15 572 v 10594 13069 a Fg(\()-204
-b(\007)10918 13957 y Fc(m'ac)p 11377 13157 V 11378 13157
-a Fg(\()g(\007)p 11958 16971 15 703 v 11958 16268 15
-1617 v 11958 13245 15 703 v 12569 16707 15 615 v 12366
-16707 a(\010)p 12323 15361 254 15 v -1353 x Ff(\010)p
-12324 15361 V 12325 15502 V 12368 15898 15 545 v 12369
-15565 a(\010)p 12526 15213 15 492 v 12365 15213 a(\010)11914
-13957 y Fc(-)273 b(co)p 12569 13069 15 615 v 12366 13069
-a Fg(\010)p 14138 17059 V 13935 17059 a(\010)p 13892
-15361 254 15 v 13893 15502 V 13936 15495 a Ff(\010)p
-13894 15361 V 13937 15828 15 474 v 13938 15354 a(\010)p
-14096 15143 15 492 v 13935 15143 a(\010)13177 13957 y
-Fc(-)540 b(ra:)p 14138 13157 15 572 v 14139 13157 a Fg(\()-204
-b(\007)14468 13957 y Fc(c)-10 b(h'al)p 14923 13157 V
-14924 13157 a Fg(\()-204 b(\007)15243 13957 y Fc(-)63
-b(tri)p 15708 13157 V 15709 13157 a Fg(\()-204 b(\007)16228
-13957 y Fc(ca)p 16492 13245 V 16493 13245 a Fg(\()g(\007)p
-17073 16971 15 703 v 17073 16268 15 1617 v 17073 13245
-15 703 v 16765 13957 a Fc(-)17087 16971 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 16971
-a -1540 22801 18628 15 v -1540 22977 V -1540 23152 V
--1540 23328 V -1540 23504 V -1540 21184 V -1540 21325
-V -1540 21465 V -1540 21606 V -1540 21746 V -1540 19075
-V -1540 19251 V -1540 19427 V -1540 19603 V -1540 19778
-V -1540 23504 15 4436 v -1716 18761 a Fb(26)-1540 22355
-y Fi(\240)-1540 22970 y Fg(I)-1487 21599 y Ff(G)-1540
-19596 y Fg(G)-960 23321 y(2)-957 21458 y Ff(2)-960 19420
-y Fg(2)p -177 23321 15 615 v -380 23321 a(\007)-381 21810
-y Ff(\010)p -423 21887 254 15 v -380 22284 15 474 v -379
-21950 a(\010)p -219 21669 15 492 v -380 21669 a(\010)-588
-20483 y Fc(deo,)p -177 19859 15 615 v -380 19859 a Fg(\010)p
-816 23321 15 572 v 613 23321 a(\007)817 22750 y(\303)963
-22757 y(\303)p 1518 23409 15 624 v 1315 23409 a(\007)2048
-23760 y(Z)p 2220 23497 15 615 v 2017 23497 a(\010)p 1974
-21887 254 15 v -1547 x Ff(\010)p 2017 22284 15 474 v
-2018 21810 a(\010)p 2178 21599 15 492 v 2017 21599 a(\010)2016
-19771 y Fg(?)2467 20483 y Fc(c)-10 b(h'al)p 2718 19991
-15 572 v 2719 19991 a Fg(-)2719 19420 y(\007)3201 20483
-y Fc(-)21 b(tri)p 3420 19991 V 3421 19991 a Fg(-)3421
-19420 y(\007)4061 20483 y Fc(ca)p 4325 19508 V 4326 19508
-a Fg(\()-204 b(\007)p 4823 23497 15 703 v 4823 22794
-15 1617 v 4823 19771 15 703 v 5392 23233 15 615 v 5189
-23233 a(\010)5188 21739 y Ff(\010)p 5146 21887 254 15
-v 5189 22240 15 501 v 5190 21880 a(\010)p 5350 21599
-15 492 v 5189 21599 a(\007)p 6753 21669 V 6592 21669
-a(\007)4653 20483 y Fc(-)260 b(deo)p 5392 19596 15 572
-v 5393 19596 a Fg(\()-204 b(\007)5761 20483 y Fc(dal)p
-6094 19771 V 6095 19771 a Fg(\()g(\007)6512 20483 y Fc(pa)p
-6796 19771 V 6797 19771 a Fg(\()g(\007)7004 20483 y Fc(-)121
-b(ra)p 7497 19683 V 7498 19683 a Fg(\()-204 b(\007)p
-8199 23233 15 615 v 7996 23233 a(\007)p 7953 21887 254
-15 v 7954 22028 V 7997 22091 a Ff(\010)p 7955 21887 V
-7998 22424 15 545 v 7999 21880 a(\010)p 8157 21739 15
-492 v 7996 21739 a(\007)7696 20483 y Fc(-)141 b(di)p
-8199 19596 15 615 v 7996 19596 a Fg(\007)8988 23848 y
-Fa(11)p 9192 23233 V 8989 23233 a Fg(\007)9222 21557
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 9222 21557 a 9150 21669 15 492 v 8989 21669 a Ff(\007)8559
-20483 y Fc(-)312 b(so)9186 20644 y Fb(^)9420 20483 y
-Fc(an)p 9192 19683 15 791 v 8989 19683 a Fg(\007)p 9687
-19596 15 753 v 9484 19596 a(\007)p 10182 19508 15 714
-v 9979 19508 a(\007)9192 19024 y(\212)9560 18988 y(\212)9192
-18893 y(\212)9560 18856 y(\212)p 10677 19420 15 676 v
-10474 19420 a(\007)p 10968 23497 15 703 v 10968 22794
-15 1617 v 10968 19771 15 703 v 11332 23848 a Fa(11)11624
-23286 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (5.99998pt) GD N /S1brk
-S1hgt (2.5pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (0.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 1 N end
- 11624 23286 a 11536 23233 15 615 v 11333 23233
-a Fg(\010)p 11290 21887 254 15 v -1353 x Ff(\010)p 11291
-21887 V 11292 22028 V 11335 22424 15 545 v 11336 22091
-a(\010)11417 21669 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 11417 21669 a 11417 21669 a
- end
- 11417
-21669 a 11494 21669 15 492 v -84 w Ff(\010)10473 20483
-y Fc(-)682 b(co)11332 19596 y Fg(\011)12736 23848 y Fa(10)12673
-23145 y
- slur@Dict begin (2.5pt) GD S1hgt (10.0pt) GD 1.6 (2.5pt) GD M S1dir
-M A S1x1 S1y1 CP (4.00002pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 12673 23145 a 12673 23145 a
- end
- 12673 23145 a 13028
-23286 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.99998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 13028 23286 a 12940 23233 15 615 v 12737 23233
-a Fg(\007)13761 23848 y Fc(7)13666 23145 y
- slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 13666 23145
-a 13666 23145 a
- end
- 13666 23145 a 13933 23233 15 615 v 13730
-23233 a Fg(\007)p 12694 21887 254 15 v 12695 22028 V
-12738 22091 a Ff(\010)p 12738 22424 15 685 v 12739 21739
-a(\010)p 12863 21887 254 15 v 13068 21880 15 492 v 12907
-21880 a(\007)p 13687 21887 254 15 v 13892 21950 15 493
-v 13731 21950 a(\007)p 14722 23497 15 703 v 14722 22794
-15 1617 v 14722 19771 15 703 v 15087 23585 a Fg(\011)p
-15045 21887 296 15 v 15046 22028 V 15089 22021 a Ff(\011)15087
-21669 y(\011)12109 20483 y Fc(-)1011 b(-)g(-)505 b(ra.)15087
-19683 y Fg(\011)p 17073 23497 15 703 v 17073 22794 15
-1617 v 17073 19771 15 703 v 17087 23497 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 23497
-a eop end
-userdict /end-hook known{end-hook}if
-%%Trailer
-cleartomark
-countdictstack
-exch sub { end } repeat
-restore
-%%EOF
+%% LaTeX2e file `eps/caccini2.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 21 94 556 785
+% EPSF created by ps2eps 1.39
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: imp.dvi
+%%CreationDate: Fri Sep 13 09:08:44 2002
+%%PageOrder: Ascend
+%%DocumentFonts: TeXMUSIXSPX-Regular CMTI10 TeXMUSIX20-Regular
+%%+ TeXMUSIX16-Regular CMB10 CMR12 CMR10 CMMI10 CMR9
+%%DocumentPaperSizes: a4
+%%EndComments
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def%%EndProlog
+%%Page 1 1
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 imp
+%DVIPSParameters: dpi=2540, compressed
+%DVIPSSource: TeX output 2002.09.13:0818
+%!
+/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
+/p{show}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
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+/slur@Dict 200 dict def
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+% align the slur to the staff lines
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+ aa 0 gt { /shift shift neg def } if
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+% and finally draw it...
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+ grestore
+ % now some \slurtext code...
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+% differenced line
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+% sloped line
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+% free line (init & terminate)
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+end
+%!
+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]/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[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
+%!
+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/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/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
+%!PS-AdobeFont-1.1: CMR9 1.0
+% 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 (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR9 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 48 /zero put
+dup 49 /one put
+readonly def
+/FontBBox{-39 -250 1036 750}readonly def
+/UniqueID 5000792 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
+3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
+046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
+C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
+A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
+A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
+731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
+09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
+49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
+5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
+54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
+C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
+11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
+D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
+109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
+3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
+C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7DE90DFECF89
+9E58BB6430D9915B21B801B7EF6E62C2DAEBA34EC115F1D18F1F2BEC381020E2
+3FEF9CB4F3C3997C3F0587AF7C2A6B08A2823EC3DD3623E073DD07E7E8995DF8
+D81B2B6C8D36C964B75C7E4DAD8723126043FD455BBF4F1C21609729D9CF2620
+A6322AA2244D98C7BE825289C2F09F2ECCA97F4DC25F93D44954392BCB47A2CC
+1A11F6CD6101DD405EEB13945A1AE4CF6427F53AF9A0F76ED8D9E6B2C81562A7
+7F3A89339B0D12BBF34BA71F6FD2D75D0C3068843119AF94ED88AAC850664154
+78973B221D800E5A0556DAC4679C62294751C1C74701994332D8B29CB51DA91E
+215C8699F47D2A56EE9905A4716B97DF456ECA78BFBA774F1665042B47CB2FF1
+F3617C88959B667624EA096EBA7BCA7C4924947DE35FEAE25FD055C0843FFF09
+F80AC8F15EBA70D546F3EADC6E4153DA1E91D63FD90AE7EDBFD786C323E6B4F8
+92A3197807FAF44DACE5097BA940DAA972C26620BAC146E91310CD0C853AB86F
+3D3D65342EFB3B01762FCED5F6EE42F3B47BC5B9DE9F1517BF3B32A22DE23FAB
+31341D9B8F55040572476437F5A81BD297A6FFD971B963458CF4779AE811F0CC
+4AD74B3CFD7A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMMI10 1.100
+% 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 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 93 /sharp put
+dup 94 /slurbelow put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 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
+95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEFBBB4AD66A4D7350B0
+38A001EBC9735BE41A41B4836FCFC0D4029C02D8DAEA734951E57209889EFD2A
+33D220471B99E877FD166D30A54B29D4CC17CD581611477EC6BF8A58479ADE5F
+FE8DB690DF606BDA5AE6D1E2B1B797C835A026E933D593975A7AC4DF8EA7662F
+F51A30717A92A2FD10030E749FFF416FAA31794A3EF90832F493C1012ACCC272
+9313AA60DA29EAABE06C313A7D6190B3FC20E0E400E647ADBDC6C63CE3AB0D21
+DB0EF15268C3056C4E28FA7625F2BF7AC6343417D3E54CEFDAFE3B0E42E96C59
+8348EE6BD0843B0509FEABE63FB91C89FB452047789D36B69A355F2F605C77D7
+5AC7BBC694A05A4D42224F1051296857DB8D542F78DF1AEBD0F55AD2BB1795D3
+880CFA7AE2B14CB898327A058D330FC29BEEA39661FB8AA17B1D9298969629C0
+035D90094EC5D33B9C91B3E9EFB648BD3303BAB96EED1D209811066CDC3AA0DC
+664C576F01B39C04F54F9BD393B74D4620666DB9DEC4F49C46E85A14EB1B1FA6
+ED1E13DF0BBF930F995A14AF9AFD04EA8317ED31FCA841133D742CE53BC44A84
+2B8E98B6F78927A4783284DE22942EFE6E9685D880CBF2F215ECF20A00D6D3C7
+8F31303AFB2DC22CA1036C787A4CBF0AA39D5E5614AF8E2B2DFA8188C2C5DC62
+307206815717F190E854D2160D541D087A24701E05DA93D5F0F9A3E18C13F44D
+28281D018CE0ED65FDC7A41DD2D7569CAC04FC3FF086F89392339070DC4436D4
+52F283791522918DAD8C01873436B6665C4D698647FD7ECFB67495AFF97A1656
+9DE0D0EC6053AD025EDEA86CBF26B4789B67CB490B76F6F03E8564829096F390
+32198C0F01E5605A0E6AECF6FC99CBFF8A113D88EFFC6E047361EF267F3FEF0A
+0D13514F1DBE782888278818953F05D660FDEC6ACC4F927EF6A7071DC11A2367
+8C5EF70B850DD123EFA3379291241CBFE455C88264E058F2C2B57D2BAF5D7224
+AA236B06B756D47DB4AB4D1C1B0B848BA1E5403D3AB2B135FD14579AE258F4D3
+EB02EBF44EED73AD6C4D5B0A414A58305793DE8236E673299E45313DC42278DB
+6AE93703D8D4F70A0AB11E4D19878AD245264F36050EB65B6F10125779C70D8E
+0065B0F31E8689D7006E25B1E01364A1FE370CCCABCD955C6A518A26DEE209A4
+F070657B786E9C670611E0E53076B0B6183C2D4796DCB9BB59851A0EEFA715B0
+E105FE75ABAFA9973524631BD22CC222A5D3B1F63015A392E43C857FBC8CE769
+16C103777607E18CFB4D096708FFD430EA3EE8B0E813B137B5784962EAB607FE
+717079429B675D90F3D973CAAFA004F6243EE0A53FE515D255C95DBA5C0DFB32
+5E0529B1D0E5183523AC111882566D14788F53F22FBDE907B26238A814E57C29
+A6DAF9C7E2F79537824F0DAFD9A521628565B526F000862857D9BA6CFF593510
+610A2EA10FA423C056C12B19EC53840AEB340515986D8976F02606413FC6AA39
+ECDF92C5897AD6CFA9A89E0CB23D4904A5BE2E849EC7BC2FF4A88228E8CB6196
+B6DE62566DABD4C85005211C83BFCFA86CE4D2EBDB699FF3819760B188DA7CFF
+909FC74CF024AED318E00AA51F8750406B0E2EA33363E385303CFBDAFBD2D8F0
+4F6A8B00431BB0776AB91470E2832667C97C8F7A7384445A2A42555BEEF95EC2
+F2C78B89891CE666F2B47FF1141ACF80AFE627FEC568168A61C99C941BA7D0AC
+54ACF918B72619207C0182A6BB1D59E58FC3C96B0078EBA276B9C02DB668F0A8
+E046BE4633E66E36369CDFD881E71A969F1EDFD8D7CAE207A74A8CB8AAB39C8F
+935BEEBE8D07D4559608F75254ECF672C2CDE1578D099D79152D8B41E054CD25
+56A856CB0593F0B676DD7E9FAE9844C6B6A781B9F823D5DEC60AA90E33498A93
+D6DF663FFF523C171B1F841D5E60C321B644EEBBAB0E0C418CB206C8775D4D0E
+33AB23D397B2DC98EFEBC3CC473ABB6EFA4DC2636E945BA3EFB03FFA680EEFE0
+7FB5C8F1945B699EE4F394204FF362262D2DC7CF759C5526B81D0326A5D14658
+B209F34B9334ED0B046DEE32B4E38776DDE43F803F8D029E8410BF7B1517E6A7
+0D84C40AB2A013C58C3BB28D496F6CEFF70E73F3486FCD3984F8297061E72171
+A17BE235ED5A38F7B73245B46E65EB4AF055C4568D1A19BEF6D5B184D3C26D45
+A2DA85EF7AADFB104419D7B6DC939726F6AD4A1335C425A5086969B7366F53F8
+9DD041A90FF2A593B547C37520BA014060801BDF84B7D386E4ABC862D8E3EBBB
+AC62431C625EFDE888E07A4548727C26141F0D9818CA289C79FBA2287620E29C
+71FF406FFE49048FBFE82EC631AE264580CD091EE22377D428069D99D6184D42
+C5A7A438933764CB1AC1534CE9D8F0717A0DC4A466DC21DC42791F06C28BDDAD
+AFC10D8C5147209ECBB9B87A0F3BC62359AA1D046A713B8E78CD857FCBCAF6C3
+F17B1453FF3443D60D0B5F75DE6DFFB09CD5BC44083DF8353E4A97CC03541BAD
+AAFA0E927D08919D13825535AD9F1C081436F0E550BAEE4A6902A411A653EC8F
+95621DB5D9AB5C155B1F1575268D724F51F82D9E5993AB42D724FF649F48F800
+67D2176665344A6CCE606C1D60062581FD4CC87D8C3EA72F1494F8967480180B
+3055576BACEF9322EDCD5E49C1DE7D7525C7F44391BF7DB360AA55F6A443621B
+1E1B7CFA3017A6A4E0B0980DE9BBFCC95A8EC512058A35877917A0F377705C6C
+86DF168ED49AE75998C8D7D2BE79E89066734A6B532830BDE10EDCDA303BA891
+880693359383EFF5EA85DF0575A9C5A114A6435EC71B124FA279F81D723C7EDF
+60F764D1E975BD48A295B8E29E247BB795BFB8E200F3B803631C90CDFC32999D
+CA367C5E4ADFE9268145F667A4E159C784525AD8B759959820E4B5978576A3AE
+CED1DC29EA92CB1910D84AC73494FFFD5C163C1A2094FC216227DA8C39213F8D
+00C4E673604D2E52F34B58AB257A18E91BB4B05B0A0712E260D14D6043361159
+D55C19B63E79B0688CE275B2DDEDA27191678D620375C0DEFB3F0268201A6CA6
+0ECF5F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR10 1.00B
+% 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 18 /grave put
+dup 19 /acute 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 48 /zero put
+dup 49 /one put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 58 /colon put
+dup 65 /A put
+dup 80 /P put
+dup 81 /Q put
+dup 84 /T 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 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 123 /endash put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1B9EEC89A0DF5D4E908F32BC77D09A266DC98E9669626354E
+59FA354352E609F3A359C0E8B82075C60AA8F917C3B46A51D65DE1F6F050160A
+412DAD1DCB1A35E49A520F31B3EF2B0A27E393E20EE871DBD2628AEC086AA0F1
+CB11E1DFC7E94792E38B0F8DFEC565B1676FD5BD49E5757F7D03092489A7A0FD
+2DA2ECE42C2BB3C481C676B3BB029368632768C2988B90ADA328C745443F93B1
+C31CBEA19AAE4FFC83A933DEF484A753B513A289FBBED75E3EE8C1117912BAF8
+54CC8AA4496B318283B80AC61EDF21B109D7DC8DDB8FEB1F20265E06C2E2E8DF
+9532840F5737838DE90773008DC7A4E23C0F133241F066096999887AD4D12DDE
+23656B80578308ADA3B73C7D92DFFA19F1A79AC9B99F4971AC65B49FAFA4EB21
+B05DA8A257B3CA70C7584768D4D1A8F45777FFBDB6C69A56A56B76B10D228B4E
+AC4A163E08E21F24E9DF40752B9CAC62E84596EAF822F177C4CF65B7078A536F
+97E22792FA75CD39AD747A1FEA72CEB4B2658DBB9A4CD46FBF5FAAB0D2342DAD
+04D93804B95AAEA397D0ACA78A3E49FFCA7473C3610C6E9A9251EE17F88E790E
+82C4755F75EE3A7FA6C0237A7030CAA69F77BD9D4EF25FB1A2D45B649DD78499
+586027D49923A3E2870543F4CF74A00499B8BB5A903645E546A5403B88BB5F97
+F04924E8CE2A3446643AF9F1BCD69552B351076B53AF9F34FFDFE3548F31607C
+CA8F999426CA7D9B3464D2C6BF22AD989D98D0C5799E54FBECA219E2EF410CF4
+A049606A988FA48884717E52FF08B3322390C85C4D2B9CBE74801B538E9590DD
+C2A7874BA3A795BE0E40B300B16C4E06251E8A90BB725687A489828848C7F6F7
+3DAFA7C01A21CF7318E8C26D5B336E7B6E4F4F0B397904564BBA28BDB9794B45
+8CEA36266178898E3612D7DF333CB7FEE6396B67761361CE1791E3B18B629B17
+1667584AFDC209377CCB279582FCAB62725237AAF4879364006A0B717EA427EF
+5CF24C44FF4A6FE8ED167A40EF438CA0A6B0D80DD46552563B36DA5DAD53AEE6
+E116D35D0321DCAF45D1808418490D772C50B6FB0810F2E259E21AEEFBD7C5D5
+B7FA3E9BD20A02299701F473294B6C8445E0769EA93307756CE2A7FF454B2C1E
+E1CEEE797D5DA0A8A7EEAA2090AA69FD220CD70080AAEF76EFB53FF7759BC68E
+D7047DBBC8DB5C13320F77A8FB94B9DB259A9AE460B8634A22AAA2E363084BA4
+E2B77C1E29568B02BA3B160E78799B29B38D1BE9FD53F4D847CE1542DBDDDAFB
+00CEA31C5E9A63C6A5A02740A29EF7EEAA640DF24DE62385E2BC5E7FFDE1F362
+C7F86BFC2A4E9BCE82A37D5BB4BF26BAE85459B6945F7A7E4AA99002B9475A9B
+8A0CF51FEE063B939B1E1737BECC470D3DFC46D97E97D77DA85253440C570804
+C3B5EE537499CC481CA523B7320D59AF0A4102406DC5A264E7393E04B39A3458
+2B241C46D8D9A99604E48C85DFBEC0FEDE37A7BD53DD20A62CECA82A6E6640F2
+F68B66B65EB2D6C1C582FC10A4EF57711F19AF71D8D4BFDD735C3E67A4D9216A
+5BBC655423FD1FF2DF40A19E528EE4B81FA837525865A6CEDF9E7F27D3FC5C61
+CFC31DB55A2586B6F8D598DCC500ADE62C8132B4D65F5DE6637A34E2CCB7F225
+3AC04CECF1FAB29399A33D06DC3010F4B44CD0DC34FC72792CB645FC4079C34D
+3497C9617FD607C5FB0D804E5DE41B07542D2437A7530C200BB839542CEDD201
+D8E0D0840FC242DDF4A5A4CD973353DC491E06E684C99B0B074649978EBD11B6
+774C5224BB091BB445FE2E4F276F6A9DADAB7DA417847FAF1B04BF5DE12D356D
+06D6E83E6362178B804B95FD8683ED3CD511002BE0B87ACF8AC9292897C2F85B
+5C8814D40EA5DB190A52E05623E0BC0C7FC19943CB2B07573F7CCC885FA8AB29
+367930831009DBB9CA6E7E879641394526398F3209369D875A1EBDD45D7A203E
+74C03B38AC0FA1A379A5E399AB7700AACD2DC5B2BC3132BE82C64AF9662B9230
+6D06DAD71F74EA0C28A85C8629C97A1699DF1C91C0F5D035B459CC13E7CCE42E
+376A24E9AB4825C15AF2445CD206B9C39D70D735560A65C2BA5BBB76121A503E
+4FA1992D3C7C8001080FC8705BCE06B4113472B8A69E9CF1AA8C5CA2450F8539
+E7D48DD5785217F519DA9534D13EE228F59DFC78A53AE949EAE75C484F223E88
+1D470D03227FC75C23BD32C3F64F87053D9F366CB37C014CCD36409458D90C99
+54D24B8BF0D3FC446FF633438A9447D9E33C90E4B0CFE115F7E81FB13E43BC51
+C725947F66E2D79877A155D4D373FC4C3FBFFDBBF04820F73F292B8E5D932917
+B27D7A4B20B7C471419CE731AE8CE958E8B750242D09E07EB1917433F77632A7
+A7775361484064D6B02AC57E14BD0B3C332A4BA36AA02F35AB09C83037796B79
+46FA4F4D506687B80BE0E2D2374050501A5793171CA3C14F8CF6521F7575DC2F
+9A9ED29C80B8092C98FA1BA67C5E1B02B9976EA0CC363B7F1027EB779C1A6A38
+9DF3F9853B8A71483DE1BB5B9FF9D766EBDD648512DDDA9CFD418AAA51F754D1
+27ADBADC3B3CE807E7BB6650EE72646930EAEE073C2004535D5C4770C8FFDEC7
+B5882F2D49AD63DDE41665FD5D0D4213711CD7C0C503EC77511B1F304DC9E571
+8FC9C19B49D4974FC8B530490EC1F1C346A6B3569A9FC23B48F1EF63A8F1FA66
+456B40A2EF7F8A6BA3837D698D0F1A0C6EFF8AD59F5FFFC53C790D5D0A35073B
+842323D6D5BF3858496D366C42DCE69AA5C87B100CB358FDCDF7683446E685EC
+67583895433A6E73F94186BD778FF5D331F200F74F1866D29A83E6A2AA368442
+4735C4E14CBBC730C00B58B36396A9C81DCC9CDA324B847D8763CE7052FF7B3E
+EAC8A2DCE192B308C84AE5EFE62E38219BF151227C472952528C21EBD7F93150
+58CB8CD9B4F7E301EC2842F4E912103DC2758A56B4C5645F9CA35A826534A3C8
+042B990117D1A53CB13408D4960417F81A1FA442BD7ABB8FA91BF38F6D332256
+ACDBD26DDDDEFA833CAAB3D7084EF9C4649F73407ADCE0ADA5CCE19126924BB9
+6B48355F311A3AFCBE5EF10252F86D751DBD977C9DBF0C81E200AB77E0BB117F
+F48DCD53AF3A56E58BC1E6757A5AAAAED24616266B4E264F7927D70754DB9A3C
+AE063F688DEFB66B51F00D022075987696F54AD3D0286EF95E592F9D40454D0D
+69B061694D2AFE3697C7CA36196DD6B26BB1057AE5070D25A2F89326DE260440
+0AAED51ED7B254E279538C31D4BB4EFDDFFD4FD09232BC430A573FB657AFE742
+7CCB996E988FBDF600D809019F4B4D2F041A6BE4C60A52B2F3A8B6BC8DBF772F
+CB58477926D6E01384D7B718EACE9BF22096FFE7B3F398BE07AC814DD2C534A9
+06A17475DE88392A48B82535093DF87A1B23ED55EA725DD7533D905A67939D1F
+53ABF978B748AB202A077195E495E5F0CE042836BB5743565F7AEBF31284A99E
+C0CACFF65EEF9A9E7EB161253762CF243889BDD834460E1EE5A752E5254BB6B8
+C21D0B674C80FC55123E3DA6CD90B17B4CACA4F5425D9322643F2139FD90A8D3
+2BD3B9E0C4DA58871EB78A764A6E035A2DDE468BD45F40A5B2AD4D32D51B54CD
+C87C566C0DE3933EE423DF2930F0369A27EF1E609B0152886A26C7EB8E625DE5
+2DADBA71433FF7315006FA226BA80581B0554D0D65F610F59D61756676EFCD96
+1189905D27790D7910E8411FFAAF646D531C03FB3317AD77C8F4681C6C493D84
+E0BE58C096868A579A570A68B65DAA98D12ECEE1EAE774C282F9CE38E37FD95D
+B8056E30202FBC31832E734096C7B9B164665420698551A252C0458D901FE316
+1E2A8B629E1142815AB39369C89D6E366EA53608F0A0D8E5D09FD5F0AA1E1F8B
+6183806A9ACE9BA79DBDECF8AD1E9C3BD589B2D758CB90AE642746083F938040
+4B319D0BDBD61A24646615F744BDDEE2D19F7E6885BEA4BEE3CBEB98044F5C3B
+CCE180CD94E00957C7663E17F31AA2009ECCB464F1D19CD212A6F64C2C3BDE77
+4AF718A7005F7AF21879513A760ED3902B658534F00BE8277A3C09302780FBF5
+3D4CC7A4D399CDF38C3918DD85DE9D359252932AF5274ABCFBD8952957F642E2
+2C9846C20F8C95DBD53953A87FB4D72FB07177C8B9180368FE562C6757BA26A4
+4F5C241B377C1658B6DBC05574FD228E8745AC865F24C7C94700BA3DB4D53F3C
+46032B19870E44BE006A610365CE5AB3891C4053CEB9ABD70061B23F55910C29
+18E1AAB37F3EF51267D977EAA70349C7D4DA9B7809453BD23F17C1563335B87E
+DD90E4F74ABFB462D4EDA74CA37B88A4128A6712A9D861F9456F394064C4F8CC
+C8BA0BBF2C02EE11EAB8899FFB7C630D97C0290F13824E5F5576AC1381272427
+1E17F47562C5636E75DD779FBD1D18CE4D4257C0831FD68B412EB1905AE4101D
+DF68A74CD6F7ED92DE2667A080164989B807F84F126BDDFBA60987B2E780886F
+DFE3937A932304D88FAFF809ACB111BB06C64EF01F28756D2A6D6CCD5D6C9057
+E00FC93E619898BE6DC47573A02A60D8CC5140CDEEA11A453FCE09F9CEAD7FF1
+076F68CBB6EC2FC1D7EB66E1E831E886507CBF1A0C8E688FF91C45AA8566D747
+997F0EEBC72B8C77D812AD3820D7D837BA5ABFC231B8B6E8A7F2C85886CF7A39
+4C0AB000695BFB1E88BD9DBAD72BE505DA4830D4E57D4F519C6E7BF91CF5D72C
+47A98A9B7C6C2CE4A99587DA2BE19B8BB56EB7021D451654F92FAE4240CE623C
+CB57CFE0A0F00DF03EA7E40E75EBFDEC4B572C9570ADD9FEE4354A50BEF41CD2
+E622AAF95C6C467051BDC980D8E1C59B57B938073865D5624EE77C634CEB5863
+D3E020B88F535EEC5DAD9E81E6BCAFAC4AA3531A751F8830772C12AF1020564B
+4C4EDC4A8AA8F1B605A91E88CD7B11B3326C2B82AE540951DD6FC3BCA10DD078
+448DDF3F224745F2C88B53365EEDE976BB8D94D1F57E353EDE19F588DC56D99F
+EB3C628F9A5A6C9F79BC97D69F55EE0E337598806D0BC1EDE2CA8021EBCC1A50
+ADDB55DC3EABC67613B09E9A1674C0058702497C21EFD6322530E8040422A032
+6B6E872A2FE553E3792D7DAA2CD97FC2193EA2BDAC7E78C10673EAE640985389
+7E0C5C663DC10138C6FA5FBF3C24D7E72E5DB12DD4E5FBC213F7C72F9ACE751E
+FFED9C3B60907E04006F0FAFE98B31C607B5C84C3D1F181E1DFF2FF1E7A016AE
+C8799D765D52DA2EB5BA62575EB85243B5EA52A50DE2EF945C600EE8CBF1BDD5
+8F9E917193AD2E2D7C37162DECC00AD50C071B0A209327E87C8BAF529EE5B561
+5979F1515A78007AB6AF532219951A3B950534ED8646078EE7C933051E0C5DA1
+3B902956FAFB5CEE7A6D1881F2CA72686D74A00BB26A5627DBE2991771D8CDC5
+D35FA42713272A3346B5FB0C4250849CE0CF4F026B9E9D5E9FD5258AAF1B2D55
+1E7CD3C80BECD4E44C504E0F935A4F8B463373271EB7BD942698CF1D005403BA
+CDA5F1996D85F0656116CB2EFC49D25321AC051CC24784587B6969A226BFEEAE
+773444F741B04520C28298621800FE12CC18918C56FFA5D43FEB24125156B379
+F9BBAE01A58A1DAA21E5574BAAD2697042F540874FED03C4147A9A82EB3939A6
+5C941D015CF75D30766A7E954B9E2A8F2E9E808372B7FAF2E0871A7004C5508F
+EB9280D63471E9EF75D80BFB0D6C2430A061D4E2C4BB4C295DF63BF8C1DC0952
+D5DAD5E0A2653A8D03DE0868C14027464D871F9760DDDE95A903E1C1F8C2A7C0
+A0862FF3587BF172566E388F875A160CA150C3B2DF2728103F8EDDD08AD0BC6F
+65BF032EEF85FC54E299252B7F32E4A8DB7542418E09F073236E68F4F11485D3
+F6A0624C207CE7EC5B0B984A3C0F3FA609118C22CB6BDBA37A48BD0897204015
+7D9AF0D3F975F2ED088D91B6721CB604BB19291EE7B332CB852643678FC4B66A
+A15221B430720AC37E6C2140DF182968E3A28BFDF8BB2B1A90DA691CC419405A
+F2DD423B27F81CE1499708F11D4E3F6A86DBC243522C0CF3B83F39EE6312563B
+A3A624219E36CC78CA68466A781933E79F238D93416910B791C97502377A0A12
+CAD42241B814B8B37E35074DBB48B79CDDA2E8540CB303ED02DB330D9E542371
+D7E183C060F9307C2E0345D41736348ED1E50D2F9A531716ECD91AEC136448B2
+87E17C5EC71DDE13F79BFCF469C8062CB60132388865AB64A77558A8974875F2
+9FD46FB1B07B50CEF579FB3C4D862160A3615F2D3CD3E6D88B06182C2887AAF6
+AB70E2961CE467D409DA39E44C7A890FB1FE59977C954DA9ED0C4D2CE9F42C76
+94F8EB9D9980F40DDBF09A61B71CD07A2ECF3F1A3DAE84BEA1F38FED60DCA960
+462C7F22763841A260EB5AFD515E9E93AA2DE67F64C83835D5C3F1E3DA1A6051
+9CBB3750EB26ADD07DFB62FE7CBCE154CDAB84A6EFC9797A891D4D699C96280F
+6819A9067964B3D048F12B812395CD40E20EFAA9555FD0CE35E7D566929CFB0D
+8CBECB7ACC08CFCDCA43B6D105B89593121653030575F12566AEAAE800C00BBE
+E88EEC131577E9BFAB2CD2A5BD45F6A286B00B4C5CA09A5550C4EBD107EBEC39
+94AFAD0E3A8A6E729284B62169D853A658A10EB2A53E4CC4BF29F127273E0120
+60A1BC4C08DDC4F7DC298071CF0D8DE93A8F189D6C76EFBE0A591EE1180AC6A3
+D7F8E47B023C5833570D6AA04970F4EC552221A701826BFD2C9CF06197AB11CD
+2BA1C51C8FC1175A7D643F505CA573A87740C337CFBCDAE535E1B90D3236BB96
+92393450186C9A749B0A3A30FAB7B433610D2A0DE303E421B3C1E18BEA34D891
+CD6449CC5DBF1C1D01B2A47263C7D24052F8FE37F2AC085D0516EFD72CD78530
+7E2522917A7B863572752E9B1BBEDB7210516E62B73136F9DC1D96323DC3F78B
+C9E43A21A7AB7626A7454B655DE2CFFBDF27847616D52DBC72D54BE7BFE6CB49
+78FEF0FB1F710D55D123C7756F12AE2B5D4A9108C17F2AFB4E421B08E79E81C9
+E7F0029C052A27F5AD1C7AAB82C4B45B364408235DE134DCD74D93264F77BB7B
+E738B52C31CA5C734F9453478819E6E1F1317BA6496719A8CC91A30F6754A600
+AB170520C4872A328D2D84D09055A3AEB730DC8A47CD97A09E7E6481A85B6957
+0959D2623290BB04BD8612865A0443C9EF9C861494A5EAEACDC32FF5C572D2A5
+91ED31F8F8A3C0CDC34F5A4F271A0C067111C70D95526C4FE05A7018259333E1
+207AE3E9AED942612024BA3E2238C1E5F56CA70FD0ACAAD5F92A91AF5A59A9C3
+EE4FAC04CCC9C31A2502D1C0A5D6D2D5BF4A8EEEEDE64A31CAA16A9A97FC2EDF
+8351236C48C7FE4DB3542ABBBA24504A9EE692560DF455334A6E894085CE8423
+94F78CDFF2B7BAC537FEDE02CE127249B9611439582656A2B75E4639893C8F43
+AA0079E72110293C16C632AC7903C2417FFABA1D72BE58B0F9149E0DBECBA0FE
+383EFD0FD763DF63724CBF81178551CB9BB20AF338C850BAAE023BFD4329C733
+6F32CFB740828CA5103D9D21C516627CF62190A508351417109B1A66A62EC7E6
+F548CBD76FFC807E96D7AF6D351A40918B98F7154DE4575C14BF6B4BDDBAFE68
+C93C9381374226DC40D718356B7E1808ABE73D01A6C8893AA8EB9190D5352692
+5A3E97636A20AB4B189875FCE9F90E765E724533B9EFBEB36FF59F47215C7E19
+0B2C9640B9B68FF3BA17D140090190B3432E37A7E2E166117E5B1BFE5A0D9F3F
+1ED0495B2726D032E13EA3CE9E4D8394BD3430A9E4272E6543DBE0257780BA5F
+906B58E3A49BB916FFFC7104EB414C051C74D099F5A1B634AFFE11E899F73378
+9CDC9034F6FBAD517387FFD58B348FFB610AD6F2720B080A2E3A61572DD7C663
+47D6E93DBD490CCDAF473476392030D9D8B956ADA8C791519E7A0210E922CADC
+60A6AE1CD3ECF6D95907126E8A6B7DE8A15CEAB085778F293F36AF1123F98F03
+C0FE62786155B9BF44D8D217D942927234BB6EBDFB23ABA5896C985D6811CA74
+8EB0D20448147DEF5D942EB6042C938C60E4E5D2BA7749F3B7ADEFF5F9352DDD
+160898B6BED1B1677399E0135299A17A31D19F570E7ED8503F02F70664297483
+A51A1CA586234088845CB1F99C6514B9E482E7CE579AAF24A74AF73C1F94E1D2
+9C1C00E91CBC973B990BDF1E11434B3FF37BB51BDC6AF411E7CE909FD6949FE5
+98B5838CA1FED715B1E246BAE174BA96FBD83111B3DF2905F1ABEDC3A1C00238
+0D01A2940E460C9861342221AF69B38088424BFD60F3A18859DF3A3BBA929ABB
+0DFB70C4A315CC737339A61EC41671C38874C228A5B6A6BD033DA7C83EEDE739
+B0EF4AEFDDFF6FB2697B1C22F5E38DF8E05068FF834BB27E579DBA1A4B8C452D
+F404B122A158F748316168C3CCAC210230C38C33BD38EC7A9863B4C6AEF35839
+D3C8029F0D14E51E121C68172D14968541E92EC404D85429D101DBCA73105A20
+C40A1046144532FF3010533E7EEEA503F5966785D1443C40772212480C86C9DF
+8989B703365F91BA7395FBF1EEEBDDA805BF7C996CA46631CBE40C5F92C5F455
+DC5761943DA6FFD099D3559DE18530F7FA759E7F2EA87BA82180FDB1D00FF21E
+D1091DCCFFE9728F8B97AC1E0ADD4798ED663643EE649DBE15FFE94CEAA7B860
+7131CCB1C05D93D3284E5311F485E64F1AABD4BA39A2E07BC7CF0021FB8C1F7F
+885E8FFE4FD4DDEBDCAAF4EC20D7EA3E1323DF8A5C7D1443DF7B4E8F4AAF71BE
+7AEEDC4B8B67D72FEE01675EC95C828E63E83E252D9CF63DB0D05BB057B39AF2
+432540FBBF3805F6BCFAB8691485A4D302FBDD8AFED7BAC7F163A5F7B71B627C
+D29B643D20497E9127CF799DD2D02A30D362964464ADCAE2C0C5FA92AFB7FD11
+CEAECE70291D6F6FAC915EFE01958BC43057D7B7B145DF5CE75C5CDCEA8B04A8
+572F0FB5586E6E235FA416DB9DE5BF236B465CDB08B27CDCFE02201D0FE09A0A
+FAEC3709579C643DC58065D6E49C0F4BAB3C9AE9FD4940C78F57D1959B3BCD31
+3C7DA587227C03E3BF8B66A3AAF3B8B2713A834CA8A796D7805554FF8AE86BD9
+A625AE7FA1E431C647640B4AC1718C054793ADC2FD296FDE66F31B6B1C43E014
+924D4C3770FA293C9B68CDE3B90A6E382A042B45E1767A47E890CF1AEF8DF011
+16B2FFE40153BE44269852E7A113D274CE18A6E432C8740A12AA9EC80BEA5504
+01313B92F997A6D65C69D157FB45DAA5C23176619CA3760E0CA75A67033FBE61
+6C74B7D88FC7DF1051FDD8064D41E81EE5CEF382270133833F93C270D3AC0AC8
+3CAC747391C22E4E89B720957530DDDD029A371C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR12 1.0
+% 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 (CMR12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR12 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 67 /C put
+dup 71 /G put
+dup 97 /a put
+dup 99 /c put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 117 /u put
+readonly def
+/FontBBox{-34 -251 988 750}readonly def
+/UniqueID 5000794 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
+59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
+51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
+DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
+AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
+45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
+821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
+96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
+9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
+26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
+140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
+1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
+1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
+377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
+0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
+5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
+ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
+FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB
+4370BA2C96960CE9E688231626B3CF1C23A31C5800D54F5BB64FC84D0C7D4998
+5288AF2722FE7A2629BF422D026F31E189E82C9A451AFF9A9C138164F0CCF315
+D76FD849BC98A74FBC93F09F9EDF85B13F8869F08699C6C90C58DD45CA958E34
+0DC970D40DFCF3FAB15BA18C1750261B02CE16097938C466291A55062345D8D6
+61F775EA958D3BE761207F828DDED3DF5DDF243C0A352B08B165D887245FC857
+2FBB64CBC928B34F2831ABD03C5CC0D29E0802F21B3BDE32E069E0DF9B54DD6B
+3D13D19BFAE271A6AFF16A8C697EB07C1432D59A2D2039E686028D3808009A17
+696738793896F91DE802D1B7509045B438CC7C62CEE684AAEC9214932EE9FDAC
+09A0A8914D22F5B469811DF488AF012A4C5EC81769698621D17B2D30EE858069
+49CA4A8061410FE24196ABBD37BA67A77E86A8B3B75D511353F42915D1314F1C
+65C7A16FD9523316061970F95DE693FB4DD6088EE2189C9DD4E22B2AD113FFAE
+37CA2695338CC2508BC52FF04F9A88367C10F60B09F24DA37AD881A150DF1017
+FE577A2B0CC891A38542F1CED14F6CF2C5FC980D459F6D1BAD15D6B952DF882E
+6076B5186F4B941069410E0ACAEFF0BF6431608163354082ED6D5B68021C0BD3
+C1F1B12CB7C7805BFC4A5A488920C77159011727EA004D11AC691AB11DC98FA9
+6EB7BCF534C4B4F8D6935FD970ECCB1C5B7196BAA1A9C75F0001194EE690A8DA
+23D328CF84C74A96F973BF202D851AA689BA7F0C99D3E2D9447BE0C2F6CCD2F4
+782652DAC900FA6AE01E9DC4AE0E539B155B24B1A67F85D5F96E1F51289CC943
+D4DBC0034E48481339A60639EDA2212916BC83EFD34D89A19FCFB720C231222B
+845551D438A20AC06DDF9A49E5FC89974A1336657390445FADA16744A094E7BB
+EE7079DAB01CC8A528B20DA4F20306F9EECBEDBB86636E8DF0C431575F551F95
+B2823EE823C0C8E02D94F50FCE3E6F7D2B1557D5B89F55297207F11D1547FC0E
+989107AF90947310EBD726F89BC1EFFC51B59449AA91F2F8F760995E5F388316
+6FBC13791D2828FED49E2E586943D7517395F9EE3CB99726D32853B7448D2834
+B02D7BEBF573AE4C1D887CB512F243FB16E4800567B0FE2C4A1E7B64B2B3501C
+B612926E9E880FA6E1FE15FA94DA7E1F1EEEDEF2303DC2DEEEE9BEEBF5FB4880
+82F6B6BCF38AAFCFC65062841C725D0B88D9761FEFF0BEE46B5D6B2C5A508D23
+AEF7D71F427F3339562A29FD432D70265238C4414A6D94BD13505148FBF3C8FA
+91FA94792E73082E619D946F9CD0A13B4D8DA14136901C04AEEF70105E4C3859
+28200013F68E11BACF8FD94CD56B69DCF855E83312E3B023276B941C778E9AA4
+B8CFE29C945151AA4E3BDF36E3CB06204EDD004B7CD3F6EBF3FF847D0018227B
+1206E3507554F062441A46BE726C97A1355CE7B053E7B1B4ABFA0C96E3E001B0
+BE07923F11E7D570FD350CB7C8E293A6C6CE7AE79E7F8309C95F80BB957A1AE2
+2A32E6A4F314540759A2AEDD0213E3D42D88344DCEE7B732432277DC8C734EC4
+6E7BB880539DDB8A687238E8403AAB5DF383216546B82825067CFF7FCC3E32A1
+B6A082734315B0506DD1060501FD87AE62CFB30BBAAA0260D9C875924EF68581
+A3A73771F84F6D7628D17291AA202CD744B8F394D3B7F619D0C4A2F791046EB0
+5B101501BCCBCD260F9BDE8BCE7A1E085E2B120ED9982841715260CE4B6BEC7A
+B26AE2794C53C7835112CCE3A057ED48E6FA05FF88D3C7F943FCAC35831A9258
+5A8FB6584BC3346A018E0B569992E6EBA31ACB9EC876495D3C0CE59A0A70DF62
+B9D056F2ABE55C47AB17C9BAD970CA3EF4403549803D9B5D83FFB46990A56BB5
+946CC09A4C89D0EBD31438788B19DF3B1EEC2AC9A426E21E3966A8A25069799F
+26A40EA6149DA6402F83FFA12774D942450668AFE2F771A41506FBC5839CFC5D
+F6100F7FAA6B04BB659729D463F3A3BECCC38F8D435BC168550E3C7E5B55A970
+05670D4D2EC83BCD057B8E3BAC3FE2A464EE17
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMB10 1.0
+% 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 (CMB10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMB10 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 39 /quoteright put
+dup 65 /A put
+dup 97 /a put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+readonly def
+/FontBBox{-62 -250 1011 750}readonly def
+/UniqueID 5000761 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
+A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
+99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
+2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
+C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
+00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
+B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
+BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
+8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
+FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
+31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
+2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
+9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
+EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
+69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
+CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
+87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8EA36BB6C
+87B9939DADA60888E78E14E626AE6717EFA40C50FB362A81EA3C4C5279819327
+CFC2ADF1D8DD65B2CDB9E3B5941E81AA802A5745A3A4148591AABDABF9A08F04
+66CBFE887F0FF82364F351928E7D4779E54A0FF53FD088E0FA50F3047F42AC28
+EC0AFE3DC1F380DA575D618D5CF337900631F57ED0A59EF0C84488FF48B79823
+47F34E75E63D07B10B9DE367258E80C6E5227B9F2BFB79E16AD1BFE9E6707199
+FD35D296B5BC55DEB7F9547A9898C608547C2BBEF1054AF18DECD8CCECE80B8A
+F52CCB190B0626BFBBF59C2E7AC15E8EF0E570610DF4053748E3C8555DD89D73
+942DBD8F1AC6072DFBF74FA57C65196AB859F0E6D4150AA7592E746AAC3E302E
+D406427CF7159AA524780548F603E7AA624E4EDE5870936D037618E92DBF02D3
+D1E9FEB1CF0DEA80D5646E4765991669488028A8B7B9DBECF8286FFE00FC06AE
+EDAE0ADC9E6394A2A330A3BA3E00BFFFCB8FBA98DD7605FE9D7AAFF070A3AE7B
+69593C8B6E0E9D10D1584F23CC19110073E5922B9CF0DD28E4C7D51BE7B76435
+AE678608B03EA7820962F3859970ABDCD860311B6E753FE843FA992C0BF910DC
+B86B86277FE91A964CD34E80E1AC3245CD004CC8BE7F0E704104271660A2C75C
+B9368D509994377616C0B966DB9A1E9FDE2F2D7C577047D6FEF9A79D538104A5
+0DF65A8BBDE8FAE9D3C64D9B4BF3C4E94366FDBA02DF99B7C527BE53D391E8E5
+F0BB566F8A42C4A92A3605C12B8808D657DC68E4F9BD58D26AC06B7E6C046224
+C349FE0EB80B822F171E27051C391B1EEB65E599FDF6076581AE5FD01B6DCBB6
+84A2ABD1E4B3045EFC6CCB27961E8FC6A3EC8FCC97BFB427B82A50098A907B82
+E6ADBD19894DFF74BC7B3798A06501F217811F12567E2F5431F8C3A82D4C5E94
+72A1B18C3CE4795FC1DEA4E7BDB127552F16E4BCABCFF2A574997BF2ED680B82
+8C310E717B81F3FD47906BA609A9833AA4AD9CC095EE3D1140A8126EE55A2278
+3F9FA28FBAA51AEF1691B39039C2D97EE2FC79FFE04ED5AF5921D20C560E4742
+ABA899568CD661FFFEE92D9E8802C2F75271D9D6BD7F5107CC3D03D8E21A40A5
+2F951C89EA84C8F742162989BCBB4FD74A8BB55CF6EF3B1AE5B6760951D5E2B6
+2DCEDC1F15CD0C99DB0E1FA9661EC43DF5DB9D1BFA117EA1CEE98153FDD636BC
+A38ABEA43C5D63BF895F9DE24CE6FBFB74224802BF2A24FCFD2FC8D38B0D0B83
+A8E631D1FA4F6F9B88C67A89B72C3934D6E759072602A05774FAF6C019440AD0
+5317137F3E70E51E3F0DC06262F9909EADF48417A46435076BEE48834C56D17D
+33D1442743D8E3F1733257A8C6BBEE9E5BF7089B28CB17222370714D6CBB4730
+C13BED5DA331A9ED85058910A8944DDB3862C7CAB2868D2D8C8C6B7DAE6705E2
+6F2E5BF45C43508FF638C23185B72E45A20B8F852AD6FB3F98E7B4A632B98B8E
+F49C4BEDF0F4D7701FBD00CA484AF80F5C0D07294E50167511107E75DBFB3175
+FBF983BA6D323D6E1AF9037341461A52F5FD775C9BE3B9A3DB9EA13E278910F1
+87CA56B76729B35336A7DA17265DBBE96C6B0D77AD2C47D4885785BA62C4CB90
+0C486E4DBBE774463897BC9D42007C5AA437FA216EA617659237DA625FD5373A
+335EFCD92D30D84996593F098847F73F1281AE13B97D7FBD19A9C819C4D00110
+BF6D100792D50E15042ED820BFED504744FD088855D37C4A4C3A12CA9344F981
+99DE37602B5F84EFE6452DB3B917D4F571B0E17C48586FC2DAB4481C0F495920
+36A22B2422D232FB3B69D1B77A316A59FD69E4890D74AB4FF9D45657C074664F
+7D0DB216E611F18E2184650ACC94B63C47F14263F522F0869A8BB19599E97058
+8C73C56CF2FFFB2F81D0D128E6C5E90DFB0BACE596E0B27903433DE9EE40179C
+6153768280762BDBCD0E6BD9B3C715E0A150677BE056BFD51DBF5A624F618E7A
+0729AEA869E2079FC2F969DAAE9D32FA705D24AB4D69FCE6678E2B8B7012B5F6
+F5449C2163726624B49CFD0051D7CB552C30F0986E6FDDED2E90F9BDD39F4072
+1263CEA8AC5855D02F651B79C10593507AB630CAA3D0998CD6B0972BEA297DA2
+B7D9EC25296EA7F59925E53F503BDCE2A0AFC64C1A64A29D5160E6B08C71909D
+E297A5CB5A398D7EBB12AAA01D300C70073B39ECD3CE3940DED4F491A872F628
+8BF40EE2F085DF947A28797FB7CA7FEE0C6981C89CC68F322B5E83DACDEEAAED
+66DA926386FF6BBF82109967BD427308F40DDC79ED73DDD5849EBD609DAD4C5F
+719B2D04EB9D04DBF27B40769677188D7670968E5AA3BCED8E5DAE6C201BB7EF
+1621301F49D649C948B916390BBB47CA60D0C3F7CF888DEA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 40 /parenleft put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 63 /question put
+dup 71 /G put
+dup 83 /S put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
+C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
+4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
+12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
+86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
+88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
+62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
+71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
+4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
+63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
+D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
+702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
+4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC2584632973B223E128481FFD5458C
+1D90E5BA815DE9239AED29DBC31C66502FBF95B1BEB72174CDDC64B1A18AB3A8
+18395976ECCDADD00E05ADED05A1116A6B1EA4A21980C0EA58C48022AF810634
+3F540BE1E0857C0316572E489C72557EC92C0811E0A86655F86011EC26234DF2
+33A0F99927AEFD354AFA3929E73C4D1CDCA3D89425D84DEC9D394D8CB277E568
+E7F8A54E3A00B6969C792BDC7A0D1E4C58D0792CB7850C8C6A9A85446484C39D
+C755D1231C42608FEFDA72002F63C15E2FBE3B7E9402112C543CB8289EDEEF63
+D31EE112BB33C63DA84F73215EE783B9D9F0FAEBD7C1949AF55F58703AD93DD9
+AD543DDB096C1F197CE7EC8BBCDCC76A00A5A9E6F2AF056C92481EDE53F52CFF
+8E830A8B6CB970065A8D8687F196E32B8F9F3F2B3C6670983929A77AA2E15AA2
+6DB6EE65CD38A2A8207ECD3A4447F436D0EF0B9445FCF1712D34CDD4ADC9A275
+AEEF2B2CF35CBE6F49B8544DBB38CCE0A32AE15BE2EB7F51E77BEB0C63674424
+EB0486D0912BE4D6ECB15BC2F5CCBD793C0758046FA7BD6C7F957BF96A8EC794
+171CA15FD9F75DB00760188776BE43A48CDBD659E4E66571045A39F49468EE25
+80BD580B907324BF32FF93671E567EFA2D8E0BF3744798A06C247EA4FD65BEE7
+BE9989EAF5B8E198E8F937133E3A8AE287A8DF0E010638ABD9D0BA0A589332D9
+76A126F13D8842E1174019BF663CA592759C4669B1AB0F9667A3AD0C9C310C62
+E2FC83A5EEDF20A3BA66E2ACB093B0F01C0C54EBB878B4CB678A2032B783D236
+C7FA32E2B134B36850379B1F747F1354E70EE251DF57B99FC7FCFFA00BA15340
+AD91C35F48162911D538BDFAD841D6995BEBF07B96D88547B6286D3145E237AB
+6C097A0A612998946401FBAA92A0841A6FCF4678D8481CF415C9BA8C3245B61B
+D829F2B709BC63D7E8C1C032426D1D36BE103A82B0467C6B1DA7CCF7811143DF
+10349AB0D587587E7965230D82421B41C33B8326BFEE60EEA6B1D66C49DC8B72
+74742D9947C3B049D630377A9ACCAF46FA262064E1BA6E861CAC7CB75A259398
+4EE4872F0D120E85F6C9015A3F4EEB5DFA7E450ECC2261752438425907484021
+5B2F86BDBD569EA57802F421CF273A0409A56C76F551B2F60D845C4AD9530EAD
+21DC805903922C8B1555C690DB54D28E029CB67AB023E617CD9782F8C385ABDA
+D3CE300FEF213422266C4A6328536B67697DEF9298F83B14AF554F52A675E0E1
+0E08576368321BF31F96391A6CAF3E30D6E887D74DC1B1A4F144DB945AA53144
+3D1C53E9DCF6CD6026D2AA1213B92473235DE61A6EF0A355CE4B9E7E91F59562
+953253A41B658B9A368A6CDCE3F9AA5BF034BF3C16B9C2ADD26651799CEF4952
+E85131F539A0729F2CA8690E935B074B202241F06EC07BF6141D188FCE7026B4
+66A5431CC867B6892460D8108F2F07C9FB0082EFEF87FAC7710AD0368D54D25E
+49CE016F8996181E4F34DFF29D8E897B239C67FDA93FBE739D85AC448B58B60E
+87AD878A34FC239E53FC43402AECF4F56FA8C4A0DBB40E5F5566424482ED3A8C
+97C5B6CE362A2A2BB7C6EC8DC4D4ADE9F6477E52960EFD6EABDAEBE710A8CF10
+5F2DECAAC2B970F5D3D039FD7728A784F3CDBED6393A42FDF06E7FAB889D5247
+8CF1696852E057F28D75B553496F0DFE7E38207C0C4BBA87AA3EC796B7870AF0
+F66EE303428DB37A919F6D4294657A0069B5A4654A5D86AC2652BAA95C11D1DA
+60C8B4F8E9F2B629F5A403C207C4521E3B7FBD24DFE37E30E8A8A7DEEFFACB23
+5A567A89F43B4F4D28307D573C9AC5A8DB3F61F1BF1347B3D49839B935BE0671
+9AD4EA0D75430F5B609C8F747321C19ADF63A1CFCB0C733954A9207DFD99193D
+6A1C8181C6C438B6AF057E21AFAD19F31B962B356F1AD271E6F7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 45 /hyphen put
+dup 46 /period put
+dup 50 /two put
+dup 52 /four put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 83 /S put
+dup 90 /Z put
+dup 92 /backslash put
+dup 129 /Aogonek put
+dup 131 /Ccaron put
+dup 138 /Lslash put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+dup 197 /Aring put
+dup 200 /Egrave put
+dup 202 /Ecircumflex put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB9685462A8D186BFB195D91EE1109A9CB8BA9FE46114B4834595CA6973C
+7B5548E265972854CB21F9A13E3D8547644471145C0A7B7A6792298C740DB643
+56C099DFC3C658095EFFDB41A137F739897DDC9F0BD87094ED2C21EC501CB243
+B9A75B978F399215FE2EA1DD52681513E5040B6FE8E50B513F3F5827652A0C50
+594BC927681A4B85236136C4A980A62CA1E3B89862EE64378E0F255B34CCA86D
+B877F95E2DE6AFD3DCDF7EEC40BFA23C3E7271BEF2C4552F49F59D629E51B8B4
+E7417B181BC8D460EB6518910AD4722CB9562A9BF80002A91F4A251DFF1C031A
+6806D1C498581E9A00F39FA8E1AD778FA855337127C6068B9C7924ED590063A5
+4E4F941E744568F5488964D6B122E008C4BFA9DB26BAADFA11D7B81B16245C8C
+F04EEA395CC080171DB42A817743226635A3A3DEF727056EBCF0C77692190E41
+BDCED59FE781DABA153624E7B1C8ED1FBE5EC358BFD2DD3C150EA2DA8179B45F
+8D09D1F687437A337643CBDF9A16487327DC3C2D168C150982215B6DA065A4EB
+6E539DBFEB15B3836BDB5E8A19FD01D984C301239B6DFF467CA850631779F7B2
+329937C757244B1E80EBC5098C3C5604D0F3C6B770ADA4AABD72C2110E9C6E72
+4CC33E25518FAD3E211EB59728E316C326E16CBA7735B57748AA42EC8C43CE8F
+FC9D1AEB17D8962C9926BDAD1AD4AF852F335A9B6EDE657419792C008F42B604
+C3343DCF7FF63218743DCB29FDCD3A079BE95A6FC8AD660D65DE290EAEA4A0A9
+F78170889394B3C9F73E00067289D8BA8D6EFE55742F76FA4A3F1D73D3F7D5DF
+D75E50D5832B28701C81C143F623AE15FF2AB2E20C666F3F2E183B6F14560830
+4C84B6D6F5045EC8E3E61244856C0EF1162F9E231DEC58275F977DCC558E820D
+AB918FCB9EBA14713CDB2DD0E54BE4F2FFA915DB590EF21EE2C1B69F6F554B83
+BE133269E798BD2E4883EB6D6701D9BD11323EAFEFC1801FCBACF0CF8B8F8EEB
+EE82D396F2A3B3A73860BCCC022BF75EE12D20959A5997470888384710FC7DAF
+01580CE9925712FB15486A51F72C9C2D4E2B0DB1E5A1B3E86C1E9EC0199F7454
+8D1C9A49D9C766033200FD0BDAE4E800FD6533C379036925E9D9D9E6C1213988
+B2899461AFB63550F2A7E0DCF66CDAD1CA6836E9039D008984D6864E5D964CE7
+8022D710BCBFEE6A59B9B34DA0CB1E323813309CB7015A2E9DD9CD3CB4F2E86E
+3DBE1096A3E901FC2EC5EB593C89F4FCF8F01C784A266DFA0579EAA5A7F4E7CA
+50F4A12C26EAB09A63470DC0CACC9D5B98ECA75CE333C1F6ACF79B6EF88FE126
+95EC06F1332A1865EAF1316BFAADBA913556F35DECF6FAB4303B76D12F0E2350
+45B8626D4F48D7FCFA6D64F94E591CED467A817D4B14BE110E7090BB6DBC7C73
+385184FAE53EE1785D4B928C2D3C21A04A8232D0A84D7A992A2690F33B98EB48
+DEC7B9BD9FFAFC04E4E70BBEE71CA2686BAB8454D5CFDC8D56EC8A9373E5B354
+990DD4AE5DD1E1D8F889E679AB5E5611F3ADCEB7A9FFA31823B580081B223542
+0FD6E15BBF3D47D3E9289B5F4B610CD07DCC76866B2A25B47130F24167D8C3F2
+F91D8423B46D64DA82AD74FC365DEA4DAD6F272745D68529772DD689CFEA6042
+7A85D710E0C35F5B503B3278946AAA7D1D5278744DF2B9B254C074CF99003F15
+57B7979B9C7E61656FE6D00F3E871684AF08EE786E22A19579F2BFE1C5D08D94
+FD1D2A9B7D11AFA6EDB8194DDA6901D7CD0B50974D0CC24CEB074C40D4363B4E
+68146A833AE22AEF0DA100357050D8DDC725E7A893DAB1AC07C4E38456787364
+89BE5C0400BC295EE9504E97C3023B6729331CEAC20E2292ED625D30ECCE324B
+58941E79BD830362C3A2A2F63DDB7E2CDA94DF2AC0F91C0CA120F700432D751D
+9D3FE51D9D7EC0B9B914DB5485C187CC7A95A4192331018562E8798B7FD14C48
+BC09477CC35F855D4A16FA09ADD2A566538E4529F4CFC1AC58DCAB048D5E2D67
+7742AC7130538C071F896A4E2087D273D71EC87EC61B9A5FB73862BA7CA57CC2
+CB5D9252A089A8312CF5A686C9002A805F8FC7D034E7A0385A33645A63B74620
+103535381525D7E90F5CF1E1677C4B945D3C077974B769505E0704E07139CABA
+9B6630F6D21EFF4085B9D23E09872EF3CB9574B9673470BA040A32D6AAA66F72
+130A6F44BF1BD0DC620109C103595819FA81AA13063AFD011F4D2028266551CA
+9AFD20CC6280A290087C0E37C7470D59A23A0B2537A3663ABB526CB6FF04734F
+F41B5F9B43E7465251C8A75D07E77A5C387D91D8D5AC3F293E1C65E8D4624072
+55E9A11A36CDCA286E2877E89FCBCDEDBB49FA0E002C8EC33208485FE7AF3543
+AF6DA7D771D8F597B4EA7652A25257962F5FE182D7AAF823A8E89B5F3159A6AE
+AC3CB9930DAC7311423D447243A4C78C216D1128A94FCFAABCBCB88D84ABEDF3
+E31A6447AB94F374F8AC31DC051A2BDAE241C11E604CE1F3D1F8A23493071A0C
+E71F68BD86D3B1983944D97BEB31B458F642F834B7A7A869CD18F9F9B79C883B
+2B91FB1BA8F71112547A7D7D9D2F7EE52F5DB930CC7B6D0B78C031DD50549F70
+0C21F74EFF50C9BC76F115054D8B91AC9480DAFAE67331D7D4521240C113BCAD
+E6383F30E957DC259A2B258B6AC96B24AB89D86A46886113A8970B40252EB8C2
+60BA8F921197C488C7CE6639C904312EA22508105EBA7B26F5153A4A9C6CE061
+1606F965A610A2CA59A5B4B84A9D2810F32EB3813FBF9946AD4B43AF011E56B1
+1C7BC7D64D06EC98073D64F834F60310DC880DD87C63BB36AA2B2E2458A6DEE4
+2F7F0061427661BD2F495FF69F23485A2064D92586DBF6821B8BF18E6294E2B5
+3E999BF796F25984B4624E705CE53F869E6A665C22A2270ABB03D5A706E3B5BB
+FCCA5CF090EBC1E53A69F1ECE5875892D7FBA6A727F2CB24A46A139E7BD165F9
+DCF14293A62B78AE97AE9CA76C2038AE8640C219C6D2446859F237F8B871F433
+F7E98BA78C2B52608302D9988C52B0719647715672C9C877B7E4F261A429E2DB
+7FD30FB8A5681BFFDADF38DF5F540BFDBCBC68B3731F75511339705F2B882666
+CA282472D3D35DDB471B77E854F5876E2A41C63D31AEA592479D4BB8B31C6416
+5ED45222F39960CFC268198EFA04375387505247D09E986A9902820D72983925
+9713A5F51460211A17CCFC09188158AE2D823315A38F22882BAC40518720D034
+976CAA557E963A39B4715EF762CEB6A026E523F6212384716FF3E90C10298B47
+2AF7539E7E11815631124EF302E84EC639BD4EA95893D3590BCFF1D1125F6415
+9A7DD06067B9FCD7174736A57F1F11F8AC40BE09C8E3760C353120CB155F93F1
+84FC7DAEE9D12FDE3B37F6BE5F347D6CF026AE3FC17A8CDBB183E2373E4626A1
+6E980E2D52E0C17A76B8E42FB48329039C68638916020A8EDC659EBF0233B5AA
+D866EACC35D756882837027C69AF03B5103CE9223B9D6EA655D50F204C3F7277
+2E6DE152B244DB2F44CB088236A31CC9100531A62380C2BE607A1C170FEB4EAF
+0C3D1AEFCAFDC120FF4C851DDAC857CDBB78521A97C91B7417B92B9CD541D98F
+100A6C501E0A57DE9BE6F6B5217644F8855384A09BC0AF8668EC2E50DE63123F
+85316B1F9F215FE93F2A9BD2F9EDBE2FAC02A4FE47E81007CD148BB5D4E86241
+AB753C3221CF4744AEE68E5CF929269A0626A61EA1ED78BFB6343488EFCBE1B9
+77EC4CC4680AF3CC4323F9CC2B62339B839947E1E27B831EA0A8B4ABE1A402AC
+E92CDA9B9ACC156A073647F498E6288251B27B781C476A196840998C1F47473E
+C4C62D25B1ED56BCF537451642253CD69772FFCA61972A2CBAEB2576D1E0F8C5
+424FE2B3DBC0742B35F3BCC49112BA83C7D648D109C9D48182213F1B48224627
+B7762296902229C264B1C0AF9A99702A8D11CE809CC2E4642E75FF143F980BA3
+91DD9EF780B92A7377F932E280F44CBD0A30AC10E0ED4AD82E3DFF6185BCE800
+C064EED575F8C7A0F18B2393C3ABA2BE74DBCC42B627C72EF5D354BDA1425FF6
+58B698F37B7B59226CBC34EC86D24AB4FE5D3A51A2AA1010508D9251DA6778E9
+48D28B8F613D10CD545A4CB32ACE352C0EB9D18834E09B75A2A14E00DFD63294
+8DC202C0490E2B44BD08F8EFC3D60C733B6908467783997CE8BC6B8AA4D69FD5
+055351F7123E9E3F3264DA88E92C5E780199559258BDDA7CD4A1AD4CACBEB2E1
+DD7FC79766F0ACD89F8E85F1C64B0804CCA22BDE79F5C29D8E74DEF849C1DFFF
+95D2215212513CEA6F2C00C6B9B53A0DD1602A4DBB136BFBA5E8A9C1D5460FE7
+C7E75AEB19A58643F81E3C919AB6DBDCBC8D5A6D7D19B17B52371E4712A89839
+4EAD3511F8967789B89DF60E196CF6FBB84D9F7157923AF29EBB029D4988747C
+E94A7F108E1F356E29AB1C0B2BACE005E1D9D45053341A995E2F3F749919111F
+9718
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 67 /C put
+dup 83 /S put
+dup 97 /a put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
+BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
+72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
+5EE89221BFD28AE8117B69C0EDD6A58ACDDAE1AF77CC8602B0803A063A78E590
+6228BEAD4031FF82DF1C414753313B1CE7A0FEF2546F18F026DB52C7B9D56FA9
+23145E410B55F2655D12AF85D3291DAE7E838BDFA9A27F61407B392A4FBEED5E
+13E9176E7D52E4560C2FED71C6F18977226B49C37DDEEE11AAA4C46FB141884E
+934DBB9595C82C9FDB8E6C8C4D6A223490D0AEA24EDDE28E6D64F7ECEE30F0C2
+EA32F09B32CC34C36090E5896EC05400FD932A5DE6D44840E453F70AE55A0A09
+9146720A839B0CCDC4905B7C138792A09C7BE08D9FBC35566A70C5485ACC6988
+E11F60FC89F391E7AEE3D61FD567E6C4C2525D7F05A3B2C05CD88821862ADC60
+B9F25AC90893F79C4D1BD69AEC40E2FF06F0F32258E705E65D98A4770EE07815
+F797C2674BFE0B7A3B73A688930A9B6DBEF337D4942F98CB509A10544664C418
+47BF2D9FC9A6E07701488BDBF8AE664F40DAAC18009EF4059E9EC0938F4B65D0
+252C92989C09FA3061AEFE5C9C70A03744EBC1611583BAE9C0A3B2A937C26AFC
+9D6E889616B63DE1BADBD472DB792B10985737ACF5AB54CDD888E11C369EEB5B
+70A6F9F90FFE8BB6D869B2E73975E27C799EB04AAD217C1E9FB5C370FF95D282
+33FF883BB8FF49402A7C5B7EB5D4D4B92E4473E2BD66F6E8C97420B2B4895806
+0EF5F860E80248FC251EC656BE08757E9CBB69EDA5482C95B1B2A9DCB2E0DA3B
+88FEAE4D89D8D0C76B8843BDDDB1083500E68E2B1759B4C6B88009240160DF4D
+A93CDAF97714B8F7316834CDCE52194E8DEB837AF42FE7732D236DA764C37750
+A0512EA79E41972BFDB345E48906BFBD65B52CBB4BB2488825AC42FEDF0DC62D
+51A7EEF82E5E5D210CA341F0341116EC0E30E639289584EE4267EDC27BC77BD2
+3BDC306EEC0220F4F2EF8A2692FE0A72486FCD2BEB81968807E082F3783D7101
+861AA446FC0D31C6E327721D38F0B033901B72532528F6E0BD824DA390315E07
+B547182C8C9C7FCA3704E8CFBBEFD2755C288602B31576376C172FB8FC99F9A7
+4F34CBC57ACA336C94A0DE922957BDCC3D95D7EB62F68A58CC23DFBEEF48768A
+48A5BE9AAAEFE1929D0662229431677C713C631DFAFF8D39CE04B4A7C36FEE5D
+CF506D9407ADBB50E30C7E92E9C3E41F72C9A3C47FB0F1247E493BD3DFE81CD0
+E85B3634F20D53B49B161B042EBBA935C0E0A6AB565ED44E44B2843E581D53E0
+83D099E0A7FF88B0C9002A84172FA6D6BD9ED95E167FEF868207B7895C5F18E5
+81CD8AA7E1260E2CA141F5C6B78DD8D745A3A9EEA2B3825CA8E53827C51D3BFE
+9F6604951244FF5B09E9C6D2A3167E202F3EF55CD74E31796481931EEFB7DC43
+3EF68519F7648E007682208E87F41916555261748F6CD6BA8BA548C482E88A60
+53BF3E0AFF2E3BBDAF3522F1B41A81FB3BFE26B4584C8E32AA147C917C3822DB
+BDC91E06E7E46DBACC29FD6190C4F294D8DB9A9471BCC6BDA32C71C13C48DAC8
+AE3D3F144294904FF608058F0B543A2DE3186AB08A3D930C529F7E848F71BCD6
+104CF90D1828E1361A9487C23A80EFB9261573B9F234B0B43BCD35EEB3F6B0B3
+0909C29884F801D005A1026658E2893D3F4DC5C5C69671F759DC0F315738275D
+FF02FC8AF9EE50C8705DD1E7761EAE3618345A611558810C0C8F14285D5E4D32
+9F74E994984F77293882016123463DD07C43E0D66FC05AD4DB9F1AE0FC67FBA9
+C908B5A2AEC5123590D79092BB6041A65D70A5B8A374E7EBBB31B97CA1076F2D
+AEF0C22D77E79A16064C2265CC78089DC98452E95E613A89714B52180C4B4AFD
+838877ECA6DBEF3CC7D20D1EEDE3929E3F94B6A63718DB669427B91CB2803886
+08DE53D1D22FD62C1A7EEAD41FC68759FC8A54BBD929E1E191F1CC18309AD684
+C9C51D1A7252C03BA4E1942289E536F4E191C0051E20235FF8EE23438BD00C5E
+27CE47EB4E4DCEC5BEAFFA95984B177C0EA5D1A64F75D746840A597A0B477BDE
+63C3EF3C4E1879B2C052D923428B003811AEB03FEF3B7C8D86F1E51394ED55DD
+14F3F9EF169F5509BAD5C9DB99FCBC458D7037A46CAC664064763210A0D43ABB
+CFC0A9C8B3ABBCE0B75A6B80CF500EFD043CB0955D959B5C417376A576447E7B
+E076D4D1BD4A36693174A43A34771A2EF4A089FB0CE8EB0E285E19824049AABF
+161FD0E98A55E0037D7FD4C811926623756E0E1F3AE388F299567065BC55D7BE
+6FFB5907015CAE18E4E2C86F9F99B77CB3159B46E1A61A558969D621714D303A
+41DCBEECD2D97F216AEAC845C4A45BE9AF143827715A1FE671847EE2F8DF2EDE
+5F89D890CA410D0614A3A0349D4173E50EE0F4D97521CB974E2DDEA9073D77C4
+DF49EBC8F2B26243020F9F619D4BA0984BC74BCCA2C9465AC2642896E817C076
+52891681283D056DFCA9157458A4D18396BF0AF34B7926CDBE1066213E111126
+5A7FA968596D73A578EEB21E4F84A8177757F63DB6A8D969D605D073C0381E14
+DDCFD706CC6ECF3BD35AA8C751DBFE15E52586D0953506F5A1049F072612E814
+01D3376BFFCDD837B7AC2F97D1A2291FB1DA5C1E7B1045388CC8FC9625ECE3A8
+8ADD7641265C805C4605C0459005265339F3E488BCFC3444ED6069FCECD621CA
+6483EE193B1FD0EAA7B8527DE12825F4CDA3A2539D89ED8D07454A08F6709FCC
+E6E2A69DE1A16232E7303A0D3BEA6DC655BB977A09A301D875A8DA34AB354552
+F1148892767A1CFF8DEE1593F7A40BFD77A047C9B3A25890984FCF189E80A748
+1A7B79EA99649053B3A8B3FB1116524C8439589C3030AB7875CCA1ED6738CCEA
+0852662239E33797AAA0519540A17CEB94124D499F06219B7AF2F410AABFEFA5
+86BFF51D4622AA5D7873C77E016AD925E5D4B2431D8423BC9D56000F7B61DFA5
+46637C42EF5160CC4C1DB7E0C24C604579B34F8C063E011E0FD306A7AB3B23ED
+7163FA717AEF2908F657EB8AE94ECF91
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 160 /abreve put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
+EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
+3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
+B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
+16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
+DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
+A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
+DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
+710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
+D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
+19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
+852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+TeXDict begin 39158280 55380996 1000 2540 2540 (imp.dvi)
+@start /Fa 206[163 163 48[{}2 316.314 /CMR9 rf /Fb 161[351
+137 36[176 176 176 176 176 176 176 176 176 48[{}11 351.46
+/CMMI10 rf /Fc 132[176 5[195 137 139 138 185 195 176
+195 293 98 2[98 195 176 107 156 195 156 195 176 12[254
+2[273 239 14[264 6[98 1[176 176 176 176 3[176 176 1[98
+117 98 2[137 137 98 19[176 176 18[{}39 351.46 /CMR10
+rf /Fd 138[229 5[206 229 1[115 2[115 5[184 1[206 25[324
+3[298 67[{}9 421.752 /CMR12 rf /Fe 141[312 1[405 364
+405 607 202 2[202 3[340 3[354 31[551 25[202 39[{}11 728.927
+/CMB10 rf /Ff 59[1125 112[281 11[450 7[0 8[169 1[169
+1[169 9[0 30[0 0 0 6[0{}12 562.336 /TeXMUSIX16-Regular
+rf /Fg 53[1125 1[281 2[2249 1125 562 56[1125 6[562 1[141
+36[158 1[158 6[351 9[562 1[562 7[0 0 9[211 1[211 3[0
+0 3[0 0 30[0 0 0 6[0{}25 702.92 /TeXMUSIX20-Regular rf
+/Fh 138[189 117 1[148 1[180 180 198 4[108 7[180 13[198
+15[251 67[{}10 351.46 /CMTI10 rf /Fi 95[0 160[{}1 702.92
+/TeXMUSIXSPX-Regular rf end
+TeXDict begin
+a4
+ end
+TeXDict begin 2 1 bop -1540 3699 18628 15 v -1540 3875
+V -1540 4050 V -1540 4226 V -1540 4402 V -1540 2082 V
+-1540 2223 V -1540 2363 V -1540 2504 V -1540 2645 V -1540
+-26 V -1540 149 V -1540 325 V -1540 501 V -1540 676 V
+-1540 4402 15 4436 v -1716 -341 a Fb(15)-1540 3253 y
+Fi(\240)-1540 3868 y Fg(I)-1487 2497 y Ff(G)-1540 494
+y Fg(G)-960 4219 y(2)-957 2356 y Ff(2)-960 318 y Fg(2)p
+-310 4482 15 615 v -309 3868 a(\010)p -352 2785 254 15
+v -1090 x Ff(\010)p -351 2785 V -350 2926 V -307 3252
+15 474 v -306 2919 a(\010)p -149 2567 15 492 v -310 2567
+a(\010)-380 1381 y Fc(le,)p -106 582 15 615 v -309 582
+a Fg(\010)p 1376 4658 V 1377 4043 a(\010)p 1333 2785
+254 15 v 1334 2926 V -1124 x Ff(\010)p 1377 3252 15 545
+v 1378 2708 a(\010)1207 2567 y(4)p 1537 2567 15 492 v(\010)1376
+669 y Fg(>)2357 582 y(4)2419 1381 y Fc(pas)p 2772 582
+15 572 v 2773 582 a Fg(\()-204 b(\007)3037 1381 y Fc(-)108
+b(so'l)p 3615 582 V 3616 582 a Fg(\()-204 b(\007)p 4254
+4395 15 703 v 4254 3692 15 1617 v 4254 669 15 703 v 4893
+4395 15 615 v 4690 4395 a(\010)4690 2708 y Ff(\010)p
+4647 2785 254 15 v 4690 3182 15 474 v 4691 2848 a(\010)p
+4851 2497 15 492 v 4690 2497 a(\007)4541 1381 y Fc(ciel)p
+4893 494 15 615 v 4690 494 a Fg(\007)p 7772 4131 V 7569
+4131 a(\010)p 7526 2785 254 15 v 7527 2926 V 7570 2989
+a Ff(\010)p 7528 2785 V 7571 3322 15 545 v 7572 2778
+a(\010)5714 2567 y(6)p 6044 2567 15 492 v(\007)p 7730
+2638 V 7569 2638 a(\010)5910 1381 y Fc(e)p 6086 757 15
+572 v 6087 757 a Fg(\()g(\007)6704 1381 y Fc(le)p 6929
+757 V 6930 757 a Fg(\()g(\007)7568 1381 y Fc(stel)p 7772
+669 15 659 v 7569 669 a Fg(\007)p 8615 582 15 572 v 8412
+582 a(\007)p 9458 582 V 843 w(\007\000)p 10279 184 218
+85 v 7772 53 2726 85 v 10490 669 15 659 v 10287 669 a(\007)p
+10881 4395 15 703 v 10881 3692 15 1617 v 10881 669 15
+703 v 11316 4482 15 615 v 11317 3868 a(\010)p 11274 2785
+254 15 v -1090 x Ff(\010)p 11275 2785 V 11276 2926 V
+11319 3252 15 474 v 11320 2919 a(\010)p 11478 2567 15
+492 v 11317 2567 a(\010)8564 1381 y Fc(-)932 b(-)h(-)466
+b(le,)p 11520 582 15 615 v 11317 582 a Fg(\007)12390
+1381 y Fc(del)p 12713 582 15 572 v 12714 582 a Fg(\()-204
+b(\007)13223 1381 y Fc(pia)p 13556 494 V 13557 494 a
+Fg(\()g(\007)p 14195 4482 15 615 v 14196 3868 a(\007)p
+14153 2785 254 15 v 14154 2926 V 14197 2919 a Ff(\010)p
+14155 2785 V 14198 3252 15 474 v 14199 2778 a(\010)p
+14356 2567 15 492 v 14195 2567 a(\010)13825 1381 y Fc(-)133
+b(cer)p 14399 406 15 615 v 14196 406 a Fg(\010)p 15388
+4527 15 572 v 15389 3956 a(\007)15389 4527 y(\303)15682
+4542 y(\303)p 16230 4569 15 526 v 16231 4043 a(\007)p
+17073 4395 15 703 v 17073 3692 15 1617 v 17073 669 15
+703 v 17087 4395 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 4395 a -1540 9892 18628 15 v
+-1540 10068 V -1540 10244 V -1540 10419 V -1540 10595
+V -1540 8276 V -1540 8416 V -1540 8557 V -1540 8697 V
+-1540 8838 V -1540 6167 V -1540 6343 V -1540 6518 V -1540
+6694 V -1540 6870 V -1540 10595 15 4436 v -1716 5852
+a Fb(18)-1540 9446 y Fi(\240)-1540 10061 y Fg(I)-1487
+8690 y Ff(G)-1540 6687 y Fg(G)-960 10412 y(2)-957 8550
+y Ff(2)-960 6511 y Fg(2)-275 10465 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (3.49998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ -275 10465 a -195
+10325 15 615 v -398 10325 a Fg(\007)p -441 8978 254 15
+v -1354 x Ff(\010)p -440 8978 V -439 9119 V -396 9516
+15 545 v -395 9182 a(\010)p -237 8831 15 492 v -398 8831
+a(\007)-561 7574 y Fc(que)p -398 6994 15 572 v -397 6994
+a Fg(-)-397 6423 y(\007\000)888 11115 y Fa(11)993 10325
+y
+ slur@Dict begin (2.5pt) GD S0hgt (7.5pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 993 10325 a 993 10325 a
+ end
+ 993 10325 a 1092 10325 15 615
+v -104 w Fg(\007)1121 8648 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 1121 8648 a 1049 8761 15
+492 v 888 8761 a Ff(\007)10 7574 y Fc(-)34 b(st')-10
+b(\022)-166 b(e'l)p 418 6994 15 572 v 419 6994 a Fg(.)419
+6423 y(\007)991 7574 y Fc(re)p 1092 6511 15 616 v 889
+6511 a Fg(\007)p 1561 6599 15 656 v 1358 6599 a(\007)p
+2031 6687 15 697 v 1828 6687 a(\007)1092 6028 y(\312)1384
+6057 y(\312)1092 5896 y(\312)1384 5925 y(\312)p 2501
+6775 15 738 v 2298 6775 a(\007)2767 11115 y Fa(11)p 2971
+10325 15 615 v 2768 10325 a Fg(\007)3710 11115 y Fa(10)p
+3914 10325 V 3711 10325 a Fg(\007)p 2725 8978 254 15
+v 2726 9119 V 2769 9182 a Ff(\010)p 2727 8978 V 2770
+9516 15 545 v 2771 8971 a(\010)2851 8761 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2851 8761
+a 2851 8761 a
+ end
+ 2851 8761 a 2929 8761 15 492 v -83 w Ff(\007)p
+3872 8831 V 3711 8831 a(\007)p 2971 6687 15 615 v 2768
+6687 a Fg(\010)p 4653 10588 15 703 v 4653 9885 15 1617
+v 4653 6863 15 703 v 5000 10676 a(\011)p 4958 8978 296
+15 v 5001 8971 a Ff(\011)p 4959 8978 V 4960 9119 V 5003
+9112 a(\011)5000 8761 y(\011)1809 7574 y Fc(-)1050 b(-)f(-)524
+b(gno.)5000 6775 y Fg(\011)p 6886 10588 15 703 v 6886
+9885 15 1617 v 6886 6863 15 703 v 7233 10675 15 615 v
+7234 10061 a(\007)p 8176 10763 V 8177 10149 a(\007)9242
+10096 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.00002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 9242 10096 a 9119 10851 15 615 v 9120 10237 a
+Fg(\007)p 7191 8978 254 15 v 7192 9119 V 7235 9445 15
+334 v 7236 9112 a Ff(\007)p 8134 8978 254 15 v 8135 9119
+V 8178 9516 15 334 v 8179 9182 a(\007)9218 9365 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-15.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (50.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 1 N end
+ 9218
+9365 a 9077 8978 254 15 v 9078 9119 V 9079 9260 V 9122
+9586 15 334 v 9123 9253 a Ff(\007)p 7395 8761 15 492
+v 7234 8761 a(\007)8410 8859 y
+ slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (-0.79999pt) GD N /S2brk
+S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (50.0pt) GDAR N /S2dir
+1 N /S2dash 0 N /S2adj 1 N end
+ 8410 8859 a 8134 8978
+254 15 v 8339 8971 15 492 v 8178 8971 a Ff(\007)9204
+8971 y
+ slur@Dict begin (2.0pt) GD S2hgt (-4.0pt) GD 1.6 (2.0pt) GD M S2dir
+M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
+S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 9204 8971 a 9204 8971 a
+ end
+ 9204 8971 a 9077 8978
+254 15 v 9282 8971 15 492 v -83 w Ff(\007)7060 7574 y
+Fc(Ah,)p 7437 6599 15 615 v 7234 6599 a Fg(\010\000)10168
+10237 y
+ slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 10168 10237 a 10168 10237 a
+ end
+ 10168 10237 a 10062
+10851 15 615 v -105 w Fg(\007)10011 9253 y
+ slur@Dict begin (2.0pt) GD S1hgt (-12.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 10011 9253
+a 10011 9253 a
+ end
+ 10011 9253 a 10020 8978 254 15 v 10021
+9119 V 10022 9260 V 10065 9586 15 334 v 55 w Ff(\007)9893
+9042 y(6)p 10020 8978 254 15 v 10225 9041 15 493 v 10064
+9041 a(\007)9884 7574 y Fc(mia)p 10266 6687 15 572 v
+10267 6687 a Fg(\()-204 b(\007)10624 7574 y Fc(for)p
+10932 6775 V 10933 6775 a Fg(\()g(\007)p 11395 10588
+15 703 v 11395 9885 15 1617 v 11395 6863 15 703 v 11865
+10465 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (3.49998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 11865 10465 a 11946 10325 15 615 v 11743 10325
+a Fg(\010)14513 10325 y
+ slur@Dict begin (2.5pt) GD S0hgt (7.5pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 14513 10325 a 14513 10325 a
+ end
+ 14513
+10325 a 14612 10325 15 572 v -104 w Fg(\007)p 15278 10325
+15 538 v 666 w(\007)p 15944 10412 15 593 v 15741 10412
+a(\007)14612 9753 y(\304)15494 9798 y(\304)p 16611 10500
+15 647 v 16408 10500 a(\007)p 11700 8978 254 15 v 11701
+9119 V 11702 9260 V 11745 9323 a Ff(\010)p 11703 8978
+V 11704 9119 V 11747 9656 15 474 v 11748 9182 a(\010)p
+11700 8978 254 15 v 11905 8971 15 492 v 11744 8971 a(\010)14408
+8831 y(?)p 15236 8831 15 387 v 667 w(\007)p 15902 8901
+15 424 v 15741 8901 a(\007)15236 8444 y(\304)15452 8455
+y(\304)p 16365 8978 254 15 v 16570 8971 15 461 v 16409
+8971 a(\007)11304 7574 y Fc(-)261 b(tu)p 11946 6863 15
+572 v 11947 6863 a Fg(\()-204 b(\007)12112 7574 y Fc(-)99
+b(na)p 12612 6951 V 12613 6951 a Fg(\()-204 b(\007)12897
+7574 y Fc(non)p 13279 6863 V 13280 6863 a Fg(\()g(\007)13699
+7574 y Fc(se)p 13945 6775 V 13946 6775 a Fg(\()g(\007)14230
+7574 y Fc(l'ab)p 14612 6687 15 615 v 14409 6687 a Fg(\010)p
+17073 10588 15 703 v 17073 9885 15 1617 v 17073 6863
+15 703 v 15310 7574 a Fc(-)1029 b(-)17087 10588 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087
+10588 a -1540 16275 18628 15 v -1540 16451 V -1540 16626
+V -1540 16802 V -1540 16978 V -1540 14658 V -1540 14799
+V -1540 14939 V -1540 15080 V -1540 15220 V -1540 12549
+V -1540 12725 V -1540 12901 V -1540 13077 V -1540 13252
+V -1540 16978 15 4436 v -1716 12235 a Fb(22)-1540 15828
+y Fi(\240)-1540 16444 y Fg(I)-1487 15073 y Ff(G)-1540
+13069 y Fg(G)-960 16795 y(2)-957 14932 y Ff(2)-960 12894
+y Fg(2)-339 17498 y Fb(])p Fa(10)-216 17111 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ -216 17111
+a -135 16971 15 615 v -338 16971 a Fg(\007)771 17498
+y Fa(11)877 16971 y
+ slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 877 16971 a 877 16971 a
+ end
+ 877 16971
+a 975 16971 15 615 v -105 w Fg(\007)1882 17498 y Fa(11)2005
+17111 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 2005 17111 a 2085 16971 15 615 v 1882 16971 a
+Fg(\007)2992 17498 y Fb(])p Fa(10)3097 16971 y
+ slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3097 16971
+a 3097 16971 a
+ end
+ 3097 16971 a 3196 16971 15 615 v -104
+w Fg(\007)-339 15284 y Ff(\011)p -381 15361 296 15 v
+-380 15502 V -337 15565 a(\011)-508 15424 y(6)p -213
+15361 254 15 v -8 15424 15 493 v 170 w(\007)1005 15242
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 1005 15242 a 729 15361 254 15 v 934 15354 15 492 v
+773 15354 a Ff(\007)1966 15354 y
+ slur@Dict begin (2.0pt) GD S0hgt (-4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1966 15354 a 1966 15354
+a
+ end
+ 1966 15354 a 1839 15361 254 15 v 2044 15354 15 492
+v -83 w Ff(\007)p 2950 15361 254 15 v 3155 15424 15 493
+v 2994 15424 a(\007)-468 13957 y Fc(bia)p -135 13069
+15 615 v -338 13069 a Fg(\007)789 13957 y Fc(a)p 975
+13333 V 772 13333 a Fg(\007)1742 13957 y Fc(sde)p 2085
+13333 V 1882 13333 a Fg(\010)p 4102 16971 15 703 v 4102
+16268 15 1617 v 4102 13245 15 703 v 4509 16707 a(\011)p
+4467 15361 296 15 v 4468 15502 V 4511 15565 a Ff(\011)p
+4469 15361 V 4512 15354 a(\011)4509 15213 y(\011)2688
+13957 y Fc(-)914 b(-)456 b(gno.)p 4456 13428 370 15 v
+4510 13421 a Fg(\011)p 6730 16971 15 703 v 6730 16268
+15 1617 v 6730 13245 15 703 v 7340 16707 15 615 v 7137
+16707 a(\010)p 7094 15361 254 15 v -1353 x Ff(\010)p
+7095 15361 V 7096 15502 V 7139 15898 15 545 v 7140 15565
+a(\010)p 7298 15213 15 492 v 7137 15213 a(\010)6929 13957
+y Fc(Que)p 7340 13069 15 615 v 7137 13069 a Fg(\007)7137
+12982 y(\000)7881 13957 y Fc(-)327 b(sto,)p 8698 13245
+15 572 v 8699 13245 a Fg(\()-204 b(\007)p 9482 16883
+15 615 v 9279 16883 a(\007)p 9236 15361 254 15 v 9237
+15502 V 9280 15495 a Ff(\010)p 9238 15361 V 9281 15828
+15 474 v 9282 15354 a(\010)p 9440 15213 15 492 v 9279
+15213 a(\007)9115 13957 y Fc(que)p 9482 12982 15 615
+v 9279 12982 a Fg(\007)p 10593 17059 V 10390 17059 a(\007)p
+10551 15143 15 492 v -1916 x Ff(\007)9902 13957 y Fc(-)250
+b(sto)p 10593 13069 15 572 v 10594 13069 a Fg(\()-204
+b(\007)10918 13957 y Fc(m'ac)p 11377 13157 V 11378 13157
+a Fg(\()g(\007)p 11958 16971 15 703 v 11958 16268 15
+1617 v 11958 13245 15 703 v 12569 16707 15 615 v 12366
+16707 a(\010)p 12323 15361 254 15 v -1353 x Ff(\010)p
+12324 15361 V 12325 15502 V 12368 15898 15 545 v 12369
+15565 a(\010)p 12526 15213 15 492 v 12365 15213 a(\010)11914
+13957 y Fc(-)273 b(co)p 12569 13069 15 615 v 12366 13069
+a Fg(\010)p 14138 17059 V 13935 17059 a(\010)p 13892
+15361 254 15 v 13893 15502 V 13936 15495 a Ff(\010)p
+13894 15361 V 13937 15828 15 474 v 13938 15354 a(\010)p
+14096 15143 15 492 v 13935 15143 a(\010)13177 13957 y
+Fc(-)540 b(ra:)p 14138 13157 15 572 v 14139 13157 a Fg(\()-204
+b(\007)14468 13957 y Fc(c)-10 b(h'al)p 14923 13157 V
+14924 13157 a Fg(\()-204 b(\007)15243 13957 y Fc(-)63
+b(tri)p 15708 13157 V 15709 13157 a Fg(\()-204 b(\007)16228
+13957 y Fc(ca)p 16492 13245 V 16493 13245 a Fg(\()g(\007)p
+17073 16971 15 703 v 17073 16268 15 1617 v 17073 13245
+15 703 v 16765 13957 a Fc(-)17087 16971 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 16971
+a -1540 22801 18628 15 v -1540 22977 V -1540 23152 V
+-1540 23328 V -1540 23504 V -1540 21184 V -1540 21325
+V -1540 21465 V -1540 21606 V -1540 21746 V -1540 19075
+V -1540 19251 V -1540 19427 V -1540 19603 V -1540 19778
+V -1540 23504 15 4436 v -1716 18761 a Fb(26)-1540 22355
+y Fi(\240)-1540 22970 y Fg(I)-1487 21599 y Ff(G)-1540
+19596 y Fg(G)-960 23321 y(2)-957 21458 y Ff(2)-960 19420
+y Fg(2)p -177 23321 15 615 v -380 23321 a(\007)-381 21810
+y Ff(\010)p -423 21887 254 15 v -380 22284 15 474 v -379
+21950 a(\010)p -219 21669 15 492 v -380 21669 a(\010)-588
+20483 y Fc(deo,)p -177 19859 15 615 v -380 19859 a Fg(\010)p
+816 23321 15 572 v 613 23321 a(\007)817 22750 y(\303)963
+22757 y(\303)p 1518 23409 15 624 v 1315 23409 a(\007)2048
+23760 y(Z)p 2220 23497 15 615 v 2017 23497 a(\010)p 1974
+21887 254 15 v -1547 x Ff(\010)p 2017 22284 15 474 v
+2018 21810 a(\010)p 2178 21599 15 492 v 2017 21599 a(\010)2016
+19771 y Fg(?)2467 20483 y Fc(c)-10 b(h'al)p 2718 19991
+15 572 v 2719 19991 a Fg(-)2719 19420 y(\007)3201 20483
+y Fc(-)21 b(tri)p 3420 19991 V 3421 19991 a Fg(-)3421
+19420 y(\007)4061 20483 y Fc(ca)p 4325 19508 V 4326 19508
+a Fg(\()-204 b(\007)p 4823 23497 15 703 v 4823 22794
+15 1617 v 4823 19771 15 703 v 5392 23233 15 615 v 5189
+23233 a(\010)5188 21739 y Ff(\010)p 5146 21887 254 15
+v 5189 22240 15 501 v 5190 21880 a(\010)p 5350 21599
+15 492 v 5189 21599 a(\007)p 6753 21669 V 6592 21669
+a(\007)4653 20483 y Fc(-)260 b(deo)p 5392 19596 15 572
+v 5393 19596 a Fg(\()-204 b(\007)5761 20483 y Fc(dal)p
+6094 19771 V 6095 19771 a Fg(\()g(\007)6512 20483 y Fc(pa)p
+6796 19771 V 6797 19771 a Fg(\()g(\007)7004 20483 y Fc(-)121
+b(ra)p 7497 19683 V 7498 19683 a Fg(\()-204 b(\007)p
+8199 23233 15 615 v 7996 23233 a(\007)p 7953 21887 254
+15 v 7954 22028 V 7997 22091 a Ff(\010)p 7955 21887 V
+7998 22424 15 545 v 7999 21880 a(\010)p 8157 21739 15
+492 v 7996 21739 a(\007)7696 20483 y Fc(-)141 b(di)p
+8199 19596 15 615 v 7996 19596 a Fg(\007)8988 23848 y
+Fa(11)p 9192 23233 V 8989 23233 a Fg(\007)9222 21557
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 9222 21557 a 9150 21669 15 492 v 8989 21669 a Ff(\007)8559
+20483 y Fc(-)312 b(so)9186 20644 y Fb(^)9420 20483 y
+Fc(an)p 9192 19683 15 791 v 8989 19683 a Fg(\007)p 9687
+19596 15 753 v 9484 19596 a(\007)p 10182 19508 15 714
+v 9979 19508 a(\007)9192 19024 y(\212)9560 18988 y(\212)9192
+18893 y(\212)9560 18856 y(\212)p 10677 19420 15 676 v
+10474 19420 a(\007)p 10968 23497 15 703 v 10968 22794
+15 1617 v 10968 19771 15 703 v 11332 23848 a Fa(11)11624
+23286 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (5.99998pt) GD N /S1brk
+S1hgt (2.5pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (0.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 1 N end
+ 11624 23286 a 11536 23233 15 615 v 11333 23233
+a Fg(\010)p 11290 21887 254 15 v -1353 x Ff(\010)p 11291
+21887 V 11292 22028 V 11335 22424 15 545 v 11336 22091
+a(\010)11417 21669 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 11417 21669 a 11417 21669 a
+ end
+ 11417
+21669 a 11494 21669 15 492 v -84 w Ff(\010)10473 20483
+y Fc(-)682 b(co)11332 19596 y Fg(\011)12736 23848 y Fa(10)12673
+23145 y
+ slur@Dict begin (2.5pt) GD S1hgt (10.0pt) GD 1.6 (2.5pt) GD M S1dir
+M A S1x1 S1y1 CP (4.00002pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 12673 23145 a 12673 23145 a
+ end
+ 12673 23145 a 13028
+23286 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.99998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 13028 23286 a 12940 23233 15 615 v 12737 23233
+a Fg(\007)13761 23848 y Fc(7)13666 23145 y
+ slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 13666 23145
+a 13666 23145 a
+ end
+ 13666 23145 a 13933 23233 15 615 v 13730
+23233 a Fg(\007)p 12694 21887 254 15 v 12695 22028 V
+12738 22091 a Ff(\010)p 12738 22424 15 685 v 12739 21739
+a(\010)p 12863 21887 254 15 v 13068 21880 15 492 v 12907
+21880 a(\007)p 13687 21887 254 15 v 13892 21950 15 493
+v 13731 21950 a(\007)p 14722 23497 15 703 v 14722 22794
+15 1617 v 14722 19771 15 703 v 15087 23585 a Fg(\011)p
+15045 21887 296 15 v 15046 22028 V 15089 22021 a Ff(\011)15087
+21669 y(\011)12109 20483 y Fc(-)1011 b(-)g(-)505 b(ra.)15087
+19683 y Fg(\011)p 17073 23497 15 703 v 17073 22794 15
+1617 v 17073 19771 15 703 v 17087 23497 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 23497
+a eop end
+userdict /end-hook known{end-hook}if
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini3.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini3.eps
index cd112da32f5..47a17a492c0 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini3.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/caccini3.eps
@@ -1,2057 +1,2057 @@
-%% LaTeX2e file `eps/caccini3.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 21 94 556 785
-% EPSF created by ps2eps 1.39
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: imp.dvi
-%%CreationDate: Fri Sep 13 09:08:44 2002
-%%PageOrder: Ascend
-%%DocumentFonts: TeXMUSIXSPX-Regular CMTI10 TeXMUSIX20-Regular
-%%+ TeXMUSIX16-Regular CMB10 CMR12 CMR10 CMMI10 CMR9
-%%DocumentPaperSizes: a4
-%%EndComments
-%%BeginProlog
-save
-countdictstack
-mark
-newpath
-/showpage {} def
-/setpagedevice {pop} def%%EndProlog
-%%Page 1 1
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 imp
-%DVIPSParameters: dpi=2540, compressed
-%DVIPSSource: TeX output 2002.09.13:0818
-%!
-/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
-/p{show}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
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-/slur@Dict 200 dict def
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-% align the slur to the staff lines
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
- aa 0 gt { /shift shift neg def } if
- ifadjust 0 eq {
- /shift 0 def
- } if
-% and finally draw it...
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
- grestore
- % now some \slurtext code...
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-% differenced line
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-% sloped line
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-% free line (init & terminate)
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-end
-%!
-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]/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[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
-%!
-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/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/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
-%!PS-AdobeFont-1.1: CMR9 1.0
-% 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 (CMR9) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR9 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 48 /zero put
-dup 49 /one put
-readonly def
-/FontBBox{-39 -250 1036 750}readonly def
-/UniqueID 5000792 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
-3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
-046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
-C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
-A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
-A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
-731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
-09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
-49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
-5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
-54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
-C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
-11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
-D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
-109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
-3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
-C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7DE90DFECF89
-9E58BB6430D9915B21B801B7EF6E62C2DAEBA34EC115F1D18F1F2BEC381020E2
-3FEF9CB4F3C3997C3F0587AF7C2A6B08A2823EC3DD3623E073DD07E7E8995DF8
-D81B2B6C8D36C964B75C7E4DAD8723126043FD455BBF4F1C21609729D9CF2620
-A6322AA2244D98C7BE825289C2F09F2ECCA97F4DC25F93D44954392BCB47A2CC
-1A11F6CD6101DD405EEB13945A1AE4CF6427F53AF9A0F76ED8D9E6B2C81562A7
-7F3A89339B0D12BBF34BA71F6FD2D75D0C3068843119AF94ED88AAC850664154
-78973B221D800E5A0556DAC4679C62294751C1C74701994332D8B29CB51DA91E
-215C8699F47D2A56EE9905A4716B97DF456ECA78BFBA774F1665042B47CB2FF1
-F3617C88959B667624EA096EBA7BCA7C4924947DE35FEAE25FD055C0843FFF09
-F80AC8F15EBA70D546F3EADC6E4153DA1E91D63FD90AE7EDBFD786C323E6B4F8
-92A3197807FAF44DACE5097BA940DAA972C26620BAC146E91310CD0C853AB86F
-3D3D65342EFB3B01762FCED5F6EE42F3B47BC5B9DE9F1517BF3B32A22DE23FAB
-31341D9B8F55040572476437F5A81BD297A6FFD971B963458CF4779AE811F0CC
-4AD74B3CFD7A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMMI10 1.100
-% 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 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 93 /sharp put
-dup 94 /slurbelow put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-/UniqueID 5087385 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
-95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEFBBB4AD66A4D7350B0
-38A001EBC9735BE41A41B4836FCFC0D4029C02D8DAEA734951E57209889EFD2A
-33D220471B99E877FD166D30A54B29D4CC17CD581611477EC6BF8A58479ADE5F
-FE8DB690DF606BDA5AE6D1E2B1B797C835A026E933D593975A7AC4DF8EA7662F
-F51A30717A92A2FD10030E749FFF416FAA31794A3EF90832F493C1012ACCC272
-9313AA60DA29EAABE06C313A7D6190B3FC20E0E400E647ADBDC6C63CE3AB0D21
-DB0EF15268C3056C4E28FA7625F2BF7AC6343417D3E54CEFDAFE3B0E42E96C59
-8348EE6BD0843B0509FEABE63FB91C89FB452047789D36B69A355F2F605C77D7
-5AC7BBC694A05A4D42224F1051296857DB8D542F78DF1AEBD0F55AD2BB1795D3
-880CFA7AE2B14CB898327A058D330FC29BEEA39661FB8AA17B1D9298969629C0
-035D90094EC5D33B9C91B3E9EFB648BD3303BAB96EED1D209811066CDC3AA0DC
-664C576F01B39C04F54F9BD393B74D4620666DB9DEC4F49C46E85A14EB1B1FA6
-ED1E13DF0BBF930F995A14AF9AFD04EA8317ED31FCA841133D742CE53BC44A84
-2B8E98B6F78927A4783284DE22942EFE6E9685D880CBF2F215ECF20A00D6D3C7
-8F31303AFB2DC22CA1036C787A4CBF0AA39D5E5614AF8E2B2DFA8188C2C5DC62
-307206815717F190E854D2160D541D087A24701E05DA93D5F0F9A3E18C13F44D
-28281D018CE0ED65FDC7A41DD2D7569CAC04FC3FF086F89392339070DC4436D4
-52F283791522918DAD8C01873436B6665C4D698647FD7ECFB67495AFF97A1656
-9DE0D0EC6053AD025EDEA86CBF26B4789B67CB490B76F6F03E8564829096F390
-32198C0F01E5605A0E6AECF6FC99CBFF8A113D88EFFC6E047361EF267F3FEF0A
-0D13514F1DBE782888278818953F05D660FDEC6ACC4F927EF6A7071DC11A2367
-8C5EF70B850DD123EFA3379291241CBFE455C88264E058F2C2B57D2BAF5D7224
-AA236B06B756D47DB4AB4D1C1B0B848BA1E5403D3AB2B135FD14579AE258F4D3
-EB02EBF44EED73AD6C4D5B0A414A58305793DE8236E673299E45313DC42278DB
-6AE93703D8D4F70A0AB11E4D19878AD245264F36050EB65B6F10125779C70D8E
-0065B0F31E8689D7006E25B1E01364A1FE370CCCABCD955C6A518A26DEE209A4
-F070657B786E9C670611E0E53076B0B6183C2D4796DCB9BB59851A0EEFA715B0
-E105FE75ABAFA9973524631BD22CC222A5D3B1F63015A392E43C857FBC8CE769
-16C103777607E18CFB4D096708FFD430EA3EE8B0E813B137B5784962EAB607FE
-717079429B675D90F3D973CAAFA004F6243EE0A53FE515D255C95DBA5C0DFB32
-5E0529B1D0E5183523AC111882566D14788F53F22FBDE907B26238A814E57C29
-A6DAF9C7E2F79537824F0DAFD9A521628565B526F000862857D9BA6CFF593510
-610A2EA10FA423C056C12B19EC53840AEB340515986D8976F02606413FC6AA39
-ECDF92C5897AD6CFA9A89E0CB23D4904A5BE2E849EC7BC2FF4A88228E8CB6196
-B6DE62566DABD4C85005211C83BFCFA86CE4D2EBDB699FF3819760B188DA7CFF
-909FC74CF024AED318E00AA51F8750406B0E2EA33363E385303CFBDAFBD2D8F0
-4F6A8B00431BB0776AB91470E2832667C97C8F7A7384445A2A42555BEEF95EC2
-F2C78B89891CE666F2B47FF1141ACF80AFE627FEC568168A61C99C941BA7D0AC
-54ACF918B72619207C0182A6BB1D59E58FC3C96B0078EBA276B9C02DB668F0A8
-E046BE4633E66E36369CDFD881E71A969F1EDFD8D7CAE207A74A8CB8AAB39C8F
-935BEEBE8D07D4559608F75254ECF672C2CDE1578D099D79152D8B41E054CD25
-56A856CB0593F0B676DD7E9FAE9844C6B6A781B9F823D5DEC60AA90E33498A93
-D6DF663FFF523C171B1F841D5E60C321B644EEBBAB0E0C418CB206C8775D4D0E
-33AB23D397B2DC98EFEBC3CC473ABB6EFA4DC2636E945BA3EFB03FFA680EEFE0
-7FB5C8F1945B699EE4F394204FF362262D2DC7CF759C5526B81D0326A5D14658
-B209F34B9334ED0B046DEE32B4E38776DDE43F803F8D029E8410BF7B1517E6A7
-0D84C40AB2A013C58C3BB28D496F6CEFF70E73F3486FCD3984F8297061E72171
-A17BE235ED5A38F7B73245B46E65EB4AF055C4568D1A19BEF6D5B184D3C26D45
-A2DA85EF7AADFB104419D7B6DC939726F6AD4A1335C425A5086969B7366F53F8
-9DD041A90FF2A593B547C37520BA014060801BDF84B7D386E4ABC862D8E3EBBB
-AC62431C625EFDE888E07A4548727C26141F0D9818CA289C79FBA2287620E29C
-71FF406FFE49048FBFE82EC631AE264580CD091EE22377D428069D99D6184D42
-C5A7A438933764CB1AC1534CE9D8F0717A0DC4A466DC21DC42791F06C28BDDAD
-AFC10D8C5147209ECBB9B87A0F3BC62359AA1D046A713B8E78CD857FCBCAF6C3
-F17B1453FF3443D60D0B5F75DE6DFFB09CD5BC44083DF8353E4A97CC03541BAD
-AAFA0E927D08919D13825535AD9F1C081436F0E550BAEE4A6902A411A653EC8F
-95621DB5D9AB5C155B1F1575268D724F51F82D9E5993AB42D724FF649F48F800
-67D2176665344A6CCE606C1D60062581FD4CC87D8C3EA72F1494F8967480180B
-3055576BACEF9322EDCD5E49C1DE7D7525C7F44391BF7DB360AA55F6A443621B
-1E1B7CFA3017A6A4E0B0980DE9BBFCC95A8EC512058A35877917A0F377705C6C
-86DF168ED49AE75998C8D7D2BE79E89066734A6B532830BDE10EDCDA303BA891
-880693359383EFF5EA85DF0575A9C5A114A6435EC71B124FA279F81D723C7EDF
-60F764D1E975BD48A295B8E29E247BB795BFB8E200F3B803631C90CDFC32999D
-CA367C5E4ADFE9268145F667A4E159C784525AD8B759959820E4B5978576A3AE
-CED1DC29EA92CB1910D84AC73494FFFD5C163C1A2094FC216227DA8C39213F8D
-00C4E673604D2E52F34B58AB257A18E91BB4B05B0A0712E260D14D6043361159
-D55C19B63E79B0688CE275B2DDEDA27191678D620375C0DEFB3F0268201A6CA6
-0ECF5F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR10 1.00B
-% 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 18 /grave put
-dup 19 /acute 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 48 /zero put
-dup 49 /one put
-dup 53 /five put
-dup 54 /six put
-dup 55 /seven put
-dup 56 /eight put
-dup 58 /colon put
-dup 65 /A put
-dup 80 /P put
-dup 81 /Q put
-dup 84 /T 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 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 123 /endash put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1B9EEC89A0DF5D4E908F32BC77D09A266DC98E9669626354E
-59FA354352E609F3A359C0E8B82075C60AA8F917C3B46A51D65DE1F6F050160A
-412DAD1DCB1A35E49A520F31B3EF2B0A27E393E20EE871DBD2628AEC086AA0F1
-CB11E1DFC7E94792E38B0F8DFEC565B1676FD5BD49E5757F7D03092489A7A0FD
-2DA2ECE42C2BB3C481C676B3BB029368632768C2988B90ADA328C745443F93B1
-C31CBEA19AAE4FFC83A933DEF484A753B513A289FBBED75E3EE8C1117912BAF8
-54CC8AA4496B318283B80AC61EDF21B109D7DC8DDB8FEB1F20265E06C2E2E8DF
-9532840F5737838DE90773008DC7A4E23C0F133241F066096999887AD4D12DDE
-23656B80578308ADA3B73C7D92DFFA19F1A79AC9B99F4971AC65B49FAFA4EB21
-B05DA8A257B3CA70C7584768D4D1A8F45777FFBDB6C69A56A56B76B10D228B4E
-AC4A163E08E21F24E9DF40752B9CAC62E84596EAF822F177C4CF65B7078A536F
-97E22792FA75CD39AD747A1FEA72CEB4B2658DBB9A4CD46FBF5FAAB0D2342DAD
-04D93804B95AAEA397D0ACA78A3E49FFCA7473C3610C6E9A9251EE17F88E790E
-82C4755F75EE3A7FA6C0237A7030CAA69F77BD9D4EF25FB1A2D45B649DD78499
-586027D49923A3E2870543F4CF74A00499B8BB5A903645E546A5403B88BB5F97
-F04924E8CE2A3446643AF9F1BCD69552B351076B53AF9F34FFDFE3548F31607C
-CA8F999426CA7D9B3464D2C6BF22AD989D98D0C5799E54FBECA219E2EF410CF4
-A049606A988FA48884717E52FF08B3322390C85C4D2B9CBE74801B538E9590DD
-C2A7874BA3A795BE0E40B300B16C4E06251E8A90BB725687A489828848C7F6F7
-3DAFA7C01A21CF7318E8C26D5B336E7B6E4F4F0B397904564BBA28BDB9794B45
-8CEA36266178898E3612D7DF333CB7FEE6396B67761361CE1791E3B18B629B17
-1667584AFDC209377CCB279582FCAB62725237AAF4879364006A0B717EA427EF
-5CF24C44FF4A6FE8ED167A40EF438CA0A6B0D80DD46552563B36DA5DAD53AEE6
-E116D35D0321DCAF45D1808418490D772C50B6FB0810F2E259E21AEEFBD7C5D5
-B7FA3E9BD20A02299701F473294B6C8445E0769EA93307756CE2A7FF454B2C1E
-E1CEEE797D5DA0A8A7EEAA2090AA69FD220CD70080AAEF76EFB53FF7759BC68E
-D7047DBBC8DB5C13320F77A8FB94B9DB259A9AE460B8634A22AAA2E363084BA4
-E2B77C1E29568B02BA3B160E78799B29B38D1BE9FD53F4D847CE1542DBDDDAFB
-00CEA31C5E9A63C6A5A02740A29EF7EEAA640DF24DE62385E2BC5E7FFDE1F362
-C7F86BFC2A4E9BCE82A37D5BB4BF26BAE85459B6945F7A7E4AA99002B9475A9B
-8A0CF51FEE063B939B1E1737BECC470D3DFC46D97E97D77DA85253440C570804
-C3B5EE537499CC481CA523B7320D59AF0A4102406DC5A264E7393E04B39A3458
-2B241C46D8D9A99604E48C85DFBEC0FEDE37A7BD53DD20A62CECA82A6E6640F2
-F68B66B65EB2D6C1C582FC10A4EF57711F19AF71D8D4BFDD735C3E67A4D9216A
-5BBC655423FD1FF2DF40A19E528EE4B81FA837525865A6CEDF9E7F27D3FC5C61
-CFC31DB55A2586B6F8D598DCC500ADE62C8132B4D65F5DE6637A34E2CCB7F225
-3AC04CECF1FAB29399A33D06DC3010F4B44CD0DC34FC72792CB645FC4079C34D
-3497C9617FD607C5FB0D804E5DE41B07542D2437A7530C200BB839542CEDD201
-D8E0D0840FC242DDF4A5A4CD973353DC491E06E684C99B0B074649978EBD11B6
-774C5224BB091BB445FE2E4F276F6A9DADAB7DA417847FAF1B04BF5DE12D356D
-06D6E83E6362178B804B95FD8683ED3CD511002BE0B87ACF8AC9292897C2F85B
-5C8814D40EA5DB190A52E05623E0BC0C7FC19943CB2B07573F7CCC885FA8AB29
-367930831009DBB9CA6E7E879641394526398F3209369D875A1EBDD45D7A203E
-74C03B38AC0FA1A379A5E399AB7700AACD2DC5B2BC3132BE82C64AF9662B9230
-6D06DAD71F74EA0C28A85C8629C97A1699DF1C91C0F5D035B459CC13E7CCE42E
-376A24E9AB4825C15AF2445CD206B9C39D70D735560A65C2BA5BBB76121A503E
-4FA1992D3C7C8001080FC8705BCE06B4113472B8A69E9CF1AA8C5CA2450F8539
-E7D48DD5785217F519DA9534D13EE228F59DFC78A53AE949EAE75C484F223E88
-1D470D03227FC75C23BD32C3F64F87053D9F366CB37C014CCD36409458D90C99
-54D24B8BF0D3FC446FF633438A9447D9E33C90E4B0CFE115F7E81FB13E43BC51
-C725947F66E2D79877A155D4D373FC4C3FBFFDBBF04820F73F292B8E5D932917
-B27D7A4B20B7C471419CE731AE8CE958E8B750242D09E07EB1917433F77632A7
-A7775361484064D6B02AC57E14BD0B3C332A4BA36AA02F35AB09C83037796B79
-46FA4F4D506687B80BE0E2D2374050501A5793171CA3C14F8CF6521F7575DC2F
-9A9ED29C80B8092C98FA1BA67C5E1B02B9976EA0CC363B7F1027EB779C1A6A38
-9DF3F9853B8A71483DE1BB5B9FF9D766EBDD648512DDDA9CFD418AAA51F754D1
-27ADBADC3B3CE807E7BB6650EE72646930EAEE073C2004535D5C4770C8FFDEC7
-B5882F2D49AD63DDE41665FD5D0D4213711CD7C0C503EC77511B1F304DC9E571
-8FC9C19B49D4974FC8B530490EC1F1C346A6B3569A9FC23B48F1EF63A8F1FA66
-456B40A2EF7F8A6BA3837D698D0F1A0C6EFF8AD59F5FFFC53C790D5D0A35073B
-842323D6D5BF3858496D366C42DCE69AA5C87B100CB358FDCDF7683446E685EC
-67583895433A6E73F94186BD778FF5D331F200F74F1866D29A83E6A2AA368442
-4735C4E14CBBC730C00B58B36396A9C81DCC9CDA324B847D8763CE7052FF7B3E
-EAC8A2DCE192B308C84AE5EFE62E38219BF151227C472952528C21EBD7F93150
-58CB8CD9B4F7E301EC2842F4E912103DC2758A56B4C5645F9CA35A826534A3C8
-042B990117D1A53CB13408D4960417F81A1FA442BD7ABB8FA91BF38F6D332256
-ACDBD26DDDDEFA833CAAB3D7084EF9C4649F73407ADCE0ADA5CCE19126924BB9
-6B48355F311A3AFCBE5EF10252F86D751DBD977C9DBF0C81E200AB77E0BB117F
-F48DCD53AF3A56E58BC1E6757A5AAAAED24616266B4E264F7927D70754DB9A3C
-AE063F688DEFB66B51F00D022075987696F54AD3D0286EF95E592F9D40454D0D
-69B061694D2AFE3697C7CA36196DD6B26BB1057AE5070D25A2F89326DE260440
-0AAED51ED7B254E279538C31D4BB4EFDDFFD4FD09232BC430A573FB657AFE742
-7CCB996E988FBDF600D809019F4B4D2F041A6BE4C60A52B2F3A8B6BC8DBF772F
-CB58477926D6E01384D7B718EACE9BF22096FFE7B3F398BE07AC814DD2C534A9
-06A17475DE88392A48B82535093DF87A1B23ED55EA725DD7533D905A67939D1F
-53ABF978B748AB202A077195E495E5F0CE042836BB5743565F7AEBF31284A99E
-C0CACFF65EEF9A9E7EB161253762CF243889BDD834460E1EE5A752E5254BB6B8
-C21D0B674C80FC55123E3DA6CD90B17B4CACA4F5425D9322643F2139FD90A8D3
-2BD3B9E0C4DA58871EB78A764A6E035A2DDE468BD45F40A5B2AD4D32D51B54CD
-C87C566C0DE3933EE423DF2930F0369A27EF1E609B0152886A26C7EB8E625DE5
-2DADBA71433FF7315006FA226BA80581B0554D0D65F610F59D61756676EFCD96
-1189905D27790D7910E8411FFAAF646D531C03FB3317AD77C8F4681C6C493D84
-E0BE58C096868A579A570A68B65DAA98D12ECEE1EAE774C282F9CE38E37FD95D
-B8056E30202FBC31832E734096C7B9B164665420698551A252C0458D901FE316
-1E2A8B629E1142815AB39369C89D6E366EA53608F0A0D8E5D09FD5F0AA1E1F8B
-6183806A9ACE9BA79DBDECF8AD1E9C3BD589B2D758CB90AE642746083F938040
-4B319D0BDBD61A24646615F744BDDEE2D19F7E6885BEA4BEE3CBEB98044F5C3B
-CCE180CD94E00957C7663E17F31AA2009ECCB464F1D19CD212A6F64C2C3BDE77
-4AF718A7005F7AF21879513A760ED3902B658534F00BE8277A3C09302780FBF5
-3D4CC7A4D399CDF38C3918DD85DE9D359252932AF5274ABCFBD8952957F642E2
-2C9846C20F8C95DBD53953A87FB4D72FB07177C8B9180368FE562C6757BA26A4
-4F5C241B377C1658B6DBC05574FD228E8745AC865F24C7C94700BA3DB4D53F3C
-46032B19870E44BE006A610365CE5AB3891C4053CEB9ABD70061B23F55910C29
-18E1AAB37F3EF51267D977EAA70349C7D4DA9B7809453BD23F17C1563335B87E
-DD90E4F74ABFB462D4EDA74CA37B88A4128A6712A9D861F9456F394064C4F8CC
-C8BA0BBF2C02EE11EAB8899FFB7C630D97C0290F13824E5F5576AC1381272427
-1E17F47562C5636E75DD779FBD1D18CE4D4257C0831FD68B412EB1905AE4101D
-DF68A74CD6F7ED92DE2667A080164989B807F84F126BDDFBA60987B2E780886F
-DFE3937A932304D88FAFF809ACB111BB06C64EF01F28756D2A6D6CCD5D6C9057
-E00FC93E619898BE6DC47573A02A60D8CC5140CDEEA11A453FCE09F9CEAD7FF1
-076F68CBB6EC2FC1D7EB66E1E831E886507CBF1A0C8E688FF91C45AA8566D747
-997F0EEBC72B8C77D812AD3820D7D837BA5ABFC231B8B6E8A7F2C85886CF7A39
-4C0AB000695BFB1E88BD9DBAD72BE505DA4830D4E57D4F519C6E7BF91CF5D72C
-47A98A9B7C6C2CE4A99587DA2BE19B8BB56EB7021D451654F92FAE4240CE623C
-CB57CFE0A0F00DF03EA7E40E75EBFDEC4B572C9570ADD9FEE4354A50BEF41CD2
-E622AAF95C6C467051BDC980D8E1C59B57B938073865D5624EE77C634CEB5863
-D3E020B88F535EEC5DAD9E81E6BCAFAC4AA3531A751F8830772C12AF1020564B
-4C4EDC4A8AA8F1B605A91E88CD7B11B3326C2B82AE540951DD6FC3BCA10DD078
-448DDF3F224745F2C88B53365EEDE976BB8D94D1F57E353EDE19F588DC56D99F
-EB3C628F9A5A6C9F79BC97D69F55EE0E337598806D0BC1EDE2CA8021EBCC1A50
-ADDB55DC3EABC67613B09E9A1674C0058702497C21EFD6322530E8040422A032
-6B6E872A2FE553E3792D7DAA2CD97FC2193EA2BDAC7E78C10673EAE640985389
-7E0C5C663DC10138C6FA5FBF3C24D7E72E5DB12DD4E5FBC213F7C72F9ACE751E
-FFED9C3B60907E04006F0FAFE98B31C607B5C84C3D1F181E1DFF2FF1E7A016AE
-C8799D765D52DA2EB5BA62575EB85243B5EA52A50DE2EF945C600EE8CBF1BDD5
-8F9E917193AD2E2D7C37162DECC00AD50C071B0A209327E87C8BAF529EE5B561
-5979F1515A78007AB6AF532219951A3B950534ED8646078EE7C933051E0C5DA1
-3B902956FAFB5CEE7A6D1881F2CA72686D74A00BB26A5627DBE2991771D8CDC5
-D35FA42713272A3346B5FB0C4250849CE0CF4F026B9E9D5E9FD5258AAF1B2D55
-1E7CD3C80BECD4E44C504E0F935A4F8B463373271EB7BD942698CF1D005403BA
-CDA5F1996D85F0656116CB2EFC49D25321AC051CC24784587B6969A226BFEEAE
-773444F741B04520C28298621800FE12CC18918C56FFA5D43FEB24125156B379
-F9BBAE01A58A1DAA21E5574BAAD2697042F540874FED03C4147A9A82EB3939A6
-5C941D015CF75D30766A7E954B9E2A8F2E9E808372B7FAF2E0871A7004C5508F
-EB9280D63471E9EF75D80BFB0D6C2430A061D4E2C4BB4C295DF63BF8C1DC0952
-D5DAD5E0A2653A8D03DE0868C14027464D871F9760DDDE95A903E1C1F8C2A7C0
-A0862FF3587BF172566E388F875A160CA150C3B2DF2728103F8EDDD08AD0BC6F
-65BF032EEF85FC54E299252B7F32E4A8DB7542418E09F073236E68F4F11485D3
-F6A0624C207CE7EC5B0B984A3C0F3FA609118C22CB6BDBA37A48BD0897204015
-7D9AF0D3F975F2ED088D91B6721CB604BB19291EE7B332CB852643678FC4B66A
-A15221B430720AC37E6C2140DF182968E3A28BFDF8BB2B1A90DA691CC419405A
-F2DD423B27F81CE1499708F11D4E3F6A86DBC243522C0CF3B83F39EE6312563B
-A3A624219E36CC78CA68466A781933E79F238D93416910B791C97502377A0A12
-CAD42241B814B8B37E35074DBB48B79CDDA2E8540CB303ED02DB330D9E542371
-D7E183C060F9307C2E0345D41736348ED1E50D2F9A531716ECD91AEC136448B2
-87E17C5EC71DDE13F79BFCF469C8062CB60132388865AB64A77558A8974875F2
-9FD46FB1B07B50CEF579FB3C4D862160A3615F2D3CD3E6D88B06182C2887AAF6
-AB70E2961CE467D409DA39E44C7A890FB1FE59977C954DA9ED0C4D2CE9F42C76
-94F8EB9D9980F40DDBF09A61B71CD07A2ECF3F1A3DAE84BEA1F38FED60DCA960
-462C7F22763841A260EB5AFD515E9E93AA2DE67F64C83835D5C3F1E3DA1A6051
-9CBB3750EB26ADD07DFB62FE7CBCE154CDAB84A6EFC9797A891D4D699C96280F
-6819A9067964B3D048F12B812395CD40E20EFAA9555FD0CE35E7D566929CFB0D
-8CBECB7ACC08CFCDCA43B6D105B89593121653030575F12566AEAAE800C00BBE
-E88EEC131577E9BFAB2CD2A5BD45F6A286B00B4C5CA09A5550C4EBD107EBEC39
-94AFAD0E3A8A6E729284B62169D853A658A10EB2A53E4CC4BF29F127273E0120
-60A1BC4C08DDC4F7DC298071CF0D8DE93A8F189D6C76EFBE0A591EE1180AC6A3
-D7F8E47B023C5833570D6AA04970F4EC552221A701826BFD2C9CF06197AB11CD
-2BA1C51C8FC1175A7D643F505CA573A87740C337CFBCDAE535E1B90D3236BB96
-92393450186C9A749B0A3A30FAB7B433610D2A0DE303E421B3C1E18BEA34D891
-CD6449CC5DBF1C1D01B2A47263C7D24052F8FE37F2AC085D0516EFD72CD78530
-7E2522917A7B863572752E9B1BBEDB7210516E62B73136F9DC1D96323DC3F78B
-C9E43A21A7AB7626A7454B655DE2CFFBDF27847616D52DBC72D54BE7BFE6CB49
-78FEF0FB1F710D55D123C7756F12AE2B5D4A9108C17F2AFB4E421B08E79E81C9
-E7F0029C052A27F5AD1C7AAB82C4B45B364408235DE134DCD74D93264F77BB7B
-E738B52C31CA5C734F9453478819E6E1F1317BA6496719A8CC91A30F6754A600
-AB170520C4872A328D2D84D09055A3AEB730DC8A47CD97A09E7E6481A85B6957
-0959D2623290BB04BD8612865A0443C9EF9C861494A5EAEACDC32FF5C572D2A5
-91ED31F8F8A3C0CDC34F5A4F271A0C067111C70D95526C4FE05A7018259333E1
-207AE3E9AED942612024BA3E2238C1E5F56CA70FD0ACAAD5F92A91AF5A59A9C3
-EE4FAC04CCC9C31A2502D1C0A5D6D2D5BF4A8EEEEDE64A31CAA16A9A97FC2EDF
-8351236C48C7FE4DB3542ABBBA24504A9EE692560DF455334A6E894085CE8423
-94F78CDFF2B7BAC537FEDE02CE127249B9611439582656A2B75E4639893C8F43
-AA0079E72110293C16C632AC7903C2417FFABA1D72BE58B0F9149E0DBECBA0FE
-383EFD0FD763DF63724CBF81178551CB9BB20AF338C850BAAE023BFD4329C733
-6F32CFB740828CA5103D9D21C516627CF62190A508351417109B1A66A62EC7E6
-F548CBD76FFC807E96D7AF6D351A40918B98F7154DE4575C14BF6B4BDDBAFE68
-C93C9381374226DC40D718356B7E1808ABE73D01A6C8893AA8EB9190D5352692
-5A3E97636A20AB4B189875FCE9F90E765E724533B9EFBEB36FF59F47215C7E19
-0B2C9640B9B68FF3BA17D140090190B3432E37A7E2E166117E5B1BFE5A0D9F3F
-1ED0495B2726D032E13EA3CE9E4D8394BD3430A9E4272E6543DBE0257780BA5F
-906B58E3A49BB916FFFC7104EB414C051C74D099F5A1B634AFFE11E899F73378
-9CDC9034F6FBAD517387FFD58B348FFB610AD6F2720B080A2E3A61572DD7C663
-47D6E93DBD490CCDAF473476392030D9D8B956ADA8C791519E7A0210E922CADC
-60A6AE1CD3ECF6D95907126E8A6B7DE8A15CEAB085778F293F36AF1123F98F03
-C0FE62786155B9BF44D8D217D942927234BB6EBDFB23ABA5896C985D6811CA74
-8EB0D20448147DEF5D942EB6042C938C60E4E5D2BA7749F3B7ADEFF5F9352DDD
-160898B6BED1B1677399E0135299A17A31D19F570E7ED8503F02F70664297483
-A51A1CA586234088845CB1F99C6514B9E482E7CE579AAF24A74AF73C1F94E1D2
-9C1C00E91CBC973B990BDF1E11434B3FF37BB51BDC6AF411E7CE909FD6949FE5
-98B5838CA1FED715B1E246BAE174BA96FBD83111B3DF2905F1ABEDC3A1C00238
-0D01A2940E460C9861342221AF69B38088424BFD60F3A18859DF3A3BBA929ABB
-0DFB70C4A315CC737339A61EC41671C38874C228A5B6A6BD033DA7C83EEDE739
-B0EF4AEFDDFF6FB2697B1C22F5E38DF8E05068FF834BB27E579DBA1A4B8C452D
-F404B122A158F748316168C3CCAC210230C38C33BD38EC7A9863B4C6AEF35839
-D3C8029F0D14E51E121C68172D14968541E92EC404D85429D101DBCA73105A20
-C40A1046144532FF3010533E7EEEA503F5966785D1443C40772212480C86C9DF
-8989B703365F91BA7395FBF1EEEBDDA805BF7C996CA46631CBE40C5F92C5F455
-DC5761943DA6FFD099D3559DE18530F7FA759E7F2EA87BA82180FDB1D00FF21E
-D1091DCCFFE9728F8B97AC1E0ADD4798ED663643EE649DBE15FFE94CEAA7B860
-7131CCB1C05D93D3284E5311F485E64F1AABD4BA39A2E07BC7CF0021FB8C1F7F
-885E8FFE4FD4DDEBDCAAF4EC20D7EA3E1323DF8A5C7D1443DF7B4E8F4AAF71BE
-7AEEDC4B8B67D72FEE01675EC95C828E63E83E252D9CF63DB0D05BB057B39AF2
-432540FBBF3805F6BCFAB8691485A4D302FBDD8AFED7BAC7F163A5F7B71B627C
-D29B643D20497E9127CF799DD2D02A30D362964464ADCAE2C0C5FA92AFB7FD11
-CEAECE70291D6F6FAC915EFE01958BC43057D7B7B145DF5CE75C5CDCEA8B04A8
-572F0FB5586E6E235FA416DB9DE5BF236B465CDB08B27CDCFE02201D0FE09A0A
-FAEC3709579C643DC58065D6E49C0F4BAB3C9AE9FD4940C78F57D1959B3BCD31
-3C7DA587227C03E3BF8B66A3AAF3B8B2713A834CA8A796D7805554FF8AE86BD9
-A625AE7FA1E431C647640B4AC1718C054793ADC2FD296FDE66F31B6B1C43E014
-924D4C3770FA293C9B68CDE3B90A6E382A042B45E1767A47E890CF1AEF8DF011
-16B2FFE40153BE44269852E7A113D274CE18A6E432C8740A12AA9EC80BEA5504
-01313B92F997A6D65C69D157FB45DAA5C23176619CA3760E0CA75A67033FBE61
-6C74B7D88FC7DF1051FDD8064D41E81EE5CEF382270133833F93C270D3AC0AC8
-3CAC747391C22E4E89B720957530DDDD029A371C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR12 1.0
-% 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 (CMR12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR12 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 67 /C put
-dup 71 /G put
-dup 97 /a put
-dup 99 /c put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 117 /u put
-readonly def
-/FontBBox{-34 -251 988 750}readonly def
-/UniqueID 5000794 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
-68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
-3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
-59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
-51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
-DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
-AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
-45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
-821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
-96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
-9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
-26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
-140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
-1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
-1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
-377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
-0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
-5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
-ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
-FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB
-4370BA2C96960CE9E688231626B3CF1C23A31C5800D54F5BB64FC84D0C7D4998
-5288AF2722FE7A2629BF422D026F31E189E82C9A451AFF9A9C138164F0CCF315
-D76FD849BC98A74FBC93F09F9EDF85B13F8869F08699C6C90C58DD45CA958E34
-0DC970D40DFCF3FAB15BA18C1750261B02CE16097938C466291A55062345D8D6
-61F775EA958D3BE761207F828DDED3DF5DDF243C0A352B08B165D887245FC857
-2FBB64CBC928B34F2831ABD03C5CC0D29E0802F21B3BDE32E069E0DF9B54DD6B
-3D13D19BFAE271A6AFF16A8C697EB07C1432D59A2D2039E686028D3808009A17
-696738793896F91DE802D1B7509045B438CC7C62CEE684AAEC9214932EE9FDAC
-09A0A8914D22F5B469811DF488AF012A4C5EC81769698621D17B2D30EE858069
-49CA4A8061410FE24196ABBD37BA67A77E86A8B3B75D511353F42915D1314F1C
-65C7A16FD9523316061970F95DE693FB4DD6088EE2189C9DD4E22B2AD113FFAE
-37CA2695338CC2508BC52FF04F9A88367C10F60B09F24DA37AD881A150DF1017
-FE577A2B0CC891A38542F1CED14F6CF2C5FC980D459F6D1BAD15D6B952DF882E
-6076B5186F4B941069410E0ACAEFF0BF6431608163354082ED6D5B68021C0BD3
-C1F1B12CB7C7805BFC4A5A488920C77159011727EA004D11AC691AB11DC98FA9
-6EB7BCF534C4B4F8D6935FD970ECCB1C5B7196BAA1A9C75F0001194EE690A8DA
-23D328CF84C74A96F973BF202D851AA689BA7F0C99D3E2D9447BE0C2F6CCD2F4
-782652DAC900FA6AE01E9DC4AE0E539B155B24B1A67F85D5F96E1F51289CC943
-D4DBC0034E48481339A60639EDA2212916BC83EFD34D89A19FCFB720C231222B
-845551D438A20AC06DDF9A49E5FC89974A1336657390445FADA16744A094E7BB
-EE7079DAB01CC8A528B20DA4F20306F9EECBEDBB86636E8DF0C431575F551F95
-B2823EE823C0C8E02D94F50FCE3E6F7D2B1557D5B89F55297207F11D1547FC0E
-989107AF90947310EBD726F89BC1EFFC51B59449AA91F2F8F760995E5F388316
-6FBC13791D2828FED49E2E586943D7517395F9EE3CB99726D32853B7448D2834
-B02D7BEBF573AE4C1D887CB512F243FB16E4800567B0FE2C4A1E7B64B2B3501C
-B612926E9E880FA6E1FE15FA94DA7E1F1EEEDEF2303DC2DEEEE9BEEBF5FB4880
-82F6B6BCF38AAFCFC65062841C725D0B88D9761FEFF0BEE46B5D6B2C5A508D23
-AEF7D71F427F3339562A29FD432D70265238C4414A6D94BD13505148FBF3C8FA
-91FA94792E73082E619D946F9CD0A13B4D8DA14136901C04AEEF70105E4C3859
-28200013F68E11BACF8FD94CD56B69DCF855E83312E3B023276B941C778E9AA4
-B8CFE29C945151AA4E3BDF36E3CB06204EDD004B7CD3F6EBF3FF847D0018227B
-1206E3507554F062441A46BE726C97A1355CE7B053E7B1B4ABFA0C96E3E001B0
-BE07923F11E7D570FD350CB7C8E293A6C6CE7AE79E7F8309C95F80BB957A1AE2
-2A32E6A4F314540759A2AEDD0213E3D42D88344DCEE7B732432277DC8C734EC4
-6E7BB880539DDB8A687238E8403AAB5DF383216546B82825067CFF7FCC3E32A1
-B6A082734315B0506DD1060501FD87AE62CFB30BBAAA0260D9C875924EF68581
-A3A73771F84F6D7628D17291AA202CD744B8F394D3B7F619D0C4A2F791046EB0
-5B101501BCCBCD260F9BDE8BCE7A1E085E2B120ED9982841715260CE4B6BEC7A
-B26AE2794C53C7835112CCE3A057ED48E6FA05FF88D3C7F943FCAC35831A9258
-5A8FB6584BC3346A018E0B569992E6EBA31ACB9EC876495D3C0CE59A0A70DF62
-B9D056F2ABE55C47AB17C9BAD970CA3EF4403549803D9B5D83FFB46990A56BB5
-946CC09A4C89D0EBD31438788B19DF3B1EEC2AC9A426E21E3966A8A25069799F
-26A40EA6149DA6402F83FFA12774D942450668AFE2F771A41506FBC5839CFC5D
-F6100F7FAA6B04BB659729D463F3A3BECCC38F8D435BC168550E3C7E5B55A970
-05670D4D2EC83BCD057B8E3BAC3FE2A464EE17
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMB10 1.0
-% 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 (CMB10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMB10 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 39 /quoteright put
-dup 65 /A put
-dup 97 /a put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-readonly def
-/FontBBox{-62 -250 1011 750}readonly def
-/UniqueID 5000761 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
-A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
-99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
-2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
-C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
-00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
-B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
-BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
-8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
-FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
-31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
-2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
-9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
-EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
-69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
-CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
-87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8EA36BB6C
-87B9939DADA60888E78E14E626AE6717EFA40C50FB362A81EA3C4C5279819327
-CFC2ADF1D8DD65B2CDB9E3B5941E81AA802A5745A3A4148591AABDABF9A08F04
-66CBFE887F0FF82364F351928E7D4779E54A0FF53FD088E0FA50F3047F42AC28
-EC0AFE3DC1F380DA575D618D5CF337900631F57ED0A59EF0C84488FF48B79823
-47F34E75E63D07B10B9DE367258E80C6E5227B9F2BFB79E16AD1BFE9E6707199
-FD35D296B5BC55DEB7F9547A9898C608547C2BBEF1054AF18DECD8CCECE80B8A
-F52CCB190B0626BFBBF59C2E7AC15E8EF0E570610DF4053748E3C8555DD89D73
-942DBD8F1AC6072DFBF74FA57C65196AB859F0E6D4150AA7592E746AAC3E302E
-D406427CF7159AA524780548F603E7AA624E4EDE5870936D037618E92DBF02D3
-D1E9FEB1CF0DEA80D5646E4765991669488028A8B7B9DBECF8286FFE00FC06AE
-EDAE0ADC9E6394A2A330A3BA3E00BFFFCB8FBA98DD7605FE9D7AAFF070A3AE7B
-69593C8B6E0E9D10D1584F23CC19110073E5922B9CF0DD28E4C7D51BE7B76435
-AE678608B03EA7820962F3859970ABDCD860311B6E753FE843FA992C0BF910DC
-B86B86277FE91A964CD34E80E1AC3245CD004CC8BE7F0E704104271660A2C75C
-B9368D509994377616C0B966DB9A1E9FDE2F2D7C577047D6FEF9A79D538104A5
-0DF65A8BBDE8FAE9D3C64D9B4BF3C4E94366FDBA02DF99B7C527BE53D391E8E5
-F0BB566F8A42C4A92A3605C12B8808D657DC68E4F9BD58D26AC06B7E6C046224
-C349FE0EB80B822F171E27051C391B1EEB65E599FDF6076581AE5FD01B6DCBB6
-84A2ABD1E4B3045EFC6CCB27961E8FC6A3EC8FCC97BFB427B82A50098A907B82
-E6ADBD19894DFF74BC7B3798A06501F217811F12567E2F5431F8C3A82D4C5E94
-72A1B18C3CE4795FC1DEA4E7BDB127552F16E4BCABCFF2A574997BF2ED680B82
-8C310E717B81F3FD47906BA609A9833AA4AD9CC095EE3D1140A8126EE55A2278
-3F9FA28FBAA51AEF1691B39039C2D97EE2FC79FFE04ED5AF5921D20C560E4742
-ABA899568CD661FFFEE92D9E8802C2F75271D9D6BD7F5107CC3D03D8E21A40A5
-2F951C89EA84C8F742162989BCBB4FD74A8BB55CF6EF3B1AE5B6760951D5E2B6
-2DCEDC1F15CD0C99DB0E1FA9661EC43DF5DB9D1BFA117EA1CEE98153FDD636BC
-A38ABEA43C5D63BF895F9DE24CE6FBFB74224802BF2A24FCFD2FC8D38B0D0B83
-A8E631D1FA4F6F9B88C67A89B72C3934D6E759072602A05774FAF6C019440AD0
-5317137F3E70E51E3F0DC06262F9909EADF48417A46435076BEE48834C56D17D
-33D1442743D8E3F1733257A8C6BBEE9E5BF7089B28CB17222370714D6CBB4730
-C13BED5DA331A9ED85058910A8944DDB3862C7CAB2868D2D8C8C6B7DAE6705E2
-6F2E5BF45C43508FF638C23185B72E45A20B8F852AD6FB3F98E7B4A632B98B8E
-F49C4BEDF0F4D7701FBD00CA484AF80F5C0D07294E50167511107E75DBFB3175
-FBF983BA6D323D6E1AF9037341461A52F5FD775C9BE3B9A3DB9EA13E278910F1
-87CA56B76729B35336A7DA17265DBBE96C6B0D77AD2C47D4885785BA62C4CB90
-0C486E4DBBE774463897BC9D42007C5AA437FA216EA617659237DA625FD5373A
-335EFCD92D30D84996593F098847F73F1281AE13B97D7FBD19A9C819C4D00110
-BF6D100792D50E15042ED820BFED504744FD088855D37C4A4C3A12CA9344F981
-99DE37602B5F84EFE6452DB3B917D4F571B0E17C48586FC2DAB4481C0F495920
-36A22B2422D232FB3B69D1B77A316A59FD69E4890D74AB4FF9D45657C074664F
-7D0DB216E611F18E2184650ACC94B63C47F14263F522F0869A8BB19599E97058
-8C73C56CF2FFFB2F81D0D128E6C5E90DFB0BACE596E0B27903433DE9EE40179C
-6153768280762BDBCD0E6BD9B3C715E0A150677BE056BFD51DBF5A624F618E7A
-0729AEA869E2079FC2F969DAAE9D32FA705D24AB4D69FCE6678E2B8B7012B5F6
-F5449C2163726624B49CFD0051D7CB552C30F0986E6FDDED2E90F9BDD39F4072
-1263CEA8AC5855D02F651B79C10593507AB630CAA3D0998CD6B0972BEA297DA2
-B7D9EC25296EA7F59925E53F503BDCE2A0AFC64C1A64A29D5160E6B08C71909D
-E297A5CB5A398D7EBB12AAA01D300C70073B39ECD3CE3940DED4F491A872F628
-8BF40EE2F085DF947A28797FB7CA7FEE0C6981C89CC68F322B5E83DACDEEAAED
-66DA926386FF6BBF82109967BD427308F40DDC79ED73DDD5849EBD609DAD4C5F
-719B2D04EB9D04DBF27B40769677188D7670968E5AA3BCED8E5DAE6C201BB7EF
-1621301F49D649C948B916390BBB47CA60D0C3F7CF888DEA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 40 /parenleft put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 63 /question put
-dup 71 /G put
-dup 83 /S put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
-C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
-4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
-12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
-86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
-88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
-62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
-71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
-4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
-63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
-D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
-702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
-4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC2584632973B223E128481FFD5458C
-1D90E5BA815DE9239AED29DBC31C66502FBF95B1BEB72174CDDC64B1A18AB3A8
-18395976ECCDADD00E05ADED05A1116A6B1EA4A21980C0EA58C48022AF810634
-3F540BE1E0857C0316572E489C72557EC92C0811E0A86655F86011EC26234DF2
-33A0F99927AEFD354AFA3929E73C4D1CDCA3D89425D84DEC9D394D8CB277E568
-E7F8A54E3A00B6969C792BDC7A0D1E4C58D0792CB7850C8C6A9A85446484C39D
-C755D1231C42608FEFDA72002F63C15E2FBE3B7E9402112C543CB8289EDEEF63
-D31EE112BB33C63DA84F73215EE783B9D9F0FAEBD7C1949AF55F58703AD93DD9
-AD543DDB096C1F197CE7EC8BBCDCC76A00A5A9E6F2AF056C92481EDE53F52CFF
-8E830A8B6CB970065A8D8687F196E32B8F9F3F2B3C6670983929A77AA2E15AA2
-6DB6EE65CD38A2A8207ECD3A4447F436D0EF0B9445FCF1712D34CDD4ADC9A275
-AEEF2B2CF35CBE6F49B8544DBB38CCE0A32AE15BE2EB7F51E77BEB0C63674424
-EB0486D0912BE4D6ECB15BC2F5CCBD793C0758046FA7BD6C7F957BF96A8EC794
-171CA15FD9F75DB00760188776BE43A48CDBD659E4E66571045A39F49468EE25
-80BD580B907324BF32FF93671E567EFA2D8E0BF3744798A06C247EA4FD65BEE7
-BE9989EAF5B8E198E8F937133E3A8AE287A8DF0E010638ABD9D0BA0A589332D9
-76A126F13D8842E1174019BF663CA592759C4669B1AB0F9667A3AD0C9C310C62
-E2FC83A5EEDF20A3BA66E2ACB093B0F01C0C54EBB878B4CB678A2032B783D236
-C7FA32E2B134B36850379B1F747F1354E70EE251DF57B99FC7FCFFA00BA15340
-AD91C35F48162911D538BDFAD841D6995BEBF07B96D88547B6286D3145E237AB
-6C097A0A612998946401FBAA92A0841A6FCF4678D8481CF415C9BA8C3245B61B
-D829F2B709BC63D7E8C1C032426D1D36BE103A82B0467C6B1DA7CCF7811143DF
-10349AB0D587587E7965230D82421B41C33B8326BFEE60EEA6B1D66C49DC8B72
-74742D9947C3B049D630377A9ACCAF46FA262064E1BA6E861CAC7CB75A259398
-4EE4872F0D120E85F6C9015A3F4EEB5DFA7E450ECC2261752438425907484021
-5B2F86BDBD569EA57802F421CF273A0409A56C76F551B2F60D845C4AD9530EAD
-21DC805903922C8B1555C690DB54D28E029CB67AB023E617CD9782F8C385ABDA
-D3CE300FEF213422266C4A6328536B67697DEF9298F83B14AF554F52A675E0E1
-0E08576368321BF31F96391A6CAF3E30D6E887D74DC1B1A4F144DB945AA53144
-3D1C53E9DCF6CD6026D2AA1213B92473235DE61A6EF0A355CE4B9E7E91F59562
-953253A41B658B9A368A6CDCE3F9AA5BF034BF3C16B9C2ADD26651799CEF4952
-E85131F539A0729F2CA8690E935B074B202241F06EC07BF6141D188FCE7026B4
-66A5431CC867B6892460D8108F2F07C9FB0082EFEF87FAC7710AD0368D54D25E
-49CE016F8996181E4F34DFF29D8E897B239C67FDA93FBE739D85AC448B58B60E
-87AD878A34FC239E53FC43402AECF4F56FA8C4A0DBB40E5F5566424482ED3A8C
-97C5B6CE362A2A2BB7C6EC8DC4D4ADE9F6477E52960EFD6EABDAEBE710A8CF10
-5F2DECAAC2B970F5D3D039FD7728A784F3CDBED6393A42FDF06E7FAB889D5247
-8CF1696852E057F28D75B553496F0DFE7E38207C0C4BBA87AA3EC796B7870AF0
-F66EE303428DB37A919F6D4294657A0069B5A4654A5D86AC2652BAA95C11D1DA
-60C8B4F8E9F2B629F5A403C207C4521E3B7FBD24DFE37E30E8A8A7DEEFFACB23
-5A567A89F43B4F4D28307D573C9AC5A8DB3F61F1BF1347B3D49839B935BE0671
-9AD4EA0D75430F5B609C8F747321C19ADF63A1CFCB0C733954A9207DFD99193D
-6A1C8181C6C438B6AF057E21AFAD19F31B962B356F1AD271E6F7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 45 /hyphen put
-dup 46 /period put
-dup 50 /two put
-dup 52 /four put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 83 /S put
-dup 90 /Z put
-dup 92 /backslash put
-dup 129 /Aogonek put
-dup 131 /Ccaron put
-dup 138 /Lslash put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-dup 197 /Aring put
-dup 200 /Egrave put
-dup 202 /Ecircumflex put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB9685462A8D186BFB195D91EE1109A9CB8BA9FE46114B4834595CA6973C
-7B5548E265972854CB21F9A13E3D8547644471145C0A7B7A6792298C740DB643
-56C099DFC3C658095EFFDB41A137F739897DDC9F0BD87094ED2C21EC501CB243
-B9A75B978F399215FE2EA1DD52681513E5040B6FE8E50B513F3F5827652A0C50
-594BC927681A4B85236136C4A980A62CA1E3B89862EE64378E0F255B34CCA86D
-B877F95E2DE6AFD3DCDF7EEC40BFA23C3E7271BEF2C4552F49F59D629E51B8B4
-E7417B181BC8D460EB6518910AD4722CB9562A9BF80002A91F4A251DFF1C031A
-6806D1C498581E9A00F39FA8E1AD778FA855337127C6068B9C7924ED590063A5
-4E4F941E744568F5488964D6B122E008C4BFA9DB26BAADFA11D7B81B16245C8C
-F04EEA395CC080171DB42A817743226635A3A3DEF727056EBCF0C77692190E41
-BDCED59FE781DABA153624E7B1C8ED1FBE5EC358BFD2DD3C150EA2DA8179B45F
-8D09D1F687437A337643CBDF9A16487327DC3C2D168C150982215B6DA065A4EB
-6E539DBFEB15B3836BDB5E8A19FD01D984C301239B6DFF467CA850631779F7B2
-329937C757244B1E80EBC5098C3C5604D0F3C6B770ADA4AABD72C2110E9C6E72
-4CC33E25518FAD3E211EB59728E316C326E16CBA7735B57748AA42EC8C43CE8F
-FC9D1AEB17D8962C9926BDAD1AD4AF852F335A9B6EDE657419792C008F42B604
-C3343DCF7FF63218743DCB29FDCD3A079BE95A6FC8AD660D65DE290EAEA4A0A9
-F78170889394B3C9F73E00067289D8BA8D6EFE55742F76FA4A3F1D73D3F7D5DF
-D75E50D5832B28701C81C143F623AE15FF2AB2E20C666F3F2E183B6F14560830
-4C84B6D6F5045EC8E3E61244856C0EF1162F9E231DEC58275F977DCC558E820D
-AB918FCB9EBA14713CDB2DD0E54BE4F2FFA915DB590EF21EE2C1B69F6F554B83
-BE133269E798BD2E4883EB6D6701D9BD11323EAFEFC1801FCBACF0CF8B8F8EEB
-EE82D396F2A3B3A73860BCCC022BF75EE12D20959A5997470888384710FC7DAF
-01580CE9925712FB15486A51F72C9C2D4E2B0DB1E5A1B3E86C1E9EC0199F7454
-8D1C9A49D9C766033200FD0BDAE4E800FD6533C379036925E9D9D9E6C1213988
-B2899461AFB63550F2A7E0DCF66CDAD1CA6836E9039D008984D6864E5D964CE7
-8022D710BCBFEE6A59B9B34DA0CB1E323813309CB7015A2E9DD9CD3CB4F2E86E
-3DBE1096A3E901FC2EC5EB593C89F4FCF8F01C784A266DFA0579EAA5A7F4E7CA
-50F4A12C26EAB09A63470DC0CACC9D5B98ECA75CE333C1F6ACF79B6EF88FE126
-95EC06F1332A1865EAF1316BFAADBA913556F35DECF6FAB4303B76D12F0E2350
-45B8626D4F48D7FCFA6D64F94E591CED467A817D4B14BE110E7090BB6DBC7C73
-385184FAE53EE1785D4B928C2D3C21A04A8232D0A84D7A992A2690F33B98EB48
-DEC7B9BD9FFAFC04E4E70BBEE71CA2686BAB8454D5CFDC8D56EC8A9373E5B354
-990DD4AE5DD1E1D8F889E679AB5E5611F3ADCEB7A9FFA31823B580081B223542
-0FD6E15BBF3D47D3E9289B5F4B610CD07DCC76866B2A25B47130F24167D8C3F2
-F91D8423B46D64DA82AD74FC365DEA4DAD6F272745D68529772DD689CFEA6042
-7A85D710E0C35F5B503B3278946AAA7D1D5278744DF2B9B254C074CF99003F15
-57B7979B9C7E61656FE6D00F3E871684AF08EE786E22A19579F2BFE1C5D08D94
-FD1D2A9B7D11AFA6EDB8194DDA6901D7CD0B50974D0CC24CEB074C40D4363B4E
-68146A833AE22AEF0DA100357050D8DDC725E7A893DAB1AC07C4E38456787364
-89BE5C0400BC295EE9504E97C3023B6729331CEAC20E2292ED625D30ECCE324B
-58941E79BD830362C3A2A2F63DDB7E2CDA94DF2AC0F91C0CA120F700432D751D
-9D3FE51D9D7EC0B9B914DB5485C187CC7A95A4192331018562E8798B7FD14C48
-BC09477CC35F855D4A16FA09ADD2A566538E4529F4CFC1AC58DCAB048D5E2D67
-7742AC7130538C071F896A4E2087D273D71EC87EC61B9A5FB73862BA7CA57CC2
-CB5D9252A089A8312CF5A686C9002A805F8FC7D034E7A0385A33645A63B74620
-103535381525D7E90F5CF1E1677C4B945D3C077974B769505E0704E07139CABA
-9B6630F6D21EFF4085B9D23E09872EF3CB9574B9673470BA040A32D6AAA66F72
-130A6F44BF1BD0DC620109C103595819FA81AA13063AFD011F4D2028266551CA
-9AFD20CC6280A290087C0E37C7470D59A23A0B2537A3663ABB526CB6FF04734F
-F41B5F9B43E7465251C8A75D07E77A5C387D91D8D5AC3F293E1C65E8D4624072
-55E9A11A36CDCA286E2877E89FCBCDEDBB49FA0E002C8EC33208485FE7AF3543
-AF6DA7D771D8F597B4EA7652A25257962F5FE182D7AAF823A8E89B5F3159A6AE
-AC3CB9930DAC7311423D447243A4C78C216D1128A94FCFAABCBCB88D84ABEDF3
-E31A6447AB94F374F8AC31DC051A2BDAE241C11E604CE1F3D1F8A23493071A0C
-E71F68BD86D3B1983944D97BEB31B458F642F834B7A7A869CD18F9F9B79C883B
-2B91FB1BA8F71112547A7D7D9D2F7EE52F5DB930CC7B6D0B78C031DD50549F70
-0C21F74EFF50C9BC76F115054D8B91AC9480DAFAE67331D7D4521240C113BCAD
-E6383F30E957DC259A2B258B6AC96B24AB89D86A46886113A8970B40252EB8C2
-60BA8F921197C488C7CE6639C904312EA22508105EBA7B26F5153A4A9C6CE061
-1606F965A610A2CA59A5B4B84A9D2810F32EB3813FBF9946AD4B43AF011E56B1
-1C7BC7D64D06EC98073D64F834F60310DC880DD87C63BB36AA2B2E2458A6DEE4
-2F7F0061427661BD2F495FF69F23485A2064D92586DBF6821B8BF18E6294E2B5
-3E999BF796F25984B4624E705CE53F869E6A665C22A2270ABB03D5A706E3B5BB
-FCCA5CF090EBC1E53A69F1ECE5875892D7FBA6A727F2CB24A46A139E7BD165F9
-DCF14293A62B78AE97AE9CA76C2038AE8640C219C6D2446859F237F8B871F433
-F7E98BA78C2B52608302D9988C52B0719647715672C9C877B7E4F261A429E2DB
-7FD30FB8A5681BFFDADF38DF5F540BFDBCBC68B3731F75511339705F2B882666
-CA282472D3D35DDB471B77E854F5876E2A41C63D31AEA592479D4BB8B31C6416
-5ED45222F39960CFC268198EFA04375387505247D09E986A9902820D72983925
-9713A5F51460211A17CCFC09188158AE2D823315A38F22882BAC40518720D034
-976CAA557E963A39B4715EF762CEB6A026E523F6212384716FF3E90C10298B47
-2AF7539E7E11815631124EF302E84EC639BD4EA95893D3590BCFF1D1125F6415
-9A7DD06067B9FCD7174736A57F1F11F8AC40BE09C8E3760C353120CB155F93F1
-84FC7DAEE9D12FDE3B37F6BE5F347D6CF026AE3FC17A8CDBB183E2373E4626A1
-6E980E2D52E0C17A76B8E42FB48329039C68638916020A8EDC659EBF0233B5AA
-D866EACC35D756882837027C69AF03B5103CE9223B9D6EA655D50F204C3F7277
-2E6DE152B244DB2F44CB088236A31CC9100531A62380C2BE607A1C170FEB4EAF
-0C3D1AEFCAFDC120FF4C851DDAC857CDBB78521A97C91B7417B92B9CD541D98F
-100A6C501E0A57DE9BE6F6B5217644F8855384A09BC0AF8668EC2E50DE63123F
-85316B1F9F215FE93F2A9BD2F9EDBE2FAC02A4FE47E81007CD148BB5D4E86241
-AB753C3221CF4744AEE68E5CF929269A0626A61EA1ED78BFB6343488EFCBE1B9
-77EC4CC4680AF3CC4323F9CC2B62339B839947E1E27B831EA0A8B4ABE1A402AC
-E92CDA9B9ACC156A073647F498E6288251B27B781C476A196840998C1F47473E
-C4C62D25B1ED56BCF537451642253CD69772FFCA61972A2CBAEB2576D1E0F8C5
-424FE2B3DBC0742B35F3BCC49112BA83C7D648D109C9D48182213F1B48224627
-B7762296902229C264B1C0AF9A99702A8D11CE809CC2E4642E75FF143F980BA3
-91DD9EF780B92A7377F932E280F44CBD0A30AC10E0ED4AD82E3DFF6185BCE800
-C064EED575F8C7A0F18B2393C3ABA2BE74DBCC42B627C72EF5D354BDA1425FF6
-58B698F37B7B59226CBC34EC86D24AB4FE5D3A51A2AA1010508D9251DA6778E9
-48D28B8F613D10CD545A4CB32ACE352C0EB9D18834E09B75A2A14E00DFD63294
-8DC202C0490E2B44BD08F8EFC3D60C733B6908467783997CE8BC6B8AA4D69FD5
-055351F7123E9E3F3264DA88E92C5E780199559258BDDA7CD4A1AD4CACBEB2E1
-DD7FC79766F0ACD89F8E85F1C64B0804CCA22BDE79F5C29D8E74DEF849C1DFFF
-95D2215212513CEA6F2C00C6B9B53A0DD1602A4DBB136BFBA5E8A9C1D5460FE7
-C7E75AEB19A58643F81E3C919AB6DBDCBC8D5A6D7D19B17B52371E4712A89839
-4EAD3511F8967789B89DF60E196CF6FBB84D9F7157923AF29EBB029D4988747C
-E94A7F108E1F356E29AB1C0B2BACE005E1D9D45053341A995E2F3F749919111F
-9718
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 67 /C put
-dup 83 /S put
-dup 97 /a put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
-E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
-BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
-72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
-5EE89221BFD28AE8117B69C0EDD6A58ACDDAE1AF77CC8602B0803A063A78E590
-6228BEAD4031FF82DF1C414753313B1CE7A0FEF2546F18F026DB52C7B9D56FA9
-23145E410B55F2655D12AF85D3291DAE7E838BDFA9A27F61407B392A4FBEED5E
-13E9176E7D52E4560C2FED71C6F18977226B49C37DDEEE11AAA4C46FB141884E
-934DBB9595C82C9FDB8E6C8C4D6A223490D0AEA24EDDE28E6D64F7ECEE30F0C2
-EA32F09B32CC34C36090E5896EC05400FD932A5DE6D44840E453F70AE55A0A09
-9146720A839B0CCDC4905B7C138792A09C7BE08D9FBC35566A70C5485ACC6988
-E11F60FC89F391E7AEE3D61FD567E6C4C2525D7F05A3B2C05CD88821862ADC60
-B9F25AC90893F79C4D1BD69AEC40E2FF06F0F32258E705E65D98A4770EE07815
-F797C2674BFE0B7A3B73A688930A9B6DBEF337D4942F98CB509A10544664C418
-47BF2D9FC9A6E07701488BDBF8AE664F40DAAC18009EF4059E9EC0938F4B65D0
-252C92989C09FA3061AEFE5C9C70A03744EBC1611583BAE9C0A3B2A937C26AFC
-9D6E889616B63DE1BADBD472DB792B10985737ACF5AB54CDD888E11C369EEB5B
-70A6F9F90FFE8BB6D869B2E73975E27C799EB04AAD217C1E9FB5C370FF95D282
-33FF883BB8FF49402A7C5B7EB5D4D4B92E4473E2BD66F6E8C97420B2B4895806
-0EF5F860E80248FC251EC656BE08757E9CBB69EDA5482C95B1B2A9DCB2E0DA3B
-88FEAE4D89D8D0C76B8843BDDDB1083500E68E2B1759B4C6B88009240160DF4D
-A93CDAF97714B8F7316834CDCE52194E8DEB837AF42FE7732D236DA764C37750
-A0512EA79E41972BFDB345E48906BFBD65B52CBB4BB2488825AC42FEDF0DC62D
-51A7EEF82E5E5D210CA341F0341116EC0E30E639289584EE4267EDC27BC77BD2
-3BDC306EEC0220F4F2EF8A2692FE0A72486FCD2BEB81968807E082F3783D7101
-861AA446FC0D31C6E327721D38F0B033901B72532528F6E0BD824DA390315E07
-B547182C8C9C7FCA3704E8CFBBEFD2755C288602B31576376C172FB8FC99F9A7
-4F34CBC57ACA336C94A0DE922957BDCC3D95D7EB62F68A58CC23DFBEEF48768A
-48A5BE9AAAEFE1929D0662229431677C713C631DFAFF8D39CE04B4A7C36FEE5D
-CF506D9407ADBB50E30C7E92E9C3E41F72C9A3C47FB0F1247E493BD3DFE81CD0
-E85B3634F20D53B49B161B042EBBA935C0E0A6AB565ED44E44B2843E581D53E0
-83D099E0A7FF88B0C9002A84172FA6D6BD9ED95E167FEF868207B7895C5F18E5
-81CD8AA7E1260E2CA141F5C6B78DD8D745A3A9EEA2B3825CA8E53827C51D3BFE
-9F6604951244FF5B09E9C6D2A3167E202F3EF55CD74E31796481931EEFB7DC43
-3EF68519F7648E007682208E87F41916555261748F6CD6BA8BA548C482E88A60
-53BF3E0AFF2E3BBDAF3522F1B41A81FB3BFE26B4584C8E32AA147C917C3822DB
-BDC91E06E7E46DBACC29FD6190C4F294D8DB9A9471BCC6BDA32C71C13C48DAC8
-AE3D3F144294904FF608058F0B543A2DE3186AB08A3D930C529F7E848F71BCD6
-104CF90D1828E1361A9487C23A80EFB9261573B9F234B0B43BCD35EEB3F6B0B3
-0909C29884F801D005A1026658E2893D3F4DC5C5C69671F759DC0F315738275D
-FF02FC8AF9EE50C8705DD1E7761EAE3618345A611558810C0C8F14285D5E4D32
-9F74E994984F77293882016123463DD07C43E0D66FC05AD4DB9F1AE0FC67FBA9
-C908B5A2AEC5123590D79092BB6041A65D70A5B8A374E7EBBB31B97CA1076F2D
-AEF0C22D77E79A16064C2265CC78089DC98452E95E613A89714B52180C4B4AFD
-838877ECA6DBEF3CC7D20D1EEDE3929E3F94B6A63718DB669427B91CB2803886
-08DE53D1D22FD62C1A7EEAD41FC68759FC8A54BBD929E1E191F1CC18309AD684
-C9C51D1A7252C03BA4E1942289E536F4E191C0051E20235FF8EE23438BD00C5E
-27CE47EB4E4DCEC5BEAFFA95984B177C0EA5D1A64F75D746840A597A0B477BDE
-63C3EF3C4E1879B2C052D923428B003811AEB03FEF3B7C8D86F1E51394ED55DD
-14F3F9EF169F5509BAD5C9DB99FCBC458D7037A46CAC664064763210A0D43ABB
-CFC0A9C8B3ABBCE0B75A6B80CF500EFD043CB0955D959B5C417376A576447E7B
-E076D4D1BD4A36693174A43A34771A2EF4A089FB0CE8EB0E285E19824049AABF
-161FD0E98A55E0037D7FD4C811926623756E0E1F3AE388F299567065BC55D7BE
-6FFB5907015CAE18E4E2C86F9F99B77CB3159B46E1A61A558969D621714D303A
-41DCBEECD2D97F216AEAC845C4A45BE9AF143827715A1FE671847EE2F8DF2EDE
-5F89D890CA410D0614A3A0349D4173E50EE0F4D97521CB974E2DDEA9073D77C4
-DF49EBC8F2B26243020F9F619D4BA0984BC74BCCA2C9465AC2642896E817C076
-52891681283D056DFCA9157458A4D18396BF0AF34B7926CDBE1066213E111126
-5A7FA968596D73A578EEB21E4F84A8177757F63DB6A8D969D605D073C0381E14
-DDCFD706CC6ECF3BD35AA8C751DBFE15E52586D0953506F5A1049F072612E814
-01D3376BFFCDD837B7AC2F97D1A2291FB1DA5C1E7B1045388CC8FC9625ECE3A8
-8ADD7641265C805C4605C0459005265339F3E488BCFC3444ED6069FCECD621CA
-6483EE193B1FD0EAA7B8527DE12825F4CDA3A2539D89ED8D07454A08F6709FCC
-E6E2A69DE1A16232E7303A0D3BEA6DC655BB977A09A301D875A8DA34AB354552
-F1148892767A1CFF8DEE1593F7A40BFD77A047C9B3A25890984FCF189E80A748
-1A7B79EA99649053B3A8B3FB1116524C8439589C3030AB7875CCA1ED6738CCEA
-0852662239E33797AAA0519540A17CEB94124D499F06219B7AF2F410AABFEFA5
-86BFF51D4622AA5D7873C77E016AD925E5D4B2431D8423BC9D56000F7B61DFA5
-46637C42EF5160CC4C1DB7E0C24C604579B34F8C063E011E0FD306A7AB3B23ED
-7163FA717AEF2908F657EB8AE94ECF91
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 160 /abreve put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
-EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
-3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
-B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
-16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
-DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
-A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
-DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
-710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
-D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
-19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
-852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-TeXDict begin 39158280 55380996 1000 2540 2540 (imp.dvi)
-@start /Fa 206[163 163 48[{}2 316.314 /CMR9 rf /Fb 161[351
-137 36[176 176 176 176 176 176 176 176 176 48[{}11 351.46
-/CMMI10 rf /Fc 132[176 5[195 137 139 138 185 195 176
-195 293 98 2[98 195 176 107 156 195 156 195 176 12[254
-2[273 239 14[264 6[98 1[176 176 176 176 3[176 176 1[98
-117 98 2[137 137 98 19[176 176 18[{}39 351.46 /CMR10
-rf /Fd 138[229 5[206 229 1[115 2[115 5[184 1[206 25[324
-3[298 67[{}9 421.752 /CMR12 rf /Fe 141[312 1[405 364
-405 607 202 2[202 3[340 3[354 31[551 25[202 39[{}11 728.927
-/CMB10 rf /Ff 59[1125 112[281 11[450 7[0 8[169 1[169
-1[169 9[0 30[0 0 0 6[0{}12 562.336 /TeXMUSIX16-Regular
-rf /Fg 53[1125 1[281 2[2249 1125 562 56[1125 6[562 1[141
-36[158 1[158 6[351 9[562 1[562 7[0 0 9[211 1[211 3[0
-0 3[0 0 30[0 0 0 6[0{}25 702.92 /TeXMUSIX20-Regular rf
-/Fh 138[189 117 1[148 1[180 180 198 4[108 7[180 13[198
-15[251 67[{}10 351.46 /CMTI10 rf /Fi 95[0 160[{}1 702.92
-/TeXMUSIXSPX-Regular rf end
-TeXDict begin
-a4
- end
-TeXDict begin 3 2 bop -1540 3699 18628 15 v -1540 3875
-V -1540 4050 V -1540 4226 V -1540 4402 V -1540 2082 V
--1540 2223 V -1540 2363 V -1540 2504 V -1540 2645 V -1540
--26 V -1540 149 V -1540 325 V -1540 501 V -1540 676 V
--1540 4402 15 4436 v -1716 -341 a Fb(30)-1540 3253 y
-Fi(\240)-1540 3868 y Fg(I)-1487 2497 y Ff(G)-1540 494
-y Fg(G)-960 4219 y(2)-957 2356 y Ff(2)-960 318 y Fg(2)p
--351 4482 15 615 v -350 3868 a(\007)p 728 4570 V 729
-3956 a(\007)1838 4922 y Fc(7)1929 3903 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.00002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 1929 3903 a
-1806 4658 15 615 v 1807 4043 a Fg(\007)p -393 2785 254
-15 v -392 2926 V -349 3252 15 334 v -348 2919 a Ff(\007)p
-686 2785 254 15 v 687 2926 V 730 3322 15 334 v 731 2989
-a(\007)1905 3172 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-15.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (50.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 1 N end
- 1905 3172 a 1764 2785 254 15 v 1765
-2926 V 1766 3066 V 1809 3393 15 334 v 1810 3059 a Ff(\007)p
--189 2567 15 492 v -350 2567 a(\007)961 2666 y
- slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (-0.79999pt) GD N /S2brk
-S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (50.0pt) GDAR N /S2dir
-1 N /S2dash 0 N /S2adj 1 N end
- 961 2666
-a 686 2785 254 15 v 891 2778 15 492 v 730 2778 a Ff(\007)1891
-2778 y
- slur@Dict begin (2.0pt) GD S2hgt (-4.0pt) GD 1.6 (2.0pt) GD M S2dir
-M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
-S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1891 2778 a 1891 2778 a
- end
- 1891 2778 a 1764 2785
-254 15 v 1969 2778 15 492 v -83 w Ff(\007)-523 1381 y
-Fc(Ah,)p -147 406 15 615 v -350 406 a Fg(\010\000)2758
-4834 y(\\)2916 4922 y Fc(6)2990 4043 y
- slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2990 4043 a 2990
-4043 a
- end
- 2990 4043 a 2885 4658 15 615 v -104 w Fg(\007)2834
-3059 y
- slur@Dict begin (2.0pt) GD S1hgt (-12.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2834 3059 a 2834 3059 a
- end
- 2834 3059 a 2843 2785
-254 15 v 2844 2926 V 2845 3066 V 2888 3393 15 334 v 55
-w Ff(\007)2716 2848 y(6)p 2843 2785 254 15 v 3048 2848
-15 493 v 2 w(\007)2707 1381 y Fc(mia)p 3089 494 15 572
-v 3090 494 a Fg(\()-204 b(\007)3542 1381 y Fc(for)p 3851
-582 V 3852 582 a Fg(\()g(\007)p 4409 4395 15 703 v 4409
-3692 15 1617 v 4409 669 15 703 v 4927 4272 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (3.49998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 4927 4272
-a 5008 4131 15 615 v 4805 4131 a Fg(\010)7958 4131 y
- slur@Dict begin (2.5pt) GD S0hgt (7.5pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
-7958 4131 a 7958 4131 a
- end
- 7958 4131 a 8056 4131 15 572
-v -105 w Fg(\007)p 8819 4131 15 533 v 763 w(\007)p 9581
-4219 15 583 v 9378 4219 a(\007)8056 3560 y(\305)8101
-3562 y(\305)p 10343 4307 15 633 v 10140 4307 a(\007)p
-4762 2785 254 15 v 4763 2926 V 4764 3066 V 4807 3129
-a Ff(\010)p 4765 2785 V 4766 2926 V 4809 3463 15 474
-v 4810 2989 a(\010)p 4762 2785 254 15 v 4967 2778 15
-492 v 4806 2778 a(\010)7853 2638 y(?)p 8776 2638 15 387
-v 762 w(\007)p 9539 2708 15 419 v 9378 2708 a(\007)8776
-2251 y(\304)9184 2271 y(\304)p 10097 2785 254 15 v 10302
-2778 15 451 v 10141 2778 a(\007)4295 1381 y Fc(-)332
-b(tu)p 5008 669 15 572 v 5009 669 a Fg(\()-204 b(\007)5222
-1381 y Fc(-)147 b(na)p 5770 757 V 5771 757 a Fg(\()-204
-b(\007)6151 1381 y Fc(non)p 6532 669 V 6533 669 a Fg(\()g(\007)7049
-1381 y Fc(se)p 7294 582 V 7295 582 a Fg(\()g(\007)7675
-1381 y Fc(l'ab)p 8056 494 15 615 v 7853 494 a Fg(\010)p
-10901 4395 15 703 v 10901 3692 15 1617 v 10901 669 15
-703 v 11296 4922 a Fb(])p Fa(10)11419 4535 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 11419 4535
-a 11500 4395 15 615 v 11297 4395 a Fg(\007)11296 2708
-y Ff(\011)p 11254 2785 296 15 v 11255 2926 V 11298 2989
-a(\011)11128 2848 y(6)p 11423 2785 254 15 v 11628 2848
-15 493 v 170 w(\007)8914 1381 y Fc(-)1346 b(-)673 b(bia)p
-11500 494 15 572 v 11501 494 a Fg(\()-204 b(\007)11297
-406 y(\000)12767 4922 y Fa(11)12873 4395 y
- slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 12873 4395
-a 12873 4395 a
- end
- 12873 4395 a 12971 4395 15 615 v -105
-w Fg(\007)13001 2666 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 13001 2666 a 12725 2785 254 15
-v 12930 2778 15 492 v 12769 2778 a Ff(\007)12230 1381
-y Fc(a)p 12434 494 15 572 v 12435 494 a Fg(\))g(\007)p
-12971 582 15 616 v 12768 582 a(\007)p 13508 669 15 650
-v 13305 669 a(\007)p 14046 757 15 684 v 13843 757 a(\007)p
-12476 1381 2115 15 v 12971 98 a(\312)13467 148 y(\312)12971
--33 y(\312)13467 16 y(\312)p 14326 852 317 15 v 14583
-845 15 718 v 14380 845 a(\007)14916 4922 y Fa(11)15039
-4535 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-4.00002pt) GD N /S1brk
-S1hgt (2.5pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (0.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 1 N end
- 15039 4535 a 15120 4395 15 615 v 14917 4395 a
-Fg(\007)15995 4922 y Fb(])p Fa(10)16100 4395 y
- slur@Dict begin (2.5pt) GD S1hgt (0.0pt) GD 1.6 (2.5pt) GD M S1dir
-M A S1x1 S1y1 CP (4.00002pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 16100
-4395 a 16100 4395 a
- end
- 16100 4395 a 16199 4395 15 615 v
--104 w Fg(\007)15001 2778 y
- slur@Dict begin (2.0pt) GD S0hgt (-4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 15001 2778 a 15001 2778 a
- end
-15001 2778 a 14874 2785 254 15 v 15079 2778 15 492 v
--83 w Ff(\007)p 15953 2785 254 15 v 16158 2848 15 493
-v 15997 2848 a(\007)14777 1381 y Fc(sde)p 15120 757 15
-615 v 14917 757 a Fg(\010)p 17073 4395 15 703 v 17073
-3692 15 1617 v 17073 669 15 703 v 15663 1381 a Fc(-)794
-b(-)17087 4395 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 4395 a -1540 10242 18628 15 v
--1540 10418 V -1540 10593 V -1540 10769 V -1540 10945
-V -1540 8625 V -1540 8766 V -1540 8906 V -1540 9047 V
--1540 9188 V -1540 6517 V -1540 6692 V -1540 6868 V -1540
-7044 V -1540 7219 V -1540 10945 15 4436 v -1716 6202
-a Fb(33)-1540 9796 y Fi(\240)-1540 10411 y Fg(I)-1487
-9040 y Ff(G)-1540 7037 y Fg(G)-960 10762 y(2)-957 8899
-y Ff(2)-960 6861 y Fg(2)-367 10674 y(\011)p -410 9328
-296 15 v -409 9469 V -366 9532 a Ff(\011)p -408 9328
-V -365 9321 a(\011)-367 9181 y(\011)-584 7924 y Fc(gno.)p
--420 7395 370 15 v -366 7388 a Fg(\011)p 1694 10938 15
-703 v 1694 10235 15 1617 v 1694 7212 15 703 v 2276 10674
-15 615 v 2073 10674 a(\010)p 2030 9328 254 15 v -1353
-x Ff(\010)p 2031 9328 V 2032 9469 V 2075 9865 15 545
-v 2076 9532 a(\010)p 2233 9181 15 492 v 2072 9181 a(\010)1865
-7924 y Fc(Que)p 2276 7037 15 615 v 2073 7037 a Fg(\007)2073
-6949 y(\000)2768 7924 y Fc(-)278 b(sto,)p 3536 7212 15
-572 v 3537 7212 a Fg(\()-204 b(\007)p 4264 10850 15 615
-v 4061 10850 a(\007)p 4018 9328 254 15 v 4019 9469 V
-4062 9462 a Ff(\010)p 4020 9328 V 4063 9795 15 474 v
-4064 9321 a(\010)p 4222 9181 15 492 v 4061 9181 a(\007)3897
-7924 y Fc(que)p 4264 6949 15 615 v 4061 6949 a Fg(\007)p
-5294 11026 V 5091 11026 a(\007)p 5252 9110 15 492 v -1916
-x Ff(\007)4644 7924 y Fc(-)209 b(sto)p 5294 7037 15 572
-v 5295 7037 a Fg(\()-204 b(\007)5563 7924 y Fc(m'ac)p
-6023 7125 V 6024 7125 a Fg(\()g(\007)p 6547 10938 15
-703 v 6547 10235 15 1617 v 6547 7212 15 703 v 7129 10674
-15 615 v 6926 10674 a(\010)p 6883 9328 254 15 v -1353
-x Ff(\010)p 6884 9328 V 6885 9469 V 6928 9865 15 545
-v 6929 9532 a(\010)p 7087 9181 15 492 v 6926 9181 a(\010)6516
-7924 y Fc(-)232 b(co)p 7129 7037 15 615 v 6926 7037 a
-Fg(\010)p 8586 11026 V 8383 11026 a(\010)p 8340 9328
-254 15 v 8341 9469 V 8384 9462 a Ff(\010)p 8342 9328
-V 8385 9795 15 474 v 8386 9321 a(\010)p 8543 9110 15
-492 v 8382 9110 a(\010)7681 7924 y Fc(-)484 b(ra:)p 8586
-7125 15 572 v 8587 7125 a Fg(\()-204 b(\007)8859 7924
-y Fc(c)-10 b(h'al)p 9314 7125 V 9315 7125 a Fg(\()-204
-b(\007)9606 7924 y Fc(-)35 b(tri)p 10042 7125 V 10043
-7125 a Fg(\()-204 b(\007)10506 7924 y Fc(ca)p 10770 7212
-V 10771 7212 a Fg(\()g(\007)p 11295 10938 15 703 v 11295
-10235 15 1617 v 11295 7212 15 703 v 11877 10762 15 615
-v 11674 10762 a(\007)11673 9251 y Ff(\010)p 11631 9328
-254 15 v 11674 9725 15 474 v 11675 9391 a(\010)p 11835
-9110 15 492 v 11674 9110 a(\010)11094 7924 y Fc(-)255
-b(deo,)p 11877 7300 15 615 v 11674 7300 a Fg(\010)p 12907
-10762 15 572 v 12704 10762 a(\007)12908 10191 y(\303)13080
-10200 y(\303)p 13636 10850 15 623 v 13433 10850 a(\007)14192
-11202 y(Z)p 14364 10938 15 615 v 14161 10938 a(\010)p
-14118 9328 254 15 v -1547 x Ff(\010)p 14161 9725 15 474
-v 14162 9251 a(\010)p 14322 9040 15 492 v 14161 9040
-a(\010)14160 7212 y Fg(?)14638 7924 y Fc(c)-10 b(h'al)p
-14888 7432 15 572 v 14889 7432 a Fg(-)14889 6861 y(\007)15385
-7924 y Fc(-)34 b(tri)p 15617 7432 V 15618 7432 a Fg(-)15618
-6861 y(\007)16285 7924 y Fc(ca)p 16549 6949 V 16550 6949
-a Fg(\()-204 b(\007)p 17073 10938 15 703 v 17073 10235
-15 1617 v 17073 7212 15 703 v 16793 7924 a Fc(-)17087
-10938 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 10938 a -1540 16521 18628 15 v -1540 16697
-V -1540 16873 V -1540 17049 V -1540 17224 V -1540 14905
-V -1540 15045 V -1540 15186 V -1540 15326 V -1540 15467
-V -1540 12796 V -1540 12972 V -1540 13147 V -1540 13323
-V -1540 13499 V -1540 17224 15 4436 v -1716 12481 a Fb(37)-1540
-16075 y Fi(\240)-1540 16690 y Fg(I)-1487 15319 y Ff(G)-1540
-13316 y Fg(G)-960 17042 y(2)-957 15179 y Ff(2)-960 13140
-y Fg(2)p -178 16954 15 615 v -381 16954 a(\007)-382 15460
-y Ff(\010)p -425 15608 254 15 v -382 15960 15 501 v -381
-15601 a(\010)p -221 15319 15 492 v -382 15319 a(\010)-541
-14204 y Fc(deo)p -178 13316 15 615 v -381 13316 a Fg(\010)p
-810 16954 15 572 v 607 16954 a(\007)811 16383 y(\303)953
-16390 y(\303)p 1509 17042 15 625 v 1306 17042 a(\007)2035
-17569 y Fc(6)p 2207 17129 15 615 v 2004 17129 a Fg(\007)p
-3605 17217 V 3402 17217 a(\007)2004 15390 y Ff(\007)p
-1961 15608 254 15 v 2004 15960 15 571 v 2005 15601 a(\007)3401
-15319 y(\007)p 3401 15916 15 597 v 3402 15530 a(\007)p
-2165 15249 15 492 v 2004 15249 a(\007)p 3562 15179 V
-3401 15179 a(\007)2004 13492 y Fg(?)2573 14204 y Fc(dal)p
-2702 13624 15 572 v 2703 13624 a Fg(-)2703 13053 y(\007)3321
-14204 y Fc(pa)p 3401 13624 V 3402 13624 a Fg(-)3402 13053
-y(\007)3811 14204 y Fc(-)120 b(ra)p 4099 13712 V 4100
-13712 a Fg(-)4100 13140 y(\007)p 4798 17217 15 703 v
-4798 16514 15 1617 v 4798 13492 15 703 v 5365 17305 15
-615 v 5162 17305 a(\010)7170 17569 y Fc(6)p 7342 17129
-V 7139 17129 a Fg(\007)p 8331 17042 V 8128 17042 a(\007)p
-5161 15802 15 413 v 5162 15390 a Ff(\010)p 7096 15608
-254 15 v 7139 15960 15 360 v 7140 15601 a(\010)p 5323
-15249 15 492 v 5162 15249 a(\010)p 7300 15249 V 1977
-w(\010)4682 14204 y Fc(-)321 b(di)p 5365 13228 15 615
-v 5162 13228 a Fg(\007)5575 14204 y Fc(-)162 b(so)6052
-14364 y Fb(^)6286 14204 y Fc(an)p 6150 13755 V 6151 13140
-a Fg(\007)7262 12912 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (16.50002pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (106.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 7262 12912 a 6839 14204 a Fc(-)183
-b(co)p 7139 13667 15 615 v 7140 13053 a Fg(\010)p 9116
-17217 15 703 v 9116 16514 15 1617 v 9116 13492 15 703
-v 9479 16954 a(\011)9479 15460 y Ff(\011)p 9437 15608
-296 15 v 9480 15601 a(\011)9479 15319 y(\011)9585 13053
-y
- slur@Dict begin (2.5pt) GD S0hgt (12.5pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 9585 13053 a 9585 13053 a
- end
- 9585 13053 a 9479 13624 15
-572 v -105 w Fg(\007)p 10178 13693 15 554 v 10179 13140
-a(\007)10179 13562 y(\310)10403 13584 y(\310)9479 13624
-y(\312)9561 13631 y(\312)p 10670 13742 15 515 v 10671
-13228 a(\007)p 11367 13316 15 616 v 11164 13316 a(\007)p
-11859 13404 15 654 v 11656 13404 a(\007)p 12352 13492
-15 693 v 12149 13492 a(\007)11367 12833 y(\312)11728
-12869 y(\312)11367 12701 y(\312)11728 12737 y(\312)p
-12844 13580 15 731 v 12641 13580 a(\007)p 13337 13492
-15 616 v 13134 13492 a(\007)p 13829 13580 15 703 v 13626
-13580 a(\007)p 14065 13675 317 15 v 14322 13668 15 791
-v 14119 13668 a(\007)p 13337 13051 1485 85 v 13337 12919
-V 14814 13580 15 703 v 14611 13580 a(\007)p 15307 13492
-15 791 v 15104 13492 a(\007)p 15800 13404 15 753 v 15597
-13404 a(\007)p 16292 13316 15 714 v 16089 13316 a(\007)15307
-12833 y(\212)15668 12797 y(\212)15307 12701 y(\212)15668
-12665 y(\212)p 16785 13228 15 675 v 16582 13228 a(\007)p
-17073 17217 15 703 v 17073 16514 15 1617 v 17073 13492
-15 703 v 8099 14204 a Fc(-)1257 b(-)g(-)f(-)h(-)g(-)g(-)17087
-17217 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 17217 a -1540 22801 18628 15 v -1540 22977
-V -1540 23152 V -1540 23328 V -1540 23504 V -1540 21184
-V -1540 21325 V -1540 21465 V -1540 21606 V -1540 21746
-V -1540 19075 V -1540 19251 V -1540 19427 V -1540 19603
-V -1540 19778 V -1540 23504 15 4436 v -1716 18761 a Fb(40)-1540
-22355 y Fi(\240)-1540 22970 y Fg(I)-1487 21599 y Ff(G)-1540
-19596 y Fg(G)-960 23321 y(2)-957 21458 y Ff(2)-960 19420
-y Fg(2)-301 23233 y(\011)p -343 21887 296 15 v -342 22028
-V -299 22091 a Ff(\011)p -341 21887 V -298 21880 a(\011)-301
-21739 y(\011)p -97 19596 15 528 v -300 19596 a Fg(\007)p
-254 19954 317 15 v 511 19947 15 849 v 308 19947 a(\007)p
-1119 19859 15 730 v 916 19859 a(\007)-97 19200 y(\304)610
-19235 y(\304)-97 19068 y(\304)610 19104 y(\304)p 1726
-19771 15 612 v 1523 19771 a(\007)p 2334 19683 15 791
-v 2131 19683 a(\007)p 2942 19596 15 764 v 2739 19596
-a(\007)p 3549 19508 15 737 v 3346 19508 a(\007)2334 19024
-y(\212)3040 18954 y(\212)2334 18893 y(\212)3040 18822
-y(\212)p 4157 19420 15 710 v 3954 19420 a(\007)p 4765
-19332 15 616 v 4562 19332 a(\007)p 5372 19420 15 643
-v 5169 19420 a(\007)p 5980 19508 15 670 v 5777 19508
-a(\007)4765 18849 y(\312)5471 18919 y(\312)4765 18717
-y(\312)5471 18787 y(\312)p 6588 19596 15 697 v 6385 19596
-a(\007)p 7195 19508 15 616 v 6992 19508 a(\007)p 7803
-19596 15 703 v 7600 19596 a(\007)p 8411 19508 15 616
-v 8208 19508 a(\007)p 7195 19067 1831 85 v 7195 18935
-V 9019 19683 15 791 v 8816 19683 a(\007)p 9422 23497
-15 703 v 9422 22794 15 1617 v 9422 19771 15 703 v 9867
-23848 a Fa(11)10159 23286 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.99998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 10159 23286 a 10071 23233
-15 615 v 9868 23233 a Fg(\010)p 9825 21887 296 15 v 9826
-22028 V 9869 22091 a Ff(\011)p 9658 21887 254 15 v 9701
-22240 15 360 v 9702 21880 a(\010)9867 21810 y(\000)p
-10029 21669 15 492 v 9868 21669 a(\010)9867 19596 y Fg(\011)11591
-23848 y Fa(10)11528 23145 y
- slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 11528 23145 a 11528 23145
-a
- end
- 11528 23145 a 11883 23286 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.99998pt) GD N /S0brk
-S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 11883 23286 a 11795 23233
-15 615 v 11592 23233 a Fg(\007)12843 23848 y Fc(7)12748
-23145 y
- slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
-M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 12748 23145 a 12748 23145 a
- end
- 12748 23145 a 13015
-23233 15 615 v 12812 23233 a Fg(\007)p 12769 21887 254
-15 v 12812 22284 15 334 v 12813 21950 a Ff(\007)p 11753
-21739 15 492 v 11592 21739 a(\010)p 14031 23497 15 703
-v 14031 22794 15 1617 v 14031 19771 15 703 v 14476 23585
-a Fg(\011)p 14434 21887 296 15 v 14435 22028 V 14478
-22021 a Ff(\011)14476 21669 y(\011)-104 20483 y Fc(-)g(-)f(-)h(-)f(-)g
-(-)h(-)f(-)h(-)f(-)g(-)629 b(ra.)14476 19683 y Fg(\011)p
-16915 23497 15 703 v 16915 22794 15 1617 v 16915 19771
-15 703 v 16982 23497 106 703 v 16982 22794 106 1617 v
-16982 19771 106 703 v 17087 23497 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 17087 23497 a eop
-end
-userdict /end-hook known{end-hook}if
-%%Trailer
-cleartomark
-countdictstack
-exch sub { end } repeat
-restore
-%%EOF
+%% LaTeX2e file `eps/caccini3.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 21 94 556 785
+% EPSF created by ps2eps 1.39
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: imp.dvi
+%%CreationDate: Fri Sep 13 09:08:44 2002
+%%PageOrder: Ascend
+%%DocumentFonts: TeXMUSIXSPX-Regular CMTI10 TeXMUSIX20-Regular
+%%+ TeXMUSIX16-Regular CMB10 CMR12 CMR10 CMMI10 CMR9
+%%DocumentPaperSizes: a4
+%%EndComments
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def%%EndProlog
+%%Page 1 1
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 imp
+%DVIPSParameters: dpi=2540, compressed
+%DVIPSSource: TeX output 2002.09.13:0818
+%!
+/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
+/p{show}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
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+/slur@Dict 200 dict def
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+% align the slur to the staff lines
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+ aa 0 gt { /shift shift neg def } if
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+% and finally draw it...
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+ grestore
+ % now some \slurtext code...
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+% differenced line
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+% sloped line
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+% free line (init & terminate)
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+end
+%!
+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]/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[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
+%!
+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/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/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
+%!PS-AdobeFont-1.1: CMR9 1.0
+% 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 (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR9 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 48 /zero put
+dup 49 /one put
+readonly def
+/FontBBox{-39 -250 1036 750}readonly def
+/UniqueID 5000792 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
+3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
+046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
+C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
+A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
+A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
+731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
+09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
+49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
+5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
+54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
+C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
+11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
+D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
+109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
+3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
+C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7DE90DFECF89
+9E58BB6430D9915B21B801B7EF6E62C2DAEBA34EC115F1D18F1F2BEC381020E2
+3FEF9CB4F3C3997C3F0587AF7C2A6B08A2823EC3DD3623E073DD07E7E8995DF8
+D81B2B6C8D36C964B75C7E4DAD8723126043FD455BBF4F1C21609729D9CF2620
+A6322AA2244D98C7BE825289C2F09F2ECCA97F4DC25F93D44954392BCB47A2CC
+1A11F6CD6101DD405EEB13945A1AE4CF6427F53AF9A0F76ED8D9E6B2C81562A7
+7F3A89339B0D12BBF34BA71F6FD2D75D0C3068843119AF94ED88AAC850664154
+78973B221D800E5A0556DAC4679C62294751C1C74701994332D8B29CB51DA91E
+215C8699F47D2A56EE9905A4716B97DF456ECA78BFBA774F1665042B47CB2FF1
+F3617C88959B667624EA096EBA7BCA7C4924947DE35FEAE25FD055C0843FFF09
+F80AC8F15EBA70D546F3EADC6E4153DA1E91D63FD90AE7EDBFD786C323E6B4F8
+92A3197807FAF44DACE5097BA940DAA972C26620BAC146E91310CD0C853AB86F
+3D3D65342EFB3B01762FCED5F6EE42F3B47BC5B9DE9F1517BF3B32A22DE23FAB
+31341D9B8F55040572476437F5A81BD297A6FFD971B963458CF4779AE811F0CC
+4AD74B3CFD7A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMMI10 1.100
+% 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 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 93 /sharp put
+dup 94 /slurbelow put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 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
+95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEFBBB4AD66A4D7350B0
+38A001EBC9735BE41A41B4836FCFC0D4029C02D8DAEA734951E57209889EFD2A
+33D220471B99E877FD166D30A54B29D4CC17CD581611477EC6BF8A58479ADE5F
+FE8DB690DF606BDA5AE6D1E2B1B797C835A026E933D593975A7AC4DF8EA7662F
+F51A30717A92A2FD10030E749FFF416FAA31794A3EF90832F493C1012ACCC272
+9313AA60DA29EAABE06C313A7D6190B3FC20E0E400E647ADBDC6C63CE3AB0D21
+DB0EF15268C3056C4E28FA7625F2BF7AC6343417D3E54CEFDAFE3B0E42E96C59
+8348EE6BD0843B0509FEABE63FB91C89FB452047789D36B69A355F2F605C77D7
+5AC7BBC694A05A4D42224F1051296857DB8D542F78DF1AEBD0F55AD2BB1795D3
+880CFA7AE2B14CB898327A058D330FC29BEEA39661FB8AA17B1D9298969629C0
+035D90094EC5D33B9C91B3E9EFB648BD3303BAB96EED1D209811066CDC3AA0DC
+664C576F01B39C04F54F9BD393B74D4620666DB9DEC4F49C46E85A14EB1B1FA6
+ED1E13DF0BBF930F995A14AF9AFD04EA8317ED31FCA841133D742CE53BC44A84
+2B8E98B6F78927A4783284DE22942EFE6E9685D880CBF2F215ECF20A00D6D3C7
+8F31303AFB2DC22CA1036C787A4CBF0AA39D5E5614AF8E2B2DFA8188C2C5DC62
+307206815717F190E854D2160D541D087A24701E05DA93D5F0F9A3E18C13F44D
+28281D018CE0ED65FDC7A41DD2D7569CAC04FC3FF086F89392339070DC4436D4
+52F283791522918DAD8C01873436B6665C4D698647FD7ECFB67495AFF97A1656
+9DE0D0EC6053AD025EDEA86CBF26B4789B67CB490B76F6F03E8564829096F390
+32198C0F01E5605A0E6AECF6FC99CBFF8A113D88EFFC6E047361EF267F3FEF0A
+0D13514F1DBE782888278818953F05D660FDEC6ACC4F927EF6A7071DC11A2367
+8C5EF70B850DD123EFA3379291241CBFE455C88264E058F2C2B57D2BAF5D7224
+AA236B06B756D47DB4AB4D1C1B0B848BA1E5403D3AB2B135FD14579AE258F4D3
+EB02EBF44EED73AD6C4D5B0A414A58305793DE8236E673299E45313DC42278DB
+6AE93703D8D4F70A0AB11E4D19878AD245264F36050EB65B6F10125779C70D8E
+0065B0F31E8689D7006E25B1E01364A1FE370CCCABCD955C6A518A26DEE209A4
+F070657B786E9C670611E0E53076B0B6183C2D4796DCB9BB59851A0EEFA715B0
+E105FE75ABAFA9973524631BD22CC222A5D3B1F63015A392E43C857FBC8CE769
+16C103777607E18CFB4D096708FFD430EA3EE8B0E813B137B5784962EAB607FE
+717079429B675D90F3D973CAAFA004F6243EE0A53FE515D255C95DBA5C0DFB32
+5E0529B1D0E5183523AC111882566D14788F53F22FBDE907B26238A814E57C29
+A6DAF9C7E2F79537824F0DAFD9A521628565B526F000862857D9BA6CFF593510
+610A2EA10FA423C056C12B19EC53840AEB340515986D8976F02606413FC6AA39
+ECDF92C5897AD6CFA9A89E0CB23D4904A5BE2E849EC7BC2FF4A88228E8CB6196
+B6DE62566DABD4C85005211C83BFCFA86CE4D2EBDB699FF3819760B188DA7CFF
+909FC74CF024AED318E00AA51F8750406B0E2EA33363E385303CFBDAFBD2D8F0
+4F6A8B00431BB0776AB91470E2832667C97C8F7A7384445A2A42555BEEF95EC2
+F2C78B89891CE666F2B47FF1141ACF80AFE627FEC568168A61C99C941BA7D0AC
+54ACF918B72619207C0182A6BB1D59E58FC3C96B0078EBA276B9C02DB668F0A8
+E046BE4633E66E36369CDFD881E71A969F1EDFD8D7CAE207A74A8CB8AAB39C8F
+935BEEBE8D07D4559608F75254ECF672C2CDE1578D099D79152D8B41E054CD25
+56A856CB0593F0B676DD7E9FAE9844C6B6A781B9F823D5DEC60AA90E33498A93
+D6DF663FFF523C171B1F841D5E60C321B644EEBBAB0E0C418CB206C8775D4D0E
+33AB23D397B2DC98EFEBC3CC473ABB6EFA4DC2636E945BA3EFB03FFA680EEFE0
+7FB5C8F1945B699EE4F394204FF362262D2DC7CF759C5526B81D0326A5D14658
+B209F34B9334ED0B046DEE32B4E38776DDE43F803F8D029E8410BF7B1517E6A7
+0D84C40AB2A013C58C3BB28D496F6CEFF70E73F3486FCD3984F8297061E72171
+A17BE235ED5A38F7B73245B46E65EB4AF055C4568D1A19BEF6D5B184D3C26D45
+A2DA85EF7AADFB104419D7B6DC939726F6AD4A1335C425A5086969B7366F53F8
+9DD041A90FF2A593B547C37520BA014060801BDF84B7D386E4ABC862D8E3EBBB
+AC62431C625EFDE888E07A4548727C26141F0D9818CA289C79FBA2287620E29C
+71FF406FFE49048FBFE82EC631AE264580CD091EE22377D428069D99D6184D42
+C5A7A438933764CB1AC1534CE9D8F0717A0DC4A466DC21DC42791F06C28BDDAD
+AFC10D8C5147209ECBB9B87A0F3BC62359AA1D046A713B8E78CD857FCBCAF6C3
+F17B1453FF3443D60D0B5F75DE6DFFB09CD5BC44083DF8353E4A97CC03541BAD
+AAFA0E927D08919D13825535AD9F1C081436F0E550BAEE4A6902A411A653EC8F
+95621DB5D9AB5C155B1F1575268D724F51F82D9E5993AB42D724FF649F48F800
+67D2176665344A6CCE606C1D60062581FD4CC87D8C3EA72F1494F8967480180B
+3055576BACEF9322EDCD5E49C1DE7D7525C7F44391BF7DB360AA55F6A443621B
+1E1B7CFA3017A6A4E0B0980DE9BBFCC95A8EC512058A35877917A0F377705C6C
+86DF168ED49AE75998C8D7D2BE79E89066734A6B532830BDE10EDCDA303BA891
+880693359383EFF5EA85DF0575A9C5A114A6435EC71B124FA279F81D723C7EDF
+60F764D1E975BD48A295B8E29E247BB795BFB8E200F3B803631C90CDFC32999D
+CA367C5E4ADFE9268145F667A4E159C784525AD8B759959820E4B5978576A3AE
+CED1DC29EA92CB1910D84AC73494FFFD5C163C1A2094FC216227DA8C39213F8D
+00C4E673604D2E52F34B58AB257A18E91BB4B05B0A0712E260D14D6043361159
+D55C19B63E79B0688CE275B2DDEDA27191678D620375C0DEFB3F0268201A6CA6
+0ECF5F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR10 1.00B
+% 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 18 /grave put
+dup 19 /acute 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 48 /zero put
+dup 49 /one put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 58 /colon put
+dup 65 /A put
+dup 80 /P put
+dup 81 /Q put
+dup 84 /T 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 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 123 /endash put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1B9EEC89A0DF5D4E908F32BC77D09A266DC98E9669626354E
+59FA354352E609F3A359C0E8B82075C60AA8F917C3B46A51D65DE1F6F050160A
+412DAD1DCB1A35E49A520F31B3EF2B0A27E393E20EE871DBD2628AEC086AA0F1
+CB11E1DFC7E94792E38B0F8DFEC565B1676FD5BD49E5757F7D03092489A7A0FD
+2DA2ECE42C2BB3C481C676B3BB029368632768C2988B90ADA328C745443F93B1
+C31CBEA19AAE4FFC83A933DEF484A753B513A289FBBED75E3EE8C1117912BAF8
+54CC8AA4496B318283B80AC61EDF21B109D7DC8DDB8FEB1F20265E06C2E2E8DF
+9532840F5737838DE90773008DC7A4E23C0F133241F066096999887AD4D12DDE
+23656B80578308ADA3B73C7D92DFFA19F1A79AC9B99F4971AC65B49FAFA4EB21
+B05DA8A257B3CA70C7584768D4D1A8F45777FFBDB6C69A56A56B76B10D228B4E
+AC4A163E08E21F24E9DF40752B9CAC62E84596EAF822F177C4CF65B7078A536F
+97E22792FA75CD39AD747A1FEA72CEB4B2658DBB9A4CD46FBF5FAAB0D2342DAD
+04D93804B95AAEA397D0ACA78A3E49FFCA7473C3610C6E9A9251EE17F88E790E
+82C4755F75EE3A7FA6C0237A7030CAA69F77BD9D4EF25FB1A2D45B649DD78499
+586027D49923A3E2870543F4CF74A00499B8BB5A903645E546A5403B88BB5F97
+F04924E8CE2A3446643AF9F1BCD69552B351076B53AF9F34FFDFE3548F31607C
+CA8F999426CA7D9B3464D2C6BF22AD989D98D0C5799E54FBECA219E2EF410CF4
+A049606A988FA48884717E52FF08B3322390C85C4D2B9CBE74801B538E9590DD
+C2A7874BA3A795BE0E40B300B16C4E06251E8A90BB725687A489828848C7F6F7
+3DAFA7C01A21CF7318E8C26D5B336E7B6E4F4F0B397904564BBA28BDB9794B45
+8CEA36266178898E3612D7DF333CB7FEE6396B67761361CE1791E3B18B629B17
+1667584AFDC209377CCB279582FCAB62725237AAF4879364006A0B717EA427EF
+5CF24C44FF4A6FE8ED167A40EF438CA0A6B0D80DD46552563B36DA5DAD53AEE6
+E116D35D0321DCAF45D1808418490D772C50B6FB0810F2E259E21AEEFBD7C5D5
+B7FA3E9BD20A02299701F473294B6C8445E0769EA93307756CE2A7FF454B2C1E
+E1CEEE797D5DA0A8A7EEAA2090AA69FD220CD70080AAEF76EFB53FF7759BC68E
+D7047DBBC8DB5C13320F77A8FB94B9DB259A9AE460B8634A22AAA2E363084BA4
+E2B77C1E29568B02BA3B160E78799B29B38D1BE9FD53F4D847CE1542DBDDDAFB
+00CEA31C5E9A63C6A5A02740A29EF7EEAA640DF24DE62385E2BC5E7FFDE1F362
+C7F86BFC2A4E9BCE82A37D5BB4BF26BAE85459B6945F7A7E4AA99002B9475A9B
+8A0CF51FEE063B939B1E1737BECC470D3DFC46D97E97D77DA85253440C570804
+C3B5EE537499CC481CA523B7320D59AF0A4102406DC5A264E7393E04B39A3458
+2B241C46D8D9A99604E48C85DFBEC0FEDE37A7BD53DD20A62CECA82A6E6640F2
+F68B66B65EB2D6C1C582FC10A4EF57711F19AF71D8D4BFDD735C3E67A4D9216A
+5BBC655423FD1FF2DF40A19E528EE4B81FA837525865A6CEDF9E7F27D3FC5C61
+CFC31DB55A2586B6F8D598DCC500ADE62C8132B4D65F5DE6637A34E2CCB7F225
+3AC04CECF1FAB29399A33D06DC3010F4B44CD0DC34FC72792CB645FC4079C34D
+3497C9617FD607C5FB0D804E5DE41B07542D2437A7530C200BB839542CEDD201
+D8E0D0840FC242DDF4A5A4CD973353DC491E06E684C99B0B074649978EBD11B6
+774C5224BB091BB445FE2E4F276F6A9DADAB7DA417847FAF1B04BF5DE12D356D
+06D6E83E6362178B804B95FD8683ED3CD511002BE0B87ACF8AC9292897C2F85B
+5C8814D40EA5DB190A52E05623E0BC0C7FC19943CB2B07573F7CCC885FA8AB29
+367930831009DBB9CA6E7E879641394526398F3209369D875A1EBDD45D7A203E
+74C03B38AC0FA1A379A5E399AB7700AACD2DC5B2BC3132BE82C64AF9662B9230
+6D06DAD71F74EA0C28A85C8629C97A1699DF1C91C0F5D035B459CC13E7CCE42E
+376A24E9AB4825C15AF2445CD206B9C39D70D735560A65C2BA5BBB76121A503E
+4FA1992D3C7C8001080FC8705BCE06B4113472B8A69E9CF1AA8C5CA2450F8539
+E7D48DD5785217F519DA9534D13EE228F59DFC78A53AE949EAE75C484F223E88
+1D470D03227FC75C23BD32C3F64F87053D9F366CB37C014CCD36409458D90C99
+54D24B8BF0D3FC446FF633438A9447D9E33C90E4B0CFE115F7E81FB13E43BC51
+C725947F66E2D79877A155D4D373FC4C3FBFFDBBF04820F73F292B8E5D932917
+B27D7A4B20B7C471419CE731AE8CE958E8B750242D09E07EB1917433F77632A7
+A7775361484064D6B02AC57E14BD0B3C332A4BA36AA02F35AB09C83037796B79
+46FA4F4D506687B80BE0E2D2374050501A5793171CA3C14F8CF6521F7575DC2F
+9A9ED29C80B8092C98FA1BA67C5E1B02B9976EA0CC363B7F1027EB779C1A6A38
+9DF3F9853B8A71483DE1BB5B9FF9D766EBDD648512DDDA9CFD418AAA51F754D1
+27ADBADC3B3CE807E7BB6650EE72646930EAEE073C2004535D5C4770C8FFDEC7
+B5882F2D49AD63DDE41665FD5D0D4213711CD7C0C503EC77511B1F304DC9E571
+8FC9C19B49D4974FC8B530490EC1F1C346A6B3569A9FC23B48F1EF63A8F1FA66
+456B40A2EF7F8A6BA3837D698D0F1A0C6EFF8AD59F5FFFC53C790D5D0A35073B
+842323D6D5BF3858496D366C42DCE69AA5C87B100CB358FDCDF7683446E685EC
+67583895433A6E73F94186BD778FF5D331F200F74F1866D29A83E6A2AA368442
+4735C4E14CBBC730C00B58B36396A9C81DCC9CDA324B847D8763CE7052FF7B3E
+EAC8A2DCE192B308C84AE5EFE62E38219BF151227C472952528C21EBD7F93150
+58CB8CD9B4F7E301EC2842F4E912103DC2758A56B4C5645F9CA35A826534A3C8
+042B990117D1A53CB13408D4960417F81A1FA442BD7ABB8FA91BF38F6D332256
+ACDBD26DDDDEFA833CAAB3D7084EF9C4649F73407ADCE0ADA5CCE19126924BB9
+6B48355F311A3AFCBE5EF10252F86D751DBD977C9DBF0C81E200AB77E0BB117F
+F48DCD53AF3A56E58BC1E6757A5AAAAED24616266B4E264F7927D70754DB9A3C
+AE063F688DEFB66B51F00D022075987696F54AD3D0286EF95E592F9D40454D0D
+69B061694D2AFE3697C7CA36196DD6B26BB1057AE5070D25A2F89326DE260440
+0AAED51ED7B254E279538C31D4BB4EFDDFFD4FD09232BC430A573FB657AFE742
+7CCB996E988FBDF600D809019F4B4D2F041A6BE4C60A52B2F3A8B6BC8DBF772F
+CB58477926D6E01384D7B718EACE9BF22096FFE7B3F398BE07AC814DD2C534A9
+06A17475DE88392A48B82535093DF87A1B23ED55EA725DD7533D905A67939D1F
+53ABF978B748AB202A077195E495E5F0CE042836BB5743565F7AEBF31284A99E
+C0CACFF65EEF9A9E7EB161253762CF243889BDD834460E1EE5A752E5254BB6B8
+C21D0B674C80FC55123E3DA6CD90B17B4CACA4F5425D9322643F2139FD90A8D3
+2BD3B9E0C4DA58871EB78A764A6E035A2DDE468BD45F40A5B2AD4D32D51B54CD
+C87C566C0DE3933EE423DF2930F0369A27EF1E609B0152886A26C7EB8E625DE5
+2DADBA71433FF7315006FA226BA80581B0554D0D65F610F59D61756676EFCD96
+1189905D27790D7910E8411FFAAF646D531C03FB3317AD77C8F4681C6C493D84
+E0BE58C096868A579A570A68B65DAA98D12ECEE1EAE774C282F9CE38E37FD95D
+B8056E30202FBC31832E734096C7B9B164665420698551A252C0458D901FE316
+1E2A8B629E1142815AB39369C89D6E366EA53608F0A0D8E5D09FD5F0AA1E1F8B
+6183806A9ACE9BA79DBDECF8AD1E9C3BD589B2D758CB90AE642746083F938040
+4B319D0BDBD61A24646615F744BDDEE2D19F7E6885BEA4BEE3CBEB98044F5C3B
+CCE180CD94E00957C7663E17F31AA2009ECCB464F1D19CD212A6F64C2C3BDE77
+4AF718A7005F7AF21879513A760ED3902B658534F00BE8277A3C09302780FBF5
+3D4CC7A4D399CDF38C3918DD85DE9D359252932AF5274ABCFBD8952957F642E2
+2C9846C20F8C95DBD53953A87FB4D72FB07177C8B9180368FE562C6757BA26A4
+4F5C241B377C1658B6DBC05574FD228E8745AC865F24C7C94700BA3DB4D53F3C
+46032B19870E44BE006A610365CE5AB3891C4053CEB9ABD70061B23F55910C29
+18E1AAB37F3EF51267D977EAA70349C7D4DA9B7809453BD23F17C1563335B87E
+DD90E4F74ABFB462D4EDA74CA37B88A4128A6712A9D861F9456F394064C4F8CC
+C8BA0BBF2C02EE11EAB8899FFB7C630D97C0290F13824E5F5576AC1381272427
+1E17F47562C5636E75DD779FBD1D18CE4D4257C0831FD68B412EB1905AE4101D
+DF68A74CD6F7ED92DE2667A080164989B807F84F126BDDFBA60987B2E780886F
+DFE3937A932304D88FAFF809ACB111BB06C64EF01F28756D2A6D6CCD5D6C9057
+E00FC93E619898BE6DC47573A02A60D8CC5140CDEEA11A453FCE09F9CEAD7FF1
+076F68CBB6EC2FC1D7EB66E1E831E886507CBF1A0C8E688FF91C45AA8566D747
+997F0EEBC72B8C77D812AD3820D7D837BA5ABFC231B8B6E8A7F2C85886CF7A39
+4C0AB000695BFB1E88BD9DBAD72BE505DA4830D4E57D4F519C6E7BF91CF5D72C
+47A98A9B7C6C2CE4A99587DA2BE19B8BB56EB7021D451654F92FAE4240CE623C
+CB57CFE0A0F00DF03EA7E40E75EBFDEC4B572C9570ADD9FEE4354A50BEF41CD2
+E622AAF95C6C467051BDC980D8E1C59B57B938073865D5624EE77C634CEB5863
+D3E020B88F535EEC5DAD9E81E6BCAFAC4AA3531A751F8830772C12AF1020564B
+4C4EDC4A8AA8F1B605A91E88CD7B11B3326C2B82AE540951DD6FC3BCA10DD078
+448DDF3F224745F2C88B53365EEDE976BB8D94D1F57E353EDE19F588DC56D99F
+EB3C628F9A5A6C9F79BC97D69F55EE0E337598806D0BC1EDE2CA8021EBCC1A50
+ADDB55DC3EABC67613B09E9A1674C0058702497C21EFD6322530E8040422A032
+6B6E872A2FE553E3792D7DAA2CD97FC2193EA2BDAC7E78C10673EAE640985389
+7E0C5C663DC10138C6FA5FBF3C24D7E72E5DB12DD4E5FBC213F7C72F9ACE751E
+FFED9C3B60907E04006F0FAFE98B31C607B5C84C3D1F181E1DFF2FF1E7A016AE
+C8799D765D52DA2EB5BA62575EB85243B5EA52A50DE2EF945C600EE8CBF1BDD5
+8F9E917193AD2E2D7C37162DECC00AD50C071B0A209327E87C8BAF529EE5B561
+5979F1515A78007AB6AF532219951A3B950534ED8646078EE7C933051E0C5DA1
+3B902956FAFB5CEE7A6D1881F2CA72686D74A00BB26A5627DBE2991771D8CDC5
+D35FA42713272A3346B5FB0C4250849CE0CF4F026B9E9D5E9FD5258AAF1B2D55
+1E7CD3C80BECD4E44C504E0F935A4F8B463373271EB7BD942698CF1D005403BA
+CDA5F1996D85F0656116CB2EFC49D25321AC051CC24784587B6969A226BFEEAE
+773444F741B04520C28298621800FE12CC18918C56FFA5D43FEB24125156B379
+F9BBAE01A58A1DAA21E5574BAAD2697042F540874FED03C4147A9A82EB3939A6
+5C941D015CF75D30766A7E954B9E2A8F2E9E808372B7FAF2E0871A7004C5508F
+EB9280D63471E9EF75D80BFB0D6C2430A061D4E2C4BB4C295DF63BF8C1DC0952
+D5DAD5E0A2653A8D03DE0868C14027464D871F9760DDDE95A903E1C1F8C2A7C0
+A0862FF3587BF172566E388F875A160CA150C3B2DF2728103F8EDDD08AD0BC6F
+65BF032EEF85FC54E299252B7F32E4A8DB7542418E09F073236E68F4F11485D3
+F6A0624C207CE7EC5B0B984A3C0F3FA609118C22CB6BDBA37A48BD0897204015
+7D9AF0D3F975F2ED088D91B6721CB604BB19291EE7B332CB852643678FC4B66A
+A15221B430720AC37E6C2140DF182968E3A28BFDF8BB2B1A90DA691CC419405A
+F2DD423B27F81CE1499708F11D4E3F6A86DBC243522C0CF3B83F39EE6312563B
+A3A624219E36CC78CA68466A781933E79F238D93416910B791C97502377A0A12
+CAD42241B814B8B37E35074DBB48B79CDDA2E8540CB303ED02DB330D9E542371
+D7E183C060F9307C2E0345D41736348ED1E50D2F9A531716ECD91AEC136448B2
+87E17C5EC71DDE13F79BFCF469C8062CB60132388865AB64A77558A8974875F2
+9FD46FB1B07B50CEF579FB3C4D862160A3615F2D3CD3E6D88B06182C2887AAF6
+AB70E2961CE467D409DA39E44C7A890FB1FE59977C954DA9ED0C4D2CE9F42C76
+94F8EB9D9980F40DDBF09A61B71CD07A2ECF3F1A3DAE84BEA1F38FED60DCA960
+462C7F22763841A260EB5AFD515E9E93AA2DE67F64C83835D5C3F1E3DA1A6051
+9CBB3750EB26ADD07DFB62FE7CBCE154CDAB84A6EFC9797A891D4D699C96280F
+6819A9067964B3D048F12B812395CD40E20EFAA9555FD0CE35E7D566929CFB0D
+8CBECB7ACC08CFCDCA43B6D105B89593121653030575F12566AEAAE800C00BBE
+E88EEC131577E9BFAB2CD2A5BD45F6A286B00B4C5CA09A5550C4EBD107EBEC39
+94AFAD0E3A8A6E729284B62169D853A658A10EB2A53E4CC4BF29F127273E0120
+60A1BC4C08DDC4F7DC298071CF0D8DE93A8F189D6C76EFBE0A591EE1180AC6A3
+D7F8E47B023C5833570D6AA04970F4EC552221A701826BFD2C9CF06197AB11CD
+2BA1C51C8FC1175A7D643F505CA573A87740C337CFBCDAE535E1B90D3236BB96
+92393450186C9A749B0A3A30FAB7B433610D2A0DE303E421B3C1E18BEA34D891
+CD6449CC5DBF1C1D01B2A47263C7D24052F8FE37F2AC085D0516EFD72CD78530
+7E2522917A7B863572752E9B1BBEDB7210516E62B73136F9DC1D96323DC3F78B
+C9E43A21A7AB7626A7454B655DE2CFFBDF27847616D52DBC72D54BE7BFE6CB49
+78FEF0FB1F710D55D123C7756F12AE2B5D4A9108C17F2AFB4E421B08E79E81C9
+E7F0029C052A27F5AD1C7AAB82C4B45B364408235DE134DCD74D93264F77BB7B
+E738B52C31CA5C734F9453478819E6E1F1317BA6496719A8CC91A30F6754A600
+AB170520C4872A328D2D84D09055A3AEB730DC8A47CD97A09E7E6481A85B6957
+0959D2623290BB04BD8612865A0443C9EF9C861494A5EAEACDC32FF5C572D2A5
+91ED31F8F8A3C0CDC34F5A4F271A0C067111C70D95526C4FE05A7018259333E1
+207AE3E9AED942612024BA3E2238C1E5F56CA70FD0ACAAD5F92A91AF5A59A9C3
+EE4FAC04CCC9C31A2502D1C0A5D6D2D5BF4A8EEEEDE64A31CAA16A9A97FC2EDF
+8351236C48C7FE4DB3542ABBBA24504A9EE692560DF455334A6E894085CE8423
+94F78CDFF2B7BAC537FEDE02CE127249B9611439582656A2B75E4639893C8F43
+AA0079E72110293C16C632AC7903C2417FFABA1D72BE58B0F9149E0DBECBA0FE
+383EFD0FD763DF63724CBF81178551CB9BB20AF338C850BAAE023BFD4329C733
+6F32CFB740828CA5103D9D21C516627CF62190A508351417109B1A66A62EC7E6
+F548CBD76FFC807E96D7AF6D351A40918B98F7154DE4575C14BF6B4BDDBAFE68
+C93C9381374226DC40D718356B7E1808ABE73D01A6C8893AA8EB9190D5352692
+5A3E97636A20AB4B189875FCE9F90E765E724533B9EFBEB36FF59F47215C7E19
+0B2C9640B9B68FF3BA17D140090190B3432E37A7E2E166117E5B1BFE5A0D9F3F
+1ED0495B2726D032E13EA3CE9E4D8394BD3430A9E4272E6543DBE0257780BA5F
+906B58E3A49BB916FFFC7104EB414C051C74D099F5A1B634AFFE11E899F73378
+9CDC9034F6FBAD517387FFD58B348FFB610AD6F2720B080A2E3A61572DD7C663
+47D6E93DBD490CCDAF473476392030D9D8B956ADA8C791519E7A0210E922CADC
+60A6AE1CD3ECF6D95907126E8A6B7DE8A15CEAB085778F293F36AF1123F98F03
+C0FE62786155B9BF44D8D217D942927234BB6EBDFB23ABA5896C985D6811CA74
+8EB0D20448147DEF5D942EB6042C938C60E4E5D2BA7749F3B7ADEFF5F9352DDD
+160898B6BED1B1677399E0135299A17A31D19F570E7ED8503F02F70664297483
+A51A1CA586234088845CB1F99C6514B9E482E7CE579AAF24A74AF73C1F94E1D2
+9C1C00E91CBC973B990BDF1E11434B3FF37BB51BDC6AF411E7CE909FD6949FE5
+98B5838CA1FED715B1E246BAE174BA96FBD83111B3DF2905F1ABEDC3A1C00238
+0D01A2940E460C9861342221AF69B38088424BFD60F3A18859DF3A3BBA929ABB
+0DFB70C4A315CC737339A61EC41671C38874C228A5B6A6BD033DA7C83EEDE739
+B0EF4AEFDDFF6FB2697B1C22F5E38DF8E05068FF834BB27E579DBA1A4B8C452D
+F404B122A158F748316168C3CCAC210230C38C33BD38EC7A9863B4C6AEF35839
+D3C8029F0D14E51E121C68172D14968541E92EC404D85429D101DBCA73105A20
+C40A1046144532FF3010533E7EEEA503F5966785D1443C40772212480C86C9DF
+8989B703365F91BA7395FBF1EEEBDDA805BF7C996CA46631CBE40C5F92C5F455
+DC5761943DA6FFD099D3559DE18530F7FA759E7F2EA87BA82180FDB1D00FF21E
+D1091DCCFFE9728F8B97AC1E0ADD4798ED663643EE649DBE15FFE94CEAA7B860
+7131CCB1C05D93D3284E5311F485E64F1AABD4BA39A2E07BC7CF0021FB8C1F7F
+885E8FFE4FD4DDEBDCAAF4EC20D7EA3E1323DF8A5C7D1443DF7B4E8F4AAF71BE
+7AEEDC4B8B67D72FEE01675EC95C828E63E83E252D9CF63DB0D05BB057B39AF2
+432540FBBF3805F6BCFAB8691485A4D302FBDD8AFED7BAC7F163A5F7B71B627C
+D29B643D20497E9127CF799DD2D02A30D362964464ADCAE2C0C5FA92AFB7FD11
+CEAECE70291D6F6FAC915EFE01958BC43057D7B7B145DF5CE75C5CDCEA8B04A8
+572F0FB5586E6E235FA416DB9DE5BF236B465CDB08B27CDCFE02201D0FE09A0A
+FAEC3709579C643DC58065D6E49C0F4BAB3C9AE9FD4940C78F57D1959B3BCD31
+3C7DA587227C03E3BF8B66A3AAF3B8B2713A834CA8A796D7805554FF8AE86BD9
+A625AE7FA1E431C647640B4AC1718C054793ADC2FD296FDE66F31B6B1C43E014
+924D4C3770FA293C9B68CDE3B90A6E382A042B45E1767A47E890CF1AEF8DF011
+16B2FFE40153BE44269852E7A113D274CE18A6E432C8740A12AA9EC80BEA5504
+01313B92F997A6D65C69D157FB45DAA5C23176619CA3760E0CA75A67033FBE61
+6C74B7D88FC7DF1051FDD8064D41E81EE5CEF382270133833F93C270D3AC0AC8
+3CAC747391C22E4E89B720957530DDDD029A371C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR12 1.0
+% 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 (CMR12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR12 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 67 /C put
+dup 71 /G put
+dup 97 /a put
+dup 99 /c put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 117 /u put
+readonly def
+/FontBBox{-34 -251 988 750}readonly def
+/UniqueID 5000794 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
+59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
+51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
+DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
+AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
+45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
+821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
+96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
+9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
+26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
+140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
+1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
+1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
+377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
+0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
+5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
+ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
+FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB939AD2EEB
+4370BA2C96960CE9E688231626B3CF1C23A31C5800D54F5BB64FC84D0C7D4998
+5288AF2722FE7A2629BF422D026F31E189E82C9A451AFF9A9C138164F0CCF315
+D76FD849BC98A74FBC93F09F9EDF85B13F8869F08699C6C90C58DD45CA958E34
+0DC970D40DFCF3FAB15BA18C1750261B02CE16097938C466291A55062345D8D6
+61F775EA958D3BE761207F828DDED3DF5DDF243C0A352B08B165D887245FC857
+2FBB64CBC928B34F2831ABD03C5CC0D29E0802F21B3BDE32E069E0DF9B54DD6B
+3D13D19BFAE271A6AFF16A8C697EB07C1432D59A2D2039E686028D3808009A17
+696738793896F91DE802D1B7509045B438CC7C62CEE684AAEC9214932EE9FDAC
+09A0A8914D22F5B469811DF488AF012A4C5EC81769698621D17B2D30EE858069
+49CA4A8061410FE24196ABBD37BA67A77E86A8B3B75D511353F42915D1314F1C
+65C7A16FD9523316061970F95DE693FB4DD6088EE2189C9DD4E22B2AD113FFAE
+37CA2695338CC2508BC52FF04F9A88367C10F60B09F24DA37AD881A150DF1017
+FE577A2B0CC891A38542F1CED14F6CF2C5FC980D459F6D1BAD15D6B952DF882E
+6076B5186F4B941069410E0ACAEFF0BF6431608163354082ED6D5B68021C0BD3
+C1F1B12CB7C7805BFC4A5A488920C77159011727EA004D11AC691AB11DC98FA9
+6EB7BCF534C4B4F8D6935FD970ECCB1C5B7196BAA1A9C75F0001194EE690A8DA
+23D328CF84C74A96F973BF202D851AA689BA7F0C99D3E2D9447BE0C2F6CCD2F4
+782652DAC900FA6AE01E9DC4AE0E539B155B24B1A67F85D5F96E1F51289CC943
+D4DBC0034E48481339A60639EDA2212916BC83EFD34D89A19FCFB720C231222B
+845551D438A20AC06DDF9A49E5FC89974A1336657390445FADA16744A094E7BB
+EE7079DAB01CC8A528B20DA4F20306F9EECBEDBB86636E8DF0C431575F551F95
+B2823EE823C0C8E02D94F50FCE3E6F7D2B1557D5B89F55297207F11D1547FC0E
+989107AF90947310EBD726F89BC1EFFC51B59449AA91F2F8F760995E5F388316
+6FBC13791D2828FED49E2E586943D7517395F9EE3CB99726D32853B7448D2834
+B02D7BEBF573AE4C1D887CB512F243FB16E4800567B0FE2C4A1E7B64B2B3501C
+B612926E9E880FA6E1FE15FA94DA7E1F1EEEDEF2303DC2DEEEE9BEEBF5FB4880
+82F6B6BCF38AAFCFC65062841C725D0B88D9761FEFF0BEE46B5D6B2C5A508D23
+AEF7D71F427F3339562A29FD432D70265238C4414A6D94BD13505148FBF3C8FA
+91FA94792E73082E619D946F9CD0A13B4D8DA14136901C04AEEF70105E4C3859
+28200013F68E11BACF8FD94CD56B69DCF855E83312E3B023276B941C778E9AA4
+B8CFE29C945151AA4E3BDF36E3CB06204EDD004B7CD3F6EBF3FF847D0018227B
+1206E3507554F062441A46BE726C97A1355CE7B053E7B1B4ABFA0C96E3E001B0
+BE07923F11E7D570FD350CB7C8E293A6C6CE7AE79E7F8309C95F80BB957A1AE2
+2A32E6A4F314540759A2AEDD0213E3D42D88344DCEE7B732432277DC8C734EC4
+6E7BB880539DDB8A687238E8403AAB5DF383216546B82825067CFF7FCC3E32A1
+B6A082734315B0506DD1060501FD87AE62CFB30BBAAA0260D9C875924EF68581
+A3A73771F84F6D7628D17291AA202CD744B8F394D3B7F619D0C4A2F791046EB0
+5B101501BCCBCD260F9BDE8BCE7A1E085E2B120ED9982841715260CE4B6BEC7A
+B26AE2794C53C7835112CCE3A057ED48E6FA05FF88D3C7F943FCAC35831A9258
+5A8FB6584BC3346A018E0B569992E6EBA31ACB9EC876495D3C0CE59A0A70DF62
+B9D056F2ABE55C47AB17C9BAD970CA3EF4403549803D9B5D83FFB46990A56BB5
+946CC09A4C89D0EBD31438788B19DF3B1EEC2AC9A426E21E3966A8A25069799F
+26A40EA6149DA6402F83FFA12774D942450668AFE2F771A41506FBC5839CFC5D
+F6100F7FAA6B04BB659729D463F3A3BECCC38F8D435BC168550E3C7E5B55A970
+05670D4D2EC83BCD057B8E3BAC3FE2A464EE17
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMB10 1.0
+% 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 (CMB10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMB10 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 39 /quoteright put
+dup 65 /A put
+dup 97 /a put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+readonly def
+/FontBBox{-62 -250 1011 750}readonly def
+/UniqueID 5000761 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
+A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
+99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
+2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
+C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
+00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
+B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
+BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
+8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
+FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
+31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
+2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
+9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
+EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
+69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
+CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
+87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8EA36BB6C
+87B9939DADA60888E78E14E626AE6717EFA40C50FB362A81EA3C4C5279819327
+CFC2ADF1D8DD65B2CDB9E3B5941E81AA802A5745A3A4148591AABDABF9A08F04
+66CBFE887F0FF82364F351928E7D4779E54A0FF53FD088E0FA50F3047F42AC28
+EC0AFE3DC1F380DA575D618D5CF337900631F57ED0A59EF0C84488FF48B79823
+47F34E75E63D07B10B9DE367258E80C6E5227B9F2BFB79E16AD1BFE9E6707199
+FD35D296B5BC55DEB7F9547A9898C608547C2BBEF1054AF18DECD8CCECE80B8A
+F52CCB190B0626BFBBF59C2E7AC15E8EF0E570610DF4053748E3C8555DD89D73
+942DBD8F1AC6072DFBF74FA57C65196AB859F0E6D4150AA7592E746AAC3E302E
+D406427CF7159AA524780548F603E7AA624E4EDE5870936D037618E92DBF02D3
+D1E9FEB1CF0DEA80D5646E4765991669488028A8B7B9DBECF8286FFE00FC06AE
+EDAE0ADC9E6394A2A330A3BA3E00BFFFCB8FBA98DD7605FE9D7AAFF070A3AE7B
+69593C8B6E0E9D10D1584F23CC19110073E5922B9CF0DD28E4C7D51BE7B76435
+AE678608B03EA7820962F3859970ABDCD860311B6E753FE843FA992C0BF910DC
+B86B86277FE91A964CD34E80E1AC3245CD004CC8BE7F0E704104271660A2C75C
+B9368D509994377616C0B966DB9A1E9FDE2F2D7C577047D6FEF9A79D538104A5
+0DF65A8BBDE8FAE9D3C64D9B4BF3C4E94366FDBA02DF99B7C527BE53D391E8E5
+F0BB566F8A42C4A92A3605C12B8808D657DC68E4F9BD58D26AC06B7E6C046224
+C349FE0EB80B822F171E27051C391B1EEB65E599FDF6076581AE5FD01B6DCBB6
+84A2ABD1E4B3045EFC6CCB27961E8FC6A3EC8FCC97BFB427B82A50098A907B82
+E6ADBD19894DFF74BC7B3798A06501F217811F12567E2F5431F8C3A82D4C5E94
+72A1B18C3CE4795FC1DEA4E7BDB127552F16E4BCABCFF2A574997BF2ED680B82
+8C310E717B81F3FD47906BA609A9833AA4AD9CC095EE3D1140A8126EE55A2278
+3F9FA28FBAA51AEF1691B39039C2D97EE2FC79FFE04ED5AF5921D20C560E4742
+ABA899568CD661FFFEE92D9E8802C2F75271D9D6BD7F5107CC3D03D8E21A40A5
+2F951C89EA84C8F742162989BCBB4FD74A8BB55CF6EF3B1AE5B6760951D5E2B6
+2DCEDC1F15CD0C99DB0E1FA9661EC43DF5DB9D1BFA117EA1CEE98153FDD636BC
+A38ABEA43C5D63BF895F9DE24CE6FBFB74224802BF2A24FCFD2FC8D38B0D0B83
+A8E631D1FA4F6F9B88C67A89B72C3934D6E759072602A05774FAF6C019440AD0
+5317137F3E70E51E3F0DC06262F9909EADF48417A46435076BEE48834C56D17D
+33D1442743D8E3F1733257A8C6BBEE9E5BF7089B28CB17222370714D6CBB4730
+C13BED5DA331A9ED85058910A8944DDB3862C7CAB2868D2D8C8C6B7DAE6705E2
+6F2E5BF45C43508FF638C23185B72E45A20B8F852AD6FB3F98E7B4A632B98B8E
+F49C4BEDF0F4D7701FBD00CA484AF80F5C0D07294E50167511107E75DBFB3175
+FBF983BA6D323D6E1AF9037341461A52F5FD775C9BE3B9A3DB9EA13E278910F1
+87CA56B76729B35336A7DA17265DBBE96C6B0D77AD2C47D4885785BA62C4CB90
+0C486E4DBBE774463897BC9D42007C5AA437FA216EA617659237DA625FD5373A
+335EFCD92D30D84996593F098847F73F1281AE13B97D7FBD19A9C819C4D00110
+BF6D100792D50E15042ED820BFED504744FD088855D37C4A4C3A12CA9344F981
+99DE37602B5F84EFE6452DB3B917D4F571B0E17C48586FC2DAB4481C0F495920
+36A22B2422D232FB3B69D1B77A316A59FD69E4890D74AB4FF9D45657C074664F
+7D0DB216E611F18E2184650ACC94B63C47F14263F522F0869A8BB19599E97058
+8C73C56CF2FFFB2F81D0D128E6C5E90DFB0BACE596E0B27903433DE9EE40179C
+6153768280762BDBCD0E6BD9B3C715E0A150677BE056BFD51DBF5A624F618E7A
+0729AEA869E2079FC2F969DAAE9D32FA705D24AB4D69FCE6678E2B8B7012B5F6
+F5449C2163726624B49CFD0051D7CB552C30F0986E6FDDED2E90F9BDD39F4072
+1263CEA8AC5855D02F651B79C10593507AB630CAA3D0998CD6B0972BEA297DA2
+B7D9EC25296EA7F59925E53F503BDCE2A0AFC64C1A64A29D5160E6B08C71909D
+E297A5CB5A398D7EBB12AAA01D300C70073B39ECD3CE3940DED4F491A872F628
+8BF40EE2F085DF947A28797FB7CA7FEE0C6981C89CC68F322B5E83DACDEEAAED
+66DA926386FF6BBF82109967BD427308F40DDC79ED73DDD5849EBD609DAD4C5F
+719B2D04EB9D04DBF27B40769677188D7670968E5AA3BCED8E5DAE6C201BB7EF
+1621301F49D649C948B916390BBB47CA60D0C3F7CF888DEA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 40 /parenleft put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 63 /question put
+dup 71 /G put
+dup 83 /S put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
+C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
+4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
+12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
+86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
+88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
+62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
+71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
+4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
+63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
+D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
+702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
+4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC2584632973B223E128481FFD5458C
+1D90E5BA815DE9239AED29DBC31C66502FBF95B1BEB72174CDDC64B1A18AB3A8
+18395976ECCDADD00E05ADED05A1116A6B1EA4A21980C0EA58C48022AF810634
+3F540BE1E0857C0316572E489C72557EC92C0811E0A86655F86011EC26234DF2
+33A0F99927AEFD354AFA3929E73C4D1CDCA3D89425D84DEC9D394D8CB277E568
+E7F8A54E3A00B6969C792BDC7A0D1E4C58D0792CB7850C8C6A9A85446484C39D
+C755D1231C42608FEFDA72002F63C15E2FBE3B7E9402112C543CB8289EDEEF63
+D31EE112BB33C63DA84F73215EE783B9D9F0FAEBD7C1949AF55F58703AD93DD9
+AD543DDB096C1F197CE7EC8BBCDCC76A00A5A9E6F2AF056C92481EDE53F52CFF
+8E830A8B6CB970065A8D8687F196E32B8F9F3F2B3C6670983929A77AA2E15AA2
+6DB6EE65CD38A2A8207ECD3A4447F436D0EF0B9445FCF1712D34CDD4ADC9A275
+AEEF2B2CF35CBE6F49B8544DBB38CCE0A32AE15BE2EB7F51E77BEB0C63674424
+EB0486D0912BE4D6ECB15BC2F5CCBD793C0758046FA7BD6C7F957BF96A8EC794
+171CA15FD9F75DB00760188776BE43A48CDBD659E4E66571045A39F49468EE25
+80BD580B907324BF32FF93671E567EFA2D8E0BF3744798A06C247EA4FD65BEE7
+BE9989EAF5B8E198E8F937133E3A8AE287A8DF0E010638ABD9D0BA0A589332D9
+76A126F13D8842E1174019BF663CA592759C4669B1AB0F9667A3AD0C9C310C62
+E2FC83A5EEDF20A3BA66E2ACB093B0F01C0C54EBB878B4CB678A2032B783D236
+C7FA32E2B134B36850379B1F747F1354E70EE251DF57B99FC7FCFFA00BA15340
+AD91C35F48162911D538BDFAD841D6995BEBF07B96D88547B6286D3145E237AB
+6C097A0A612998946401FBAA92A0841A6FCF4678D8481CF415C9BA8C3245B61B
+D829F2B709BC63D7E8C1C032426D1D36BE103A82B0467C6B1DA7CCF7811143DF
+10349AB0D587587E7965230D82421B41C33B8326BFEE60EEA6B1D66C49DC8B72
+74742D9947C3B049D630377A9ACCAF46FA262064E1BA6E861CAC7CB75A259398
+4EE4872F0D120E85F6C9015A3F4EEB5DFA7E450ECC2261752438425907484021
+5B2F86BDBD569EA57802F421CF273A0409A56C76F551B2F60D845C4AD9530EAD
+21DC805903922C8B1555C690DB54D28E029CB67AB023E617CD9782F8C385ABDA
+D3CE300FEF213422266C4A6328536B67697DEF9298F83B14AF554F52A675E0E1
+0E08576368321BF31F96391A6CAF3E30D6E887D74DC1B1A4F144DB945AA53144
+3D1C53E9DCF6CD6026D2AA1213B92473235DE61A6EF0A355CE4B9E7E91F59562
+953253A41B658B9A368A6CDCE3F9AA5BF034BF3C16B9C2ADD26651799CEF4952
+E85131F539A0729F2CA8690E935B074B202241F06EC07BF6141D188FCE7026B4
+66A5431CC867B6892460D8108F2F07C9FB0082EFEF87FAC7710AD0368D54D25E
+49CE016F8996181E4F34DFF29D8E897B239C67FDA93FBE739D85AC448B58B60E
+87AD878A34FC239E53FC43402AECF4F56FA8C4A0DBB40E5F5566424482ED3A8C
+97C5B6CE362A2A2BB7C6EC8DC4D4ADE9F6477E52960EFD6EABDAEBE710A8CF10
+5F2DECAAC2B970F5D3D039FD7728A784F3CDBED6393A42FDF06E7FAB889D5247
+8CF1696852E057F28D75B553496F0DFE7E38207C0C4BBA87AA3EC796B7870AF0
+F66EE303428DB37A919F6D4294657A0069B5A4654A5D86AC2652BAA95C11D1DA
+60C8B4F8E9F2B629F5A403C207C4521E3B7FBD24DFE37E30E8A8A7DEEFFACB23
+5A567A89F43B4F4D28307D573C9AC5A8DB3F61F1BF1347B3D49839B935BE0671
+9AD4EA0D75430F5B609C8F747321C19ADF63A1CFCB0C733954A9207DFD99193D
+6A1C8181C6C438B6AF057E21AFAD19F31B962B356F1AD271E6F7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 45 /hyphen put
+dup 46 /period put
+dup 50 /two put
+dup 52 /four put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 83 /S put
+dup 90 /Z put
+dup 92 /backslash put
+dup 129 /Aogonek put
+dup 131 /Ccaron put
+dup 138 /Lslash put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+dup 197 /Aring put
+dup 200 /Egrave put
+dup 202 /Ecircumflex put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB9685462A8D186BFB195D91EE1109A9CB8BA9FE46114B4834595CA6973C
+7B5548E265972854CB21F9A13E3D8547644471145C0A7B7A6792298C740DB643
+56C099DFC3C658095EFFDB41A137F739897DDC9F0BD87094ED2C21EC501CB243
+B9A75B978F399215FE2EA1DD52681513E5040B6FE8E50B513F3F5827652A0C50
+594BC927681A4B85236136C4A980A62CA1E3B89862EE64378E0F255B34CCA86D
+B877F95E2DE6AFD3DCDF7EEC40BFA23C3E7271BEF2C4552F49F59D629E51B8B4
+E7417B181BC8D460EB6518910AD4722CB9562A9BF80002A91F4A251DFF1C031A
+6806D1C498581E9A00F39FA8E1AD778FA855337127C6068B9C7924ED590063A5
+4E4F941E744568F5488964D6B122E008C4BFA9DB26BAADFA11D7B81B16245C8C
+F04EEA395CC080171DB42A817743226635A3A3DEF727056EBCF0C77692190E41
+BDCED59FE781DABA153624E7B1C8ED1FBE5EC358BFD2DD3C150EA2DA8179B45F
+8D09D1F687437A337643CBDF9A16487327DC3C2D168C150982215B6DA065A4EB
+6E539DBFEB15B3836BDB5E8A19FD01D984C301239B6DFF467CA850631779F7B2
+329937C757244B1E80EBC5098C3C5604D0F3C6B770ADA4AABD72C2110E9C6E72
+4CC33E25518FAD3E211EB59728E316C326E16CBA7735B57748AA42EC8C43CE8F
+FC9D1AEB17D8962C9926BDAD1AD4AF852F335A9B6EDE657419792C008F42B604
+C3343DCF7FF63218743DCB29FDCD3A079BE95A6FC8AD660D65DE290EAEA4A0A9
+F78170889394B3C9F73E00067289D8BA8D6EFE55742F76FA4A3F1D73D3F7D5DF
+D75E50D5832B28701C81C143F623AE15FF2AB2E20C666F3F2E183B6F14560830
+4C84B6D6F5045EC8E3E61244856C0EF1162F9E231DEC58275F977DCC558E820D
+AB918FCB9EBA14713CDB2DD0E54BE4F2FFA915DB590EF21EE2C1B69F6F554B83
+BE133269E798BD2E4883EB6D6701D9BD11323EAFEFC1801FCBACF0CF8B8F8EEB
+EE82D396F2A3B3A73860BCCC022BF75EE12D20959A5997470888384710FC7DAF
+01580CE9925712FB15486A51F72C9C2D4E2B0DB1E5A1B3E86C1E9EC0199F7454
+8D1C9A49D9C766033200FD0BDAE4E800FD6533C379036925E9D9D9E6C1213988
+B2899461AFB63550F2A7E0DCF66CDAD1CA6836E9039D008984D6864E5D964CE7
+8022D710BCBFEE6A59B9B34DA0CB1E323813309CB7015A2E9DD9CD3CB4F2E86E
+3DBE1096A3E901FC2EC5EB593C89F4FCF8F01C784A266DFA0579EAA5A7F4E7CA
+50F4A12C26EAB09A63470DC0CACC9D5B98ECA75CE333C1F6ACF79B6EF88FE126
+95EC06F1332A1865EAF1316BFAADBA913556F35DECF6FAB4303B76D12F0E2350
+45B8626D4F48D7FCFA6D64F94E591CED467A817D4B14BE110E7090BB6DBC7C73
+385184FAE53EE1785D4B928C2D3C21A04A8232D0A84D7A992A2690F33B98EB48
+DEC7B9BD9FFAFC04E4E70BBEE71CA2686BAB8454D5CFDC8D56EC8A9373E5B354
+990DD4AE5DD1E1D8F889E679AB5E5611F3ADCEB7A9FFA31823B580081B223542
+0FD6E15BBF3D47D3E9289B5F4B610CD07DCC76866B2A25B47130F24167D8C3F2
+F91D8423B46D64DA82AD74FC365DEA4DAD6F272745D68529772DD689CFEA6042
+7A85D710E0C35F5B503B3278946AAA7D1D5278744DF2B9B254C074CF99003F15
+57B7979B9C7E61656FE6D00F3E871684AF08EE786E22A19579F2BFE1C5D08D94
+FD1D2A9B7D11AFA6EDB8194DDA6901D7CD0B50974D0CC24CEB074C40D4363B4E
+68146A833AE22AEF0DA100357050D8DDC725E7A893DAB1AC07C4E38456787364
+89BE5C0400BC295EE9504E97C3023B6729331CEAC20E2292ED625D30ECCE324B
+58941E79BD830362C3A2A2F63DDB7E2CDA94DF2AC0F91C0CA120F700432D751D
+9D3FE51D9D7EC0B9B914DB5485C187CC7A95A4192331018562E8798B7FD14C48
+BC09477CC35F855D4A16FA09ADD2A566538E4529F4CFC1AC58DCAB048D5E2D67
+7742AC7130538C071F896A4E2087D273D71EC87EC61B9A5FB73862BA7CA57CC2
+CB5D9252A089A8312CF5A686C9002A805F8FC7D034E7A0385A33645A63B74620
+103535381525D7E90F5CF1E1677C4B945D3C077974B769505E0704E07139CABA
+9B6630F6D21EFF4085B9D23E09872EF3CB9574B9673470BA040A32D6AAA66F72
+130A6F44BF1BD0DC620109C103595819FA81AA13063AFD011F4D2028266551CA
+9AFD20CC6280A290087C0E37C7470D59A23A0B2537A3663ABB526CB6FF04734F
+F41B5F9B43E7465251C8A75D07E77A5C387D91D8D5AC3F293E1C65E8D4624072
+55E9A11A36CDCA286E2877E89FCBCDEDBB49FA0E002C8EC33208485FE7AF3543
+AF6DA7D771D8F597B4EA7652A25257962F5FE182D7AAF823A8E89B5F3159A6AE
+AC3CB9930DAC7311423D447243A4C78C216D1128A94FCFAABCBCB88D84ABEDF3
+E31A6447AB94F374F8AC31DC051A2BDAE241C11E604CE1F3D1F8A23493071A0C
+E71F68BD86D3B1983944D97BEB31B458F642F834B7A7A869CD18F9F9B79C883B
+2B91FB1BA8F71112547A7D7D9D2F7EE52F5DB930CC7B6D0B78C031DD50549F70
+0C21F74EFF50C9BC76F115054D8B91AC9480DAFAE67331D7D4521240C113BCAD
+E6383F30E957DC259A2B258B6AC96B24AB89D86A46886113A8970B40252EB8C2
+60BA8F921197C488C7CE6639C904312EA22508105EBA7B26F5153A4A9C6CE061
+1606F965A610A2CA59A5B4B84A9D2810F32EB3813FBF9946AD4B43AF011E56B1
+1C7BC7D64D06EC98073D64F834F60310DC880DD87C63BB36AA2B2E2458A6DEE4
+2F7F0061427661BD2F495FF69F23485A2064D92586DBF6821B8BF18E6294E2B5
+3E999BF796F25984B4624E705CE53F869E6A665C22A2270ABB03D5A706E3B5BB
+FCCA5CF090EBC1E53A69F1ECE5875892D7FBA6A727F2CB24A46A139E7BD165F9
+DCF14293A62B78AE97AE9CA76C2038AE8640C219C6D2446859F237F8B871F433
+F7E98BA78C2B52608302D9988C52B0719647715672C9C877B7E4F261A429E2DB
+7FD30FB8A5681BFFDADF38DF5F540BFDBCBC68B3731F75511339705F2B882666
+CA282472D3D35DDB471B77E854F5876E2A41C63D31AEA592479D4BB8B31C6416
+5ED45222F39960CFC268198EFA04375387505247D09E986A9902820D72983925
+9713A5F51460211A17CCFC09188158AE2D823315A38F22882BAC40518720D034
+976CAA557E963A39B4715EF762CEB6A026E523F6212384716FF3E90C10298B47
+2AF7539E7E11815631124EF302E84EC639BD4EA95893D3590BCFF1D1125F6415
+9A7DD06067B9FCD7174736A57F1F11F8AC40BE09C8E3760C353120CB155F93F1
+84FC7DAEE9D12FDE3B37F6BE5F347D6CF026AE3FC17A8CDBB183E2373E4626A1
+6E980E2D52E0C17A76B8E42FB48329039C68638916020A8EDC659EBF0233B5AA
+D866EACC35D756882837027C69AF03B5103CE9223B9D6EA655D50F204C3F7277
+2E6DE152B244DB2F44CB088236A31CC9100531A62380C2BE607A1C170FEB4EAF
+0C3D1AEFCAFDC120FF4C851DDAC857CDBB78521A97C91B7417B92B9CD541D98F
+100A6C501E0A57DE9BE6F6B5217644F8855384A09BC0AF8668EC2E50DE63123F
+85316B1F9F215FE93F2A9BD2F9EDBE2FAC02A4FE47E81007CD148BB5D4E86241
+AB753C3221CF4744AEE68E5CF929269A0626A61EA1ED78BFB6343488EFCBE1B9
+77EC4CC4680AF3CC4323F9CC2B62339B839947E1E27B831EA0A8B4ABE1A402AC
+E92CDA9B9ACC156A073647F498E6288251B27B781C476A196840998C1F47473E
+C4C62D25B1ED56BCF537451642253CD69772FFCA61972A2CBAEB2576D1E0F8C5
+424FE2B3DBC0742B35F3BCC49112BA83C7D648D109C9D48182213F1B48224627
+B7762296902229C264B1C0AF9A99702A8D11CE809CC2E4642E75FF143F980BA3
+91DD9EF780B92A7377F932E280F44CBD0A30AC10E0ED4AD82E3DFF6185BCE800
+C064EED575F8C7A0F18B2393C3ABA2BE74DBCC42B627C72EF5D354BDA1425FF6
+58B698F37B7B59226CBC34EC86D24AB4FE5D3A51A2AA1010508D9251DA6778E9
+48D28B8F613D10CD545A4CB32ACE352C0EB9D18834E09B75A2A14E00DFD63294
+8DC202C0490E2B44BD08F8EFC3D60C733B6908467783997CE8BC6B8AA4D69FD5
+055351F7123E9E3F3264DA88E92C5E780199559258BDDA7CD4A1AD4CACBEB2E1
+DD7FC79766F0ACD89F8E85F1C64B0804CCA22BDE79F5C29D8E74DEF849C1DFFF
+95D2215212513CEA6F2C00C6B9B53A0DD1602A4DBB136BFBA5E8A9C1D5460FE7
+C7E75AEB19A58643F81E3C919AB6DBDCBC8D5A6D7D19B17B52371E4712A89839
+4EAD3511F8967789B89DF60E196CF6FBB84D9F7157923AF29EBB029D4988747C
+E94A7F108E1F356E29AB1C0B2BACE005E1D9D45053341A995E2F3F749919111F
+9718
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 67 /C put
+dup 83 /S put
+dup 97 /a put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
+BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
+72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
+5EE89221BFD28AE8117B69C0EDD6A58ACDDAE1AF77CC8602B0803A063A78E590
+6228BEAD4031FF82DF1C414753313B1CE7A0FEF2546F18F026DB52C7B9D56FA9
+23145E410B55F2655D12AF85D3291DAE7E838BDFA9A27F61407B392A4FBEED5E
+13E9176E7D52E4560C2FED71C6F18977226B49C37DDEEE11AAA4C46FB141884E
+934DBB9595C82C9FDB8E6C8C4D6A223490D0AEA24EDDE28E6D64F7ECEE30F0C2
+EA32F09B32CC34C36090E5896EC05400FD932A5DE6D44840E453F70AE55A0A09
+9146720A839B0CCDC4905B7C138792A09C7BE08D9FBC35566A70C5485ACC6988
+E11F60FC89F391E7AEE3D61FD567E6C4C2525D7F05A3B2C05CD88821862ADC60
+B9F25AC90893F79C4D1BD69AEC40E2FF06F0F32258E705E65D98A4770EE07815
+F797C2674BFE0B7A3B73A688930A9B6DBEF337D4942F98CB509A10544664C418
+47BF2D9FC9A6E07701488BDBF8AE664F40DAAC18009EF4059E9EC0938F4B65D0
+252C92989C09FA3061AEFE5C9C70A03744EBC1611583BAE9C0A3B2A937C26AFC
+9D6E889616B63DE1BADBD472DB792B10985737ACF5AB54CDD888E11C369EEB5B
+70A6F9F90FFE8BB6D869B2E73975E27C799EB04AAD217C1E9FB5C370FF95D282
+33FF883BB8FF49402A7C5B7EB5D4D4B92E4473E2BD66F6E8C97420B2B4895806
+0EF5F860E80248FC251EC656BE08757E9CBB69EDA5482C95B1B2A9DCB2E0DA3B
+88FEAE4D89D8D0C76B8843BDDDB1083500E68E2B1759B4C6B88009240160DF4D
+A93CDAF97714B8F7316834CDCE52194E8DEB837AF42FE7732D236DA764C37750
+A0512EA79E41972BFDB345E48906BFBD65B52CBB4BB2488825AC42FEDF0DC62D
+51A7EEF82E5E5D210CA341F0341116EC0E30E639289584EE4267EDC27BC77BD2
+3BDC306EEC0220F4F2EF8A2692FE0A72486FCD2BEB81968807E082F3783D7101
+861AA446FC0D31C6E327721D38F0B033901B72532528F6E0BD824DA390315E07
+B547182C8C9C7FCA3704E8CFBBEFD2755C288602B31576376C172FB8FC99F9A7
+4F34CBC57ACA336C94A0DE922957BDCC3D95D7EB62F68A58CC23DFBEEF48768A
+48A5BE9AAAEFE1929D0662229431677C713C631DFAFF8D39CE04B4A7C36FEE5D
+CF506D9407ADBB50E30C7E92E9C3E41F72C9A3C47FB0F1247E493BD3DFE81CD0
+E85B3634F20D53B49B161B042EBBA935C0E0A6AB565ED44E44B2843E581D53E0
+83D099E0A7FF88B0C9002A84172FA6D6BD9ED95E167FEF868207B7895C5F18E5
+81CD8AA7E1260E2CA141F5C6B78DD8D745A3A9EEA2B3825CA8E53827C51D3BFE
+9F6604951244FF5B09E9C6D2A3167E202F3EF55CD74E31796481931EEFB7DC43
+3EF68519F7648E007682208E87F41916555261748F6CD6BA8BA548C482E88A60
+53BF3E0AFF2E3BBDAF3522F1B41A81FB3BFE26B4584C8E32AA147C917C3822DB
+BDC91E06E7E46DBACC29FD6190C4F294D8DB9A9471BCC6BDA32C71C13C48DAC8
+AE3D3F144294904FF608058F0B543A2DE3186AB08A3D930C529F7E848F71BCD6
+104CF90D1828E1361A9487C23A80EFB9261573B9F234B0B43BCD35EEB3F6B0B3
+0909C29884F801D005A1026658E2893D3F4DC5C5C69671F759DC0F315738275D
+FF02FC8AF9EE50C8705DD1E7761EAE3618345A611558810C0C8F14285D5E4D32
+9F74E994984F77293882016123463DD07C43E0D66FC05AD4DB9F1AE0FC67FBA9
+C908B5A2AEC5123590D79092BB6041A65D70A5B8A374E7EBBB31B97CA1076F2D
+AEF0C22D77E79A16064C2265CC78089DC98452E95E613A89714B52180C4B4AFD
+838877ECA6DBEF3CC7D20D1EEDE3929E3F94B6A63718DB669427B91CB2803886
+08DE53D1D22FD62C1A7EEAD41FC68759FC8A54BBD929E1E191F1CC18309AD684
+C9C51D1A7252C03BA4E1942289E536F4E191C0051E20235FF8EE23438BD00C5E
+27CE47EB4E4DCEC5BEAFFA95984B177C0EA5D1A64F75D746840A597A0B477BDE
+63C3EF3C4E1879B2C052D923428B003811AEB03FEF3B7C8D86F1E51394ED55DD
+14F3F9EF169F5509BAD5C9DB99FCBC458D7037A46CAC664064763210A0D43ABB
+CFC0A9C8B3ABBCE0B75A6B80CF500EFD043CB0955D959B5C417376A576447E7B
+E076D4D1BD4A36693174A43A34771A2EF4A089FB0CE8EB0E285E19824049AABF
+161FD0E98A55E0037D7FD4C811926623756E0E1F3AE388F299567065BC55D7BE
+6FFB5907015CAE18E4E2C86F9F99B77CB3159B46E1A61A558969D621714D303A
+41DCBEECD2D97F216AEAC845C4A45BE9AF143827715A1FE671847EE2F8DF2EDE
+5F89D890CA410D0614A3A0349D4173E50EE0F4D97521CB974E2DDEA9073D77C4
+DF49EBC8F2B26243020F9F619D4BA0984BC74BCCA2C9465AC2642896E817C076
+52891681283D056DFCA9157458A4D18396BF0AF34B7926CDBE1066213E111126
+5A7FA968596D73A578EEB21E4F84A8177757F63DB6A8D969D605D073C0381E14
+DDCFD706CC6ECF3BD35AA8C751DBFE15E52586D0953506F5A1049F072612E814
+01D3376BFFCDD837B7AC2F97D1A2291FB1DA5C1E7B1045388CC8FC9625ECE3A8
+8ADD7641265C805C4605C0459005265339F3E488BCFC3444ED6069FCECD621CA
+6483EE193B1FD0EAA7B8527DE12825F4CDA3A2539D89ED8D07454A08F6709FCC
+E6E2A69DE1A16232E7303A0D3BEA6DC655BB977A09A301D875A8DA34AB354552
+F1148892767A1CFF8DEE1593F7A40BFD77A047C9B3A25890984FCF189E80A748
+1A7B79EA99649053B3A8B3FB1116524C8439589C3030AB7875CCA1ED6738CCEA
+0852662239E33797AAA0519540A17CEB94124D499F06219B7AF2F410AABFEFA5
+86BFF51D4622AA5D7873C77E016AD925E5D4B2431D8423BC9D56000F7B61DFA5
+46637C42EF5160CC4C1DB7E0C24C604579B34F8C063E011E0FD306A7AB3B23ED
+7163FA717AEF2908F657EB8AE94ECF91
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 160 /abreve put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
+EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
+3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
+B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
+16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
+DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
+A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
+DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
+710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
+D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
+19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
+852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+TeXDict begin 39158280 55380996 1000 2540 2540 (imp.dvi)
+@start /Fa 206[163 163 48[{}2 316.314 /CMR9 rf /Fb 161[351
+137 36[176 176 176 176 176 176 176 176 176 48[{}11 351.46
+/CMMI10 rf /Fc 132[176 5[195 137 139 138 185 195 176
+195 293 98 2[98 195 176 107 156 195 156 195 176 12[254
+2[273 239 14[264 6[98 1[176 176 176 176 3[176 176 1[98
+117 98 2[137 137 98 19[176 176 18[{}39 351.46 /CMR10
+rf /Fd 138[229 5[206 229 1[115 2[115 5[184 1[206 25[324
+3[298 67[{}9 421.752 /CMR12 rf /Fe 141[312 1[405 364
+405 607 202 2[202 3[340 3[354 31[551 25[202 39[{}11 728.927
+/CMB10 rf /Ff 59[1125 112[281 11[450 7[0 8[169 1[169
+1[169 9[0 30[0 0 0 6[0{}12 562.336 /TeXMUSIX16-Regular
+rf /Fg 53[1125 1[281 2[2249 1125 562 56[1125 6[562 1[141
+36[158 1[158 6[351 9[562 1[562 7[0 0 9[211 1[211 3[0
+0 3[0 0 30[0 0 0 6[0{}25 702.92 /TeXMUSIX20-Regular rf
+/Fh 138[189 117 1[148 1[180 180 198 4[108 7[180 13[198
+15[251 67[{}10 351.46 /CMTI10 rf /Fi 95[0 160[{}1 702.92
+/TeXMUSIXSPX-Regular rf end
+TeXDict begin
+a4
+ end
+TeXDict begin 3 2 bop -1540 3699 18628 15 v -1540 3875
+V -1540 4050 V -1540 4226 V -1540 4402 V -1540 2082 V
+-1540 2223 V -1540 2363 V -1540 2504 V -1540 2645 V -1540
+-26 V -1540 149 V -1540 325 V -1540 501 V -1540 676 V
+-1540 4402 15 4436 v -1716 -341 a Fb(30)-1540 3253 y
+Fi(\240)-1540 3868 y Fg(I)-1487 2497 y Ff(G)-1540 494
+y Fg(G)-960 4219 y(2)-957 2356 y Ff(2)-960 318 y Fg(2)p
+-351 4482 15 615 v -350 3868 a(\007)p 728 4570 V 729
+3956 a(\007)1838 4922 y Fc(7)1929 3903 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.00002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 1929 3903 a
+1806 4658 15 615 v 1807 4043 a Fg(\007)p -393 2785 254
+15 v -392 2926 V -349 3252 15 334 v -348 2919 a Ff(\007)p
+686 2785 254 15 v 687 2926 V 730 3322 15 334 v 731 2989
+a(\007)1905 3172 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-15.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (50.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 1 N end
+ 1905 3172 a 1764 2785 254 15 v 1765
+2926 V 1766 3066 V 1809 3393 15 334 v 1810 3059 a Ff(\007)p
+-189 2567 15 492 v -350 2567 a(\007)961 2666 y
+ slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (-0.79999pt) GD N /S2brk
+S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (50.0pt) GDAR N /S2dir
+1 N /S2dash 0 N /S2adj 1 N end
+ 961 2666
+a 686 2785 254 15 v 891 2778 15 492 v 730 2778 a Ff(\007)1891
+2778 y
+ slur@Dict begin (2.0pt) GD S2hgt (-4.0pt) GD 1.6 (2.0pt) GD M S2dir
+M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
+S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1891 2778 a 1891 2778 a
+ end
+ 1891 2778 a 1764 2785
+254 15 v 1969 2778 15 492 v -83 w Ff(\007)-523 1381 y
+Fc(Ah,)p -147 406 15 615 v -350 406 a Fg(\010\000)2758
+4834 y(\\)2916 4922 y Fc(6)2990 4043 y
+ slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2990 4043 a 2990
+4043 a
+ end
+ 2990 4043 a 2885 4658 15 615 v -104 w Fg(\007)2834
+3059 y
+ slur@Dict begin (2.0pt) GD S1hgt (-12.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2834 3059 a 2834 3059 a
+ end
+ 2834 3059 a 2843 2785
+254 15 v 2844 2926 V 2845 3066 V 2888 3393 15 334 v 55
+w Ff(\007)2716 2848 y(6)p 2843 2785 254 15 v 3048 2848
+15 493 v 2 w(\007)2707 1381 y Fc(mia)p 3089 494 15 572
+v 3090 494 a Fg(\()-204 b(\007)3542 1381 y Fc(for)p 3851
+582 V 3852 582 a Fg(\()g(\007)p 4409 4395 15 703 v 4409
+3692 15 1617 v 4409 669 15 703 v 4927 4272 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (3.49998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 4927 4272
+a 5008 4131 15 615 v 4805 4131 a Fg(\010)7958 4131 y
+ slur@Dict begin (2.5pt) GD S0hgt (7.5pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+7958 4131 a 7958 4131 a
+ end
+ 7958 4131 a 8056 4131 15 572
+v -105 w Fg(\007)p 8819 4131 15 533 v 763 w(\007)p 9581
+4219 15 583 v 9378 4219 a(\007)8056 3560 y(\305)8101
+3562 y(\305)p 10343 4307 15 633 v 10140 4307 a(\007)p
+4762 2785 254 15 v 4763 2926 V 4764 3066 V 4807 3129
+a Ff(\010)p 4765 2785 V 4766 2926 V 4809 3463 15 474
+v 4810 2989 a(\010)p 4762 2785 254 15 v 4967 2778 15
+492 v 4806 2778 a(\010)7853 2638 y(?)p 8776 2638 15 387
+v 762 w(\007)p 9539 2708 15 419 v 9378 2708 a(\007)8776
+2251 y(\304)9184 2271 y(\304)p 10097 2785 254 15 v 10302
+2778 15 451 v 10141 2778 a(\007)4295 1381 y Fc(-)332
+b(tu)p 5008 669 15 572 v 5009 669 a Fg(\()-204 b(\007)5222
+1381 y Fc(-)147 b(na)p 5770 757 V 5771 757 a Fg(\()-204
+b(\007)6151 1381 y Fc(non)p 6532 669 V 6533 669 a Fg(\()g(\007)7049
+1381 y Fc(se)p 7294 582 V 7295 582 a Fg(\()g(\007)7675
+1381 y Fc(l'ab)p 8056 494 15 615 v 7853 494 a Fg(\010)p
+10901 4395 15 703 v 10901 3692 15 1617 v 10901 669 15
+703 v 11296 4922 a Fb(])p Fa(10)11419 4535 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-4.00002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 11419 4535
+a 11500 4395 15 615 v 11297 4395 a Fg(\007)11296 2708
+y Ff(\011)p 11254 2785 296 15 v 11255 2926 V 11298 2989
+a(\011)11128 2848 y(6)p 11423 2785 254 15 v 11628 2848
+15 493 v 170 w(\007)8914 1381 y Fc(-)1346 b(-)673 b(bia)p
+11500 494 15 572 v 11501 494 a Fg(\()-204 b(\007)11297
+406 y(\000)12767 4922 y Fa(11)12873 4395 y
+ slur@Dict begin (2.5pt) GD S0hgt (0.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 12873 4395
+a 12873 4395 a
+ end
+ 12873 4395 a 12971 4395 15 615 v -105
+w Fg(\007)13001 2666 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (50.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 13001 2666 a 12725 2785 254 15
+v 12930 2778 15 492 v 12769 2778 a Ff(\007)12230 1381
+y Fc(a)p 12434 494 15 572 v 12435 494 a Fg(\))g(\007)p
+12971 582 15 616 v 12768 582 a(\007)p 13508 669 15 650
+v 13305 669 a(\007)p 14046 757 15 684 v 13843 757 a(\007)p
+12476 1381 2115 15 v 12971 98 a(\312)13467 148 y(\312)12971
+-33 y(\312)13467 16 y(\312)p 14326 852 317 15 v 14583
+845 15 718 v 14380 845 a(\007)14916 4922 y Fa(11)15039
+4535 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-4.00002pt) GD N /S1brk
+S1hgt (2.5pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (0.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 1 N end
+ 15039 4535 a 15120 4395 15 615 v 14917 4395 a
+Fg(\007)15995 4922 y Fb(])p Fa(10)16100 4395 y
+ slur@Dict begin (2.5pt) GD S1hgt (0.0pt) GD 1.6 (2.5pt) GD M S1dir
+M A S1x1 S1y1 CP (4.00002pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 16100
+4395 a 16100 4395 a
+ end
+ 16100 4395 a 16199 4395 15 615 v
+-104 w Fg(\007)15001 2778 y
+ slur@Dict begin (2.0pt) GD S0hgt (-4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 15001 2778 a 15001 2778 a
+ end
+15001 2778 a 14874 2785 254 15 v 15079 2778 15 492 v
+-83 w Ff(\007)p 15953 2785 254 15 v 16158 2848 15 493
+v 15997 2848 a(\007)14777 1381 y Fc(sde)p 15120 757 15
+615 v 14917 757 a Fg(\010)p 17073 4395 15 703 v 17073
+3692 15 1617 v 17073 669 15 703 v 15663 1381 a Fc(-)794
+b(-)17087 4395 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 4395 a -1540 10242 18628 15 v
+-1540 10418 V -1540 10593 V -1540 10769 V -1540 10945
+V -1540 8625 V -1540 8766 V -1540 8906 V -1540 9047 V
+-1540 9188 V -1540 6517 V -1540 6692 V -1540 6868 V -1540
+7044 V -1540 7219 V -1540 10945 15 4436 v -1716 6202
+a Fb(33)-1540 9796 y Fi(\240)-1540 10411 y Fg(I)-1487
+9040 y Ff(G)-1540 7037 y Fg(G)-960 10762 y(2)-957 8899
+y Ff(2)-960 6861 y Fg(2)-367 10674 y(\011)p -410 9328
+296 15 v -409 9469 V -366 9532 a Ff(\011)p -408 9328
+V -365 9321 a(\011)-367 9181 y(\011)-584 7924 y Fc(gno.)p
+-420 7395 370 15 v -366 7388 a Fg(\011)p 1694 10938 15
+703 v 1694 10235 15 1617 v 1694 7212 15 703 v 2276 10674
+15 615 v 2073 10674 a(\010)p 2030 9328 254 15 v -1353
+x Ff(\010)p 2031 9328 V 2032 9469 V 2075 9865 15 545
+v 2076 9532 a(\010)p 2233 9181 15 492 v 2072 9181 a(\010)1865
+7924 y Fc(Que)p 2276 7037 15 615 v 2073 7037 a Fg(\007)2073
+6949 y(\000)2768 7924 y Fc(-)278 b(sto,)p 3536 7212 15
+572 v 3537 7212 a Fg(\()-204 b(\007)p 4264 10850 15 615
+v 4061 10850 a(\007)p 4018 9328 254 15 v 4019 9469 V
+4062 9462 a Ff(\010)p 4020 9328 V 4063 9795 15 474 v
+4064 9321 a(\010)p 4222 9181 15 492 v 4061 9181 a(\007)3897
+7924 y Fc(que)p 4264 6949 15 615 v 4061 6949 a Fg(\007)p
+5294 11026 V 5091 11026 a(\007)p 5252 9110 15 492 v -1916
+x Ff(\007)4644 7924 y Fc(-)209 b(sto)p 5294 7037 15 572
+v 5295 7037 a Fg(\()-204 b(\007)5563 7924 y Fc(m'ac)p
+6023 7125 V 6024 7125 a Fg(\()g(\007)p 6547 10938 15
+703 v 6547 10235 15 1617 v 6547 7212 15 703 v 7129 10674
+15 615 v 6926 10674 a(\010)p 6883 9328 254 15 v -1353
+x Ff(\010)p 6884 9328 V 6885 9469 V 6928 9865 15 545
+v 6929 9532 a(\010)p 7087 9181 15 492 v 6926 9181 a(\010)6516
+7924 y Fc(-)232 b(co)p 7129 7037 15 615 v 6926 7037 a
+Fg(\010)p 8586 11026 V 8383 11026 a(\010)p 8340 9328
+254 15 v 8341 9469 V 8384 9462 a Ff(\010)p 8342 9328
+V 8385 9795 15 474 v 8386 9321 a(\010)p 8543 9110 15
+492 v 8382 9110 a(\010)7681 7924 y Fc(-)484 b(ra:)p 8586
+7125 15 572 v 8587 7125 a Fg(\()-204 b(\007)8859 7924
+y Fc(c)-10 b(h'al)p 9314 7125 V 9315 7125 a Fg(\()-204
+b(\007)9606 7924 y Fc(-)35 b(tri)p 10042 7125 V 10043
+7125 a Fg(\()-204 b(\007)10506 7924 y Fc(ca)p 10770 7212
+V 10771 7212 a Fg(\()g(\007)p 11295 10938 15 703 v 11295
+10235 15 1617 v 11295 7212 15 703 v 11877 10762 15 615
+v 11674 10762 a(\007)11673 9251 y Ff(\010)p 11631 9328
+254 15 v 11674 9725 15 474 v 11675 9391 a(\010)p 11835
+9110 15 492 v 11674 9110 a(\010)11094 7924 y Fc(-)255
+b(deo,)p 11877 7300 15 615 v 11674 7300 a Fg(\010)p 12907
+10762 15 572 v 12704 10762 a(\007)12908 10191 y(\303)13080
+10200 y(\303)p 13636 10850 15 623 v 13433 10850 a(\007)14192
+11202 y(Z)p 14364 10938 15 615 v 14161 10938 a(\010)p
+14118 9328 254 15 v -1547 x Ff(\010)p 14161 9725 15 474
+v 14162 9251 a(\010)p 14322 9040 15 492 v 14161 9040
+a(\010)14160 7212 y Fg(?)14638 7924 y Fc(c)-10 b(h'al)p
+14888 7432 15 572 v 14889 7432 a Fg(-)14889 6861 y(\007)15385
+7924 y Fc(-)34 b(tri)p 15617 7432 V 15618 7432 a Fg(-)15618
+6861 y(\007)16285 7924 y Fc(ca)p 16549 6949 V 16550 6949
+a Fg(\()-204 b(\007)p 17073 10938 15 703 v 17073 10235
+15 1617 v 17073 7212 15 703 v 16793 7924 a Fc(-)17087
+10938 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 10938 a -1540 16521 18628 15 v -1540 16697
+V -1540 16873 V -1540 17049 V -1540 17224 V -1540 14905
+V -1540 15045 V -1540 15186 V -1540 15326 V -1540 15467
+V -1540 12796 V -1540 12972 V -1540 13147 V -1540 13323
+V -1540 13499 V -1540 17224 15 4436 v -1716 12481 a Fb(37)-1540
+16075 y Fi(\240)-1540 16690 y Fg(I)-1487 15319 y Ff(G)-1540
+13316 y Fg(G)-960 17042 y(2)-957 15179 y Ff(2)-960 13140
+y Fg(2)p -178 16954 15 615 v -381 16954 a(\007)-382 15460
+y Ff(\010)p -425 15608 254 15 v -382 15960 15 501 v -381
+15601 a(\010)p -221 15319 15 492 v -382 15319 a(\010)-541
+14204 y Fc(deo)p -178 13316 15 615 v -381 13316 a Fg(\010)p
+810 16954 15 572 v 607 16954 a(\007)811 16383 y(\303)953
+16390 y(\303)p 1509 17042 15 625 v 1306 17042 a(\007)2035
+17569 y Fc(6)p 2207 17129 15 615 v 2004 17129 a Fg(\007)p
+3605 17217 V 3402 17217 a(\007)2004 15390 y Ff(\007)p
+1961 15608 254 15 v 2004 15960 15 571 v 2005 15601 a(\007)3401
+15319 y(\007)p 3401 15916 15 597 v 3402 15530 a(\007)p
+2165 15249 15 492 v 2004 15249 a(\007)p 3562 15179 V
+3401 15179 a(\007)2004 13492 y Fg(?)2573 14204 y Fc(dal)p
+2702 13624 15 572 v 2703 13624 a Fg(-)2703 13053 y(\007)3321
+14204 y Fc(pa)p 3401 13624 V 3402 13624 a Fg(-)3402 13053
+y(\007)3811 14204 y Fc(-)120 b(ra)p 4099 13712 V 4100
+13712 a Fg(-)4100 13140 y(\007)p 4798 17217 15 703 v
+4798 16514 15 1617 v 4798 13492 15 703 v 5365 17305 15
+615 v 5162 17305 a(\010)7170 17569 y Fc(6)p 7342 17129
+V 7139 17129 a Fg(\007)p 8331 17042 V 8128 17042 a(\007)p
+5161 15802 15 413 v 5162 15390 a Ff(\010)p 7096 15608
+254 15 v 7139 15960 15 360 v 7140 15601 a(\010)p 5323
+15249 15 492 v 5162 15249 a(\010)p 7300 15249 V 1977
+w(\010)4682 14204 y Fc(-)321 b(di)p 5365 13228 15 615
+v 5162 13228 a Fg(\007)5575 14204 y Fc(-)162 b(so)6052
+14364 y Fb(^)6286 14204 y Fc(an)p 6150 13755 V 6151 13140
+a Fg(\007)7262 12912 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (16.50002pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 1 M M A N /S0lift 0 N /S0alt (106.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 7262 12912 a 6839 14204 a Fc(-)183
+b(co)p 7139 13667 15 615 v 7140 13053 a Fg(\010)p 9116
+17217 15 703 v 9116 16514 15 1617 v 9116 13492 15 703
+v 9479 16954 a(\011)9479 15460 y Ff(\011)p 9437 15608
+296 15 v 9480 15601 a(\011)9479 15319 y(\011)9585 13053
+y
+ slur@Dict begin (2.5pt) GD S0hgt (12.5pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 9585 13053 a 9585 13053 a
+ end
+ 9585 13053 a 9479 13624 15
+572 v -105 w Fg(\007)p 10178 13693 15 554 v 10179 13140
+a(\007)10179 13562 y(\310)10403 13584 y(\310)9479 13624
+y(\312)9561 13631 y(\312)p 10670 13742 15 515 v 10671
+13228 a(\007)p 11367 13316 15 616 v 11164 13316 a(\007)p
+11859 13404 15 654 v 11656 13404 a(\007)p 12352 13492
+15 693 v 12149 13492 a(\007)11367 12833 y(\312)11728
+12869 y(\312)11367 12701 y(\312)11728 12737 y(\312)p
+12844 13580 15 731 v 12641 13580 a(\007)p 13337 13492
+15 616 v 13134 13492 a(\007)p 13829 13580 15 703 v 13626
+13580 a(\007)p 14065 13675 317 15 v 14322 13668 15 791
+v 14119 13668 a(\007)p 13337 13051 1485 85 v 13337 12919
+V 14814 13580 15 703 v 14611 13580 a(\007)p 15307 13492
+15 791 v 15104 13492 a(\007)p 15800 13404 15 753 v 15597
+13404 a(\007)p 16292 13316 15 714 v 16089 13316 a(\007)15307
+12833 y(\212)15668 12797 y(\212)15307 12701 y(\212)15668
+12665 y(\212)p 16785 13228 15 675 v 16582 13228 a(\007)p
+17073 17217 15 703 v 17073 16514 15 1617 v 17073 13492
+15 703 v 8099 14204 a Fc(-)1257 b(-)g(-)f(-)h(-)g(-)g(-)17087
+17217 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 17217 a -1540 22801 18628 15 v -1540 22977
+V -1540 23152 V -1540 23328 V -1540 23504 V -1540 21184
+V -1540 21325 V -1540 21465 V -1540 21606 V -1540 21746
+V -1540 19075 V -1540 19251 V -1540 19427 V -1540 19603
+V -1540 19778 V -1540 23504 15 4436 v -1716 18761 a Fb(40)-1540
+22355 y Fi(\240)-1540 22970 y Fg(I)-1487 21599 y Ff(G)-1540
+19596 y Fg(G)-960 23321 y(2)-957 21458 y Ff(2)-960 19420
+y Fg(2)-301 23233 y(\011)p -343 21887 296 15 v -342 22028
+V -299 22091 a Ff(\011)p -341 21887 V -298 21880 a(\011)-301
+21739 y(\011)p -97 19596 15 528 v -300 19596 a Fg(\007)p
+254 19954 317 15 v 511 19947 15 849 v 308 19947 a(\007)p
+1119 19859 15 730 v 916 19859 a(\007)-97 19200 y(\304)610
+19235 y(\304)-97 19068 y(\304)610 19104 y(\304)p 1726
+19771 15 612 v 1523 19771 a(\007)p 2334 19683 15 791
+v 2131 19683 a(\007)p 2942 19596 15 764 v 2739 19596
+a(\007)p 3549 19508 15 737 v 3346 19508 a(\007)2334 19024
+y(\212)3040 18954 y(\212)2334 18893 y(\212)3040 18822
+y(\212)p 4157 19420 15 710 v 3954 19420 a(\007)p 4765
+19332 15 616 v 4562 19332 a(\007)p 5372 19420 15 643
+v 5169 19420 a(\007)p 5980 19508 15 670 v 5777 19508
+a(\007)4765 18849 y(\312)5471 18919 y(\312)4765 18717
+y(\312)5471 18787 y(\312)p 6588 19596 15 697 v 6385 19596
+a(\007)p 7195 19508 15 616 v 6992 19508 a(\007)p 7803
+19596 15 703 v 7600 19596 a(\007)p 8411 19508 15 616
+v 8208 19508 a(\007)p 7195 19067 1831 85 v 7195 18935
+V 9019 19683 15 791 v 8816 19683 a(\007)p 9422 23497
+15 703 v 9422 22794 15 1617 v 9422 19771 15 703 v 9867
+23848 a Fa(11)10159 23286 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.99998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 10159 23286 a 10071 23233
+15 615 v 9868 23233 a Fg(\010)p 9825 21887 296 15 v 9826
+22028 V 9869 22091 a Ff(\011)p 9658 21887 254 15 v 9701
+22240 15 360 v 9702 21880 a(\010)9867 21810 y(\000)p
+10029 21669 15 492 v 9868 21669 a(\010)9867 19596 y Fg(\011)11591
+23848 y Fa(10)11528 23145 y
+ slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 11528 23145 a 11528 23145
+a
+ end
+ 11528 23145 a 11883 23286 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.99998pt) GD N /S0brk
+S0hgt (2.5pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (0.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 11883 23286 a 11795 23233
+15 615 v 11592 23233 a Fg(\007)12843 23848 y Fc(7)12748
+23145 y
+ slur@Dict begin (2.5pt) GD S0hgt (10.0pt) GD 1.6 (2.5pt) GD M S0dir
+M A S0x1 S0y1 CP (4.00002pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 12748 23145 a 12748 23145 a
+ end
+ 12748 23145 a 13015
+23233 15 615 v 12812 23233 a Fg(\007)p 12769 21887 254
+15 v 12812 22284 15 334 v 12813 21950 a Ff(\007)p 11753
+21739 15 492 v 11592 21739 a(\010)p 14031 23497 15 703
+v 14031 22794 15 1617 v 14031 19771 15 703 v 14476 23585
+a Fg(\011)p 14434 21887 296 15 v 14435 22028 V 14478
+22021 a Ff(\011)14476 21669 y(\011)-104 20483 y Fc(-)g(-)f(-)h(-)f(-)g
+(-)h(-)f(-)h(-)f(-)g(-)629 b(ra.)14476 19683 y Fg(\011)p
+16915 23497 15 703 v 16915 22794 15 1617 v 16915 19771
+15 703 v 16982 23497 106 703 v 16982 22794 106 1617 v
+16982 19771 106 703 v 17087 23497 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 17087 23497 a eop
+end
+userdict /end-hook known{end-hook}if
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chords.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chords.eps
index 05abb30922f..74809a185d7 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chords.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chords.eps
@@ -1,710 +1,710 @@
-%% LaTeX2e file `eps/chords.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: chords.dvi
-%%CreationDate: Sun Sep 28 15:39:31 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 20 706 453 793
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE chords.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1539
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 40 /parenleft put
-dup 45 /hyphen put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 70 /F put
-dup 71 /G put
-dup 73 /I put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86413608B35BCA07C3C33A3187536822A810ECCE2932BF5E977C2144
-654351CE8F69FF63B22A9CB0C53A912051785E07C6A0D1C516E31E1C2D53B399
-826B83B39E8C24A9B763A4284FF5CF7895E8C659E358A3DC5AC833C4B0091009
-B4C033B43081ED7509707763E21590EA137B7453212BF4C30F9475435BC78276
-0671B964BD4E995FC8202BB459367B5C9AC6C1CE997B973667180588354062C9
-07C881D220723C7A4DAC06464ED790213AE40D8A162D59BA35FD2403BF8360AD
-8AB0F67D8601DD65298BD58C0381B5D6657F3E54731542C5C6CF80B53A4B53D7
-EE7B5BC7831006164B0EA6F863C0A71833870F500EA8791D79941291722A40DC
-BFFCE453A3C4124B31348890962DA2ED340A47425712435326AEDCD82E62CF66
-261F16EBCDA26C25B337279BBB42BC671071A81BC36F4D8B9A3AFFF195495F26
-E050143EBAD91652740BF64F06C5CF00193520A63E29F24FC5689401B97B8714
-E9B098725AAA4CAE0221E2C18D1A0CCAF89698D9159B0743595A7E5BEF4912AA
-0E6799B4B4312879B7F08DC92C2707AB54C740C94E05B887C138DE513BE3E53D
-53C7A25FC607CA45E08D9649195C4CB928420363535D98B3823A6B30AA18015E
-F8E9F24CE33AB05B560E40063842332305FA441260EC72945D34124D0422F6A9
-7DCCFC937B9EB74A96B89CCC8C358E23706C435FC31D78041ECAD17A8A841085
-EEEDAA1FA496DDB95C47A24ADC12641C5B2680E6E0B6BBF1D40C8536D0D541F9
-A18BC3D98CADF1E924E646DB9F4B81CFFCB5BA39360A1236DD285DBB9F0780A9
-A7020C872CBF83E6DA79234C55FE2073C2172211BF4D0A38DC7E2718BC2069D4
-BCB872490253C8AA020E88E4074389A25339D8EBD35B077939CD337F7EFED026
-E87B6A0B597D34CB190519C915522B561CCF10BD471E467FF8BC905FB538B929
-961D70C9821AE598ED3B21A872A873F4E1182EA0AF88601FB2BEFCF8212568D5
-051F8F6AF8FFAA5D16FA43B593507DBBFDA8062D260615E9F1CA499D1661D979
-D1E17BF49142C33F8A58E1565FAE0ED79D953B436456777354799C92495257EA
-085081A47B223BF13CB43A875B7448AA88598C5112985CD6C697D0AB4AF0F4AA
-5389D8224D5965278C502CAC7E223CB30110CB9990D537A263B733884E72B63B
-96901D5D6BAF646945F0B6BC08B4B49806DF3E9A81FBFE9E09CB31C7A3B2C781
-977AC35AC6B4CE2670AE2039F97ACEFB9EF1C9B3CA5C401A11C5EF2EB8D9A915
-8C81406900918C15ED8D574C6F1B55605ECABB5DA2B9325C6C41B115B1761FB5
-6FEAE9A4FFEDAFC868E8E3F92977206E193C64E97F4C514359A2F385A84BB64B
-2726FCE0B5F005376683AC80930CCD4FECA4051B7E7FB6E04FEDA09EF1584E3A
-85D7F199F53B99F0F70ED4EF51404D8B90F5ED7AAA1B3FE9858DF2F9CD201D8B
-7167E007D99ADFFD6D8342202F197322C3049B68971620D01A046409E2998BF0
-05B9865D3A7E8E924C6E72ABC863F4015E6D38C4AECF0705FD5B8DF595B28761
-20A8F4567C23325827533D831EE9692BCAD63793F2DA5D3E27E3AA5BE7446F1D
-0CBBCAF69B7671920724107A24C4BD30DAF4EA67909A94FB42E8C0C0E61BC54D
-9FED0F9C60FC1D552E8741B0501C4D3427375DDE4D2FE853C60CF2AD88BB3E8C
-FD60E6E2330996F38071F903A7C41B14F5FB9A702F193BB965889B56DE00DB5C
-EB72AA9620F5E1A74A2793CE4701EA8188F52433FF1BBF624440B825B9B7BBFF
-F07C47594E149F72B5BB9704FC55F2216E0AE7658F707B1D34B4A525A201DEB8
-3A85C34B8C8B5E9AE3A53A1D77E4244859A00BA8FB7BAACBCB13530F0D11BC01
-8C87239759CF08A60C3F0BABECC655B9A36B7A9A083C233085928962809F9991
-D0322964925407CA917FAEE6CF8ECC2708D2D88759C8E1366EC523DDF6752FC6
-394F761E9FAE9BC286E63B8EF6C9856979B05740FF437D954C024A2533C60F2F
-9FE8E5AB38A70BC2C81185D99C69459799F20A9C87DC7130B45F3CDE37E6D48C
-A2AA797687A29933BFA25E3CD02A5D8A1ACFED52E7C8A3CD27040B3FC1AB364C
-A80A90D01EEFA5BF48F4967CAEC1D5816D61004B4CE04DA574D9B2F391BD718B
-B6DE0FDF744B140856434C321E30019847B3791F147397891809FDE73210DDBC
-0CF843BBCD11DA31C2C3313C2630842878D528BBEC7DDD9E4BD088A3E8BF03A9
-67D4625A1B3BA239FC9FD1B8EFCB0FC6D629563A3FFFD11034B41D8BEA4F53DD
-C8AB9D5374287FC28D12E1D15A90D63CE8E38A7420786F80E9702EFABF604F9B
-1F4912588BB499A57B86C84F9C38B642E8AEE5C482D5B65336C274CA99549326
-41BE19E29C5A621838939E3649D39EF11B3554BCA9D390781ECBD254DD173801
-61B3EF7FB9405633F073357021CB54B515C9EAFD7BC81B58
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 156 /IJ put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
-19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
-F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
-78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
-3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
-ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
-E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
-51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
-906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
-30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
-C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
-CF6FF708F7024031
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (chords.dvi)
-@start /Fa 182[106 1[106 0 15[40 1[40 1[40 4[0 4[0 31[0
-0 6[0{}11 132.835 /TeXMUSIX16-Regular rf /Fb 99[0 156[{}1
-166.044 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 195 a Fb(\234)p -364 297 3529
-4 v -364 330 V -364 363 V -364 396 V -364 430 V -364
--35 V -364 -2 V -364 31 V -364 64 V -364 98 V -364 430
-4 467 v 133 x Fa(I)-364 63 y(G)-254 395 y(2)-254 29 y(2)-110
-428 y(6)25 b(\010)-45 395 y(\010)-84 345 y(2)o(\010)-84
-461 y(2)p -55 463 60 4 v -7 461 4 227 v -1 w(\010)-196
--4 y(2)72 b(\010)-158 -20 y(2)h(\010)-118 -54 y(6)33
-b(\010)p -45 146 4 200 v -44 29 a(\010)p 382 430 4 467
-v 424 395 a(6)28 b(\010)452 345 y(6\010)452 478 y(6)p
-482 463 60 4 v 530 478 4 243 v(\010)416 -20 y(6)36 b(\010)452
--54 y(4\010)444 29 y(6)p 492 146 4 200 v 9 w(\010)p 919
-430 4 467 v 934 395 a(6)60 b(\007)994 345 y(6\007)994
-478 y(6)p 1024 463 60 4 v 1072 478 4 243 v(\007)1208
-395 y(6)88 b(\007)1296 345 y(6\007)1296 478 y(6)p 1326
-463 60 4 v 1374 478 4 243 v(\007)934 -20 y(6)60 b(\007)994
--54 y(4\007)994 29 y(6)p 1034 146 4 200 v 1 w(\007)1236
--20 y(6)g(\007)1296 -54 y(4\007)1296 29 y(6)p 1336 146
-V 1 w(\007)p 1638 430 4 467 v 1748 411 a(\007)1748 378
-y(\007)1748 353 y(F)1748 386 y(F)1748 420 y(F)1748 453
-y(F)1748 328 y(\007)p 1786 445 4 225 v 39 w(\()1748 445
-y(\007)1662 -20 y(2)6 b(\007\000)1748 -37 y(\007)1748
--54 y(\000)p 1738 -69 60 4 v -17 x(\007)1748 -87 y(\000)p
-1748 129 4 200 v 1749 13 a(\007\000)1961 395 y(\007)1961
-378 y(\000)1883 362 y(2)38 b(\007)1961 345 y(\000)1921
-312 y(2\007)2041 304 y(\000)1921 428 y(2)p 1999 428 4
-214 v(\007)1961 411 y(\000)2130 -54 y(2)g(\007)p 2198
--69 60 4 v -33 x(\007)2168 -120 y(2)p 2198 -69 V 2198
--102 V(\007)2168 -4 y(2)p 2208 104 4 225 v 2209 104 a(-)2209
--4 y(\007)p 2421 430 4 467 v 2438 345 a(4)80 b(\007)2478
-312 y(4)40 b(\007)2518 262 y(4)p 2548 264 60 4 v(\007)2518
-378 y(4)p 2596 378 4 202 v(\007)2780 312 y(4)f(\007)2740
-345 y(4)79 b(\007)2706 395 y(6)113 b(\007)2820 262 y(4)p
-2849 264 60 4 v 2859 498 4 237 v(\007)2452 -54 y(4)66
-b(\010)2518 -103 y(4)p 2548 -69 60 4 v 2548 -102 V -1
-x(\010)2492 -20 y(4)p 2596 -20 4 162 v 26 w(\010)p 3161
-430 4 467 v 3165 594 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3165 594 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/chords.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: chords.dvi
+%%CreationDate: Sun Sep 28 15:39:31 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 20 706 453 793
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE chords.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1539
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 40 /parenleft put
+dup 45 /hyphen put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 70 /F put
+dup 71 /G put
+dup 73 /I put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86413608B35BCA07C3C33A3187536822A810ECCE2932BF5E977C2144
+654351CE8F69FF63B22A9CB0C53A912051785E07C6A0D1C516E31E1C2D53B399
+826B83B39E8C24A9B763A4284FF5CF7895E8C659E358A3DC5AC833C4B0091009
+B4C033B43081ED7509707763E21590EA137B7453212BF4C30F9475435BC78276
+0671B964BD4E995FC8202BB459367B5C9AC6C1CE997B973667180588354062C9
+07C881D220723C7A4DAC06464ED790213AE40D8A162D59BA35FD2403BF8360AD
+8AB0F67D8601DD65298BD58C0381B5D6657F3E54731542C5C6CF80B53A4B53D7
+EE7B5BC7831006164B0EA6F863C0A71833870F500EA8791D79941291722A40DC
+BFFCE453A3C4124B31348890962DA2ED340A47425712435326AEDCD82E62CF66
+261F16EBCDA26C25B337279BBB42BC671071A81BC36F4D8B9A3AFFF195495F26
+E050143EBAD91652740BF64F06C5CF00193520A63E29F24FC5689401B97B8714
+E9B098725AAA4CAE0221E2C18D1A0CCAF89698D9159B0743595A7E5BEF4912AA
+0E6799B4B4312879B7F08DC92C2707AB54C740C94E05B887C138DE513BE3E53D
+53C7A25FC607CA45E08D9649195C4CB928420363535D98B3823A6B30AA18015E
+F8E9F24CE33AB05B560E40063842332305FA441260EC72945D34124D0422F6A9
+7DCCFC937B9EB74A96B89CCC8C358E23706C435FC31D78041ECAD17A8A841085
+EEEDAA1FA496DDB95C47A24ADC12641C5B2680E6E0B6BBF1D40C8536D0D541F9
+A18BC3D98CADF1E924E646DB9F4B81CFFCB5BA39360A1236DD285DBB9F0780A9
+A7020C872CBF83E6DA79234C55FE2073C2172211BF4D0A38DC7E2718BC2069D4
+BCB872490253C8AA020E88E4074389A25339D8EBD35B077939CD337F7EFED026
+E87B6A0B597D34CB190519C915522B561CCF10BD471E467FF8BC905FB538B929
+961D70C9821AE598ED3B21A872A873F4E1182EA0AF88601FB2BEFCF8212568D5
+051F8F6AF8FFAA5D16FA43B593507DBBFDA8062D260615E9F1CA499D1661D979
+D1E17BF49142C33F8A58E1565FAE0ED79D953B436456777354799C92495257EA
+085081A47B223BF13CB43A875B7448AA88598C5112985CD6C697D0AB4AF0F4AA
+5389D8224D5965278C502CAC7E223CB30110CB9990D537A263B733884E72B63B
+96901D5D6BAF646945F0B6BC08B4B49806DF3E9A81FBFE9E09CB31C7A3B2C781
+977AC35AC6B4CE2670AE2039F97ACEFB9EF1C9B3CA5C401A11C5EF2EB8D9A915
+8C81406900918C15ED8D574C6F1B55605ECABB5DA2B9325C6C41B115B1761FB5
+6FEAE9A4FFEDAFC868E8E3F92977206E193C64E97F4C514359A2F385A84BB64B
+2726FCE0B5F005376683AC80930CCD4FECA4051B7E7FB6E04FEDA09EF1584E3A
+85D7F199F53B99F0F70ED4EF51404D8B90F5ED7AAA1B3FE9858DF2F9CD201D8B
+7167E007D99ADFFD6D8342202F197322C3049B68971620D01A046409E2998BF0
+05B9865D3A7E8E924C6E72ABC863F4015E6D38C4AECF0705FD5B8DF595B28761
+20A8F4567C23325827533D831EE9692BCAD63793F2DA5D3E27E3AA5BE7446F1D
+0CBBCAF69B7671920724107A24C4BD30DAF4EA67909A94FB42E8C0C0E61BC54D
+9FED0F9C60FC1D552E8741B0501C4D3427375DDE4D2FE853C60CF2AD88BB3E8C
+FD60E6E2330996F38071F903A7C41B14F5FB9A702F193BB965889B56DE00DB5C
+EB72AA9620F5E1A74A2793CE4701EA8188F52433FF1BBF624440B825B9B7BBFF
+F07C47594E149F72B5BB9704FC55F2216E0AE7658F707B1D34B4A525A201DEB8
+3A85C34B8C8B5E9AE3A53A1D77E4244859A00BA8FB7BAACBCB13530F0D11BC01
+8C87239759CF08A60C3F0BABECC655B9A36B7A9A083C233085928962809F9991
+D0322964925407CA917FAEE6CF8ECC2708D2D88759C8E1366EC523DDF6752FC6
+394F761E9FAE9BC286E63B8EF6C9856979B05740FF437D954C024A2533C60F2F
+9FE8E5AB38A70BC2C81185D99C69459799F20A9C87DC7130B45F3CDE37E6D48C
+A2AA797687A29933BFA25E3CD02A5D8A1ACFED52E7C8A3CD27040B3FC1AB364C
+A80A90D01EEFA5BF48F4967CAEC1D5816D61004B4CE04DA574D9B2F391BD718B
+B6DE0FDF744B140856434C321E30019847B3791F147397891809FDE73210DDBC
+0CF843BBCD11DA31C2C3313C2630842878D528BBEC7DDD9E4BD088A3E8BF03A9
+67D4625A1B3BA239FC9FD1B8EFCB0FC6D629563A3FFFD11034B41D8BEA4F53DD
+C8AB9D5374287FC28D12E1D15A90D63CE8E38A7420786F80E9702EFABF604F9B
+1F4912588BB499A57B86C84F9C38B642E8AEE5C482D5B65336C274CA99549326
+41BE19E29C5A621838939E3649D39EF11B3554BCA9D390781ECBD254DD173801
+61B3EF7FB9405633F073357021CB54B515C9EAFD7BC81B58
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 156 /IJ put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
+19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
+F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
+78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
+3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
+ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
+E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
+51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
+906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
+30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
+C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
+CF6FF708F7024031
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (chords.dvi)
+@start /Fa 182[106 1[106 0 15[40 1[40 1[40 4[0 4[0 31[0
+0 6[0{}11 132.835 /TeXMUSIX16-Regular rf /Fb 99[0 156[{}1
+166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 195 a Fb(\234)p -364 297 3529
+4 v -364 330 V -364 363 V -364 396 V -364 430 V -364
+-35 V -364 -2 V -364 31 V -364 64 V -364 98 V -364 430
+4 467 v 133 x Fa(I)-364 63 y(G)-254 395 y(2)-254 29 y(2)-110
+428 y(6)25 b(\010)-45 395 y(\010)-84 345 y(2)o(\010)-84
+461 y(2)p -55 463 60 4 v -7 461 4 227 v -1 w(\010)-196
+-4 y(2)72 b(\010)-158 -20 y(2)h(\010)-118 -54 y(6)33
+b(\010)p -45 146 4 200 v -44 29 a(\010)p 382 430 4 467
+v 424 395 a(6)28 b(\010)452 345 y(6\010)452 478 y(6)p
+482 463 60 4 v 530 478 4 243 v(\010)416 -20 y(6)36 b(\010)452
+-54 y(4\010)444 29 y(6)p 492 146 4 200 v 9 w(\010)p 919
+430 4 467 v 934 395 a(6)60 b(\007)994 345 y(6\007)994
+478 y(6)p 1024 463 60 4 v 1072 478 4 243 v(\007)1208
+395 y(6)88 b(\007)1296 345 y(6\007)1296 478 y(6)p 1326
+463 60 4 v 1374 478 4 243 v(\007)934 -20 y(6)60 b(\007)994
+-54 y(4\007)994 29 y(6)p 1034 146 4 200 v 1 w(\007)1236
+-20 y(6)g(\007)1296 -54 y(4\007)1296 29 y(6)p 1336 146
+V 1 w(\007)p 1638 430 4 467 v 1748 411 a(\007)1748 378
+y(\007)1748 353 y(F)1748 386 y(F)1748 420 y(F)1748 453
+y(F)1748 328 y(\007)p 1786 445 4 225 v 39 w(\()1748 445
+y(\007)1662 -20 y(2)6 b(\007\000)1748 -37 y(\007)1748
+-54 y(\000)p 1738 -69 60 4 v -17 x(\007)1748 -87 y(\000)p
+1748 129 4 200 v 1749 13 a(\007\000)1961 395 y(\007)1961
+378 y(\000)1883 362 y(2)38 b(\007)1961 345 y(\000)1921
+312 y(2\007)2041 304 y(\000)1921 428 y(2)p 1999 428 4
+214 v(\007)1961 411 y(\000)2130 -54 y(2)g(\007)p 2198
+-69 60 4 v -33 x(\007)2168 -120 y(2)p 2198 -69 V 2198
+-102 V(\007)2168 -4 y(2)p 2208 104 4 225 v 2209 104 a(-)2209
+-4 y(\007)p 2421 430 4 467 v 2438 345 a(4)80 b(\007)2478
+312 y(4)40 b(\007)2518 262 y(4)p 2548 264 60 4 v(\007)2518
+378 y(4)p 2596 378 4 202 v(\007)2780 312 y(4)f(\007)2740
+345 y(4)79 b(\007)2706 395 y(6)113 b(\007)2820 262 y(4)p
+2849 264 60 4 v 2859 498 4 237 v(\007)2452 -54 y(4)66
+b(\010)2518 -103 y(4)p 2548 -69 60 4 v 2548 -102 V -1
+x(\010)2492 -20 y(4)p 2596 -20 4 162 v 26 w(\010)p 3161
+430 4 467 v 3165 594 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3165 594 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chordslur.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chordslur.eps
index 945c8f16d05..8d7b44d6934 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chordslur.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/chordslur.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96dev Copyright 2007 Radical Eye Software
%%Title: test9.dvi
%%CreationDate: Mon Jul 04 16:49:21 2011
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 28 749 110 783
+%%BoundingBox: 28 749 110 783
%%DocumentFonts: TeXMUSIX16-Regular TeXXSLD16-Regular
%%DocumentPaperSizes: a4
%%EndComments
@@ -14,77 +14,77 @@
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2011.07.04:1649
%%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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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]/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[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
+%!
+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]/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[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
%%BeginFont: TeXXSLD16-Regular
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg.eps
index 01df4d09bf9..c9c66bb6118 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg.eps
@@ -1,730 +1,730 @@
-%% LaTeX2e file `eps/clefchg.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: clefchg.dvi
-%%CreationDate: Sun Sep 28 15:39:51 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 20 706 369 795
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE clefchg.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1539
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 52 /four put
-dup 71 /G put
-dup 72 /H put
-dup 73 /I put
-dup 83 /S put
-dup 138 /Lslash put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
-37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
-9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
-50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
-CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
-BF379E82AAC67D2B525096311CB3EB38519CBBB7EACC7E8B3B51EC474DDB7E76
-34A2C013756D9642403A89BF0070FBEAD179E4F2719FEC818A5FA04EEF9C5FCB
-FB985470940411BF16BAF203D29938F02A2A97616869DADFB89E91D5FD7F1D02
-292CAA0398DD8FFEB301133B22E82E187613C7E66418133F18F6A9A06F0557CE
-1B56E92BFE8B9F22201C4AC5D9238E1330E73C7D37F4E5ED02918DDFEFD2DB1E
-5A2DAB9DDF6D517DEB6BDB9A142234301212FB411CF028C7AE6EB29E5A1D88D2
-5DF3D2F08AF24AFD02592EE8C67F74FF6E6C497EC31A9F14D477F6A9A5B0B2DE
-B7310F602A09EBF67121FA7579C621EB0F2F1FB6870A720782EBED69E888FBA1
-E2A887639AEB77F6885EF8CA0F1676049601946A475C8CA339B2E945897C908F
-8FAD54A89280EF8FF719C8DA6B0783FC55382B05A46B5DCAEF794D09EA8782EC
-CCA234A5E88641FFEE3BD02E01372BA4E0EF6A38757000E03FE5FB31A5FEEDE2
-0A6C4D791F6D458B6957CEC586C66FACC65571F31520C742BC93DF6328345220
-B94D8F77413C683471AF883FB1A34E49330499FB49B5147009D5737D8E8BFE01
-EFE91BA9837A47527C29E655DAC51718258C90C7F9C6C3A3BB287A8945BE2A07
-C676702DACB1F36228E1D09462EF7FDA99202BFBDB9BB9EC5E033023CA87EE75
-23188DE17CED90E90C01BF9EB3CD49C7E500BB781978C440D186085F504ACEC3
-093CD58AEA519C79C07F9CB9B79BA7CA0A385641261E9FF7ACA2208F9862DA26
-D820A14159E5FE7DC3ABC207FE6A4A35F94D18ECC29C74D2152F66C3297F2917
-CA65A4DC17DE94D9FC8F896C5495253806A54F9C0CF4C94121877135CF1993FE
-2BB8E833C4D1EF9C0FA254903B0A885837B98C75BDC1183113A3E18FB0E42134
-7DEA2624B4F9D61C74B40372F37ED752EA81B188D4BFAF72AAF65E2ADA8F335B
-19E268893D0025E20029C2662BA80B9573006DA3E176471DB154CA5EC428DCE9
-40F500EEBA6D5301445B8B5EA3496DEA2C29128F1165310656DD1C55BB43F479
-DB2D8BADD2415FC3439364532D9A2EE703409C504877366D17A2FDE566DFBD6B
-A56088E2A2252002797058F07B341E802170CE7BE8355E9780C60D2CC346E31C
-47CC2CE1DDA5C3968B6AFFB2B92703A16E2F75DFB11EF2CF770DFFAA3E942E27
-279F9D2379EE5A099A1C62512C513052479B9240CBEE327839E1E0BAB093C832
-085292E09693B56AE8219D8E61F3061F5838973D0E28C898B22B29DFB205F0D9
-4CF9BCE3E19DE766AB845C283CE621B384A504B57AE64D5BB10BA7FFA979DE34
-BD0C129F34E35B8E90A1AC6F8856BB01FA08FAEA86CD452514ACD05422342D9A
-BFA66E176278C98E0954DC70FF5D7131DAB034B5C7F75F4F91F2AF3759DFB8D8
-7AC5888AD7C479BFFDE94E39AEEFB83EA3277E16C2EECE0CBBE88165C3BC6C8E
-363D86BBA85ACD00324727394FA2DEBEDCB7383E2AA844A2C4F25BBE7F257375
-0A55FF966941FAFADD038B1EAF1A236BF4120FEE5A10A52BB97F5065CCF6B354
-1B9E1BE5AD98892B6D595B2CAF8964F26A026901BC2AB8B1B43DBDE93C78FBB7
-96DC7706F480CD6067EF8F3DB831DB0420BC89FBD98CB518CB6319D7AF3A687B
-3A366F9DA32012479D168767153155C1F667939703FDB1356D0F5D751120A954
-F5B022831FAD0A5DF8250E0596F148740F98D3A1CFE07CD79F7AEBF21C2E8AA3
-89F19A258837A983BE612B8B930D7B40B244650FF3F13525DF7FA9AD43C324DE
-5437197A1DCFF2FA04214F0B7CD6EDB1AEE3A178C898A4E10E7951BDD280AEB7
-AF544C8ABBCA8BB5E538230769B222B77E6118B311DE8AAB6F4317470A480DAE
-7017CE5D1CE4170580E673D2949060815E4F50EE19138CBEDD5EC891750D7005
-4AC901C15AA2637633EEBDF6363182375CA7B84BDAD9D16E3321485267C6E839
-3B6407005617EDEC157BFBC36291E03EFB9EC891A1B6D0CD830A8CB4712F3219
-9529F14921603B91FFE7AA04E21F0DF87C2FC0EB0D67E0EA0E9C88C265E06C2C
-E78389CA4A9237E20AB9EB1385D06CAF1878E1C618A18A0119A42CDC07FC969F
-2503864F24B895AA176F1BA65F709193B3C5FCB31171EC4336928FF2B1E92498
-E6CBA4C4A01CE40A879BF2D9773BD81B16619738ADD667546C2BE7943348FC17
-76C3D1D58471BF79175F67FD3FEF3149E19CFF0E0F07C9F2494BC0465866378E
-7C4E9541579E0703A3856ECFB32E47E444B059E0F828168608C1B92F4E6B2EE2
-BD12ADF4C18EEC69DDAE209F5A8FD4C036A8A5CCD01D7A3B4838947DD8ED52F1
-162081AB91E0A4666B7C979C1A223593A0203399ECBC799F6F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 156 /IJ put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
-19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
-F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
-78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
-3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
-ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
-E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
-51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
-906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
-30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
-C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
-CF6FF708F7024031
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (clefchg.dvi)
-@start /Fa 117[266 54[66 9[106 93 106 18[40 43[0 0 7[{}8
-132.835 /TeXMUSIX16-Regular rf /Fb 99[0 156[{}1 166.044
-/TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 195 a Fb(\234)p -364 297 2823
-4 v -364 330 V -364 363 V -364 396 V -364 430 V -364
--35 V -364 -2 V -364 31 V -364 64 V -364 98 V -364 430
-4 467 v 133 x Fa(I)-364 63 y(G)-254 328 y(4)-221 378
-y(4)-188 312 y(4)-254 -37 y(4)-221 13 y(4)-188 -54 y(4)-145
-362 y(S)-145 29 y(S)71 385 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 71 385 a 48 511 4 100 v
-49 411 a Fa(\007)p 197 496 4 118 v 198 378 a(\007)p 347
-481 4 137 v 348 345 a(\007)48 486 y(\212)235 467 y(\212)48
-511 y(\212)235 492 y(\212)p 496 466 4 172 v 497 295 a(\007)p
-646 445 4 100 v 647 345 a(\007)p 795 430 4 135 v 796
-295 a(\007)p 935 264 60 4 v 945 415 4 153 v 946 262 a(\007)1114
-229 y
- slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1114 229 a 1114 229 a
- end
- 1114 229 a 646 420 a Fa(\212)833
-401 y(\212)646 445 y(\212)833 426 y(\212)p 1084 264 60
-4 v 1084 230 V 1094 400 4 172 v 1095 229 a(\007)71 -97
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (23.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 71 -97 a 38 -69 60 4 v 48 46 4 117 v 49 -70 a Fa(\010)1150
-395 y(H)1267 438 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-1.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (20.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 0 N end
- 1267 438 a 1282 411 4 150 v 1244 411
-a Fa(\007)p 1431 395 4 133 v 1393 395 a(\007)p 1580 378
-4 117 v 1542 378 a(\007)p 1282 295 451 16 v 1282 270
-V 1730 411 4 150 v 1692 411 a(\007)p 1879 395 V 1841
-395 a(\007)p 2029 378 4 133 v 1991 378 a(\007)p 2178
-362 4 117 v 2140 362 a(\007)2310 395 y
- slur@Dict begin (2.0pt) GD S1hgt (4.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2310 395 a 2310
-395 a
- end
- 2310 395 a 1879 278 451 16 v 1879 253 V 2328 395
-4 150 v -20 w Fa(\007)p 1243 79 4 117 v 1244 -37 a(\007)1861
--4 y
- slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1861 -4 a 1861 -4 a
- end
- 1861 -4 a 1841 112 4 117 v -19
-w Fa(\007)p 2439 430 4 467 v 2456 430 V 2459 594 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 2459
-594 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/clefchg.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: clefchg.dvi
+%%CreationDate: Sun Sep 28 15:39:51 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 20 706 369 795
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE clefchg.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1539
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 52 /four put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 83 /S put
+dup 138 /Lslash put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
+37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
+9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
+50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
+CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
+BF379E82AAC67D2B525096311CB3EB38519CBBB7EACC7E8B3B51EC474DDB7E76
+34A2C013756D9642403A89BF0070FBEAD179E4F2719FEC818A5FA04EEF9C5FCB
+FB985470940411BF16BAF203D29938F02A2A97616869DADFB89E91D5FD7F1D02
+292CAA0398DD8FFEB301133B22E82E187613C7E66418133F18F6A9A06F0557CE
+1B56E92BFE8B9F22201C4AC5D9238E1330E73C7D37F4E5ED02918DDFEFD2DB1E
+5A2DAB9DDF6D517DEB6BDB9A142234301212FB411CF028C7AE6EB29E5A1D88D2
+5DF3D2F08AF24AFD02592EE8C67F74FF6E6C497EC31A9F14D477F6A9A5B0B2DE
+B7310F602A09EBF67121FA7579C621EB0F2F1FB6870A720782EBED69E888FBA1
+E2A887639AEB77F6885EF8CA0F1676049601946A475C8CA339B2E945897C908F
+8FAD54A89280EF8FF719C8DA6B0783FC55382B05A46B5DCAEF794D09EA8782EC
+CCA234A5E88641FFEE3BD02E01372BA4E0EF6A38757000E03FE5FB31A5FEEDE2
+0A6C4D791F6D458B6957CEC586C66FACC65571F31520C742BC93DF6328345220
+B94D8F77413C683471AF883FB1A34E49330499FB49B5147009D5737D8E8BFE01
+EFE91BA9837A47527C29E655DAC51718258C90C7F9C6C3A3BB287A8945BE2A07
+C676702DACB1F36228E1D09462EF7FDA99202BFBDB9BB9EC5E033023CA87EE75
+23188DE17CED90E90C01BF9EB3CD49C7E500BB781978C440D186085F504ACEC3
+093CD58AEA519C79C07F9CB9B79BA7CA0A385641261E9FF7ACA2208F9862DA26
+D820A14159E5FE7DC3ABC207FE6A4A35F94D18ECC29C74D2152F66C3297F2917
+CA65A4DC17DE94D9FC8F896C5495253806A54F9C0CF4C94121877135CF1993FE
+2BB8E833C4D1EF9C0FA254903B0A885837B98C75BDC1183113A3E18FB0E42134
+7DEA2624B4F9D61C74B40372F37ED752EA81B188D4BFAF72AAF65E2ADA8F335B
+19E268893D0025E20029C2662BA80B9573006DA3E176471DB154CA5EC428DCE9
+40F500EEBA6D5301445B8B5EA3496DEA2C29128F1165310656DD1C55BB43F479
+DB2D8BADD2415FC3439364532D9A2EE703409C504877366D17A2FDE566DFBD6B
+A56088E2A2252002797058F07B341E802170CE7BE8355E9780C60D2CC346E31C
+47CC2CE1DDA5C3968B6AFFB2B92703A16E2F75DFB11EF2CF770DFFAA3E942E27
+279F9D2379EE5A099A1C62512C513052479B9240CBEE327839E1E0BAB093C832
+085292E09693B56AE8219D8E61F3061F5838973D0E28C898B22B29DFB205F0D9
+4CF9BCE3E19DE766AB845C283CE621B384A504B57AE64D5BB10BA7FFA979DE34
+BD0C129F34E35B8E90A1AC6F8856BB01FA08FAEA86CD452514ACD05422342D9A
+BFA66E176278C98E0954DC70FF5D7131DAB034B5C7F75F4F91F2AF3759DFB8D8
+7AC5888AD7C479BFFDE94E39AEEFB83EA3277E16C2EECE0CBBE88165C3BC6C8E
+363D86BBA85ACD00324727394FA2DEBEDCB7383E2AA844A2C4F25BBE7F257375
+0A55FF966941FAFADD038B1EAF1A236BF4120FEE5A10A52BB97F5065CCF6B354
+1B9E1BE5AD98892B6D595B2CAF8964F26A026901BC2AB8B1B43DBDE93C78FBB7
+96DC7706F480CD6067EF8F3DB831DB0420BC89FBD98CB518CB6319D7AF3A687B
+3A366F9DA32012479D168767153155C1F667939703FDB1356D0F5D751120A954
+F5B022831FAD0A5DF8250E0596F148740F98D3A1CFE07CD79F7AEBF21C2E8AA3
+89F19A258837A983BE612B8B930D7B40B244650FF3F13525DF7FA9AD43C324DE
+5437197A1DCFF2FA04214F0B7CD6EDB1AEE3A178C898A4E10E7951BDD280AEB7
+AF544C8ABBCA8BB5E538230769B222B77E6118B311DE8AAB6F4317470A480DAE
+7017CE5D1CE4170580E673D2949060815E4F50EE19138CBEDD5EC891750D7005
+4AC901C15AA2637633EEBDF6363182375CA7B84BDAD9D16E3321485267C6E839
+3B6407005617EDEC157BFBC36291E03EFB9EC891A1B6D0CD830A8CB4712F3219
+9529F14921603B91FFE7AA04E21F0DF87C2FC0EB0D67E0EA0E9C88C265E06C2C
+E78389CA4A9237E20AB9EB1385D06CAF1878E1C618A18A0119A42CDC07FC969F
+2503864F24B895AA176F1BA65F709193B3C5FCB31171EC4336928FF2B1E92498
+E6CBA4C4A01CE40A879BF2D9773BD81B16619738ADD667546C2BE7943348FC17
+76C3D1D58471BF79175F67FD3FEF3149E19CFF0E0F07C9F2494BC0465866378E
+7C4E9541579E0703A3856ECFB32E47E444B059E0F828168608C1B92F4E6B2EE2
+BD12ADF4C18EEC69DDAE209F5A8FD4C036A8A5CCD01D7A3B4838947DD8ED52F1
+162081AB91E0A4666B7C979C1A223593A0203399ECBC799F6F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 156 /IJ put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
+19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
+F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
+78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
+3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
+ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
+E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
+51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
+906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
+30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
+C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
+CF6FF708F7024031
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (clefchg.dvi)
+@start /Fa 117[266 54[66 9[106 93 106 18[40 43[0 0 7[{}8
+132.835 /TeXMUSIX16-Regular rf /Fb 99[0 156[{}1 166.044
+/TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 195 a Fb(\234)p -364 297 2823
+4 v -364 330 V -364 363 V -364 396 V -364 430 V -364
+-35 V -364 -2 V -364 31 V -364 64 V -364 98 V -364 430
+4 467 v 133 x Fa(I)-364 63 y(G)-254 328 y(4)-221 378
+y(4)-188 312 y(4)-254 -37 y(4)-221 13 y(4)-188 -54 y(4)-145
+362 y(S)-145 29 y(S)71 385 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 71 385 a 48 511 4 100 v
+49 411 a Fa(\007)p 197 496 4 118 v 198 378 a(\007)p 347
+481 4 137 v 348 345 a(\007)48 486 y(\212)235 467 y(\212)48
+511 y(\212)235 492 y(\212)p 496 466 4 172 v 497 295 a(\007)p
+646 445 4 100 v 647 345 a(\007)p 795 430 4 135 v 796
+295 a(\007)p 935 264 60 4 v 945 415 4 153 v 946 262 a(\007)1114
+229 y
+ slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1114 229 a 1114 229 a
+ end
+ 1114 229 a 646 420 a Fa(\212)833
+401 y(\212)646 445 y(\212)833 426 y(\212)p 1084 264 60
+4 v 1084 230 V 1094 400 4 172 v 1095 229 a(\007)71 -97
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (23.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 71 -97 a 38 -69 60 4 v 48 46 4 117 v 49 -70 a Fa(\010)1150
+395 y(H)1267 438 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-1.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (20.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 0 N end
+ 1267 438 a 1282 411 4 150 v 1244 411
+a Fa(\007)p 1431 395 4 133 v 1393 395 a(\007)p 1580 378
+4 117 v 1542 378 a(\007)p 1282 295 451 16 v 1282 270
+V 1730 411 4 150 v 1692 411 a(\007)p 1879 395 V 1841
+395 a(\007)p 2029 378 4 133 v 1991 378 a(\007)p 2178
+362 4 117 v 2140 362 a(\007)2310 395 y
+ slur@Dict begin (2.0pt) GD S1hgt (4.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2310 395 a 2310
+395 a
+ end
+ 2310 395 a 1879 278 451 16 v 1879 253 V 2328 395
+4 150 v -20 w Fa(\007)p 1243 79 4 117 v 1244 -37 a(\007)1861
+-4 y
+ slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1861 -4 a 1861 -4 a
+ end
+ 1861 -4 a 1841 112 4 117 v -19
+w Fa(\007)p 2439 430 4 467 v 2456 430 V 2459 594 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 2459
+594 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg2.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg2.eps
index 28915a32d4e..c87b3f627f9 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg2.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefchg2.eps
@@ -1,719 +1,719 @@
-%% LaTeX2e file `eps/clefchg2.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: clefchg2.dvi
-%%CreationDate: Wed Jan 21 13:52:44 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 36 751 453 783
-%%DocumentFonts: CMR10 TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE clefchg2.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1352
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 10 /dotaccent put
-dup 50 /two put
-dup 72 /H put
-dup 73 /I put
-dup 74 /J put
-dup 83 /S put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
-D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
-470318F6BA4A95928FE7E588F2D807AACF0ABAB5E81CFA75AC44535DD7389E20
-EACCD3FC846C87784EEA4D275635656DA02027FE0EBE462CC29C0F848C6C2AA6
-403350659FF4523F9A11AF1B730B0281BADD9F9AD9AC87E5235770D0CEFD2174
-D6202BFAE916798C51491CA3D52D0D225D69841108E931B2D33BE7D1C9A9ABC5
-2E9DB146BAA328F1A019EFA53681D3CB77ED5613C158582B7D4119EA10D13B87
-43E95D44F964204CFF74F6C9998EFC5A917E535FB864C69631EE04DB519140F5
-CE4044FD4B19765EB82664F1124B2E345F9EC897616F1A81AD2795C93BA824A7
-AD9C2E2ECE5CB475C5744D07E9CDB8DEEA5572F4331A90DA7E638388619EBA49
-7317C050DC8088BE5792A08864DBBD9B56BDB2C38862DA27A14B1BA7D401B8CC
-B11032F69702294EC19FA328D21E9E2F8F27722DAC4C45B9E05A6AECDF3A8FC4
-D02895C3DA2E45548AA94C96F321AB9BAD3C7530BA43C16921691BD577B7FF54
-D7BDBC5ABB67B9AE82C946DE9C86F0AB22E80C2904361CE168E1E2FAF78052CE
-8C030C24FC7474B5131A2114CB9D8098FFDE6545224A50544C452C25375BCD6C
-F42BC869E09B44673A6F8BE8C30CA6C994A78FC0A77CAD24A4A5901F53DC30BD
-04D193CB86EAFFDCED09C006D43964B8D1B6EAC5DFAAAB4E20B72CEBD1513797
-E191C633F53F6BD85E3B8BD7C15D4475A811F0E17B47D3B0795666B2E94F9CEF
-9394A5D5D6D6FCB4E64F1A0AC650C5F2D1BFA8908C16025588C32058F0A86D9D
-89CE9223CD470C0B26026BAE0CA6404F52E70B0650FE3C1A63F9C5CB876B7E97
-F05966C3B9A2F46DBCA0B1C7B7A8DCE9F74D2E161C2F6432900FE06191A272A3
-D9A453480477E7F998E28B108F28A61B3FDDA047099F25FF9EF7E97BFE106D0B
-D8B8FDB39F39877261A3C88287BF74486CDA6287B9A3D12986896AB16B869E45
-27B9A3FB66A34F0E36CC69DA7F84F6AC2829C80474FB4CD95E45C8879755E063
-6EDFA5100CF56A77583DCEC676791343570D9FD4395EB08854AADE214C7535B6
-F7D034820562492274196367F8FDD5D58537FB33A6BFA2E9396669C31096EF9E
-EEC8C95D35B5634712839E765EBA36B1F60298A13DC031701A6B976EB911E314
-A3146F647E22DD8CCCFC0BF84E4F3DFC082C141B0B3B547C2B9457A9A09A3BD8
-FE0CA5B0313688A28570D8FCCD3553EB83F3DAA9256EBF7C323B9D72AE0B4CA3
-3682FAF71B5E947F7FC017CC53841DC96C9E95E2A667A917A1513FE791F128A9
-18710604E32BF4CBA59B861F2472FDE7C2E66639EF267F37745E6C0D9B2EEEDE
-311F48153517A960A47B490F4BBB42F26702B7CF81726D8F830A522406CD88D5
-86BC306FEB8594E6F739B927CA4D66BF82F4C02D49842114B0A453F3B0C8604D
-88EE14730156F8E864EAF9CBE12B83E14B43A4E16ABD7F1759A11942412B7FBE
-416FEA0D359CBEDA9F2E3BBD283437C9FE8204AD2A3DE34F6885CCB3EA60682F
-11CACD876822B304A5277D4EF55FAB31685AC787E4289C15125811E44A1F4AF5
-1537F3364F1BFFC43C70D007CE454EF6A14E233E3DEADA64A24062874403DC49
-7F984796A999A53EFAFE5CADD95BFD4BB37C80E3C3CDC06AB59F675256C0EDE2
-E5CE6530CE00E37211D4E21012428550E8D658067BC676500FA530074E11C202
-02EF3BD12988067ADA4BEB91A0C801507DEAFEAE854A58E00B4B28F054823D5F
-977A1C7511837CF90B96C1A8DE22870250B0015AF4E0BE9B3FC35ED01E5D5759
-F060340EF850432BAEA7AEE9EAE53CA56C66D8F89F9770384B2D607A55506EA9
-14A0A1A683E19053E5F2695F040F659925A651DC4D200944028D5196C4A6C1DA
-3C756A3BF100D299BC0A97EA152FDF792D2E34FF4399B7764DA5FF0032DDB474
-39F6A5820F4469990626B958B59FCC3A525E467DF8744A0BD13E8FBADC7710FC
-2B894D442168323381540B012B7B0F56CB5C142DAC3635EBF132F8AE35A98411
-DE685954BD71B17701A9C8847F85DBD43F1467828385F37AC97760B5129AC914
-7CB28B9A860D6C3F9C661F552424A3C9581DED3EF1BD2D9937
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 50 /two put
-dup 86 /V put
-dup 99 /c put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
-36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
-A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
-4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
-0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
-9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361251DCF8A9302
-D6F53ED0F720442A89467CA60E5396A335EA60A77175B7F6119F4E3D8773D100
-3F307FB7310879760E6E7AF5B06207BC4D8321734432C482581783BB9D29E087
-72D7252FAFA6739687225704EC9BD7B76357E64AD13C1CD4954ACACDB8A3410C
-C121985DFD37D79265C7EEA862D9DF32A38CCFDC7A2ED1CC6EF05E7BE3767D68
-053B9A33CA4AB36C480DCD7DE406D3A4C99EB089F9E064B2CA70C76F697F2EC6
-6D4B9088EB8B6FED2E365477BCBA77F8C5F4C1C3F1F303F4BD8C9642C2E1A4AD
-76284D9C58978ED8A96CA8933B288C1AE700719D83A1A4D86EE2850989203E52
-E2C7C014EA273CCFCF998A99057B35EA547608333ED1BD7438CB9DCDECFC4FEE
-59546A8BC5C5558452FDEF6187F3B0AF7F05ED02E2EA41E894CA6C1E43EEC665
-D0171895B43800BB785F902AED0512583F688CEA8CF5DED0F4D278A952E44309
-24F2740B42D75D54530792EB5420BDF28412004004B339CAFA33417EE40905E7
-F3A6F02AA8ED331A81D7607ABBF1EC9F2EDBF95918356AE14916ACD489F97524
-638F2F83B0147C90AF1BC29E160B603441FC210A0DDAB8738EE0C187C3A0F0AB
-E79640FA8C8E98CB2FE3AB839B40CE17CB596AC0C17F42426859AE530F502B82
-8F4FE125F15F13DE6B45663CF862FE76D1A08C134E367C908026476722CA385E
-4C23C7E560766836A2F2D39C79B77A3803E36341A18A2F8471FFECBC6319A4E5
-98003C6E77B6301137036B5BDD909A5F012FC5A868F8D60677F7A09988E6B866
-84A3EF18587A42C336822288575891196BED12704ED70BF41E31B60B9C9AFF4F
-D9560AF15DBD0BBE735E905636E1F5D562420D15283E22B38B662C4ECBDFF065
-D777EC23DD2D373DB08F076287CF7E5B0DA970F2594C89B2E5B937CC5A62AD79
-698D6214019EBEAB17F021AECD16F4CF792FAACC8A91D6D1EFB51E2960C5176A
-EB55D5F32C0F4280620B399061A4E299C22585606BBD26FE14D01FA916F84919
-CAAE60032158BE253BEDB6AC88FC84C89FDB062F9108756189167D7DE603F35D
-D1D135ABADC9AA5643ED675F0D47DA392DC28A166023E8F572790AC697962082
-AF3DD0EC670677836FE42932CD470139DA40A1B62424A40388A94B4EF77B2944
-606CEB9584918416E3173CCAED5ADDFB3C948A1A62F1A689EBBB7CF151B39238
-4E629A81EDA71F466BDC4562943A9448C8DC96DCAD32CAB70F4BF66279FACA07
-4AE481EABCC255C070443A167AF116DFD286B51A883D364896B6DB261813F72E
-6FDE0520C203A4A2DF309F48447D3BE627952A994C0DB87DDFD888A9D05A81E5
-BD3B041BCA33899405F9DC0C73F164C76C0618B2DABA6AC8CD1D0F3CC80C8DE8
-4D2283033899B8717929F2C67A07FF92C58E2933FE6D0DC44A0C50A9B0927294
-EE4D6A91F66D87DCC130B7C995E85406EB1A4D6272437B23761595AF47CB3630
-80112D1EBCE62A81084E9E9DAA0808934EED488EDD28F94D4D9E70E91420246A
-781FAF504609BF79EC72DCF3409ADC37237E3D9C8D938577B96F9D0D66390303
-53D2EE7F3BFAE87BFAAD6F764E785A7560939E99AB3B83A9651146F9EE4AF68C
-83E2CE4FD4DA7C87F43CFB063DADABDF775869CC6BD3380D3D6970DDFF69071B
-32EA406BF6D53C74CF167F038364F5618901DEBA17C717AC289D8569A7BD5FC7
-D8795F8C3C4A707FCE5D4AFD0AC9823C31F5BBE2A99C5EDA8AC07FD351A08258
-990554857BFD26603DF0D996B6CBEF064E1EE02EA793840F8C5149C6E80B3EB0
-C280971ED5967F18546599F6C1E372D32BA0D2DD6ABC574E665722067B4D3867
-54AC401685B91244E59A9D9142ADA69B30D7A38F00390AB39F01DB994C5F3C46
-BC7C5C78C04B1D784BF51288008190C4CD3D4A44ED63F0BD0B9430F8B0B38E4E
-8BA9494AF3E18452461D7C0B5AE2DF43C31F703D557B6B17B47C70B23F479E36
-1D0536800D3C675960EBC01164961299AC08E124D1C0FD648CF51DC66C69F258
-74EDC8182E66583A02CDC42CD5A97D04
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (clefchg2.dvi)
-@start /Fa 172[66 8[93 106 93 21[40 39[0 0 0 0 7[{}9
-132.835 /TeXMUSIX16-Regular rf /Fb 144[42 46 1[23 2[23
-3[37 1[37 12[62 35[42 50[{}8 83.022 /CMR10 rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 342 -35 2823 4 v 342 -2 V 342 31
-V 342 64 V 342 98 V -291 58 a Fb(2)27 b(Violoncelli)342
--4 y Fa(I)451 63 y(2)485 13 y(2)518 79 y(2)561 29 y(S)p
-786 46 4 117 v 748 46 a(\007)748 112 y(\011)940 63 y(H)p
-1071 46 V -17 x(\007)p 1356 13 4 110 v 1318 13 a(\007)p
-1641 46 4 117 v 1603 46 a(\007)1795 -4 y(J)p 1888 98
-4 135 v 1992 156 4 110 v 1993 46 a(\010)2184 63 y(H)p
-2315 96 4 117 v 33 x(\007)p 2600 46 V 2562 46 a(\007)p
-2885 96 V 2847 96 a(\007)2562 129 y(\012)p 3131 98 4
-135 v 3145 98 20 135 v 3165 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3165 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/clefchg2.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: clefchg2.dvi
+%%CreationDate: Wed Jan 21 13:52:44 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 36 751 453 783
+%%DocumentFonts: CMR10 TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE clefchg2.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1352
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 10 /dotaccent put
+dup 50 /two put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 83 /S put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
+D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
+470318F6BA4A95928FE7E588F2D807AACF0ABAB5E81CFA75AC44535DD7389E20
+EACCD3FC846C87784EEA4D275635656DA02027FE0EBE462CC29C0F848C6C2AA6
+403350659FF4523F9A11AF1B730B0281BADD9F9AD9AC87E5235770D0CEFD2174
+D6202BFAE916798C51491CA3D52D0D225D69841108E931B2D33BE7D1C9A9ABC5
+2E9DB146BAA328F1A019EFA53681D3CB77ED5613C158582B7D4119EA10D13B87
+43E95D44F964204CFF74F6C9998EFC5A917E535FB864C69631EE04DB519140F5
+CE4044FD4B19765EB82664F1124B2E345F9EC897616F1A81AD2795C93BA824A7
+AD9C2E2ECE5CB475C5744D07E9CDB8DEEA5572F4331A90DA7E638388619EBA49
+7317C050DC8088BE5792A08864DBBD9B56BDB2C38862DA27A14B1BA7D401B8CC
+B11032F69702294EC19FA328D21E9E2F8F27722DAC4C45B9E05A6AECDF3A8FC4
+D02895C3DA2E45548AA94C96F321AB9BAD3C7530BA43C16921691BD577B7FF54
+D7BDBC5ABB67B9AE82C946DE9C86F0AB22E80C2904361CE168E1E2FAF78052CE
+8C030C24FC7474B5131A2114CB9D8098FFDE6545224A50544C452C25375BCD6C
+F42BC869E09B44673A6F8BE8C30CA6C994A78FC0A77CAD24A4A5901F53DC30BD
+04D193CB86EAFFDCED09C006D43964B8D1B6EAC5DFAAAB4E20B72CEBD1513797
+E191C633F53F6BD85E3B8BD7C15D4475A811F0E17B47D3B0795666B2E94F9CEF
+9394A5D5D6D6FCB4E64F1A0AC650C5F2D1BFA8908C16025588C32058F0A86D9D
+89CE9223CD470C0B26026BAE0CA6404F52E70B0650FE3C1A63F9C5CB876B7E97
+F05966C3B9A2F46DBCA0B1C7B7A8DCE9F74D2E161C2F6432900FE06191A272A3
+D9A453480477E7F998E28B108F28A61B3FDDA047099F25FF9EF7E97BFE106D0B
+D8B8FDB39F39877261A3C88287BF74486CDA6287B9A3D12986896AB16B869E45
+27B9A3FB66A34F0E36CC69DA7F84F6AC2829C80474FB4CD95E45C8879755E063
+6EDFA5100CF56A77583DCEC676791343570D9FD4395EB08854AADE214C7535B6
+F7D034820562492274196367F8FDD5D58537FB33A6BFA2E9396669C31096EF9E
+EEC8C95D35B5634712839E765EBA36B1F60298A13DC031701A6B976EB911E314
+A3146F647E22DD8CCCFC0BF84E4F3DFC082C141B0B3B547C2B9457A9A09A3BD8
+FE0CA5B0313688A28570D8FCCD3553EB83F3DAA9256EBF7C323B9D72AE0B4CA3
+3682FAF71B5E947F7FC017CC53841DC96C9E95E2A667A917A1513FE791F128A9
+18710604E32BF4CBA59B861F2472FDE7C2E66639EF267F37745E6C0D9B2EEEDE
+311F48153517A960A47B490F4BBB42F26702B7CF81726D8F830A522406CD88D5
+86BC306FEB8594E6F739B927CA4D66BF82F4C02D49842114B0A453F3B0C8604D
+88EE14730156F8E864EAF9CBE12B83E14B43A4E16ABD7F1759A11942412B7FBE
+416FEA0D359CBEDA9F2E3BBD283437C9FE8204AD2A3DE34F6885CCB3EA60682F
+11CACD876822B304A5277D4EF55FAB31685AC787E4289C15125811E44A1F4AF5
+1537F3364F1BFFC43C70D007CE454EF6A14E233E3DEADA64A24062874403DC49
+7F984796A999A53EFAFE5CADD95BFD4BB37C80E3C3CDC06AB59F675256C0EDE2
+E5CE6530CE00E37211D4E21012428550E8D658067BC676500FA530074E11C202
+02EF3BD12988067ADA4BEB91A0C801507DEAFEAE854A58E00B4B28F054823D5F
+977A1C7511837CF90B96C1A8DE22870250B0015AF4E0BE9B3FC35ED01E5D5759
+F060340EF850432BAEA7AEE9EAE53CA56C66D8F89F9770384B2D607A55506EA9
+14A0A1A683E19053E5F2695F040F659925A651DC4D200944028D5196C4A6C1DA
+3C756A3BF100D299BC0A97EA152FDF792D2E34FF4399B7764DA5FF0032DDB474
+39F6A5820F4469990626B958B59FCC3A525E467DF8744A0BD13E8FBADC7710FC
+2B894D442168323381540B012B7B0F56CB5C142DAC3635EBF132F8AE35A98411
+DE685954BD71B17701A9C8847F85DBD43F1467828385F37AC97760B5129AC914
+7CB28B9A860D6C3F9C661F552424A3C9581DED3EF1BD2D9937
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 50 /two put
+dup 86 /V put
+dup 99 /c put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361251DCF8A9302
+D6F53ED0F720442A89467CA60E5396A335EA60A77175B7F6119F4E3D8773D100
+3F307FB7310879760E6E7AF5B06207BC4D8321734432C482581783BB9D29E087
+72D7252FAFA6739687225704EC9BD7B76357E64AD13C1CD4954ACACDB8A3410C
+C121985DFD37D79265C7EEA862D9DF32A38CCFDC7A2ED1CC6EF05E7BE3767D68
+053B9A33CA4AB36C480DCD7DE406D3A4C99EB089F9E064B2CA70C76F697F2EC6
+6D4B9088EB8B6FED2E365477BCBA77F8C5F4C1C3F1F303F4BD8C9642C2E1A4AD
+76284D9C58978ED8A96CA8933B288C1AE700719D83A1A4D86EE2850989203E52
+E2C7C014EA273CCFCF998A99057B35EA547608333ED1BD7438CB9DCDECFC4FEE
+59546A8BC5C5558452FDEF6187F3B0AF7F05ED02E2EA41E894CA6C1E43EEC665
+D0171895B43800BB785F902AED0512583F688CEA8CF5DED0F4D278A952E44309
+24F2740B42D75D54530792EB5420BDF28412004004B339CAFA33417EE40905E7
+F3A6F02AA8ED331A81D7607ABBF1EC9F2EDBF95918356AE14916ACD489F97524
+638F2F83B0147C90AF1BC29E160B603441FC210A0DDAB8738EE0C187C3A0F0AB
+E79640FA8C8E98CB2FE3AB839B40CE17CB596AC0C17F42426859AE530F502B82
+8F4FE125F15F13DE6B45663CF862FE76D1A08C134E367C908026476722CA385E
+4C23C7E560766836A2F2D39C79B77A3803E36341A18A2F8471FFECBC6319A4E5
+98003C6E77B6301137036B5BDD909A5F012FC5A868F8D60677F7A09988E6B866
+84A3EF18587A42C336822288575891196BED12704ED70BF41E31B60B9C9AFF4F
+D9560AF15DBD0BBE735E905636E1F5D562420D15283E22B38B662C4ECBDFF065
+D777EC23DD2D373DB08F076287CF7E5B0DA970F2594C89B2E5B937CC5A62AD79
+698D6214019EBEAB17F021AECD16F4CF792FAACC8A91D6D1EFB51E2960C5176A
+EB55D5F32C0F4280620B399061A4E299C22585606BBD26FE14D01FA916F84919
+CAAE60032158BE253BEDB6AC88FC84C89FDB062F9108756189167D7DE603F35D
+D1D135ABADC9AA5643ED675F0D47DA392DC28A166023E8F572790AC697962082
+AF3DD0EC670677836FE42932CD470139DA40A1B62424A40388A94B4EF77B2944
+606CEB9584918416E3173CCAED5ADDFB3C948A1A62F1A689EBBB7CF151B39238
+4E629A81EDA71F466BDC4562943A9448C8DC96DCAD32CAB70F4BF66279FACA07
+4AE481EABCC255C070443A167AF116DFD286B51A883D364896B6DB261813F72E
+6FDE0520C203A4A2DF309F48447D3BE627952A994C0DB87DDFD888A9D05A81E5
+BD3B041BCA33899405F9DC0C73F164C76C0618B2DABA6AC8CD1D0F3CC80C8DE8
+4D2283033899B8717929F2C67A07FF92C58E2933FE6D0DC44A0C50A9B0927294
+EE4D6A91F66D87DCC130B7C995E85406EB1A4D6272437B23761595AF47CB3630
+80112D1EBCE62A81084E9E9DAA0808934EED488EDD28F94D4D9E70E91420246A
+781FAF504609BF79EC72DCF3409ADC37237E3D9C8D938577B96F9D0D66390303
+53D2EE7F3BFAE87BFAAD6F764E785A7560939E99AB3B83A9651146F9EE4AF68C
+83E2CE4FD4DA7C87F43CFB063DADABDF775869CC6BD3380D3D6970DDFF69071B
+32EA406BF6D53C74CF167F038364F5618901DEBA17C717AC289D8569A7BD5FC7
+D8795F8C3C4A707FCE5D4AFD0AC9823C31F5BBE2A99C5EDA8AC07FD351A08258
+990554857BFD26603DF0D996B6CBEF064E1EE02EA793840F8C5149C6E80B3EB0
+C280971ED5967F18546599F6C1E372D32BA0D2DD6ABC574E665722067B4D3867
+54AC401685B91244E59A9D9142ADA69B30D7A38F00390AB39F01DB994C5F3C46
+BC7C5C78C04B1D784BF51288008190C4CD3D4A44ED63F0BD0B9430F8B0B38E4E
+8BA9494AF3E18452461D7C0B5AE2DF43C31F703D557B6B17B47C70B23F479E36
+1D0536800D3C675960EBC01164961299AC08E124D1C0FD648CF51DC66C69F258
+74EDC8182E66583A02CDC42CD5A97D04
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (clefchg2.dvi)
+@start /Fa 172[66 8[93 106 93 21[40 39[0 0 0 0 7[{}9
+132.835 /TeXMUSIX16-Regular rf /Fb 144[42 46 1[23 2[23
+3[37 1[37 12[62 35[42 50[{}8 83.022 /CMR10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 342 -35 2823 4 v 342 -2 V 342 31
+V 342 64 V 342 98 V -291 58 a Fb(2)27 b(Violoncelli)342
+-4 y Fa(I)451 63 y(2)485 13 y(2)518 79 y(2)561 29 y(S)p
+786 46 4 117 v 748 46 a(\007)748 112 y(\011)940 63 y(H)p
+1071 46 V -17 x(\007)p 1356 13 4 110 v 1318 13 a(\007)p
+1641 46 4 117 v 1603 46 a(\007)1795 -4 y(J)p 1888 98
+4 135 v 1992 156 4 110 v 1993 46 a(\010)2184 63 y(H)p
+2315 96 4 117 v 33 x(\007)p 2600 46 V 2562 46 a(\007)p
+2885 96 V 2847 96 a(\007)2562 129 y(\012)p 3131 98 4
+135 v 3145 98 20 135 v 3165 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3165 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefnot.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefnot.eps
index 22977d579e0..12601e822e4 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefnot.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/clefnot.eps
@@ -1,764 +1,764 @@
-%% LaTeX2e file `eps/clefnot.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: clefnot.dvi
-%%CreationDate: Wed Jan 21 13:53:18 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 740 483 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE clefnot.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1353
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 44 /comma 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 97 /a put
-dup 98 /b put
-dup 102 /f put
-dup 109 /m put
-dup 110 /n put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
-7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
-81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
-D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
-740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
-921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
-495069A1DDF11DC589D2E91C1514C2799C5B9549A3CEBDEEF87B000E2686DF86
-A256B3BDB4FDC79C218947A13035A3DD2DAC7684B9DE946538F2015273B3DE1F
-40FA724FEDEF2A55EE15C84A5CF29933AB3A46E4CCF552939B7AAAB007CD23C7
-FAD6E48C747395BEF8056AFD1E19CE919F6ECD6EBBF21CACB65704C9A8C2D378
-5AD589B451B5B6F298A34EA77677BC935500722066F025C1104FFC325A9DA0BC
-8A47D0C7803C544AD16DACC3058DE5836470FDDCF3EB4BFC8540484835323410
-B2CF4626600B1826BD03520B38959380B6F051ABBD09BD9CD5004F460FCFA16F
-BABDBA9EBDF4DE3A734D55417D4499D22E12E1BAB6E7EEEC6CA0A6EE762C39CD
-FA05F1E4A7EE634F888EB2B5E2F8CD8F21B4A6E6FCABA356F58CADDAE035C9B9
-76C91530598FEEE97CD8CF04E79125D64A0153ADF0C525C1880E89B86D1DE768
-F27D74AB1C3E062FF10632F48C45DC51A88461F18B09C4A79F06FC85BF9EAC65
-DE8F84399CE0C86BEE448D962183036CEE800D650FE2CD2E74C038665ECA680C
-C523830270E7AB53D1AD5876C07901A071501004D16115A54F2879BB03C350A0
-B6C5ECDAD7BAA8CECDD4D526CF50373AB7D47B509AE6F5C4B100BE8334ABE164
-31A63FE60FB97EEFB431630ACDA0A367A9B9DC39C0B9F8BF7F1FBF46ED540033
-FFA39DB14BFD9ECC41C9EA325EF68958A889083FDEBBE910108C3BDCF726240D
-C80151201DF7794D747B3A78C1F0021E46CA77856A05A144DD0BC77CBFAC4182
-A473C546E9169DED0242478AEAB2C7D80408F026B678D46BD3E210DCFC74F2D1
-B41FCCC1FFD54B90A1F3306F36EF68CB357B16360341D133F0E2595D8726992A
-58922B08EA8CB78DFE5E7B1933FD224AB4E88FA7071CDC953F241C4EAF53B9E1
-CDFD27C3F358C9B01B76C2B478B64F05D9CDB973A9201734EC43EC6D3765C9B0
-19BE6B4558C1A69E94B9DF82CA12D23E5C56750C4E0E0A40D4F442A70454EC33
-429F057EBDD8CAE2C116D79B899B00C7BA2553DABEA38DCBA9D71E5DE3F21F1E
-2988832735C3D791BD5E20DD78AA7C52A7B81C1DB946F50D8E3381A4517E1E7E
-9EA1EF8B806CFB8160CA5D271DBBA2709FB85ADF3671861F7DEDA6D054E039DC
-3A844236A0DD8F3300908B6AC387272BB741B090B2D9D01A3A2ECB1432AB85DF
-AB4A99F8C7B33FB0C10FFE0E52F02DB00FEEC27CA936012EA237345EF035A765
-3EB43E4C1B728D932ADC333BAD8BB77D157E5A2122E2F3A62EDF9643F9FCE519
-2B8535A26ECD6731D66573477B5EACA3DFCD88C921D25236BE120EF217F2F7F8
-85A3BA4F546E98A4F8A77A116D5FFF0C300B24BA1CB159E3F87940722DE5DF90
-11B6F2BEA0BD52187558084DE8A067387C991E9D6449DE5EAE14401A56592356
-8BBC94129AB2D2B1077EA0967CA474AB9BD87602F5C4A0DECDD38174733AEF8A
-720E488EAF9CF372000265CCA0AB6754360CC83B3671280F6C4C1DC7DE0CF507
-A5372085A5273E7D53F0CB34BCCAFC7118429308AD5658D6961131DB20EF95B8
-3B257E4A0BAF4750418B026128BD2CE94C28F3E77A97B0C32BCEA0146EA86944
-4FA146FDE1EF0C6D840462E9C91698831F791E99921CFA0D4662C5B816E79328
-25749E54F91FEFC4800429F56937BBEB8126BD451CD98445A775D67B1B67DD6B
-58BE920D8675EC8520C709CF51AAF3A824559CDFB842C46C716E4C68C44E6D4D
-6DFA004C9DC80DF48A0F4BE36CBC0CBE0C48DD6BE1771D4F434B37D47F2A7F82
-E5B2452E03E2F28F6E4E3C0C1F42943CCA6C529328C9FCEC6B5E5FBD30B93E10
-FC67EAD45BA6189CB4859CB54CEFE965781E688802D034F2DBD8AE3A2EECA859
-3C123BE0A4136E8C29F230AFB96B9A0BAD3481875D5B2FFC18048E4A0D56CB63
-D3C2326E18744CFA834F84E6757C11AB7B7C26B2E60C6BF17A2533F757F23487
-94938D9F530B30360FDDDD131CDD3AF0EE3DADBF9F4D9554CACEC981D6E8031D
-A6A9A09480FF67DADDE19B6C6E8A8155EB7F72096FE01EF2D385379D3A41CB03
-FF5220E19346A470A4C01A4E27601D7CC7516AD3F38161D6AAD6BA3F1E9F63FF
-849D97530F76D21F42C8D2520AFFC8FCECB80C690C467F5A4367AE4F9166E785
-5D29AD5EAB237F8D11E7FE4A2F88BE44405E9FB27C9EB5FA256F14B01D23B29D
-4511E89DBD686E6DF2B683B929406930C55C0F5A400B891F7C562DFE7599035E
-C01BFEAD5804E0165CEA04FD475B543D2814BD6CA228FA3037624E6E044F7B84
-C47A0AB7150D64BFF7F622C8EE0E3F374C4F6DAC9AC5DF0D2940EFDA49404936
-7FC195510991300B9E14B87EDD0E3A1C6C4DBDE0D777C074AB0AF8F848CAE283
-4ED07196AC670DF2C177820DF85EBC03069EE6A97ADD1D08C6A3A079D3B8E6B4
-5BC3B4E72E6EE391CBBFE71CD00F08A71349B29EB31136F8526ED39E0A619740
-30A032A11BDCF90B4778B88E0DBFA8C8B51868E878CFDEB1537923D3358A38D1
-EBEF50755551B076CB286CCC7B6C7685B0563A06012E39D15EAE8F7511AA22E8
-3A65EE9D97F433438156B5646A38DFEE3CF08A6856B58F34CC6EAE9CCFDA1D8B
-275E4F80FEA46794BE98DE4BF700CA579A0900E531FD0CAB6AB72574A2E08B76
-E3CBB2F798FD11B767503DAFFB5FBC0F62C48DA27A1E9A49C5166C50572877B5
-2581AFD197493207B42DE9E8ACB785487ECA099B60C561F71C00ABA4AA5EA912
-53D56E1F67AFA601230C3B1A7184033735EA2B3E54603FF1A60ADFFE832CA331
-EC099A572785F157E1F2A132411503C1E5C4D6C86C4E56540BA1ADA16BDFEB76
-6377FEBA0709B5765AB4BDBFA870A513629436092F9FBB84EACE3C5E9ED46E9C
-BD29146010D7BA71F97976B8C17CA57D3FFE66EE7994B0B83DE5B212F880BEC2
-5FAE7C60C6CD0DA2922F834635332D45F24DAA181AACF69BD2AA6227DDB7A2D6
-DA9148A07090CC4E54C96C26969EC66D9B7D6F7F23A82D6393BF9373E9553739
-B3FAC9B2BD018C8C78BA21D8AAB878DEC3BDB3EEDC2A3AEF9843545C77C42F58
-A393DC016810C5D80A9FC8C59EEC6E7C44BC79AE8CE06EFD8BAB0AD7A9B7A66E
-4194BF01A48EC9519ECB2EAE5D103528C8E628A7D3120070D29B6B7E8ACC82D8
-3E10135B361C202933F0110CF225FC5C868EBA62B409D17B74B4E13DC5BD71BE
-6802DE0C85AC91EA26AD35E53F69A9BA59858A94BBB944E620F279DFF53D1D72
-F418D0CE07281301EA25B3CF85868B806AEFA70AD924F942C63D4279164B27E7
-98F45CEE1BF87E437EAB0A5204589B8B1B216908C0CB3C4591AE338DC168BC39
-BFEF94D9F9C17CF4B90AE60111451CA2FA8C19F5A9E0E3D06F45897C408EAE78
-ABD18EFE23ACDC11529F3DBE8213696838C6AD52F18656DD68CBBEE0673CDE93
-0A405FE7E25982332734A2E35AA536E9372AD1585B59401AC7D30B73FE65FD06
-0B0D9BD83E8139A32CB4E10967A1B84E23D3B696536FE57873BF37898D9EBC87
-75118D401A98C08113C8B3E64B92E3B05E2EAC7445C8EC60F5066E85521EE672
-FB92A4B8DE9881B5EA90E92EB66B9D7CB220D9106C480E68CFB587A0C0B12C70
-9E8128DE852988B46278F4FBE280AEA04DB6705F4E86C1C1CF9A2308E9CA82B0
-3A13D23D3215A62618AD294E40FD2357B8678936F0C61CEC36AC646D320162A4
-AF972D374DCFC5EE91607C02EDD926E005A214B412AA72E226CBFC85CA92CB7C
-F6FF272EDDE5523CBEAE34CFED0E97601C5EAEF67E31607827490A872AD8F0DC
-F42C2A1467A691BD680AF62E032627448A7299B666B61AB7EA1D3BC3165D29DE
-33EA8D4281C55B9C9DCF6E77CD2E5B5F68B742FFF20B5BD03F524D28768EE406
-4375356924101E41E95959C1D6071173C9DF8199B7C6C07587E1CFE683BC9AAF
-492B20B4F84F17B50C430043E1C1F2FA544C0452590ADF59D04BD5A6AB591288
-B3B013658F7C463C8EB8CA2DB3EC07E973F7F084168F2DDE46B5A4884805E5C3
-4BA29DE6E4FE1C6A529810B3E7E3E5C7834274A8E172C57ED6FDEF4B4A5A5893
-6A6286A19179E0D2A54A23E6B588CB3AE2DA78215062593F9E18F061D4C864FC
-E486623CACFB7F22CDB8A31E78E5AF4AD5DE477E8F8F691BC8DC4ADA73A66FA0
-CCDBEA7D446B29E603245454885198603BF7A20B16ACE6EFAD9979D08A55B2F0
-DF982FEF5AF22AE6126B37140BF34089976C910BB331E9CF7374C56B98556C0B
-AD94561FA88A8F01FD21775AF05AD48850ACB7AFE5D6BBBCAA8D39CB8118D701
-92654221146990540BDEFB4D0958542F0822C1ACE4330D6D12127CD6463F41B4
-C766F2AC86D3301D08899979AAA655BE618138F7A07C0386DD4886F897DE4459
-872D7DB3D6D5ACED9EE05B13E12A7776FF3E9D8401A15C34792F28A0A1B8693F
-0B816499CB7262E8BF8E31F34A0E4B085E755FAD09FC86CDAEDB4831DE63E404
-D7FC7444200FAF7D39E147C28EB5F73CF61098181605CDC5F7629ACCF9243A3A
-D76A1339BA4EB50637920288B09D589FA23B6E9B7622219BA8706130171B9C95
-FB4D8B44056ADAB27DD7690AA3DF79F908747D4D14764A8E1092A6870F712864
-31D20687C9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 71 /G put
-dup 72 /H put
-dup 74 /J put
-dup 76 /L put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1ED2609E48B1C3C8DD110
-C191006A93E41496C6BD88FBB4F12B1A7251C3CA7CC900910A3919ED5A0CAF6A
-A3BD988E70CDE46F54D5D2AB0656EEAF89D00CDAFEB55E524FC4430CB962DB80
-710A27BBCAE58A82647E3BB4F121CB548D5B5635E2EED64CEED7A81C004BC864
-0D619A772438F8BC6888E4841D091210C14621E84A0DB4BA0EF9C4671C7731CE
-4B68F628B528824D01282191712CEC7BFED3C2DA96F38F267D4AEB0D2DFB7654
-81CCFDEC15EF9B4FB509DB5F3C8DEBFD3ECE25CCA8A5FF851A72677222564232
-2F10A1440C3876FF93F61400D2593E3A9E8C5FF4F8C553D7CD97A3C9775EC1C2
-D4D4EBBAF598533D398B72FF2778B11CB05C44607FFD41D61F2521228779E0F4
-7CC57F1B5FD1B9E718FE8E1BC4B58891A453DECA7DF8B4D1C46BE8BD7234091B
-EDF977FB1B4847BF841866F240F039022A8F41A1F737DE44D55D4E94705822FC
-C8EB24AB2C8E6118E0B116524FDD9821F52C2913C22623BDD9F3BC2921A60A15
-47F88FF6312B11779539A5024C8EE13BCF846D1018C8FB3CA3A0089E46A7C8A1
-7ADF5BCBEC31308D4AC7DBC15368C72B2CCEF4444BF5470D6587D98B801D96B4
-74684883497D5DA8AFEB5A14AABBAF170EF29663E6A8FC646306B543A7C329D3
-44C3F54E465AE70311218D1226787A5C0A01BAAE72DD9A2525DCFF5213A35107
-4694766D47B543DD83455C2D8BA6A40D6D8FA115D1181CA12390E664593B9213
-CDB387A4EF1940C4F57B2535439DE09E14B7B701E65086E124320F58798DF550
-8FF49AFD962471F40B3D4ECF24B54BCF2DFC8DC3C124271B40B9507967DD95F2
-8A6528DC44090AEA12F83F64861D1EFF477222EC7897D6E2CA77B5FEB2482DF8
-BCF9F4F15A0660CD2B4B4E538622E2196D06448B341C3D18FD60B95826A5F208
-C921C8CF4B6EA8E810FAF488A767F5BC183428542242FCC1312657F93F3547BE
-693AFC07EEFE183FDAC30779D6E5FF6988E719CF5614DD458A0F6B9BE494B449
-3D7E6B7BB05EFEC207F499A3A5F23CE0B7230BF67303C33F7054B84C5A7CE759
-DC1A91834EFE20ADC3B017A9F0A37B891ACB15C20B0939221A59AEE1526B5E5D
-8B5E70D2F8A404CFB96F532C24BA2362447DA3790F162CC93219A5D8731F5B7E
-53846D3C2249B2FBCCE7F2AEEB61063754043FAE13B6E3EFF8C6EBCE8E319AC7
-710BCB523DE73ACB29C32D404A8479A4AD9BDA61653A090729EB38B4C0DC7EAC
-510DDF7C5EAD5C03447AF4324C63851D040702D44BB607BAB73B0B1008E05855
-676112E78B05888439AE17C17C2FEBC3C9FAA370718CDD2FCEB81747DAAC6815
-63744D6F3F54E64BD4E40257F97E4F73B2FBC8E5749CCD813E7417B06674E29E
-855488A8C71005BC4E40E0DC96002E4B0A1D2B31D8694EA481CDEBDE383A97AB
-33E71447D5007A78713AF268EBF5319E6E3F8D3E86CA613821B7E85EB2BAB0D5
-AC4F19A6D6BEE6BEDD33535956FF3EF10DACC18C1EEEFD09BDD5572C3C175539
-8E2F00614A9F93F0401FA14C790915DCE503D44FE0F064BFB9C303B48C268F7C
-83A2CF17FD2D7F34827FBA800D724B4781C3A372FDFD3C57DC3514BD66E4D98E
-77BE9BD46143B9306227C888D7B8D5385B23DAF6E256E26A9B7E5A53EF0CA896
-804681740EBF506D540DA2CBC901D5F33CF71622F94E3559ABB59F367B089B7B
-1E22F6F787B9E1AFD6CEDA5C19203AB65FD0F85A9A6636A294E52688F05A97E5
-CFE46FD66A8E658B5B9AC1AF18EC6F17D7B5559E9454A0398D0F5C47A637216D
-C51B8547FF3AD09D5B41818488AA3008D1A410D67EA1462D3FC72DBE25B22330
-B55C45604C1EB4B7508BB5CE1B3E48D8C12CBF7CB17212BD2FD0FE27AC13AA54
-A4204B65DA4288E6E849F49C6B31BE67508E9B8B6FE9710740694A0B110175E4
-EB9665B859ECB0DD5C44A14853119E5E819CA3667721011CCFFDC4ECA4FF0CE2
-2BEC806945C23BD9A09014293C20AB849E666A09151C38DA8FA6A57765146575
-C86784E91F65C25DC68C8E35BD0811479E6A1F571115CE27A9F0C30970429FD5
-6F0902CFC58CDE4ACC8396D53FCDD955E2F3B5E4E542FEFCDDD8
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (clefnot.dvi)
-@start /Fa 139[44 44 44 3[44 44 6[44 3[44 44 41[44 44
-44 44 44 44 44 44 3[44 44[{}17 83.022 /CMTT10 rf /Fb
-179[93 1[93 1[93 106 71[{}4 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-329 229 y Fa(0,t)254
-96 y Fb(L)228 229 y Fa(1,s)691 63 y Fb(L)664 229 y Fa(2,m)1128
-29 y Fb(L)1101 229 y Fa(3,a)1565 -4 y Fb(L)1538 229 y
-Fa(4,n)2002 29 y Fb(J)1975 229 y Fa(5,r)2439 -4 y Fb(J)2412
-229 y Fa(6,b)2876 96 y Fb(H)2849 229 y Fa(7,f)3405 262
-y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/clefnot.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: clefnot.dvi
+%%CreationDate: Wed Jan 21 13:53:18 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 740 483 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE clefnot.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1353
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 44 /comma 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 97 /a put
+dup 98 /b put
+dup 102 /f put
+dup 109 /m put
+dup 110 /n put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
+7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
+81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
+D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
+740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
+921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
+495069A1DDF11DC589D2E91C1514C2799C5B9549A3CEBDEEF87B000E2686DF86
+A256B3BDB4FDC79C218947A13035A3DD2DAC7684B9DE946538F2015273B3DE1F
+40FA724FEDEF2A55EE15C84A5CF29933AB3A46E4CCF552939B7AAAB007CD23C7
+FAD6E48C747395BEF8056AFD1E19CE919F6ECD6EBBF21CACB65704C9A8C2D378
+5AD589B451B5B6F298A34EA77677BC935500722066F025C1104FFC325A9DA0BC
+8A47D0C7803C544AD16DACC3058DE5836470FDDCF3EB4BFC8540484835323410
+B2CF4626600B1826BD03520B38959380B6F051ABBD09BD9CD5004F460FCFA16F
+BABDBA9EBDF4DE3A734D55417D4499D22E12E1BAB6E7EEEC6CA0A6EE762C39CD
+FA05F1E4A7EE634F888EB2B5E2F8CD8F21B4A6E6FCABA356F58CADDAE035C9B9
+76C91530598FEEE97CD8CF04E79125D64A0153ADF0C525C1880E89B86D1DE768
+F27D74AB1C3E062FF10632F48C45DC51A88461F18B09C4A79F06FC85BF9EAC65
+DE8F84399CE0C86BEE448D962183036CEE800D650FE2CD2E74C038665ECA680C
+C523830270E7AB53D1AD5876C07901A071501004D16115A54F2879BB03C350A0
+B6C5ECDAD7BAA8CECDD4D526CF50373AB7D47B509AE6F5C4B100BE8334ABE164
+31A63FE60FB97EEFB431630ACDA0A367A9B9DC39C0B9F8BF7F1FBF46ED540033
+FFA39DB14BFD9ECC41C9EA325EF68958A889083FDEBBE910108C3BDCF726240D
+C80151201DF7794D747B3A78C1F0021E46CA77856A05A144DD0BC77CBFAC4182
+A473C546E9169DED0242478AEAB2C7D80408F026B678D46BD3E210DCFC74F2D1
+B41FCCC1FFD54B90A1F3306F36EF68CB357B16360341D133F0E2595D8726992A
+58922B08EA8CB78DFE5E7B1933FD224AB4E88FA7071CDC953F241C4EAF53B9E1
+CDFD27C3F358C9B01B76C2B478B64F05D9CDB973A9201734EC43EC6D3765C9B0
+19BE6B4558C1A69E94B9DF82CA12D23E5C56750C4E0E0A40D4F442A70454EC33
+429F057EBDD8CAE2C116D79B899B00C7BA2553DABEA38DCBA9D71E5DE3F21F1E
+2988832735C3D791BD5E20DD78AA7C52A7B81C1DB946F50D8E3381A4517E1E7E
+9EA1EF8B806CFB8160CA5D271DBBA2709FB85ADF3671861F7DEDA6D054E039DC
+3A844236A0DD8F3300908B6AC387272BB741B090B2D9D01A3A2ECB1432AB85DF
+AB4A99F8C7B33FB0C10FFE0E52F02DB00FEEC27CA936012EA237345EF035A765
+3EB43E4C1B728D932ADC333BAD8BB77D157E5A2122E2F3A62EDF9643F9FCE519
+2B8535A26ECD6731D66573477B5EACA3DFCD88C921D25236BE120EF217F2F7F8
+85A3BA4F546E98A4F8A77A116D5FFF0C300B24BA1CB159E3F87940722DE5DF90
+11B6F2BEA0BD52187558084DE8A067387C991E9D6449DE5EAE14401A56592356
+8BBC94129AB2D2B1077EA0967CA474AB9BD87602F5C4A0DECDD38174733AEF8A
+720E488EAF9CF372000265CCA0AB6754360CC83B3671280F6C4C1DC7DE0CF507
+A5372085A5273E7D53F0CB34BCCAFC7118429308AD5658D6961131DB20EF95B8
+3B257E4A0BAF4750418B026128BD2CE94C28F3E77A97B0C32BCEA0146EA86944
+4FA146FDE1EF0C6D840462E9C91698831F791E99921CFA0D4662C5B816E79328
+25749E54F91FEFC4800429F56937BBEB8126BD451CD98445A775D67B1B67DD6B
+58BE920D8675EC8520C709CF51AAF3A824559CDFB842C46C716E4C68C44E6D4D
+6DFA004C9DC80DF48A0F4BE36CBC0CBE0C48DD6BE1771D4F434B37D47F2A7F82
+E5B2452E03E2F28F6E4E3C0C1F42943CCA6C529328C9FCEC6B5E5FBD30B93E10
+FC67EAD45BA6189CB4859CB54CEFE965781E688802D034F2DBD8AE3A2EECA859
+3C123BE0A4136E8C29F230AFB96B9A0BAD3481875D5B2FFC18048E4A0D56CB63
+D3C2326E18744CFA834F84E6757C11AB7B7C26B2E60C6BF17A2533F757F23487
+94938D9F530B30360FDDDD131CDD3AF0EE3DADBF9F4D9554CACEC981D6E8031D
+A6A9A09480FF67DADDE19B6C6E8A8155EB7F72096FE01EF2D385379D3A41CB03
+FF5220E19346A470A4C01A4E27601D7CC7516AD3F38161D6AAD6BA3F1E9F63FF
+849D97530F76D21F42C8D2520AFFC8FCECB80C690C467F5A4367AE4F9166E785
+5D29AD5EAB237F8D11E7FE4A2F88BE44405E9FB27C9EB5FA256F14B01D23B29D
+4511E89DBD686E6DF2B683B929406930C55C0F5A400B891F7C562DFE7599035E
+C01BFEAD5804E0165CEA04FD475B543D2814BD6CA228FA3037624E6E044F7B84
+C47A0AB7150D64BFF7F622C8EE0E3F374C4F6DAC9AC5DF0D2940EFDA49404936
+7FC195510991300B9E14B87EDD0E3A1C6C4DBDE0D777C074AB0AF8F848CAE283
+4ED07196AC670DF2C177820DF85EBC03069EE6A97ADD1D08C6A3A079D3B8E6B4
+5BC3B4E72E6EE391CBBFE71CD00F08A71349B29EB31136F8526ED39E0A619740
+30A032A11BDCF90B4778B88E0DBFA8C8B51868E878CFDEB1537923D3358A38D1
+EBEF50755551B076CB286CCC7B6C7685B0563A06012E39D15EAE8F7511AA22E8
+3A65EE9D97F433438156B5646A38DFEE3CF08A6856B58F34CC6EAE9CCFDA1D8B
+275E4F80FEA46794BE98DE4BF700CA579A0900E531FD0CAB6AB72574A2E08B76
+E3CBB2F798FD11B767503DAFFB5FBC0F62C48DA27A1E9A49C5166C50572877B5
+2581AFD197493207B42DE9E8ACB785487ECA099B60C561F71C00ABA4AA5EA912
+53D56E1F67AFA601230C3B1A7184033735EA2B3E54603FF1A60ADFFE832CA331
+EC099A572785F157E1F2A132411503C1E5C4D6C86C4E56540BA1ADA16BDFEB76
+6377FEBA0709B5765AB4BDBFA870A513629436092F9FBB84EACE3C5E9ED46E9C
+BD29146010D7BA71F97976B8C17CA57D3FFE66EE7994B0B83DE5B212F880BEC2
+5FAE7C60C6CD0DA2922F834635332D45F24DAA181AACF69BD2AA6227DDB7A2D6
+DA9148A07090CC4E54C96C26969EC66D9B7D6F7F23A82D6393BF9373E9553739
+B3FAC9B2BD018C8C78BA21D8AAB878DEC3BDB3EEDC2A3AEF9843545C77C42F58
+A393DC016810C5D80A9FC8C59EEC6E7C44BC79AE8CE06EFD8BAB0AD7A9B7A66E
+4194BF01A48EC9519ECB2EAE5D103528C8E628A7D3120070D29B6B7E8ACC82D8
+3E10135B361C202933F0110CF225FC5C868EBA62B409D17B74B4E13DC5BD71BE
+6802DE0C85AC91EA26AD35E53F69A9BA59858A94BBB944E620F279DFF53D1D72
+F418D0CE07281301EA25B3CF85868B806AEFA70AD924F942C63D4279164B27E7
+98F45CEE1BF87E437EAB0A5204589B8B1B216908C0CB3C4591AE338DC168BC39
+BFEF94D9F9C17CF4B90AE60111451CA2FA8C19F5A9E0E3D06F45897C408EAE78
+ABD18EFE23ACDC11529F3DBE8213696838C6AD52F18656DD68CBBEE0673CDE93
+0A405FE7E25982332734A2E35AA536E9372AD1585B59401AC7D30B73FE65FD06
+0B0D9BD83E8139A32CB4E10967A1B84E23D3B696536FE57873BF37898D9EBC87
+75118D401A98C08113C8B3E64B92E3B05E2EAC7445C8EC60F5066E85521EE672
+FB92A4B8DE9881B5EA90E92EB66B9D7CB220D9106C480E68CFB587A0C0B12C70
+9E8128DE852988B46278F4FBE280AEA04DB6705F4E86C1C1CF9A2308E9CA82B0
+3A13D23D3215A62618AD294E40FD2357B8678936F0C61CEC36AC646D320162A4
+AF972D374DCFC5EE91607C02EDD926E005A214B412AA72E226CBFC85CA92CB7C
+F6FF272EDDE5523CBEAE34CFED0E97601C5EAEF67E31607827490A872AD8F0DC
+F42C2A1467A691BD680AF62E032627448A7299B666B61AB7EA1D3BC3165D29DE
+33EA8D4281C55B9C9DCF6E77CD2E5B5F68B742FFF20B5BD03F524D28768EE406
+4375356924101E41E95959C1D6071173C9DF8199B7C6C07587E1CFE683BC9AAF
+492B20B4F84F17B50C430043E1C1F2FA544C0452590ADF59D04BD5A6AB591288
+B3B013658F7C463C8EB8CA2DB3EC07E973F7F084168F2DDE46B5A4884805E5C3
+4BA29DE6E4FE1C6A529810B3E7E3E5C7834274A8E172C57ED6FDEF4B4A5A5893
+6A6286A19179E0D2A54A23E6B588CB3AE2DA78215062593F9E18F061D4C864FC
+E486623CACFB7F22CDB8A31E78E5AF4AD5DE477E8F8F691BC8DC4ADA73A66FA0
+CCDBEA7D446B29E603245454885198603BF7A20B16ACE6EFAD9979D08A55B2F0
+DF982FEF5AF22AE6126B37140BF34089976C910BB331E9CF7374C56B98556C0B
+AD94561FA88A8F01FD21775AF05AD48850ACB7AFE5D6BBBCAA8D39CB8118D701
+92654221146990540BDEFB4D0958542F0822C1ACE4330D6D12127CD6463F41B4
+C766F2AC86D3301D08899979AAA655BE618138F7A07C0386DD4886F897DE4459
+872D7DB3D6D5ACED9EE05B13E12A7776FF3E9D8401A15C34792F28A0A1B8693F
+0B816499CB7262E8BF8E31F34A0E4B085E755FAD09FC86CDAEDB4831DE63E404
+D7FC7444200FAF7D39E147C28EB5F73CF61098181605CDC5F7629ACCF9243A3A
+D76A1339BA4EB50637920288B09D589FA23B6E9B7622219BA8706130171B9C95
+FB4D8B44056ADAB27DD7690AA3DF79F908747D4D14764A8E1092A6870F712864
+31D20687C9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 71 /G put
+dup 72 /H put
+dup 74 /J put
+dup 76 /L put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1ED2609E48B1C3C8DD110
+C191006A93E41496C6BD88FBB4F12B1A7251C3CA7CC900910A3919ED5A0CAF6A
+A3BD988E70CDE46F54D5D2AB0656EEAF89D00CDAFEB55E524FC4430CB962DB80
+710A27BBCAE58A82647E3BB4F121CB548D5B5635E2EED64CEED7A81C004BC864
+0D619A772438F8BC6888E4841D091210C14621E84A0DB4BA0EF9C4671C7731CE
+4B68F628B528824D01282191712CEC7BFED3C2DA96F38F267D4AEB0D2DFB7654
+81CCFDEC15EF9B4FB509DB5F3C8DEBFD3ECE25CCA8A5FF851A72677222564232
+2F10A1440C3876FF93F61400D2593E3A9E8C5FF4F8C553D7CD97A3C9775EC1C2
+D4D4EBBAF598533D398B72FF2778B11CB05C44607FFD41D61F2521228779E0F4
+7CC57F1B5FD1B9E718FE8E1BC4B58891A453DECA7DF8B4D1C46BE8BD7234091B
+EDF977FB1B4847BF841866F240F039022A8F41A1F737DE44D55D4E94705822FC
+C8EB24AB2C8E6118E0B116524FDD9821F52C2913C22623BDD9F3BC2921A60A15
+47F88FF6312B11779539A5024C8EE13BCF846D1018C8FB3CA3A0089E46A7C8A1
+7ADF5BCBEC31308D4AC7DBC15368C72B2CCEF4444BF5470D6587D98B801D96B4
+74684883497D5DA8AFEB5A14AABBAF170EF29663E6A8FC646306B543A7C329D3
+44C3F54E465AE70311218D1226787A5C0A01BAAE72DD9A2525DCFF5213A35107
+4694766D47B543DD83455C2D8BA6A40D6D8FA115D1181CA12390E664593B9213
+CDB387A4EF1940C4F57B2535439DE09E14B7B701E65086E124320F58798DF550
+8FF49AFD962471F40B3D4ECF24B54BCF2DFC8DC3C124271B40B9507967DD95F2
+8A6528DC44090AEA12F83F64861D1EFF477222EC7897D6E2CA77B5FEB2482DF8
+BCF9F4F15A0660CD2B4B4E538622E2196D06448B341C3D18FD60B95826A5F208
+C921C8CF4B6EA8E810FAF488A767F5BC183428542242FCC1312657F93F3547BE
+693AFC07EEFE183FDAC30779D6E5FF6988E719CF5614DD458A0F6B9BE494B449
+3D7E6B7BB05EFEC207F499A3A5F23CE0B7230BF67303C33F7054B84C5A7CE759
+DC1A91834EFE20ADC3B017A9F0A37B891ACB15C20B0939221A59AEE1526B5E5D
+8B5E70D2F8A404CFB96F532C24BA2362447DA3790F162CC93219A5D8731F5B7E
+53846D3C2249B2FBCCE7F2AEEB61063754043FAE13B6E3EFF8C6EBCE8E319AC7
+710BCB523DE73ACB29C32D404A8479A4AD9BDA61653A090729EB38B4C0DC7EAC
+510DDF7C5EAD5C03447AF4324C63851D040702D44BB607BAB73B0B1008E05855
+676112E78B05888439AE17C17C2FEBC3C9FAA370718CDD2FCEB81747DAAC6815
+63744D6F3F54E64BD4E40257F97E4F73B2FBC8E5749CCD813E7417B06674E29E
+855488A8C71005BC4E40E0DC96002E4B0A1D2B31D8694EA481CDEBDE383A97AB
+33E71447D5007A78713AF268EBF5319E6E3F8D3E86CA613821B7E85EB2BAB0D5
+AC4F19A6D6BEE6BEDD33535956FF3EF10DACC18C1EEEFD09BDD5572C3C175539
+8E2F00614A9F93F0401FA14C790915DCE503D44FE0F064BFB9C303B48C268F7C
+83A2CF17FD2D7F34827FBA800D724B4781C3A372FDFD3C57DC3514BD66E4D98E
+77BE9BD46143B9306227C888D7B8D5385B23DAF6E256E26A9B7E5A53EF0CA896
+804681740EBF506D540DA2CBC901D5F33CF71622F94E3559ABB59F367B089B7B
+1E22F6F787B9E1AFD6CEDA5C19203AB65FD0F85A9A6636A294E52688F05A97E5
+CFE46FD66A8E658B5B9AC1AF18EC6F17D7B5559E9454A0398D0F5C47A637216D
+C51B8547FF3AD09D5B41818488AA3008D1A410D67EA1462D3FC72DBE25B22330
+B55C45604C1EB4B7508BB5CE1B3E48D8C12CBF7CB17212BD2FD0FE27AC13AA54
+A4204B65DA4288E6E849F49C6B31BE67508E9B8B6FE9710740694A0B110175E4
+EB9665B859ECB0DD5C44A14853119E5E819CA3667721011CCFFDC4ECA4FF0CE2
+2BEC806945C23BD9A09014293C20AB849E666A09151C38DA8FA6A57765146575
+C86784E91F65C25DC68C8E35BD0811479E6A1F571115CE27A9F0C30970429FD5
+6F0902CFC58CDE4ACC8396D53FCDD955E2F3B5E4E542FEFCDDD8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (clefnot.dvi)
+@start /Fa 139[44 44 44 3[44 44 6[44 3[44 44 41[44 44
+44 44 44 44 44 44 3[44 44[{}17 83.022 /CMTT10 rf /Fb
+179[93 1[93 1[93 106 71[{}4 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-329 229 y Fa(0,t)254
+96 y Fb(L)228 229 y Fa(1,s)691 63 y Fb(L)664 229 y Fa(2,m)1128
+29 y Fb(L)1101 229 y Fa(3,a)1565 -4 y Fb(L)1538 229 y
+Fa(4,n)2002 29 y Fb(J)1975 229 y Fa(5,r)2439 -4 y Fb(J)2412
+229 y Fa(6,b)2876 96 y Fb(H)2849 229 y Fa(7,f)3405 262
+y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1k.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1k.eps
index 9de66bfc8ef..3f3963b5df3 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1k.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1k.eps
@@ -1,741 +1,741 @@
-%% LaTeX2e file `eps/cslurs1k.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: cslurs1k.dvi
-%%CreationDate: Wed Jan 21 13:53:52 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 736 312 783
-%%DocumentFonts: TeXMUSIX16-Regular CMR10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs1k.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1353
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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 75 /K put
-dup 84 /T put
-dup 101 /e put
-dup 108 /l put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 117 /u put
-dup 121 /y put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
-23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
-1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
-71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
-0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
-6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
-426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
-369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
-7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
-E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
-0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
-1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
-ABE41BB2203FED7C530904AE298B4A61D9D59C95FABBA2C4C316D1BC7393767F
-B9694C4A64BAC5BC6AD22B742C08182D657CC63722909468F3E70646666CD073
-2143B43C9CB2402E2A5FD958D2D5A9DF6B417F55A29213F7D1FF0294FDA09A29
-AA7B38C4DCD0FBAC1D8FBD296D6882B5ED7CEF3C5F69FAC9CF6394A659B0B93E
-417E2E5D6B659E37E608B7CE700D3CBCF8A4DCF77226AEC012CD41F40CD8C728
-26FFD9A5BC421A7F5438E113AD35885F3543F17F823114087EEBFF5C1CDBD8E4
-00062E1F59B31F66B44902396C84282C4E5157EB40369FAD0AA2CFF83092128E
-F2DE00C0679F895764C229F74199DC791A71883AE49987BC98301DEEE888A419
-099D14079EF60B11D6CBA1DE86435E1EB3CA6B239F2BB988AAA48533FF5E9EA2
-C520945E9325FB010E5085CD9256937A89DCAD53AB7E3DCACF57826A6B8E8289
-183AA5782E9A66C3CC41378138FC72B9B3C7A88964B618D6C8ECD6DA7C149BE8
-5D8C36E444554DCCBBE565F4B534D79485A4EAA72BD1D9CFD815B84E1EC2B4B6
-C56363C5143F3AE1E8B11F23A08761642F7DC523C827FD81DDF902755A2802DA
-340E411DFBA9B479F551C4826A6D38E19EAE979CFA91284E2D0F9E801991CE9A
-0CE49883EFA9D3FA61D20CB398E414F28F3360FFF1612230A28EE9D9F57A70F4
-62C6028C5352832014FDC25A875489A14547CE056F43F1C7A1135CE4F706D724
-303EA8A7AE1CDFC1C5A2249FE4757A32F22280BE951ABFD948505C246D6FB273
-87C55CE82E42B139FAD0F633FF7AD1E6BEB226CC787D29A7A80A11CA41A6DB39
-3CDAA82710D87619CCABAFCAC2EB10C4159CFD21CB5A95364CB3957EB2105E76
-AB808FB507848CF3D663B62E943E7A4DD8E421B93AAA680DE0DC9A4785B4BB6F
-3AF27B29537ABE88D95B5EAC2192A7DF18C943BB86F489649306570855B6631E
-5A5AD58D32EE1321683BAF3C60E752F2F46F04FE2CD6A813E15A03A65E562013
-37535751E12718F18E0EFF89631DA7406CEF4C0C98CA0D016A1F7E56F54315E6
-E39574BEAC73B5937BF99EC3F527B1C34E6B620C38D55CF64A2082EA0986E181
-27A25084340CB140AA303BCFA86475B081F1DD86AA6282148A2D52ECD1920618
-948890B1C25B3AAA16A4AC244ABF706227E9F320D3F925A1A72159CF7683836B
-EF7990DB78ABD51482791640488FF38E8B9B68C785C9E7FF89EC876663E83D9C
-A25F7F532EBD3171AB48EB9BD72E1B4C0B574FA15D53AEC9297BDE3B8317037C
-9B12E82BFF59E7BE0A06EFA8AA09293D086B437251B12B8789C65324ECF36B39
-BA91BC7B841FD1751A83B29C754139C46C68094506A07699B711761C4A2EC02C
-6D5888621687FA99CC9F929F73F544FD05F85CE1D07A7F9B2561E63B60CA33E9
-32BE0968022833E51644992C8D13B8A053F91832D491A03AFD2730B8056BBCDB
-32775804416B6B977CC35CD7E17F9F0A2948612E5D1DA0E9A721D5C66CE4B87D
-9287A264BFD830A400F1E1F1A5F1EFC95C5239EC7D0B8205F50E83FC793F090C
-1E674F3447DB517D62748AF2F957C1B02B81BE612E398CFAFFAABBCD50D453B7
-B030C357C54B4435CC7390AFEB000DCCE5D9C9E9E4274B60E55B866E41291701
-2318E8D7DF722EF55712AA64B98FFB856499B790146AF3159F1339117C0935B2
-4856A16B652F321E3FFC88D311AEB6B527A7B0A989279063DA76CF96DAB08B23
-6069C893F421DAFC514CDA6343EE5E9F97A58474014594B0AAA1074CB92DEAB0
-F38C0AC50C885BEC1B29748B8AE7FB7E08E225E189940793A439C3EA28AD2EC8
-5E1E67230EB9042B1AF5CB463609FE7C4B9A461A4803E285C3C4681A0E3D426A
-F21B270A59B8AFD0EEE0D1693AB375DDFC3FFE3B5BF4622E2ACFF8BC3E2E94B5
-4BA37012472FB26A6580BBA5F4F5F7F2DD1692670918DD3B18298B84BACD8998
-B93604AB1B3748A75BA62E4740AB7BDE1A864438F7867083370AE01524F7D8B4
-2ACCD4B5AB5CFF3CF7B6697BA0D9673B80C66D9E70E564AA75A07167F6A07AD4
-D13FF579C81665E3FFB4CE3C731A20DD46AF0B32D67E909C4869FEB4C4ED352F
-535434116B1ADA40B98FDDE8B6A229A4D300CB56A5DD6F9F9FDEFEA3EEC98559
-D9EE1E31FE6A6540424B2600AE26E639C825843C71FC1CCC9C1A14548351A331
-772DECB17E479FCB62FCECDBE1C361E2CAE6B995E916021B0CD198
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
-C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
-F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
-466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
-5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
-17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
-60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
-6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
-DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
-3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
-2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
-5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
-0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
-0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
-F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
-119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
-B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
-9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
-3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
-343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
-D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
-D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
-ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
-B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
-7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
-ED20FDD0676421B24C81741678D49E2CF1EC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (cslurs1k.dvi)
-@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 8[65
-75[{}9 83.022 /CMR10 rf /Fb 59[266 124[106 62[0 0 7[{}4
-132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-133 89 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -133
-89 a -118 63 4 117 v -156 63 a Fb(\007)80 13 y
- slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 80 13
-a 80 13 a
- end
- 80 13 a 92 129 4 117 v 13 w Fb(\007)364 -47
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 1 N /S0adj 0 N end
- 364 -47 a 341 104 4 125 v 342 -20 a Fb(\007)496 262
-y Fa(T)n(yp)r(e)28 b(K)f(slurs)p 516 113 4 117 v 517
--4 a Fb(\007)p 692 122 4 109 v 693 13 a(\007)887 29 y
- slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
-
-887 29 a 887 29 a
- end
- 887 29 a 341 104 a Fb(\304)606 118
-y(\304)p 867 131 4 102 v 868 29 a(\007)p 1043 98 4 135
-v 1189 19 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (9.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1189 19 a 1172 46 4 117 v 1134 46 a Fb(\007)1403
-79 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1403 79 a 1403 79 a
- end
- 1403 79 a 1421 79 4 117 v -20
-w Fb(\007)p 1669 63 V 1631 63 a(\010)p 1982 98 4 135
-v 1986 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/cslurs1k.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: cslurs1k.dvi
+%%CreationDate: Wed Jan 21 13:53:52 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 736 312 783
+%%DocumentFonts: TeXMUSIX16-Regular CMR10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs1k.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1353
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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 75 /K put
+dup 84 /T put
+dup 101 /e put
+dup 108 /l put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 117 /u put
+dup 121 /y put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
+23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
+1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
+71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
+0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
+6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
+426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
+369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
+7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
+E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
+0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
+1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
+ABE41BB2203FED7C530904AE298B4A61D9D59C95FABBA2C4C316D1BC7393767F
+B9694C4A64BAC5BC6AD22B742C08182D657CC63722909468F3E70646666CD073
+2143B43C9CB2402E2A5FD958D2D5A9DF6B417F55A29213F7D1FF0294FDA09A29
+AA7B38C4DCD0FBAC1D8FBD296D6882B5ED7CEF3C5F69FAC9CF6394A659B0B93E
+417E2E5D6B659E37E608B7CE700D3CBCF8A4DCF77226AEC012CD41F40CD8C728
+26FFD9A5BC421A7F5438E113AD35885F3543F17F823114087EEBFF5C1CDBD8E4
+00062E1F59B31F66B44902396C84282C4E5157EB40369FAD0AA2CFF83092128E
+F2DE00C0679F895764C229F74199DC791A71883AE49987BC98301DEEE888A419
+099D14079EF60B11D6CBA1DE86435E1EB3CA6B239F2BB988AAA48533FF5E9EA2
+C520945E9325FB010E5085CD9256937A89DCAD53AB7E3DCACF57826A6B8E8289
+183AA5782E9A66C3CC41378138FC72B9B3C7A88964B618D6C8ECD6DA7C149BE8
+5D8C36E444554DCCBBE565F4B534D79485A4EAA72BD1D9CFD815B84E1EC2B4B6
+C56363C5143F3AE1E8B11F23A08761642F7DC523C827FD81DDF902755A2802DA
+340E411DFBA9B479F551C4826A6D38E19EAE979CFA91284E2D0F9E801991CE9A
+0CE49883EFA9D3FA61D20CB398E414F28F3360FFF1612230A28EE9D9F57A70F4
+62C6028C5352832014FDC25A875489A14547CE056F43F1C7A1135CE4F706D724
+303EA8A7AE1CDFC1C5A2249FE4757A32F22280BE951ABFD948505C246D6FB273
+87C55CE82E42B139FAD0F633FF7AD1E6BEB226CC787D29A7A80A11CA41A6DB39
+3CDAA82710D87619CCABAFCAC2EB10C4159CFD21CB5A95364CB3957EB2105E76
+AB808FB507848CF3D663B62E943E7A4DD8E421B93AAA680DE0DC9A4785B4BB6F
+3AF27B29537ABE88D95B5EAC2192A7DF18C943BB86F489649306570855B6631E
+5A5AD58D32EE1321683BAF3C60E752F2F46F04FE2CD6A813E15A03A65E562013
+37535751E12718F18E0EFF89631DA7406CEF4C0C98CA0D016A1F7E56F54315E6
+E39574BEAC73B5937BF99EC3F527B1C34E6B620C38D55CF64A2082EA0986E181
+27A25084340CB140AA303BCFA86475B081F1DD86AA6282148A2D52ECD1920618
+948890B1C25B3AAA16A4AC244ABF706227E9F320D3F925A1A72159CF7683836B
+EF7990DB78ABD51482791640488FF38E8B9B68C785C9E7FF89EC876663E83D9C
+A25F7F532EBD3171AB48EB9BD72E1B4C0B574FA15D53AEC9297BDE3B8317037C
+9B12E82BFF59E7BE0A06EFA8AA09293D086B437251B12B8789C65324ECF36B39
+BA91BC7B841FD1751A83B29C754139C46C68094506A07699B711761C4A2EC02C
+6D5888621687FA99CC9F929F73F544FD05F85CE1D07A7F9B2561E63B60CA33E9
+32BE0968022833E51644992C8D13B8A053F91832D491A03AFD2730B8056BBCDB
+32775804416B6B977CC35CD7E17F9F0A2948612E5D1DA0E9A721D5C66CE4B87D
+9287A264BFD830A400F1E1F1A5F1EFC95C5239EC7D0B8205F50E83FC793F090C
+1E674F3447DB517D62748AF2F957C1B02B81BE612E398CFAFFAABBCD50D453B7
+B030C357C54B4435CC7390AFEB000DCCE5D9C9E9E4274B60E55B866E41291701
+2318E8D7DF722EF55712AA64B98FFB856499B790146AF3159F1339117C0935B2
+4856A16B652F321E3FFC88D311AEB6B527A7B0A989279063DA76CF96DAB08B23
+6069C893F421DAFC514CDA6343EE5E9F97A58474014594B0AAA1074CB92DEAB0
+F38C0AC50C885BEC1B29748B8AE7FB7E08E225E189940793A439C3EA28AD2EC8
+5E1E67230EB9042B1AF5CB463609FE7C4B9A461A4803E285C3C4681A0E3D426A
+F21B270A59B8AFD0EEE0D1693AB375DDFC3FFE3B5BF4622E2ACFF8BC3E2E94B5
+4BA37012472FB26A6580BBA5F4F5F7F2DD1692670918DD3B18298B84BACD8998
+B93604AB1B3748A75BA62E4740AB7BDE1A864438F7867083370AE01524F7D8B4
+2ACCD4B5AB5CFF3CF7B6697BA0D9673B80C66D9E70E564AA75A07167F6A07AD4
+D13FF579C81665E3FFB4CE3C731A20DD46AF0B32D67E909C4869FEB4C4ED352F
+535434116B1ADA40B98FDDE8B6A229A4D300CB56A5DD6F9F9FDEFEA3EEC98559
+D9EE1E31FE6A6540424B2600AE26E639C825843C71FC1CCC9C1A14548351A331
+772DECB17E479FCB62FCECDBE1C361E2CAE6B995E916021B0CD198
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
+C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
+F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
+466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
+5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
+17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
+60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
+6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
+DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
+3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
+2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
+5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
+0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
+0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
+F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
+119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
+B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
+9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
+3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
+343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
+D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
+D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
+ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
+B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
+7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
+ED20FDD0676421B24C81741678D49E2CF1EC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (cslurs1k.dvi)
+@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 8[65
+75[{}9 83.022 /CMR10 rf /Fb 59[266 124[106 62[0 0 7[{}4
+132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-133 89 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -133
+89 a -118 63 4 117 v -156 63 a Fb(\007)80 13 y
+ slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 80 13
+a 80 13 a
+ end
+ 80 13 a 92 129 4 117 v 13 w Fb(\007)364 -47
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 1 N /S0adj 0 N end
+ 364 -47 a 341 104 4 125 v 342 -20 a Fb(\007)496 262
+y Fa(T)n(yp)r(e)28 b(K)f(slurs)p 516 113 4 117 v 517
+-4 a Fb(\007)p 692 122 4 109 v 693 13 a(\007)887 29 y
+ slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+
+887 29 a 887 29 a
+ end
+ 887 29 a 341 104 a Fb(\304)606 118
+y(\304)p 867 131 4 102 v 868 29 a(\007)p 1043 98 4 135
+v 1189 19 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (9.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1189 19 a 1172 46 4 117 v 1134 46 a Fb(\007)1403
+79 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1403 79 a 1403 79 a
+ end
+ 1403 79 a 1421 79 4 117 v -20
+w Fb(\007)p 1669 63 V 1631 63 a(\010)p 1982 98 4 135
+v 1986 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1m.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1m.eps
index c4bff0eee74..ac96ba8fe3a 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1m.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1m.eps
@@ -1,648 +1,648 @@
-%% LaTeX2e file `eps/cslurs1m.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: cslurs1m.dvi
-%%CreationDate: Wed Jan 21 14:25:42 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 736 312 782
-%%DocumentFonts: TeXMUSIX16-Regular CMR10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs1m.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1425
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%!
-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/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/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 77 /M put
-dup 84 /T put
-dup 101 /e put
-dup 108 /l put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 117 /u put
-dup 121 /y put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
-23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
-1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
-71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
-0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
-6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
-426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
-369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
-7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
-E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
-0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
-1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
-ABE41BB2203FED7C530904AE298B4A67F02032573C3068A81496A348D6841671
-115DD07F34B49A8AFBA1CFEFA4964573DF71AA897117FCF70C84B676EBC60F68
-D8E4FB9D36D0A42AC11C581AF47F5DF862E44E749D314C771F351A752B9E6CB9
-BA48AF13E6D4082B2B5CC9E43F1F5643217C40B44D4461F802EA12D047C5276A
-91C05B7DFBEAF1F9711D70FDB5132CA96C2A4AB80B65CC6B5DBB29816BE8CC28
-FE5F8E3164B43160DA3F6DD681A74EBD9AD8BD6E0738B6BB47B5324A318E7722
-8A6B583ED8FBDA50BCC841417FB632E2E453916A9EE1D81DC9D3A540351B66BC
-013DE7023AE833C2D9AB7387B62196B3BB285E63C6437074BDC7E7B65DFD7148
-607675431C94E2F49F3DD76A374A96DDA4CE0B0E655FA475CEB8DB6A76A5D7A3
-642CC5085AE40915932DFF56B6D68438F0672D33CBA02A0DAECEB6D2EB2F1F00
-E68A72E8A1F1E79F7D1BB58334A961C90212C262C29F276149EACE57445AD07F
-2962842016F9D352C44CC768BE3EA8DCBA3E76667A505A139F23DAF6DACAA3FC
-991FBEEECB08A374E96C38DB76E040A161456BA69142669124AC9438F87F34E0
-E7E40A79A093018C80EA010F5EAE3037A93F293F11AD8DC13CF3C2122A33DB50
-7E538FD3EF4E36016D06D56D2720D528319F08E6846C4D01A48EA6DB7D05A75A
-FBDE1552A6BBEDE56A7E00CAF16AC575BA73D75A5B59608B7E56C677A26CE94E
-DF4BD320DB39560FAA7153A4A6245683A97F75196D8E5CC8508B462F842230AD
-AAEB63528ABFE7531B13ED9F823EBB5FD711CE8ECAFF58B09F4821C4EADCCC34
-C278A2F6E9CB6357B04018CB274017A53B57C09E8C83B6CFB3116D608EC9107D
-F61DEE612C1DBDFE0804BDD264C96DDBA9331B916EB2033BD979FD4311A0757C
-261E72A1C30F8D7C99557F669C080493DB59961BBD9AE940BA6BE6A1E7422DB5
-9C15519F639711F6DF14D5464A88622A9E48C00E3FED607C1B023D77ED244DDF
-11C3E113D40059DCE98A6BE7FAA4AC22E1E9F2B5833D552A3EE492472BB0B826
-B2C5DBA213B7219230DA6CC70F5525FDD0FC8B9FC54DCA09EEAB4E5E041C1210
-DB3A3E5001650362C5A2248FB591987AF18C6AC03B4E1B14F4B6AA046F4E7AEB
-2B5093F981C98AF577AFFD5BCA845471C7B36FFB61C6ECC2572ECE1396695DD1
-549C4C27A4D02EBFF77F9532BBC5983987D4CBA1397A24484888517B7A8BFF9C
-949E912A6642C5108E2E03E2FCF0B99C561696F47FEFAD90C8C34B11FCBCC94F
-CE87308A400C91053FE8F4B50F328BF0022F13BF3DBB303EA4DAE8856617FC02
-E2DF4C5D807F6C23E9234CEB0805DE80AACAAFA567F456140651E6684E890304
-D1963F0165D50BDC32D24A5BFB8B02E02BFA4F05E14009441E65D305ADFE0E4C
-781E475F748FAF468A16747CEAF61B196279622BDD680BF662A66C6C64D4C6E0
-85E75A3358A1C6DDBDA7E30D01753BEBB3AC6145DC4ADFD6479409C3AAE6C027
-7CA0374A581EEF6CBEFD51C3C9E613C9E8C89FE8EB2EF5B18933ADADA0FFDA20
-83BC3B17D86115CB8CBBE244094562A7327E4805E7686D9F02A696CB76035DAA
-E95182C5C38EC149EF1400B5190BFCDD9C62D7B3DF93B8EF63CE3A6DF4A97D45
-09D84DCA0513BAC5EAD9A3C5DABAC9A1A7D07109B33BB3326E08AB2638714161
-7FD739C938CC7163FA13B7EE3BA90BC54337195C0C9D09A4DADC7C855F77C576
-7043E5AA4DA8465108EE061AB27498D20A9A50EE007CE9DEC60BD4AD5FC8B8D3
-9BB899C3BC2FBAE9C973E0569CCBB212C7262EB3968EB1AAFBC8E73E97B658A1
-3FF7711DDA5E54480643DE0D1222496FABA34B8971A45B9F738FE6403A3FD261
-5DBBE579CD311DE3CE075178E881A4D00D2714ABFF8BBE16E9DD2638C721C95B
-97356C46DA3C56FBF9112A478A6FF150A1FFCCB492AEAC5C687074F55BA623B2
-DAAB724144FBBF01D2194B4299F2AE8522E4898F04D53568B510600D5FF71894
-E2382C89371E28597C66ADC4B106B2C232674AFCE0965F961DD15A93037EACFC
-2AC7131338E919EA7F577FABB26328507A2707504C2C7EE4B8F9456FCC9062D0
-85368FFBB72F5895A9B35B9B67DC9D5001B6C6E6A0A65566D96B27AA349C0042
-F7AF61E5A3F39B6BC26654FB169CAD23F6EB89AE99346E7E96B1959B4CF1BDE0
-9F21D5F70A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
-C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
-F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
-466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
-5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
-17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
-60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
-6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
-DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
-3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
-2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
-5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
-0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
-0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
-F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
-119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
-B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
-9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
-3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
-343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
-D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
-D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
-ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
-B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
-7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
-ED20FDD0676421B24C81741678D49E2CF1EC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (cslurs1m.dvi)
-@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 6[76
-77[{}9 83.022 /CMR10 rf /Fb 59[266 124[106 62[0 0 7[{}4
-132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)p -118 63 4 117
-v 102 w(\007)-144 99 y @beginspecial -1 @llx -1 @lly
-27 @urx 7 @ury 280 @rwi @setspecial
-%%BeginDocument: cslurs1m.1
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 27 7
-%%Creator: MetaPost
-%%CreationDate: 2003.10.07:1829
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath 0.0091 0.07115 moveto
-1.02615 -0.1663 2.06636 -0.29054 3.11073 -0.29926 curveto
-4.67299 -0.3123 6.22134 -0.06772 7.75336 0.23486 curveto
-9.48055 0.57599 11.1919 0.99104 12.90784 1.38463 curveto
-14.65286 1.78488 16.40335 2.16312 18.13396 2.62196 curveto
-19.73999 3.04779 21.33005 3.54366 22.84013 4.23776 curveto
-23.93312 4.74014 24.9769 5.3433 25.95793 6.03941 curveto
-26.03062 5.91573 lineto
-25.03893 5.21645 23.99576 4.59314 22.91005 4.05118 curveto
-21.41063 3.30269 19.83932 2.71364 18.25787 2.16008 curveto
-16.55789 1.56503 14.84247 1.00958 13.08646 0.6079 curveto
-11.35944 0.21283 9.60301 -0.03123 7.84335 -0.2348 curveto
-6.27711 -0.41599 4.70341 -0.5654 3.12764 -0.49779 curveto
-2.07115 -0.45245 1.02112 -0.30965 -0.0091 -0.07115 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 92 129 V 93 13 a(\007)p 341 104 4 125 v
-342 -20 a(\007)496 262 y Fa(T)n(yp)r(e)28 b(M)g(slurs)p
-516 113 4 117 v 517 -4 a Fb(\007)p 692 122 4 109 v 693
-13 a(\007)352 10 y @beginspecial -1 @llx -7 @lly 64 @urx
-3 @ury 650 @rwi @setspecial
-%%BeginDocument: cslurs1m.2
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -7 64 3
-%%Creator: MetaPost
-%%CreationDate: 2003.10.07:1829
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath 2.01393 0.4552 moveto
-1.34358 0.29553 0.67677 0.12032 0.01404 -0.07034 curveto
-0.01404 -0.07034 lineto
--0.01404 0.07034 lineto
--0.01404 0.07034 lineto
-0.65155 0.26135 1.32089 0.4382 1.99355 0.6008 curveto
-1.99355 0.6008 lineto
-2.01393 0.4552 lineto
- closepath fill
-newpath 4.90675 1.04391 moveto
-4.22742 0.9289 3.55083 0.79817 2.87755 0.65186 curveto
-2.87752 0.65186 lineto
-2.85999 0.80194 lineto
-2.85999 0.80194 lineto
-3.53539 0.9523 4.2139 1.08836 4.89507 1.21005 curveto
-4.89508 1.21005 lineto
-4.90675 1.04391 lineto
- closepath fill
-newpath 7.94986 1.45207 moveto
-7.58882 1.41473 lineto
-6.9849 1.34982 6.38257 1.27261 5.7822 1.1832 curveto
-5.7822 1.1832 lineto
-5.77281 1.35866 lineto
-5.77281 1.35866 lineto
-6.37471 1.45496 6.97853 1.54007 7.58394 1.61392 curveto
-7.9456 1.6567 lineto
-7.9456 1.6567 lineto
-7.94986 1.45212 lineto
- closepath fill
-newpath 12.28683 1.6967 moveto
-11.27309 1.67807 10.26016 1.6359 9.24884 1.56308 curveto
-9.24887 1.56308 lineto
-9.2471 1.78929 lineto
-9.2471 1.78929 lineto
-10.26053 1.8801 11.27596 1.9431 12.2926 1.98515 curveto
-12.29254 1.98514 lineto
-12.28683 1.6967 lineto
- closepath fill
-newpath 16.63405 1.65302 moveto
-15.61948 1.68721 14.6046 1.70798 13.59021 1.70822 curveto
-13.59032 1.70822 lineto
-13.59996 2.02818 lineto
-13.59996 2.02818 lineto
-14.61748 2.05353 15.63586 2.06087 16.65431 2.05704 curveto
-16.65428 2.05702 lineto
-16.63388 1.65302 lineto
- closepath fill
-newpath 21.20567 1.42947 moveto
-20.45467 1.47523 19.7034 1.51712 18.95187 1.5546 curveto
-17.93768 1.60222 lineto
-17.93652 1.60228 17.93883 1.6013 17.93791 1.60204 curveto
-17.93768 1.60222 lineto
-17.96338 2.04648 lineto
-17.96347 2.04666 lineto
-17.96338 2.04648 lineto
-18.98196 2.03186 lineto
-19.73598 2.01938 20.48996 2.00365 21.24382 1.98398 curveto
-21.24382 1.98398 lineto
-21.20567 1.42947 lineto
- closepath fill
-newpath 26.03194 1.08662 moveto
-24.9067 1.17674 23.78099 1.26059 22.65475 1.33644 curveto
-22.6548 1.33644 lineto
-22.6986 1.94092 lineto
-22.69864 1.94101 lineto
-22.6986 1.94092 lineto
-23.82928 1.90337 24.95958 1.85594 26.08916 1.7963 curveto
-26.08913 1.79631 lineto
-26.03194 1.08662 lineto
- closepath fill
-newpath 30.85132 0.66718 moveto
-29.72722 0.77164 28.60275 0.87233 27.47786 0.9675 curveto
-27.47668 0.9676 27.47838 0.96619 27.47812 0.9673 curveto
-27.47807 0.96748 lineto
-27.5407 1.71272 lineto
-27.5407 1.71272 lineto
-28.6696 1.64218 29.79768 1.55838 30.92462 1.45903 curveto
-30.92462 1.45903 lineto
-30.85132 0.66718 lineto
- closepath fill
-newpath 35.6902 0.19261 moveto
-34.56076 0.31029 33.4307 0.42232 32.30028 0.53052 curveto
-32.30028 0.53052 lineto
-32.37674 1.32217 lineto
-32.37674 1.32217 lineto
-33.50911 1.20856 34.63966 1.07924 35.76855 0.93657 curveto
-35.76836 0.93642 lineto
-35.6902 0.19261 lineto
- closepath fill
-newpath 40.52574 -0.3514 moveto
-39.3986 -0.21394 38.27048 -0.0847 37.1416 0.03813 curveto
-37.14163 0.03812 lineto
-37.21844 0.74606 lineto
-37.21844 0.74606 lineto
-38.34587 0.5924 39.47168 0.4264 40.59601 0.25044 curveto
-40.59596 0.25044 lineto
-40.52574 -0.3514 lineto
- closepath fill
-newpath 45.25291 -0.98209 moveto
-44.22562 -0.83499 lineto
-43.47601 -0.72995 42.72583 -0.62943 41.97514 -0.5329 curveto
-41.97514 -0.53285 lineto
-42.04153 0.01878 lineto
-42.04153 0.01878 lineto
-42.79012 -0.10391 43.53807 -0.23059 44.28543 -0.36053 curveto
-45.3107 -0.54117 lineto
-45.3107 -0.54117 lineto
-45.25291 -0.98209 lineto
- closepath fill
-newpath 49.63797 -1.709 moveto
-48.61926 -1.51598 47.5965 -1.34222 46.5715 -1.18167 curveto
-46.57152 -1.18167 lineto
-46.6268 -0.78154 lineto
-46.6268 -0.78154 lineto
-47.64986 -0.97278 48.6708 -1.17479 49.6878 -1.3935 curveto
-49.68785 -1.3935 lineto
-49.63797 -1.709 lineto
- closepath fill
-newpath 53.97318 -2.67192 moveto
-52.96988 -2.41142 51.95987 -2.17888 50.94499 -1.96822 curveto
-50.94504 -1.96822 lineto
-50.99283 -1.68428 lineto
-50.99283 -1.68428 lineto
-52.00613 -1.91838 53.01472 -2.17169 54.01674 -2.45015 curveto
-54.01671 -2.45012 lineto
-53.97318 -2.67192 lineto
- closepath fill
-newpath 57.4431 -3.7023 moveto
-56.83772 -3.49864 56.22833 -3.30653 55.61525 -3.1261 curveto
-55.25998 -3.02295 lineto
-55.25998 -3.02295 lineto
-55.30199 -2.82268 lineto
-55.30199 -2.82268 lineto
-55.65688 -2.93124 lineto
-56.2696 -3.12091 56.87883 -3.32117 57.48428 -3.53192 curveto
-57.48428 -3.53192 lineto
-57.4431 -3.7023 lineto
- closepath fill
-newpath 60.35606 -4.784 moveto
-59.68456 -4.51064 59.00719 -4.25189 58.32442 -4.00795 curveto
-58.3244 -4.00793 lineto
-58.3659 -3.8472 lineto
-58.3659 -3.8472 lineto
-59.04906 -4.09805 59.72717 -4.36237 60.39987 -4.63997 curveto
-60.39992 -4.63998 lineto
-60.35606 -4.784 lineto
- closepath fill
-newpath 63.19646 -6.04442 moveto
-62.5427 -5.72968 61.88237 -5.42928 61.21597 -5.14342 curveto
-61.21597 -5.14342 lineto
-61.26161 -5.00415 lineto
-61.26161 -5.00415 lineto
-61.92961 -5.29315 62.59201 -5.59538 63.24843 -5.9107 curveto
-63.24843 -5.9107 lineto
-63.19646 -6.04442 lineto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 341 104 a(\304)606 118 y(\304)p 867 131
-4 102 v 868 29 a(\007)p 1043 98 4 135 v 1172 46 4 117
-v 1134 46 a(\007)1178 59 y @beginspecial -1 @llx -5 @lly
-27 @urx 1 @ury 280 @rwi @setspecial
-%%BeginDocument: cslurs1m.3
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -5 27 1
-%%Creator: MetaPost
-%%CreationDate: 2003.10.07:1829
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.01437 0.07028 moveto
-1.00781 0.38809 2.05702 0.61136 3.12004 0.73726 curveto
-4.6808 0.92212 6.25566 0.89578 7.82567 0.83528 curveto
-9.57585 0.76784 11.32584 0.65799 13.05754 0.3939 curveto
-14.8091 0.1268 16.53146 -0.29648 18.24092 -0.76143 curveto
-19.82143 -1.1913 21.39447 -1.65785 22.90355 -2.29558 curveto
-23.9864 -2.75319 25.03087 -3.29678 26.02692 -3.92117 curveto
-25.96164 -4.04892 lineto
-24.97688 -3.42754 23.93355 -2.90424 22.84663 -2.48653 curveto
-21.33086 -1.904 19.7461 -1.53229 18.15092 -1.2311 curveto
-16.42096 -0.90445 14.67699 -0.66 12.93677 -0.3939 curveto
-11.21648 -0.13084 9.49907 0.15352 7.77104 0.3602 curveto
-6.22623 0.54498 4.66946 0.66756 3.11835 0.53801 curveto
-2.06447 0.45 1.02351 0.246 0.01436 -0.07027 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 1421 79 V 1383 79 a(\007)p 1669 63 V 1631
-63 a(\010)p 1982 98 4 135 v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/cslurs1m.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: cslurs1m.dvi
+%%CreationDate: Wed Jan 21 14:25:42 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 736 312 782
+%%DocumentFonts: TeXMUSIX16-Regular CMR10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs1m.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1425
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%!
+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/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/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 77 /M put
+dup 84 /T put
+dup 101 /e put
+dup 108 /l put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 117 /u put
+dup 121 /y put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
+23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
+1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
+71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
+0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
+6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
+426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
+369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
+7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
+E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
+0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
+1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
+ABE41BB2203FED7C530904AE298B4A67F02032573C3068A81496A348D6841671
+115DD07F34B49A8AFBA1CFEFA4964573DF71AA897117FCF70C84B676EBC60F68
+D8E4FB9D36D0A42AC11C581AF47F5DF862E44E749D314C771F351A752B9E6CB9
+BA48AF13E6D4082B2B5CC9E43F1F5643217C40B44D4461F802EA12D047C5276A
+91C05B7DFBEAF1F9711D70FDB5132CA96C2A4AB80B65CC6B5DBB29816BE8CC28
+FE5F8E3164B43160DA3F6DD681A74EBD9AD8BD6E0738B6BB47B5324A318E7722
+8A6B583ED8FBDA50BCC841417FB632E2E453916A9EE1D81DC9D3A540351B66BC
+013DE7023AE833C2D9AB7387B62196B3BB285E63C6437074BDC7E7B65DFD7148
+607675431C94E2F49F3DD76A374A96DDA4CE0B0E655FA475CEB8DB6A76A5D7A3
+642CC5085AE40915932DFF56B6D68438F0672D33CBA02A0DAECEB6D2EB2F1F00
+E68A72E8A1F1E79F7D1BB58334A961C90212C262C29F276149EACE57445AD07F
+2962842016F9D352C44CC768BE3EA8DCBA3E76667A505A139F23DAF6DACAA3FC
+991FBEEECB08A374E96C38DB76E040A161456BA69142669124AC9438F87F34E0
+E7E40A79A093018C80EA010F5EAE3037A93F293F11AD8DC13CF3C2122A33DB50
+7E538FD3EF4E36016D06D56D2720D528319F08E6846C4D01A48EA6DB7D05A75A
+FBDE1552A6BBEDE56A7E00CAF16AC575BA73D75A5B59608B7E56C677A26CE94E
+DF4BD320DB39560FAA7153A4A6245683A97F75196D8E5CC8508B462F842230AD
+AAEB63528ABFE7531B13ED9F823EBB5FD711CE8ECAFF58B09F4821C4EADCCC34
+C278A2F6E9CB6357B04018CB274017A53B57C09E8C83B6CFB3116D608EC9107D
+F61DEE612C1DBDFE0804BDD264C96DDBA9331B916EB2033BD979FD4311A0757C
+261E72A1C30F8D7C99557F669C080493DB59961BBD9AE940BA6BE6A1E7422DB5
+9C15519F639711F6DF14D5464A88622A9E48C00E3FED607C1B023D77ED244DDF
+11C3E113D40059DCE98A6BE7FAA4AC22E1E9F2B5833D552A3EE492472BB0B826
+B2C5DBA213B7219230DA6CC70F5525FDD0FC8B9FC54DCA09EEAB4E5E041C1210
+DB3A3E5001650362C5A2248FB591987AF18C6AC03B4E1B14F4B6AA046F4E7AEB
+2B5093F981C98AF577AFFD5BCA845471C7B36FFB61C6ECC2572ECE1396695DD1
+549C4C27A4D02EBFF77F9532BBC5983987D4CBA1397A24484888517B7A8BFF9C
+949E912A6642C5108E2E03E2FCF0B99C561696F47FEFAD90C8C34B11FCBCC94F
+CE87308A400C91053FE8F4B50F328BF0022F13BF3DBB303EA4DAE8856617FC02
+E2DF4C5D807F6C23E9234CEB0805DE80AACAAFA567F456140651E6684E890304
+D1963F0165D50BDC32D24A5BFB8B02E02BFA4F05E14009441E65D305ADFE0E4C
+781E475F748FAF468A16747CEAF61B196279622BDD680BF662A66C6C64D4C6E0
+85E75A3358A1C6DDBDA7E30D01753BEBB3AC6145DC4ADFD6479409C3AAE6C027
+7CA0374A581EEF6CBEFD51C3C9E613C9E8C89FE8EB2EF5B18933ADADA0FFDA20
+83BC3B17D86115CB8CBBE244094562A7327E4805E7686D9F02A696CB76035DAA
+E95182C5C38EC149EF1400B5190BFCDD9C62D7B3DF93B8EF63CE3A6DF4A97D45
+09D84DCA0513BAC5EAD9A3C5DABAC9A1A7D07109B33BB3326E08AB2638714161
+7FD739C938CC7163FA13B7EE3BA90BC54337195C0C9D09A4DADC7C855F77C576
+7043E5AA4DA8465108EE061AB27498D20A9A50EE007CE9DEC60BD4AD5FC8B8D3
+9BB899C3BC2FBAE9C973E0569CCBB212C7262EB3968EB1AAFBC8E73E97B658A1
+3FF7711DDA5E54480643DE0D1222496FABA34B8971A45B9F738FE6403A3FD261
+5DBBE579CD311DE3CE075178E881A4D00D2714ABFF8BBE16E9DD2638C721C95B
+97356C46DA3C56FBF9112A478A6FF150A1FFCCB492AEAC5C687074F55BA623B2
+DAAB724144FBBF01D2194B4299F2AE8522E4898F04D53568B510600D5FF71894
+E2382C89371E28597C66ADC4B106B2C232674AFCE0965F961DD15A93037EACFC
+2AC7131338E919EA7F577FABB26328507A2707504C2C7EE4B8F9456FCC9062D0
+85368FFBB72F5895A9B35B9B67DC9D5001B6C6E6A0A65566D96B27AA349C0042
+F7AF61E5A3F39B6BC26654FB169CAD23F6EB89AE99346E7E96B1959B4CF1BDE0
+9F21D5F70A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
+C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
+F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
+466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
+5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
+17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
+60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
+6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
+DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
+3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
+2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
+5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
+0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
+0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
+F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
+119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
+B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
+9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
+3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
+343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
+D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
+D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
+ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
+B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
+7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
+ED20FDD0676421B24C81741678D49E2CF1EC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (cslurs1m.dvi)
+@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 6[76
+77[{}9 83.022 /CMR10 rf /Fb 59[266 124[106 62[0 0 7[{}4
+132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)p -118 63 4 117
+v 102 w(\007)-144 99 y @beginspecial -1 @llx -1 @lly
+27 @urx 7 @ury 280 @rwi @setspecial
+%%BeginDocument: cslurs1m.1
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 27 7
+%%Creator: MetaPost
+%%CreationDate: 2003.10.07:1829
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath 0.0091 0.07115 moveto
+1.02615 -0.1663 2.06636 -0.29054 3.11073 -0.29926 curveto
+4.67299 -0.3123 6.22134 -0.06772 7.75336 0.23486 curveto
+9.48055 0.57599 11.1919 0.99104 12.90784 1.38463 curveto
+14.65286 1.78488 16.40335 2.16312 18.13396 2.62196 curveto
+19.73999 3.04779 21.33005 3.54366 22.84013 4.23776 curveto
+23.93312 4.74014 24.9769 5.3433 25.95793 6.03941 curveto
+26.03062 5.91573 lineto
+25.03893 5.21645 23.99576 4.59314 22.91005 4.05118 curveto
+21.41063 3.30269 19.83932 2.71364 18.25787 2.16008 curveto
+16.55789 1.56503 14.84247 1.00958 13.08646 0.6079 curveto
+11.35944 0.21283 9.60301 -0.03123 7.84335 -0.2348 curveto
+6.27711 -0.41599 4.70341 -0.5654 3.12764 -0.49779 curveto
+2.07115 -0.45245 1.02112 -0.30965 -0.0091 -0.07115 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 92 129 V 93 13 a(\007)p 341 104 4 125 v
+342 -20 a(\007)496 262 y Fa(T)n(yp)r(e)28 b(M)g(slurs)p
+516 113 4 117 v 517 -4 a Fb(\007)p 692 122 4 109 v 693
+13 a(\007)352 10 y @beginspecial -1 @llx -7 @lly 64 @urx
+3 @ury 650 @rwi @setspecial
+%%BeginDocument: cslurs1m.2
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -7 64 3
+%%Creator: MetaPost
+%%CreationDate: 2003.10.07:1829
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath 2.01393 0.4552 moveto
+1.34358 0.29553 0.67677 0.12032 0.01404 -0.07034 curveto
+0.01404 -0.07034 lineto
+-0.01404 0.07034 lineto
+-0.01404 0.07034 lineto
+0.65155 0.26135 1.32089 0.4382 1.99355 0.6008 curveto
+1.99355 0.6008 lineto
+2.01393 0.4552 lineto
+ closepath fill
+newpath 4.90675 1.04391 moveto
+4.22742 0.9289 3.55083 0.79817 2.87755 0.65186 curveto
+2.87752 0.65186 lineto
+2.85999 0.80194 lineto
+2.85999 0.80194 lineto
+3.53539 0.9523 4.2139 1.08836 4.89507 1.21005 curveto
+4.89508 1.21005 lineto
+4.90675 1.04391 lineto
+ closepath fill
+newpath 7.94986 1.45207 moveto
+7.58882 1.41473 lineto
+6.9849 1.34982 6.38257 1.27261 5.7822 1.1832 curveto
+5.7822 1.1832 lineto
+5.77281 1.35866 lineto
+5.77281 1.35866 lineto
+6.37471 1.45496 6.97853 1.54007 7.58394 1.61392 curveto
+7.9456 1.6567 lineto
+7.9456 1.6567 lineto
+7.94986 1.45212 lineto
+ closepath fill
+newpath 12.28683 1.6967 moveto
+11.27309 1.67807 10.26016 1.6359 9.24884 1.56308 curveto
+9.24887 1.56308 lineto
+9.2471 1.78929 lineto
+9.2471 1.78929 lineto
+10.26053 1.8801 11.27596 1.9431 12.2926 1.98515 curveto
+12.29254 1.98514 lineto
+12.28683 1.6967 lineto
+ closepath fill
+newpath 16.63405 1.65302 moveto
+15.61948 1.68721 14.6046 1.70798 13.59021 1.70822 curveto
+13.59032 1.70822 lineto
+13.59996 2.02818 lineto
+13.59996 2.02818 lineto
+14.61748 2.05353 15.63586 2.06087 16.65431 2.05704 curveto
+16.65428 2.05702 lineto
+16.63388 1.65302 lineto
+ closepath fill
+newpath 21.20567 1.42947 moveto
+20.45467 1.47523 19.7034 1.51712 18.95187 1.5546 curveto
+17.93768 1.60222 lineto
+17.93652 1.60228 17.93883 1.6013 17.93791 1.60204 curveto
+17.93768 1.60222 lineto
+17.96338 2.04648 lineto
+17.96347 2.04666 lineto
+17.96338 2.04648 lineto
+18.98196 2.03186 lineto
+19.73598 2.01938 20.48996 2.00365 21.24382 1.98398 curveto
+21.24382 1.98398 lineto
+21.20567 1.42947 lineto
+ closepath fill
+newpath 26.03194 1.08662 moveto
+24.9067 1.17674 23.78099 1.26059 22.65475 1.33644 curveto
+22.6548 1.33644 lineto
+22.6986 1.94092 lineto
+22.69864 1.94101 lineto
+22.6986 1.94092 lineto
+23.82928 1.90337 24.95958 1.85594 26.08916 1.7963 curveto
+26.08913 1.79631 lineto
+26.03194 1.08662 lineto
+ closepath fill
+newpath 30.85132 0.66718 moveto
+29.72722 0.77164 28.60275 0.87233 27.47786 0.9675 curveto
+27.47668 0.9676 27.47838 0.96619 27.47812 0.9673 curveto
+27.47807 0.96748 lineto
+27.5407 1.71272 lineto
+27.5407 1.71272 lineto
+28.6696 1.64218 29.79768 1.55838 30.92462 1.45903 curveto
+30.92462 1.45903 lineto
+30.85132 0.66718 lineto
+ closepath fill
+newpath 35.6902 0.19261 moveto
+34.56076 0.31029 33.4307 0.42232 32.30028 0.53052 curveto
+32.30028 0.53052 lineto
+32.37674 1.32217 lineto
+32.37674 1.32217 lineto
+33.50911 1.20856 34.63966 1.07924 35.76855 0.93657 curveto
+35.76836 0.93642 lineto
+35.6902 0.19261 lineto
+ closepath fill
+newpath 40.52574 -0.3514 moveto
+39.3986 -0.21394 38.27048 -0.0847 37.1416 0.03813 curveto
+37.14163 0.03812 lineto
+37.21844 0.74606 lineto
+37.21844 0.74606 lineto
+38.34587 0.5924 39.47168 0.4264 40.59601 0.25044 curveto
+40.59596 0.25044 lineto
+40.52574 -0.3514 lineto
+ closepath fill
+newpath 45.25291 -0.98209 moveto
+44.22562 -0.83499 lineto
+43.47601 -0.72995 42.72583 -0.62943 41.97514 -0.5329 curveto
+41.97514 -0.53285 lineto
+42.04153 0.01878 lineto
+42.04153 0.01878 lineto
+42.79012 -0.10391 43.53807 -0.23059 44.28543 -0.36053 curveto
+45.3107 -0.54117 lineto
+45.3107 -0.54117 lineto
+45.25291 -0.98209 lineto
+ closepath fill
+newpath 49.63797 -1.709 moveto
+48.61926 -1.51598 47.5965 -1.34222 46.5715 -1.18167 curveto
+46.57152 -1.18167 lineto
+46.6268 -0.78154 lineto
+46.6268 -0.78154 lineto
+47.64986 -0.97278 48.6708 -1.17479 49.6878 -1.3935 curveto
+49.68785 -1.3935 lineto
+49.63797 -1.709 lineto
+ closepath fill
+newpath 53.97318 -2.67192 moveto
+52.96988 -2.41142 51.95987 -2.17888 50.94499 -1.96822 curveto
+50.94504 -1.96822 lineto
+50.99283 -1.68428 lineto
+50.99283 -1.68428 lineto
+52.00613 -1.91838 53.01472 -2.17169 54.01674 -2.45015 curveto
+54.01671 -2.45012 lineto
+53.97318 -2.67192 lineto
+ closepath fill
+newpath 57.4431 -3.7023 moveto
+56.83772 -3.49864 56.22833 -3.30653 55.61525 -3.1261 curveto
+55.25998 -3.02295 lineto
+55.25998 -3.02295 lineto
+55.30199 -2.82268 lineto
+55.30199 -2.82268 lineto
+55.65688 -2.93124 lineto
+56.2696 -3.12091 56.87883 -3.32117 57.48428 -3.53192 curveto
+57.48428 -3.53192 lineto
+57.4431 -3.7023 lineto
+ closepath fill
+newpath 60.35606 -4.784 moveto
+59.68456 -4.51064 59.00719 -4.25189 58.32442 -4.00795 curveto
+58.3244 -4.00793 lineto
+58.3659 -3.8472 lineto
+58.3659 -3.8472 lineto
+59.04906 -4.09805 59.72717 -4.36237 60.39987 -4.63997 curveto
+60.39992 -4.63998 lineto
+60.35606 -4.784 lineto
+ closepath fill
+newpath 63.19646 -6.04442 moveto
+62.5427 -5.72968 61.88237 -5.42928 61.21597 -5.14342 curveto
+61.21597 -5.14342 lineto
+61.26161 -5.00415 lineto
+61.26161 -5.00415 lineto
+61.92961 -5.29315 62.59201 -5.59538 63.24843 -5.9107 curveto
+63.24843 -5.9107 lineto
+63.19646 -6.04442 lineto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 341 104 a(\304)606 118 y(\304)p 867 131
+4 102 v 868 29 a(\007)p 1043 98 4 135 v 1172 46 4 117
+v 1134 46 a(\007)1178 59 y @beginspecial -1 @llx -5 @lly
+27 @urx 1 @ury 280 @rwi @setspecial
+%%BeginDocument: cslurs1m.3
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -5 27 1
+%%Creator: MetaPost
+%%CreationDate: 2003.10.07:1829
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.01437 0.07028 moveto
+1.00781 0.38809 2.05702 0.61136 3.12004 0.73726 curveto
+4.6808 0.92212 6.25566 0.89578 7.82567 0.83528 curveto
+9.57585 0.76784 11.32584 0.65799 13.05754 0.3939 curveto
+14.8091 0.1268 16.53146 -0.29648 18.24092 -0.76143 curveto
+19.82143 -1.1913 21.39447 -1.65785 22.90355 -2.29558 curveto
+23.9864 -2.75319 25.03087 -3.29678 26.02692 -3.92117 curveto
+25.96164 -4.04892 lineto
+24.97688 -3.42754 23.93355 -2.90424 22.84663 -2.48653 curveto
+21.33086 -1.904 19.7461 -1.53229 18.15092 -1.2311 curveto
+16.42096 -0.90445 14.67699 -0.66 12.93677 -0.3939 curveto
+11.21648 -0.13084 9.49907 0.15352 7.77104 0.3602 curveto
+6.22623 0.54498 4.66946 0.66756 3.11835 0.53801 curveto
+2.06447 0.45 1.02351 0.246 0.01436 -0.07027 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 1421 79 V 1383 79 a(\007)p 1669 63 V 1631
+63 a(\010)p 1982 98 4 135 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1n.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1n.eps
index 732c686d965..27a6d12d179 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1n.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs1n.eps
@@ -1,645 +1,645 @@
-%% LaTeX2e file `eps/cslurs1n.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: cslurs1n.dvi
-%%CreationDate: Wed Jan 21 13:54:44 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 737 312 782
-%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular CMR10
-%%+ TeXXSLD16D-Regular TeXXSLD16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs1n.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1354
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXXSLD16-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
-%%CreationDate: 01-07-22 at 22.48
-%%VMusage: 1024 40444
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXXSLD16-Regular) readonly def
-/FamilyName (TeXXSLD16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -199.203 def
-/UnderlineThickness 99.6016 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 199 def
-/descent 801 def
-end readonly def
-/FontName /TeXXSLD16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 21 /endash put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-2126 -1058 2126 349}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE3A6AA404B4ADDBC35AACA
-CAA3EE86E2CA7CDC642731BE96DEF4FFE72CE4E7783869E551326F2270A8724D
-C7B68F37B31DCFF0D6463B15B3023B07CF785AB64B26D448C7004A4C8FB95F50
-2E695FCC8DDF44C1C5B6ECE533CB08FB8B61DA028115F00AA5368589D50F9CC8
-163178C7209705642BBE745560CD7371C3C8F62596058AD9B64288045274C6C2
-0FEEE97328D5887AED13A9EFC1F8FA60DFE214CBE5520B43C35EF3FB019448B6
-A410934290271AB1EA64313FE0F69D72EA243068972DCE15224419F3BFA75A7E
-983F424D2B2987D0E924DB87487A0B818F16E8998A020007B36FBA223A3EE4B4
-976E8B94A9688D8E5B50134F003B72C5315196BB9E8FDCE8599A042F17A0F011
-285D0D1A7298F79E40DB3BC6F2798DE3776495FE113F7CA2F8D7E44EDF6AAD07
-73C36C08A8D1F852B0D96E8170A5017866E69ED48EBDAB5DB5F5B2C3EA139168
-F5ECB860520763D6FD209A23F2CEE376FD1A751C1A35EBB2450827DDE99E7767
-0B8434AF9C9E4B9A8A99F1BE581C08C50004F396CE83F0549B06B88BD6A3C0EA
-6FCB06AF6147C5D0C250B6193547DEB0F5B9575AB7FE3A531CA0F144C6C508C1
-F244549E4F5A3CBE75D920B8F43A0F9610ABAA2FF0C29104696D31E2CB1D782C
-078A643E8AE5CB6DAEB582074E51C8F3509D66BE2FA996860502E1CB7B197430
-5A1FEA87E726F8C8E681AC1AC5EEA7B36FD2FE3237635C589670C167F98B8485
-8D55F8B951FB918D88F59BF05F0D50F438B1C618A288454C1B4B4E230BEE80E4
-C7310B924E49AD53D6E4729B87E9F8F6FBA365C3E95C7151488FFF21B96F5516
-84F33E9DC6F825943E317AC7AC43D9EBB11AC75AE64180ECD713DE1435D35312
-F90DB994400E15A5CB7907FC344161A50BA2E49FA9C94409A483B28326D9950C
-A7678EDA8DCB1FA4A4DBF04DE270D5090C7D827A252CB71A416F56B8091D7776
-0C51149A30922D4E3C2C2911A09EF6ED4F526E2A07F539E50DCAEE6B3B18AA50
-18E0B6B04F25EA1B6DC485235CDC48715C21FC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLD16D-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16D-Regular 001.000
-%%CreationDate: 01-07-22 at 22.49
-%%VMusage: 1024 101006
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16D-Regular known{/TeXXSLD16D-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXXSLD16D-Regular) readonly def
-/FamilyName (TeXXSLD16D) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -198.807 def
-/UnderlineThickness 99.4036 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 199 def
-/descent 801 def
-end readonly def
-/FontName /TeXXSLD16D-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 46 /period put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-2126 -1056 2126 348}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE3A6AA404B4B862F04DD86
-A8A6680771FA24540A27BCF28F9E0E83D013B7684AEDA311C598E9E3684816CD
-8E75BBF5D3AFC94642FFCE39443CF3903BC169B3A08FA71AF1ADA017A5E559F9
-9D0C56AB7E5268428CADBB0EDEBA260A43F1ECBD7D4B04F78BB46B33D45D2A33
-9CAC349C9786ACDEEFB3D9D9A2FAA8720A0594DDADC5FA6A3A92547A024CB932
-30A3CFC1F014DDD03E6A372EAA361F91B34F7159670257DA867B37896D4B05D3
-D3EA63AE5635A9A54A8B72E647797076BB310126140F8A232358264108121AA1
-7FA253DA944B4F5DBCC90D8EA6B4D98A0B1AD648C886A5BD71C5B9E53EE5C752
-5712A7FCBF33E80B77E71C97C1633B57AF7514917E7778A82342100F2769CDC6
-0F2FA0737F8010D393A86D0BE4744E34B7C69B6CB6E2ADA4A81739E3FB2A3A7E
-B7FE58FC7E4C686F0BA62E8BC06596A34E3A02108DE2BE1A0D86CF1E588F6B48
-A005B9C7874C114E897E6DA0468D5C98B4E9C91A921A200B346FBF24425D1C7B
-290BFCF9BAAB9965AB1C5E47E6EE3B8131B6B5D1F4667096B8255AA41FC4B8FD
-E9749B762D30A924ACC1E8523CE3F2F7D159C45B122868654EEC38CA4CCB5F26
-D1C2D5C8005D0224A3BCFC0D4E6D483D07596106D078BACEF5D1512B09FB85E6
-A0A49E149EBEBA5E06BA354CE9B2D15714BAE006909A62CEE5DFCC17A7FAB833
-BA43EA181148D28AB4B88B44CA4AE8E991BCB8BF21433319C2B9D578DAF502D9
-B4FD83982C1386513E3BD2746F65983D039EDA20727CC3A2BD5F468699527813
-F4B52DA3FC0A1E2AA5CCDFEF582BB5976EC140E710E26D9A011253AC1BFF5C66
-DA9BB44F666FA0E5C3806FCE21E5E0B12C27C986231AB9BF03A1575EB36FA118
-C3DA442E02F02C09ED1D15C7398017A89C1D62097A55BE84591F46F42EE6D022
-BCF0787E054D84BF21EA7A9ED71E956D9AB24EE7B32B79405FC0090E1445E569
-EE7D41B21FF33B6BC63AE234CD34FACFF60CD9F2CF99017D8E13FCC0DAEC4BF1
-F0D9A919B29C8525ED1379A4E8B468F9585CDBDAE4B20FA0E1C7FAC0927F967F
-4B3FEBF80F1D0C6F4A1507BF5958BFBF9B8202D046A3DF09B3D9638791517259
-80AD1962375F4C155806498CC61E0AC95FCDEDEC911776F09BF5336520A401EA
-71909099829957424B1DA6E1F9A9A1093CC7F31AE4CF1BB1CF5073337CFA82EF
-125478D99BD8A28255A91B989FD6A7B241AEC3C8098B3C84C9243BF66D2DE66D
-961AA77BD8C36BCC7B905CA1ED4570E77F39ACBC660B0D0D1E8CDE6E6203198A
-3C575801C9D6E6D29F0D889D9A6F201F6F796097518FC9F238576CA03E121F55
-69EFE76D1A22002633C442F6C559B3902E94EAB4E3626AA96D36669D96962B51
-79F455175D22A26958662CEE4CFE360B5D8F032C222F42D412161048BC0169F6
-97E98F97EF09E7242EF5D773ECC54340505577A3CD9E9DF435D23B0BBE942E10
-E91D058E43A0C3D9297CFF0651F978A098807092DF5F39C3F7F1CA93E4557768
-22401B62E1D292C303930418E9AE6196D8217E16C7309D436F1CB441CAB97757
-1B3DAB1C466237DAAE962F895946EE4695DDA6F34C4370AF24CD387E5DD8D0BB
-B56FCC56B480C95382BBBEFCD910B7E9056C72
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 45 /hyphen put
-dup 97 /a put
-dup 98 /b put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D6FBE90EA40D6
-F8B539EDCB0A1EFE2AAAEC6B56780F9312CE3CF757F815AD506873D2884BFED0
-EEBBC826E2C4F589833F5EA07CD65AA558F72555F8061BFAC39CF05FFEB8A713
-A38A6FFBC9C160912580275C2798AC4914F4FE26402FF8E0DD5E05A2797D32CA
-927B17A043D2C98CC8D7CE4361A530160D6800FA73D978E179654682C61FCB9E
-7659E2B0A319D5E77A57BA9C9BC3C8FA49F5377E16806EDACCB60F0D8085FA97
-FE6D2F54B2752F54C04DBD85A788063ADCBEC519652AFB0475319DD0C6220DF6
-4B6153B1AB46DA2C41B5D2586F788D2A84FBE4E0ACDEEC857592043130FFB491
-67A7CC05A7AF3EF0A215736C4C76625098B5AA758162328979CD3ECC032BEADE
-20C001B5D0370FBCB6540E7EB3B2ED0460F81AB38B9240BAE8442715148D6D34
-BDE2F46DF7205B8311BC3BB48CE66B501DC1ED6A8E5C95E05BD1F6B603AA4794
-8C3C994176F923BF43CDA49176A63A70C8A38E99CFE26E96C4341F7720B16123
-685EA995EAC109BBEB1FCF0593385698AB5116D26E5C1CF169DB85B4994B12F7
-B8A750FCD3D5ADAD01DDC5D89FAEE27A682EF0B9356DE7FC42EF44910EC0FEF6
-5088AAEF32A79630F98E38388280193EDFF795BB7C25FCEA46E0B30652E0A05F
-12FC4C37C5D5574B9E2D25358408FC85C2E6341B46152D2894154182AE046B8C
-72CDE40D0BDFE5F552C605776ED76C0B3323BFBC7B7AA025D7D8F30645757185
-3AB97BE30339C36266E63A982A91A3C540262885466029E699B5D31172AE3E03
-002896F4BD639CD695C9913D4560BE3D2AAD3E77412254C2258D77EBF8BF982C
-8359E605F56F7F1E2E713987D5DB27EA2213CFE8464C458F13E11B00A885F0AB
-40DBD73604FF19CCF50F3AE3135D3B77CC906BF1940B12B08EA4B2B36DE1108D
-982AEE94519AF2F87BA96A108E3FF3B91A2D04F779EB9AFD1E0FEAD6773115B4
-3D3C1215582A0079E679A36EFDCD0EBEE4E10884E87FAB3776E42FA35A5F06BE
-B68CCC79BB512895D19336470C546812BEBC712FC3BBA8EB41661F47CA216C41
-BB57F070E0C23D85F7A885D90AB0B7EFC8C137215C892AB1CA87C04A5856D9EF
-EB5D9014BB839661C96F0DBC6DF67B0E129F2FD91C8B100919844A965409D574
-410E2F88840714375D33DA6AB25AD098F8E0E1F2CEEDC4F91F42E82CFF3C93B2
-2BE9C3E2FA827DDE58A332E1AEC7BED95A9F64B50E0526AC239BE038FF4BD489
-667941D432B7223E3F23523691A327AE4DE8B74BA6E617374554E2DC25E44486
-7B1AB2F413ACB46C49C3385D44816BA372C8C174939F2F5A9697F4C677991A43
-AAD40D2799C992B88A8D97D00733981331495FF9110520C9CC957CB4D9A4F66F
-4FDB5C1CBB0910D9C907019A61047DD5B6377FFAE542D57E15DD54E4FBC7E29D
-7E34B43B6243472FD171BA62346DA3B6D10194F71A10E7159E7C80DC2F3634DB
-EA582FEA03868101DD37992F0C55F80D308B4DC0C8DF9F4626CE48B5AC546FE5
-27BCF3FDAD70FB0F8B91AB273288FF7FDEB9A0F30CFC1997BFB4B9F3EE1B2447
-4E3904284D5C7B7890AB03ED3D29EBDB4C3EEE7B6C983FB743DDC07F59DFF88F
-41AD1405FFC5342D479A72DA8949F0AAD58CF2079A4F2907DFA3B227C0605249
-A085A5CA7321A86738FC4C6BB9963825201144A035695687BF2F61F8CFE718C6
-331C08A9686294FB1110DE0D20558BBCB5A4FD1722F07D435D7D1B9FE628E3C1
-834A3194D7077CA480720C750F7976042538E76B3E85BA7BB6EE87113B5689EF
-23CA3EAD9EB8FCE5C84CBE075B47F4CD4AB93DBE878D0A309A74EB876C6EF163
-924CDA4BC58AD786E63889A6D3B024BDE6BDC1FE7596CF96348AB85A1AA944B6
-107AF4015F827F5CC4360AEB06E84A922F8C6E66C1F93C445B4D1A7309140066
-103BD960237E8BCC233118F1AF981643D2BC599B9CA592F407B5053F99ECF649
-C0EFB20749B743BF12E069B14440AE58662241C8ED8ABD12670129F540DFAEBF
-2F394FB4885A12C5F20193E6D48A74860736D155F281210CCDADA9FB35E45F05
-1C688446531411FB70D20ED67C9279927C6881DD18179E0F30CAE2380433F141
-78A1C3426AFBEB9379E6C57DD3F5DE9DED4773DF56A469625DB2AB1453E461A2
-25A4E85B9DD1AA62832F3914217DBABE15457E2453A9E2F422B43A59AFCED19B
-71921AA566DC874DF1949A2EC8787A524CACF3841E1D04ADFDDA577E7AA9AB7C
-8B1A91785685AF3F5BE77666469AA24208FD23F52441F7954D13E90483E0BDDE
-58F3876BA2BFD95C918E3752973AA44889727333DD2439FFD458B1E5163F91A9
-85EEC4785795052AC9FC940E35DD5994F0555B28A96333E18D0AE1D81994F5E3
-E5CC722DE4A34536F5482CCA7E2C269F6FBE2A6E20CA603B926328CA1F9ECDB5
-768C3278ADB0CEB91313430EC15C86042E3749B6FACC52816D14F82AB3AA43A4
-0F12BA0EBCA88906BDCCB21081647D1DAE2D2176B9562D87D01DA40260F90B15
-8B41A5B54743328A52966959BBAB95ABD747C729C11F781AD6059C66B270440D
-E7AB8ACA751427BAF23010D76D91BD9A36B97AE7F5B02039133CAAD3512D48FD
-7772B6814C93FC3EAD5915C9A4CDAC26B3094A9114F2866B32D066EAB21BFB9B
-754804974DAD750B59EBF4A0F27FC740901E645122B6AABF28D6C52F1A7042B1
-85D567428279394250DB6DD8BAE13D1302E81F93F161CA1CEB260DB403302ED8
-CBCE86AB72A102348BD9BCD052C4FAEFD2DE6FFDA988DB4535D9D34D1D4C42D8
-526005B14F94BC17F7AD6F509CFDA44440F3053D06BDB912BA485A496BA661A4
-0D196D6500120C0D2F980A2E719310DD7F0F3445B8D489C429A014F1AD0F8D48
-D55FEAD1CD40B9F0FFC5CCA7C6212E9F19997910064F9D31DBA79CA6B11A7558
-084DECC9CAE6445F6929D0577F3841D17C9BEEED1C18AFF03E300A255F26423E
-066BD33EB1B8D7707BA8F943345D7B5CC27F2CBE7A89556C22FFA3F9E6B3397F
-E15670A0C5AE0A74EAE15C6940F380AE5F985FB099B2330BB726DDB190829628
-5F20BFE3E7C02068059517A39B32700C0D12707C98FE31031E128E65A196DBAD
-B469FE75414ECFCE242784E3DF10ACFDD8A34609D97E63130CC4D4BD2960F9CA
-079EF2B36F6EB3838CDADC8A930D9421ED341021490A47ABE1623CA892F7D135
-7771DF69F14C932A1F859ADECAB45730795E4214037D1F36688A6C45EF0CB9AE
-53BC90C6D1598704D382F1B3769B6619AE31EC9A67451B186D250CAE279497BC
-9F6EE35C5B9E467DF46ABDE3179FB6D2684784669AD97F088DB735FE7945864F
-441D29E0489739A106BC893D93856B28F2D1F037DC271BE2D59D9CBB0655F0C8
-E85AD2AAAF486AEEEDC696CC0BBBC271E856AA19C051EC616FC7A5BE557E370F
-0B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXXSLU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.16
-%%VMusage: 1024 39962
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 998 2 0
-%%EndComments
-FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXXSLU16-Regular) readonly def
-/FamilyName (TeXXSLU16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -200 def
-/UnderlineThickness 100 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 998 def
-/descent 2 def
-end readonly def
-/FontName /TeXXSLU16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 165 /ecaron put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-2126 -345 2126 1062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7E0FB9D38796FAE3C8433
-10934F40DDE40A1D52CBA78FE5A358B01A400FE08FA6466092F617FCA128F37F
-73E6AEADA6139866A01E6D711A2B2E72D6D87862E5FB653361B6D01E633AC30E
-966211271411B100D68FD0C6E57728674F6FA77D2A96520F822E3C8EFF523E15
-5A12CF06E3D259D104181A02E1E393382B472C40FA6BE6A5BF3438BC8D34B2DE
-4AB2C9E36F9AC7977590C72477ADC87C2C4C6F3A9CD52E032F0CB12F9A0F632E
-491FFC5A195954DB446BAD6312D3F6BD34D5F638DF27D10560017A3449FE8353
-A9965E6AC624229B8B7150E86835392713DEEC510E53E8A05FCB35DC5B32C43C
-FE0C48E044096E73633CA7386F6BED24AE3E6F9E918598F49FE81490A603D9B4
-36431B78C81B59E5A05EDCE15A46F81D04B1B72102DD4C206194AD2CB90AD998
-2C71D2334AB96714C7B1D4F806FA75D1136F67951EC6044F45E9CABE7791B51F
-8E013966502C43447C7FF69DAB764D529E0A1386C3619B0F4A87D8D42B55FC34
-E864486842B6FCA421949403B63DC8E850CFC345783CF0B982E9AD7D3026BA93
-1EDF3ABCA21BE2D455AE8276B8048110A0A60E766C978B906061AB0E4E708156
-7589894A5E9C8B514B248E38C85813CFD614D38F62137B3AA4993C3FCC72AC65
-B49FAFAEE9506DD90C3BDFD7100A4DC52DBF8210173C93D7974DDCA405F85D07
-5402ED53AFE3A70EB24457437F0D64AB1133A724D0EBF3DD1803DD00A3F40EB4
-E5C8F594FE7AEF6BAFEDDE747A446326ACB7E87A050E75392036846299347C10
-300585DCFC792D55C2117E627EFA66BA9A788EC534C3005A05EA389DAA27A10A
-9B2E8825DDFF2813D84C170008E324C12B1DF5C8E3DAB725F83DF68CEF77D923
-AC4CE9BC16D14C0F0553C1F146F0D4A0C6F15C84D62DC039ED7DA0F8397E3A57
-F8ABFDA9F80558512C8D9ED8D9B8C0509978BA7CFD96C6D7E70B2CD98E90E31B
-
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
-C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
-F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
-466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
-5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
-17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
-60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
-6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
-DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
-3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
-2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
-5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
-0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
-0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
-F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
-119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
-B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
-9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
-3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
-343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
-D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
-D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
-ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
-B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
-7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
-ED20FDD0676421B24C81741678D49E2CF1EC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (cslurs1n.dvi)
-@start /Fa 234[0 21[{}1 132.835 /TeXXSLD16-Regular rf
-/Fb 209[0 46[{}1 132.835 /TeXXSLD16D-Regular rf /Fc 138[46
-32 33 33 2[42 46 1[23 5[25 37 46 1[46 42 51[28 45[{}13
-83.022 /CMR10 rf /Fd 90[0 165[{}1 132.835 /TeXXSLU16-Regular
-rf /Fe 59[266 124[106 62[0 0 7[{}4 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fe(G)p -118 63 4 117
-v 102 w(\007)-28 91 y Fd(\245)p 92 129 V 93 13 a Fe(\007)p
-341 104 4 125 v 342 -20 a(\007)496 262 y Fc(fon)n(t-based)27
-b(slurs)p 516 113 4 117 v 517 -4 a Fe(\007)p 692 122
-4 109 v 693 13 a(\007)625 -49 y Fb(.)341 104 y Fe(\304)606
-118 y(\304)p 867 131 4 102 v 868 29 a(\007)p 1043 98
-4 135 v 1172 46 4 117 v 1134 46 a(\007)1294 18 y Fa(\025)p
-1421 79 V 1383 79 a Fe(\007)p 1669 63 V 1631 63 a(\010)p
-1982 98 4 135 v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/cslurs1n.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: cslurs1n.dvi
+%%CreationDate: Wed Jan 21 13:54:44 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 737 312 782
+%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular CMR10
+%%+ TeXXSLD16D-Regular TeXXSLD16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs1n.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1354
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXXSLD16-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
+%%CreationDate: 01-07-22 at 22.48
+%%VMusage: 1024 40444
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXXSLD16-Regular) readonly def
+/FamilyName (TeXXSLD16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -199.203 def
+/UnderlineThickness 99.6016 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 199 def
+/descent 801 def
+end readonly def
+/FontName /TeXXSLD16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 21 /endash put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-2126 -1058 2126 349}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE3A6AA404B4ADDBC35AACA
+CAA3EE86E2CA7CDC642731BE96DEF4FFE72CE4E7783869E551326F2270A8724D
+C7B68F37B31DCFF0D6463B15B3023B07CF785AB64B26D448C7004A4C8FB95F50
+2E695FCC8DDF44C1C5B6ECE533CB08FB8B61DA028115F00AA5368589D50F9CC8
+163178C7209705642BBE745560CD7371C3C8F62596058AD9B64288045274C6C2
+0FEEE97328D5887AED13A9EFC1F8FA60DFE214CBE5520B43C35EF3FB019448B6
+A410934290271AB1EA64313FE0F69D72EA243068972DCE15224419F3BFA75A7E
+983F424D2B2987D0E924DB87487A0B818F16E8998A020007B36FBA223A3EE4B4
+976E8B94A9688D8E5B50134F003B72C5315196BB9E8FDCE8599A042F17A0F011
+285D0D1A7298F79E40DB3BC6F2798DE3776495FE113F7CA2F8D7E44EDF6AAD07
+73C36C08A8D1F852B0D96E8170A5017866E69ED48EBDAB5DB5F5B2C3EA139168
+F5ECB860520763D6FD209A23F2CEE376FD1A751C1A35EBB2450827DDE99E7767
+0B8434AF9C9E4B9A8A99F1BE581C08C50004F396CE83F0549B06B88BD6A3C0EA
+6FCB06AF6147C5D0C250B6193547DEB0F5B9575AB7FE3A531CA0F144C6C508C1
+F244549E4F5A3CBE75D920B8F43A0F9610ABAA2FF0C29104696D31E2CB1D782C
+078A643E8AE5CB6DAEB582074E51C8F3509D66BE2FA996860502E1CB7B197430
+5A1FEA87E726F8C8E681AC1AC5EEA7B36FD2FE3237635C589670C167F98B8485
+8D55F8B951FB918D88F59BF05F0D50F438B1C618A288454C1B4B4E230BEE80E4
+C7310B924E49AD53D6E4729B87E9F8F6FBA365C3E95C7151488FFF21B96F5516
+84F33E9DC6F825943E317AC7AC43D9EBB11AC75AE64180ECD713DE1435D35312
+F90DB994400E15A5CB7907FC344161A50BA2E49FA9C94409A483B28326D9950C
+A7678EDA8DCB1FA4A4DBF04DE270D5090C7D827A252CB71A416F56B8091D7776
+0C51149A30922D4E3C2C2911A09EF6ED4F526E2A07F539E50DCAEE6B3B18AA50
+18E0B6B04F25EA1B6DC485235CDC48715C21FC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLD16D-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16D-Regular 001.000
+%%CreationDate: 01-07-22 at 22.49
+%%VMusage: 1024 101006
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16D-Regular known{/TeXXSLD16D-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXXSLD16D-Regular) readonly def
+/FamilyName (TeXXSLD16D) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -198.807 def
+/UnderlineThickness 99.4036 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 199 def
+/descent 801 def
+end readonly def
+/FontName /TeXXSLD16D-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 46 /period put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-2126 -1056 2126 348}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE3A6AA404B4B862F04DD86
+A8A6680771FA24540A27BCF28F9E0E83D013B7684AEDA311C598E9E3684816CD
+8E75BBF5D3AFC94642FFCE39443CF3903BC169B3A08FA71AF1ADA017A5E559F9
+9D0C56AB7E5268428CADBB0EDEBA260A43F1ECBD7D4B04F78BB46B33D45D2A33
+9CAC349C9786ACDEEFB3D9D9A2FAA8720A0594DDADC5FA6A3A92547A024CB932
+30A3CFC1F014DDD03E6A372EAA361F91B34F7159670257DA867B37896D4B05D3
+D3EA63AE5635A9A54A8B72E647797076BB310126140F8A232358264108121AA1
+7FA253DA944B4F5DBCC90D8EA6B4D98A0B1AD648C886A5BD71C5B9E53EE5C752
+5712A7FCBF33E80B77E71C97C1633B57AF7514917E7778A82342100F2769CDC6
+0F2FA0737F8010D393A86D0BE4744E34B7C69B6CB6E2ADA4A81739E3FB2A3A7E
+B7FE58FC7E4C686F0BA62E8BC06596A34E3A02108DE2BE1A0D86CF1E588F6B48
+A005B9C7874C114E897E6DA0468D5C98B4E9C91A921A200B346FBF24425D1C7B
+290BFCF9BAAB9965AB1C5E47E6EE3B8131B6B5D1F4667096B8255AA41FC4B8FD
+E9749B762D30A924ACC1E8523CE3F2F7D159C45B122868654EEC38CA4CCB5F26
+D1C2D5C8005D0224A3BCFC0D4E6D483D07596106D078BACEF5D1512B09FB85E6
+A0A49E149EBEBA5E06BA354CE9B2D15714BAE006909A62CEE5DFCC17A7FAB833
+BA43EA181148D28AB4B88B44CA4AE8E991BCB8BF21433319C2B9D578DAF502D9
+B4FD83982C1386513E3BD2746F65983D039EDA20727CC3A2BD5F468699527813
+F4B52DA3FC0A1E2AA5CCDFEF582BB5976EC140E710E26D9A011253AC1BFF5C66
+DA9BB44F666FA0E5C3806FCE21E5E0B12C27C986231AB9BF03A1575EB36FA118
+C3DA442E02F02C09ED1D15C7398017A89C1D62097A55BE84591F46F42EE6D022
+BCF0787E054D84BF21EA7A9ED71E956D9AB24EE7B32B79405FC0090E1445E569
+EE7D41B21FF33B6BC63AE234CD34FACFF60CD9F2CF99017D8E13FCC0DAEC4BF1
+F0D9A919B29C8525ED1379A4E8B468F9585CDBDAE4B20FA0E1C7FAC0927F967F
+4B3FEBF80F1D0C6F4A1507BF5958BFBF9B8202D046A3DF09B3D9638791517259
+80AD1962375F4C155806498CC61E0AC95FCDEDEC911776F09BF5336520A401EA
+71909099829957424B1DA6E1F9A9A1093CC7F31AE4CF1BB1CF5073337CFA82EF
+125478D99BD8A28255A91B989FD6A7B241AEC3C8098B3C84C9243BF66D2DE66D
+961AA77BD8C36BCC7B905CA1ED4570E77F39ACBC660B0D0D1E8CDE6E6203198A
+3C575801C9D6E6D29F0D889D9A6F201F6F796097518FC9F238576CA03E121F55
+69EFE76D1A22002633C442F6C559B3902E94EAB4E3626AA96D36669D96962B51
+79F455175D22A26958662CEE4CFE360B5D8F032C222F42D412161048BC0169F6
+97E98F97EF09E7242EF5D773ECC54340505577A3CD9E9DF435D23B0BBE942E10
+E91D058E43A0C3D9297CFF0651F978A098807092DF5F39C3F7F1CA93E4557768
+22401B62E1D292C303930418E9AE6196D8217E16C7309D436F1CB441CAB97757
+1B3DAB1C466237DAAE962F895946EE4695DDA6F34C4370AF24CD387E5DD8D0BB
+B56FCC56B480C95382BBBEFCD910B7E9056C72
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 45 /hyphen put
+dup 97 /a put
+dup 98 /b put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D6FBE90EA40D6
+F8B539EDCB0A1EFE2AAAEC6B56780F9312CE3CF757F815AD506873D2884BFED0
+EEBBC826E2C4F589833F5EA07CD65AA558F72555F8061BFAC39CF05FFEB8A713
+A38A6FFBC9C160912580275C2798AC4914F4FE26402FF8E0DD5E05A2797D32CA
+927B17A043D2C98CC8D7CE4361A530160D6800FA73D978E179654682C61FCB9E
+7659E2B0A319D5E77A57BA9C9BC3C8FA49F5377E16806EDACCB60F0D8085FA97
+FE6D2F54B2752F54C04DBD85A788063ADCBEC519652AFB0475319DD0C6220DF6
+4B6153B1AB46DA2C41B5D2586F788D2A84FBE4E0ACDEEC857592043130FFB491
+67A7CC05A7AF3EF0A215736C4C76625098B5AA758162328979CD3ECC032BEADE
+20C001B5D0370FBCB6540E7EB3B2ED0460F81AB38B9240BAE8442715148D6D34
+BDE2F46DF7205B8311BC3BB48CE66B501DC1ED6A8E5C95E05BD1F6B603AA4794
+8C3C994176F923BF43CDA49176A63A70C8A38E99CFE26E96C4341F7720B16123
+685EA995EAC109BBEB1FCF0593385698AB5116D26E5C1CF169DB85B4994B12F7
+B8A750FCD3D5ADAD01DDC5D89FAEE27A682EF0B9356DE7FC42EF44910EC0FEF6
+5088AAEF32A79630F98E38388280193EDFF795BB7C25FCEA46E0B30652E0A05F
+12FC4C37C5D5574B9E2D25358408FC85C2E6341B46152D2894154182AE046B8C
+72CDE40D0BDFE5F552C605776ED76C0B3323BFBC7B7AA025D7D8F30645757185
+3AB97BE30339C36266E63A982A91A3C540262885466029E699B5D31172AE3E03
+002896F4BD639CD695C9913D4560BE3D2AAD3E77412254C2258D77EBF8BF982C
+8359E605F56F7F1E2E713987D5DB27EA2213CFE8464C458F13E11B00A885F0AB
+40DBD73604FF19CCF50F3AE3135D3B77CC906BF1940B12B08EA4B2B36DE1108D
+982AEE94519AF2F87BA96A108E3FF3B91A2D04F779EB9AFD1E0FEAD6773115B4
+3D3C1215582A0079E679A36EFDCD0EBEE4E10884E87FAB3776E42FA35A5F06BE
+B68CCC79BB512895D19336470C546812BEBC712FC3BBA8EB41661F47CA216C41
+BB57F070E0C23D85F7A885D90AB0B7EFC8C137215C892AB1CA87C04A5856D9EF
+EB5D9014BB839661C96F0DBC6DF67B0E129F2FD91C8B100919844A965409D574
+410E2F88840714375D33DA6AB25AD098F8E0E1F2CEEDC4F91F42E82CFF3C93B2
+2BE9C3E2FA827DDE58A332E1AEC7BED95A9F64B50E0526AC239BE038FF4BD489
+667941D432B7223E3F23523691A327AE4DE8B74BA6E617374554E2DC25E44486
+7B1AB2F413ACB46C49C3385D44816BA372C8C174939F2F5A9697F4C677991A43
+AAD40D2799C992B88A8D97D00733981331495FF9110520C9CC957CB4D9A4F66F
+4FDB5C1CBB0910D9C907019A61047DD5B6377FFAE542D57E15DD54E4FBC7E29D
+7E34B43B6243472FD171BA62346DA3B6D10194F71A10E7159E7C80DC2F3634DB
+EA582FEA03868101DD37992F0C55F80D308B4DC0C8DF9F4626CE48B5AC546FE5
+27BCF3FDAD70FB0F8B91AB273288FF7FDEB9A0F30CFC1997BFB4B9F3EE1B2447
+4E3904284D5C7B7890AB03ED3D29EBDB4C3EEE7B6C983FB743DDC07F59DFF88F
+41AD1405FFC5342D479A72DA8949F0AAD58CF2079A4F2907DFA3B227C0605249
+A085A5CA7321A86738FC4C6BB9963825201144A035695687BF2F61F8CFE718C6
+331C08A9686294FB1110DE0D20558BBCB5A4FD1722F07D435D7D1B9FE628E3C1
+834A3194D7077CA480720C750F7976042538E76B3E85BA7BB6EE87113B5689EF
+23CA3EAD9EB8FCE5C84CBE075B47F4CD4AB93DBE878D0A309A74EB876C6EF163
+924CDA4BC58AD786E63889A6D3B024BDE6BDC1FE7596CF96348AB85A1AA944B6
+107AF4015F827F5CC4360AEB06E84A922F8C6E66C1F93C445B4D1A7309140066
+103BD960237E8BCC233118F1AF981643D2BC599B9CA592F407B5053F99ECF649
+C0EFB20749B743BF12E069B14440AE58662241C8ED8ABD12670129F540DFAEBF
+2F394FB4885A12C5F20193E6D48A74860736D155F281210CCDADA9FB35E45F05
+1C688446531411FB70D20ED67C9279927C6881DD18179E0F30CAE2380433F141
+78A1C3426AFBEB9379E6C57DD3F5DE9DED4773DF56A469625DB2AB1453E461A2
+25A4E85B9DD1AA62832F3914217DBABE15457E2453A9E2F422B43A59AFCED19B
+71921AA566DC874DF1949A2EC8787A524CACF3841E1D04ADFDDA577E7AA9AB7C
+8B1A91785685AF3F5BE77666469AA24208FD23F52441F7954D13E90483E0BDDE
+58F3876BA2BFD95C918E3752973AA44889727333DD2439FFD458B1E5163F91A9
+85EEC4785795052AC9FC940E35DD5994F0555B28A96333E18D0AE1D81994F5E3
+E5CC722DE4A34536F5482CCA7E2C269F6FBE2A6E20CA603B926328CA1F9ECDB5
+768C3278ADB0CEB91313430EC15C86042E3749B6FACC52816D14F82AB3AA43A4
+0F12BA0EBCA88906BDCCB21081647D1DAE2D2176B9562D87D01DA40260F90B15
+8B41A5B54743328A52966959BBAB95ABD747C729C11F781AD6059C66B270440D
+E7AB8ACA751427BAF23010D76D91BD9A36B97AE7F5B02039133CAAD3512D48FD
+7772B6814C93FC3EAD5915C9A4CDAC26B3094A9114F2866B32D066EAB21BFB9B
+754804974DAD750B59EBF4A0F27FC740901E645122B6AABF28D6C52F1A7042B1
+85D567428279394250DB6DD8BAE13D1302E81F93F161CA1CEB260DB403302ED8
+CBCE86AB72A102348BD9BCD052C4FAEFD2DE6FFDA988DB4535D9D34D1D4C42D8
+526005B14F94BC17F7AD6F509CFDA44440F3053D06BDB912BA485A496BA661A4
+0D196D6500120C0D2F980A2E719310DD7F0F3445B8D489C429A014F1AD0F8D48
+D55FEAD1CD40B9F0FFC5CCA7C6212E9F19997910064F9D31DBA79CA6B11A7558
+084DECC9CAE6445F6929D0577F3841D17C9BEEED1C18AFF03E300A255F26423E
+066BD33EB1B8D7707BA8F943345D7B5CC27F2CBE7A89556C22FFA3F9E6B3397F
+E15670A0C5AE0A74EAE15C6940F380AE5F985FB099B2330BB726DDB190829628
+5F20BFE3E7C02068059517A39B32700C0D12707C98FE31031E128E65A196DBAD
+B469FE75414ECFCE242784E3DF10ACFDD8A34609D97E63130CC4D4BD2960F9CA
+079EF2B36F6EB3838CDADC8A930D9421ED341021490A47ABE1623CA892F7D135
+7771DF69F14C932A1F859ADECAB45730795E4214037D1F36688A6C45EF0CB9AE
+53BC90C6D1598704D382F1B3769B6619AE31EC9A67451B186D250CAE279497BC
+9F6EE35C5B9E467DF46ABDE3179FB6D2684784669AD97F088DB735FE7945864F
+441D29E0489739A106BC893D93856B28F2D1F037DC271BE2D59D9CBB0655F0C8
+E85AD2AAAF486AEEEDC696CC0BBBC271E856AA19C051EC616FC7A5BE557E370F
+0B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXXSLU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.16
+%%VMusage: 1024 39962
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 998 2 0
+%%EndComments
+FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXXSLU16-Regular) readonly def
+/FamilyName (TeXXSLU16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -200 def
+/UnderlineThickness 100 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 998 def
+/descent 2 def
+end readonly def
+/FontName /TeXXSLU16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 165 /ecaron put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-2126 -345 2126 1062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7E0FB9D38796FAE3C8433
+10934F40DDE40A1D52CBA78FE5A358B01A400FE08FA6466092F617FCA128F37F
+73E6AEADA6139866A01E6D711A2B2E72D6D87862E5FB653361B6D01E633AC30E
+966211271411B100D68FD0C6E57728674F6FA77D2A96520F822E3C8EFF523E15
+5A12CF06E3D259D104181A02E1E393382B472C40FA6BE6A5BF3438BC8D34B2DE
+4AB2C9E36F9AC7977590C72477ADC87C2C4C6F3A9CD52E032F0CB12F9A0F632E
+491FFC5A195954DB446BAD6312D3F6BD34D5F638DF27D10560017A3449FE8353
+A9965E6AC624229B8B7150E86835392713DEEC510E53E8A05FCB35DC5B32C43C
+FE0C48E044096E73633CA7386F6BED24AE3E6F9E918598F49FE81490A603D9B4
+36431B78C81B59E5A05EDCE15A46F81D04B1B72102DD4C206194AD2CB90AD998
+2C71D2334AB96714C7B1D4F806FA75D1136F67951EC6044F45E9CABE7791B51F
+8E013966502C43447C7FF69DAB764D529E0A1386C3619B0F4A87D8D42B55FC34
+E864486842B6FCA421949403B63DC8E850CFC345783CF0B982E9AD7D3026BA93
+1EDF3ABCA21BE2D455AE8276B8048110A0A60E766C978B906061AB0E4E708156
+7589894A5E9C8B514B248E38C85813CFD614D38F62137B3AA4993C3FCC72AC65
+B49FAFAEE9506DD90C3BDFD7100A4DC52DBF8210173C93D7974DDCA405F85D07
+5402ED53AFE3A70EB24457437F0D64AB1133A724D0EBF3DD1803DD00A3F40EB4
+E5C8F594FE7AEF6BAFEDDE747A446326ACB7E87A050E75392036846299347C10
+300585DCFC792D55C2117E627EFA66BA9A788EC534C3005A05EA389DAA27A10A
+9B2E8825DDFF2813D84C170008E324C12B1DF5C8E3DAB725F83DF68CEF77D923
+AC4CE9BC16D14C0F0553C1F146F0D4A0C6F15C84D62DC039ED7DA0F8397E3A57
+F8ABFDA9F80558512C8D9ED8D9B8C0509978BA7CFD96C6D7E70B2CD98E90E31B
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
+C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
+F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
+466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
+5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
+17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
+60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
+6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
+DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
+3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
+2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
+5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
+0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
+0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
+F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
+119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
+B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
+9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
+3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
+343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
+D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
+D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
+ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
+B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
+7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
+ED20FDD0676421B24C81741678D49E2CF1EC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (cslurs1n.dvi)
+@start /Fa 234[0 21[{}1 132.835 /TeXXSLD16-Regular rf
+/Fb 209[0 46[{}1 132.835 /TeXXSLD16D-Regular rf /Fc 138[46
+32 33 33 2[42 46 1[23 5[25 37 46 1[46 42 51[28 45[{}13
+83.022 /CMR10 rf /Fd 90[0 165[{}1 132.835 /TeXXSLU16-Regular
+rf /Fe 59[266 124[106 62[0 0 7[{}4 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fe(G)p -118 63 4 117
+v 102 w(\007)-28 91 y Fd(\245)p 92 129 V 93 13 a Fe(\007)p
+341 104 4 125 v 342 -20 a(\007)496 262 y Fc(fon)n(t-based)27
+b(slurs)p 516 113 4 117 v 517 -4 a Fe(\007)p 692 122
+4 109 v 693 13 a(\007)625 -49 y Fb(.)341 104 y Fe(\304)606
+118 y(\304)p 867 131 4 102 v 868 29 a(\007)p 1043 98
+4 135 v 1172 46 4 117 v 1134 46 a(\007)1294 18 y Fa(\025)p
+1421 79 V 1383 79 a Fe(\007)p 1669 63 V 1631 63 a(\010)p
+1982 98 4 135 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2k.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2k.eps
index 9ddd2c41872..3686d901f61 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2k.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2k.eps
@@ -1,748 +1,748 @@
-%% LaTeX2e file `eps/cslurs2k.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: cslurs2k.dvi
-%%CreationDate: Wed Jan 21 13:55:16 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 718 312 801
-%%DocumentFonts: TeXMUSIX16-Regular CMR10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs2k.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1355
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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 75 /K put
-dup 84 /T put
-dup 101 /e put
-dup 108 /l put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 117 /u put
-dup 121 /y put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
-23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
-1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
-71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
-0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
-6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
-426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
-369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
-7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
-E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
-0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
-1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
-ABE41BB2203FED7C530904AE298B4A61D9D59C95FABBA2C4C316D1BC7393767F
-B9694C4A64BAC5BC6AD22B742C08182D657CC63722909468F3E70646666CD073
-2143B43C9CB2402E2A5FD958D2D5A9DF6B417F55A29213F7D1FF0294FDA09A29
-AA7B38C4DCD0FBAC1D8FBD296D6882B5ED7CEF3C5F69FAC9CF6394A659B0B93E
-417E2E5D6B659E37E608B7CE700D3CBCF8A4DCF77226AEC012CD41F40CD8C728
-26FFD9A5BC421A7F5438E113AD35885F3543F17F823114087EEBFF5C1CDBD8E4
-00062E1F59B31F66B44902396C84282C4E5157EB40369FAD0AA2CFF83092128E
-F2DE00C0679F895764C229F74199DC791A71883AE49987BC98301DEEE888A419
-099D14079EF60B11D6CBA1DE86435E1EB3CA6B239F2BB988AAA48533FF5E9EA2
-C520945E9325FB010E5085CD9256937A89DCAD53AB7E3DCACF57826A6B8E8289
-183AA5782E9A66C3CC41378138FC72B9B3C7A88964B618D6C8ECD6DA7C149BE8
-5D8C36E444554DCCBBE565F4B534D79485A4EAA72BD1D9CFD815B84E1EC2B4B6
-C56363C5143F3AE1E8B11F23A08761642F7DC523C827FD81DDF902755A2802DA
-340E411DFBA9B479F551C4826A6D38E19EAE979CFA91284E2D0F9E801991CE9A
-0CE49883EFA9D3FA61D20CB398E414F28F3360FFF1612230A28EE9D9F57A70F4
-62C6028C5352832014FDC25A875489A14547CE056F43F1C7A1135CE4F706D724
-303EA8A7AE1CDFC1C5A2249FE4757A32F22280BE951ABFD948505C246D6FB273
-87C55CE82E42B139FAD0F633FF7AD1E6BEB226CC787D29A7A80A11CA41A6DB39
-3CDAA82710D87619CCABAFCAC2EB10C4159CFD21CB5A95364CB3957EB2105E76
-AB808FB507848CF3D663B62E943E7A4DD8E421B93AAA680DE0DC9A4785B4BB6F
-3AF27B29537ABE88D95B5EAC2192A7DF18C943BB86F489649306570855B6631E
-5A5AD58D32EE1321683BAF3C60E752F2F46F04FE2CD6A813E15A03A65E562013
-37535751E12718F18E0EFF89631DA7406CEF4C0C98CA0D016A1F7E56F54315E6
-E39574BEAC73B5937BF99EC3F527B1C34E6B620C38D55CF64A2082EA0986E181
-27A25084340CB140AA303BCFA86475B081F1DD86AA6282148A2D52ECD1920618
-948890B1C25B3AAA16A4AC244ABF706227E9F320D3F925A1A72159CF7683836B
-EF7990DB78ABD51482791640488FF38E8B9B68C785C9E7FF89EC876663E83D9C
-A25F7F532EBD3171AB48EB9BD72E1B4C0B574FA15D53AEC9297BDE3B8317037C
-9B12E82BFF59E7BE0A06EFA8AA09293D086B437251B12B8789C65324ECF36B39
-BA91BC7B841FD1751A83B29C754139C46C68094506A07699B711761C4A2EC02C
-6D5888621687FA99CC9F929F73F544FD05F85CE1D07A7F9B2561E63B60CA33E9
-32BE0968022833E51644992C8D13B8A053F91832D491A03AFD2730B8056BBCDB
-32775804416B6B977CC35CD7E17F9F0A2948612E5D1DA0E9A721D5C66CE4B87D
-9287A264BFD830A400F1E1F1A5F1EFC95C5239EC7D0B8205F50E83FC793F090C
-1E674F3447DB517D62748AF2F957C1B02B81BE612E398CFAFFAABBCD50D453B7
-B030C357C54B4435CC7390AFEB000DCCE5D9C9E9E4274B60E55B866E41291701
-2318E8D7DF722EF55712AA64B98FFB856499B790146AF3159F1339117C0935B2
-4856A16B652F321E3FFC88D311AEB6B527A7B0A989279063DA76CF96DAB08B23
-6069C893F421DAFC514CDA6343EE5E9F97A58474014594B0AAA1074CB92DEAB0
-F38C0AC50C885BEC1B29748B8AE7FB7E08E225E189940793A439C3EA28AD2EC8
-5E1E67230EB9042B1AF5CB463609FE7C4B9A461A4803E285C3C4681A0E3D426A
-F21B270A59B8AFD0EEE0D1693AB375DDFC3FFE3B5BF4622E2ACFF8BC3E2E94B5
-4BA37012472FB26A6580BBA5F4F5F7F2DD1692670918DD3B18298B84BACD8998
-B93604AB1B3748A75BA62E4740AB7BDE1A864438F7867083370AE01524F7D8B4
-2ACCD4B5AB5CFF3CF7B6697BA0D9673B80C66D9E70E564AA75A07167F6A07AD4
-D13FF579C81665E3FFB4CE3C731A20DD46AF0B32D67E909C4869FEB4C4ED352F
-535434116B1ADA40B98FDDE8B6A229A4D300CB56A5DD6F9F9FDEFEA3EEC98559
-D9EE1E31FE6A6540424B2600AE26E639C825843C71FC1CCC9C1A14548351A331
-772DECB17E479FCB62FCECDBE1C361E2CAE6B995E916021B0CD198
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
-C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
-9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
-F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
-0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
-3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
-555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
-B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
-EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
-D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
-494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
-CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
-C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
-357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
-E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
-F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
-B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
-5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
-8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
-16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
-AC14244C421456BB3E06591DEEB9DCDC135C6D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (cslurs2k.dvi)
-@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 8[65
-75[{}9 83.022 /CMR10 rf /Fb 184[106 63[0 7[{}2 132.835
-/TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -2 2350 4 v -364 31 V -364
-64 V -364 98 V -364 131 V -364 96 a Fb(G)109 136 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 109
-136 a 76 164 60 4 v 86 247 4 85 v 87 162 a Fb(\007)292
-46 y
- slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 292 46 a 292 46 a
- end
- 292 46 a 272 162 4 117 v -19 w
-Fb(\007)p 459 131 4 135 v 552 136 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 552 136 a 509 411
-a Fa(T)n(yp)r(e)27 b(K)g(slurs)p 519 164 60 4 v 529 247
-4 85 v 530 162 a Fb(\007)735 -20 y
- slur@Dict begin (2.0pt) GD S0hgt (18.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 735 -20 a 735 -20
-a
- end
- 735 -20 a 715 96 4 117 v -19 w Fb(\007)925 136 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 925
-136 a 892 164 60 4 v 902 247 4 85 v 903 162 a Fb(\007)1109
--103 y
- slur@Dict begin (2.0pt) GD S0hgt (28.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1109 -103 a 1109 -103 a
- end
- 1109 -103 a 1079 -35 60
-4 v 1079 -69 V 1079 -102 V 1089 63 4 167 v -19 w Fb(\007)p
-1276 131 4 135 v 1368 136 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1368 136 a 1335 164 60 4
-v 1345 247 4 85 v 1346 162 a Fb(\007)1552 -220 y
- slur@Dict begin (2.0pt) GD S0hgt (42.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1552
--220 a 1552 -220 a
- end
- 1552 -220 a 1522 -35 60 4 v 1522 -69
-V 1522 -102 V 1522 -135 V 1522 -168 V 1522 -201 V 1532
-63 4 283 v -19 w Fb(\007)p 1982 131 4 135 v 1986 295
-a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 295 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/cslurs2k.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: cslurs2k.dvi
+%%CreationDate: Wed Jan 21 13:55:16 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 718 312 801
+%%DocumentFonts: TeXMUSIX16-Regular CMR10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs2k.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1355
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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 75 /K put
+dup 84 /T put
+dup 101 /e put
+dup 108 /l put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 117 /u put
+dup 121 /y put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
+23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
+1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
+71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
+0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
+6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
+426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
+369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
+7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
+E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
+0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
+1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
+ABE41BB2203FED7C530904AE298B4A61D9D59C95FABBA2C4C316D1BC7393767F
+B9694C4A64BAC5BC6AD22B742C08182D657CC63722909468F3E70646666CD073
+2143B43C9CB2402E2A5FD958D2D5A9DF6B417F55A29213F7D1FF0294FDA09A29
+AA7B38C4DCD0FBAC1D8FBD296D6882B5ED7CEF3C5F69FAC9CF6394A659B0B93E
+417E2E5D6B659E37E608B7CE700D3CBCF8A4DCF77226AEC012CD41F40CD8C728
+26FFD9A5BC421A7F5438E113AD35885F3543F17F823114087EEBFF5C1CDBD8E4
+00062E1F59B31F66B44902396C84282C4E5157EB40369FAD0AA2CFF83092128E
+F2DE00C0679F895764C229F74199DC791A71883AE49987BC98301DEEE888A419
+099D14079EF60B11D6CBA1DE86435E1EB3CA6B239F2BB988AAA48533FF5E9EA2
+C520945E9325FB010E5085CD9256937A89DCAD53AB7E3DCACF57826A6B8E8289
+183AA5782E9A66C3CC41378138FC72B9B3C7A88964B618D6C8ECD6DA7C149BE8
+5D8C36E444554DCCBBE565F4B534D79485A4EAA72BD1D9CFD815B84E1EC2B4B6
+C56363C5143F3AE1E8B11F23A08761642F7DC523C827FD81DDF902755A2802DA
+340E411DFBA9B479F551C4826A6D38E19EAE979CFA91284E2D0F9E801991CE9A
+0CE49883EFA9D3FA61D20CB398E414F28F3360FFF1612230A28EE9D9F57A70F4
+62C6028C5352832014FDC25A875489A14547CE056F43F1C7A1135CE4F706D724
+303EA8A7AE1CDFC1C5A2249FE4757A32F22280BE951ABFD948505C246D6FB273
+87C55CE82E42B139FAD0F633FF7AD1E6BEB226CC787D29A7A80A11CA41A6DB39
+3CDAA82710D87619CCABAFCAC2EB10C4159CFD21CB5A95364CB3957EB2105E76
+AB808FB507848CF3D663B62E943E7A4DD8E421B93AAA680DE0DC9A4785B4BB6F
+3AF27B29537ABE88D95B5EAC2192A7DF18C943BB86F489649306570855B6631E
+5A5AD58D32EE1321683BAF3C60E752F2F46F04FE2CD6A813E15A03A65E562013
+37535751E12718F18E0EFF89631DA7406CEF4C0C98CA0D016A1F7E56F54315E6
+E39574BEAC73B5937BF99EC3F527B1C34E6B620C38D55CF64A2082EA0986E181
+27A25084340CB140AA303BCFA86475B081F1DD86AA6282148A2D52ECD1920618
+948890B1C25B3AAA16A4AC244ABF706227E9F320D3F925A1A72159CF7683836B
+EF7990DB78ABD51482791640488FF38E8B9B68C785C9E7FF89EC876663E83D9C
+A25F7F532EBD3171AB48EB9BD72E1B4C0B574FA15D53AEC9297BDE3B8317037C
+9B12E82BFF59E7BE0A06EFA8AA09293D086B437251B12B8789C65324ECF36B39
+BA91BC7B841FD1751A83B29C754139C46C68094506A07699B711761C4A2EC02C
+6D5888621687FA99CC9F929F73F544FD05F85CE1D07A7F9B2561E63B60CA33E9
+32BE0968022833E51644992C8D13B8A053F91832D491A03AFD2730B8056BBCDB
+32775804416B6B977CC35CD7E17F9F0A2948612E5D1DA0E9A721D5C66CE4B87D
+9287A264BFD830A400F1E1F1A5F1EFC95C5239EC7D0B8205F50E83FC793F090C
+1E674F3447DB517D62748AF2F957C1B02B81BE612E398CFAFFAABBCD50D453B7
+B030C357C54B4435CC7390AFEB000DCCE5D9C9E9E4274B60E55B866E41291701
+2318E8D7DF722EF55712AA64B98FFB856499B790146AF3159F1339117C0935B2
+4856A16B652F321E3FFC88D311AEB6B527A7B0A989279063DA76CF96DAB08B23
+6069C893F421DAFC514CDA6343EE5E9F97A58474014594B0AAA1074CB92DEAB0
+F38C0AC50C885BEC1B29748B8AE7FB7E08E225E189940793A439C3EA28AD2EC8
+5E1E67230EB9042B1AF5CB463609FE7C4B9A461A4803E285C3C4681A0E3D426A
+F21B270A59B8AFD0EEE0D1693AB375DDFC3FFE3B5BF4622E2ACFF8BC3E2E94B5
+4BA37012472FB26A6580BBA5F4F5F7F2DD1692670918DD3B18298B84BACD8998
+B93604AB1B3748A75BA62E4740AB7BDE1A864438F7867083370AE01524F7D8B4
+2ACCD4B5AB5CFF3CF7B6697BA0D9673B80C66D9E70E564AA75A07167F6A07AD4
+D13FF579C81665E3FFB4CE3C731A20DD46AF0B32D67E909C4869FEB4C4ED352F
+535434116B1ADA40B98FDDE8B6A229A4D300CB56A5DD6F9F9FDEFEA3EEC98559
+D9EE1E31FE6A6540424B2600AE26E639C825843C71FC1CCC9C1A14548351A331
+772DECB17E479FCB62FCECDBE1C361E2CAE6B995E916021B0CD198
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
+C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
+9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
+F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
+0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
+3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
+555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
+B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
+EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
+D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
+494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
+CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
+C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
+357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
+E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
+F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
+B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
+5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
+8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
+16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
+AC14244C421456BB3E06591DEEB9DCDC135C6D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (cslurs2k.dvi)
+@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 8[65
+75[{}9 83.022 /CMR10 rf /Fb 184[106 63[0 7[{}2 132.835
+/TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -2 2350 4 v -364 31 V -364
+64 V -364 98 V -364 131 V -364 96 a Fb(G)109 136 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 109
+136 a 76 164 60 4 v 86 247 4 85 v 87 162 a Fb(\007)292
+46 y
+ slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 292 46 a 292 46 a
+ end
+ 292 46 a 272 162 4 117 v -19 w
+Fb(\007)p 459 131 4 135 v 552 136 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 552 136 a 509 411
+a Fa(T)n(yp)r(e)27 b(K)g(slurs)p 519 164 60 4 v 529 247
+4 85 v 530 162 a Fb(\007)735 -20 y
+ slur@Dict begin (2.0pt) GD S0hgt (18.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 735 -20 a 735 -20
+a
+ end
+ 735 -20 a 715 96 4 117 v -19 w Fb(\007)925 136 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 925
+136 a 892 164 60 4 v 902 247 4 85 v 903 162 a Fb(\007)1109
+-103 y
+ slur@Dict begin (2.0pt) GD S0hgt (28.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1109 -103 a 1109 -103 a
+ end
+ 1109 -103 a 1079 -35 60
+4 v 1079 -69 V 1079 -102 V 1089 63 4 167 v -19 w Fb(\007)p
+1276 131 4 135 v 1368 136 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1368 136 a 1335 164 60 4
+v 1345 247 4 85 v 1346 162 a Fb(\007)1552 -220 y
+ slur@Dict begin (2.0pt) GD S0hgt (42.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1552
+-220 a 1552 -220 a
+ end
+ 1552 -220 a 1522 -35 60 4 v 1522 -69
+V 1522 -102 V 1522 -135 V 1522 -168 V 1522 -201 V 1532
+63 4 283 v -19 w Fb(\007)p 1982 131 4 135 v 1986 295
+a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 295 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2m.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2m.eps
index 851101af277..5ce40b8149a 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2m.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2m.eps
@@ -1,531 +1,531 @@
-%% LaTeX2e file `eps/cslurs2m.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: cslurs2m.dvi
-%%CreationDate: Wed Jan 21 14:26:18 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 718 312 801
-%%DocumentFonts: TeXMUSIX16-Regular CMR10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs2m.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1426
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%!
-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/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/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 77 /M put
-dup 84 /T put
-dup 101 /e put
-dup 108 /l put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 117 /u put
-dup 121 /y put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
-23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
-1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
-71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
-0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
-6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
-426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
-369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
-7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
-E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
-0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
-1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
-ABE41BB2203FED7C530904AE298B4A67F02032573C3068A81496A348D6841671
-115DD07F34B49A8AFBA1CFEFA4964573DF71AA897117FCF70C84B676EBC60F68
-D8E4FB9D36D0A42AC11C581AF47F5DF862E44E749D314C771F351A752B9E6CB9
-BA48AF13E6D4082B2B5CC9E43F1F5643217C40B44D4461F802EA12D047C5276A
-91C05B7DFBEAF1F9711D70FDB5132CA96C2A4AB80B65CC6B5DBB29816BE8CC28
-FE5F8E3164B43160DA3F6DD681A74EBD9AD8BD6E0738B6BB47B5324A318E7722
-8A6B583ED8FBDA50BCC841417FB632E2E453916A9EE1D81DC9D3A540351B66BC
-013DE7023AE833C2D9AB7387B62196B3BB285E63C6437074BDC7E7B65DFD7148
-607675431C94E2F49F3DD76A374A96DDA4CE0B0E655FA475CEB8DB6A76A5D7A3
-642CC5085AE40915932DFF56B6D68438F0672D33CBA02A0DAECEB6D2EB2F1F00
-E68A72E8A1F1E79F7D1BB58334A961C90212C262C29F276149EACE57445AD07F
-2962842016F9D352C44CC768BE3EA8DCBA3E76667A505A139F23DAF6DACAA3FC
-991FBEEECB08A374E96C38DB76E040A161456BA69142669124AC9438F87F34E0
-E7E40A79A093018C80EA010F5EAE3037A93F293F11AD8DC13CF3C2122A33DB50
-7E538FD3EF4E36016D06D56D2720D528319F08E6846C4D01A48EA6DB7D05A75A
-FBDE1552A6BBEDE56A7E00CAF16AC575BA73D75A5B59608B7E56C677A26CE94E
-DF4BD320DB39560FAA7153A4A6245683A97F75196D8E5CC8508B462F842230AD
-AAEB63528ABFE7531B13ED9F823EBB5FD711CE8ECAFF58B09F4821C4EADCCC34
-C278A2F6E9CB6357B04018CB274017A53B57C09E8C83B6CFB3116D608EC9107D
-F61DEE612C1DBDFE0804BDD264C96DDBA9331B916EB2033BD979FD4311A0757C
-261E72A1C30F8D7C99557F669C080493DB59961BBD9AE940BA6BE6A1E7422DB5
-9C15519F639711F6DF14D5464A88622A9E48C00E3FED607C1B023D77ED244DDF
-11C3E113D40059DCE98A6BE7FAA4AC22E1E9F2B5833D552A3EE492472BB0B826
-B2C5DBA213B7219230DA6CC70F5525FDD0FC8B9FC54DCA09EEAB4E5E041C1210
-DB3A3E5001650362C5A2248FB591987AF18C6AC03B4E1B14F4B6AA046F4E7AEB
-2B5093F981C98AF577AFFD5BCA845471C7B36FFB61C6ECC2572ECE1396695DD1
-549C4C27A4D02EBFF77F9532BBC5983987D4CBA1397A24484888517B7A8BFF9C
-949E912A6642C5108E2E03E2FCF0B99C561696F47FEFAD90C8C34B11FCBCC94F
-CE87308A400C91053FE8F4B50F328BF0022F13BF3DBB303EA4DAE8856617FC02
-E2DF4C5D807F6C23E9234CEB0805DE80AACAAFA567F456140651E6684E890304
-D1963F0165D50BDC32D24A5BFB8B02E02BFA4F05E14009441E65D305ADFE0E4C
-781E475F748FAF468A16747CEAF61B196279622BDD680BF662A66C6C64D4C6E0
-85E75A3358A1C6DDBDA7E30D01753BEBB3AC6145DC4ADFD6479409C3AAE6C027
-7CA0374A581EEF6CBEFD51C3C9E613C9E8C89FE8EB2EF5B18933ADADA0FFDA20
-83BC3B17D86115CB8CBBE244094562A7327E4805E7686D9F02A696CB76035DAA
-E95182C5C38EC149EF1400B5190BFCDD9C62D7B3DF93B8EF63CE3A6DF4A97D45
-09D84DCA0513BAC5EAD9A3C5DABAC9A1A7D07109B33BB3326E08AB2638714161
-7FD739C938CC7163FA13B7EE3BA90BC54337195C0C9D09A4DADC7C855F77C576
-7043E5AA4DA8465108EE061AB27498D20A9A50EE007CE9DEC60BD4AD5FC8B8D3
-9BB899C3BC2FBAE9C973E0569CCBB212C7262EB3968EB1AAFBC8E73E97B658A1
-3FF7711DDA5E54480643DE0D1222496FABA34B8971A45B9F738FE6403A3FD261
-5DBBE579CD311DE3CE075178E881A4D00D2714ABFF8BBE16E9DD2638C721C95B
-97356C46DA3C56FBF9112A478A6FF150A1FFCCB492AEAC5C687074F55BA623B2
-DAAB724144FBBF01D2194B4299F2AE8522E4898F04D53568B510600D5FF71894
-E2382C89371E28597C66ADC4B106B2C232674AFCE0965F961DD15A93037EACFC
-2AC7131338E919EA7F577FABB26328507A2707504C2C7EE4B8F9456FCC9062D0
-85368FFBB72F5895A9B35B9B67DC9D5001B6C6E6A0A65566D96B27AA349C0042
-F7AF61E5A3F39B6BC26654FB169CAD23F6EB89AE99346E7E96B1959B4CF1BDE0
-9F21D5F70A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
-C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
-9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
-F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
-0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
-3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
-555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
-B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
-EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
-D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
-494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
-CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
-C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
-357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
-E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
-F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
-B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
-5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
-8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
-16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
-AC14244C421456BB3E06591DEEB9DCDC135C6D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (cslurs2m.dvi)
-@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 6[76
-77[{}9 83.022 /CMR10 rf /Fb 184[106 63[0 7[{}2 132.835
-/TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -2 2350 4 v -364 31 V -364
-64 V -364 98 V -364 131 V -364 96 a Fb(G)p 76 164 60
-4 v 86 247 4 85 v 87 162 a(\007)98 142 y @beginspecial
--1 @llx -1 @lly 23 @urx 15 @ury 240 @rwi @setspecial
-%%BeginDocument: cslurs2m.1
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 15
-%%Creator: MetaPost
-%%CreationDate: 2003.10.07:1830
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.05165 0.04979 moveto
-0.78622 1.04002 1.68076 1.98088 2.62747 2.86763 curveto
-3.88432 4.04489 5.22885 5.12291 6.59077 6.17654 curveto
-8.01595 7.27911 9.46242 8.3567 10.99504 9.3047 curveto
-12.468 10.2158 14.01268 11.00235 15.56813 11.76361 curveto
-16.90462 12.41771 18.2542 13.05528 19.68076 13.48053 curveto
-20.56712 13.74474 21.47646 13.92467 22.39664 14.0179 curveto
-22.42578 13.87743 lineto
-21.51932 13.78549 20.62611 13.59149 19.76318 13.29913 curveto
-18.36636 12.8259 17.07329 12.10461 15.8074 11.34956 curveto
-14.32838 10.46736 12.87949 9.53598 11.41617 8.62802 curveto
-9.89308 7.68297 8.35406 6.7631 6.85608 5.77867 curveto
-5.4269 4.83945 4.03505 3.84128 2.751 2.7113 curveto
-1.78339 1.85979 0.88106 0.93683 0.05164 -0.04979 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 272 162 4 117 v 273 46 a(\007)p 459 131
-4 135 v 509 411 a Fa(T)n(yp)r(e)27 b(M)h(slurs)p 519
-164 60 4 v 529 247 4 85 v 530 162 a Fb(\007)541 142 y
-@beginspecial -1 @llx -1 @lly 23 @urx 22 @ury 240 @rwi
-@setspecial
-%%BeginDocument: cslurs2m.2
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 22
-%%Creator: MetaPost
-%%CreationDate: 2003.10.07:1830
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.05827 0.04184 moveto
-0.78242 1.33313 1.67393 2.59062 2.61417 3.81134 curveto
-3.86559 5.43611 5.20131 6.9932 6.55249 8.53584 curveto
-7.96327 10.14653 9.39229 11.74294 10.92697 13.23631 curveto
-12.39511 14.66493 13.95497 15.99438 15.52461 17.31041 curveto
-16.85672 18.42728 18.19904 19.53691 19.65926 20.48097 curveto
-20.52892 21.04324 21.43669 21.54422 22.376 21.98027 curveto
-22.4464 21.85526 lineto
-21.51755 21.42166 20.62712 20.91013 19.78467 20.32614 curveto
-18.36374 19.34116 17.09425 18.16133 15.85094 16.96085 curveto
-14.38228 15.54279 12.94551 14.09216 11.48424 12.6665 curveto
-9.9564 11.1759 8.40186 9.71266 6.89436 8.20146 curveto
-5.4519 6.75545 4.05255 5.26547 2.7643 3.68033 curveto
-1.79614 2.48906 0.89284 1.24655 0.05827 -0.04182 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 715 96 4 117 v 716 -20 a(\007)p 892 164
-60 4 v 902 247 4 85 v 903 162 a(\007)914 142 y @beginspecial
--1 @llx -1 @lly 23 @urx 32 @ury 240 @rwi @setspecial
-%%BeginDocument: cslurs2m.3
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 32
-%%Creator: MetaPost
-%%CreationDate: 2003.10.07:1830
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.063 0.03429 moveto
-0.78455 1.70975 1.67413 3.36363 2.60489 4.99434 curveto
-3.85904 7.19162 5.18712 9.34543 6.52586 11.49216 curveto
-7.93105 13.7454 9.34868 15.99196 10.8796 18.1619 curveto
-12.34787 20.24304 13.91754 22.24974 15.49425 24.24985 curveto
-16.8329 25.94798 18.178 27.64305 19.64406 29.2328 curveto
-20.50964 30.1714 21.41592 31.07164 22.36029 31.93091 curveto
-22.46211 31.82985 lineto
-21.52486 30.9729 20.63608 30.06442 19.79987 29.10861 curveto
-18.38013 27.48582 17.11845 25.7345 15.88129 23.969 curveto
-14.42224 21.88687 12.99522 19.78246 11.53162 17.70354 curveto
-10.00542 15.5357 8.43967 13.39594 6.921 11.2228 curveto
-5.47488 9.15346 4.07143 7.0538 2.77357 4.88828 curveto
-1.81032 3.28104 0.90617 1.63908 0.063 -0.03429 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 1079 -35 60 4 v 1079 -69 V 1079 -102 V 1089
-63 4 167 v 1090 -103 a(\007)p 1276 131 4 135 v 1335 164
-60 4 v 1345 247 4 85 v 1346 162 a(\007)1357 142 y @beginspecial
--1 @llx -1 @lly 23 @urx 46 @ury 240 @rwi @setspecial
-%%BeginDocument: cslurs2m.4
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: -1 -1 23 46
-%%Creator: MetaPost
-%%CreationDate: 2003.10.07:1830
-%%Pages: 1
-%%EndProlog
-%%Page: 1 1
-newpath -0.06645 0.02702 moveto
-0.79013 2.2493 1.67851 4.45918 2.59845 6.65599 curveto
-3.86057 9.66995 5.18178 12.65865 6.50775 15.64503 curveto
-7.91286 18.80965 9.32362 21.97241 10.84761 25.08162 curveto
-12.31908 28.08368 13.89467 31.03296 15.47389 33.97966 curveto
-16.82608 36.50275 18.18138 39.02484 19.63405 41.49155 curveto
-20.50507 42.97058 21.41064 44.42899 22.35007 45.86555 curveto
-22.47235 45.79053 lineto
-21.53754 44.35553 20.64958 42.89052 19.80989 41.39786 curveto
-18.40816 38.90607 17.14308 36.34108 15.90164 33.76584 curveto
-14.45099 30.75659 13.03198 27.73212 11.5636 24.73148 curveto
-10.04276 21.62363 8.4692 18.54189 6.9391 15.43858 curveto
-5.49554 12.51077 4.09062 9.56367 2.78001 6.57393 curveto
-1.82475 4.39482 0.92 2.19391 0.06645 -0.02701 curveto
- closepath fill
-showpage
-%%EOF
-
-%%EndDocument
- @endspecial 1522 -35 60 4 v 1522 -69 V 1522 -102 V 1522
--135 V 1522 -168 V 1522 -201 V 1532 63 4 283 v 1533 -220
-a(\007)p 1982 131 4 135 v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/cslurs2m.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: cslurs2m.dvi
+%%CreationDate: Wed Jan 21 14:26:18 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 718 312 801
+%%DocumentFonts: TeXMUSIX16-Regular CMR10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs2m.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1426
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%!
+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/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/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 77 /M put
+dup 84 /T put
+dup 101 /e put
+dup 108 /l put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 117 /u put
+dup 121 /y put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
+23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
+1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
+71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
+0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46FC8BCA434A5264E
+6403BBE783360B955226858F01800155AE380DEC3842751B0C9CD72E6375527B
+426E260BDA0D4DEDC4AE4C9FC1D4DD9772BE8AE5D4C3F126F1601CD38D322CCD
+369719297616419E32154D9B94338BC8126131A6A4306EB0CE8E5ED39772E29F
+7CEC0ED49AD116928B6248749E62127D8F41F5F570BD05EF7B7A44683D07E37F
+E4EBE9DDE4E9B9CDC1D56BBCC7A6BD417546CF184224B7643F08A5D27F93A555
+0CD9DE28422A1E86AE600D360886FCE8D99F75A4F1F517FBEFDE6597A5B6387D
+1CB050CEF00BFF5DB6253D9A28A424E6A672ACDE857F40C9EF1BC5A56C7185B3
+ABE41BB2203FED7C530904AE298B4A67F02032573C3068A81496A348D6841671
+115DD07F34B49A8AFBA1CFEFA4964573DF71AA897117FCF70C84B676EBC60F68
+D8E4FB9D36D0A42AC11C581AF47F5DF862E44E749D314C771F351A752B9E6CB9
+BA48AF13E6D4082B2B5CC9E43F1F5643217C40B44D4461F802EA12D047C5276A
+91C05B7DFBEAF1F9711D70FDB5132CA96C2A4AB80B65CC6B5DBB29816BE8CC28
+FE5F8E3164B43160DA3F6DD681A74EBD9AD8BD6E0738B6BB47B5324A318E7722
+8A6B583ED8FBDA50BCC841417FB632E2E453916A9EE1D81DC9D3A540351B66BC
+013DE7023AE833C2D9AB7387B62196B3BB285E63C6437074BDC7E7B65DFD7148
+607675431C94E2F49F3DD76A374A96DDA4CE0B0E655FA475CEB8DB6A76A5D7A3
+642CC5085AE40915932DFF56B6D68438F0672D33CBA02A0DAECEB6D2EB2F1F00
+E68A72E8A1F1E79F7D1BB58334A961C90212C262C29F276149EACE57445AD07F
+2962842016F9D352C44CC768BE3EA8DCBA3E76667A505A139F23DAF6DACAA3FC
+991FBEEECB08A374E96C38DB76E040A161456BA69142669124AC9438F87F34E0
+E7E40A79A093018C80EA010F5EAE3037A93F293F11AD8DC13CF3C2122A33DB50
+7E538FD3EF4E36016D06D56D2720D528319F08E6846C4D01A48EA6DB7D05A75A
+FBDE1552A6BBEDE56A7E00CAF16AC575BA73D75A5B59608B7E56C677A26CE94E
+DF4BD320DB39560FAA7153A4A6245683A97F75196D8E5CC8508B462F842230AD
+AAEB63528ABFE7531B13ED9F823EBB5FD711CE8ECAFF58B09F4821C4EADCCC34
+C278A2F6E9CB6357B04018CB274017A53B57C09E8C83B6CFB3116D608EC9107D
+F61DEE612C1DBDFE0804BDD264C96DDBA9331B916EB2033BD979FD4311A0757C
+261E72A1C30F8D7C99557F669C080493DB59961BBD9AE940BA6BE6A1E7422DB5
+9C15519F639711F6DF14D5464A88622A9E48C00E3FED607C1B023D77ED244DDF
+11C3E113D40059DCE98A6BE7FAA4AC22E1E9F2B5833D552A3EE492472BB0B826
+B2C5DBA213B7219230DA6CC70F5525FDD0FC8B9FC54DCA09EEAB4E5E041C1210
+DB3A3E5001650362C5A2248FB591987AF18C6AC03B4E1B14F4B6AA046F4E7AEB
+2B5093F981C98AF577AFFD5BCA845471C7B36FFB61C6ECC2572ECE1396695DD1
+549C4C27A4D02EBFF77F9532BBC5983987D4CBA1397A24484888517B7A8BFF9C
+949E912A6642C5108E2E03E2FCF0B99C561696F47FEFAD90C8C34B11FCBCC94F
+CE87308A400C91053FE8F4B50F328BF0022F13BF3DBB303EA4DAE8856617FC02
+E2DF4C5D807F6C23E9234CEB0805DE80AACAAFA567F456140651E6684E890304
+D1963F0165D50BDC32D24A5BFB8B02E02BFA4F05E14009441E65D305ADFE0E4C
+781E475F748FAF468A16747CEAF61B196279622BDD680BF662A66C6C64D4C6E0
+85E75A3358A1C6DDBDA7E30D01753BEBB3AC6145DC4ADFD6479409C3AAE6C027
+7CA0374A581EEF6CBEFD51C3C9E613C9E8C89FE8EB2EF5B18933ADADA0FFDA20
+83BC3B17D86115CB8CBBE244094562A7327E4805E7686D9F02A696CB76035DAA
+E95182C5C38EC149EF1400B5190BFCDD9C62D7B3DF93B8EF63CE3A6DF4A97D45
+09D84DCA0513BAC5EAD9A3C5DABAC9A1A7D07109B33BB3326E08AB2638714161
+7FD739C938CC7163FA13B7EE3BA90BC54337195C0C9D09A4DADC7C855F77C576
+7043E5AA4DA8465108EE061AB27498D20A9A50EE007CE9DEC60BD4AD5FC8B8D3
+9BB899C3BC2FBAE9C973E0569CCBB212C7262EB3968EB1AAFBC8E73E97B658A1
+3FF7711DDA5E54480643DE0D1222496FABA34B8971A45B9F738FE6403A3FD261
+5DBBE579CD311DE3CE075178E881A4D00D2714ABFF8BBE16E9DD2638C721C95B
+97356C46DA3C56FBF9112A478A6FF150A1FFCCB492AEAC5C687074F55BA623B2
+DAAB724144FBBF01D2194B4299F2AE8522E4898F04D53568B510600D5FF71894
+E2382C89371E28597C66ADC4B106B2C232674AFCE0965F961DD15A93037EACFC
+2AC7131338E919EA7F577FABB26328507A2707504C2C7EE4B8F9456FCC9062D0
+85368FFBB72F5895A9B35B9B67DC9D5001B6C6E6A0A65566D96B27AA349C0042
+F7AF61E5A3F39B6BC26654FB169CAD23F6EB89AE99346E7E96B1959B4CF1BDE0
+9F21D5F70A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
+C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
+9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
+F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
+0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
+3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
+555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
+B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
+EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
+D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
+494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
+CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
+C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
+357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
+E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
+F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
+B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
+5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
+8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
+16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
+AC14244C421456BB3E06591DEEB9DCDC135C6D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (cslurs2m.dvi)
+@start /Fa 134[44 3[46 1[33 33 1[46 3[23 6[37 16[60 6[76
+77[{}9 83.022 /CMR10 rf /Fb 184[106 63[0 7[{}2 132.835
+/TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -2 2350 4 v -364 31 V -364
+64 V -364 98 V -364 131 V -364 96 a Fb(G)p 76 164 60
+4 v 86 247 4 85 v 87 162 a(\007)98 142 y @beginspecial
+-1 @llx -1 @lly 23 @urx 15 @ury 240 @rwi @setspecial
+%%BeginDocument: cslurs2m.1
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 15
+%%Creator: MetaPost
+%%CreationDate: 2003.10.07:1830
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.05165 0.04979 moveto
+0.78622 1.04002 1.68076 1.98088 2.62747 2.86763 curveto
+3.88432 4.04489 5.22885 5.12291 6.59077 6.17654 curveto
+8.01595 7.27911 9.46242 8.3567 10.99504 9.3047 curveto
+12.468 10.2158 14.01268 11.00235 15.56813 11.76361 curveto
+16.90462 12.41771 18.2542 13.05528 19.68076 13.48053 curveto
+20.56712 13.74474 21.47646 13.92467 22.39664 14.0179 curveto
+22.42578 13.87743 lineto
+21.51932 13.78549 20.62611 13.59149 19.76318 13.29913 curveto
+18.36636 12.8259 17.07329 12.10461 15.8074 11.34956 curveto
+14.32838 10.46736 12.87949 9.53598 11.41617 8.62802 curveto
+9.89308 7.68297 8.35406 6.7631 6.85608 5.77867 curveto
+5.4269 4.83945 4.03505 3.84128 2.751 2.7113 curveto
+1.78339 1.85979 0.88106 0.93683 0.05164 -0.04979 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 272 162 4 117 v 273 46 a(\007)p 459 131
+4 135 v 509 411 a Fa(T)n(yp)r(e)27 b(M)h(slurs)p 519
+164 60 4 v 529 247 4 85 v 530 162 a Fb(\007)541 142 y
+@beginspecial -1 @llx -1 @lly 23 @urx 22 @ury 240 @rwi
+@setspecial
+%%BeginDocument: cslurs2m.2
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 22
+%%Creator: MetaPost
+%%CreationDate: 2003.10.07:1830
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.05827 0.04184 moveto
+0.78242 1.33313 1.67393 2.59062 2.61417 3.81134 curveto
+3.86559 5.43611 5.20131 6.9932 6.55249 8.53584 curveto
+7.96327 10.14653 9.39229 11.74294 10.92697 13.23631 curveto
+12.39511 14.66493 13.95497 15.99438 15.52461 17.31041 curveto
+16.85672 18.42728 18.19904 19.53691 19.65926 20.48097 curveto
+20.52892 21.04324 21.43669 21.54422 22.376 21.98027 curveto
+22.4464 21.85526 lineto
+21.51755 21.42166 20.62712 20.91013 19.78467 20.32614 curveto
+18.36374 19.34116 17.09425 18.16133 15.85094 16.96085 curveto
+14.38228 15.54279 12.94551 14.09216 11.48424 12.6665 curveto
+9.9564 11.1759 8.40186 9.71266 6.89436 8.20146 curveto
+5.4519 6.75545 4.05255 5.26547 2.7643 3.68033 curveto
+1.79614 2.48906 0.89284 1.24655 0.05827 -0.04182 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 715 96 4 117 v 716 -20 a(\007)p 892 164
+60 4 v 902 247 4 85 v 903 162 a(\007)914 142 y @beginspecial
+-1 @llx -1 @lly 23 @urx 32 @ury 240 @rwi @setspecial
+%%BeginDocument: cslurs2m.3
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 32
+%%Creator: MetaPost
+%%CreationDate: 2003.10.07:1830
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.063 0.03429 moveto
+0.78455 1.70975 1.67413 3.36363 2.60489 4.99434 curveto
+3.85904 7.19162 5.18712 9.34543 6.52586 11.49216 curveto
+7.93105 13.7454 9.34868 15.99196 10.8796 18.1619 curveto
+12.34787 20.24304 13.91754 22.24974 15.49425 24.24985 curveto
+16.8329 25.94798 18.178 27.64305 19.64406 29.2328 curveto
+20.50964 30.1714 21.41592 31.07164 22.36029 31.93091 curveto
+22.46211 31.82985 lineto
+21.52486 30.9729 20.63608 30.06442 19.79987 29.10861 curveto
+18.38013 27.48582 17.11845 25.7345 15.88129 23.969 curveto
+14.42224 21.88687 12.99522 19.78246 11.53162 17.70354 curveto
+10.00542 15.5357 8.43967 13.39594 6.921 11.2228 curveto
+5.47488 9.15346 4.07143 7.0538 2.77357 4.88828 curveto
+1.81032 3.28104 0.90617 1.63908 0.063 -0.03429 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 1079 -35 60 4 v 1079 -69 V 1079 -102 V 1089
+63 4 167 v 1090 -103 a(\007)p 1276 131 4 135 v 1335 164
+60 4 v 1345 247 4 85 v 1346 162 a(\007)1357 142 y @beginspecial
+-1 @llx -1 @lly 23 @urx 46 @ury 240 @rwi @setspecial
+%%BeginDocument: cslurs2m.4
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -1 23 46
+%%Creator: MetaPost
+%%CreationDate: 2003.10.07:1830
+%%Pages: 1
+%%EndProlog
+%%Page: 1 1
+newpath -0.06645 0.02702 moveto
+0.79013 2.2493 1.67851 4.45918 2.59845 6.65599 curveto
+3.86057 9.66995 5.18178 12.65865 6.50775 15.64503 curveto
+7.91286 18.80965 9.32362 21.97241 10.84761 25.08162 curveto
+12.31908 28.08368 13.89467 31.03296 15.47389 33.97966 curveto
+16.82608 36.50275 18.18138 39.02484 19.63405 41.49155 curveto
+20.50507 42.97058 21.41064 44.42899 22.35007 45.86555 curveto
+22.47235 45.79053 lineto
+21.53754 44.35553 20.64958 42.89052 19.80989 41.39786 curveto
+18.40816 38.90607 17.14308 36.34108 15.90164 33.76584 curveto
+14.45099 30.75659 13.03198 27.73212 11.5636 24.73148 curveto
+10.04276 21.62363 8.4692 18.54189 6.9391 15.43858 curveto
+5.49554 12.51077 4.09062 9.56367 2.78001 6.57393 curveto
+1.82475 4.39482 0.92 2.19391 0.06645 -0.02701 curveto
+ closepath fill
+showpage
+%%EOF
+
+%%EndDocument
+ @endspecial 1522 -35 60 4 v 1522 -69 V 1522 -102 V 1522
+-135 V 1522 -168 V 1522 -201 V 1532 63 4 283 v 1533 -220
+a(\007)p 1982 131 4 135 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2n.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2n.eps
index 765df4ba137..c0507f25402 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2n.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/cslurs2n.eps
@@ -1,550 +1,550 @@
-%% LaTeX2e file `eps/cslurs2n.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: cslurs2n.dvi
-%%CreationDate: Wed Jan 21 13:55:59 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 714 312 801
-%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular CMR10
-%%+ TeXXSLHU16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs2n.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1355
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXXSLHU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLHU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.06
-%%VMusage: 1024 38733
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 169 831 0
-%%EndComments
-FontDirectory/TeXXSLHU16-Regular known{/TeXXSLHU16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXXSLHU16-Regular) readonly def
-/FamilyName (TeXXSLHU16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -169.492 def
-/UnderlineThickness 84.7457 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 169 def
-/descent 831 def
-end readonly def
-/FontName /TeXXSLHU16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 1 /acute put
-dup 140 /Ncaron put
-dup 143 /Racute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-12 -2000 6002 42}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE637D25C679E7640BD1F8A
-D75E94D932D2E43D00B42B05240E953EB7DF742ADFA977610523A3AF95C2C93D
-ECDF7BCFB30F7D8875F93F03902B028A6336E2A110D0F1DD574170538B6707B0
-903AEA776E52E411C66C724414AEE75ADEBC9155AC35AADACD5415A64D3B08CE
-2B4683B923FF8E4F2DA1AE2385279367073A556CAC4172B81D5A5EF6F470A11B
-0E636F411D3E20F7EB8DBCD230625782EB60CB0C606E64F6BBD19918CFD94D75
-2555912D08CF2C633BB6CF5279C73787DF8A7F5C206530AC581355B0B2317B61
-05BC7824BB326F85A550893F17C934227129D12DA894F13CFC89CE7EA3B11E38
-C0372F954FA43027D1112CAE56763E494C715264479764E05F2127443E172B72
-2D7C3B017B5C17F8FE12D52CB1DF6132E309C9D420911373E55C498764DE04AC
-4A58033E61FD9B41053DB67BE4DB85E1D0E5068ED5F4AF84268C3606412E2CA7
-C472928B950618D8354E4A59B4F77C292794588E410268717EA1D47EF68D98B2
-14195ECDA182220298DBB1C1C890D0918FBDD8D3F02B7A6995AD54B949BBFA3A
-8D5DB94E880CCB20C99805D71D70768D67BD09F6AD47E6804531C0A9E6763C56
-BFF2AAEB62D784B0564606B5F091BE390EE38024B5D4F3B44FAC106E1CD6B588
-8BB4ED605BC19803C10DA54388C0E68E0C9690E4D7F1D2A19A0D86B2D00B1C7E
-33B2D8DE5DCCB188A2EF58E8DE23FFFDA0F36EC2025F28188B5F4B6B5D8214FE
-BCC3E0F3B97181AEDC88F1576AA99734B96E8CEDF69D43F9A104984FCB542573
-337A887B36346B731B5DCD932E6BE614E93CFE417EF2BB5FC9644F0A78290AE8
-C021D5070C5AFD99DF08298550F770BFEB33520519A7ADF2266931A1D612606B
-CEE70966A059B1636E4B6E26FD6F5B6814C3A40B2F3167C5F1D2EBD76FE1E02B
-0397E5B43EDBFFFFDF8BC815E7DD89B2A08B8A5245A21898CBB84E44D8AA983E
-30E25C73AC7D2D54B20B20DB4233625644D97C7C48F8FE86831B5437D3DBA582
-DD188D83B72564DAA6F5D2CA87B1CB9767C6CBE208D7E12FCDFB0AA8FE3394A2
-9474ACFD5BB6CD9D5CE6368CE14E727427B84456289E139813F010CFF2F4377B
-C87584400E4DF728295BFB296ABA98FECC3D1D84DE2F8DF875E9227B0337D87D
-46D3BC3B307FEAD665F2E320D770DE0591A569E1F79826CB4D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 45 /hyphen put
-dup 97 /a put
-dup 98 /b put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D6FBE90EA40D6
-F8B539EDCB0A1EFE2AAAEC6B56780F9312CE3CF757F815AD506873D2884BFED0
-EEBBC826E2C4F589833F5EA07CD65AA558F72555F8061BFAC39CF05FFEB8A713
-A38A6FFBC9C160912580275C2798AC4914F4FE26402FF8E0DD5E05A2797D32CA
-927B17A043D2C98CC8D7CE4361A530160D6800FA73D978E179654682C61FCB9E
-7659E2B0A319D5E77A57BA9C9BC3C8FA49F5377E16806EDACCB60F0D8085FA97
-FE6D2F54B2752F54C04DBD85A788063ADCBEC519652AFB0475319DD0C6220DF6
-4B6153B1AB46DA2C41B5D2586F788D2A84FBE4E0ACDEEC857592043130FFB491
-67A7CC05A7AF3EF0A215736C4C76625098B5AA758162328979CD3ECC032BEADE
-20C001B5D0370FBCB6540E7EB3B2ED0460F81AB38B9240BAE8442715148D6D34
-BDE2F46DF7205B8311BC3BB48CE66B501DC1ED6A8E5C95E05BD1F6B603AA4794
-8C3C994176F923BF43CDA49176A63A70C8A38E99CFE26E96C4341F7720B16123
-685EA995EAC109BBEB1FCF0593385698AB5116D26E5C1CF169DB85B4994B12F7
-B8A750FCD3D5ADAD01DDC5D89FAEE27A682EF0B9356DE7FC42EF44910EC0FEF6
-5088AAEF32A79630F98E38388280193EDFF795BB7C25FCEA46E0B30652E0A05F
-12FC4C37C5D5574B9E2D25358408FC85C2E6341B46152D2894154182AE046B8C
-72CDE40D0BDFE5F552C605776ED76C0B3323BFBC7B7AA025D7D8F30645757185
-3AB97BE30339C36266E63A982A91A3C540262885466029E699B5D31172AE3E03
-002896F4BD639CD695C9913D4560BE3D2AAD3E77412254C2258D77EBF8BF982C
-8359E605F56F7F1E2E713987D5DB27EA2213CFE8464C458F13E11B00A885F0AB
-40DBD73604FF19CCF50F3AE3135D3B77CC906BF1940B12B08EA4B2B36DE1108D
-982AEE94519AF2F87BA96A108E3FF3B91A2D04F779EB9AFD1E0FEAD6773115B4
-3D3C1215582A0079E679A36EFDCD0EBEE4E10884E87FAB3776E42FA35A5F06BE
-B68CCC79BB512895D19336470C546812BEBC712FC3BBA8EB41661F47CA216C41
-BB57F070E0C23D85F7A885D90AB0B7EFC8C137215C892AB1CA87C04A5856D9EF
-EB5D9014BB839661C96F0DBC6DF67B0E129F2FD91C8B100919844A965409D574
-410E2F88840714375D33DA6AB25AD098F8E0E1F2CEEDC4F91F42E82CFF3C93B2
-2BE9C3E2FA827DDE58A332E1AEC7BED95A9F64B50E0526AC239BE038FF4BD489
-667941D432B7223E3F23523691A327AE4DE8B74BA6E617374554E2DC25E44486
-7B1AB2F413ACB46C49C3385D44816BA372C8C174939F2F5A9697F4C677991A43
-AAD40D2799C992B88A8D97D00733981331495FF9110520C9CC957CB4D9A4F66F
-4FDB5C1CBB0910D9C907019A61047DD5B6377FFAE542D57E15DD54E4FBC7E29D
-7E34B43B6243472FD171BA62346DA3B6D10194F71A10E7159E7C80DC2F3634DB
-EA582FEA03868101DD37992F0C55F80D308B4DC0C8DF9F4626CE48B5AC546FE5
-27BCF3FDAD70FB0F8B91AB273288FF7FDEB9A0F30CFC1997BFB4B9F3EE1B2447
-4E3904284D5C7B7890AB03ED3D29EBDB4C3EEE7B6C983FB743DDC07F59DFF88F
-41AD1405FFC5342D479A72DA8949F0AAD58CF2079A4F2907DFA3B227C0605249
-A085A5CA7321A86738FC4C6BB9963825201144A035695687BF2F61F8CFE718C6
-331C08A9686294FB1110DE0D20558BBCB5A4FD1722F07D435D7D1B9FE628E3C1
-834A3194D7077CA480720C750F7976042538E76B3E85BA7BB6EE87113B5689EF
-23CA3EAD9EB8FCE5C84CBE075B47F4CD4AB93DBE878D0A309A74EB876C6EF163
-924CDA4BC58AD786E63889A6D3B024BDE6BDC1FE7596CF96348AB85A1AA944B6
-107AF4015F827F5CC4360AEB06E84A922F8C6E66C1F93C445B4D1A7309140066
-103BD960237E8BCC233118F1AF981643D2BC599B9CA592F407B5053F99ECF649
-C0EFB20749B743BF12E069B14440AE58662241C8ED8ABD12670129F540DFAEBF
-2F394FB4885A12C5F20193E6D48A74860736D155F281210CCDADA9FB35E45F05
-1C688446531411FB70D20ED67C9279927C6881DD18179E0F30CAE2380433F141
-78A1C3426AFBEB9379E6C57DD3F5DE9DED4773DF56A469625DB2AB1453E461A2
-25A4E85B9DD1AA62832F3914217DBABE15457E2453A9E2F422B43A59AFCED19B
-71921AA566DC874DF1949A2EC8787A524CACF3841E1D04ADFDDA577E7AA9AB7C
-8B1A91785685AF3F5BE77666469AA24208FD23F52441F7954D13E90483E0BDDE
-58F3876BA2BFD95C918E3752973AA44889727333DD2439FFD458B1E5163F91A9
-85EEC4785795052AC9FC940E35DD5994F0555B28A96333E18D0AE1D81994F5E3
-E5CC722DE4A34536F5482CCA7E2C269F6FBE2A6E20CA603B926328CA1F9ECDB5
-768C3278ADB0CEB91313430EC15C86042E3749B6FACC52816D14F82AB3AA43A4
-0F12BA0EBCA88906BDCCB21081647D1DAE2D2176B9562D87D01DA40260F90B15
-8B41A5B54743328A52966959BBAB95ABD747C729C11F781AD6059C66B270440D
-E7AB8ACA751427BAF23010D76D91BD9A36B97AE7F5B02039133CAAD3512D48FD
-7772B6814C93FC3EAD5915C9A4CDAC26B3094A9114F2866B32D066EAB21BFB9B
-754804974DAD750B59EBF4A0F27FC740901E645122B6AABF28D6C52F1A7042B1
-85D567428279394250DB6DD8BAE13D1302E81F93F161CA1CEB260DB403302ED8
-CBCE86AB72A102348BD9BCD052C4FAEFD2DE6FFDA988DB4535D9D34D1D4C42D8
-526005B14F94BC17F7AD6F509CFDA44440F3053D06BDB912BA485A496BA661A4
-0D196D6500120C0D2F980A2E719310DD7F0F3445B8D489C429A014F1AD0F8D48
-D55FEAD1CD40B9F0FFC5CCA7C6212E9F19997910064F9D31DBA79CA6B11A7558
-084DECC9CAE6445F6929D0577F3841D17C9BEEED1C18AFF03E300A255F26423E
-066BD33EB1B8D7707BA8F943345D7B5CC27F2CBE7A89556C22FFA3F9E6B3397F
-E15670A0C5AE0A74EAE15C6940F380AE5F985FB099B2330BB726DDB190829628
-5F20BFE3E7C02068059517A39B32700C0D12707C98FE31031E128E65A196DBAD
-B469FE75414ECFCE242784E3DF10ACFDD8A34609D97E63130CC4D4BD2960F9CA
-079EF2B36F6EB3838CDADC8A930D9421ED341021490A47ABE1623CA892F7D135
-7771DF69F14C932A1F859ADECAB45730795E4214037D1F36688A6C45EF0CB9AE
-53BC90C6D1598704D382F1B3769B6619AE31EC9A67451B186D250CAE279497BC
-9F6EE35C5B9E467DF46ABDE3179FB6D2684784669AD97F088DB735FE7945864F
-441D29E0489739A106BC893D93856B28F2D1F037DC271BE2D59D9CBB0655F0C8
-E85AD2AAAF486AEEEDC696CC0BBBC271E856AA19C051EC616FC7A5BE557E370F
-0B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXXSLU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.16
-%%VMusage: 1024 39962
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 998 2 0
-%%EndComments
-FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXXSLU16-Regular) readonly def
-/FamilyName (TeXXSLU16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -200 def
-/UnderlineThickness 100 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 998 def
-/descent 2 def
-end readonly def
-/FontName /TeXXSLU16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 100 /d put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-2126 -345 2126 1062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7E0FB9D38796FAE3C8433
-10934F40DDE40A1D52CBA78FE5A358B01A400FE08FA6466092F617FCA128F37F
-73E6AEADA6139866A01E6D711A2B2E72D6D87862E5FB653361B6D01E633AC30E
-966211271411B100D68FD0C6E57728674F6FA77D2A96520F822E3C8EFF523E15
-5A12CF06E3D259D104181A02E1E393382B472C40FA6BE6A5BF3438BC8D34B2DE
-4AB2C9E36F9AC7977590C72477ADC87C2C4C6F3A9CD52E032F0CB12F9A0F632E
-491FFC5A195954DB446BAD6312D3F6BD34D5F638DF27D10560017A3449FE8353
-A9965E6AC624229B8B7150E86835392713DEEC510E53E8A05FCB35DC5B32C43C
-FE0C48E044096E73633CA7386F6BED24AE3E6F9E918598F49FE81490A603D9B4
-36431B78C81B59E5A05EDCE15A46F81D04B1B72102DD4C206194AD2CB90AD998
-2C71D2334AB96714C7B1D4F806FA75D1136F67951EC6044F45E9CABE7791B51F
-8E013966502C43447C7FF69DAB764D529E0A1386C3619B0F4A87D8D42B55FC34
-E864486842B6FCA421949403B63DC8E850CFC345783CF0B982E9AD7D3026BA93
-1EDF3ABCA21BE2D455AE8276B8048110A0A60E766C978B906061AB0E4E708156
-7589894A5E9C8B514B248E38C85813CFD614D38F6212690536A89A6247F6776F
-C1CBBC621DE64B8EF7DD9B1075D52489335890119837F883408F746AB03D9097
-29757873E0EFCB3844DA15D7BEE108B37B1175561D65A8A8665B5D30AA261291
-E001317FD25C940188FF526D82F49C7B8E3D17F673656282F84E62CC1BFC3C05
-A96BA472830FDBEF494BE4C44CB4C587451F6FFE101D4E6DC7B7207DB8D74FE5
-2CC2DCEB133A13885A0740AD31D9D2FBAC049C18401CCEB356C3F2C83383301B
-1E79BB474ECB376D374C26575A07771E3B018E48354A26227EA52C5ED1A350B9
-86309B2A0EF94656A5A83D4C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
-C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
-9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
-F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
-0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
-3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
-555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
-B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
-EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
-D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
-494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
-CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
-C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
-357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
-E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
-F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
-B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
-5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
-8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
-16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
-AC14244C421456BB3E06591DEEB9DCDC135C6D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (cslurs2n.dvi)
-@start /Fa 112[100 2[100 138[100 1[{}3 132.835 /TeXXSLHU16-Regular
-rf /Fb 138[46 32 33 33 2[42 46 1[23 5[25 37 46 1[46 42
-51[28 45[{}13 83.022 /CMR10 rf /Fc 155[0 100[{}1 132.835
-/TeXXSLU16-Regular rf /Fd 184[106 63[0 7[{}2 132.835
-/TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 43 2350 4 v -364 76 V -364
-109 V -364 142 V -364 176 V -364 141 a Fd(G)p 76 209
-60 4 v 86 292 4 85 v 87 207 a(\007)199 179 y Fc(d)p 272
-207 4 117 v 273 91 a Fd(\007)p 459 176 4 135 v 509 456
-a Fb(fon)n(t-based)26 b(slurs)p 519 209 60 4 v 529 292
-4 85 v 530 207 a Fd(\007)550 -37 y Fa(\214)-14 b(\001)p
-715 141 4 117 v 716 24 a Fd(\007)p 892 209 60 4 v 902
-292 4 85 v 903 207 a(\007)923 -120 y Fa(\217)g(\001)p
-1079 10 60 4 v 1079 -24 V 1079 -57 V 1089 107 4 167 v
-1090 -59 a Fd(\007)p 1276 176 4 135 v 1335 209 60 4 v
-1345 292 4 85 v 1346 207 a(\007)1366 -236 y Fa(\217)g(\001)p
-1522 10 60 4 v 1522 -24 V 1522 -57 V 1522 -90 V 1522
--123 V 1522 -157 V 1532 107 4 283 v 1533 -175 a Fd(\007)p
-1982 176 4 135 v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/cslurs2n.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: cslurs2n.dvi
+%%CreationDate: Wed Jan 21 13:55:59 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 714 312 801
+%%DocumentFonts: TeXMUSIX16-Regular TeXXSLU16-Regular CMR10
+%%+ TeXXSLHU16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE cslurs2n.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1355
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXXSLHU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLHU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.06
+%%VMusage: 1024 38733
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 169 831 0
+%%EndComments
+FontDirectory/TeXXSLHU16-Regular known{/TeXXSLHU16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXXSLHU16-Regular) readonly def
+/FamilyName (TeXXSLHU16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -169.492 def
+/UnderlineThickness 84.7457 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 169 def
+/descent 831 def
+end readonly def
+/FontName /TeXXSLHU16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 1 /acute put
+dup 140 /Ncaron put
+dup 143 /Racute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-12 -2000 6002 42}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE637D25C679E7640BD1F8A
+D75E94D932D2E43D00B42B05240E953EB7DF742ADFA977610523A3AF95C2C93D
+ECDF7BCFB30F7D8875F93F03902B028A6336E2A110D0F1DD574170538B6707B0
+903AEA776E52E411C66C724414AEE75ADEBC9155AC35AADACD5415A64D3B08CE
+2B4683B923FF8E4F2DA1AE2385279367073A556CAC4172B81D5A5EF6F470A11B
+0E636F411D3E20F7EB8DBCD230625782EB60CB0C606E64F6BBD19918CFD94D75
+2555912D08CF2C633BB6CF5279C73787DF8A7F5C206530AC581355B0B2317B61
+05BC7824BB326F85A550893F17C934227129D12DA894F13CFC89CE7EA3B11E38
+C0372F954FA43027D1112CAE56763E494C715264479764E05F2127443E172B72
+2D7C3B017B5C17F8FE12D52CB1DF6132E309C9D420911373E55C498764DE04AC
+4A58033E61FD9B41053DB67BE4DB85E1D0E5068ED5F4AF84268C3606412E2CA7
+C472928B950618D8354E4A59B4F77C292794588E410268717EA1D47EF68D98B2
+14195ECDA182220298DBB1C1C890D0918FBDD8D3F02B7A6995AD54B949BBFA3A
+8D5DB94E880CCB20C99805D71D70768D67BD09F6AD47E6804531C0A9E6763C56
+BFF2AAEB62D784B0564606B5F091BE390EE38024B5D4F3B44FAC106E1CD6B588
+8BB4ED605BC19803C10DA54388C0E68E0C9690E4D7F1D2A19A0D86B2D00B1C7E
+33B2D8DE5DCCB188A2EF58E8DE23FFFDA0F36EC2025F28188B5F4B6B5D8214FE
+BCC3E0F3B97181AEDC88F1576AA99734B96E8CEDF69D43F9A104984FCB542573
+337A887B36346B731B5DCD932E6BE614E93CFE417EF2BB5FC9644F0A78290AE8
+C021D5070C5AFD99DF08298550F770BFEB33520519A7ADF2266931A1D612606B
+CEE70966A059B1636E4B6E26FD6F5B6814C3A40B2F3167C5F1D2EBD76FE1E02B
+0397E5B43EDBFFFFDF8BC815E7DD89B2A08B8A5245A21898CBB84E44D8AA983E
+30E25C73AC7D2D54B20B20DB4233625644D97C7C48F8FE86831B5437D3DBA582
+DD188D83B72564DAA6F5D2CA87B1CB9767C6CBE208D7E12FCDFB0AA8FE3394A2
+9474ACFD5BB6CD9D5CE6368CE14E727427B84456289E139813F010CFF2F4377B
+C87584400E4DF728295BFB296ABA98FECC3D1D84DE2F8DF875E9227B0337D87D
+46D3BC3B307FEAD665F2E320D770DE0591A569E1F79826CB4D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 45 /hyphen put
+dup 97 /a put
+dup 98 /b put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D6FBE90EA40D6
+F8B539EDCB0A1EFE2AAAEC6B56780F9312CE3CF757F815AD506873D2884BFED0
+EEBBC826E2C4F589833F5EA07CD65AA558F72555F8061BFAC39CF05FFEB8A713
+A38A6FFBC9C160912580275C2798AC4914F4FE26402FF8E0DD5E05A2797D32CA
+927B17A043D2C98CC8D7CE4361A530160D6800FA73D978E179654682C61FCB9E
+7659E2B0A319D5E77A57BA9C9BC3C8FA49F5377E16806EDACCB60F0D8085FA97
+FE6D2F54B2752F54C04DBD85A788063ADCBEC519652AFB0475319DD0C6220DF6
+4B6153B1AB46DA2C41B5D2586F788D2A84FBE4E0ACDEEC857592043130FFB491
+67A7CC05A7AF3EF0A215736C4C76625098B5AA758162328979CD3ECC032BEADE
+20C001B5D0370FBCB6540E7EB3B2ED0460F81AB38B9240BAE8442715148D6D34
+BDE2F46DF7205B8311BC3BB48CE66B501DC1ED6A8E5C95E05BD1F6B603AA4794
+8C3C994176F923BF43CDA49176A63A70C8A38E99CFE26E96C4341F7720B16123
+685EA995EAC109BBEB1FCF0593385698AB5116D26E5C1CF169DB85B4994B12F7
+B8A750FCD3D5ADAD01DDC5D89FAEE27A682EF0B9356DE7FC42EF44910EC0FEF6
+5088AAEF32A79630F98E38388280193EDFF795BB7C25FCEA46E0B30652E0A05F
+12FC4C37C5D5574B9E2D25358408FC85C2E6341B46152D2894154182AE046B8C
+72CDE40D0BDFE5F552C605776ED76C0B3323BFBC7B7AA025D7D8F30645757185
+3AB97BE30339C36266E63A982A91A3C540262885466029E699B5D31172AE3E03
+002896F4BD639CD695C9913D4560BE3D2AAD3E77412254C2258D77EBF8BF982C
+8359E605F56F7F1E2E713987D5DB27EA2213CFE8464C458F13E11B00A885F0AB
+40DBD73604FF19CCF50F3AE3135D3B77CC906BF1940B12B08EA4B2B36DE1108D
+982AEE94519AF2F87BA96A108E3FF3B91A2D04F779EB9AFD1E0FEAD6773115B4
+3D3C1215582A0079E679A36EFDCD0EBEE4E10884E87FAB3776E42FA35A5F06BE
+B68CCC79BB512895D19336470C546812BEBC712FC3BBA8EB41661F47CA216C41
+BB57F070E0C23D85F7A885D90AB0B7EFC8C137215C892AB1CA87C04A5856D9EF
+EB5D9014BB839661C96F0DBC6DF67B0E129F2FD91C8B100919844A965409D574
+410E2F88840714375D33DA6AB25AD098F8E0E1F2CEEDC4F91F42E82CFF3C93B2
+2BE9C3E2FA827DDE58A332E1AEC7BED95A9F64B50E0526AC239BE038FF4BD489
+667941D432B7223E3F23523691A327AE4DE8B74BA6E617374554E2DC25E44486
+7B1AB2F413ACB46C49C3385D44816BA372C8C174939F2F5A9697F4C677991A43
+AAD40D2799C992B88A8D97D00733981331495FF9110520C9CC957CB4D9A4F66F
+4FDB5C1CBB0910D9C907019A61047DD5B6377FFAE542D57E15DD54E4FBC7E29D
+7E34B43B6243472FD171BA62346DA3B6D10194F71A10E7159E7C80DC2F3634DB
+EA582FEA03868101DD37992F0C55F80D308B4DC0C8DF9F4626CE48B5AC546FE5
+27BCF3FDAD70FB0F8B91AB273288FF7FDEB9A0F30CFC1997BFB4B9F3EE1B2447
+4E3904284D5C7B7890AB03ED3D29EBDB4C3EEE7B6C983FB743DDC07F59DFF88F
+41AD1405FFC5342D479A72DA8949F0AAD58CF2079A4F2907DFA3B227C0605249
+A085A5CA7321A86738FC4C6BB9963825201144A035695687BF2F61F8CFE718C6
+331C08A9686294FB1110DE0D20558BBCB5A4FD1722F07D435D7D1B9FE628E3C1
+834A3194D7077CA480720C750F7976042538E76B3E85BA7BB6EE87113B5689EF
+23CA3EAD9EB8FCE5C84CBE075B47F4CD4AB93DBE878D0A309A74EB876C6EF163
+924CDA4BC58AD786E63889A6D3B024BDE6BDC1FE7596CF96348AB85A1AA944B6
+107AF4015F827F5CC4360AEB06E84A922F8C6E66C1F93C445B4D1A7309140066
+103BD960237E8BCC233118F1AF981643D2BC599B9CA592F407B5053F99ECF649
+C0EFB20749B743BF12E069B14440AE58662241C8ED8ABD12670129F540DFAEBF
+2F394FB4885A12C5F20193E6D48A74860736D155F281210CCDADA9FB35E45F05
+1C688446531411FB70D20ED67C9279927C6881DD18179E0F30CAE2380433F141
+78A1C3426AFBEB9379E6C57DD3F5DE9DED4773DF56A469625DB2AB1453E461A2
+25A4E85B9DD1AA62832F3914217DBABE15457E2453A9E2F422B43A59AFCED19B
+71921AA566DC874DF1949A2EC8787A524CACF3841E1D04ADFDDA577E7AA9AB7C
+8B1A91785685AF3F5BE77666469AA24208FD23F52441F7954D13E90483E0BDDE
+58F3876BA2BFD95C918E3752973AA44889727333DD2439FFD458B1E5163F91A9
+85EEC4785795052AC9FC940E35DD5994F0555B28A96333E18D0AE1D81994F5E3
+E5CC722DE4A34536F5482CCA7E2C269F6FBE2A6E20CA603B926328CA1F9ECDB5
+768C3278ADB0CEB91313430EC15C86042E3749B6FACC52816D14F82AB3AA43A4
+0F12BA0EBCA88906BDCCB21081647D1DAE2D2176B9562D87D01DA40260F90B15
+8B41A5B54743328A52966959BBAB95ABD747C729C11F781AD6059C66B270440D
+E7AB8ACA751427BAF23010D76D91BD9A36B97AE7F5B02039133CAAD3512D48FD
+7772B6814C93FC3EAD5915C9A4CDAC26B3094A9114F2866B32D066EAB21BFB9B
+754804974DAD750B59EBF4A0F27FC740901E645122B6AABF28D6C52F1A7042B1
+85D567428279394250DB6DD8BAE13D1302E81F93F161CA1CEB260DB403302ED8
+CBCE86AB72A102348BD9BCD052C4FAEFD2DE6FFDA988DB4535D9D34D1D4C42D8
+526005B14F94BC17F7AD6F509CFDA44440F3053D06BDB912BA485A496BA661A4
+0D196D6500120C0D2F980A2E719310DD7F0F3445B8D489C429A014F1AD0F8D48
+D55FEAD1CD40B9F0FFC5CCA7C6212E9F19997910064F9D31DBA79CA6B11A7558
+084DECC9CAE6445F6929D0577F3841D17C9BEEED1C18AFF03E300A255F26423E
+066BD33EB1B8D7707BA8F943345D7B5CC27F2CBE7A89556C22FFA3F9E6B3397F
+E15670A0C5AE0A74EAE15C6940F380AE5F985FB099B2330BB726DDB190829628
+5F20BFE3E7C02068059517A39B32700C0D12707C98FE31031E128E65A196DBAD
+B469FE75414ECFCE242784E3DF10ACFDD8A34609D97E63130CC4D4BD2960F9CA
+079EF2B36F6EB3838CDADC8A930D9421ED341021490A47ABE1623CA892F7D135
+7771DF69F14C932A1F859ADECAB45730795E4214037D1F36688A6C45EF0CB9AE
+53BC90C6D1598704D382F1B3769B6619AE31EC9A67451B186D250CAE279497BC
+9F6EE35C5B9E467DF46ABDE3179FB6D2684784669AD97F088DB735FE7945864F
+441D29E0489739A106BC893D93856B28F2D1F037DC271BE2D59D9CBB0655F0C8
+E85AD2AAAF486AEEEDC696CC0BBBC271E856AA19C051EC616FC7A5BE557E370F
+0B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXXSLU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.16
+%%VMusage: 1024 39962
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 998 2 0
+%%EndComments
+FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXXSLU16-Regular) readonly def
+/FamilyName (TeXXSLU16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -200 def
+/UnderlineThickness 100 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 998 def
+/descent 2 def
+end readonly def
+/FontName /TeXXSLU16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 100 /d put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-2126 -345 2126 1062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7E0FB9D38796FAE3C8433
+10934F40DDE40A1D52CBA78FE5A358B01A400FE08FA6466092F617FCA128F37F
+73E6AEADA6139866A01E6D711A2B2E72D6D87862E5FB653361B6D01E633AC30E
+966211271411B100D68FD0C6E57728674F6FA77D2A96520F822E3C8EFF523E15
+5A12CF06E3D259D104181A02E1E393382B472C40FA6BE6A5BF3438BC8D34B2DE
+4AB2C9E36F9AC7977590C72477ADC87C2C4C6F3A9CD52E032F0CB12F9A0F632E
+491FFC5A195954DB446BAD6312D3F6BD34D5F638DF27D10560017A3449FE8353
+A9965E6AC624229B8B7150E86835392713DEEC510E53E8A05FCB35DC5B32C43C
+FE0C48E044096E73633CA7386F6BED24AE3E6F9E918598F49FE81490A603D9B4
+36431B78C81B59E5A05EDCE15A46F81D04B1B72102DD4C206194AD2CB90AD998
+2C71D2334AB96714C7B1D4F806FA75D1136F67951EC6044F45E9CABE7791B51F
+8E013966502C43447C7FF69DAB764D529E0A1386C3619B0F4A87D8D42B55FC34
+E864486842B6FCA421949403B63DC8E850CFC345783CF0B982E9AD7D3026BA93
+1EDF3ABCA21BE2D455AE8276B8048110A0A60E766C978B906061AB0E4E708156
+7589894A5E9C8B514B248E38C85813CFD614D38F6212690536A89A6247F6776F
+C1CBBC621DE64B8EF7DD9B1075D52489335890119837F883408F746AB03D9097
+29757873E0EFCB3844DA15D7BEE108B37B1175561D65A8A8665B5D30AA261291
+E001317FD25C940188FF526D82F49C7B8E3D17F673656282F84E62CC1BFC3C05
+A96BA472830FDBEF494BE4C44CB4C587451F6FFE101D4E6DC7B7207DB8D74FE5
+2CC2DCEB133A13885A0740AD31D9D2FBAC049C18401CCEB356C3F2C83383301B
+1E79BB474ECB376D374C26575A07771E3B018E48354A26227EA52C5ED1A350B9
+86309B2A0EF94656A5A83D4C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
+C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
+9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
+F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
+0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
+3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
+555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
+B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
+EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
+D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
+494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
+CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
+C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
+357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
+E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
+F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
+B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
+5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
+8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
+16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
+AC14244C421456BB3E06591DEEB9DCDC135C6D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (cslurs2n.dvi)
+@start /Fa 112[100 2[100 138[100 1[{}3 132.835 /TeXXSLHU16-Regular
+rf /Fb 138[46 32 33 33 2[42 46 1[23 5[25 37 46 1[46 42
+51[28 45[{}13 83.022 /CMR10 rf /Fc 155[0 100[{}1 132.835
+/TeXXSLU16-Regular rf /Fd 184[106 63[0 7[{}2 132.835
+/TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 43 2350 4 v -364 76 V -364
+109 V -364 142 V -364 176 V -364 141 a Fd(G)p 76 209
+60 4 v 86 292 4 85 v 87 207 a(\007)199 179 y Fc(d)p 272
+207 4 117 v 273 91 a Fd(\007)p 459 176 4 135 v 509 456
+a Fb(fon)n(t-based)26 b(slurs)p 519 209 60 4 v 529 292
+4 85 v 530 207 a Fd(\007)550 -37 y Fa(\214)-14 b(\001)p
+715 141 4 117 v 716 24 a Fd(\007)p 892 209 60 4 v 902
+292 4 85 v 903 207 a(\007)923 -120 y Fa(\217)g(\001)p
+1079 10 60 4 v 1079 -24 V 1079 -57 V 1089 107 4 167 v
+1090 -59 a Fd(\007)p 1276 176 4 135 v 1335 209 60 4 v
+1345 292 4 85 v 1346 207 a(\007)1366 -236 y Fa(\217)g(\001)p
+1522 10 60 4 v 1522 -24 V 1522 -57 V 1522 -90 V 1522
+-123 V 1522 -157 V 1532 107 4 283 v 1533 -175 a Fd(\007)p
+1982 176 4 135 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/debussy.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/debussy.eps
index 842f22b2862..4e9bf65ac5d 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/debussy.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/debussy.eps
@@ -1,1079 +1,1079 @@
-%% LaTeX2e file `eps/debussy.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: debussy.dvi
-%%CreationDate: Sat Oct 18 17:22:36 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 20 704 552 793
-%%DocumentFonts: CMR10 TeXMUSIX16-Regular CMBX12 CMTI10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE debussy.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.10.18:1722
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 49 /one put
-dup 50 /two put
-dup 56 /eight put
-dup 76 /L put
-dup 101 /e put
-dup 110 /n put
-dup 111 /o put
-dup 116 /t put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE23767DB5
-CA5E8A96258B222BA6F0BF16FB385E41896178C142AF0EDE0021CC541A592815
-6806F884A5A21B8BDB60D5104399D15425945B28787380BDB0A0E97B3F31E538
-22B3BA568CF4D2E8782CE2CA995C4B390BF3FA2CB24F0C997FF807EBD1F3EC70
-E88598F6E2DD7EF635C8A5FFA1B759690BCA0CA2C9A70904A09C6F69B49D2B45
-00FFB6A720D8C5CA2328AE3D560FF98867CA4C7B1B083076C064DB624356D6BD
-817A6E6D248D5F8BF8A65009450B05A52AD6B914E1ED07E57A342EBD12F3ABA3
-AA25ABA3155625A4FDC84E6CC0FCC3883AC8C5B20741BC88CB2AA1F975D53EF8
-482A7E30D81A69C39CF74748BC0EFB9001D09E02CF77CBE936940F910CC6F3F5
-EB066BC1A558677628CE4F9768A77E87DC30DDC4A7602D022ACB878CD3FA7AB0
-7DA6F265BBFFA28BE95B7677AF757542980013131E413A9628C1CCE4A41AA06D
-DC243E9EFA5C31939F170E74874CBAB5180F7076C4FACBF7D9CA1EEAFE21813B
-93A9C9F97F65E079FCBD296E2EFA7497CC80BB4463A06673B7FA10B77545EF14
-11C19E6484548B4018798FA454E2AACCC0FE55D68CA5AC8CDC44C08FAB16D8CE
-F40C692B95B3430DFBB53E29DFAB56454B562E42929C6C66558ED8E940C77294
-F90228F30CDB8C29BA94E65E78BB6ED1345EB70D1275A1CCBBCE147E5CF0EC9F
-D497CC19036024EB4E21FF1AF6598C649585429AEBC94C6C29FEE89ED2776548
-DB52C329CD416515119D4A7FE2495B596DD2F442E53A31CE76EB2FAF0F49F991
-8C2004D0428DB74894985C51CA77F403EAE794DC9C1F0842FC7C534BB7C1FB18
-D766CC24484DB10240C8C0AAD63F209147FA3D4E150D83FACC329E1A9CDF754C
-8888C3AB1FA0ED99598FC494927325F577B8608FCF51BB0EDDD6294B4007B556
-D9E5E42C3B870E0B7EB87CD85526FBEC3CB57AC63FE0549462322CE67B19A2B2
-689D5C61FA04052AE4D81A7E3410B68BD1D5A7104E9D72C77E2FDEBA93C33E43
-AF3468F7D1B4B67443DFB36F96D964B2278FC0574EFA8A94BCC015892A0BD5EA
-7D3F2E71DBB4897F9524AD90BE19111A94A00783FA8F0F3C5CD9DEAE953EE036
-25070A49FC58241945D7FF7BD9C764BB7DC2A55F513EE169DD4E5224D8D8A443
-91D7EF8C93B8278027E61EE13E8633628AE5E8969D71A10D722A7BA67624FEF8
-D246BEEFAD08CED13D70D05B2EEBD006E6129E5EE36F0F9BE7940BD4B0C1C12F
-A82EB5DE1EC8A0F11F6502EFDBC55D53CA97EF2F04AEFD166A521938D6947974
-93624E07F4D399CDEBFCFE0827080ED55071291D6A10C71023A83CD26D97E28E
-CD35DDA0522A9C7020A084F95E27866055D1FB207B163EB93EB75A1AA8EEBEF5
-21B65C25572DFB5E24D95E6B002D8A39E6184973ED6FFCC4220F3F263AF1475F
-622CBE66EBDB646B2BE815904B64020BD05D665429569CE0C84F2B80CEBE6FA2
-8B28A1F6A687A910EE8D4DD9388DD22CA9EC6E78F140C7EB0AC3356F7FC8EACC
-59A9A7316C8F1FD7C775C25F4A2FDA0DCF243074FD9A492F4147821D160F0271
-C2E50AA5D8F71F42ECAE719445039DED5047EDA09E64E787B8ED4D05A7268327
-718035EA4D693B1C3EF3D07B8CF29D0E450A0BDFEFA7DB2B54E38C7E46137668
-06977F201FC1411BF90969E5AEAA5D8D4E187F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 99 /c put
-dup 100 /d put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
-98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
-2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
-CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
-F78C2BE1B31F956D3CA92861BD92959BCF25C38FDDAD7B916119B6DE7DD173EA
-9B57C87FC5C75B59D8D2D574F0C696015A274E5CD1348432F79F52526539169D
-E428E9E0D129E4DF91C41341BCEB4F1C5A89CED3BB668F0C1086D8B4C3836CC9
-0238CD5D649C2EF010800EB296107DF711E6EB0975FC4CB4DE613E5D26E1CA6E
-EBECE093596D8B260E5B560CC623DBCC0FEE19DA182DD56537312D008742680C
-95666B55B77E0671E84EDF018CB22111A9BAEB3C9C5FCEB3A9B9AB75D1F47933
-F3E7BD8696937055EFD09A19F1F9A74324B5C209785B86978CA936015DB15556
-046D5689C5363421242B3A09D2AF4D67F6BF6F8700B6153DE00B3B3C96E1D49E
-A9AA93565B76E80ED882CFB30C6A7155A90E0EC0DB9B8D4302F6F63343073FF2
-82CFCBFD76AF01E5BFFF413BFFBD4DD6D4BCB037BC216517B3C65D1D3C45D45C
-BEE11B4A0989C5F199DD85EC1223F0B0E7A9AE7E255B2FD26FF29488BEB1369A
-21EAF4EE3505907C4B0827E09C2E93DBFA11D47DA1656E6E0ACACACC3BB068A0
-FAE7A54990B6BE3A4C2D4F7C3DFF243DEC4556BA26FED339571C6DF8F9B15208
-02D3D0A3502C38972DC9ED73BB7A9A5A1FFC953AFCF0F7FA72696541AA588214
-58E6CAB8C900ACDE902AE80246508AFA470E5437C9D1BEE98BF5FCD5449728EC
-B888518B86BDD57E7958418630FB3546564589757F3062C62B88DDF1C152E68F
-E013B8AFCAA4E5DAE69122751F6632349451A899DE97E026BE077DD1BDE74A8E
-2C0185593BFA63BCE87E967DD4B56B76E0FFF376AFC9F94174E7A3CA9C225DEF
-02F58BC7A5BD778730111809456EC35CFF83731931BC24CA364DBBBE60991B90
-DEE372C395E51CC485CA3297809752BE74646AACAA69BC78AC5E7EF261834AFE
-3B8383BE7C19A7597C27975C423C9D7C2DDEC6A7FC98D34F85456550550A0BA9
-E4F697E593A95AEE6C0A106257B6E45D4209A794C362CA6164440D00A9005D1F
-67BC97C9FC9D6828E32D2107CA731487F81E6600478F78DE5A69C1E752C7B165
-6DF2E6B9B5FCD557C7E5207155CFF51738FCD55A21E695019262D6360AD98CFD
-648127F81A95EE34B9706577538F4BAD1DAB57DD0A9C8A889BB3A8FF8506DB2A
-0D8A1D1323EA95EDB9C23A4AA697E42F28FBB20AFF4BAAC75650EA8AA345C09E
-1B214FEF4F57FB5AAC6049F2EDAA2EF7A33B8FFD2055328C989853EBC043C0E0
-E6C45E98B5CA55CAA947457B2F17669FB7DFCE3BBDFA10B33C24242E2397F0D8
-D995E93F52970509F9AAA284EE74ED463749098F4CDF128DE2A80DE3FF0EAB4C
-5B12F36B217376C97545ED198C7DC9DA8C296F9CB8154088E24D1E03C24CDD71
-4DF3380E4AEA711FA6B01814010FCF4D5F421F3585BD25F2ED4B4D348AFBC9C6
-4976C7C59455357CD34F6E673B5CD6DBACEC5604FE28E65728A74404CDA25ACC
-772CB629AFE3FCA9AF6AEB06C0ECEF7245F107E32EE7CFF406C7C4CDBD0BFB0B
-8E06343E5B0E879F694A5D9693B809E292FFE3EB2992D382B4C635D83B07C57E
-48117808B3D7A19B857E4B31F8B92D8287518C3D021CF7CEEBAAD73436B3DC7D
-1DE35B9E4DE2373514E3847EAB103B4BCADBAA4D0D0603135447AC1D5FB8DD20
-D512964FD1C7384CED89B71A62D14E3956ECC59240C472992EEDBA0F3E56B37D
-192DF1EC6D182811B0EA5F03BD675B4795626D192A3474E83E3D8F7734267EC7
-709F624F669FAD6DC40983DAC4BF6534381ABA25F827B425E7BC6B8B6E872298
-51575B8BACD7B963EF21803621AD0C0D3B882E
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 52 /four put
-dup 63 /question put
-dup 71 /G put
-dup 194 /Acircumflex put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A147678B652072CAFB2A7
-A02BC29585F88AE4DB41F2F259FCFF1983F17697620FF3186E9E102D35317B24
-46839F2837B6C7A515511E397B19AC2C76DCDE7063E1FCD278C1CBB2D87B70D2
-F2BA26A6A7A832699F447002F1270A02278D1DED35F0876382D8135358CDF95A
-DC51A88BEE96B9ED20F15C2DFDE0F2DB3ADA354EB1847292D7D4C7EA3D9EEB7F
-EB036B62BF45112029324851C87DFF3FB170BB8998BC3841D2EA7A9EA0F9A153
-293D96F1BFE3670A89C526C6CC01815E8FF9F98A6402610A6AC1874D16CFD13B
-F5D405A3542722EE558CE3844B90833874DAB49A43E3C834EFFDB3113380E550
-8E5A1A33BA67D9E2AAF51838C90092E1D7FBC773CAC68DB244ADA43ED5E167D9
-8A5D1E7100458FCA162753A3CAE2A3E67A3D84768F48989AB14F8780D7FDDE79
-0F5D5177DA33F06EA425CE9E8383A968FC980B5A10CC16AD342287EEEA157FA8
-C8C3DB5D77D1FA3B27C112FB80D42D3E0FD0A8D070DF4D1EFB3E5EBA92183794
-2819637B2E855402B9EBEF09857C4A9A3108F5F3ECE15A5F401E939DCDDDC3AD
-035E73D7B1811EE4879427A89BA5B7ACF9BE53ECE2D1001A68FC7756D8BB480B
-919BE352DE36D26399BF30E11E5C648658B52DC0AC6FF571E4580B1C6EDCF1E2
-8E045BFFE600F004FFDA57AC4AE192B06D447725BF69C4A71F63B6B2C64A6935
-2C3DF3FF3755F41CE9C7FD1439B3F3D69411A1E61BD7A798B080369EAFB5D77F
-924C70F12A40CE44BC4A590C05459E912C45F4915D7FCF1132434255118B61D4
-F27E012B9FCAD911568CAACA851F9470B463B405CA1F51576B24AA1BC20E5C51
-766FDA0789630AF0F67FF047B36EF6D3F9CDB6C7118385C77117BCEBE631034C
-417FBCFB480B9F1DCAA78C3412E97DF4DE0DBB9FC569FE93490945A780831D9F
-51542583E108152E26EEE77EA2B859D85F979839C37AF761188710C4A4226599
-2962EFF72DA761F1639987A8BA49D16F8B28B083AF5C2D16557F1880638EFB55
-58AB5700E0BAF851B41AB394B4A4C8A8A51DFDCD2A3145AE67CB9A23F54ECF63
-B1E9B30662E93AF42F3E573969FAD4980C651CD7DB6A8E9523D8123E599D4E09
-EFEB81B902A9C4CFDB2550C72F6ED1E028F8E8C60BB3DB20F94AE7FEDA551F67
-C3425A7CEDFF4DCE91D9EB3AE72C413EA79499785F517B68D6AEC0CC6C579708
-3A30534C2803F4843ED368241B1B0A67BC009B33B0AA0156C2F8054F55D0E677
-BEE604AA0ECC2690F8257F7EE2BED13D7EDB0499A7975AEC0BA1DC2C382467FF
-441A4AC11F2C5A3748FF443A362BDBC3E11441E27FDE7192DCC8939C07DD4A59
-0BBACA83407BD4AD1B35B62C19D3A64019415E82C4462BAB320FEC91CA2531BC
-B4A5A6C4AECB089D19C733B50DC5DCD83011B1EB180DBC58456B96F711096746
-C7E0FD2418E74B8EACC68F255CF147296C66809DEC5A8B35A0C8970B7BC33F1C
-1BFE3D0AD7E683BF1DBE5A1D9E4EAFC7CA16B620257B9868BA75E298F11D369F
-485A57C8BFC81B1072E5299C335E344EBD9E63778B1B650FD1F7DD10C3BD11A2
-FCDF5F1052
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 70 /F put
-dup 84 /T put
-dup 101 /e put
-dup 108 /l put
-dup 109 /m put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
-F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
-DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
-A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
-7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
-2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
-84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
-4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
-153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
-39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
-C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
-E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
-0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
-D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
-23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
-1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
-71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
-0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46871AE21A24A69E6
-9D555F2666B2CD064D13276C75C80040EDCF79CD994D8766885ADB6058167F6D
-FB6E00260EDCED9A6FC8E5B7B915712E24DDB79784EBB117119DE901E46B5871
-4A04BC47F6FEAC25FB33925C7F840C980ED1D5A3653DBA3BA2DD68053544B3B1
-9D36FF290B4BD1B807749BBF6077BA6B50B72B3734AF785C7F040B899DC59111
-021A44AB6F092E09D108E5EDBF76871F1F34D896B38DE9BF50A969181EC3CFB4
-A7FC38B82A25166E615B022477FD846685909845C2A0BB795A1EF43312E0CBD9
-E40D023DB8338249FBAB2F39E55A12438638012DEE9A2A2FC3F8652F5D69E413
-CD0F802AB0BE9AA9F06FD8CD5C0AF5D05994D228A347790A65437F3DDC10C3EC
-FCCF5492F4446263DDCB8ECBEC69075AD276587CC6EAB514C18F498B959A430B
-A239B29B35D0EA04BBBC0FE34F9AACCF6B2863F27CCAC57D0A052D7D268F2910
-4F5EBC3A867D95BF09C3E2729671F64AD12F5924004CD6639E5400B13D90D970
-A99952CABEB0149EFE0D8FF0E907E4F40BD9A26D9D7BD2D2D609D1FB14431C8B
-8214946559EEE88AFB0D560EB8AAA4C45344272503B223CCA311A3F00C7883FB
-123662C961203FB60475E1D62977590E57C042383554D754B373A95B22A77C42
-E72BFB8385EA6B6684AFEBA6CC9D6C3E4935237538ADD39017DAD06E9A4BF58F
-B17DA63A2E4B0C7BC00C51177E4EB12E90F28F2DD443B04E95A1B37EA0461ABA
-51F81F51F53C4BB8E027057CDB4CB3A20F97E337961901A50E8342557CF3DBC4
-E2651F9FCD1D6E23ABE7B243447977217A094B2FC05A97ED8AC112640773EE8B
-483FE021957C788A3F2F3811028F4C578909028D5668713113CC44AD368226F5
-DC6EA4311C481B1FBF343A8F59947F6CEFFEE0251D8C3234168EF07BA252543C
-D730791DB5E7CA28076CB1851465FEB59DF49730C58587DEAC38B6891C24A7B3
-FC5E1F1FAFC6F87CE7D6ED0BFC24CF51E956D040109F30F0451E6B5E13CA29B4
-7824DAE705738CF43CA67736981FE164F31E0B074334CEFC99A44B5E3434E0E5
-0C9AE75ED3413E26FDB44B261767D511BD8CEB80257010CF06943A41218E8A5F
-5B6904D1390659CB6CFAD1EA3EFDDF99C7359BA90A68093B5E4FD012A39F3EA3
-482FBB7C5A84CFBB47748AEFD0E71B59249F2A89C5422BAC0395125DBEC02C49
-9C8F17A3F626ED833C294C95411DF03F9B62F29E7482DE99281A695B59545E8D
-1677BEF0FDD17749DB29A3DB341C880C5C5AE602B4545902FDAF14089D48B5A2
-9BFC0556A5CAC39000B50FFB801287807249687F6A2E531CCF43738F635D9F50
-ED7C88F9DD8183AF6AFC32439F55D19E421C9E5E1971508715099C0676D0BA96
-1FBF48696F59BBB434D6A30100054B98202ACFB5431D8F7100E74203B6734FD1
-4BC4C409BB8E109EEC37027A12742F718CF7C5341DA20C3D4824576DEEFF0FCA
-5EDE1CC2A690FE6CA9437102A1D320CB19A238B7651CF0B03B335D912908F224
-1FD050E154F5835DAF8D7115525331CDD745E641CA35849456FA943D0980A8C2
-2A82DA0FE45C444FCE7589B95B2BF4B9AEE2D9BE1D483DF633E8C5AF8C4F4749
-CFE78B2B24F1D11913BD3F9DCB6A4835E2DAE6D07341EA583299E107D9ABD867
-D09E2FE66859B887B88A2DAB37D9EA2D9426B5500888CF40392308ADADEEC55A
-A45B332129E74AE68E4680E5E6FCEFE23D76737554A93C638E95D2D8160FEB84
-D1DF6EB8D61DDDDE020254AB857D02CA4C98335F84B3DF2945AFB8ED77D0BB2F
-D5CF295935A63B5A07F4119E0DD2D8C75481E02F2D285666882F75D6B00B6A1B
-1F4EC9BB53CC924C974EB7CEE384BFD2727EAFB13C0F956213B85CB79863F320
-747044E43AEEA0DA5ADE2C6AE66C266BC09C9B67C36BA12ACEEAE2228238A366
-9DF4E69E952113D23C48ACD7ED49572767C9085B141E06BE0A81E63602BF46D7
-3F2AA82E9743E9A957F5A785EB0A1869075ACAD8E989A944A53B09484DCF572B
-35E4D845572B4345CA9FCC80ECC4CE0022EB717CD10717BC2D40FE9BC9831894
-5C5383A9397C385349289C4C5C2F97C95FBAF060834E767DE04E9F5AE4D3331B
-4D1B574011AFCF37F39826BBB399C35FC3EDE83F4725570C2F969E5526C19428
-F6ECF9AC5A3FE052B65E6EF9DEF764C4B0095E5BDE8B2EA20193A7632374EC33
-EDC6A023A13B22D62CAD3D245CBEDBFC2061612601FCE90ABA341CE6E9604D31
-B79AA29507C641D88EBC66260566BE9024EA5676C3CFDB715AA39ED54124CD71
-695DD69827F826BB316E6132E2B886064D91DEE98CCCD109BB7F0D5F988D3536
-5037267F74D681E42F75C4B5E80C2FD01FC27A931DB2D1561C36456649980C43
-D12CA333B7CDC8AFE3DDFB3E5B430DB458B16D24E7345B716CFFE45701A4B3AC
-E4E59BDB551965795F738101BD68ABBBA52E9D4528C0C176DE949B23EE3EFFAF
-67949E776453EBD1BEB3BD50BC3ADC21155713DA48D2369B7CD9444059E56469
-2E29D81C013256FC9350A21C9EC444446DF0681BDE4AC72978D02BB312B39F3D
-AD6C88C0A0FF2DF6B41336EB3D6D98A99FE111C59C71608EE83A9D9B8F6FB370
-10E98758F3BFD1EF8F11168E1C2E362561D22DD17416CA115E00DD7B8C6F7E0B
-0BD0C6B4FCD6AD975EAD4014A7A5761815EDDF2471C5043C45F74E49293962
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (debussy.dvi)
-@start /Fa 139[52 4[67 75 8[61 24[81 76[{}5 119.552 /CMBX12
-rf /Fb 140[34 35 2[42 47 9[42 38 52[25 46[{}7 83.022
-/CMTI10 rf /Fc 199[56 5[56 56 49[{}3 99.6264 /CMBX12
-rf /Fd 61[66 122[106 7[0 10[40 44[0 6[0{}6 132.835 /TeXMUSIX16-Regular
-rf /Fe 138[46 32 33 33 1[46 2[69 23 6[37 16[60 13[54
-70[{}10 83.022 /CMR10 rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -57 297 4044 4 v -57 330 V -57
-363 V -57 396 V -57 430 V -57 -35 V -57 -2 V -57 31 V
--57 64 V -57 98 V -57 430 4 467 v -425 390 a Fe(T)-7
-b(rump)r(et)-378 58 y(Flutes)-57 395 y Fd(G)-57 63 y(G)53
-295 y(4)86 345 y(4)119 279 y(4)153 328 y(4)186 378 y(4)219
-312 y(4)53 -37 y(4)86 13 y(4)119 -54 y(4)153 -4 y(4)186
-46 y(4)219 -20 y(4)276 360 y Fc(12)304 427 y(8)276 28
-y(12)304 95 y(8)529 488 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-7.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 529 488 a 506 279 a Fb(c)l(on)30
-b(sor)l(d.)p 496 463 60 4 v 544 461 4 117 v 506 461 a
-Fd(\007)506 445 y(\000)257 -103 y Fa(Len)l(to)506 96
-y Fd(?)737 53 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (5.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
-1 N /S1dash 0 N /S1adj 0 N end
- 737 53 a 714 187 4 108 v 715 79 a Fd(\007)862
-96 y
- slur@Dict begin (2.0pt) GD S1hgt (0.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 862 96 a 862 96 a
- end
- 862 96 a 885 117 a
- slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(-2.6pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
- 885 117 a 715
-187 a Fd(\302)779 190 y(\302)p 842 193 4 98 v 843 96
-a(\007)725 41 y
- slur@Dict begin /S1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
-(6.6pt) GD N /T2dir 1 N /T2dash 0 N /T2adj 0 N end
- 725 41 a 712 63 4 117 v 674 63 a Fd(\007)p
-1048 445 V 1010 445 a(\007\000)1003 96 y
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 1003 96 a 1010
-193 4 98 v 8 w Fd(\007)1011 79 y(\000)1015 96 y
- slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
-M 0.14 30 T2dash T2adj 40 DS end
- 1015
-96 a 1048 63 4 117 v 1010 63 a Fd(\007)1010 46 y(\000)p
-1338 411 V 1300 411 a(\007\000)1824 445 y
- slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1824 445 a
-1824 445 a
- end
- 1824 445 a 1842 445 4 117 v -20 w Fd(\007\000)1300
-96 y(?)1531 3 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1531 3 a 1508 137 4 108 v 1509 29 a Fd(\007)1656
-46 y
- slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1656 46 a 1656 46 a
- end
- 1656 46 a 1509 137 a Fd(\302)1573
-140 y(\302)p 1636 143 4 98 v 1637 46 a(\007)1804 96 y(?)2035
-36 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (7.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 2035 36 a 2012 171 4 108 v 2013 63 a Fd(\007)2160
-79 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2160 79 a 2160 79 a
- end
- 2160 79 a 2013 171 a Fd(\302)2077
-174 y(\302)p 2140 177 4 98 v 2141 79 a(\007)p 1506 13
-4 110 v 1468 13 a(\007)p 2010 46 4 117 v 1972 46 a(\007)p
-2308 430 4 467 v 2418 488 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-7.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 2418 488 a 2385 463 60 4
-v 2433 461 4 117 v 2395 461 a Fd(\007)2395 445 y(\000)2395
-96 y(?)2626 53 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (5.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
-1 N /S1dash 0 N /S1adj 0 N end
- 2626 53 a 2603 187 4 108 v 2604 79 a
-Fd(\007)2751 96 y
- slur@Dict begin (2.0pt) GD S1hgt (0.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2751 96 a 2751 96 a
- end
- 2751 96 a 2774
-117 a
- slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(-2.6pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
- 2774 117 a 2604 187 a Fd(\302)2668 190 y(\302)p
-2731 193 4 98 v 2732 96 a(\007)2614 41 y
- slur@Dict begin /S1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
-(6.6pt) GD N /T2dir 1 N /T2dash 0 N /T2adj 0 N end
- 2614 41 a 2601
-63 4 117 v 2563 63 a Fd(\007)p 2937 445 V 2899 445 a(\007\000)2892
-96 y
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 2892 96 a 2899 193 4 98 v 8 w Fd(\007)2900 79 y(\000)2904
-96 y
- slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
-M 0.14 30 T2dash T2adj 40 DS end
- 2904 96 a 2937 63 4 117 v 2899 63 a Fd(\007)2899
-46 y(\000)p 3227 411 V 3189 411 a(\007\000)3189 96 y(?)3420
-3 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (11.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
-1 N /S1dash 0 N /S1adj 0 N end
- 3420 3 a 3397 137 4 108 v 3398 29 a Fd(\007)3545
-46 y
- slur@Dict begin (2.0pt) GD S1hgt (6.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3545 46 a 3545 46 a
- end
- 3545 46 a 3568 68 a
- slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(3.4pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
- 3568 68
-a 3398 137 a Fd(\302)3462 140 y(\302)p 3525 143 4 98
-v 3526 46 a(\007)3408 -9 y
- slur@Dict begin /S1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
-(12.6pt) GD N /T2dir 1 N /T2dash 0 N /T2adj 0 N end
- 3408 -9 a 3395 13 4 110 v
-3357 13 a Fd(\007)3713 378 y
- slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3713 378 a 3713 378 a
- end
- 3713
-378 a 3731 378 4 117 v -20 w Fd(\007\000)3686 96 y
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 3686
-96 a 3693 156 4 110 v 3694 46 a Fd(\007\000)3698 96 y
- slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
-M 0.14 30 T2dash T2adj 40 DS end
-
-3698 96 a 3731 13 4 110 v 3693 13 a Fd(\007\000)p 3983
-430 4 467 v 3987 594 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3987 594 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/debussy.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: debussy.dvi
+%%CreationDate: Sat Oct 18 17:22:36 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 20 704 552 793
+%%DocumentFonts: CMR10 TeXMUSIX16-Regular CMBX12 CMTI10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE debussy.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.10.18:1722
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 49 /one put
+dup 50 /two put
+dup 56 /eight put
+dup 76 /L put
+dup 101 /e put
+dup 110 /n put
+dup 111 /o put
+dup 116 /t put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE23767DB5
+CA5E8A96258B222BA6F0BF16FB385E41896178C142AF0EDE0021CC541A592815
+6806F884A5A21B8BDB60D5104399D15425945B28787380BDB0A0E97B3F31E538
+22B3BA568CF4D2E8782CE2CA995C4B390BF3FA2CB24F0C997FF807EBD1F3EC70
+E88598F6E2DD7EF635C8A5FFA1B759690BCA0CA2C9A70904A09C6F69B49D2B45
+00FFB6A720D8C5CA2328AE3D560FF98867CA4C7B1B083076C064DB624356D6BD
+817A6E6D248D5F8BF8A65009450B05A52AD6B914E1ED07E57A342EBD12F3ABA3
+AA25ABA3155625A4FDC84E6CC0FCC3883AC8C5B20741BC88CB2AA1F975D53EF8
+482A7E30D81A69C39CF74748BC0EFB9001D09E02CF77CBE936940F910CC6F3F5
+EB066BC1A558677628CE4F9768A77E87DC30DDC4A7602D022ACB878CD3FA7AB0
+7DA6F265BBFFA28BE95B7677AF757542980013131E413A9628C1CCE4A41AA06D
+DC243E9EFA5C31939F170E74874CBAB5180F7076C4FACBF7D9CA1EEAFE21813B
+93A9C9F97F65E079FCBD296E2EFA7497CC80BB4463A06673B7FA10B77545EF14
+11C19E6484548B4018798FA454E2AACCC0FE55D68CA5AC8CDC44C08FAB16D8CE
+F40C692B95B3430DFBB53E29DFAB56454B562E42929C6C66558ED8E940C77294
+F90228F30CDB8C29BA94E65E78BB6ED1345EB70D1275A1CCBBCE147E5CF0EC9F
+D497CC19036024EB4E21FF1AF6598C649585429AEBC94C6C29FEE89ED2776548
+DB52C329CD416515119D4A7FE2495B596DD2F442E53A31CE76EB2FAF0F49F991
+8C2004D0428DB74894985C51CA77F403EAE794DC9C1F0842FC7C534BB7C1FB18
+D766CC24484DB10240C8C0AAD63F209147FA3D4E150D83FACC329E1A9CDF754C
+8888C3AB1FA0ED99598FC494927325F577B8608FCF51BB0EDDD6294B4007B556
+D9E5E42C3B870E0B7EB87CD85526FBEC3CB57AC63FE0549462322CE67B19A2B2
+689D5C61FA04052AE4D81A7E3410B68BD1D5A7104E9D72C77E2FDEBA93C33E43
+AF3468F7D1B4B67443DFB36F96D964B2278FC0574EFA8A94BCC015892A0BD5EA
+7D3F2E71DBB4897F9524AD90BE19111A94A00783FA8F0F3C5CD9DEAE953EE036
+25070A49FC58241945D7FF7BD9C764BB7DC2A55F513EE169DD4E5224D8D8A443
+91D7EF8C93B8278027E61EE13E8633628AE5E8969D71A10D722A7BA67624FEF8
+D246BEEFAD08CED13D70D05B2EEBD006E6129E5EE36F0F9BE7940BD4B0C1C12F
+A82EB5DE1EC8A0F11F6502EFDBC55D53CA97EF2F04AEFD166A521938D6947974
+93624E07F4D399CDEBFCFE0827080ED55071291D6A10C71023A83CD26D97E28E
+CD35DDA0522A9C7020A084F95E27866055D1FB207B163EB93EB75A1AA8EEBEF5
+21B65C25572DFB5E24D95E6B002D8A39E6184973ED6FFCC4220F3F263AF1475F
+622CBE66EBDB646B2BE815904B64020BD05D665429569CE0C84F2B80CEBE6FA2
+8B28A1F6A687A910EE8D4DD9388DD22CA9EC6E78F140C7EB0AC3356F7FC8EACC
+59A9A7316C8F1FD7C775C25F4A2FDA0DCF243074FD9A492F4147821D160F0271
+C2E50AA5D8F71F42ECAE719445039DED5047EDA09E64E787B8ED4D05A7268327
+718035EA4D693B1C3EF3D07B8CF29D0E450A0BDFEFA7DB2B54E38C7E46137668
+06977F201FC1411BF90969E5AEAA5D8D4E187F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 99 /c put
+dup 100 /d put
+dup 110 /n put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
+98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
+2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
+CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
+F78C2BE1B31F956D3CA92861BD92959BCF25C38FDDAD7B916119B6DE7DD173EA
+9B57C87FC5C75B59D8D2D574F0C696015A274E5CD1348432F79F52526539169D
+E428E9E0D129E4DF91C41341BCEB4F1C5A89CED3BB668F0C1086D8B4C3836CC9
+0238CD5D649C2EF010800EB296107DF711E6EB0975FC4CB4DE613E5D26E1CA6E
+EBECE093596D8B260E5B560CC623DBCC0FEE19DA182DD56537312D008742680C
+95666B55B77E0671E84EDF018CB22111A9BAEB3C9C5FCEB3A9B9AB75D1F47933
+F3E7BD8696937055EFD09A19F1F9A74324B5C209785B86978CA936015DB15556
+046D5689C5363421242B3A09D2AF4D67F6BF6F8700B6153DE00B3B3C96E1D49E
+A9AA93565B76E80ED882CFB30C6A7155A90E0EC0DB9B8D4302F6F63343073FF2
+82CFCBFD76AF01E5BFFF413BFFBD4DD6D4BCB037BC216517B3C65D1D3C45D45C
+BEE11B4A0989C5F199DD85EC1223F0B0E7A9AE7E255B2FD26FF29488BEB1369A
+21EAF4EE3505907C4B0827E09C2E93DBFA11D47DA1656E6E0ACACACC3BB068A0
+FAE7A54990B6BE3A4C2D4F7C3DFF243DEC4556BA26FED339571C6DF8F9B15208
+02D3D0A3502C38972DC9ED73BB7A9A5A1FFC953AFCF0F7FA72696541AA588214
+58E6CAB8C900ACDE902AE80246508AFA470E5437C9D1BEE98BF5FCD5449728EC
+B888518B86BDD57E7958418630FB3546564589757F3062C62B88DDF1C152E68F
+E013B8AFCAA4E5DAE69122751F6632349451A899DE97E026BE077DD1BDE74A8E
+2C0185593BFA63BCE87E967DD4B56B76E0FFF376AFC9F94174E7A3CA9C225DEF
+02F58BC7A5BD778730111809456EC35CFF83731931BC24CA364DBBBE60991B90
+DEE372C395E51CC485CA3297809752BE74646AACAA69BC78AC5E7EF261834AFE
+3B8383BE7C19A7597C27975C423C9D7C2DDEC6A7FC98D34F85456550550A0BA9
+E4F697E593A95AEE6C0A106257B6E45D4209A794C362CA6164440D00A9005D1F
+67BC97C9FC9D6828E32D2107CA731487F81E6600478F78DE5A69C1E752C7B165
+6DF2E6B9B5FCD557C7E5207155CFF51738FCD55A21E695019262D6360AD98CFD
+648127F81A95EE34B9706577538F4BAD1DAB57DD0A9C8A889BB3A8FF8506DB2A
+0D8A1D1323EA95EDB9C23A4AA697E42F28FBB20AFF4BAAC75650EA8AA345C09E
+1B214FEF4F57FB5AAC6049F2EDAA2EF7A33B8FFD2055328C989853EBC043C0E0
+E6C45E98B5CA55CAA947457B2F17669FB7DFCE3BBDFA10B33C24242E2397F0D8
+D995E93F52970509F9AAA284EE74ED463749098F4CDF128DE2A80DE3FF0EAB4C
+5B12F36B217376C97545ED198C7DC9DA8C296F9CB8154088E24D1E03C24CDD71
+4DF3380E4AEA711FA6B01814010FCF4D5F421F3585BD25F2ED4B4D348AFBC9C6
+4976C7C59455357CD34F6E673B5CD6DBACEC5604FE28E65728A74404CDA25ACC
+772CB629AFE3FCA9AF6AEB06C0ECEF7245F107E32EE7CFF406C7C4CDBD0BFB0B
+8E06343E5B0E879F694A5D9693B809E292FFE3EB2992D382B4C635D83B07C57E
+48117808B3D7A19B857E4B31F8B92D8287518C3D021CF7CEEBAAD73436B3DC7D
+1DE35B9E4DE2373514E3847EAB103B4BCADBAA4D0D0603135447AC1D5FB8DD20
+D512964FD1C7384CED89B71A62D14E3956ECC59240C472992EEDBA0F3E56B37D
+192DF1EC6D182811B0EA5F03BD675B4795626D192A3474E83E3D8F7734267EC7
+709F624F669FAD6DC40983DAC4BF6534381ABA25F827B425E7BC6B8B6E872298
+51575B8BACD7B963EF21803621AD0C0D3B882E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 52 /four put
+dup 63 /question put
+dup 71 /G put
+dup 194 /Acircumflex put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A147678B652072CAFB2A7
+A02BC29585F88AE4DB41F2F259FCFF1983F17697620FF3186E9E102D35317B24
+46839F2837B6C7A515511E397B19AC2C76DCDE7063E1FCD278C1CBB2D87B70D2
+F2BA26A6A7A832699F447002F1270A02278D1DED35F0876382D8135358CDF95A
+DC51A88BEE96B9ED20F15C2DFDE0F2DB3ADA354EB1847292D7D4C7EA3D9EEB7F
+EB036B62BF45112029324851C87DFF3FB170BB8998BC3841D2EA7A9EA0F9A153
+293D96F1BFE3670A89C526C6CC01815E8FF9F98A6402610A6AC1874D16CFD13B
+F5D405A3542722EE558CE3844B90833874DAB49A43E3C834EFFDB3113380E550
+8E5A1A33BA67D9E2AAF51838C90092E1D7FBC773CAC68DB244ADA43ED5E167D9
+8A5D1E7100458FCA162753A3CAE2A3E67A3D84768F48989AB14F8780D7FDDE79
+0F5D5177DA33F06EA425CE9E8383A968FC980B5A10CC16AD342287EEEA157FA8
+C8C3DB5D77D1FA3B27C112FB80D42D3E0FD0A8D070DF4D1EFB3E5EBA92183794
+2819637B2E855402B9EBEF09857C4A9A3108F5F3ECE15A5F401E939DCDDDC3AD
+035E73D7B1811EE4879427A89BA5B7ACF9BE53ECE2D1001A68FC7756D8BB480B
+919BE352DE36D26399BF30E11E5C648658B52DC0AC6FF571E4580B1C6EDCF1E2
+8E045BFFE600F004FFDA57AC4AE192B06D447725BF69C4A71F63B6B2C64A6935
+2C3DF3FF3755F41CE9C7FD1439B3F3D69411A1E61BD7A798B080369EAFB5D77F
+924C70F12A40CE44BC4A590C05459E912C45F4915D7FCF1132434255118B61D4
+F27E012B9FCAD911568CAACA851F9470B463B405CA1F51576B24AA1BC20E5C51
+766FDA0789630AF0F67FF047B36EF6D3F9CDB6C7118385C77117BCEBE631034C
+417FBCFB480B9F1DCAA78C3412E97DF4DE0DBB9FC569FE93490945A780831D9F
+51542583E108152E26EEE77EA2B859D85F979839C37AF761188710C4A4226599
+2962EFF72DA761F1639987A8BA49D16F8B28B083AF5C2D16557F1880638EFB55
+58AB5700E0BAF851B41AB394B4A4C8A8A51DFDCD2A3145AE67CB9A23F54ECF63
+B1E9B30662E93AF42F3E573969FAD4980C651CD7DB6A8E9523D8123E599D4E09
+EFEB81B902A9C4CFDB2550C72F6ED1E028F8E8C60BB3DB20F94AE7FEDA551F67
+C3425A7CEDFF4DCE91D9EB3AE72C413EA79499785F517B68D6AEC0CC6C579708
+3A30534C2803F4843ED368241B1B0A67BC009B33B0AA0156C2F8054F55D0E677
+BEE604AA0ECC2690F8257F7EE2BED13D7EDB0499A7975AEC0BA1DC2C382467FF
+441A4AC11F2C5A3748FF443A362BDBC3E11441E27FDE7192DCC8939C07DD4A59
+0BBACA83407BD4AD1B35B62C19D3A64019415E82C4462BAB320FEC91CA2531BC
+B4A5A6C4AECB089D19C733B50DC5DCD83011B1EB180DBC58456B96F711096746
+C7E0FD2418E74B8EACC68F255CF147296C66809DEC5A8B35A0C8970B7BC33F1C
+1BFE3D0AD7E683BF1DBE5A1D9E4EAFC7CA16B620257B9868BA75E298F11D369F
+485A57C8BFC81B1072E5299C335E344EBD9E63778B1B650FD1F7DD10C3BD11A2
+FCDF5F1052
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 70 /F put
+dup 84 /T put
+dup 101 /e put
+dup 108 /l put
+dup 109 /m put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+FEF3D8C63B283796A9AD847424B4E6508546C36223A3B17EB82A56592F27FC27
+F1D49D5FF4BBC0E16231807AF7E195AA7D0D01C7566243448B222D57B811EAE6
+DE9370F84E207DC9BEC731AD6040FD9B804FA14CA264B73136F9AF34390319F6
+A543D5D4D7FDDDF2F76651E557683614521110DEC1CCAC426117DDA7D6CF1B8B
+7879B21FDC78BAB3C944BCDCD6A65B67F3692F0A8D5E36FB783A63D4FBC9842E
+2CBC2720A7206F42A99AEC79FBBA92A27965AF40A71E05E4BA8D7FC58C828491
+84A8EBDB90B1167333987F7D42A76E9C5C5A842EF91A19C55CCA6ADEB88B59E2
+4FE4A96A8CFF51A1BEC1F1A6A1A5A5BFB54A1BE8C704194D72A79D33F099107F
+153E3FFC70BED6D04DB4820FDAC002428C6741B91D8206296D827D3171351E85
+39BB0DF1C2457E876D3A2E7E499D9D4104762FD19BA0526D38D2BF751EC56EB5
+C80EE2A7AAF2CA12D1EB4548266CE8C0D2F93158A6728EB552FA09202865142F
+E8D1300D637E64C338DCAE28398846CB3752FA92F87103C231C0D072E20D0E00
+0DBE4A0656BE7F021DB863F63DE612622FCCA2C5462EA92B205DD2FB6D547ED3
+D559010FF2C4113755D38F0B959DD34D98A0D0401AD3156A3B3D69983F4BD650
+23FF7C9FA7821E5C552F14CEBF2096F8F409DFF33F62508230EAE1281A7B8642
+1440EF343DA01E1383BA6D010A596CBDCF5A96FA3215DA350D852582BDB1EB69
+71F2EBCC0C538B9F4747E6F3641A2F1E372A88C843252610FF37D6B41BD23386
+0D026B627687D3EE4AB64AA66E7C7B7FE2E7C825292AEAC46871AE21A24A69E6
+9D555F2666B2CD064D13276C75C80040EDCF79CD994D8766885ADB6058167F6D
+FB6E00260EDCED9A6FC8E5B7B915712E24DDB79784EBB117119DE901E46B5871
+4A04BC47F6FEAC25FB33925C7F840C980ED1D5A3653DBA3BA2DD68053544B3B1
+9D36FF290B4BD1B807749BBF6077BA6B50B72B3734AF785C7F040B899DC59111
+021A44AB6F092E09D108E5EDBF76871F1F34D896B38DE9BF50A969181EC3CFB4
+A7FC38B82A25166E615B022477FD846685909845C2A0BB795A1EF43312E0CBD9
+E40D023DB8338249FBAB2F39E55A12438638012DEE9A2A2FC3F8652F5D69E413
+CD0F802AB0BE9AA9F06FD8CD5C0AF5D05994D228A347790A65437F3DDC10C3EC
+FCCF5492F4446263DDCB8ECBEC69075AD276587CC6EAB514C18F498B959A430B
+A239B29B35D0EA04BBBC0FE34F9AACCF6B2863F27CCAC57D0A052D7D268F2910
+4F5EBC3A867D95BF09C3E2729671F64AD12F5924004CD6639E5400B13D90D970
+A99952CABEB0149EFE0D8FF0E907E4F40BD9A26D9D7BD2D2D609D1FB14431C8B
+8214946559EEE88AFB0D560EB8AAA4C45344272503B223CCA311A3F00C7883FB
+123662C961203FB60475E1D62977590E57C042383554D754B373A95B22A77C42
+E72BFB8385EA6B6684AFEBA6CC9D6C3E4935237538ADD39017DAD06E9A4BF58F
+B17DA63A2E4B0C7BC00C51177E4EB12E90F28F2DD443B04E95A1B37EA0461ABA
+51F81F51F53C4BB8E027057CDB4CB3A20F97E337961901A50E8342557CF3DBC4
+E2651F9FCD1D6E23ABE7B243447977217A094B2FC05A97ED8AC112640773EE8B
+483FE021957C788A3F2F3811028F4C578909028D5668713113CC44AD368226F5
+DC6EA4311C481B1FBF343A8F59947F6CEFFEE0251D8C3234168EF07BA252543C
+D730791DB5E7CA28076CB1851465FEB59DF49730C58587DEAC38B6891C24A7B3
+FC5E1F1FAFC6F87CE7D6ED0BFC24CF51E956D040109F30F0451E6B5E13CA29B4
+7824DAE705738CF43CA67736981FE164F31E0B074334CEFC99A44B5E3434E0E5
+0C9AE75ED3413E26FDB44B261767D511BD8CEB80257010CF06943A41218E8A5F
+5B6904D1390659CB6CFAD1EA3EFDDF99C7359BA90A68093B5E4FD012A39F3EA3
+482FBB7C5A84CFBB47748AEFD0E71B59249F2A89C5422BAC0395125DBEC02C49
+9C8F17A3F626ED833C294C95411DF03F9B62F29E7482DE99281A695B59545E8D
+1677BEF0FDD17749DB29A3DB341C880C5C5AE602B4545902FDAF14089D48B5A2
+9BFC0556A5CAC39000B50FFB801287807249687F6A2E531CCF43738F635D9F50
+ED7C88F9DD8183AF6AFC32439F55D19E421C9E5E1971508715099C0676D0BA96
+1FBF48696F59BBB434D6A30100054B98202ACFB5431D8F7100E74203B6734FD1
+4BC4C409BB8E109EEC37027A12742F718CF7C5341DA20C3D4824576DEEFF0FCA
+5EDE1CC2A690FE6CA9437102A1D320CB19A238B7651CF0B03B335D912908F224
+1FD050E154F5835DAF8D7115525331CDD745E641CA35849456FA943D0980A8C2
+2A82DA0FE45C444FCE7589B95B2BF4B9AEE2D9BE1D483DF633E8C5AF8C4F4749
+CFE78B2B24F1D11913BD3F9DCB6A4835E2DAE6D07341EA583299E107D9ABD867
+D09E2FE66859B887B88A2DAB37D9EA2D9426B5500888CF40392308ADADEEC55A
+A45B332129E74AE68E4680E5E6FCEFE23D76737554A93C638E95D2D8160FEB84
+D1DF6EB8D61DDDDE020254AB857D02CA4C98335F84B3DF2945AFB8ED77D0BB2F
+D5CF295935A63B5A07F4119E0DD2D8C75481E02F2D285666882F75D6B00B6A1B
+1F4EC9BB53CC924C974EB7CEE384BFD2727EAFB13C0F956213B85CB79863F320
+747044E43AEEA0DA5ADE2C6AE66C266BC09C9B67C36BA12ACEEAE2228238A366
+9DF4E69E952113D23C48ACD7ED49572767C9085B141E06BE0A81E63602BF46D7
+3F2AA82E9743E9A957F5A785EB0A1869075ACAD8E989A944A53B09484DCF572B
+35E4D845572B4345CA9FCC80ECC4CE0022EB717CD10717BC2D40FE9BC9831894
+5C5383A9397C385349289C4C5C2F97C95FBAF060834E767DE04E9F5AE4D3331B
+4D1B574011AFCF37F39826BBB399C35FC3EDE83F4725570C2F969E5526C19428
+F6ECF9AC5A3FE052B65E6EF9DEF764C4B0095E5BDE8B2EA20193A7632374EC33
+EDC6A023A13B22D62CAD3D245CBEDBFC2061612601FCE90ABA341CE6E9604D31
+B79AA29507C641D88EBC66260566BE9024EA5676C3CFDB715AA39ED54124CD71
+695DD69827F826BB316E6132E2B886064D91DEE98CCCD109BB7F0D5F988D3536
+5037267F74D681E42F75C4B5E80C2FD01FC27A931DB2D1561C36456649980C43
+D12CA333B7CDC8AFE3DDFB3E5B430DB458B16D24E7345B716CFFE45701A4B3AC
+E4E59BDB551965795F738101BD68ABBBA52E9D4528C0C176DE949B23EE3EFFAF
+67949E776453EBD1BEB3BD50BC3ADC21155713DA48D2369B7CD9444059E56469
+2E29D81C013256FC9350A21C9EC444446DF0681BDE4AC72978D02BB312B39F3D
+AD6C88C0A0FF2DF6B41336EB3D6D98A99FE111C59C71608EE83A9D9B8F6FB370
+10E98758F3BFD1EF8F11168E1C2E362561D22DD17416CA115E00DD7B8C6F7E0B
+0BD0C6B4FCD6AD975EAD4014A7A5761815EDDF2471C5043C45F74E49293962
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (debussy.dvi)
+@start /Fa 139[52 4[67 75 8[61 24[81 76[{}5 119.552 /CMBX12
+rf /Fb 140[34 35 2[42 47 9[42 38 52[25 46[{}7 83.022
+/CMTI10 rf /Fc 199[56 5[56 56 49[{}3 99.6264 /CMBX12
+rf /Fd 61[66 122[106 7[0 10[40 44[0 6[0{}6 132.835 /TeXMUSIX16-Regular
+rf /Fe 138[46 32 33 33 1[46 2[69 23 6[37 16[60 13[54
+70[{}10 83.022 /CMR10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -57 297 4044 4 v -57 330 V -57
+363 V -57 396 V -57 430 V -57 -35 V -57 -2 V -57 31 V
+-57 64 V -57 98 V -57 430 4 467 v -425 390 a Fe(T)-7
+b(rump)r(et)-378 58 y(Flutes)-57 395 y Fd(G)-57 63 y(G)53
+295 y(4)86 345 y(4)119 279 y(4)153 328 y(4)186 378 y(4)219
+312 y(4)53 -37 y(4)86 13 y(4)119 -54 y(4)153 -4 y(4)186
+46 y(4)219 -20 y(4)276 360 y Fc(12)304 427 y(8)276 28
+y(12)304 95 y(8)529 488 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-7.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 529 488 a 506 279 a Fb(c)l(on)30
+b(sor)l(d.)p 496 463 60 4 v 544 461 4 117 v 506 461 a
+Fd(\007)506 445 y(\000)257 -103 y Fa(Len)l(to)506 96
+y Fd(?)737 53 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (5.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
+1 N /S1dash 0 N /S1adj 0 N end
+ 737 53 a 714 187 4 108 v 715 79 a Fd(\007)862
+96 y
+ slur@Dict begin (2.0pt) GD S1hgt (0.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 862 96 a 862 96 a
+ end
+ 862 96 a 885 117 a
+ slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(-2.6pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
+ 885 117 a 715
+187 a Fd(\302)779 190 y(\302)p 842 193 4 98 v 843 96
+a(\007)725 41 y
+ slur@Dict begin /S1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
+(6.6pt) GD N /T2dir 1 N /T2dash 0 N /T2adj 0 N end
+ 725 41 a 712 63 4 117 v 674 63 a Fd(\007)p
+1048 445 V 1010 445 a(\007\000)1003 96 y
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 1003 96 a 1010
+193 4 98 v 8 w Fd(\007)1011 79 y(\000)1015 96 y
+ slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
+M 0.14 30 T2dash T2adj 40 DS end
+ 1015
+96 a 1048 63 4 117 v 1010 63 a Fd(\007)1010 46 y(\000)p
+1338 411 V 1300 411 a(\007\000)1824 445 y
+ slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1824 445 a
+1824 445 a
+ end
+ 1824 445 a 1842 445 4 117 v -20 w Fd(\007\000)1300
+96 y(?)1531 3 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1531 3 a 1508 137 4 108 v 1509 29 a Fd(\007)1656
+46 y
+ slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1656 46 a 1656 46 a
+ end
+ 1656 46 a 1509 137 a Fd(\302)1573
+140 y(\302)p 1636 143 4 98 v 1637 46 a(\007)1804 96 y(?)2035
+36 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (7.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 2035 36 a 2012 171 4 108 v 2013 63 a Fd(\007)2160
+79 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2160 79 a 2160 79 a
+ end
+ 2160 79 a 2013 171 a Fd(\302)2077
+174 y(\302)p 2140 177 4 98 v 2141 79 a(\007)p 1506 13
+4 110 v 1468 13 a(\007)p 2010 46 4 117 v 1972 46 a(\007)p
+2308 430 4 467 v 2418 488 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-7.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 2418 488 a 2385 463 60 4
+v 2433 461 4 117 v 2395 461 a Fd(\007)2395 445 y(\000)2395
+96 y(?)2626 53 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (5.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
+1 N /S1dash 0 N /S1adj 0 N end
+ 2626 53 a 2603 187 4 108 v 2604 79 a
+Fd(\007)2751 96 y
+ slur@Dict begin (2.0pt) GD S1hgt (0.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2751 96 a 2751 96 a
+ end
+ 2751 96 a 2774
+117 a
+ slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(-2.6pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
+ 2774 117 a 2604 187 a Fd(\302)2668 190 y(\302)p
+2731 193 4 98 v 2732 96 a(\007)2614 41 y
+ slur@Dict begin /S1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
+(6.6pt) GD N /T2dir 1 N /T2dash 0 N /T2adj 0 N end
+ 2614 41 a 2601
+63 4 117 v 2563 63 a Fd(\007)p 2937 445 V 2899 445 a(\007\000)2892
+96 y
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 2892 96 a 2899 193 4 98 v 8 w Fd(\007)2900 79 y(\000)2904
+96 y
+ slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
+M 0.14 30 T2dash T2adj 40 DS end
+ 2904 96 a 2937 63 4 117 v 2899 63 a Fd(\007)2899
+46 y(\000)p 3227 411 V 3189 411 a(\007\000)3189 96 y(?)3420
+3 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (11.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
+1 N /S1dash 0 N /S1adj 0 N end
+ 3420 3 a 3397 137 4 108 v 3398 29 a Fd(\007)3545
+46 y
+ slur@Dict begin (2.0pt) GD S1hgt (6.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3545 46 a 3545 46 a
+ end
+ 3545 46 a 3568 68 a
+ slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(3.4pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
+ 3568 68
+a 3398 137 a Fd(\302)3462 140 y(\302)p 3525 143 4 98
+v 3526 46 a(\007)3408 -9 y
+ slur@Dict begin /S1alt (60.0pt) GDAR N CP /T2y1 ED /T2x1 ED /T2hgt
+(12.6pt) GD N /T2dir 1 N /T2dash 0 N /T2adj 0 N end
+ 3408 -9 a 3395 13 4 110 v
+3357 13 a Fd(\007)3713 378 y
+ slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3713 378 a 3713 378 a
+ end
+ 3713
+378 a 3731 378 4 117 v -20 w Fd(\007\000)3686 96 y
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 3686
+96 a 3693 156 4 110 v 3694 46 a Fd(\007\000)3698 96 y
+ slur@Dict begin (2.0pt) GD T2hgt DP T2x1 T2y1 CP P T2y1 0.7 T2dir
+M 0.14 30 T2dash T2adj 40 DS end
+
+3698 96 a 3731 13 4 110 v 3693 13 a Fd(\007\000)p 3983
+430 4 467 v 3987 594 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3987 594 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolca.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolca.eps
index ac52a2531c9..d68c5f12818 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolca.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolca.eps
@@ -1,734 +1,734 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: diabolca.dvi
-%%CreationDate: Wed Mar 12 17:56:50 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 34 665 553 800
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
-%%+ TeXXSLU16-Regular TeXXSLZ20-Regular TeXXSLD16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE diabolca
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.03.12:1756
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: TeXXSLD16-Regular
-%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
-%%CreationDate: 01-07-22 at 22.48
-%%VMusage: 1024 40444
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 199 801 0
-%%EndComments
-FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLD16-Regular) readonly def
- /FamilyName (TeXXSLD16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -199.203 def
- /UnderlineThickness 99.6016 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 199 def
- /descent 801 def
-end readonly def
-/FontName /TeXXSLD16-Regular def
-/Encoding 256 array
-dup 34 /quotedbl put
-dup 154 /Zcaron put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -1058 2126 349}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
-a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
-f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
-9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
-bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
-0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
-22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
-072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
-999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
-dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
-8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
-20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
-489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
-5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
-5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
-b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8fd3
-0795db3bf32e261166ee98ba6858a5030cf7779b93d4fae7c165b13f718fd105
-61a78dc01882a61bfa6babab7ed7cbadc066c65ecc52f860bd8e19c58588d7fb
-cc22565545ca84e2c6799c88e160ca8e44840a90b411a902776e5e3f421f6511
-59a81010cddf7ccf93e5a3a5129003337e154b67a2abf377a2bdfc34d9681ff0
-181501606ad79c521133ab8cb5b891f3b8eff2ae28a7ff307497be18e97a0e9b
-4578eb04b507c253902b8142912e8833bd70712bc2b5a2cb5705c3e1e1394696
-9ca5eeb330352fc53d1aef8606b9455fbeaa7ccc805628d71fc3cad4012dbd8a
-5016a02e61acd97653ed8a6132c19f388fd55549424b198ee883e8936ce9e2b4
-18c8cc1b2bdc88f35057f8124c8d79e030326e873eda653d83225b515ca7eaf5
-73b644df89d680bc6eacc42a30cbe7b8c6ffa0c8edbcf4b4b4002dc1e28b48d9
-2415dba66eed787e3b6b7b21be7de8671bcc90d15fecb88670a6aa487161c554
-9d1a6286efee2a2b2dc639a83a261d
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLZ20-Regular
-%!PS-AdobeFont-1.0: TeXXSLZ20-Regular 001.000
-%%CreationDate: 01-07-22 at 23.23
-%%VMusage: 1024 29584
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 505 495 0
-%%EndComments
-FontDirectory/TeXXSLZ20-Regular known{/TeXXSLZ20-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLZ20-Regular) readonly def
- /FamilyName (TeXXSLZ20) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -300.3 def
- /UnderlineThickness 150.15 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 505 def
- /descent 495 def
-end readonly def
-/FontName /TeXXSLZ20-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 63 /question put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-5505 -461 5505 467}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471f88a25ceaecc849245d
-e7411b2be5074e786cedb23b434aba7fff7b91b3179b9ed91efeb6f7c9fd0a86
-6403e7f53dadd8680bd7fab76fbe740b9c78615ecdd9fd59c2daba3d8dfbf224
-3c1019a90ae579a3e0362ca212d43ff7d31dafe13c3177321be27151a2ea836b
-c759fde5156218da85058c5edc64b60b9ac24e08bd9e276c01234f17c4389900
-3667e0f68d3a57f2e3e9d62fe586ed94becd00441f6582bab1e9b9b5058580d7
-4edea905015f8e2befb05b1ff4b18df15df7e5109a5f8d00d4b1d1c4651cf673
-1ad99414fb473457c62d036a3ca5f550f38089b25e76ab50991e802ae54b602e
-2b185e66d5628f9703f4af3b229257cc7dc20beca89228e417b897d5d82c89c1
-84f2dc9f7066b862b9f111e663e7530a6302213d187b36f28926a767bb437092
-dd7cbd8c720779a27007a0f544dfe5a5d113240353279eea6062f0dadd1844be
-36e421823ceeb02560d7c520ee3600bc5a557d0e02532671082d805db8a97697
-501b04d60fc41825b507a076c9296f3529f54d118078723180b126ce65d701f0
-95f68d049c1851571eea61a80ca89d542a58b0cd5dd12f7dd50df4c0e5a3aec0
-e149d403bad2c2028f869da8ccf48706cc9b79601bf011c052cf9919c19e9781
-1b9ab430d1e4cacb38e8336eb31c79df47cd54b0dfff083ce40ae33498990ce9
-9458fa7a2ddcbbd3fb1f23f79971e4fd22a996913ceb8450b0f387c325f12e18
-5b5110f1789586cc113d0d31c8f541aeb9f494701306f5a216269ca7db4993a1
-dc75e6262a27c401e8b9be9cbadc033ba8ff5f80f2713ed6d7c0ce6457659f58
-c68b44dd9a7808c56c99d2bf9e3f33e972e780774d17f0e7c9295126d907a09f
-1b1399831623de23e99bc5c0693e4d21729438bc574efaff376796515ce73275
-3c79e728d9b438dc98102c0959f1517dc4a26ae2ce5c357ccb6437c18a6fe633
-c1eecbb6fb19ec147765bbb0a848be09abd73abed0dcd6451b096d3a346f0232
-1d286dfcde0ae619ca11fa36c58852aeae26e719dd2497983edb0a8f3901be05
-7c215e171455787321759ff98bbd4d56ec13b1beed8941ef71dc21a591934066
-3f4854
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXXSLU16-Regular
-%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
-%%CreationDate: 01-07-22 at 23.16
-%%VMusage: 1024 39962
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 998 2 0
-%%EndComments
-FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXXSLU16-Regular) readonly def
- /FamilyName (TeXXSLU16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -200 def
- /UnderlineThickness 100 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 998 def
- /descent 2 def
-end readonly def
-/FontName /TeXXSLU16-Regular def
-/Encoding 256 array
-dup 2 /circumflex put
-dup 18 /quotedblbase put
-dup 130 /Cacute put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-2126 -345 2126 1062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
-74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
-e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
-6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
-881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
-90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
-181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
-e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
-65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
-ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
-bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
-efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
-2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
-2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
-bacda202d38d8ac2fe8dcc03a8f656c0450e7dfea2032cddd1477384a2314436
-91d266aaca269a8afe0c872722f3dfce5d81cab29cf9246740a91d4119b4f268
-a519d56fc0f93166a16dc2360aafcc3b06c4a5a4325264d1455dccfe877634f8
-eba45ed44ed2535fd88d3671f43e4b50ee6013dd8f1c8a1b8882faebfb6d0e91
-ec6e0b171254ce2bc34dd57e71ac441469f146b7c75c3e303c9faae7a8d4b829
-f1795576429a84694923275556a0cddca6f80a4711115904f189c06524e9ca23
-a5a8fd4fd6d8ed82c5bfc0ea8566123cef6fdf1a0f0353f5451717dcc0068c3b
-864477a41d1fe896649ea48aad762857b89f7542973735d7f0ce48b923012e45
-d9f019d429bdf7f5469833caf3b44a51cac03bd236f05fc05902f74226ad4eb0
-64f380066557bd6c1f3f5973d3d2e695fa8ff01edf2c30fad185445bd2be2ff8
-1188b8d8b196b82badfb610968b6425a76d2bd110ce3397081763b1ac918f29e
-c4f5ee9516333f1f27affe2ecffcae955fc377bc66b09cd730dea196bfca3bc0
-4be5256981b3c5928bb2be2f2da61ea99cec53ce1de398efed22cf298b73cc51
-6a0cb558acac89e9d2e2485f95bb91f4eafa09498c9f60ba801adb862c8c4189
-55c6c6fa914f52
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 24 /perthousand put
-dup 25 /dotlessi put
-dup 27 /ff put
-dup 30 /ffi put
-dup 40 /parenleft put
-dup 45 /hyphen put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 90 /Z put
-dup 92 /backslash put
-dup 130 /Cacute put
-dup 142 /Ohungarumlaut put
-dup 195 /Atilde put
-dup 218 /Uacute put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a2e19287bd0298f08639500ad4ba19ba494272cb
-e991e735252896220b8771b7ba9939d0c9c6543d0e420eb5f9719e9fb5aaa9eb
-9f2763a18d956e059681459dbb7a101d1a141cc249942717cc370f2dbd0f4273
-390d853d8277ab67d5610ee04468a6519f0f3fe165323b022cd00139e0b61e15
-40ee9dbdeec4530e9e7f75a31f3d9fc11ea2e75c612c10638263f21ab3090483
-8fb662dc90465efa4fd699ac15e54ba78e7469e2f866eae1bec619f6b1fb5f09
-73e893a71db25dc8a3606508ccf9f7093b665df6c8f33ed8a1610c6078faed32
-75aea6e0c00e25069ad2f40623ff7ea656d8212ff6f92b158d66cacd30292bce
-a1c2addce4efc789dc62ad4427ef766bf2230196a61e2283a8c65f5637b8c3ec
-d694aced84c363c2a016bc021ce9455a6c542a9a7f0824a292d4d501ef1939f8
-359510597c3acde51e3319ee85b827388718cb484c701df6cd27ce334f1daa01
-41f7637671839d8e3c4d05b107d39c743f96df79c08b2c0a5873fdadbbe53f94
-9851f678f7a6843a8d6e3d5ab6f32d0a6aa0ed149067078b0972d162eadb746b
-0fb86f6f6967470985ac22d7cc10b42ff3c0976a43f468d9fc200e3aee2ca99e
-1d14391c657064937d13781efdb3a85e6121bf3fbf0f6073ef1d3b59f984c397
-1c6398423564dda67c2c828ca8d2f0fc75aafb9bbec8b86a20d71455fa3fdcc2
-8d6932af83963cf06659d8f15d40869cc1f972ef6b367f534b3d33fc29ebece9
-7d8c21a5dc13d31c7a31ed3304ed258d0ac875c9d895b358b4d7fdb268a218a1
-cb03fcb9457d75940cc75b8db6af9c947a0b44f8ccb24759ddb45c4959328993
-bde91bafdcf1953d2e9b58bb4f4e0db64d700baea5ae63e88aeba3347a85eb3e
-5a4be06fe3d66039624233f9bc1455faaa45b0969f47e54cda47c4b842618fb0
-01e1c3b658938164a6d5fc8b6c4cacd47a91fb599515f8fe8778738baf1305e4
-70b4c503a66ee27366b8fea98d6b5b5891c5997fb486b08a2d1bd84e7a11bf4f
-c75809621f51981123cd3028827ba98958886e3dc3b125fb0d712cb968598428
-ff26a1ab03592f9372648adfef82df836076cba34520055b65d19bc3e114b398
-2fd0ef966c7e2c3147c147cecda8686fe507b09511136988a68bab155757a267
-0baf247792ad4d47212057f92d3f3f4eac322adf31fa7b2fe2611ddf6b305e0f
-d15fa3687a756dccff32a7372348a2a56f37b1b2f659d6bb9845abe8abc57379
-7eda1e801c7e61023d45d8abea3d4fb6293a5f7e416de31c7b00df5916dd2d9c
-027fdc0a9db60b7dd7b232da40accf791f53a511ce4943838ff9f94f899033ed
-08e59354c1fcc2477c4e2c9e5c58cf0c6de70fb8f3d2aaff18ab849c809c0013
-1e817eb5cd9d2e119885646091dab9f92cb29a5fc5e979c2bddbbb7f589ce322
-5f7bcc4a98d6b4f63062e8b2a99ee2b06d772d802c3d2ab46c722b426fd60b32
-c30df6d1a6337a8f1092b5f16b43b26000d8b6565bc38ece373cd75448a30f0f
-bf0972cf0cd1e61b5b11d5b16c64d2274f4c4699f247cc59862aaa7e914e41e0
-275bed52a5d282f8537b3bff4e4ddb7f4655e073663a770aae960873d8e63371
-1b79bded08158da6d7f5a622488188426429ac774731fc4764c78d31bf023732
-f62966f7f07e2f6bd67fe40263d1ef1b2aac761c866044e309c58af1f368cb2d
-2ab82b08429a680273116a2f50bd2bb61c981211e47eeefc29117c5b120aa071
-5f9309ac50454f2082bf3cbf0456d0194ff62e583df24dd4d0b734b63de1a8d8
-97c0e6b282e92eb5dcdf667a9e828c618ba95568b7e7d6ff0f9662594c3b7f19
-8b53ba896549d3de09054f4c807b4d368d5c268312ef0db5cddf90fac946b025
-da4fbe58ca2cd7eb7d62bd51a25f6c1eeda71f88fff4bf0447ff90bead2a615a
-2688e581401718fc0c90d8700a8ec34e1a4e7ec78bf1553bbeab550ed2f6d2b1
-eacfb78d9e1bc8d3c7cddbce4b4fac4783efc9634ba7b44f9f0dd6693717e8b6
-43a1f572fd5b15dfc64c1c624c7cd030cc35cc4ace50eb378b6fb415f3e77302
-debc8d1decf592a49e5e18007da63f4b4ab3c8501016bb9f449cf98155471242
-2d34d7d84ee06b78ce53b965e360befbb477088f90218397eae42c5349e0083b
-94f9289548fc05d1dad694322ede0ebc636c44d782d983bac28a98468ae1c5ac
-9cde2798276d80b5c168e768dbdbc70621b467e020d8478708448ca643b7d5f8
-95cbdad05e8168beaa9e2ea353b76ffe4c6f7c951d873a7c70d62635f4af1653
-664092ec73b86f31a954d5f2e4c300bd67f141e58d8f8ad57cae048f22dc34d7
-083bf4a4270f9d24f7904a7ce384ca101e834dad487a51db0153d62384502c8b
-6ec8ac0434befe54b532a07a043c41a2dab0234b7203f596615cbf3f6b4e1788
-381640a373c140ca6a99595f740677deb1a1e13b604a4b423e3889dacd3e1bf0
-3bd0ef0934631b5064f6bc404a27e481a71127f367b7c1a30a5721fce9dd888f
-cf0acdc29c69974ec4f504b133e6e8c43754665c9cb4b27c3fb4d9b0ba8ce2bf
-456e978bf969105c5c6729b062fdbe137d0d6b42ef4f90d9683d9a6432f6434d
-3a653a1df979a7d9f1e8896237d5407718904a4220b990c7912c21926c939f1e
-4dae28ff9949174f2d7d92b59732c1d823e1a4871d9535108b3cc3bd672685d2
-8986eb277645d198e4767a4abb79c9034fa31e364d4aaa6920d4e46bc0b09fb2
-082a983123223f15f8140f215a3ea2a11cd1279cd97a2435958802c9c08ca3b6
-99d154ad02cb80c3eb987c8aacf294e774439a8afbcecc09a804bcf968dd5a6f
-b8be23ec6d7abf7f416ada4e57191da2031dfd5fdaf4cd66911581dca8d5da2c
-a182a8960a41716da16257dd82dced331017197b47ac0ac8d4c3c7ea1d9b7100
-8e7686f004819c1c290453ae02f7e3e20ad5eb014dc28ea13c7df04411c5635e
-be6422beb49cbe6091096f5c09e7db68a4c2a53d67c71de969360a2796dfb35c
-07996bd3673ffad5ef6dac893d4b348a9875f5673c1601488f2ce4ec603dd0ef
-feedc50a40d3ec51ea277f0ab72db3b3b7bd328bb7cd809bb627af108a2f210c
-c3d800e0841ae0737b835fd6040abc3c869599f8cad643de3fe1ca39e733735b
-cce9b7577f41786e54c579acfe4219fad309d636b0b43410e59e6c7c4acb5235
-5d161ded06216c5ebdcd25c5cd7eb0063f25ab162e1fce5ca9d83c98cafb3520
-14deb99c356ed3754aaa4ea33bfe12a3bb2647ae31f3806a99c314b37503581e
-042961300e54c04f5e5a0cea1c5a810de73fb6649ca8e160dccc424f578cb8ef
-7c94a8332ac84b1b61d8130fd627b25b4d24dfa2f74c89ea4d53f39958047921
-453e0d1da48382680f90f58dd1cd576701d0a0c93b73567ce0bc73f4eac6a7b6
-6824c2c16307bc08c828f4fd15066f2462d5b909f1213818d47123efc4fa3de1
-53a7be4bb09356567706cb28468a9aeaf8c5016b7b18ac34b2ac1acc3a520fa0
-4363a23a6cb3427fc2f009d4d31a0cbb84096f5eba69596ae998d607d932d29a
-2b62bf68ef83c618d0f42c6c37c68304d619f0a7c8a1eef9e0487736b1f51ba1
-82728c29cf85e4f49286c8ae828de91c80f453fe60fac91c8fb81455d61791b6
-1bcdf4ea5b249eb843582bab243f4bf9ee18e23b8fbd4c46465f11ab683dd253
-818974c6305bccfd126a1ee58713aab14d87f48f1be32a869faed29b68ba741e
-1580e44b1d96a6838644eae7d957eba54c8b18186c37dfbd6fa6d7732e1d7797
-d530f7f724a305c4dbfb13752a26d2412a3844a8ec15d36a137744678a5c0223
-cb98a17459aba850dd45e80a87343ab94395c2d764b3a4f9c3e6c0a2e0386829
-75608ce06660c098efca8c4f86e186b28c411dfd584b2f77e8200180dc0baf18
-d582604c920ed4a886842f48
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIXSPX-Regular) readonly def
- /FamilyName (TeXMUSIXSPX) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -300.3 def
- /UnderlineThickness 150.15 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 502 def
- /descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-dup 92 /backslash put
-dup 156 /IJ put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a8029f0e71748d5def5
-e137746bf8ef0e89c67c47ba75fc29a5a69e9a3248bb49919ecc79fdf5bddc0e
-e7e7bea878b6155cd00fec35e30536436e70f36ffc1a68d72759f15135973550
-0321f5ac2460d16083d3fae7e66abe637317fd2266729799619a9630ae656dcb
-7bd469d535dd5babd7118c863ea6dbc8d38036164bf26710b373c41970528bd2
-595df813bf1368c79c441882ea3ca5c00ea0684210a760dacfa9dfa34934de03
-8ff58ec5dad266829a690c8ad001818f546d7450279bca4d2a10a1cc591a7d96
-3269323963a2cdbfb4f987900555931a15229864557745b27d71c3fd75936b90
-a655327bd46a9207289bd811f196c845154e2a03010bf9c2034d56a81d146df2
-6ea84da6e4f1ceb3112081e053be3c2f16e87635070686bac94a1061013cbad5
-c38c47c63c126e68343fb42afb1682ea8409e9fa0ff1f834395b17df6719be95
-4af8ba83374833e2c4e3ec1770bce924b11c3dc8938ad548950890f8398ba941
-bfb2efe487b9abbfc82c68a2d816a3dcd667b861c33fb7710c2374673c84c8fa
-e731ce649357372c266acd9e5a043010ecb9826ee92b6c6df0047549e691e1a0
-115e3e8e908872e50beec2b2efebbaaa5bd5f443e8852e22ccc1d617892fd372
-37e7d65725bfac6e879a75a9cf122b6d4e11abfaf2918dca7ccf267333397711
-fea8532c4464452346180da7c9cd7eb0236aa5acdefa61e912c5287f02fab4c9
-fd4404d2d9db67cef020a5df8488d56addaf6ba03c354c0fa4f9a1c15060d05a
-31d3542a79e7d6ac7c390c8418d2d628b4afd052e3c41936f7c13f04b0736008
-eec3547de93f5093d10d1bf9b17dc958e74d1d41e13bd836795d9a12022219cd
-2ba910a4c17f209c814584c591aec029b927368d4caf5805bc294bd64f607315
-6ff78bf462ee75be5f41e57835e3cec5f921d4ab63f7b96afcd32e4748ffcf9c
-223b4ba7c33fdc2ab7b874e06983f213ea66a13e381da90ff6d7d8b96d356784
-ac1ccd9b190755b98fe08053791ef8dac0ce5b90bc042ba22b9f1465b5acb0cd
-18c03d3d6bb4e2553479425c324942dca5dc1268d7d93c0bcb5f7cecf8db21a9
-8cf897d025e88526f053b24ca17680e0be4fb5d40266b8301aeff432abf3634c
-8a4e6a1116851d5a59c79859e59309ba881be5b90a95055038c3f35283699562
-5b513f8fffcdd2fd8e326da08281af3077c41a9fc9da6fa19c6c6d2003720cda
-c5e8a2bdb243973666d4f6b2e2af30247dcd3cb0a2cd723c446587d6a30eccbc
-b6d8af56677dcbc5317047573342ec8e03e5d2e44fd91003b8e6bae84b8484b3
-54ed9f97198b30af715027f524f497c990c39f939c555088e74de991f5999b8c
-23fcbe75565f1356c8ad6eae57677e21aa97fed7c5e8d3ff9402b8ec7c6d7757
-29135df68fcfc697ffc525daa43555f7bd8ac8f6fae4cdb3f8fd602194dcd6a4
-855cd8fed4411f52668080b85490e37d90246af9e054298fbcf36acc42e10ae5
-51c1a51852a455517776c7879ce6ae0ba4380a1368ab0aa2576a43a0a26f6e64
-5593cd88a6c33295183323be90599386360d41e1f7818826a0a54ad77846a123
-6f46fc8d11
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/diabolca.dvi) @start /Fa 101[0
-119[0 34[{}2 66.4176 /TeXXSLD16-Regular rf /Fb 192[0
-55[0 7[{}2 83.022 /TeXXSLZ20-Regular rf /Fc 125[0 111[0
-15[0 2[{}3 66.4176 /TeXXSLU16-Regular rf
-%DVIPSBitmapFont: Fd cmbx12 14.4 6
-/Fd 6 115 df<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA2
-01037F1480A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F0
-80491303000181491301A2000381D8FFFE013F13FCA32E297EA833>65
-D<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2B6
-FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB3F
-E01A1B7E9A1F>101 D<9038FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB
-3E10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238
-A2123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB
-01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>103
-D<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108 D<EB3FE03801FFFC3803F07E390FC0
-1F80391F800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F
-800FC0390FC01F803907F07F003801FFFC38003FE01D1B7E9A22>111
-D<38FFC1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>
-114 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmbxti10 10 1
-/Fe 1 113 df<380783E0380CCC303818F838EBF03CEA31E0143E1201A23803C07CA314
-78380780F814F0EB81E014C0380FC380EB3E0090C7FCA2121EA4B47EA2171A7F9119>
-112 D E
-%EndDVIPSBitmapFont
-/Ff 37[33 22[66 52[33 11[33 37[15 1[15 16[53 1[53 7[0
-0 7[20 1[20 1[20 4[0 4[0 9[0 2[0 1[0 0 15[0 0 6[0{}22
-66.4176 /TeXMUSIX16-Regular rf
-%DVIPSBitmapFont: Fg cmr10 10 8
-/Fg 8 112 df<EB3F80EBE0E03803803848487E000E7F487F003C148000381303007814
-C0A20070130100F014E0A8007014C000781303A200381480003C1307001C14006C130E6C
-5B6C6C5A3800E0E0EB3F801B1E7E9C20>79 D<B51280380F00E01478143C141C141EA514
-1C143C147814E0EBFF8090C7FCACEAFFF0171C7E9B1C>I<EA1FC0EA3070EA78387F1230
-1200A2EA01FCEA0F1C12381270126000E01340A3EA603C38304E80381F870012127E9115
->97 D<12FC121CAA137CEA1D87381E0180381C00C014E014601470A6146014E014C0381E
-018038190700EA10FC141D7F9C17>I<EA07E0EA0C30EA1818EA300CEA700EEA600612E0
-EAFFFEEAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>101
-D<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>105
-D<EAFC7CEA1C87EA1D03001E1380121CAD38FF9FF014127F9117>110
-D<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A600601380EA700300301300EA
-1806EA0E1CEA03F012127F9115>I E
-%EndDVIPSBitmapFont
-/Fh 99[0 63[0 92[{}2 83.022 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 34 272 a Fh(\234)p 34 323 1960 2 v 34 339 V 34
-356 V 34 373 V 34 389 V 34 157 V 34 173 V 34 190 V 34
-207 V 34 223 V 34 -9 V 34 7 V 34 24 V 34 40 V 34 57 V
-34 389 2 400 v -154 286 a Fg(Piano)-150 37 y(Ob)q(o)q(e)34
-339 y Ff(I)34 206 y(G)34 40 y(G)123 388 y(?)173 422 y
-Fe(p)162 372 y Ff(2)p 201 372 2 59 v(\010)123 164 y(\036)108
-214 y(\\)p 142 214 2 46 v(\007)p 201 222 2 52 v 182 222
-a(\007)240 164 y(\036)143 168 y(\303)194 171 y(\303)p
-259 231 2 57 v 240 231 a(\007)p 318 197 2 59 v 299 197
-a(\007)-1 -77 y Fd(Allegro)106 114 y Fe(p)p 123 81 V
-123 23 a Ff(\007)123 15 y(\000)156 b(4)p 299 69 2 54
-v(\007)338 1 y Fc(\002)338 6 y Ff(4)299 69 y(\202)326
-68 y(\202)p 357 66 2 60 v 357 6 a(\007)p 416 389 2 400
-v 447 397 2 59 v 447 339 a(\007)p 564 409 2 54 v 564
-355 a(\007)604 341 y Fc(\022)603 339 y Ff(4)564 409 y(\216)591
-405 y(\216)p 623 400 2 62 v 623 339 a(\007)447 164 y(\036)432
-206 y(\\)p 466 206 2 46 v(\007)486 239 y(4)466 160 y(\332)492
-167 y(\332)p 501 240 30 2 v 525 239 2 65 v 506 239 a(\007)564
-222 y(>)432 40 y(\\)p 466 40 2 59 v(\007)447 31 y(\000)545
-54 y Fb(?)623 31 y Ff(\031)p 642 31 2 54 v 19 w(\()-19
-b(\007)p 682 389 2 400 v 698 388 a(\\)p 712 437 2 49
-v -1 w(\010)712 372 y(>)p 712 247 2 59 v -183 x(\010)p
-712 56 V -191 x(\007\000)795 363 y(\031)775 355 y(4)p
-814 355 2 54 v(\007)814 301 y(\202)841 300 y(\202)p 873
-347 2 49 v 854 347 a(\007)854 56 y(?)p 913 389 2 400
-v 838 394 a Fa(\232)944 347 y Ff(\007)944 380 y(\033)p
-963 380 2 89 v(\007)944 214 y(\033)p 963 206 2 59 v -8
-x(\007)944 48 y(\033)k(\\)p 963 48 V(\007)1027 388 y(>)117
-b(>)1027 222 y(>)g(?)1007 23 y(2)p 1027 77 2 54 v 54
-x(-)1027 23 y(\007)1066 9 y Fa(")1085 48 y Ff(\031)p
-1104 40 V 1104 40 a(\()-19 b(\007)p 1144 64 2 59 v 1144
-6 a(\007)1144 -2 y(\000)1244 388 y(>)1182 189 y(2)p 1202
-247 V(\007)1324 372 y(6)p 1363 372 2 54 v(\007)1383 386
-y Fc(\202)1382 363 y Ff(4)1363 318 y(\202)1389 316 y(\202)p
-1421 363 2 49 v 1402 363 a(\007)1285 222 y(?)39 b(2)p
-1363 222 2 59 v(\007)1224 -8 y Fb(\007)1285 15 y Ff(\030)1265
-23 y(2)p 1285 77 2 54 v 54 x(-)1285 23 y(\007)p 1363
-40 2 59 v 1344 40 a(\007)p 1461 389 2 400 v 1492 388
-a(\031)p 1511 388 2 54 v 19 w(\()-19 b(\007)58 b(?)1492
-214 y(\031)p 1511 214 V 19 w(\()-19 b(\007)1550 222 y(?)1492
-15 y(\030)p 1492 69 V 54 x(-)1492 15 y(\007)1550 56 y(?)p
-1609 389 2 400 v 1640 330 a(\036)p 1659 388 2 59 v 58
-x(\010)1640 164 y(\036)p 1659 214 V 50 x(\010)1640 -2
-y(\036)p 1640 73 V 17 x(\010)1757 388 y(>)1757 222 y(>)1757
-56 y(?)1816 48 y(\031)p 1835 48 2 54 v 19 w(\()g(\007)p
-1894 363 2 59 v 1875 363 a(\010)1874 206 y(\010)1859
-222 y(Z)p 1894 222 2 75 v 1 w(\010)1640 106 y Fh(\\)1874
--2 y Ff(\036)p 1874 81 2 59 v 25 x(\010)p 1992 389 2
-400 v eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: diabolca.dvi
+%%CreationDate: Wed Mar 12 17:56:50 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 34 665 553 800
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
+%%+ TeXXSLU16-Regular TeXXSLZ20-Regular TeXXSLD16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE diabolca
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.03.12:1756
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: TeXXSLD16-Regular
+%!PS-AdobeFont-1.0: TeXXSLD16-Regular 001.000
+%%CreationDate: 01-07-22 at 22.48
+%%VMusage: 1024 40444
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 199 801 0
+%%EndComments
+FontDirectory/TeXXSLD16-Regular known{/TeXXSLD16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLD16-Regular) readonly def
+ /FamilyName (TeXXSLD16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -199.203 def
+ /UnderlineThickness 99.6016 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 199 def
+ /descent 801 def
+end readonly def
+/FontName /TeXXSLD16-Regular def
+/Encoding 256 array
+dup 34 /quotedbl put
+dup 154 /Zcaron put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -1058 2126 349}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471d133239612d0ec8c4b2
+a8bb9c7d7f8cb326c04fe585aec22a3985f222e2780e8bce3122202358893c57
+f6980d94b5c29c14510b0f6cc6dea65e77576d38fe9b77d46729ca212c168cf4
+9a5ddf6250e25d013cddd30ffc3151b438f48abeda1ec35cc0766087699ba870
+bb66244bdbfa9978d10d07bbc0762fd5aa41cc426846f9a0e4d8cf5556f025c7
+0b31b9ee976310410ab5130dcae4adb8bfe0f2f0b317e0e340f920451d1ec20c
+22aadbe768b0269c54012a9c48585d39ad8d79c31733ee668e4ff3fca3bd0003
+072ca3027794f445f87b29a2e504e042bfa506ab8c8dfb88f46580896f4c1844
+999c291de5159542f550f7d65e03102202ec18f4ae52d865ce01ce1d37c48642
+dc6fb25c17a207d306cfc60eeac70daff766c40d76fc26f5952c51ea8f8693c3
+8acbcf58107ddc617d1e95db373188a8bb2f45e9b440f1eebe6584abd106dc91
+20c3c1b5385a31aac8114201e03961015513edb240cbe0a79e618687d3611bdd
+489d925ca17156459bc9e1bc7f215bd2f2b356e74b55dda2e1146aa3cad60fb4
+5b60bb1b6d62daf30ead0fb13ab54f670b84052e94e8f754462f21e9a2f3c11c
+5de4adcd79b9d21beb5f6094be3bdbf6a2b39cf6cbca34f138c3c70761c2c6e6
+b05f0f72ab85906b5f215b1207ca031518d22d2b4971f8357ee9b757f23c8fd3
+0795db3bf32e261166ee98ba6858a5030cf7779b93d4fae7c165b13f718fd105
+61a78dc01882a61bfa6babab7ed7cbadc066c65ecc52f860bd8e19c58588d7fb
+cc22565545ca84e2c6799c88e160ca8e44840a90b411a902776e5e3f421f6511
+59a81010cddf7ccf93e5a3a5129003337e154b67a2abf377a2bdfc34d9681ff0
+181501606ad79c521133ab8cb5b891f3b8eff2ae28a7ff307497be18e97a0e9b
+4578eb04b507c253902b8142912e8833bd70712bc2b5a2cb5705c3e1e1394696
+9ca5eeb330352fc53d1aef8606b9455fbeaa7ccc805628d71fc3cad4012dbd8a
+5016a02e61acd97653ed8a6132c19f388fd55549424b198ee883e8936ce9e2b4
+18c8cc1b2bdc88f35057f8124c8d79e030326e873eda653d83225b515ca7eaf5
+73b644df89d680bc6eacc42a30cbe7b8c6ffa0c8edbcf4b4b4002dc1e28b48d9
+2415dba66eed787e3b6b7b21be7de8671bcc90d15fecb88670a6aa487161c554
+9d1a6286efee2a2b2dc639a83a261d
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLZ20-Regular
+%!PS-AdobeFont-1.0: TeXXSLZ20-Regular 001.000
+%%CreationDate: 01-07-22 at 23.23
+%%VMusage: 1024 29584
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 505 495 0
+%%EndComments
+FontDirectory/TeXXSLZ20-Regular known{/TeXXSLZ20-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLZ20-Regular) readonly def
+ /FamilyName (TeXXSLZ20) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -300.3 def
+ /UnderlineThickness 150.15 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 505 def
+ /descent 495 def
+end readonly def
+/FontName /TeXXSLZ20-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 63 /question put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-5505 -461 5505 467}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471f88a25ceaecc849245d
+e7411b2be5074e786cedb23b434aba7fff7b91b3179b9ed91efeb6f7c9fd0a86
+6403e7f53dadd8680bd7fab76fbe740b9c78615ecdd9fd59c2daba3d8dfbf224
+3c1019a90ae579a3e0362ca212d43ff7d31dafe13c3177321be27151a2ea836b
+c759fde5156218da85058c5edc64b60b9ac24e08bd9e276c01234f17c4389900
+3667e0f68d3a57f2e3e9d62fe586ed94becd00441f6582bab1e9b9b5058580d7
+4edea905015f8e2befb05b1ff4b18df15df7e5109a5f8d00d4b1d1c4651cf673
+1ad99414fb473457c62d036a3ca5f550f38089b25e76ab50991e802ae54b602e
+2b185e66d5628f9703f4af3b229257cc7dc20beca89228e417b897d5d82c89c1
+84f2dc9f7066b862b9f111e663e7530a6302213d187b36f28926a767bb437092
+dd7cbd8c720779a27007a0f544dfe5a5d113240353279eea6062f0dadd1844be
+36e421823ceeb02560d7c520ee3600bc5a557d0e02532671082d805db8a97697
+501b04d60fc41825b507a076c9296f3529f54d118078723180b126ce65d701f0
+95f68d049c1851571eea61a80ca89d542a58b0cd5dd12f7dd50df4c0e5a3aec0
+e149d403bad2c2028f869da8ccf48706cc9b79601bf011c052cf9919c19e9781
+1b9ab430d1e4cacb38e8336eb31c79df47cd54b0dfff083ce40ae33498990ce9
+9458fa7a2ddcbbd3fb1f23f79971e4fd22a996913ceb8450b0f387c325f12e18
+5b5110f1789586cc113d0d31c8f541aeb9f494701306f5a216269ca7db4993a1
+dc75e6262a27c401e8b9be9cbadc033ba8ff5f80f2713ed6d7c0ce6457659f58
+c68b44dd9a7808c56c99d2bf9e3f33e972e780774d17f0e7c9295126d907a09f
+1b1399831623de23e99bc5c0693e4d21729438bc574efaff376796515ce73275
+3c79e728d9b438dc98102c0959f1517dc4a26ae2ce5c357ccb6437c18a6fe633
+c1eecbb6fb19ec147765bbb0a848be09abd73abed0dcd6451b096d3a346f0232
+1d286dfcde0ae619ca11fa36c58852aeae26e719dd2497983edb0a8f3901be05
+7c215e171455787321759ff98bbd4d56ec13b1beed8941ef71dc21a591934066
+3f4854
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXXSLU16-Regular
+%!PS-AdobeFont-1.0: TeXXSLU16-Regular 001.000
+%%CreationDate: 01-07-22 at 23.16
+%%VMusage: 1024 39962
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 998 2 0
+%%EndComments
+FontDirectory/TeXXSLU16-Regular known{/TeXXSLU16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXXSLU16-Regular) readonly def
+ /FamilyName (TeXXSLU16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -200 def
+ /UnderlineThickness 100 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 998 def
+ /descent 2 def
+end readonly def
+/FontName /TeXXSLU16-Regular def
+/Encoding 256 array
+dup 2 /circumflex put
+dup 18 /quotedblbase put
+dup 130 /Cacute put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-2126 -345 2126 1062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a024719c96d4e3a5f7763b91f
+74c41f355088a5176b72ffefb92cef2da6751e50930ae56346c649516d762ec7
+e16b10d28ce5cbe2083974097d71c39c713bf82520446cd056ed36c9214cdcc7
+6111baa5141ea2547138eef3246f8d66c9002b3fbd896e1af983d1afa58eaf5a
+881e921baae9184433c324f5fa2919c87f4c7003a07d684cfaa40a727b4714cc
+90f926d22eb3edb397ece85e7c2af30b3077f1791e79313da76b675fc9f977c8
+181020cb48bf15a88ea335409ef6bdf63d17160d89834daf35596b23ebe99e53
+e81d7284ca67d10ab4907c9d5efe15c1b0bb983ea25bdcca5728a831772aec6f
+65ff55b9ae30ed18ea27c3e458c88f4d75d3ce66a4ec36a3fe8da1abc56bd3ae
+ebc412618f79687d1544ae93673ec3157374bb353d37b291851d973d08d91b80
+bea2173a49befb9e58def442b8dccdec2dde6bd5af4a69aabdd6c0574162add0
+efdfe6874f82ffa0929ae6042ebac87cc6dfc903fd274e610da879de77b9241f
+2b96ec4ac9efdd9da23c2b6e2e8ea618165334ae93bb2bc3c291a9e2054b0d54
+2a9265b4f7a362f3a1ff0977bc405c78d7cc751500618467daa89e143f64db92
+bacda202d38d8ac2fe8dcc03a8f656c0450e7dfea2032cddd1477384a2314436
+91d266aaca269a8afe0c872722f3dfce5d81cab29cf9246740a91d4119b4f268
+a519d56fc0f93166a16dc2360aafcc3b06c4a5a4325264d1455dccfe877634f8
+eba45ed44ed2535fd88d3671f43e4b50ee6013dd8f1c8a1b8882faebfb6d0e91
+ec6e0b171254ce2bc34dd57e71ac441469f146b7c75c3e303c9faae7a8d4b829
+f1795576429a84694923275556a0cddca6f80a4711115904f189c06524e9ca23
+a5a8fd4fd6d8ed82c5bfc0ea8566123cef6fdf1a0f0353f5451717dcc0068c3b
+864477a41d1fe896649ea48aad762857b89f7542973735d7f0ce48b923012e45
+d9f019d429bdf7f5469833caf3b44a51cac03bd236f05fc05902f74226ad4eb0
+64f380066557bd6c1f3f5973d3d2e695fa8ff01edf2c30fad185445bd2be2ff8
+1188b8d8b196b82badfb610968b6425a76d2bd110ce3397081763b1ac918f29e
+c4f5ee9516333f1f27affe2ecffcae955fc377bc66b09cd730dea196bfca3bc0
+4be5256981b3c5928bb2be2f2da61ea99cec53ce1de398efed22cf298b73cc51
+6a0cb558acac89e9d2e2485f95bb91f4eafa09498c9f60ba801adb862c8c4189
+55c6c6fa914f52
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 24 /perthousand put
+dup 25 /dotlessi put
+dup 27 /ff put
+dup 30 /ffi put
+dup 40 /parenleft put
+dup 45 /hyphen put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 90 /Z put
+dup 92 /backslash put
+dup 130 /Cacute put
+dup 142 /Ohungarumlaut put
+dup 195 /Atilde put
+dup 218 /Uacute put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a2e19287bd0298f08639500ad4ba19ba494272cb
+e991e735252896220b8771b7ba9939d0c9c6543d0e420eb5f9719e9fb5aaa9eb
+9f2763a18d956e059681459dbb7a101d1a141cc249942717cc370f2dbd0f4273
+390d853d8277ab67d5610ee04468a6519f0f3fe165323b022cd00139e0b61e15
+40ee9dbdeec4530e9e7f75a31f3d9fc11ea2e75c612c10638263f21ab3090483
+8fb662dc90465efa4fd699ac15e54ba78e7469e2f866eae1bec619f6b1fb5f09
+73e893a71db25dc8a3606508ccf9f7093b665df6c8f33ed8a1610c6078faed32
+75aea6e0c00e25069ad2f40623ff7ea656d8212ff6f92b158d66cacd30292bce
+a1c2addce4efc789dc62ad4427ef766bf2230196a61e2283a8c65f5637b8c3ec
+d694aced84c363c2a016bc021ce9455a6c542a9a7f0824a292d4d501ef1939f8
+359510597c3acde51e3319ee85b827388718cb484c701df6cd27ce334f1daa01
+41f7637671839d8e3c4d05b107d39c743f96df79c08b2c0a5873fdadbbe53f94
+9851f678f7a6843a8d6e3d5ab6f32d0a6aa0ed149067078b0972d162eadb746b
+0fb86f6f6967470985ac22d7cc10b42ff3c0976a43f468d9fc200e3aee2ca99e
+1d14391c657064937d13781efdb3a85e6121bf3fbf0f6073ef1d3b59f984c397
+1c6398423564dda67c2c828ca8d2f0fc75aafb9bbec8b86a20d71455fa3fdcc2
+8d6932af83963cf06659d8f15d40869cc1f972ef6b367f534b3d33fc29ebece9
+7d8c21a5dc13d31c7a31ed3304ed258d0ac875c9d895b358b4d7fdb268a218a1
+cb03fcb9457d75940cc75b8db6af9c947a0b44f8ccb24759ddb45c4959328993
+bde91bafdcf1953d2e9b58bb4f4e0db64d700baea5ae63e88aeba3347a85eb3e
+5a4be06fe3d66039624233f9bc1455faaa45b0969f47e54cda47c4b842618fb0
+01e1c3b658938164a6d5fc8b6c4cacd47a91fb599515f8fe8778738baf1305e4
+70b4c503a66ee27366b8fea98d6b5b5891c5997fb486b08a2d1bd84e7a11bf4f
+c75809621f51981123cd3028827ba98958886e3dc3b125fb0d712cb968598428
+ff26a1ab03592f9372648adfef82df836076cba34520055b65d19bc3e114b398
+2fd0ef966c7e2c3147c147cecda8686fe507b09511136988a68bab155757a267
+0baf247792ad4d47212057f92d3f3f4eac322adf31fa7b2fe2611ddf6b305e0f
+d15fa3687a756dccff32a7372348a2a56f37b1b2f659d6bb9845abe8abc57379
+7eda1e801c7e61023d45d8abea3d4fb6293a5f7e416de31c7b00df5916dd2d9c
+027fdc0a9db60b7dd7b232da40accf791f53a511ce4943838ff9f94f899033ed
+08e59354c1fcc2477c4e2c9e5c58cf0c6de70fb8f3d2aaff18ab849c809c0013
+1e817eb5cd9d2e119885646091dab9f92cb29a5fc5e979c2bddbbb7f589ce322
+5f7bcc4a98d6b4f63062e8b2a99ee2b06d772d802c3d2ab46c722b426fd60b32
+c30df6d1a6337a8f1092b5f16b43b26000d8b6565bc38ece373cd75448a30f0f
+bf0972cf0cd1e61b5b11d5b16c64d2274f4c4699f247cc59862aaa7e914e41e0
+275bed52a5d282f8537b3bff4e4ddb7f4655e073663a770aae960873d8e63371
+1b79bded08158da6d7f5a622488188426429ac774731fc4764c78d31bf023732
+f62966f7f07e2f6bd67fe40263d1ef1b2aac761c866044e309c58af1f368cb2d
+2ab82b08429a680273116a2f50bd2bb61c981211e47eeefc29117c5b120aa071
+5f9309ac50454f2082bf3cbf0456d0194ff62e583df24dd4d0b734b63de1a8d8
+97c0e6b282e92eb5dcdf667a9e828c618ba95568b7e7d6ff0f9662594c3b7f19
+8b53ba896549d3de09054f4c807b4d368d5c268312ef0db5cddf90fac946b025
+da4fbe58ca2cd7eb7d62bd51a25f6c1eeda71f88fff4bf0447ff90bead2a615a
+2688e581401718fc0c90d8700a8ec34e1a4e7ec78bf1553bbeab550ed2f6d2b1
+eacfb78d9e1bc8d3c7cddbce4b4fac4783efc9634ba7b44f9f0dd6693717e8b6
+43a1f572fd5b15dfc64c1c624c7cd030cc35cc4ace50eb378b6fb415f3e77302
+debc8d1decf592a49e5e18007da63f4b4ab3c8501016bb9f449cf98155471242
+2d34d7d84ee06b78ce53b965e360befbb477088f90218397eae42c5349e0083b
+94f9289548fc05d1dad694322ede0ebc636c44d782d983bac28a98468ae1c5ac
+9cde2798276d80b5c168e768dbdbc70621b467e020d8478708448ca643b7d5f8
+95cbdad05e8168beaa9e2ea353b76ffe4c6f7c951d873a7c70d62635f4af1653
+664092ec73b86f31a954d5f2e4c300bd67f141e58d8f8ad57cae048f22dc34d7
+083bf4a4270f9d24f7904a7ce384ca101e834dad487a51db0153d62384502c8b
+6ec8ac0434befe54b532a07a043c41a2dab0234b7203f596615cbf3f6b4e1788
+381640a373c140ca6a99595f740677deb1a1e13b604a4b423e3889dacd3e1bf0
+3bd0ef0934631b5064f6bc404a27e481a71127f367b7c1a30a5721fce9dd888f
+cf0acdc29c69974ec4f504b133e6e8c43754665c9cb4b27c3fb4d9b0ba8ce2bf
+456e978bf969105c5c6729b062fdbe137d0d6b42ef4f90d9683d9a6432f6434d
+3a653a1df979a7d9f1e8896237d5407718904a4220b990c7912c21926c939f1e
+4dae28ff9949174f2d7d92b59732c1d823e1a4871d9535108b3cc3bd672685d2
+8986eb277645d198e4767a4abb79c9034fa31e364d4aaa6920d4e46bc0b09fb2
+082a983123223f15f8140f215a3ea2a11cd1279cd97a2435958802c9c08ca3b6
+99d154ad02cb80c3eb987c8aacf294e774439a8afbcecc09a804bcf968dd5a6f
+b8be23ec6d7abf7f416ada4e57191da2031dfd5fdaf4cd66911581dca8d5da2c
+a182a8960a41716da16257dd82dced331017197b47ac0ac8d4c3c7ea1d9b7100
+8e7686f004819c1c290453ae02f7e3e20ad5eb014dc28ea13c7df04411c5635e
+be6422beb49cbe6091096f5c09e7db68a4c2a53d67c71de969360a2796dfb35c
+07996bd3673ffad5ef6dac893d4b348a9875f5673c1601488f2ce4ec603dd0ef
+feedc50a40d3ec51ea277f0ab72db3b3b7bd328bb7cd809bb627af108a2f210c
+c3d800e0841ae0737b835fd6040abc3c869599f8cad643de3fe1ca39e733735b
+cce9b7577f41786e54c579acfe4219fad309d636b0b43410e59e6c7c4acb5235
+5d161ded06216c5ebdcd25c5cd7eb0063f25ab162e1fce5ca9d83c98cafb3520
+14deb99c356ed3754aaa4ea33bfe12a3bb2647ae31f3806a99c314b37503581e
+042961300e54c04f5e5a0cea1c5a810de73fb6649ca8e160dccc424f578cb8ef
+7c94a8332ac84b1b61d8130fd627b25b4d24dfa2f74c89ea4d53f39958047921
+453e0d1da48382680f90f58dd1cd576701d0a0c93b73567ce0bc73f4eac6a7b6
+6824c2c16307bc08c828f4fd15066f2462d5b909f1213818d47123efc4fa3de1
+53a7be4bb09356567706cb28468a9aeaf8c5016b7b18ac34b2ac1acc3a520fa0
+4363a23a6cb3427fc2f009d4d31a0cbb84096f5eba69596ae998d607d932d29a
+2b62bf68ef83c618d0f42c6c37c68304d619f0a7c8a1eef9e0487736b1f51ba1
+82728c29cf85e4f49286c8ae828de91c80f453fe60fac91c8fb81455d61791b6
+1bcdf4ea5b249eb843582bab243f4bf9ee18e23b8fbd4c46465f11ab683dd253
+818974c6305bccfd126a1ee58713aab14d87f48f1be32a869faed29b68ba741e
+1580e44b1d96a6838644eae7d957eba54c8b18186c37dfbd6fa6d7732e1d7797
+d530f7f724a305c4dbfb13752a26d2412a3844a8ec15d36a137744678a5c0223
+cb98a17459aba850dd45e80a87343ab94395c2d764b3a4f9c3e6c0a2e0386829
+75608ce06660c098efca8c4f86e186b28c411dfd584b2f77e8200180dc0baf18
+d582604c920ed4a886842f48
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIXSPX-Regular) readonly def
+ /FamilyName (TeXMUSIXSPX) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -300.3 def
+ /UnderlineThickness 150.15 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 502 def
+ /descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+dup 92 /backslash put
+dup 156 /IJ put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a8029f0e71748d5def5
+e137746bf8ef0e89c67c47ba75fc29a5a69e9a3248bb49919ecc79fdf5bddc0e
+e7e7bea878b6155cd00fec35e30536436e70f36ffc1a68d72759f15135973550
+0321f5ac2460d16083d3fae7e66abe637317fd2266729799619a9630ae656dcb
+7bd469d535dd5babd7118c863ea6dbc8d38036164bf26710b373c41970528bd2
+595df813bf1368c79c441882ea3ca5c00ea0684210a760dacfa9dfa34934de03
+8ff58ec5dad266829a690c8ad001818f546d7450279bca4d2a10a1cc591a7d96
+3269323963a2cdbfb4f987900555931a15229864557745b27d71c3fd75936b90
+a655327bd46a9207289bd811f196c845154e2a03010bf9c2034d56a81d146df2
+6ea84da6e4f1ceb3112081e053be3c2f16e87635070686bac94a1061013cbad5
+c38c47c63c126e68343fb42afb1682ea8409e9fa0ff1f834395b17df6719be95
+4af8ba83374833e2c4e3ec1770bce924b11c3dc8938ad548950890f8398ba941
+bfb2efe487b9abbfc82c68a2d816a3dcd667b861c33fb7710c2374673c84c8fa
+e731ce649357372c266acd9e5a043010ecb9826ee92b6c6df0047549e691e1a0
+115e3e8e908872e50beec2b2efebbaaa5bd5f443e8852e22ccc1d617892fd372
+37e7d65725bfac6e879a75a9cf122b6d4e11abfaf2918dca7ccf267333397711
+fea8532c4464452346180da7c9cd7eb0236aa5acdefa61e912c5287f02fab4c9
+fd4404d2d9db67cef020a5df8488d56addaf6ba03c354c0fa4f9a1c15060d05a
+31d3542a79e7d6ac7c390c8418d2d628b4afd052e3c41936f7c13f04b0736008
+eec3547de93f5093d10d1bf9b17dc958e74d1d41e13bd836795d9a12022219cd
+2ba910a4c17f209c814584c591aec029b927368d4caf5805bc294bd64f607315
+6ff78bf462ee75be5f41e57835e3cec5f921d4ab63f7b96afcd32e4748ffcf9c
+223b4ba7c33fdc2ab7b874e06983f213ea66a13e381da90ff6d7d8b96d356784
+ac1ccd9b190755b98fe08053791ef8dac0ce5b90bc042ba22b9f1465b5acb0cd
+18c03d3d6bb4e2553479425c324942dca5dc1268d7d93c0bcb5f7cecf8db21a9
+8cf897d025e88526f053b24ca17680e0be4fb5d40266b8301aeff432abf3634c
+8a4e6a1116851d5a59c79859e59309ba881be5b90a95055038c3f35283699562
+5b513f8fffcdd2fd8e326da08281af3077c41a9fc9da6fa19c6c6d2003720cda
+c5e8a2bdb243973666d4f6b2e2af30247dcd3cb0a2cd723c446587d6a30eccbc
+b6d8af56677dcbc5317047573342ec8e03e5d2e44fd91003b8e6bae84b8484b3
+54ed9f97198b30af715027f524f497c990c39f939c555088e74de991f5999b8c
+23fcbe75565f1356c8ad6eae57677e21aa97fed7c5e8d3ff9402b8ec7c6d7757
+29135df68fcfc697ffc525daa43555f7bd8ac8f6fae4cdb3f8fd602194dcd6a4
+855cd8fed4411f52668080b85490e37d90246af9e054298fbcf36acc42e10ae5
+51c1a51852a455517776c7879ce6ae0ba4380a1368ab0aa2576a43a0a26f6e64
+5593cd88a6c33295183323be90599386360d41e1f7818826a0a54ad77846a123
+6f46fc8d11
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/diabolca.dvi) @start /Fa 101[0
+119[0 34[{}2 66.4176 /TeXXSLD16-Regular rf /Fb 192[0
+55[0 7[{}2 83.022 /TeXXSLZ20-Regular rf /Fc 125[0 111[0
+15[0 2[{}3 66.4176 /TeXXSLU16-Regular rf
+%DVIPSBitmapFont: Fd cmbx12 14.4 6
+/Fd 6 115 df<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA2
+01037F1480A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F0
+80491303000181491301A2000381D8FFFE013F13FCA32E297EA833>65
+D<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2B6
+FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB3F
+E01A1B7E9A1F>101 D<9038FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB
+3E10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238
+A2123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB
+01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>103
+D<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108 D<EB3FE03801FFFC3803F07E390FC0
+1F80391F800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F
+800FC0390FC01F803907F07F003801FFFC38003FE01D1B7E9A22>111
+D<38FFC1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>
+114 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe cmbxti10 10 1
+/Fe 1 113 df<380783E0380CCC303818F838EBF03CEA31E0143E1201A23803C07CA314
+78380780F814F0EB81E014C0380FC380EB3E0090C7FCA2121EA4B47EA2171A7F9119>
+112 D E
+%EndDVIPSBitmapFont
+/Ff 37[33 22[66 52[33 11[33 37[15 1[15 16[53 1[53 7[0
+0 7[20 1[20 1[20 4[0 4[0 9[0 2[0 1[0 0 15[0 0 6[0{}22
+66.4176 /TeXMUSIX16-Regular rf
+%DVIPSBitmapFont: Fg cmr10 10 8
+/Fg 8 112 df<EB3F80EBE0E03803803848487E000E7F487F003C148000381303007814
+C0A20070130100F014E0A8007014C000781303A200381480003C1307001C14006C130E6C
+5B6C6C5A3800E0E0EB3F801B1E7E9C20>79 D<B51280380F00E01478143C141C141EA514
+1C143C147814E0EBFF8090C7FCACEAFFF0171C7E9B1C>I<EA1FC0EA3070EA78387F1230
+1200A2EA01FCEA0F1C12381270126000E01340A3EA603C38304E80381F870012127E9115
+>97 D<12FC121CAA137CEA1D87381E0180381C00C014E014601470A6146014E014C0381E
+018038190700EA10FC141D7F9C17>I<EA07E0EA0C30EA1818EA300CEA700EEA600612E0
+EAFFFEEAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>101
+D<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>105
+D<EAFC7CEA1C87EA1D03001E1380121CAD38FF9FF014127F9117>110
+D<EA03F0EA0E1CEA1806487E00701380EA600100E013C0A600601380EA700300301300EA
+1806EA0E1CEA03F012127F9115>I E
+%EndDVIPSBitmapFont
+/Fh 99[0 63[0 92[{}2 83.022 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 34 272 a Fh(\234)p 34 323 1960 2 v 34 339 V 34
+356 V 34 373 V 34 389 V 34 157 V 34 173 V 34 190 V 34
+207 V 34 223 V 34 -9 V 34 7 V 34 24 V 34 40 V 34 57 V
+34 389 2 400 v -154 286 a Fg(Piano)-150 37 y(Ob)q(o)q(e)34
+339 y Ff(I)34 206 y(G)34 40 y(G)123 388 y(?)173 422 y
+Fe(p)162 372 y Ff(2)p 201 372 2 59 v(\010)123 164 y(\036)108
+214 y(\\)p 142 214 2 46 v(\007)p 201 222 2 52 v 182 222
+a(\007)240 164 y(\036)143 168 y(\303)194 171 y(\303)p
+259 231 2 57 v 240 231 a(\007)p 318 197 2 59 v 299 197
+a(\007)-1 -77 y Fd(Allegro)106 114 y Fe(p)p 123 81 V
+123 23 a Ff(\007)123 15 y(\000)156 b(4)p 299 69 2 54
+v(\007)338 1 y Fc(\002)338 6 y Ff(4)299 69 y(\202)326
+68 y(\202)p 357 66 2 60 v 357 6 a(\007)p 416 389 2 400
+v 447 397 2 59 v 447 339 a(\007)p 564 409 2 54 v 564
+355 a(\007)604 341 y Fc(\022)603 339 y Ff(4)564 409 y(\216)591
+405 y(\216)p 623 400 2 62 v 623 339 a(\007)447 164 y(\036)432
+206 y(\\)p 466 206 2 46 v(\007)486 239 y(4)466 160 y(\332)492
+167 y(\332)p 501 240 30 2 v 525 239 2 65 v 506 239 a(\007)564
+222 y(>)432 40 y(\\)p 466 40 2 59 v(\007)447 31 y(\000)545
+54 y Fb(?)623 31 y Ff(\031)p 642 31 2 54 v 19 w(\()-19
+b(\007)p 682 389 2 400 v 698 388 a(\\)p 712 437 2 49
+v -1 w(\010)712 372 y(>)p 712 247 2 59 v -183 x(\010)p
+712 56 V -191 x(\007\000)795 363 y(\031)775 355 y(4)p
+814 355 2 54 v(\007)814 301 y(\202)841 300 y(\202)p 873
+347 2 49 v 854 347 a(\007)854 56 y(?)p 913 389 2 400
+v 838 394 a Fa(\232)944 347 y Ff(\007)944 380 y(\033)p
+963 380 2 89 v(\007)944 214 y(\033)p 963 206 2 59 v -8
+x(\007)944 48 y(\033)k(\\)p 963 48 V(\007)1027 388 y(>)117
+b(>)1027 222 y(>)g(?)1007 23 y(2)p 1027 77 2 54 v 54
+x(-)1027 23 y(\007)1066 9 y Fa(")1085 48 y Ff(\031)p
+1104 40 V 1104 40 a(\()-19 b(\007)p 1144 64 2 59 v 1144
+6 a(\007)1144 -2 y(\000)1244 388 y(>)1182 189 y(2)p 1202
+247 V(\007)1324 372 y(6)p 1363 372 2 54 v(\007)1383 386
+y Fc(\202)1382 363 y Ff(4)1363 318 y(\202)1389 316 y(\202)p
+1421 363 2 49 v 1402 363 a(\007)1285 222 y(?)39 b(2)p
+1363 222 2 59 v(\007)1224 -8 y Fb(\007)1285 15 y Ff(\030)1265
+23 y(2)p 1285 77 2 54 v 54 x(-)1285 23 y(\007)p 1363
+40 2 59 v 1344 40 a(\007)p 1461 389 2 400 v 1492 388
+a(\031)p 1511 388 2 54 v 19 w(\()-19 b(\007)58 b(?)1492
+214 y(\031)p 1511 214 V 19 w(\()-19 b(\007)1550 222 y(?)1492
+15 y(\030)p 1492 69 V 54 x(-)1492 15 y(\007)1550 56 y(?)p
+1609 389 2 400 v 1640 330 a(\036)p 1659 388 2 59 v 58
+x(\010)1640 164 y(\036)p 1659 214 V 50 x(\010)1640 -2
+y(\036)p 1640 73 V 17 x(\010)1757 388 y(>)1757 222 y(>)1757
+56 y(?)1816 48 y(\031)p 1835 48 2 54 v 19 w(\()g(\007)p
+1894 363 2 59 v 1875 363 a(\010)1874 206 y(\010)1859
+222 y(Z)p 1894 222 2 75 v 1 w(\010)1640 106 y Fh(\\)1874
+-2 y Ff(\036)p 1874 81 2 59 v 25 x(\010)p 1992 389 2
+400 v eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolica.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolica.eps
index 524b53cb89c..e57ede649f9 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolica.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/diabolica.eps
@@ -1,1147 +1,1147 @@
-%% LaTeX2e file `eps/diabolica.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: diabolica.dvi
-%%CreationDate: Wed Jan 21 13:56:46 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 34 664 552 800
-%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBXTI10
-%%+ CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE diabolica.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1356
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 65 /A put
-dup 101 /e put
-dup 103 /g put
-dup 108 /l put
-dup 111 /o put
-dup 114 /r put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2D4609D7
-D2E805DECFF5AF988F0808796D01500B18F0EFE1919743C126088426A5A27D4D
-03F21A15C23B9BF08DFD73708F2C1AAC530B2D00674DF2B5274D98C541905206
-6DD191F7458F1166231360871EA0C6AAE036BD3551B866DB578F29DEAFD289B3
-FA6E9CC4726B854E887BFFE87DA8AE960C817A1784031DA55BF78A79976A4FBB
-764DB071CF34E990D3531367408D37218B289FFDB701E870A32EC7ECC8C3D6FD
-90074953B49CABE8468930B55E5B5FE0FB302C8DBBC120A76AF9C2846C85E01F
-ECF513FA01B99C4F2ED6B902C842EF29F25789D8066B284AA832B8329224A14D
-92F49F2ED713D938A2ED14C1AEC4D73B6D6C0313293D18547DB010B2CC8CDF98
-8ED055570D39B01AA62FD6DFC6DF11BEABAA95FC7BAF76DD31E279F65F015E4F
-5638292A61635A6B3F2F9166E68585E41371A4F76F3011449188B5E6B4160518
-BE274DA3E8AADCBEC12CBC0C960FCF7ED30D17A96240AE3635C76EE25ABDEE3A
-5D5ED522BEB18E11DC1E1DB5F202673A8F4A2C80F89C4581875CA0470902638B
-F0D02673B4666C34103904901373FAF2C95210EB90B768B089DCB6771976EE31
-4EC033BEA244722A0755750F9FF437AE648CE60102390E459E7348AA1829A0E7
-B7D53464C332F216593999C6448419A67EFCBE6E06B5D20944630767922EE06C
-3BA3B34AA7EACF23B5EC0F433E4340990B55CF8379D7D1E93FE8871FDCCDAA74
-BB24DF5EA540072C54B85F40B1B55A5362DD9717A2E87D54489442CF48478FC9
-82E6C7130D88DD7E5BA2BDF8A477360A35294B5044513000D454CF53913DA0A7
-8D59FD768A5D4D80F6F376D95437A6492E75BD897C0C38340C094EF7F25C154C
-3A3C13CEACE051F9551CF66A2A583CD784880B44E19F19A81F62063F53EBC14F
-4494B181A6DA89F74089083C0405CF821C65008435E8EBC9516DED8A0990D5FB
-969AB5BC7A4B47FB9B3C2EB25CC21232337AF2FB3E0E7455E5A7D763C9DB94BB
-A941F65124C4ACB665968F4894B125777568FB381CDF09C02BD5E2612546C6BB
-2B3A12B74ECF99C16801053F50ACF6F385E77AB8DCFA921C5A4C628F57052811
-4D14E4DDDF859421174D7AAC6ACF8D4852A955E9872D4012D488EA78928C1FF4
-E1DAA8DC12D9E613E4EE895282577C68C9FBF1C96710F0B43254D366AF82B2A2
-CBF03B1B5B61BECCD3B8A1E230304E41D1A1A500555F1A752A492DD53B966536
-2BC19BB3D3A19162992228CC9A7C73A4BEEFF70CA925D4E36FE5F2C0CBF459E0
-D13B321F7FAD9635B14DD2B312FD6EAD2FC5411927F4B8AD43ECEE73071DCD6F
-31438A3BC07078F04A6CF179439B28DFFBFCD3DFAAC670690E29855C30D82177
-F2F087504AE7E2CF63E5921021F4BFFD592C58DB81818481815F8ECBB996B99F
-366DAB49482C09BC82042331872B5B71897A5AA3273C213532427799C980C9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 112 /p put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA7C97C35EAFA47778CE03E863303582D8A9900EB1B623940B0807358C1A
-ADF30ADE694B653E32E635899367378C770B13D1E9C51E8127E19550ED085F63
-B21E3E3994B6D8509793C094C2B05AB846E5BDAF4FAE7E9DCEAFEC9CE55A447F
-B055846823C1F76126BBCB5F331EEDD026946C1F1EC8FC757DA5E1EEF2728439
-77B75667751A4303C4C9995B51F737E36407D3D9F8B9853CFB6A9E80CCD45E95
-5E2C361F6D78716FDB9B0D958FA699BCF7B5E2BAB95BF9EF6031A408EBB777C5
-DA9541E2A7331451BFD90A849C117A5AB2025FDE44A146F272852C1F5937857F
-F83F72E6B876DF198E00646120F7A7CC2B7534F1C4337915C58FCFE10B392003
-2739CF2CC74D30CE138C566A666FC0CB433ACE2322F486F3A5104985C26BF17C
-AE12796FD9467F84A86816F1D514F4187E823327496D4CD157958E5805E56961
-C5B8C3FAC57E2B870FAC8D1A49722E832BD9C8CFF3C3F3806B8913E5B4C7D5E7
-A64531DDD7334AA5CFBEEDD6BFECE143FFF7F7C23513A09D7725
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 24 /perthousand put
-dup 25 /dotlessi put
-dup 27 /ff put
-dup 30 /ffi put
-dup 40 /parenleft put
-dup 45 /hyphen put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 130 /Cacute put
-dup 142 /Ohungarumlaut put
-dup 195 /Atilde put
-dup 218 /Uacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF859449F6003874D095258B6F64ADC77D4830EB4B8B608DB3CB840D82
-75E4C819DAFEBB1BCE8B1518EEA99F8A79809C3BC0C39A9F36ED4968675C4278
-B5448E87397B9994127B6C41A6450F86A24ED491563370B43776BF34BBC2FCDD
-C44967CFB28B04E7A4A6968FC888607BA04952BA6FF345A44EABA4CA626F5CBD
-A262ED5029009388AE8E603F205FA45B5CE94452A1B9507B7A2BA757538FEB7B
-37355EAF0FD3D3D46D6A055EBDB681C5571E2D28FB7938AAA22E7D94B84F08A2
-5F8471744B9F8263D3FD1F5C324810FECBC42C915B3ECA50C477312DA5561824
-6A23E12C358DD5AF4516D82C33A8A4B4472AF361C3B2A0604745148F1ECA353A
-D07CBADC2174AC86F6EA6FBE992D1462259D82141FD6497E284F564B4A3E4B25
-943E7D0A2217C0E5F44226F2E4D147A4178A3D00D2CD1C9DB76123040AAC7EDC
-2C48CAB6CA3B68E294F0B8ECB6AC8BBC4D2064CADA1B4202F620DD6B9C2FE100
-5F9BCAEE97B9F1D60A4964B00D13425FC7831B3FF7FF911945EAC9FE54D521F5
-8E58EBB50D3767B649BFA2B147D82974EF63148E5695CDEF11687C780D3F9BD4
-C7614214554B63AAFE7F5448CC86DAF2E6DA7D88B24B3AD84F7BFB40D87D2DE8
-70848B02272F203FCE74437FD2699389DAEA5739EEED98D441F5C72FF26E9575
-25DB493B6D8C4C1E3910E72ED6C31A0596BB4CAD24AFEDDAEE0C06770952F3BE
-E530B5A486BB9E328E01AA202EFC5B4ABBCD95FCCBE1E1032B3376218012B284
-903F8B6529FDDD85541CDF4FFEE4C91833E622A5CBAC44E9B037B6EA009E7812
-390552ACCCFD3882F0C632F684F573B40D249BF62B18205DA8F7EC88B6B0BCF5
-277D9F3956D55685E4CE32E6A5D7F4AA12CF52A5185EADEE4E885C3A09637942
-E446BE455CA18CEAC731F2BF406C33B5DC9D35EA242BCBC553A2020C5359DA57
-309386AA2433B68A3590B2E2239EAC76C6B65E86BBB6A7FF7EE33EEE84780FC9
-C21C5C70E0852DD6BEC903631E21FED62EC80962C95B9EC08C78EA2C1815C9D9
-3AC9788D182FE1707A10534DC1C75614F207C67BB00C0C65225C06C2B5D74934
-517DE970899F69FA1DA40105FA684693C76E2A878CD6159F0B2DA35474244F99
-AD168A8512680F3FB137BA6E275805AB4E8E0E6454AC6523C27A0EEB74C5F824
-65F3F5920EF66EDC0EF3A15E445FE87571B95AB5D8BDF65DADCE83FB81CFE49C
-D8D7CF9FB27D10AB09B2AC831A3A701D1DE9623CC83C2C8AEAD0E4A462D7CD8D
-C2E3840EE3B152C1B89B179A8F4897BAC0688AF495BE59975B31BFA625FC2CF6
-6829DBB895C9810AFAA798FB9F1238E87A56BE0F8994161E870179B3DDE396EA
-EBAD661F889BC279FB332C51121E565A7DE52EA0E572A773A44192A08958A5D4
-BEEF2D99AE808B0DC965574414DC3E63E30D29B8E8DFCF6BA99D8FCFAEEB13B9
-684B382D90DBE47ABFDA06110F54E7A1D253B641F2308C54B4B71FC9E666D660
-82834EC0108581EBDE3EC505E6E5E3C9D58E0A154912CED02FDC8EB27609E047
-72445358B5401CD909A8C78E37699D883C99D2CDADAE678EDE012138D1641F34
-F9FA5931AC50E79E829444CC6E33C4752A755509D9A3739B5B675C3C797E4A5F
-F8B5D1C680F0062239ED8F8D8936D5233D2E54189C4F57FDB7E1C5D4DF4D7BAC
-CA0AC6755DEA87F7B02738C9DB5FF5CB13D0CAA2DA8A7B607F87A2B5EC94FBD8
-CF3C6457908F5C8AAEB789720D25CD471AD3696756773C55A65AADAA341F2F32
-4AA8C2FAB3822ECCBE4A55BC2873D9BD02F6B428CBA293BB8E2E551AE38A8ECF
-428D2808B044FC9C467FD7861876FAAB59AC76F26B80FED55CFAF38DDDDC909E
-36F14675E6CEAE0322CACAEB21C73D6DECA1BA4DF44E90255CD2A01CE35C12C3
-5C98FAF05EF33FE24E4D1B044846C308D4687822ACF335AB68E8A0340B8D18D9
-FB28659084D793B65CE91A72791BAD7117E7CD64F3C98BE6CECCB12FA7B7A1DB
-244DD0D11E925250DAA2A56605AD654BA87CBC143F74FB63530185F7E43F5EC3
-F445E5CDB6E745A8A765C3C5B6A3A954464211EBD7B404B72F2D555CA70F8BE3
-3BC18E5D0986A97321495D38BC8D05DABAAAB0F38BCA279F3B7C3B363B94F08F
-CA20EB10E87B739316597D89E6A5907850202DF7E3A8DB28741F21E2AF56B166
-9206D521A34A7534954AB37E33F5DF32521411AC26D2E55B495D2AF5E0302919
-2373FFB2DC735AA149DD7338F0BFBAF2F399C1760D93F22C9200E5975EC9BAC7
-FC9C9FC3F44D78516AF7464E27278732166C290864CF1F3FB85410A6936FE12E
-7DFE3FEC438AC68994599CC5D1AEBE335C7C6649890783692A0331AB8EBD03D9
-AED155C5EDEBBF141987C6317CDE09F1B17FD2537E7FC3E5578E0125FE3538A7
-2EB8D8FED7282C5F38ADF7CE8949140411A5AEDE341D89F0A4D8131E20BE0B92
-78CD537A36DEFE5A3CCCA6E7C196BDFED4EF53EFAC1B7F087AEF29A51E7775C3
-CFB98FE58E123534D95257B47F51D10E4FD6DDBF5ABF3F921A0A978AA8746CFF
-34F0AF300DCC766FB4A86F34D03FA442E72974EE29591A41C0C9592E68C31AAC
-0CE15B16A5329EF87D30B29747E5C03808E42889C362934EBFC2182397E5CF91
-1E68212CFEFB17EFF9DCD7722A1A231E8599F655AB34348C9FB6C08D1FAF751C
-6195E3C480E997822AD8E123535160707047FF314EC7933B02693214EE9F93CB
-50DD86904B48068AAB525EABED76502F07AD865855819D477857A53E1738E247
-B69D8A1BD905C67C33963E568DC01C699100B857DC199671D50521EBB9A88CAC
-C2941B426B43C74316FD66D77D461973784B3563227B2D4927A31EB5AF7F44EA
-BD13646AF56A83610356FF24744E8120C3452C25DCFB6DA111F24954D8565182
-26FBB74CB08C9C388745ADA5B0726DEFBABB84D6FF0105A8C6629B11AFF30FAB
-F9835EE1E15AFAE583B299B3ECAAB25818845B439BA341EC77C097AB48300246
-60EF2589A60A3AA9C047601532B4E22656A296A127B0D85B7C75233CCC1DBF27
-F59CB0616C732CDFD426AE0DA2139C7AD84CCBC9C9F34E995673F84E24B31668
-7F37747AF78A8D2EF8ED477A39DA9475976AF791463BCDAF8BD20876DF12E224
-B122849A670D40541C49BCB168DE5E2CAB1CD641407C3FE257C883C85CB0335E
-82F39289A2F99F2B460A7114E13F2207D40FCAE012AA600BB68E35B826C80848
-2BB2A46462322B9955C3B94BD5E86907E30E23383B9AF0BEEFC359A83EA0D92D
-F7987EF3B8213CB50DF587DFEC33FF6879F2EF00F789F50B4C9320443698C99B
-32A47BFB7BBD9ADB3F31801A9CB666C33571DA2F7A877D8F62C949A4A723CB17
-6457D647C4DCD5DA61BD0FBD228482B79E5980F903B439A5385CC375F555618E
-8B06354205582A076F94C900C1C31E8E150CE2156B95BCB67BADCED4DB05A1A2
-B8956009FD1AAA2C0D8A6EE857DDD68A75C86EBFEDBE7E4EF5769F053E52BA0B
-69FC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 79 /O put
-dup 80 /P put
-dup 97 /a put
-dup 98 /b put
-dup 101 /e put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
-36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
-A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
-4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
-0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
-9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
-C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
-F9180171E06B8DDB646FFBDF5AE5AA6B98F96A4FEC45980DD8F011EA7635AF38
-13D9897026EC0675EC58C2E9FA51041A5E04A4C1CD1D33D5E8BF44603E0792D6
-E631D300A32CE71394F6605CBE638D9A6B5A0DF28C4D81535BA08866396EB9C5
-838916877F088B097B2FD6291D92A31D7605E1E3E03EA442CE7C35FCE0A2E72A
-6FBB9EAA77C3E1CD4050AFE0CF39A32316087D257255FBBBA1E86D352FF8A9BC
-757F9DD3565AC9CBA53D1E917F7DE95159AB5C2AF6987F3F929B6F63B6AA9D8F
-29A3E7D6A14279FD8F9BEF14934F3297217F4830258DF237F89FD7E4C19F580A
-10D280FC4E3F259BC9509B61988E07727C6275660C800847F92B17FD7DB1DE0A
-73B4CB3A597E48FE7419F71208E2F769C1F3168815DF3A649BEB504F0E0508B2
-E3185DCFE40DF05343FBC05E7C0D6C652E54AC33D14D56BF9CE5188CB7142884
-404235ABB13E66EA9947DD4E364714EE7E175E14D3DADF80C2FBD0982BE0E5D4
-45BC41FC0B851C103BE47B171A6DB3AFA1EBA682769674176AF3BE61FC4CD834
-701BE189EBE4700B7ED706456D59A95080C294A42767A44977413682BACE5D99
-A2F71120332E1EBD5E20BF896782A7A5FD41039C81D574AB892C8D0D81A7C60F
-6845C871393E7A254DF44775DD9B7B5C2DA011AED69EEB13CDD1ADBFFFDC123D
-DD65F21FABEFBDA583B99797DBF5F133777D32045C3D67CCD092C076EBA0BB60
-C5BD25A6A80ADE2AABC93DC48EC97FA028B8675AA76ED464CD11CA4161A94CB9
-936EB0F80EA505C3273358D71A6264EBFB519C57C2794894EE4B349B6983BD0E
-1D017EE096CD3E0F0815665B02DEE40FC10F2E16CF6D0A9AE58401445FE09CE8
-006A45714DC0E76CE95A5AF28EF0954AF6F6675D53ACD734AE590EBD7A820929
-CBD4869D49A198024D9EBCAE49107BB571CBA6B97013598FC9E27C8A5B35B6E6
-0BA71017D0A870E01B36919BC094A01F81375D7C9B73CCA12AA43BAB37518030
-46C880386B1B0FCF6B70C3234D6F18ED9B81A1D5463206DC4F0CCD3585E20A41
-0E6F5DEE9BDDBC6FE9C7FAC90F8C568A24CCE3D01248A7F8649502C6368EB621
-DC5F0E3C16220367981083A9E57C683D160E8BD72FC3A7F06071DA4281868922
-B8EFD9BD6F76D8DCC2E5593C748040B0DB2F3E63C01A5E5A045F83327EBB9904
-57A8D37A4473BB900981B1B8EBEF84E2CB69EDD22E01500BF07ACA933BF32098
-679C11A08F9B02D74FA385BD50284FA92CE5ABC9CC393AB7416F4A6AAE996CA9
-5BA51A8B4BA8BF8CC55C1FE48AE281E544BAD7D3C6CFBE19EFA5EF05DE521015
-BE28F2F805110FD9ACE1806A0B85AEFAE7E7F21B9C01B6D57CC7BC4F4E9F890B
-E7A59F4DC6CF112F0E4DF7C760AD6A5BE5482E797CFDF528BFE99C781F5674F5
-E7BC259262416E2F90E075D23A72925FBE959E9D5C842832FCE2F6F391BACCDE
-DB6F44D2B667007DD8B32ECAC42FB19DA0C721DEEA5E08192FB12F238E74E659
-6A1AC0FFE93016EAA93491DEFC68C5F9E70235827EF44E8F1BB90CF44307A2B1
-9C04840395A6E4443AB49D338B320E290122EA0FC06BC1B7AE2685DF79E1BCBA
-A061C6F3BD13C75E4DEC45F604FC8828887EA610F77E21C6B292F769A16F1B04
-F53A097BFC90818D96E54CF1BECD94BD408DC483D3731603FB3BF937C3548601
-36D6ECBA1F47C2DE5832FBBBD0B31FDF9FB10DCE4C474D15C6EF5C2C7178E986
-9671D3119498259E386D01DC97CE590AD3939C70F7ECD291D4DAFE58193DA6AA
-775EE6036C49476066507C83261D2FFA21BC97AAE7E8F5F3BAB2B9264351AA2B
-16B6C84A5CD582219DD9F6C661CD8E3D8E2291330A49AE3B1B9567959A009352
-E00E15B777FB567191756AD5CD93B2623B18A65CE90D31AAB5ED8E11952D945B
-F083DDDC3728573DD52D79EF866D7EF2CFE7E63BE2C6DD54D2CF0C00D2F7E299
-D37CDC897C1BA3CB692CBEF3430E72552E8EF4CC0B5F64BC0A49F1816272A671
-CFB3343DAFFB75D28134BF58803BF9B0C5B37AD53130AF6498438396DB58F326
-28735416E55A456EF7EFECB0B5966BA7BD32D1DF2BAF10846640AAA512BEC468
-E88403E6620F33C536FAAC8AE4488428444B323E343393E9C4AC0765A1EA3F54
-D9375A5088DB1FFEFA4E12238813386C29EB1CDDEFA88B8C7F9EB8747C99DB1F
-FC66BC12E3B276E4DBC1FABA04
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 156 /IJ put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
-19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
-F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
-78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
-3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
-ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
-E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
-51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
-906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
-30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
-C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
-CF6FF708F7024031
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (diabolica.dvi)
-@start /Fa 141[55 2[67 2[37 4[67 1[61 35[102 65[{}6 119.552
-/CMBX12 rf /Fb 143[49 112[{}1 83.022 /CMBXTI10 rf /Fc
-37[66 22[133 52[66 11[66 56[106 1[106 7[0 0 7[40 1[40
-1[40 4[0 4[0 9[0 2[0 1[0 0 15[0 0 6[0{}20 132.835 /TeXMUSIX16-Regular
-rf /Fd 144[42 46 4[23 3[37 2[46 42 16[57 65 79[{}8 83.022
-/CMR10 rf /Fe 99[0 156[{}1 166.044 /TeXMUSIXSPX-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 68 544 a Fe(\234)p 68 645 3919
-4 v 68 679 V 68 712 V 68 745 V 68 778 V 68 313 V 68 347
-V 68 380 V 68 413 V 68 446 V 68 -19 V 68 15 V 68 48 V
-68 81 V 68 114 V 68 778 4 799 v -308 573 a Fd(Piano)-300
-75 y(Ob)r(o)r(e)68 677 y Fc(I)68 411 y(G)68 79 y(G)247
-777 y(?)347 843 y Fb(p)324 743 y Fc(2)p 402 743 4 117
-v(\010)247 328 y(\036)207 428 y(4)p 285 428 4 92 v(\007)p
-402 445 4 103 v 364 445 a(\007)481 328 y(\036)286 337
-y(\303)389 342 y(\303)p 519 461 4 113 v 481 461 a(\007)p
-636 395 4 117 v 598 395 a(\007)-3 -153 y Fa(Allegro)212
-229 y Fb(p)p 247 162 V 248 46 a Fc(\007)248 29 y(\000)621
-3 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 621 3 a 558 29 a Fc(4)p 598 137 4 108 v 1 w(\007)735
-13 y
- slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 735 13 a 735 13 a
- end
- 735 13 a -60 w Fc(4)599 137 y(\202)652
-134 y(\202)p 715 131 4 119 v 716 13 a(\007)p 832 778
-4 799 v 895 793 4 117 v 896 677 a(\007)1152 684 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1152
-684 a 1129 818 4 108 v 1130 710 a Fc(\007)1266 677 y
- slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
-
-1266 677 a 1266 677 a
- end
- 1266 677 a -60 w Fc(4)1130 818
-y(\216)1183 810 y(\216)p 1246 801 4 124 v 1247 677 a(\007)895
-328 y(\036)855 411 y(4)p 933 411 4 92 v(\007)972 478
-y(4)934 320 y(\332)985 333 y(\332)p 1002 479 60 4 v 1050
-477 4 129 v 1012 477 a(\007)1129 445 y(>)918 106 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 918
-106 a 855 79 a Fc(4)p 933 79 4 117 v(\007)895 63 y(\000)1266
-79 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1266 79 a 1266 79 a
- end
- 1266 79 a 1246 63 a Fc(\031)p
-1284 63 4 108 v 39 w(\()-39 b(\007)p 1363 778 4 799 v
-1489 787 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1489 787 a 1386 777 a Fc(4)p 1426 874 4 98
-v 1 w(\010)1426 743 y(>)p 1426 494 4 117 v 1427 378 a(\010)p
-1426 112 V -382 x(\007\000)1592 727 y(\031)1552 710 y(4)p
-1630 710 4 108 v(\007)1631 602 y(\202)1682 600 y(\202)p
-1747 694 4 98 v 1709 694 a(\007)1709 112 y(?)p 1826 778
-4 799 v 1869 793 a
- slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1869 793 a 1869 793 a
- end
- 1869 793 a 1888
-694 a Fc(\007)1888 760 y(\033)p 1927 760 4 177 v 1 w(\007)1888
-428 y(\033)p 1927 411 4 117 v 1889 411 a(\007)1888 96
-y(\033)g(4)p 1927 96 V(\007)2054 777 y(>)235 b(>)2054
-445 y(>)g(?)2077 19 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 2077 19 a 2014 46 a Fc(2)p 2054
-154 4 108 v 2055 154 a(-)2055 46 y(\007)2191 96 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2191
-96 a 2191 96 a
- end
- 2191 96 a -20 w Fc(\031)p 2210 79 4 108
-v 2211 79 a(\()-39 b(\007)2312 -14 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (15.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 2312 -14 a 2289
-129 4 117 v 2290 13 a Fc(\007)2290 -4 y(\000)2488 777
-y(>)2366 378 y(2)p 2406 494 V 1 w(\007)2711 770 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (0.79999pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (20.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 0 N end
- 2711
-770 a 2648 743 a Fc(6)p 2726 743 4 108 v(\007)2825 727
-y
- slur@Dict begin (2.0pt) GD S1hgt (6.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2825 727 a 2825 727 a
- end
- 2825 727 a -60 w Fc(4)2727 636
-y(\202)2779 633 y(\202)p 2843 727 4 98 v 2805 727 a(\007)2571
-445 y(?)77 b(2)p 2726 445 4 117 v(\007)2591 13 y
- slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2591
-13 a 2591 13 a
- end
- 2591 13 a 2571 29 a Fc(\030)2531 46 y(2)p
-2571 154 4 108 v 2572 154 a(-)2572 46 y(\007)p 2726 79
-4 117 v 2688 79 a(\007)p 2922 778 4 799 v 2984 777 a(\031)p
-3022 777 4 108 v 39 w(\()-39 b(\007)117 b(?)2984 428
-y(\031)p 3022 428 V 39 w(\()-39 b(\007)3101 445 y(?)2984
-29 y(\030)p 2984 137 V 2985 137 a(-)2985 29 y(\007)3101
-112 y(?)p 3218 778 4 799 v 3280 660 a(\036)p 3319 777
-4 117 v 3281 777 a(\010)3280 328 y(\036)p 3319 428 V
-3281 428 a(\010)3280 212 y
- slur@Dict begin CP /C3y1 ED /C3x1 ED /C3alt (88.0pt) GD N /C3dir 0
-N end
- 3280 212 a -216 x Fc(\036)p
-3280 146 4 117 v 3281 29 a(\010)3515 777 y(>)3515 445
-y(>)3515 112 y(?)3632 96 y(\031)p 3670 96 4 108 v 39
-w(\()g(\007)p 3787 727 4 117 v 3749 727 a(\010)3749 411
-y(\010)3709 445 y(2)p 3787 445 4 150 v(\010)3749 212
-y
- slur@Dict begin C3x1 C3y1 CP 4 C3dir R DC end
- 3749 212 a -216 x Fc(\036)p 3749 162 4 117 v 3750 46
-a(\010)p 3983 778 4 799 v 3987 943 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3987 943 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/diabolica.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: diabolica.dvi
+%%CreationDate: Wed Jan 21 13:56:46 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 34 664 552 800
+%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBXTI10
+%%+ CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE diabolica.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1356
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 65 /A put
+dup 101 /e put
+dup 103 /g put
+dup 108 /l put
+dup 111 /o put
+dup 114 /r put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2D4609D7
+D2E805DECFF5AF988F0808796D01500B18F0EFE1919743C126088426A5A27D4D
+03F21A15C23B9BF08DFD73708F2C1AAC530B2D00674DF2B5274D98C541905206
+6DD191F7458F1166231360871EA0C6AAE036BD3551B866DB578F29DEAFD289B3
+FA6E9CC4726B854E887BFFE87DA8AE960C817A1784031DA55BF78A79976A4FBB
+764DB071CF34E990D3531367408D37218B289FFDB701E870A32EC7ECC8C3D6FD
+90074953B49CABE8468930B55E5B5FE0FB302C8DBBC120A76AF9C2846C85E01F
+ECF513FA01B99C4F2ED6B902C842EF29F25789D8066B284AA832B8329224A14D
+92F49F2ED713D938A2ED14C1AEC4D73B6D6C0313293D18547DB010B2CC8CDF98
+8ED055570D39B01AA62FD6DFC6DF11BEABAA95FC7BAF76DD31E279F65F015E4F
+5638292A61635A6B3F2F9166E68585E41371A4F76F3011449188B5E6B4160518
+BE274DA3E8AADCBEC12CBC0C960FCF7ED30D17A96240AE3635C76EE25ABDEE3A
+5D5ED522BEB18E11DC1E1DB5F202673A8F4A2C80F89C4581875CA0470902638B
+F0D02673B4666C34103904901373FAF2C95210EB90B768B089DCB6771976EE31
+4EC033BEA244722A0755750F9FF437AE648CE60102390E459E7348AA1829A0E7
+B7D53464C332F216593999C6448419A67EFCBE6E06B5D20944630767922EE06C
+3BA3B34AA7EACF23B5EC0F433E4340990B55CF8379D7D1E93FE8871FDCCDAA74
+BB24DF5EA540072C54B85F40B1B55A5362DD9717A2E87D54489442CF48478FC9
+82E6C7130D88DD7E5BA2BDF8A477360A35294B5044513000D454CF53913DA0A7
+8D59FD768A5D4D80F6F376D95437A6492E75BD897C0C38340C094EF7F25C154C
+3A3C13CEACE051F9551CF66A2A583CD784880B44E19F19A81F62063F53EBC14F
+4494B181A6DA89F74089083C0405CF821C65008435E8EBC9516DED8A0990D5FB
+969AB5BC7A4B47FB9B3C2EB25CC21232337AF2FB3E0E7455E5A7D763C9DB94BB
+A941F65124C4ACB665968F4894B125777568FB381CDF09C02BD5E2612546C6BB
+2B3A12B74ECF99C16801053F50ACF6F385E77AB8DCFA921C5A4C628F57052811
+4D14E4DDDF859421174D7AAC6ACF8D4852A955E9872D4012D488EA78928C1FF4
+E1DAA8DC12D9E613E4EE895282577C68C9FBF1C96710F0B43254D366AF82B2A2
+CBF03B1B5B61BECCD3B8A1E230304E41D1A1A500555F1A752A492DD53B966536
+2BC19BB3D3A19162992228CC9A7C73A4BEEFF70CA925D4E36FE5F2C0CBF459E0
+D13B321F7FAD9635B14DD2B312FD6EAD2FC5411927F4B8AD43ECEE73071DCD6F
+31438A3BC07078F04A6CF179439B28DFFBFCD3DFAAC670690E29855C30D82177
+F2F087504AE7E2CF63E5921021F4BFFD592C58DB81818481815F8ECBB996B99F
+366DAB49482C09BC82042331872B5B71897A5AA3273C213532427799C980C9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 112 /p put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7C97C35EAFA47778CE03E863303582D8A9900EB1B623940B0807358C1A
+ADF30ADE694B653E32E635899367378C770B13D1E9C51E8127E19550ED085F63
+B21E3E3994B6D8509793C094C2B05AB846E5BDAF4FAE7E9DCEAFEC9CE55A447F
+B055846823C1F76126BBCB5F331EEDD026946C1F1EC8FC757DA5E1EEF2728439
+77B75667751A4303C4C9995B51F737E36407D3D9F8B9853CFB6A9E80CCD45E95
+5E2C361F6D78716FDB9B0D958FA699BCF7B5E2BAB95BF9EF6031A408EBB777C5
+DA9541E2A7331451BFD90A849C117A5AB2025FDE44A146F272852C1F5937857F
+F83F72E6B876DF198E00646120F7A7CC2B7534F1C4337915C58FCFE10B392003
+2739CF2CC74D30CE138C566A666FC0CB433ACE2322F486F3A5104985C26BF17C
+AE12796FD9467F84A86816F1D514F4187E823327496D4CD157958E5805E56961
+C5B8C3FAC57E2B870FAC8D1A49722E832BD9C8CFF3C3F3806B8913E5B4C7D5E7
+A64531DDD7334AA5CFBEEDD6BFECE143FFF7F7C23513A09D7725
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 24 /perthousand put
+dup 25 /dotlessi put
+dup 27 /ff put
+dup 30 /ffi put
+dup 40 /parenleft put
+dup 45 /hyphen put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 130 /Cacute put
+dup 142 /Ohungarumlaut put
+dup 195 /Atilde put
+dup 218 /Uacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF859449F6003874D095258B6F64ADC77D4830EB4B8B608DB3CB840D82
+75E4C819DAFEBB1BCE8B1518EEA99F8A79809C3BC0C39A9F36ED4968675C4278
+B5448E87397B9994127B6C41A6450F86A24ED491563370B43776BF34BBC2FCDD
+C44967CFB28B04E7A4A6968FC888607BA04952BA6FF345A44EABA4CA626F5CBD
+A262ED5029009388AE8E603F205FA45B5CE94452A1B9507B7A2BA757538FEB7B
+37355EAF0FD3D3D46D6A055EBDB681C5571E2D28FB7938AAA22E7D94B84F08A2
+5F8471744B9F8263D3FD1F5C324810FECBC42C915B3ECA50C477312DA5561824
+6A23E12C358DD5AF4516D82C33A8A4B4472AF361C3B2A0604745148F1ECA353A
+D07CBADC2174AC86F6EA6FBE992D1462259D82141FD6497E284F564B4A3E4B25
+943E7D0A2217C0E5F44226F2E4D147A4178A3D00D2CD1C9DB76123040AAC7EDC
+2C48CAB6CA3B68E294F0B8ECB6AC8BBC4D2064CADA1B4202F620DD6B9C2FE100
+5F9BCAEE97B9F1D60A4964B00D13425FC7831B3FF7FF911945EAC9FE54D521F5
+8E58EBB50D3767B649BFA2B147D82974EF63148E5695CDEF11687C780D3F9BD4
+C7614214554B63AAFE7F5448CC86DAF2E6DA7D88B24B3AD84F7BFB40D87D2DE8
+70848B02272F203FCE74437FD2699389DAEA5739EEED98D441F5C72FF26E9575
+25DB493B6D8C4C1E3910E72ED6C31A0596BB4CAD24AFEDDAEE0C06770952F3BE
+E530B5A486BB9E328E01AA202EFC5B4ABBCD95FCCBE1E1032B3376218012B284
+903F8B6529FDDD85541CDF4FFEE4C91833E622A5CBAC44E9B037B6EA009E7812
+390552ACCCFD3882F0C632F684F573B40D249BF62B18205DA8F7EC88B6B0BCF5
+277D9F3956D55685E4CE32E6A5D7F4AA12CF52A5185EADEE4E885C3A09637942
+E446BE455CA18CEAC731F2BF406C33B5DC9D35EA242BCBC553A2020C5359DA57
+309386AA2433B68A3590B2E2239EAC76C6B65E86BBB6A7FF7EE33EEE84780FC9
+C21C5C70E0852DD6BEC903631E21FED62EC80962C95B9EC08C78EA2C1815C9D9
+3AC9788D182FE1707A10534DC1C75614F207C67BB00C0C65225C06C2B5D74934
+517DE970899F69FA1DA40105FA684693C76E2A878CD6159F0B2DA35474244F99
+AD168A8512680F3FB137BA6E275805AB4E8E0E6454AC6523C27A0EEB74C5F824
+65F3F5920EF66EDC0EF3A15E445FE87571B95AB5D8BDF65DADCE83FB81CFE49C
+D8D7CF9FB27D10AB09B2AC831A3A701D1DE9623CC83C2C8AEAD0E4A462D7CD8D
+C2E3840EE3B152C1B89B179A8F4897BAC0688AF495BE59975B31BFA625FC2CF6
+6829DBB895C9810AFAA798FB9F1238E87A56BE0F8994161E870179B3DDE396EA
+EBAD661F889BC279FB332C51121E565A7DE52EA0E572A773A44192A08958A5D4
+BEEF2D99AE808B0DC965574414DC3E63E30D29B8E8DFCF6BA99D8FCFAEEB13B9
+684B382D90DBE47ABFDA06110F54E7A1D253B641F2308C54B4B71FC9E666D660
+82834EC0108581EBDE3EC505E6E5E3C9D58E0A154912CED02FDC8EB27609E047
+72445358B5401CD909A8C78E37699D883C99D2CDADAE678EDE012138D1641F34
+F9FA5931AC50E79E829444CC6E33C4752A755509D9A3739B5B675C3C797E4A5F
+F8B5D1C680F0062239ED8F8D8936D5233D2E54189C4F57FDB7E1C5D4DF4D7BAC
+CA0AC6755DEA87F7B02738C9DB5FF5CB13D0CAA2DA8A7B607F87A2B5EC94FBD8
+CF3C6457908F5C8AAEB789720D25CD471AD3696756773C55A65AADAA341F2F32
+4AA8C2FAB3822ECCBE4A55BC2873D9BD02F6B428CBA293BB8E2E551AE38A8ECF
+428D2808B044FC9C467FD7861876FAAB59AC76F26B80FED55CFAF38DDDDC909E
+36F14675E6CEAE0322CACAEB21C73D6DECA1BA4DF44E90255CD2A01CE35C12C3
+5C98FAF05EF33FE24E4D1B044846C308D4687822ACF335AB68E8A0340B8D18D9
+FB28659084D793B65CE91A72791BAD7117E7CD64F3C98BE6CECCB12FA7B7A1DB
+244DD0D11E925250DAA2A56605AD654BA87CBC143F74FB63530185F7E43F5EC3
+F445E5CDB6E745A8A765C3C5B6A3A954464211EBD7B404B72F2D555CA70F8BE3
+3BC18E5D0986A97321495D38BC8D05DABAAAB0F38BCA279F3B7C3B363B94F08F
+CA20EB10E87B739316597D89E6A5907850202DF7E3A8DB28741F21E2AF56B166
+9206D521A34A7534954AB37E33F5DF32521411AC26D2E55B495D2AF5E0302919
+2373FFB2DC735AA149DD7338F0BFBAF2F399C1760D93F22C9200E5975EC9BAC7
+FC9C9FC3F44D78516AF7464E27278732166C290864CF1F3FB85410A6936FE12E
+7DFE3FEC438AC68994599CC5D1AEBE335C7C6649890783692A0331AB8EBD03D9
+AED155C5EDEBBF141987C6317CDE09F1B17FD2537E7FC3E5578E0125FE3538A7
+2EB8D8FED7282C5F38ADF7CE8949140411A5AEDE341D89F0A4D8131E20BE0B92
+78CD537A36DEFE5A3CCCA6E7C196BDFED4EF53EFAC1B7F087AEF29A51E7775C3
+CFB98FE58E123534D95257B47F51D10E4FD6DDBF5ABF3F921A0A978AA8746CFF
+34F0AF300DCC766FB4A86F34D03FA442E72974EE29591A41C0C9592E68C31AAC
+0CE15B16A5329EF87D30B29747E5C03808E42889C362934EBFC2182397E5CF91
+1E68212CFEFB17EFF9DCD7722A1A231E8599F655AB34348C9FB6C08D1FAF751C
+6195E3C480E997822AD8E123535160707047FF314EC7933B02693214EE9F93CB
+50DD86904B48068AAB525EABED76502F07AD865855819D477857A53E1738E247
+B69D8A1BD905C67C33963E568DC01C699100B857DC199671D50521EBB9A88CAC
+C2941B426B43C74316FD66D77D461973784B3563227B2D4927A31EB5AF7F44EA
+BD13646AF56A83610356FF24744E8120C3452C25DCFB6DA111F24954D8565182
+26FBB74CB08C9C388745ADA5B0726DEFBABB84D6FF0105A8C6629B11AFF30FAB
+F9835EE1E15AFAE583B299B3ECAAB25818845B439BA341EC77C097AB48300246
+60EF2589A60A3AA9C047601532B4E22656A296A127B0D85B7C75233CCC1DBF27
+F59CB0616C732CDFD426AE0DA2139C7AD84CCBC9C9F34E995673F84E24B31668
+7F37747AF78A8D2EF8ED477A39DA9475976AF791463BCDAF8BD20876DF12E224
+B122849A670D40541C49BCB168DE5E2CAB1CD641407C3FE257C883C85CB0335E
+82F39289A2F99F2B460A7114E13F2207D40FCAE012AA600BB68E35B826C80848
+2BB2A46462322B9955C3B94BD5E86907E30E23383B9AF0BEEFC359A83EA0D92D
+F7987EF3B8213CB50DF587DFEC33FF6879F2EF00F789F50B4C9320443698C99B
+32A47BFB7BBD9ADB3F31801A9CB666C33571DA2F7A877D8F62C949A4A723CB17
+6457D647C4DCD5DA61BD0FBD228482B79E5980F903B439A5385CC375F555618E
+8B06354205582A076F94C900C1C31E8E150CE2156B95BCB67BADCED4DB05A1A2
+B8956009FD1AAA2C0D8A6EE857DDD68A75C86EBFEDBE7E4EF5769F053E52BA0B
+69FC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 79 /O put
+dup 80 /P put
+dup 97 /a put
+dup 98 /b put
+dup 101 /e put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
+C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
+F9180171E06B8DDB646FFBDF5AE5AA6B98F96A4FEC45980DD8F011EA7635AF38
+13D9897026EC0675EC58C2E9FA51041A5E04A4C1CD1D33D5E8BF44603E0792D6
+E631D300A32CE71394F6605CBE638D9A6B5A0DF28C4D81535BA08866396EB9C5
+838916877F088B097B2FD6291D92A31D7605E1E3E03EA442CE7C35FCE0A2E72A
+6FBB9EAA77C3E1CD4050AFE0CF39A32316087D257255FBBBA1E86D352FF8A9BC
+757F9DD3565AC9CBA53D1E917F7DE95159AB5C2AF6987F3F929B6F63B6AA9D8F
+29A3E7D6A14279FD8F9BEF14934F3297217F4830258DF237F89FD7E4C19F580A
+10D280FC4E3F259BC9509B61988E07727C6275660C800847F92B17FD7DB1DE0A
+73B4CB3A597E48FE7419F71208E2F769C1F3168815DF3A649BEB504F0E0508B2
+E3185DCFE40DF05343FBC05E7C0D6C652E54AC33D14D56BF9CE5188CB7142884
+404235ABB13E66EA9947DD4E364714EE7E175E14D3DADF80C2FBD0982BE0E5D4
+45BC41FC0B851C103BE47B171A6DB3AFA1EBA682769674176AF3BE61FC4CD834
+701BE189EBE4700B7ED706456D59A95080C294A42767A44977413682BACE5D99
+A2F71120332E1EBD5E20BF896782A7A5FD41039C81D574AB892C8D0D81A7C60F
+6845C871393E7A254DF44775DD9B7B5C2DA011AED69EEB13CDD1ADBFFFDC123D
+DD65F21FABEFBDA583B99797DBF5F133777D32045C3D67CCD092C076EBA0BB60
+C5BD25A6A80ADE2AABC93DC48EC97FA028B8675AA76ED464CD11CA4161A94CB9
+936EB0F80EA505C3273358D71A6264EBFB519C57C2794894EE4B349B6983BD0E
+1D017EE096CD3E0F0815665B02DEE40FC10F2E16CF6D0A9AE58401445FE09CE8
+006A45714DC0E76CE95A5AF28EF0954AF6F6675D53ACD734AE590EBD7A820929
+CBD4869D49A198024D9EBCAE49107BB571CBA6B97013598FC9E27C8A5B35B6E6
+0BA71017D0A870E01B36919BC094A01F81375D7C9B73CCA12AA43BAB37518030
+46C880386B1B0FCF6B70C3234D6F18ED9B81A1D5463206DC4F0CCD3585E20A41
+0E6F5DEE9BDDBC6FE9C7FAC90F8C568A24CCE3D01248A7F8649502C6368EB621
+DC5F0E3C16220367981083A9E57C683D160E8BD72FC3A7F06071DA4281868922
+B8EFD9BD6F76D8DCC2E5593C748040B0DB2F3E63C01A5E5A045F83327EBB9904
+57A8D37A4473BB900981B1B8EBEF84E2CB69EDD22E01500BF07ACA933BF32098
+679C11A08F9B02D74FA385BD50284FA92CE5ABC9CC393AB7416F4A6AAE996CA9
+5BA51A8B4BA8BF8CC55C1FE48AE281E544BAD7D3C6CFBE19EFA5EF05DE521015
+BE28F2F805110FD9ACE1806A0B85AEFAE7E7F21B9C01B6D57CC7BC4F4E9F890B
+E7A59F4DC6CF112F0E4DF7C760AD6A5BE5482E797CFDF528BFE99C781F5674F5
+E7BC259262416E2F90E075D23A72925FBE959E9D5C842832FCE2F6F391BACCDE
+DB6F44D2B667007DD8B32ECAC42FB19DA0C721DEEA5E08192FB12F238E74E659
+6A1AC0FFE93016EAA93491DEFC68C5F9E70235827EF44E8F1BB90CF44307A2B1
+9C04840395A6E4443AB49D338B320E290122EA0FC06BC1B7AE2685DF79E1BCBA
+A061C6F3BD13C75E4DEC45F604FC8828887EA610F77E21C6B292F769A16F1B04
+F53A097BFC90818D96E54CF1BECD94BD408DC483D3731603FB3BF937C3548601
+36D6ECBA1F47C2DE5832FBBBD0B31FDF9FB10DCE4C474D15C6EF5C2C7178E986
+9671D3119498259E386D01DC97CE590AD3939C70F7ECD291D4DAFE58193DA6AA
+775EE6036C49476066507C83261D2FFA21BC97AAE7E8F5F3BAB2B9264351AA2B
+16B6C84A5CD582219DD9F6C661CD8E3D8E2291330A49AE3B1B9567959A009352
+E00E15B777FB567191756AD5CD93B2623B18A65CE90D31AAB5ED8E11952D945B
+F083DDDC3728573DD52D79EF866D7EF2CFE7E63BE2C6DD54D2CF0C00D2F7E299
+D37CDC897C1BA3CB692CBEF3430E72552E8EF4CC0B5F64BC0A49F1816272A671
+CFB3343DAFFB75D28134BF58803BF9B0C5B37AD53130AF6498438396DB58F326
+28735416E55A456EF7EFECB0B5966BA7BD32D1DF2BAF10846640AAA512BEC468
+E88403E6620F33C536FAAC8AE4488428444B323E343393E9C4AC0765A1EA3F54
+D9375A5088DB1FFEFA4E12238813386C29EB1CDDEFA88B8C7F9EB8747C99DB1F
+FC66BC12E3B276E4DBC1FABA04
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 156 /IJ put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
+19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
+F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
+78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
+3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
+ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
+E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
+51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
+906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
+30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
+C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
+CF6FF708F7024031
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (diabolica.dvi)
+@start /Fa 141[55 2[67 2[37 4[67 1[61 35[102 65[{}6 119.552
+/CMBX12 rf /Fb 143[49 112[{}1 83.022 /CMBXTI10 rf /Fc
+37[66 22[133 52[66 11[66 56[106 1[106 7[0 0 7[40 1[40
+1[40 4[0 4[0 9[0 2[0 1[0 0 15[0 0 6[0{}20 132.835 /TeXMUSIX16-Regular
+rf /Fd 144[42 46 4[23 3[37 2[46 42 16[57 65 79[{}8 83.022
+/CMR10 rf /Fe 99[0 156[{}1 166.044 /TeXMUSIXSPX-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 68 544 a Fe(\234)p 68 645 3919
+4 v 68 679 V 68 712 V 68 745 V 68 778 V 68 313 V 68 347
+V 68 380 V 68 413 V 68 446 V 68 -19 V 68 15 V 68 48 V
+68 81 V 68 114 V 68 778 4 799 v -308 573 a Fd(Piano)-300
+75 y(Ob)r(o)r(e)68 677 y Fc(I)68 411 y(G)68 79 y(G)247
+777 y(?)347 843 y Fb(p)324 743 y Fc(2)p 402 743 4 117
+v(\010)247 328 y(\036)207 428 y(4)p 285 428 4 92 v(\007)p
+402 445 4 103 v 364 445 a(\007)481 328 y(\036)286 337
+y(\303)389 342 y(\303)p 519 461 4 113 v 481 461 a(\007)p
+636 395 4 117 v 598 395 a(\007)-3 -153 y Fa(Allegro)212
+229 y Fb(p)p 247 162 V 248 46 a Fc(\007)248 29 y(\000)621
+3 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 621 3 a 558 29 a Fc(4)p 598 137 4 108 v 1 w(\007)735
+13 y
+ slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 735 13 a 735 13 a
+ end
+ 735 13 a -60 w Fc(4)599 137 y(\202)652
+134 y(\202)p 715 131 4 119 v 716 13 a(\007)p 832 778
+4 799 v 895 793 4 117 v 896 677 a(\007)1152 684 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1152
+684 a 1129 818 4 108 v 1130 710 a Fc(\007)1266 677 y
+ slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+
+1266 677 a 1266 677 a
+ end
+ 1266 677 a -60 w Fc(4)1130 818
+y(\216)1183 810 y(\216)p 1246 801 4 124 v 1247 677 a(\007)895
+328 y(\036)855 411 y(4)p 933 411 4 92 v(\007)972 478
+y(4)934 320 y(\332)985 333 y(\332)p 1002 479 60 4 v 1050
+477 4 129 v 1012 477 a(\007)1129 445 y(>)918 106 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 918
+106 a 855 79 a Fc(4)p 933 79 4 117 v(\007)895 63 y(\000)1266
+79 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1266 79 a 1266 79 a
+ end
+ 1266 79 a 1246 63 a Fc(\031)p
+1284 63 4 108 v 39 w(\()-39 b(\007)p 1363 778 4 799 v
+1489 787 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1489 787 a 1386 777 a Fc(4)p 1426 874 4 98
+v 1 w(\010)1426 743 y(>)p 1426 494 4 117 v 1427 378 a(\010)p
+1426 112 V -382 x(\007\000)1592 727 y(\031)1552 710 y(4)p
+1630 710 4 108 v(\007)1631 602 y(\202)1682 600 y(\202)p
+1747 694 4 98 v 1709 694 a(\007)1709 112 y(?)p 1826 778
+4 799 v 1869 793 a
+ slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1869 793 a 1869 793 a
+ end
+ 1869 793 a 1888
+694 a Fc(\007)1888 760 y(\033)p 1927 760 4 177 v 1 w(\007)1888
+428 y(\033)p 1927 411 4 117 v 1889 411 a(\007)1888 96
+y(\033)g(4)p 1927 96 V(\007)2054 777 y(>)235 b(>)2054
+445 y(>)g(?)2077 19 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 2077 19 a 2014 46 a Fc(2)p 2054
+154 4 108 v 2055 154 a(-)2055 46 y(\007)2191 96 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2191
+96 a 2191 96 a
+ end
+ 2191 96 a -20 w Fc(\031)p 2210 79 4 108
+v 2211 79 a(\()-39 b(\007)2312 -14 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (15.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 2312 -14 a 2289
+129 4 117 v 2290 13 a Fc(\007)2290 -4 y(\000)2488 777
+y(>)2366 378 y(2)p 2406 494 V 1 w(\007)2711 770 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (0.79999pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (20.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 0 N end
+ 2711
+770 a 2648 743 a Fc(6)p 2726 743 4 108 v(\007)2825 727
+y
+ slur@Dict begin (2.0pt) GD S1hgt (6.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2825 727 a 2825 727 a
+ end
+ 2825 727 a -60 w Fc(4)2727 636
+y(\202)2779 633 y(\202)p 2843 727 4 98 v 2805 727 a(\007)2571
+445 y(?)77 b(2)p 2726 445 4 117 v(\007)2591 13 y
+ slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2591
+13 a 2591 13 a
+ end
+ 2591 13 a 2571 29 a Fc(\030)2531 46 y(2)p
+2571 154 4 108 v 2572 154 a(-)2572 46 y(\007)p 2726 79
+4 117 v 2688 79 a(\007)p 2922 778 4 799 v 2984 777 a(\031)p
+3022 777 4 108 v 39 w(\()-39 b(\007)117 b(?)2984 428
+y(\031)p 3022 428 V 39 w(\()-39 b(\007)3101 445 y(?)2984
+29 y(\030)p 2984 137 V 2985 137 a(-)2985 29 y(\007)3101
+112 y(?)p 3218 778 4 799 v 3280 660 a(\036)p 3319 777
+4 117 v 3281 777 a(\010)3280 328 y(\036)p 3319 428 V
+3281 428 a(\010)3280 212 y
+ slur@Dict begin CP /C3y1 ED /C3x1 ED /C3alt (88.0pt) GD N /C3dir 0
+N end
+ 3280 212 a -216 x Fc(\036)p
+3280 146 4 117 v 3281 29 a(\010)3515 777 y(>)3515 445
+y(>)3515 112 y(?)3632 96 y(\031)p 3670 96 4 108 v 39
+w(\()g(\007)p 3787 727 4 117 v 3749 727 a(\010)3749 411
+y(\010)3709 445 y(2)p 3787 445 4 150 v(\010)3749 212
+y
+ slur@Dict begin C3x1 C3y1 CP 4 C3dir R DC end
+ 3749 212 a -216 x Fc(\036)p 3749 162 4 117 v 3750 46
+a(\010)p 3983 778 4 799 v 3987 943 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3987 943 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dottedslur.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dottedslur.eps
index b3d32775f33..0b602e6cfe1 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dottedslur.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dottedslur.eps
@@ -1,596 +1,596 @@
-%% LaTeX2e file `eps/dottedslur.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: slurs.dvi
-%%CreationDate: Sun Sep 28 16:03:13 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 751 312 783
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE slurs.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1603
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
-C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
-F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
-466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
-5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
-17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
-60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
-6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
-DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
-3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
-2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
-5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
-0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
-0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
-F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
-119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
-B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
-9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
-3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
-343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
-D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
-D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
-ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
-B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
-7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
-ED20FDD0676421B24C81741678D49E2CF1EC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (slurs.dvi)
-@start /Fa 59[266 124[106 62[0 0 7[{}4 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fa(G)-133 89 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -133
-89 a -118 63 4 117 v -156 63 a Fa(\007)80 13 y
- slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 80 13
-a 80 13 a
- end
- 80 13 a 92 129 4 117 v 13 w Fa(\007)364 -47
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 1 N /S0adj 0 N end
- 364 -47 a 341 104 4 125 v 342 -20 a Fa(\007)p 516 113
-4 117 v 517 -4 a(\007)p 692 122 4 109 v 693 13 a(\007)887
-29 y
- slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 887 29 a 887 29 a
- end
- 887 29 a 341 104 a Fa(\304)606
-118 y(\304)p 867 131 4 102 v 868 29 a(\007)p 1043 98
-4 135 v 1189 19 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (9.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1189 19 a 1172 46 4 117 v 1134 46 a
-Fa(\007)1403 79 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1403 79 a 1403 79 a
- end
- 1403 79 a 1421
-79 4 117 v -20 w Fa(\007)p 1669 63 V 1631 63 a(\010)p
-1982 98 4 135 v 1986 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/dottedslur.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: slurs.dvi
+%%CreationDate: Sun Sep 28 16:03:13 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 751 312 783
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE slurs.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1603
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
+C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
+F53C14821D671E086E5BE271924C3F9879A9038BC3B0E424F35764EB81C93A77
+466C0648A983F0D97225D4199747656ED4CDC84526D02008B5BDC9DB94564172
+5B89523CFCCB299907325BED19BBACB17DCD68E5CD534161F770631E58F0E682
+17DB03C60C5F244E0C2582CE019991BE1CB441EFC64B8B3919C6C86A732C17AF
+60F6E33AC35C35904FB27EC294B37FFFBA8FB5095DC1C7EE6A6160371A41C543
+6A9ED7F19FD13F78E6D1B1D0BA37EF8923B9DEE9C2EB922B4FD553DD6178AB89
+DB446BE4DAA1D88A7A6BA30978C557840A92D9A7887B7F442D8CEB0FCFC18C4E
+3C99B38E9763D47E244FBD0ACBD76ECF7DACCBEEB4B485C709043A6FA21BCFA2
+2E0947514C1987D36073EBA09554306B72A2DA7DBA4E9D337F5D56F9B6B35E17
+5DE195A7810D644F4951A230B5F20D9077C6491A73192B8766AE7AEAAC7DD0F6
+0F5F82393FDA3E192BE5D231D98652D3798598F36A148A86ACEA1112C33B29F2
+0CEB430840F3A84A2A4FF086216F09A367B0E1F07F118391E203C1A66AFC70F3
+F8B0B37E27EF5B2BCE35E41F279BE052B1C935E9AF4B5B7795E0CDD21F77C06F
+119DEBD2A3A6A7137B91F1DCB62759428132402C99F25E232C3EE361346263DB
+B08B4A6B88051A0A44D11D6E7126475ED9242CE67746364970306EB70F0A9E7F
+9CB2EB93C30936DA148486D9F1F341798FD504B7D8364E277010C1516DC4EF6B
+3038558DDCA85CCD8448F12EA8A7BEEAC936A8A0FF7BC20E02C41B3BDEDF8746
+343C6DB54EA12B31C73DF5D5BB59591BDCDA6FCEBE5C580E6F5CF811CACB8EFF
+D7E5D5D83AF9187F7F64A634CF2FA7D9FF944D4C5D05F451A4E2CBE93C3FA044
+D7839CD6006890CE92C7CB796FEE6FA155931BDC11F19ADD26C5332EBF414280
+ECD59EA9555F2959DB8DDD05ADA032410D6631B9CD71E3468DD12D49F222E64B
+B557EBFF80A826DD781BCC521B4F08FC3F59F70E372E8615DCA9360D6808EE9F
+7019FE83FFF9B53C4AB39D33B0CD9CB0BC86EDC231D9106794CC322615EF54CF
+ED20FDD0676421B24C81741678D49E2CF1EC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (slurs.dvi)
+@start /Fa 59[266 124[106 62[0 0 7[{}4 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fa(G)-133 89 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -133
+89 a -118 63 4 117 v -156 63 a Fa(\007)80 13 y
+ slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 80 13
+a 80 13 a
+ end
+ 80 13 a 92 129 4 117 v 13 w Fa(\007)364 -47
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 1 N /S0adj 0 N end
+ 364 -47 a 341 104 4 125 v 342 -20 a Fa(\007)p 516 113
+4 117 v 517 -4 a(\007)p 692 122 4 109 v 693 13 a(\007)887
+29 y
+ slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 887 29 a 887 29 a
+ end
+ 887 29 a 341 104 a Fa(\304)606
+118 y(\304)p 867 131 4 102 v 868 29 a(\007)p 1043 98
+4 135 v 1189 19 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (9.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1189 19 a 1172 46 4 117 v 1134 46 a
+Fa(\007)1403 79 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1403 79 a 1403 79 a
+ end
+ 1403 79 a 1421
+79 4 117 v -20 w Fa(\007)p 1669 63 V 1631 63 a(\010)p
+1982 98 4 135 v 1986 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dufay.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dufay.eps
index b0782a6cf41..10d5f8a4601 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dufay.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/dufay.eps
@@ -1,1201 +1,1201 @@
-%% LaTeX2e file `eps/dufay.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 21 67 550 788
-% EPSF created by ps2eps 1.39
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: dufay.dvi
-%%CreationDate: Fri Sep 13 17:31:23 2002
-%%PageOrder: Ascend
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX20-Regular CMBX12 CMCSC10
-%%+ CMR12 CMMI10 TeXXSLZ20-Regular
-%%DocumentPaperSizes: a4
-%%EndComments
-%%BeginProlog
-save
-countdictstack
-mark
-newpath
-/showpage {} def
-/setpagedevice {pop} def%%EndProlog
-%%Page 1 1
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 dufay
-%DVIPSParameters: dpi=2540, compressed
-%DVIPSSource: TeX output 2002.09.13:1617
-%!
-/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
-/p{show}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
-%!
-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]/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[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
-%!PS-AdobeFont-1.0: TeXXSLZ20-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 505 495 0
-FontDirectory/TeXXSLZ20-Regular known{/TeXXSLZ20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXXSLZ20-Regular) readonly def
-/FamilyName (TeXXSLZ20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 505 def
-/descent 495 def
-end readonly def
-/FontName /TeXXSLZ20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 65 /A put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-5505 -461 5505 467}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE1CE994ECFA050F63C73A7
-AB8D11FBB3EF2BB5BA243840E8D7B831A1760B938E16B3F63455E6DFC5224910
-3738DDEB2C4BA5C23FDF84EC4FF1E8F598E0DFE205EDB65CF32BC403A197CE78
-B7EC5B1B5045C134D672C87683A47ECBBA0978CDD39FA06EB38D3DDFC69018C1
-979AD5EC977C8A0FE0244B44109952602A0E024A26EC6164A28CC1A189283EBE
-C280A255CC6499FD8828B1B3701E4113FE987E008117FA45662BA32C9735B6EA
-A5A2A2A0977ADE3E6DC73ABBEFAFC4B6644897C2B8C5F26652BB5E7591D7E779
-360CFA850A2048EE4A8590182F6A65D63FCB9A5F1B1F5F094ED572AA1F3D92BF
-007EDE5620DC347A1CFB3239800DD6F11E00B5D54F20DC3D8A01507F648221B0
-A57E91C1F91EF913AAECD01D064BD15BB73063417FC48919BBA377177966FE34
-63BAE2C6354FF6A9761C55DAA96303E2845FB38FB2C1501D2F9ADB5D3E324BD8
-203CB0DFFCC2067C591328E391BA0BA2D76D94BCE9E2F06F49A6F65CFF1A65F8
-F0C1310799AA906D239C5F0CA0BDAD091C471DF9EDFA2A0957C2882C72ADA022
-27A004300247C29FCD28EAD0D1E39C227EC99F06ACFA5F447F8A79D7191ED6D3
-4F27F54AC93225C74EEDC0838A45A08EA3FEC14C717B81F0FF7E8CFCCD4B0DF8
-C26E03B96FD8BA2447B77D138478622FD6644FC0CBA495276C83235B5CE69312
-A15B016302535A9DA9C3F05580F4732AD4C1260391C0B26041EF6E529EB4289C
-B72A6057A39C74B4E8E258E8C0637D2AFFBA4922A890A108074D1096339D5271
-5183B793CD1A92E695534DBBEC99ED28D2B4A7B605AB886FE31A5A8AEAB50B42
-5969F3A0D80D0D50C8569E329C1CA254D9C12865966D09C83B073E96C42DEB0C
-FB942DD30D4BE453211E630926D3774D99D0263D3D8E3D203A5B1F419F82668B
-6BBD4ADD6E76F0CDD30F0BD88BF0377F325356FF86AE
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.1: CMMI10 1.100
-% 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 49 /oneoldstyle put
-dup 50 /twooldstyle put
-dup 51 /threeoldstyle put
-dup 53 /fiveoldstyle put
-dup 55 /sevenoldstyle put
-dup 57 /nineoldstyle put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-/UniqueID 5087385 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
-95601766730045C2D9F29DC2BFEBDE5E7720CC7D8252373BC295E41F22C52DE8
-915D866088FA11BA9F227430FBBA595C857A121A5DA4EA342D585A2FC8953349
-FD794A76B55595B50A86395FE3FD0F8B705C4D7C0000290859846FA1EBAAD5DD
-EBA9DC2F294374ABB6F67003A47835FD2F932446B931923A8CFE6EF494D98F0E
-EB7F60EDB1177F3F36B345FA66615A541E1FF750DEC539FC30BC206089670F73
-1DF1737FC4789F62A9B525EC774AF10D42E8D8D84028E763099E81F8B5877F33
-12C557D7A253E60933FE0D11A7A9A978D9F28A453DCA034305F151D0535BB62C
-535372ABF51F46218EA066DAFBBE215F71894DBBFBAA4B7BBC4B7F2D6B0F0993
-D768DB61CF6E4D09C9CF02B4D989B430A22B48E8D530BC85FE736475CE7C039A
-C8D5716388278D187F06B2976FE16AF966C1C6C35C90D87C41B9346217E39953
-64B8F8C333464C7BBF65D384C92E6BC1B63F176A8787C4437A4C4F0D73668448
-2C7BE6FF27322C803CAF343796841F4545A949B5EE0AF4CE94FE1922888756CC
-7583BD19A005CA24D67AB925486893B23DA3BABF6EDEF4AEC9825C0F98EC6AB6
-7AE0C63EE95A876D4777457A08CA4B2F75ECD24C997D8D154D46DE4A9C551E09
-A9C01D729BD89ADC9AA478E439A5A4DF6AE5AEEC7605A6807C33A81F057BA027
-26472B8E8AFF2FA807789444964810AB25875DAEA290F3C7A7F1066EE9B6D837
-0F6FF508495DDE64F41B7B90A9F2689B627601CCA500909B5B51C72AA5396561
-118EB471F7D7FAAD77A3972DCB464C63412D55344989FC252FF5DA5537C5D9D8
-0570C9ACE926CC783A114758069DB064A8846AAA4023B404621E4A285F2565ED
-07A505B5D2D4E2D0367C6EFB84CDF79FD8D29E6E743882D19A10B949CE99AAFC
-C0E033739A2067E4BBBC094EBA52CA5466B11E1D5A497AF0D9595D15DA64875F
-B27991AFC5843DEBD70DB899A0A174E0D15FA76F23ABB62EED0B110C5F0984D6
-D0464E3AAC0494C7819218064C78E1C8C4AE99B26A860FB2CF169DD290D78F5A
-F73E29177876F69A33E9130D5050C399EC2BB5AE0FC9A85FE204A79FCAC95A70
-FAC46A41D4543FCAF16AC56AD9D6AAA259B1A73A1A718E23447B813D0879A114
-D62608CA84890C2FAD6760B3AFEDA8C09B8190ED8DCAC82DA47900202097DE8F
-5F47794B6C75617193D7659F234A5523B641CDD54F55F370AFCBEB67750DA60C
-C84CDBEDDB03DA761934A09048D59EA7664FE6E04354777D0EEAB4D6AA69E8F1
-EDEED4AADED0BC6926BA284A3699B17F8773AF08417A12CB2C9242E6F0E848EE
-6C43213C588E3C3D18DC6C10FD4471BD851CDCB0261FE6AFE6894D8EF04167FB
-4512AC5252BDE4307B6046893C2B23A5A0F253BE4BE182D7F9624AD1E7AE3872
-34D3B168C3B05492BCB9540695C2DA431552110E7918B6CF04AE889CE27D13FA
-92AD05CF8BC5CF989E6D6ACB36CECBF19E0D440F664FEA0FDF8A8230E2B5E0DE
-85042A3D67A855B248061A5E54BF9797889372496BA278EA6D2CA7E0C5014D05
-2D70911FAA1C509BE801929308BD01CE2BBB1D3CDC3F49397AB9FE5536361D23
-62A2AFB4453150349B7F7C21F5B6BF7D681DEC6F3D81F41B53FB4CD0A3B7C5E3
-D25997CDCFF4106ADE8E9A00FA7C7A45BC16DC1DB117F012E9FF5FC78C3514AA
-F95F0324630BA80290FED6313EAF0ED0F32BB5B9013B96329277C921D31F2281
-001B4F722E65DC28EB509745E6B0EFFF588772AEBDA893CEBDFADF53CBC9A9AF
-6C2827FA5461A9BA728CD53BA25B5B33A5D43D03E24DAA35736423DE4C48056A
-3A06AE54E2D67FED955D8640A490809737
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR12 1.0
-% 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 (CMR12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR12 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 40 /parenleft put
-dup 41 /parenright put
-dup 48 /zero put
-dup 49 /one put
-dup 52 /four put
-dup 55 /seven put
-dup 63 /question put
-dup 68 /D put
-dup 71 /G put
-dup 97 /a put
-dup 101 /e put
-dup 102 /f put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 117 /u put
-dup 121 /y put
-dup 123 /endash put
-readonly def
-/FontBBox{-34 -251 988 750}readonly def
-/UniqueID 5000794 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
-68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
-3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
-59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
-51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
-DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
-AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
-45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
-821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
-96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
-9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
-26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
-140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
-1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
-1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
-377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
-0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
-5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
-ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
-FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB0F7F496AD
-7A919E031AC74FE7BEBA9DAFC47135B20B725741CA0DB97DC98279CB5D0C8355
-269C109DEE7C4F5943413ED6D8E063071D4E1A3F2806DDA95BF2DF0C5EF1C08B
-2530E12743B247F0FDAF0ADBE00A674233DB3892BCA81C70D39CA2F8676787AB
-BF90F4E095DE28DE3BF4594899B0F2CAF5C2CACEA240E3FB92C510AEDBE579B2
-F3A5FA4C42C62D26EC30C6E64B4676327607A94DBB20835214229B61AF6B9D3E
-85966D6D669105D4F44AF42AEE9825074790D6B3C2503BFEEC89CD7775B3F47B
-A9FAECC40F8990666D1F4F34D8B5C0A9A61DC9C1E2D317869EF7694C18B13624
-C6FC852C7CE9CA769081F40FCE1C466B72EF4D85666BD0512EB411F540C5E096
-85D5D83829E6815CA34F2DDC9969FEAD6B0A4C7DF2AF27A97DAB8B0C2DEF08CD
-FF1F6F5789F66CAF83932E9AF742524F5C566E3A0EBCA89FD3FDA2078519086D
-DE6C125605A89273F3764C3E7AFD0D8360551158555AE7B7F8B05B2911EE3D4B
-6938BE85024BB35075785C785E60678A0307AFA18CA21058953A27797F8519EE
-99F08390A9D182DE9C25001E4B2302CDE7ECB7EC17E0F06644F7E6AE69420732
-D69112795C5F39D50582B49D42D9E45EC92F1300464520E3E19AD7BDFD696122
-22C1E792AB3B781162B17B8070B7E913101DDBC82FC91BC6860015526D033970
-F2DD866AE1E8AC94E7B9A6429CD2B700BCC192E6374D59CC4D1E2BE35E43BEA2
-7636E89D31DCDFD72CA4227635B1A2F7A4362D0D02BF72559BD9FF9DEAEB6B18
-5239715A886E9B9C358324DC7A7A6BD0C84261A2B8163CD4E132593569F2FDD9
-DB64BAAFDDC5EDAD964A193166F0B22B2F1265AF8235F7D760303313A2155A90
-85DB651FF48749955A7D1D8EE5C1A18CE7122D471B943C25CC7A3E694249BA5B
-F2AA83D4E504C4BCE377A583DBD2A435EFD0147BE464897F8FE9AA95E781A579
-5B782416F3741631D580DFFC85D21B3CD33A77E99FA463B5B8DAD75A23EA32DC
-06DADD7E207010DB2007C6D42059AFDEA2D972754F1C9A2A5F0BEF966D9E8EFB
-8649DCD1362ED7E9613284244813E3660504DF2C920995D54B10D38BD578D4D1
-519A4684D2F499126C521939389D362DB5FFE16208ACEFBA9500F6C59FB05E6A
-D4AB3C88911C717935A273D253A36C1A3B8CBA3C120034DCFE3749DAE7C9899E
-DC671622CF97932285427CEE2D8945CB4776B41C80C2984958B0505171200594
-60D535BE9A19E71074CD595D377AC22BF7730084A3007E879FB7EF940D66F5A0
-86E9F9DA806DF005BF4A93076BF82F10BE47BDDD765B4938115A80DB86C61223
-F65E50AAC81CCBB090B0DE60ACD83A68804C740F6C40B08C7749EF6DDA2450F0
-EB4330D9616A8BAD3443AA7F3EC95B8752E4AA8FBC3B0C2C69DCF81236A5B23C
-9A0D363074978F0EB95BFB2A35670BE52879DA42FADB91C3E5DE434695EA3F66
-1C291F65E3EFF88F6B7B1A8623DEBA3F0A5E4EB6EB7BE4467F52696DD7CADAB6
-6DCC1918B30FF7911127378128A76010C8100BF3FDDFACF931D4623E764098BB
-3A04E38D9681DCF0B3F77292EDBD28DA18B9439817BECD12395ED1CF09AD3F17
-9256ACF722FFE9F82FEA5ABD3F5BEEB2758E55ED4DE9FE5EAE884465061B59BD
-9E0692923F3B50E0891110DDFD7CACEF4655B0168E4874F9ECEB64A014C82306
-C25AC65583AD56DE494ACF65F5ED3ECDACFF77EA57CBBF12AA165E45F2FAD595
-57DF017F7F994812E20740FB014E8DBC3E9068AE3BEEB4C7ED3F86B8972A042D
-1BC94AC606EF95D333347C51B3DC7E1F6AC92F6D065581BD31D9549CD0F98D5C
-8A2FED53DE6EA71886DFE83151BD3304E613DE185D1254BBE20AC1248F68A420
-D8DEA34F7C54BE904B9A2AE94288BFBF412FD3EDAF58BB411B88DA0BB65479DC
-458FD5A26CF1C51919CFDFC94C6AB9825031BC8500F49619CD3E1538F42715FB
-325C1CDFB22836DCDD0A65063434D6C477F67D3FBC5B2FEF3B0C84AFCBE58049
-A612C7C8BE6B594F969D27ABBF26B95592AA6C4E362B1AAB504614A997A5AAF0
-566A7A827B69AEE3F677EEE9090B1713467DE8492FDA5DBBE0B7AB0EBA542A31
-336CCCBF5C73F6C293F20595E3AA96EF75601C0386265C6FFD98E972CED40BC9
-6E46ADA0BA7F49842999EB1041D97C516E3547BD018A5DE7389B4A191565A883
-86BF987BA744BFE77549F89BFE297367058F1608BDCE9A917903EBB8C8EB4031
-C81535AE0E1AF43AC149F743652FEB43009D04A574EAD888711503D0389A4A74
-FBC294E2024C555D0AB75D8224C8DBA0BC62620F77D493C1D5EF16A06DF038AB
-A256E2939EC5E1C3CED5E8F9B97D910220E45BE0EA8B1D7249D3B5C868700C0E
-6A6291911CE33CB0590558315F1100CB63218DBB2307981FC7C2AAD5A93CB250
-17B167414960C4A327B12517287412DBB6F6DC08170BA56397587C37CF61C041
-C1177ADE503598467BDCC5E540EB8BA1DFA1FC45BFD9B3D01D3985A3F5025F3F
-0893E30C320737B29A1C0FB1459E7E5347E389590D74F873D0B6607789FCF4B9
-A95DCA073B07098CE1F1D69FA0ABCB6442654042901A4EE976A3EA0AA2EFAC15
-5A97BB6C4E1ACF4F1A3CC16FFE8EB721C1CD6FF52EB25825C0F4F32818F09D0C
-00F694ED84F7E77D53AE221BD250555F728DF653DA6DFCD7C5F56E561763BCE3
-F42AA807E33DFD1793F256369ECEA3B9277DB07E1B743E78424A86A3446F8127
-63A4A651BADCD835AF830AE05877DCD238045035F97E3E9C0DB26DA25EFAC0D2
-443B163FB871C0AF9A380D01885080DF464E49436A9EE794F1EFE704587F2CC7
-4557EFE28082D50A1D4DC999692E2B4BA999C569A07A3C6ACA46E357C40E0359
-DB77693E2DEACA47AF651A4758FBA89C6A1CE243FBE22840BF9586FD64AE66DE
-63BB157A2B78FFA69F6C754C8572E06283D9A9CC80163AA1ECE0ABB87F754FAA
-0ECE6CAF4EC35E61AB42EEBA8DAAD53B164C9BA60DBB4889E503D4E6E947EF34
-A20EA12BD8E6EAB2488402BD4DDB8EC967851DE8F6DD3CFDA220B86B91586415
-EF09791EBEE7A59C26B1677710D0365D3494FB18B0780A6DFAD2D6C183B8AF2F
-540D8A4EFDE9F71CE04DAEE908DED7170577FC51DF085DBD53D568F34764B4CF
-9CF53454192A5ABC36D567B986B3622649709520F3CBBA491F1076C02350B152
-8A8F3791509F3CDECBE910E9EE770AF2876B74623838B386A318689BE24174C1
-2B0839237BA3097229AB76F3DC01C03B7B4BD8788F246AEE19612D302F3825C4
-6751F252AECF9185C88EF10E06E158FEE9F0F8A824DD199448A172364A83705E
-A7BB5A5F95162D9B9F2708C000F28F8DD1CA7563203F3FEC62C3020936573165
-B2A8FA498B7E6416A721E4304EBBBAD397BA8415BE034956C15AB9BB7D0898DE
-208C48C9041E8F8524CCEEE1C7FE98E55FF19AF48D916BCA38AF484995891C06
-69FCB025B601E2DB0753F5233209754C12D0E45E9E2F86389CE2EBBE5D54C289
-A5CC6374011C8CCE0E02E03C50615242726B8651B4CC3637447693C3500F6B0B
-8AA1A9218709C995416BDB31D340168921B163E2FC424B57E4045C0AFBDB7F41
-1047EE6FA8D209F9BEC70E7A6CAA9690F0F2CCA1DA436D3C05D1FFA09D5B7D0E
-D2C0EDEE73CA2021C807CAE2E2737A1452337321D84431E41EF0EE73BEB35A94
-7F37C44E01402195305E2B4A5E5F00170E7ECA56552B6C0AF7F7BE17369F17A7
-3C83269A691BB5D515A99F9DA110087A2F263484850969F603E6F20386E5374B
-CA4BBE1D7C393E98984C8CF62129F39D42BABFCE3B79F345973BA1E9EE03E0A8
-FCA6ABB7A61593B08FBD
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMCSC10 1.0
-% 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 (CMCSC10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMCSC10 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 75 /K put
-dup 101 /e put
-dup 105 /i put
-dup 114 /r put
-dup 121 /y put
-readonly def
-/FontBBox{14 -250 1077 750}readonly def
-/UniqueID 5000772 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337
-900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA
-87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98
-076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518
-9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A
-FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD
-B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9
-CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30
-40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D
-C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B
-7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5
-FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC
-81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D
-5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90
-CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A
-0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB
-E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091
-22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060
-1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98
-6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C
-146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFF84F4CB497AF7
-033D6A0D389335132709ABFB81D507222ED4423EFAB4CDD5EF0C2FE23ABCD815
-FDE71D11426DB3A3720C3D1336875C4A06085648E2E1B29BC87C1275AE0EFFEE
-2A756846EF15EDBE619ED40D6EB11ECF3D574DCBD8C99E0FCDB9EC7AD24B0598
-22E118AECC67A32136517264D613A4731E715F8031A28422365A9FDF0FB8AC85
-72E0AA2D50C77E8A4B923FA8F4010A8415E188D2ABD3277031C2AD0F0F13E8B5
-39EE500AA1F968CF224D48E29CD9D216BA2737A8038E099FA42F4FCD20705CF1
-CC326E5371BFDF8CD2100FC054C47FBFA106659AC2CF99259D466672843988C0
-E008E0BCAA0E7856D54096018474903862DB64883D42C95318EA7608233390E5
-48D3B03DDD2BC8CF7CC8BFEC6023CE659DD1AE2E862F2D594A64D2FB6D3BD45E
-AEFC2EB24080042103D0AA334CE97CA5EA98E903B940742B5EE140779761D75F
-88E032FC86BCA74DBF2E21915933AF9041FC49FC755E0E548B1C286C1B27E1F6
-4944332749C53D5B77A3805A34CB37A3B486F9DE080E7C70D1B1D9445627CABF
-9383B24AC27C5B054CF6BD8184D0841814DE47454208F6A6EB5A0E64B9534F41
-9C71A2717BB68C0FBAE4189659FC42C53B388BDAAE77389713376C9B5E5169F6
-4221FAC50D261F43EE1F7E35BD2848041F03BF6FEF3C8C3C15A93103F2A927E3
-BA6320172A48C2BABAB04270EAE2684C856254B43573EC77D23D0246BA1233F7
-18C95A662A3378C7800FD8EADD0D4DEAC04A22152C96D3A53D682FC12F497E13
-1173A74A95DCA1DC3151D99417F1C3055EBFCCDEC92C42583BBEBCF02F5A4E33
-E0F2BEB9E949984057A2DB23C94F8A3715A5DE4EB96DE167242EA052ABBF2D90
-570CD570F974F6B82759D3DEBAE4EF88CD28E405B4E2CC177AB646DF1D8C3E90
-4C20E5BAA78671892DFAB8006188719D407B9E1B6D29BEB5B7FC7BB665ED37BE
-11CAA2B818943D664FE83B7645483285F0AB5CF5B628211EE0FF64F06B4B24F4
-739C5F5D8835B6825CF0A8854EDA46BD76B756DF7E98DE688856619F0AEB8410
-C51C1371F8A26E85483229E101C895F9B6F82A271BBC4269190136832A0F2C78
-3C68E1FF14B7AB4E587B9514E0B065CC905DF6CC043B766ED784C6EE35DC0547
-4F874A6FE19BC81E0775FDBF63BE50EC2805289A88EC63A3C1BE8A01490F5C43
-2B148DF45EB3B31F4008DA08DA4BF4F30024AEBD34AD21FBD7C4C96318A05A89
-4111A5C64CDEE6EDF0E9802800322DEC39D0B20E730CA301553FD7DC7A635294
-40A67040C629238F88B15266DD60FED9273B6FB95A491CB4D9B76CE9F7DC0A1A
-67C0572929AE82DB4B4AEB9805A6681F4301F1DAB56224A55B6EE5DD1E9382A6
-29075F732B6E659AFC84605027F874ACA4F82B0EF5D903DF528197BB4373B4C3
-CF758F45BBD80B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMBX12 1.0
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 51 /three put
-dup 52 /four put
-dup 67 /C put
-dup 75 /K put
-dup 101 /e put
-dup 104 /h put
-dup 105 /i put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 121 /y put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2BFB0B6A
-8636BA6EED68415B5F33A0F6C02719117459DC1B7D79F71433543693BAFB1491
-CFDE724FD97FD7DB175A4A975BC3B5343BBB1DCD4175EE0AFDFF4F513795D742
-35F25C3C32FF83AE61759C9023CF1EC743B83A7963F1418BA88B1F5C06871F36
-86C9CF538B2CA4BF3A02DA513BA681D02F5DB30E8744C044E6161DE60375437C
-32C3789A50DAE1E518399047DFA98EFF0BBEFD9B7B2B594BDCC7A57F179055EF
-777EF4A7C7DA00522FC799BC840016058F545EC4D2DC5361D4E0339A3311663E
-7140AF3A78B98A5E97A43048D2477E6522BAAC09371C10F4F18D09A8E1633356
-CD59FA342A45520C936A69EF0E0C1782D6F20628AE64588EAB484CD13015F189
-8C05B9A385B10E6949610980C91CE085504B0327053F738300515B81BE1D34A3
-9EDC8D218C184542EA16343A8BD9017B29A6B9A8CBFC6CE1F181D86608ED02C1
-20F359A0F72737E744C5E4AE47E75556279E312687D21F20F12695F61CFD41F2
-5FC44B605E2DF157FB675AAF004972B86656B9C57E46C3BE950D2194C3E5442E
-C307CE319F4EB7FE67318C9523EBF186C6CA93AEA2CEF2F8EFAB91A8DA2260C6
-B2CFAFC87201AED42BD4DAE39D4CC64CC91F6802FD089C7EAB4497FE971D51C2
-2D1720F0C68BB38480EA122F02EAF1D42965CCC49A18306AA2B866B4B70E3E32
-D9372874D79EB9617D648A900A8F5DFFB6461FE5639843F017095BBBFE16FC03
-DF42009DF9ED5C66F67A3C99446E1C1F77266B0590E15ABB4809D66B00474727
-9461C328289BADEFF0883F10297B544087F54E6C379B86EC02CCCA292BB2113B
-7B00C618971C95B2AA427350BF9D3A3B11F9C869DB9D163DA75ED86505C13F9F
-32808567244496821354DECAA8BEF85CE876D783BA804F0F45529AD452B46C6A
-85EDA71C45B28E2805A90E2C51D810B15553FEC402D45C20D9824A6E2A971B73
-BAF4402FD6C9FC91DBBD61668B168AFDF68493930F1F937BF98CAE158D6CD980
-D805CFC4B39CD06C5334A979E387E060FD5A49D1147B79BC732029B56DA4F0FA
-6CD98B80D4693E9FB834C8C65C468FD8D9CA4798C754BEE0D2E8A54ABA2E7C91
-A494BBBE97ED910B8BBD341BC976268F52F12E6544760305A94F791A4F0915C2
-FE98F15F4D7EE41E57C071F811403BB2B6E7B543A9F40FC7DAF6B52A4C832DD1
-E5ACFECD8C7B99F6F34A3E2A05C7B6F060F416A8158AE0D7A9792000A589F727
-C29CEE41C6197B4893BC7AE58B78C0698D0268585AEB8CE80C1542F60C574A0E
-61BC7E350E83B7369961169E716E215F7230A039297730A10E03D7AC9430CDB4
-023C6CFBAB263811007B49B53537979BDAC42522416396A25DB6B277D17F997D
-4A077E5105A4F417AC7896F88BDE4EEC89F28F8003A6B7EBDFB65E09D2B653B9
-553CCF170E346FF2627CC45B6EEB67DC91CD66B927F6F8C6E290538FB40AEDE7
-A64025ACB03A59B8587420F7969ECBDADC0F02528E9C12753DCD199541D3C45D
-F3500DFC0F184C336AE9DAB7D963B49729105C534F16990609994531D14CD6ED
-44A9F7977EB3CDD7327C3F8AA081B7B8A5EB95B8E5ED09318696FD4A37ABC0C1
-BA7D85A0AB9475F5E92EEC76424092424F1833A82054A4861210797DC73236DB
-4131DDED9D973BD183D2B1AA563B6BEA6EBFCCB518579667137BC247BD8545D9
-BEFF191B12B2D6BD9C7B9D7BF48B8BD5B179BA89DB9F03D583F155912C1FF03E
-C9CEAEB31A5FC2591EEDC1E79AF628576D49155D5B04160F9842CC24675F3CEA
-3F4CF208AF3F599349768A87052968A9067965110327D3FA8C7E19522FA136E6
-64812C991DD9FAC3544E05F40C1A1317B1317E7BF591F1958FAB17ABC7DB237F
-C5C81833F7EEFFACCAB8008F551754F53FED02E78DFD2A68760248FBE93E18FA
-A8107DA94600DC1FF087CF929A2F982462300FC405597749C786E0A480BF2D62
-2A760CDA33C48657FEEEFFDFBDA49ABC035468968B3433458C091050E2979C76
-8BCD67726B2410CD9A24CB8C0AD0F0A029C7BAF222D8207FB36C182DDC114732
-4423E8EC54FB9FE641F3E159BA92556575D71BDE9D19A932FFAEB72CDE9B179B
-BAB203F682AD096761E16D2A787D4CB5C97FF00B7A051FE89D0B39EEAA73E4F1
-57DD3A0166FE02487806B959E608430E57A2F93C6DBDB6374F3E1EFED1AD8EAD
-F5708EF45F8B66D711E332797FE9E2C85D6E32E4106958CF1F5733DCA27D6023
-5247A9EA34966E76A8DBDCE97FE5593F511D06F77FAD19EDFF23F5E999DF2C48
-F4A9B91C517B5765769BEDEE4AA8A5998EBFA1E4543AC375C379281F27A319A0
-1915874E1A401C60703F868F44A2336D1B9DCC6B3FF25AB31A2E55C822AEF034
-CCDACF7B5E4ADF3D003387E32036936FF6F63B54F11E517B52BCDB27B74F8FCD
-74208AEC6104118747FA2A7C0C4BBAE862CFA4436282CB2DFF1DF4E1A737DBD5
-5D64259C877191547076B1C7684CD252C02D58B7810E95ADC8C1C4497EE27922
-D87EB5B4B2F7081AB03BEEFB555C6942C79F53C77FF154FD87EAC82AC3A3A8C2
-2D91DF7C509A1838C72ADA3CB65BAF59E392FD8936DF8DC002A0C41215A3
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 40 /parenleft put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 80 /P put
-dup 132 /Dcaron put
-dup 137 /Lcaron put
-dup 138 /Lslash put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-dup 197 /Aring put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB95DCD3599075B6F3852E6BD0C856EF704D5276DB85A577A3D89812DC6B
-E3FD98C5EF085ECA247CB9AAB98B493E6EDAF352ACE40162080B503DAA9E51DE
-6F5682F5627540723CCA87079E850FD3809CE0DD412E0D5F869F8AA462B305DA
-EA80E4FA8B83910A28089BA2613C51478E1AF167DBC726ADAA44731DBBC70AA7
-C5F09C13DCBD1C98D66300ED4734BA0CE7DB74FFBF159291B59A52324A568FD4
-743B61051BA406B6B80300A5C28E2478B7753E8903B8CC9CCAE3977B1CBD689D
-AAC6D5ABDB5BECC1F704639D6A4FF3A30B156503EDA1B8BD4DA69BD4316B73ED
-B1FA90735020D558F981CE612D99B7926177BCF57353053B24F0FB4954ED5622
-70D7249F56CCC0C465DA0E74E892825E9BEF02758AB38A769DE6E1FA50E2BE4D
-C5E1931C19ADA53901B9043CEDA1CD1BB2470E4852FE250C6CC8F197ED7F1D4F
-A62468ACF3EBEDD132A8CF46BAD3D3B3BA0FE3FFD1E90586342F38ACEB663FD7
-959C6D4910DB8E9640C6CFEB79575B4A698C96F0F87CF85E4D3EE82B4CB4983A
-38F3ED5C4197947596C51AA062957F2A79147DC7497862BF72FE7BB20827BEC2
-78F10273FE61F4D45CD9B7FAF363CB205A0C3FA53CBB5E67CFD9F3EA7437B35C
-EB575A4F94E973E95CD782E76C251AE66FB76692076CFA9A5AB11C51F19CE470
-2D0EBFEAB471868EE897DACF8EAFF76B7E9730D5B76BDCF48219651840EED6A3
-946DE7FBEA50604A15080819D7BE5BEF89F980D218043F77A0E5693D65751442
-25BD418F3B9B14494E46FA0814A921702D0B3965E4002CA91DDAE28B9529A22D
-415001418086EE58B0627D10EC85E09C55FA16F2BA2CAC7BE82C5786B2CC7F25
-597C660850861C4FBE1EC8C91B1A14B5058028A20D529020875BB33493A62410
-0740A4ED5CD5A3456AF41E91818E761E159D5E61C70DE1B766F6B41E595F9D6A
-5704B3FBB5C66D848266A4DCB61145FDA5301393B8DCD8D91EA10A320410CC96
-315850A76089412C572006D368542EB3368A85B5E4582457A56DD03A7D410062
-0650F660374C53560B4D74F207E8E4127D52264D3056E2DE77A7456415EA750F
-FFFB784024BB3042979D53166FF2D8634CADF52BACD9D9D9898C36B16850AB00
-B1323B1E5C63B633EE5C8E6660087C759288DCE4BA4FA80AF9A1B31EC3F9BEC0
-D49EC095D34DF10A4504C2B6AE0F2026ED14C65576D5E04A463AF972864805A8
-B20FE2BFB358A9188B39723BF5D509A7241EFEE4D02C8D097A4778E0522F64E2
-D8F8AA3006CAA4A99669B92363D9BD7E9D7D5D7DC32C34C091BAF3F5E91EFB72
-4A19F9E7656B7EC77A7311358B555BD8E67BEA86ED95F3811AD2E413F609330D
-0D5FEBF5DFC5115E4BC8DF3B6E7EA81880F7DEFD1DD0DF40DE9394011741FA62
-63633024AE5640A88BF5CF0AF60A1411AF651155DEE88B18FE80497B1FA81273
-0D2D71B4D268DA8CB6B2A3C9B64C76D285448BC770819F8D410699F9B5E24B7A
-4DDA1EBF98920A9B9AD10DB747A050C722AF53D42EEC2984BFBDD4765C88AFC8
-327AC35041C33A1A6D903104E93848F38CBEA1D07FBAEFE20D531C3E87897C62
-475583D0BF7204287576AC244E13724CDA03AC45651F894F44EDC78CF7332085
-F5C0E50172E1832D2B974B909BCD2122208C754F19C6041880EBEDF32BCB9502
-F49C830BE5B5A9D5EA91CCEF9009274F38AD5A6D09BC1B5F900E2ADABE11BF77
-F4A4BC38C5A5C65E43381F8910ECF8C58F1CC5F219CDF32DCBDFA1FCF0A3ACD2
-EEC570B614505B4D4C9B0820432FD2EC56769F3591B0BD33F87B4D1CC3FDB77C
-98776CC29A91DC183B1AD956AFF6A66CED1BE975026307E04141D857790DE2E8
-23984A8E39955032D7DE227956E27BDEBAE346746161A578FA507E455E291E3E
-ACE0E7BC9B24BF25F2469AB783C205794FF3E4B73EA85663F1EFF7BAE26B07CA
-29AE3CEFBC45DB7DD10E105B19271D89BA735555858B8B4879FA5D61AF8355F8
-F7BCF37687FC5B95A8826D577B7A846EBB0F068438F4AE5D3C1E1DBC78F14FB3
-4D9C491EC39840F21175D6097577723CF8AAFB128954B9A1BF4F866CCACF0810
-573C8BCD9AE2F0783FB483568924A4E5F3E0A0A6C413D240721F04DAE970C58A
-37158A31E56AEA0F0E49862F9D0D3A9886786F559FEF1AAEE9C0FEB1BE4810BE
-0DD2A5B6AE12B9B1FBBE34BF633D0C7DF974113475CDA0ED74232AD5F24B0CAF
-6E8360D5323800496C39D4D773CB3E61086DAC954DDE8100C4B683CF45DEA2D7
-A7A500A312812C894FA28DBD866036EA40EE5890CE80CA8E557996274C7796A4
-B993154981D7C1366438DED196D31C6B7BB409ADEBC53FC0CCD4B62F12D0B34A
-3BA8C7E852CB96C5644EF4927B74B2D135BA3726D039F19F657A9AA610C95E60
-9454D04AF05D869985F431FF5E13C9DD4085A28982A150D1928DE6AB60E2F880
-DB93ECA06E5A4BE4DC486339C31A1A4FD1363FFE9CE69CD21ABE99E5E18F7659
-BC1A1E4A6C336890D445FE22A76796B5ACFFDB460E37A9988A78010547B2CD50
-1B548D2B7C37CDBEDED471BFB748EDB33F3E3EF5FB0C98E77763A60443675685
-B58386B29C13C0CFFB422936DC5AD5BD51D5893EE6FBFDBC3680D9D81DAA41DA
-A34158776225C6117E1F907DC745F9E4F1CBF9D3CB5CF1039BF2F06BE39BFE09
-7B646265B8512A9C5B29BCE8627685A662BF38551BD0FFC2C9922DD07F5A02AE
-769A935D32100A542B34D46F17EB4B211323E28EF4B4DD68EA407B4F30C47E8E
-E4EF7F2450F6FA22096BD96C39C78117F82BE6AEB56F8B9AA097225BF86345BB
-5149205C375C406B814DF067DF12C88173D4FD778870A2F13873E8F048365EB4
-2B82D7B63BFC16578DA0BDF74F3C10542A1AA1C03A5AC10EA8CC36CD6A744233
-CCAC344386381D7C65F880F79E0C086F8190D6BBB0A07C61FEAE47B10E6B7E05
-24804EC1EE6C685FEF1B5CC3B83E883675B61FA0B08C24A0042F3506E11B51D9
-7A72308FCFD22A53ECEC43F6F4A98A87392FC040D221524DA3D248B0990F34A1
-18683603C3DB0F2CDA520D60A4B8E8546A45E4BC477B2D3FB3184945DE6315BD
-77FA819C1C1ADD745B02A7E1A90C80479040A3B9DAEA04BA3A4128AAFB480A50
-FEA18D66D290D1C4DE36C8EDAE6A1D3DB48CA071021E4C85E217B16E08174EED
-C1A10093879CF45706358D2D3400010BC6416E95E3249DF9EB536E8F4AAEAF40
-8F7DE58EAB0E10AD75157FA700
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 166 /eogonek put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D489DAAC4FCCE8E9BA1
-74B690085D9F011420EF2C163B75BDBACCF4EFBA71444E80A99EC69331AA6B02
-FEB7D8EC25FC4529D44DB8865A5F75FB5569E91A1B2F79D1D7FB7F05C7871213
-1A4EE92AF0EB675C5E9869003B297BC69D2A774183D4BB5A748733151CB253F7
-52ECF3F13DBC71ABD3FF5BB7270F135796F114F5B8FB58D13EDD36167A7985F1
-41A1D308BA0CD66D2E141A19F66FF2B1FACAAECB374980064E44915EB93763E8
-B7AA3FFDD0932914332AE9E7F51B220AC4475D1A88223D4F3B0F7B47950F3698
-5974C5C98CCFB607E775B7581BD82BD605E6EF1A0B3CB1EBF45ECEF7B8550D79
-21DF69EAB9E29446B3B2804BFDA94A4441DAF8A71A25FE0866792A2CDC2422BC
-5C66E15B69F47B25EB8FCDA4F0323901D02D7011C180F5F8711B81AF3BDC4D83
-FAB50B7975C55E782B4ED3F74E474F8A2FAB2AD4C349FF1BD0CEFA7451884AAF
-75E03F0DB9DAAD747943B91F963BB3D019CC351D78332E657D88EC81E78573D3
-AB6EE29D84A8681393EF4369C36DF5795919
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-TeXDict begin 39158280 55380996 1000 2540 2540 (dufay.dvi)
-@start /Fa 190[0 65[{}1 702.92 /TeXXSLZ20-Regular rf
-/Fb 198[176 1[176 1[176 1[176 176 176 49[{}6 351.46 /CMMI10
-rf /Fc 132[206 1[218 3[229 7[344 115 2[115 2[126 184
-3[206 25[324 2[315 4[195 7[206 2[206 2[206 206 6[161
-161 40[{}18 421.752 /CMR12 rf /Fd 134[536 6[527 8[264
-3[488 25[737 75[{}5 874.432 /CMCSC10 rf /Fe 134[300 4[221
-225 233 8[158 316 2[260 25[446 7[411 14[285 285 51[{}11
-506.102 /CMBX12 rf /Ff 58[2249 1125 562 56[1125 562 4[1125
-51[0 6[562 1[562 7[0 0 7[211 1[211 1[211 9[0 31[0 0 6[0{}18
-702.92 /TeXMUSIX20-Regular rf /Fg 89[0 166[{}1 702.92
-/TeXMUSIXSPX-Regular rf end
-TeXDict begin
-a4
- end
-TeXDict begin 1 0 bop -1540 3379 a Fg(\246)p -1540 4045
-18417 15 v -1540 4220 V -1540 4396 V -1540 4572 V -1540
-4748 V -1540 2024 V -1540 2199 V -1540 2375 V -1540 2551
-V -1540 2727 V -1540 4748 15 2731 v 834 x Ff(I)-1540
-2544 y(G)-849 4376 y Fe(3)-849 4728 y(4)-849 2356 y(3)-849
-2707 y(4)6392 -16 y Fd(Kyrie)13794 628 y Fc(Guillaume)138
-b(Dufa)-11 b(y)14502 1050 y(\(1400?{1474\))p -71 5003
-15 615 v -70 4389 a Ff(\010)-70 4301 y(\000)p 133 4038
-15 516 v -263 x(\010)-1125 1665 y Fe(Kyrie)p 133 2456
-15 615 v -70 2456 a Ff(\010)p 1193 3869 317 15 v 1450
-3774 15 417 v 1247 3774 a(\007)p 1449 2456 15 615 v 1246
-2456 a(\007)p 2177 4748 15 2731 v 2520 4652 15 615 v
-2521 4038 a(\010)p 2467 3869 317 15 v 2724 3862 15 450
-v -176 x(\010)p 2724 2720 15 615 v -1142 x(\010)3625
-3950 y(2)p 3836 4564 V 1 w(\007)p 3784 3869 317 15 v
-4041 3774 15 417 v 3838 3774 a(\007)p 4040 2808 15 615
-v 3837 2808 a(\007)p 4768 4748 15 2731 v 5058 3869 317
-15 v 5111 4476 15 615 v 5112 3862 a(\010)p 5058 3869
-317 15 v 5059 3693 V 5316 3686 15 417 v 5113 3686 a(\010)p
-5315 2544 15 615 v 5112 2544 a(\010)p 6375 3869 317 15
-v 6428 4389 15 616 v 6429 3774 a(\007)p 6375 3869 317
-15 v 6632 3774 15 417 v(\007)p 6631 2632 15 615 v 6428
-2632 a(\007)p 7359 4748 15 2731 v 7702 4652 15 615 v
-7703 4038 a(\010)7703 3950 y(\000)7491 3862 y(4)p 7649
-3869 317 15 v 7906 3862 15 450 v 1 w(\010)7703 3774 y(\000)p
-7906 2720 15 615 v -1054 x(\010)1315 b(>)p 9950 4748
-15 2731 v 10240 3869 317 15 v 10293 4389 15 616 v 10294
-3774 a(\010\000)p 10240 3869 317 15 v 10241 3693 V 10498
-3598 15 417 v 10295 3598 a(\010)p 10497 2456 15 615 v
-10294 2456 a(\007\000)p 12037 3869 317 15 v 12038 3693
-V 12295 3598 15 417 v 12092 3598 a(\007)p 11635 2544
-15 659 v 11432 2544 a(\007)p 12293 2456 15 604 v 12090
-2456 a(\007)11636 1885 y(\204)11835 1875 y(\204)p 12952
-2368 15 550 v 12749 2368 a(\007)p 13406 4748 15 2731
-v 13749 4652 15 615 v 13750 4038 a(\010)p 13696 3869
-317 15 v 13697 3693 V 13954 3686 15 417 v 13751 3686
-a(\010)p 13749 2895 15 615 v 13750 2280 a(\007\000)p
-15493 3869 317 15 v 15546 4389 15 616 v 15547 3774 a(\007)p
-15493 3869 317 15 v 15494 3693 V 15751 3598 15 417 v
-15548 3598 a(\007)p 14888 2939 15 484 v 14889 2456 a(\007)p
-15546 2906 15 539 v 15547 2368 a(\007)14889 2939 y(\204)15095
-2929 y(\204)p 16204 2873 15 594 v 16205 2280 a(\007)p
-16862 4748 15 2731 v -1540 7200 a Fg(\246)p -1540 7866
-18417 15 v -1540 8042 V -1540 8218 V -1540 8394 V -1540
-8569 V -1540 5845 V -1540 6021 V -1540 6197 V -1540 6373
-V -1540 6548 V -1540 8569 15 2731 v -1628 5531 a Fb(7)-1540
-8035 y Ff(I)-1540 6366 y(G)p -684 7691 317 15 v -631
-8298 15 615 v -630 7684 a(\010)1364 7771 y(2)p 1574 8386
-V(\007)p -684 7691 317 15 v -683 7515 V -426 7508 15
-417 v -629 7508 a(\010)p 1522 7691 317 15 v 1779 7596
-15 417 v 1576 7596 a(\007)p -428 6278 15 572 v -631 6278
-a(\007)-291 6190 y(2)p 124 6190 15 456 v 1 w(\007)p 675
-6278 15 516 v 472 6278 a(\007)p 1227 6366 15 577 v 1024
-6366 a(\007)p 1778 6366 15 549 v 551 w(\007)-428 5707
-y(\305)87 5732 y(\305)p 2330 6454 15 609 v 2127 6454
-a(\007)p 2677 8569 15 2731 v 2967 8474 15 615 v 2968
-7859 a(\010)2968 7771 y(\000)p 2915 7691 317 15 v 2916
-7515 V 3173 7508 15 417 v 2970 7508 a(\007)p 3171 6278
-15 615 v 2968 6278 a(\010\000)p 3695 7691 317 15 v 3952
-7596 15 572 v 3953 7596 a(\()-204 b(\007)p 4246 7691
-317 15 v 4503 7684 15 450 v 4300 7684 a(\007)4869 7771
-y(2)p 5283 7771 15 572 v 204 w(\()g(\007)p 5631 8569
-15 2731 v 5921 8561 15 615 v 5922 7947 a(\010)p 7482
-8825 V 7483 8211 a(\007)p 5868 7691 317 15 v 6125 7596
-15 417 v 5922 7596 a(\007)6701 7947 y(>)p 7429 7691 317
-15 v 7686 7596 15 417 v 7483 7596 a(\007)5710 6190 y(2)p
-5921 6804 15 615 v 1 w(\010)p 7685 6278 V 7482 6278 a(\007)p
-8262 8569 15 2731 v 8552 8737 15 615 v 8553 8123 a(\010)p
-8756 7947 15 484 v -176 x(\007)p 9307 8035 15 572 v 9104
-8035 a(\007)p 9859 7947 15 484 v 9656 7947 a(\007)p 8756
-7506 1662 85 v 10410 8123 15 659 v 10207 8123 a(\007)p
-8756 6366 15 615 v 8553 6366 a(\010)p 10758 8825 V 10759
-8211 a(\007)p 10962 8035 15 549 v -176 x(\007)p 10962
-6278 15 615 v -1757 x(\007)p 11538 8569 15 2731 v 11828
-8561 15 615 v 11829 7947 a(\007)12720 7771 y(2)p 12931
-8386 V 1 w(\007)p 14034 8474 V 14035 7859 a(\007)-2207
-b(?)p 12327 7691 317 15 v 12584 7596 15 572 v 12381 7596
-a(\007)p 12878 7691 317 15 v 13135 7596 15 544 v 551
-w(\007)13272 7684 y(4)p 13430 7691 317 15 v 13687 7684
-15 604 v 1 w(\007)p 13981 7691 317 15 v 14238 7684 15
-577 v 551 w(\007)14375 7771 y(6)12583 7025 y(\304)13673
-7079 y(\304)p 14789 7771 15 637 v 14586 7771 a(\007)p
-12032 6366 15 615 v 11829 6366 a(\010)13823 6454 y(4)p
-14238 6454 V 1 w(\007)p 15137 8569 15 2731 v 15427 8561
-15 615 v 15428 7947 a(\010\000)p 15374 7691 317 15 v
-15631 7596 15 417 v -351 x(\010\000)p 15631 6366 15 615
-v -1230 x(\010)15428 6278 y(\000)p 16778 8569 15 2731
-v 16862 8569 V -1540 11374 a Fg(\246)p -1540 12040 18417
-15 v -1540 12215 V -1540 12391 V -1540 12567 V -1540
-12742 V -1540 10019 V -1540 10194 V -1540 10370 V -1540
-10546 V -1540 10722 V -1540 12742 15 2731 v -1716 9704
-a Fb(13)-1540 12208 y Ff(I)-1540 10539 y(G)-849 12371
-y Fe(3)-849 12723 y(4)-849 10350 y(3)-849 10702 y(4)p
--96 12998 15 615 v -95 12384 a Ff(\010)-95 12296 y(\000)p
--149 11864 317 15 v 108 11769 15 417 v -527 x(\010\000)-1151
-9572 y Fe(Christe)p 108 10451 15 615 v -95 10451 a Ff(\010\000)p
-1393 12742 15 2731 v 1711 12822 15 615 v 1712 12208 a(\010)1712
-12120 y(\000)p 1659 11864 317 15 v 1916 11857 15 450
-v 1713 11857 a(\010)913 10600 y Fa(A)p 1915 10451 15
-615 v 1712 10451 a Ff(\010\000)p 2874 11864 317 15 v
-2875 11688 V 3132 11593 15 572 v 2929 11593 a(\007)3133
-11022 y(\303)3186 11025 y(\303)p 3482 11864 317 15 v
-3483 11688 V 3740 11681 15 629 v 3537 11681 a(\007)p
-4143 12742 15 2731 v 4461 12734 15 615 v 4462 12120 a(\010\000)p
-4408 11864 317 15 v 4665 11769 15 417 v -351 x(\007)p
-5624 11864 317 15 v 5881 11857 15 450 v 5678 11857 a(\007)6682
-11945 y(2)p 7097 11945 15 483 v 1 w(\007)4461 10715 y(?)4858
-10363 y(2)p 5273 10363 15 484 v 1 w(\007)p 5881 10363
-V 608 w(\007)p 6489 10451 15 572 v 6286 10451 a(\007)p
-7097 10363 15 484 v 6894 10363 a(\007)p 5273 9922 2439
-85 v 7705 10539 15 659 v 7502 10539 a(\007)p 8109 12742
-15 2731 v 8427 12998 15 615 v 8428 12384 a(\010)p 8630
-12033 15 516 v 8427 12033 a(\010)8427 11945 y(\000)8216
-10627 y(4)p 8630 10627 15 615 v(\010\000)p 9643 12998
-V 9644 12384 a(\007)p 10503 12742 15 2731 v 10821 12910
-15 615 v 10822 12296 a(\010)p 11025 12120 15 516 v -176
-x(\010)p 11025 10539 15 615 v -1581 x(\010)p 12037 12998
-V 12038 12384 a(\007)p 12240 12208 15 549 v 12037 12208
-a(\007)p 12240 10451 15 615 v -1757 x(\007)p 12897 12742
-15 2731 v 13215 12734 15 615 v 13216 12120 a(\010)p 15647
-12647 V 15648 12033 a(\007)13215 12120 y(?)p 13770 11864
-317 15 v 14027 11769 15 484 v 13824 11769 a(\007)p 14378
-11864 317 15 v 14635 11857 15 572 v 14432 11857 a(\007)p
-15242 11945 15 659 v 15039 11945 a(\007)p 15594 11864
-317 15 v 15851 11857 15 572 v 15648 11857 a(\007)p 14027
-11328 2439 85 v 16202 11864 317 15 v 16459 11769 15 484
-v 16256 11769 a(\007)p 13419 10802 15 615 v 13216 10802
-a(\007)p 14635 10715 V 14432 10715 a(\007)p 15850 10627
-V 15647 10627 a(\007)p 16862 12742 15 2731 v -1540 15195
-a Fg(\246)p -1540 15861 18417 15 v -1540 16037 V -1540
-16213 V -1540 16388 V -1540 16564 V -1540 13840 V -1540
-14016 V -1540 14192 V -1540 14368 V -1540 14543 V -1540
-16564 15 2731 v -1716 13526 a Fb(19)-1540 16030 y Ff(I)-1540
-14361 y(G)-821 15766 y(2)p -610 16381 15 615 v 1 w(\010)p
-1075 16468 V 1076 15854 a(\007)p -195 15942 15 516 v
--398 15942 a(\007)p 180 15686 317 15 v 437 15591 15 417
-v 234 15591 a(\007)p 1022 15686 317 15 v 1279 15679 15
-450 v 1076 15679 a(\007)p -406 14361 15 615 v -609 14361
-a(\010)p 1279 14448 V 1076 14448 a(\007)p 1917 16564
-15 2731 v 2229 16556 15 615 v 2230 15942 a(\010\000)p
-2176 15686 317 15 v 2433 15591 15 417 v -351 x(\010)3913
-16381 y(>)p 2432 14361 15 615 v 2229 14361 a(\007)3071
-14536 y(>)p 4117 14361 V 3914 14361 a(\007)p 4755 16564
-15 2731 v 5014 15686 317 15 v 5067 16206 15 616 v 5068
-15591 a(\010)p 6699 15686 317 15 v 6752 16293 15 615
-v 6753 15678 a(\007)p 5014 15686 317 15 v 5015 15510
-V 5272 15415 15 417 v 5069 15415 a(\010)p 6699 15686
-317 15 v 6700 15510 V 6957 15503 15 417 v 6754 15503
-a(\007)p 5271 14273 15 615 v 5068 14273 a(\007)5698 14185
-y(2)p 5909 14799 V 1 w(\007)p 6955 14273 V 6752 14273
-a(\007)p 7594 16564 15 2731 v 7694 15766 a(2)p 7905 16381
-15 615 v 1 w(\007)p 7852 15686 317 15 v 8109 15591 15
-417 v -175 x(\007)p 8109 14361 15 572 v 8110 14361 a(\()-204
-b(\007)p 8920 16468 15 615 v 8921 15854 a(\007)p 8867
-15686 317 15 v 9124 15679 15 450 v -175 x(\007)p 8704
-14448 15 615 v 8501 14448 a(\007)p 9935 16556 V 9936
-15942 a(\007)p 10139 15766 15 483 v -176 x(\007)p 9543
-14536 15 659 v 9340 14536 a(\007)p 10139 14361 15 454
-v 9936 14361 a(\007)9545 13877 y(\304)9618 13881 y(\304)p
-10734 14624 15 688 v 10531 14624 a(\007)p 11125 16564
-15 2731 v 11437 16820 15 615 v 11438 16206 a(\007)p 12627
-16644 V 12628 16030 a(\007)p 13818 16732 V 13819 16118
-a(\007)p 11641 15854 15 516 v 11438 15854 a(\010)13607
-15942 y(4)p 14022 15942 V 1 w(\007)p 11641 14448 15 484
-v 11438 14448 a(\007)p 12236 14536 15 542 v 12033 14536
-a(\007)p 12575 14719 317 15 v 12832 14712 15 688 v 12629
-14712 a(\007)p 13426 14624 15 570 v 13223 14624 a(\007)13607
-14712 y(4)p 13765 14719 317 15 v 14022 14712 15 628 v
-1 w(\007)11641 13965 y(\305)12374 14002 y(\305)p 14360
-14719 317 15 v 14617 14800 15 686 v 14414 14800 a(\007)p
-15008 16564 15 2731 v 15320 16820 15 615 v 15321 16206
-a(\010)15321 16118 y(\000)p 15524 15854 15 516 v -264
-x(\010)15321 15766 y(\000)p 15524 14624 15 615 v -1142
-x(\010\000)p 16778 16564 15 2731 v 16862 16564 V -1540
-19368 a Fg(\246)p -1540 20034 18417 15 v -1540 20210
-V -1540 20386 V -1540 20562 V -1540 20737 V -1540 18014
-V -1540 18189 V -1540 18365 V -1540 18541 V -1540 18716
-V -1540 20737 15 2731 v -1716 17699 a Fb(25)-1540 20203
-y Ff(I)-1540 18534 y(G)-849 20366 y Fe(3)-849 20718 y(4)-849
-18345 y(3)-849 18697 y(4)p -165 20993 15 615 v -164 20379
-a Ff(\010)p -218 19859 317 15 v 39 19764 15 417 v -615
-x(\010)-1220 17567 y Fe(Kyrie)p 39 18446 15 615 v -164
-18446 a Ff(\010)p 775 20729 V 776 20115 a(\007)564 19676
-y(2)p 722 19859 317 15 v 723 19683 V 980 19676 15 417
-v 2 w(\007)p 979 18534 15 615 v 776 18534 a(\007)p 1440
-20737 15 2731 v 1689 20993 15 615 v 1690 20379 a(\007)p
-1636 19859 317 15 v 1893 19764 15 417 v -615 x(\010)p
-1893 18622 15 615 v -1142 x(\010)2354 21082 y(?)p 2824
-20950 15 572 v 2825 20379 a(\007)p 3293 20903 15 612
-v 3294 20291 a(\007)2824 20950 y(\211)3216 20911 y(\211)p
-3763 20856 15 653 v 3764 20203 a(\007)p 3241 19859 317
-15 v 3498 19852 15 450 v 3295 19852 a(\007)p 3497 18534
-15 615 v 3294 18534 a(\007)p 4233 20737 15 2731 v 4494
-20729 15 615 v 4495 20115 a(\007)p 5159 20817 V 5160
-20203 a(\007)5613 20291 y(2)p 5824 20905 V 1 w(\007)4283
-19940 y(2)p 4698 19940 15 483 v 1 w(\010)p 5771 19859
-317 15 v 6028 19852 15 450 v 5825 19852 a(\007)4283 18358
-y(2)p 4494 18972 15 615 v 1 w(\007)p 5363 18446 V 5160
-18446 a(\007)p 6028 18534 V 5825 18534 a(\007)p 6489
-20737 15 2731 v 6750 20993 15 615 v 6751 20379 a(\007)7415
-20730 y(>)665 b(>)p 6697 19859 317 15 v 6954 19764 15
-417 v 6751 19764 a(\010\000)6539 18622 y(4)p 6954 18622
-15 615 v 1 w(\010\000)p 8745 20737 15 2731 v 8994 20729
-15 615 v 8995 20115 a(\010)p 10873 20642 V 10874 20027
-a(\007)p 8941 19859 317 15 v 9198 19764 15 417 v 8995
-19764 a(\010)10662 19852 y(4)p 10821 19859 317 15 v 11078
-19852 15 450 v 2 w(\007)8994 18709 y(?)p 9667 18534 15
-572 v 9464 18534 a(\007)p 10137 18534 15 548 v 470 w(\007)10193
-18622 y(4)p 10607 18622 15 612 v(\007)p 11077 18622 15
-589 v 470 w(\007)9667 17963 y(\304)10430 18001 y(\304)p
-11547 18709 15 653 v 11344 18709 a(\007)p 11813 20737
-15 2731 v 12062 20729 15 615 v 12063 20115 a(\010)p 12009
-19859 317 15 v 12266 19764 15 417 v -351 x(\010)p 12266
-18534 15 615 v -1230 x(\007)p 13667 20817 V 13668 20203
-a(\007)p 13871 20027 15 516 v -176 x(\007)p 12931 18622
-15 659 v 12728 18622 a(\007)p 13401 18534 15 619 v 13198
-18534 a(\007)p 13871 18446 15 578 v 13668 18446 a(\007)13927
-18358 y(2)12931 17963 y(\212)13224 17933 y(\212)p 14341
-18358 15 537 v 14138 18358 a(\007)p 14607 20737 15 2731
-v 14868 20729 15 615 v 14869 20115 a(\010)p 16197 20642
-V 16198 20027 a(\007)14657 19940 y(2)p 15071 19940 15
-483 v(\010)p 16145 19859 317 15 v 16402 19852 15 450
-v 16199 19852 a(\007)p 15071 18534 15 615 v 14868 18534
-a(\007)p 15736 18622 V 15533 18622 a(\007)p 16401 18709
-V 16198 18709 a(\007)p 16862 20737 15 2731 v -1540 23190
-a Fg(\246)p -1540 23856 18417 15 v -1540 24032 V -1540
-24208 V -1540 24383 V -1540 24559 V -1540 21835 V -1540
-22011 V -1540 22187 V -1540 22362 V -1540 22538 V -1540
-24559 15 2731 v -1716 21521 a Fb(32)-1540 24025 y Ff(I)-1540
-22355 y(G)p -683 24815 15 615 v -682 24201 a(\010)p 587
-24815 V 1270 w(\007)p -479 23849 15 516 v -682 23849
-a(\010)-682 23761 y(\000)p -479 22619 15 615 v -1142
-x(\007)-48 22531 y(>)635 b(>)p 1221 24559 15 2731 v 1489
-24551 15 615 v 1490 23937 a(\007)1278 23761 y(2)p 1693
-23761 15 483 v 1 w(\007)p 1693 22531 15 572 v 1694 22531
-a(\()-204 b(\007)p 2254 24639 15 615 v 2255 24025 a(\007)p
-2458 23849 15 516 v -176 x(\007)p 2142 22619 15 615 v
-1939 22619 a(\007)p 2518 22714 317 15 v 2775 22707 15
-572 v 2776 22707 a(\()g(\007)p 3183 24551 15 615 v 3184
-23937 a(\007)p 3387 23937 15 516 v(\007)2972 22795 y(2)p
-3130 22714 317 15 v 3387 22795 15 616 v 1 w(\007)p 3818
-24559 15 2731 v 4056 24463 15 615 v 4057 23849 a(\007)p
-4471 24025 15 549 v 4268 24025 a(\007)p 4003 22714 317
-15 v 4004 22890 V 4261 22883 15 703 v 4262 22751 a(\()4058
-22883 y(\007)p 4468 22714 285 15 v 4709 22707 15 615
-v 4506 22707 a(\007)p 4821 24639 V 4822 24025 a(\007)p
-5025 23849 15 572 v 5026 23849 a(\()g(\007)p 5473 23937
-15 516 v 5270 23937 a(\007)p 5473 22619 15 572 v 5474
-22619 a(\()g(\007)p 5718 24727 15 615 v 5719 24113 a(\007)p
-5681 22714 285 15 v 5922 22707 15 615 v -1406 x(\007)p
-6238 24025 15 572 v 6239 24025 a(\()g(\007)p 6483 24559
-15 2731 v 6722 24815 15 615 v 6723 24201 a(\007)p 6925
-23849 15 516 v 6722 23849 a(\007)p 6925 22619 15 572
-v 6926 22619 a(\()g(\007)p 7374 22443 15 615 v 7171 22443
-a(\007)p 7434 23680 317 15 v 7487 24201 15 616 v 7488
-23585 a(\007)7276 23761 y(2)p 7901 23761 15 572 v 415
-w(\()g(\007)p 8175 23937 15 516 v 7972 23937 a(\007)p
-8175 22355 15 572 v 8176 22355 a(\()g(\007)p 8383 23680
-285 15 v 8420 24288 15 615 v 8421 23673 a(\007)p 8624
-22531 V -1142 x(\007)p 8940 23849 15 572 v 8941 23849
-a(\()g(\007)p 9185 24559 15 2731 v 9370 23680 317 15
-v 9423 24201 15 616 v 9424 23585 a(\007)p 9838 24201
-15 615 v 9635 24201 a(\007)p 9627 22443 15 572 v 9628
-22443 a(\()g(\007)p 10076 22619 15 615 v 9873 22619 a(\007)p
-10135 23680 317 15 v 10136 23505 V 10189 24201 15 791
-v 10190 23410 a(\007)p 10346 23680 317 15 v 10603 23585
-15 572 v 10604 23585 a(\()g(\007)p 10621 23680 317 15
-v 10878 23673 15 450 v 10675 23673 a(\007)p 10876 22268
-15 572 v 10877 22268 a(\()g(\007)p 11084 23680 285 15
-v 11084 23505 V 11121 24201 15 703 v 11122 23498 a(\007)p
-11325 22355 15 615 v -1143 x(\007)11227 23761 y(2)p 11641
-23761 15 572 v 204 w(\()g(\007)p 11886 24559 15 2731
-v 12072 23680 317 15 v 12125 24201 15 616 v 12126 23585
-a(\010)p 13342 23680 317 15 v 13395 24288 15 615 v 13396
-23673 a(\007)p 12072 23680 317 15 v 12329 23585 15 417
-v 12126 23585 a(\010)p 13342 23680 317 15 v 13343 23505
-V 13600 23498 15 417 v 13397 23498 a(\007)p 12328 22268
-15 615 v 12125 22268 a(\007)p 12759 22794 V 12760 22180
-a(\007)p 13394 22706 V 13395 22092 a(\007)p 14029 24559
-15 2731 v 14215 23680 317 15 v 14268 24201 15 616 v 14269
-23585 a(\010\000)14294 23058 y(P)p 14215 23680 317 15
-v 14216 23505 V 14473 23410 15 417 v 14270 23410 a(\010\000)14294
-21740 y(P)p 14471 22268 15 615 v 14268 22268 a(\010\000)p
-15367 24559 15 2731 v 15605 24551 15 615 v 15606 23937
-a(\010\000)15631 23234 y(P)p 15552 23680 317 15 v 15809
-23585 15 417 v 15606 23585 a(\010\000)15631 21828 y(P)p
-15809 22355 15 615 v 15606 22355 a(\010)15606 22268 y(\000)p
-16704 24559 15 2731 v 16771 24559 106 2731 v eop end
-userdict /end-hook known{end-hook}if
-%%Trailer
-cleartomark
-countdictstack
-exch sub { end } repeat
-restore
-%%EOF
+%% LaTeX2e file `eps/dufay.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 21 67 550 788
+% EPSF created by ps2eps 1.39
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: dufay.dvi
+%%CreationDate: Fri Sep 13 17:31:23 2002
+%%PageOrder: Ascend
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX20-Regular CMBX12 CMCSC10
+%%+ CMR12 CMMI10 TeXXSLZ20-Regular
+%%DocumentPaperSizes: a4
+%%EndComments
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def%%EndProlog
+%%Page 1 1
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\DVIPS.EXE -Ptype1 dufay
+%DVIPSParameters: dpi=2540, compressed
+%DVIPSSource: TeX output 2002.09.13:1617
+%!
+/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
+/p{show}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
+%!
+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]/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[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
+%!PS-AdobeFont-1.0: TeXXSLZ20-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 505 495 0
+FontDirectory/TeXXSLZ20-Regular known{/TeXXSLZ20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXXSLZ20-Regular) readonly def
+/FamilyName (TeXXSLZ20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 505 def
+/descent 495 def
+end readonly def
+/FontName /TeXXSLZ20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 65 /A put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-5505 -461 5505 467}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE1CE994ECFA050F63C73A7
+AB8D11FBB3EF2BB5BA243840E8D7B831A1760B938E16B3F63455E6DFC5224910
+3738DDEB2C4BA5C23FDF84EC4FF1E8F598E0DFE205EDB65CF32BC403A197CE78
+B7EC5B1B5045C134D672C87683A47ECBBA0978CDD39FA06EB38D3DDFC69018C1
+979AD5EC977C8A0FE0244B44109952602A0E024A26EC6164A28CC1A189283EBE
+C280A255CC6499FD8828B1B3701E4113FE987E008117FA45662BA32C9735B6EA
+A5A2A2A0977ADE3E6DC73ABBEFAFC4B6644897C2B8C5F26652BB5E7591D7E779
+360CFA850A2048EE4A8590182F6A65D63FCB9A5F1B1F5F094ED572AA1F3D92BF
+007EDE5620DC347A1CFB3239800DD6F11E00B5D54F20DC3D8A01507F648221B0
+A57E91C1F91EF913AAECD01D064BD15BB73063417FC48919BBA377177966FE34
+63BAE2C6354FF6A9761C55DAA96303E2845FB38FB2C1501D2F9ADB5D3E324BD8
+203CB0DFFCC2067C591328E391BA0BA2D76D94BCE9E2F06F49A6F65CFF1A65F8
+F0C1310799AA906D239C5F0CA0BDAD091C471DF9EDFA2A0957C2882C72ADA022
+27A004300247C29FCD28EAD0D1E39C227EC99F06ACFA5F447F8A79D7191ED6D3
+4F27F54AC93225C74EEDC0838A45A08EA3FEC14C717B81F0FF7E8CFCCD4B0DF8
+C26E03B96FD8BA2447B77D138478622FD6644FC0CBA495276C83235B5CE69312
+A15B016302535A9DA9C3F05580F4732AD4C1260391C0B26041EF6E529EB4289C
+B72A6057A39C74B4E8E258E8C0637D2AFFBA4922A890A108074D1096339D5271
+5183B793CD1A92E695534DBBEC99ED28D2B4A7B605AB886FE31A5A8AEAB50B42
+5969F3A0D80D0D50C8569E329C1CA254D9C12865966D09C83B073E96C42DEB0C
+FB942DD30D4BE453211E630926D3774D99D0263D3D8E3D203A5B1F419F82668B
+6BBD4ADD6E76F0CDD30F0BD88BF0377F325356FF86AE
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.1: CMMI10 1.100
+% 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 49 /oneoldstyle put
+dup 50 /twooldstyle put
+dup 51 /threeoldstyle put
+dup 53 /fiveoldstyle put
+dup 55 /sevenoldstyle put
+dup 57 /nineoldstyle put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 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
+95601766730045C2D9F29DC2BFEBDE5E7720CC7D8252373BC295E41F22C52DE8
+915D866088FA11BA9F227430FBBA595C857A121A5DA4EA342D585A2FC8953349
+FD794A76B55595B50A86395FE3FD0F8B705C4D7C0000290859846FA1EBAAD5DD
+EBA9DC2F294374ABB6F67003A47835FD2F932446B931923A8CFE6EF494D98F0E
+EB7F60EDB1177F3F36B345FA66615A541E1FF750DEC539FC30BC206089670F73
+1DF1737FC4789F62A9B525EC774AF10D42E8D8D84028E763099E81F8B5877F33
+12C557D7A253E60933FE0D11A7A9A978D9F28A453DCA034305F151D0535BB62C
+535372ABF51F46218EA066DAFBBE215F71894DBBFBAA4B7BBC4B7F2D6B0F0993
+D768DB61CF6E4D09C9CF02B4D989B430A22B48E8D530BC85FE736475CE7C039A
+C8D5716388278D187F06B2976FE16AF966C1C6C35C90D87C41B9346217E39953
+64B8F8C333464C7BBF65D384C92E6BC1B63F176A8787C4437A4C4F0D73668448
+2C7BE6FF27322C803CAF343796841F4545A949B5EE0AF4CE94FE1922888756CC
+7583BD19A005CA24D67AB925486893B23DA3BABF6EDEF4AEC9825C0F98EC6AB6
+7AE0C63EE95A876D4777457A08CA4B2F75ECD24C997D8D154D46DE4A9C551E09
+A9C01D729BD89ADC9AA478E439A5A4DF6AE5AEEC7605A6807C33A81F057BA027
+26472B8E8AFF2FA807789444964810AB25875DAEA290F3C7A7F1066EE9B6D837
+0F6FF508495DDE64F41B7B90A9F2689B627601CCA500909B5B51C72AA5396561
+118EB471F7D7FAAD77A3972DCB464C63412D55344989FC252FF5DA5537C5D9D8
+0570C9ACE926CC783A114758069DB064A8846AAA4023B404621E4A285F2565ED
+07A505B5D2D4E2D0367C6EFB84CDF79FD8D29E6E743882D19A10B949CE99AAFC
+C0E033739A2067E4BBBC094EBA52CA5466B11E1D5A497AF0D9595D15DA64875F
+B27991AFC5843DEBD70DB899A0A174E0D15FA76F23ABB62EED0B110C5F0984D6
+D0464E3AAC0494C7819218064C78E1C8C4AE99B26A860FB2CF169DD290D78F5A
+F73E29177876F69A33E9130D5050C399EC2BB5AE0FC9A85FE204A79FCAC95A70
+FAC46A41D4543FCAF16AC56AD9D6AAA259B1A73A1A718E23447B813D0879A114
+D62608CA84890C2FAD6760B3AFEDA8C09B8190ED8DCAC82DA47900202097DE8F
+5F47794B6C75617193D7659F234A5523B641CDD54F55F370AFCBEB67750DA60C
+C84CDBEDDB03DA761934A09048D59EA7664FE6E04354777D0EEAB4D6AA69E8F1
+EDEED4AADED0BC6926BA284A3699B17F8773AF08417A12CB2C9242E6F0E848EE
+6C43213C588E3C3D18DC6C10FD4471BD851CDCB0261FE6AFE6894D8EF04167FB
+4512AC5252BDE4307B6046893C2B23A5A0F253BE4BE182D7F9624AD1E7AE3872
+34D3B168C3B05492BCB9540695C2DA431552110E7918B6CF04AE889CE27D13FA
+92AD05CF8BC5CF989E6D6ACB36CECBF19E0D440F664FEA0FDF8A8230E2B5E0DE
+85042A3D67A855B248061A5E54BF9797889372496BA278EA6D2CA7E0C5014D05
+2D70911FAA1C509BE801929308BD01CE2BBB1D3CDC3F49397AB9FE5536361D23
+62A2AFB4453150349B7F7C21F5B6BF7D681DEC6F3D81F41B53FB4CD0A3B7C5E3
+D25997CDCFF4106ADE8E9A00FA7C7A45BC16DC1DB117F012E9FF5FC78C3514AA
+F95F0324630BA80290FED6313EAF0ED0F32BB5B9013B96329277C921D31F2281
+001B4F722E65DC28EB509745E6B0EFFF588772AEBDA893CEBDFADF53CBC9A9AF
+6C2827FA5461A9BA728CD53BA25B5B33A5D43D03E24DAA35736423DE4C48056A
+3A06AE54E2D67FED955D8640A490809737
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR12 1.0
+% 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 (CMR12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR12 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 40 /parenleft put
+dup 41 /parenright put
+dup 48 /zero put
+dup 49 /one put
+dup 52 /four put
+dup 55 /seven put
+dup 63 /question put
+dup 68 /D put
+dup 71 /G put
+dup 97 /a put
+dup 101 /e put
+dup 102 /f put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 117 /u put
+dup 121 /y put
+dup 123 /endash put
+readonly def
+/FontBBox{-34 -251 988 750}readonly def
+/UniqueID 5000794 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
+59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
+51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
+DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
+AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
+45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
+821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
+96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
+9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
+26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
+140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
+1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
+1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
+377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
+0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
+5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
+ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
+FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB0F7F496AD
+7A919E031AC74FE7BEBA9DAFC47135B20B725741CA0DB97DC98279CB5D0C8355
+269C109DEE7C4F5943413ED6D8E063071D4E1A3F2806DDA95BF2DF0C5EF1C08B
+2530E12743B247F0FDAF0ADBE00A674233DB3892BCA81C70D39CA2F8676787AB
+BF90F4E095DE28DE3BF4594899B0F2CAF5C2CACEA240E3FB92C510AEDBE579B2
+F3A5FA4C42C62D26EC30C6E64B4676327607A94DBB20835214229B61AF6B9D3E
+85966D6D669105D4F44AF42AEE9825074790D6B3C2503BFEEC89CD7775B3F47B
+A9FAECC40F8990666D1F4F34D8B5C0A9A61DC9C1E2D317869EF7694C18B13624
+C6FC852C7CE9CA769081F40FCE1C466B72EF4D85666BD0512EB411F540C5E096
+85D5D83829E6815CA34F2DDC9969FEAD6B0A4C7DF2AF27A97DAB8B0C2DEF08CD
+FF1F6F5789F66CAF83932E9AF742524F5C566E3A0EBCA89FD3FDA2078519086D
+DE6C125605A89273F3764C3E7AFD0D8360551158555AE7B7F8B05B2911EE3D4B
+6938BE85024BB35075785C785E60678A0307AFA18CA21058953A27797F8519EE
+99F08390A9D182DE9C25001E4B2302CDE7ECB7EC17E0F06644F7E6AE69420732
+D69112795C5F39D50582B49D42D9E45EC92F1300464520E3E19AD7BDFD696122
+22C1E792AB3B781162B17B8070B7E913101DDBC82FC91BC6860015526D033970
+F2DD866AE1E8AC94E7B9A6429CD2B700BCC192E6374D59CC4D1E2BE35E43BEA2
+7636E89D31DCDFD72CA4227635B1A2F7A4362D0D02BF72559BD9FF9DEAEB6B18
+5239715A886E9B9C358324DC7A7A6BD0C84261A2B8163CD4E132593569F2FDD9
+DB64BAAFDDC5EDAD964A193166F0B22B2F1265AF8235F7D760303313A2155A90
+85DB651FF48749955A7D1D8EE5C1A18CE7122D471B943C25CC7A3E694249BA5B
+F2AA83D4E504C4BCE377A583DBD2A435EFD0147BE464897F8FE9AA95E781A579
+5B782416F3741631D580DFFC85D21B3CD33A77E99FA463B5B8DAD75A23EA32DC
+06DADD7E207010DB2007C6D42059AFDEA2D972754F1C9A2A5F0BEF966D9E8EFB
+8649DCD1362ED7E9613284244813E3660504DF2C920995D54B10D38BD578D4D1
+519A4684D2F499126C521939389D362DB5FFE16208ACEFBA9500F6C59FB05E6A
+D4AB3C88911C717935A273D253A36C1A3B8CBA3C120034DCFE3749DAE7C9899E
+DC671622CF97932285427CEE2D8945CB4776B41C80C2984958B0505171200594
+60D535BE9A19E71074CD595D377AC22BF7730084A3007E879FB7EF940D66F5A0
+86E9F9DA806DF005BF4A93076BF82F10BE47BDDD765B4938115A80DB86C61223
+F65E50AAC81CCBB090B0DE60ACD83A68804C740F6C40B08C7749EF6DDA2450F0
+EB4330D9616A8BAD3443AA7F3EC95B8752E4AA8FBC3B0C2C69DCF81236A5B23C
+9A0D363074978F0EB95BFB2A35670BE52879DA42FADB91C3E5DE434695EA3F66
+1C291F65E3EFF88F6B7B1A8623DEBA3F0A5E4EB6EB7BE4467F52696DD7CADAB6
+6DCC1918B30FF7911127378128A76010C8100BF3FDDFACF931D4623E764098BB
+3A04E38D9681DCF0B3F77292EDBD28DA18B9439817BECD12395ED1CF09AD3F17
+9256ACF722FFE9F82FEA5ABD3F5BEEB2758E55ED4DE9FE5EAE884465061B59BD
+9E0692923F3B50E0891110DDFD7CACEF4655B0168E4874F9ECEB64A014C82306
+C25AC65583AD56DE494ACF65F5ED3ECDACFF77EA57CBBF12AA165E45F2FAD595
+57DF017F7F994812E20740FB014E8DBC3E9068AE3BEEB4C7ED3F86B8972A042D
+1BC94AC606EF95D333347C51B3DC7E1F6AC92F6D065581BD31D9549CD0F98D5C
+8A2FED53DE6EA71886DFE83151BD3304E613DE185D1254BBE20AC1248F68A420
+D8DEA34F7C54BE904B9A2AE94288BFBF412FD3EDAF58BB411B88DA0BB65479DC
+458FD5A26CF1C51919CFDFC94C6AB9825031BC8500F49619CD3E1538F42715FB
+325C1CDFB22836DCDD0A65063434D6C477F67D3FBC5B2FEF3B0C84AFCBE58049
+A612C7C8BE6B594F969D27ABBF26B95592AA6C4E362B1AAB504614A997A5AAF0
+566A7A827B69AEE3F677EEE9090B1713467DE8492FDA5DBBE0B7AB0EBA542A31
+336CCCBF5C73F6C293F20595E3AA96EF75601C0386265C6FFD98E972CED40BC9
+6E46ADA0BA7F49842999EB1041D97C516E3547BD018A5DE7389B4A191565A883
+86BF987BA744BFE77549F89BFE297367058F1608BDCE9A917903EBB8C8EB4031
+C81535AE0E1AF43AC149F743652FEB43009D04A574EAD888711503D0389A4A74
+FBC294E2024C555D0AB75D8224C8DBA0BC62620F77D493C1D5EF16A06DF038AB
+A256E2939EC5E1C3CED5E8F9B97D910220E45BE0EA8B1D7249D3B5C868700C0E
+6A6291911CE33CB0590558315F1100CB63218DBB2307981FC7C2AAD5A93CB250
+17B167414960C4A327B12517287412DBB6F6DC08170BA56397587C37CF61C041
+C1177ADE503598467BDCC5E540EB8BA1DFA1FC45BFD9B3D01D3985A3F5025F3F
+0893E30C320737B29A1C0FB1459E7E5347E389590D74F873D0B6607789FCF4B9
+A95DCA073B07098CE1F1D69FA0ABCB6442654042901A4EE976A3EA0AA2EFAC15
+5A97BB6C4E1ACF4F1A3CC16FFE8EB721C1CD6FF52EB25825C0F4F32818F09D0C
+00F694ED84F7E77D53AE221BD250555F728DF653DA6DFCD7C5F56E561763BCE3
+F42AA807E33DFD1793F256369ECEA3B9277DB07E1B743E78424A86A3446F8127
+63A4A651BADCD835AF830AE05877DCD238045035F97E3E9C0DB26DA25EFAC0D2
+443B163FB871C0AF9A380D01885080DF464E49436A9EE794F1EFE704587F2CC7
+4557EFE28082D50A1D4DC999692E2B4BA999C569A07A3C6ACA46E357C40E0359
+DB77693E2DEACA47AF651A4758FBA89C6A1CE243FBE22840BF9586FD64AE66DE
+63BB157A2B78FFA69F6C754C8572E06283D9A9CC80163AA1ECE0ABB87F754FAA
+0ECE6CAF4EC35E61AB42EEBA8DAAD53B164C9BA60DBB4889E503D4E6E947EF34
+A20EA12BD8E6EAB2488402BD4DDB8EC967851DE8F6DD3CFDA220B86B91586415
+EF09791EBEE7A59C26B1677710D0365D3494FB18B0780A6DFAD2D6C183B8AF2F
+540D8A4EFDE9F71CE04DAEE908DED7170577FC51DF085DBD53D568F34764B4CF
+9CF53454192A5ABC36D567B986B3622649709520F3CBBA491F1076C02350B152
+8A8F3791509F3CDECBE910E9EE770AF2876B74623838B386A318689BE24174C1
+2B0839237BA3097229AB76F3DC01C03B7B4BD8788F246AEE19612D302F3825C4
+6751F252AECF9185C88EF10E06E158FEE9F0F8A824DD199448A172364A83705E
+A7BB5A5F95162D9B9F2708C000F28F8DD1CA7563203F3FEC62C3020936573165
+B2A8FA498B7E6416A721E4304EBBBAD397BA8415BE034956C15AB9BB7D0898DE
+208C48C9041E8F8524CCEEE1C7FE98E55FF19AF48D916BCA38AF484995891C06
+69FCB025B601E2DB0753F5233209754C12D0E45E9E2F86389CE2EBBE5D54C289
+A5CC6374011C8CCE0E02E03C50615242726B8651B4CC3637447693C3500F6B0B
+8AA1A9218709C995416BDB31D340168921B163E2FC424B57E4045C0AFBDB7F41
+1047EE6FA8D209F9BEC70E7A6CAA9690F0F2CCA1DA436D3C05D1FFA09D5B7D0E
+D2C0EDEE73CA2021C807CAE2E2737A1452337321D84431E41EF0EE73BEB35A94
+7F37C44E01402195305E2B4A5E5F00170E7ECA56552B6C0AF7F7BE17369F17A7
+3C83269A691BB5D515A99F9DA110087A2F263484850969F603E6F20386E5374B
+CA4BBE1D7C393E98984C8CF62129F39D42BABFCE3B79F345973BA1E9EE03E0A8
+FCA6ABB7A61593B08FBD
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMCSC10 1.0
+% 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 (CMCSC10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMCSC10 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 75 /K put
+dup 101 /e put
+dup 105 /i put
+dup 114 /r put
+dup 121 /y put
+readonly def
+/FontBBox{14 -250 1077 750}readonly def
+/UniqueID 5000772 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337
+900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA
+87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98
+076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518
+9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A
+FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD
+B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9
+CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30
+40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D
+C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B
+7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5
+FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC
+81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D
+5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90
+CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A
+0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB
+E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091
+22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060
+1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98
+6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C
+146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFF84F4CB497AF7
+033D6A0D389335132709ABFB81D507222ED4423EFAB4CDD5EF0C2FE23ABCD815
+FDE71D11426DB3A3720C3D1336875C4A06085648E2E1B29BC87C1275AE0EFFEE
+2A756846EF15EDBE619ED40D6EB11ECF3D574DCBD8C99E0FCDB9EC7AD24B0598
+22E118AECC67A32136517264D613A4731E715F8031A28422365A9FDF0FB8AC85
+72E0AA2D50C77E8A4B923FA8F4010A8415E188D2ABD3277031C2AD0F0F13E8B5
+39EE500AA1F968CF224D48E29CD9D216BA2737A8038E099FA42F4FCD20705CF1
+CC326E5371BFDF8CD2100FC054C47FBFA106659AC2CF99259D466672843988C0
+E008E0BCAA0E7856D54096018474903862DB64883D42C95318EA7608233390E5
+48D3B03DDD2BC8CF7CC8BFEC6023CE659DD1AE2E862F2D594A64D2FB6D3BD45E
+AEFC2EB24080042103D0AA334CE97CA5EA98E903B940742B5EE140779761D75F
+88E032FC86BCA74DBF2E21915933AF9041FC49FC755E0E548B1C286C1B27E1F6
+4944332749C53D5B77A3805A34CB37A3B486F9DE080E7C70D1B1D9445627CABF
+9383B24AC27C5B054CF6BD8184D0841814DE47454208F6A6EB5A0E64B9534F41
+9C71A2717BB68C0FBAE4189659FC42C53B388BDAAE77389713376C9B5E5169F6
+4221FAC50D261F43EE1F7E35BD2848041F03BF6FEF3C8C3C15A93103F2A927E3
+BA6320172A48C2BABAB04270EAE2684C856254B43573EC77D23D0246BA1233F7
+18C95A662A3378C7800FD8EADD0D4DEAC04A22152C96D3A53D682FC12F497E13
+1173A74A95DCA1DC3151D99417F1C3055EBFCCDEC92C42583BBEBCF02F5A4E33
+E0F2BEB9E949984057A2DB23C94F8A3715A5DE4EB96DE167242EA052ABBF2D90
+570CD570F974F6B82759D3DEBAE4EF88CD28E405B4E2CC177AB646DF1D8C3E90
+4C20E5BAA78671892DFAB8006188719D407B9E1B6D29BEB5B7FC7BB665ED37BE
+11CAA2B818943D664FE83B7645483285F0AB5CF5B628211EE0FF64F06B4B24F4
+739C5F5D8835B6825CF0A8854EDA46BD76B756DF7E98DE688856619F0AEB8410
+C51C1371F8A26E85483229E101C895F9B6F82A271BBC4269190136832A0F2C78
+3C68E1FF14B7AB4E587B9514E0B065CC905DF6CC043B766ED784C6EE35DC0547
+4F874A6FE19BC81E0775FDBF63BE50EC2805289A88EC63A3C1BE8A01490F5C43
+2B148DF45EB3B31F4008DA08DA4BF4F30024AEBD34AD21FBD7C4C96318A05A89
+4111A5C64CDEE6EDF0E9802800322DEC39D0B20E730CA301553FD7DC7A635294
+40A67040C629238F88B15266DD60FED9273B6FB95A491CB4D9B76CE9F7DC0A1A
+67C0572929AE82DB4B4AEB9805A6681F4301F1DAB56224A55B6EE5DD1E9382A6
+29075F732B6E659AFC84605027F874ACA4F82B0EF5D903DF528197BB4373B4C3
+CF758F45BBD80B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMBX12 1.0
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 51 /three put
+dup 52 /four put
+dup 67 /C put
+dup 75 /K put
+dup 101 /e put
+dup 104 /h put
+dup 105 /i put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 121 /y put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2BFB0B6A
+8636BA6EED68415B5F33A0F6C02719117459DC1B7D79F71433543693BAFB1491
+CFDE724FD97FD7DB175A4A975BC3B5343BBB1DCD4175EE0AFDFF4F513795D742
+35F25C3C32FF83AE61759C9023CF1EC743B83A7963F1418BA88B1F5C06871F36
+86C9CF538B2CA4BF3A02DA513BA681D02F5DB30E8744C044E6161DE60375437C
+32C3789A50DAE1E518399047DFA98EFF0BBEFD9B7B2B594BDCC7A57F179055EF
+777EF4A7C7DA00522FC799BC840016058F545EC4D2DC5361D4E0339A3311663E
+7140AF3A78B98A5E97A43048D2477E6522BAAC09371C10F4F18D09A8E1633356
+CD59FA342A45520C936A69EF0E0C1782D6F20628AE64588EAB484CD13015F189
+8C05B9A385B10E6949610980C91CE085504B0327053F738300515B81BE1D34A3
+9EDC8D218C184542EA16343A8BD9017B29A6B9A8CBFC6CE1F181D86608ED02C1
+20F359A0F72737E744C5E4AE47E75556279E312687D21F20F12695F61CFD41F2
+5FC44B605E2DF157FB675AAF004972B86656B9C57E46C3BE950D2194C3E5442E
+C307CE319F4EB7FE67318C9523EBF186C6CA93AEA2CEF2F8EFAB91A8DA2260C6
+B2CFAFC87201AED42BD4DAE39D4CC64CC91F6802FD089C7EAB4497FE971D51C2
+2D1720F0C68BB38480EA122F02EAF1D42965CCC49A18306AA2B866B4B70E3E32
+D9372874D79EB9617D648A900A8F5DFFB6461FE5639843F017095BBBFE16FC03
+DF42009DF9ED5C66F67A3C99446E1C1F77266B0590E15ABB4809D66B00474727
+9461C328289BADEFF0883F10297B544087F54E6C379B86EC02CCCA292BB2113B
+7B00C618971C95B2AA427350BF9D3A3B11F9C869DB9D163DA75ED86505C13F9F
+32808567244496821354DECAA8BEF85CE876D783BA804F0F45529AD452B46C6A
+85EDA71C45B28E2805A90E2C51D810B15553FEC402D45C20D9824A6E2A971B73
+BAF4402FD6C9FC91DBBD61668B168AFDF68493930F1F937BF98CAE158D6CD980
+D805CFC4B39CD06C5334A979E387E060FD5A49D1147B79BC732029B56DA4F0FA
+6CD98B80D4693E9FB834C8C65C468FD8D9CA4798C754BEE0D2E8A54ABA2E7C91
+A494BBBE97ED910B8BBD341BC976268F52F12E6544760305A94F791A4F0915C2
+FE98F15F4D7EE41E57C071F811403BB2B6E7B543A9F40FC7DAF6B52A4C832DD1
+E5ACFECD8C7B99F6F34A3E2A05C7B6F060F416A8158AE0D7A9792000A589F727
+C29CEE41C6197B4893BC7AE58B78C0698D0268585AEB8CE80C1542F60C574A0E
+61BC7E350E83B7369961169E716E215F7230A039297730A10E03D7AC9430CDB4
+023C6CFBAB263811007B49B53537979BDAC42522416396A25DB6B277D17F997D
+4A077E5105A4F417AC7896F88BDE4EEC89F28F8003A6B7EBDFB65E09D2B653B9
+553CCF170E346FF2627CC45B6EEB67DC91CD66B927F6F8C6E290538FB40AEDE7
+A64025ACB03A59B8587420F7969ECBDADC0F02528E9C12753DCD199541D3C45D
+F3500DFC0F184C336AE9DAB7D963B49729105C534F16990609994531D14CD6ED
+44A9F7977EB3CDD7327C3F8AA081B7B8A5EB95B8E5ED09318696FD4A37ABC0C1
+BA7D85A0AB9475F5E92EEC76424092424F1833A82054A4861210797DC73236DB
+4131DDED9D973BD183D2B1AA563B6BEA6EBFCCB518579667137BC247BD8545D9
+BEFF191B12B2D6BD9C7B9D7BF48B8BD5B179BA89DB9F03D583F155912C1FF03E
+C9CEAEB31A5FC2591EEDC1E79AF628576D49155D5B04160F9842CC24675F3CEA
+3F4CF208AF3F599349768A87052968A9067965110327D3FA8C7E19522FA136E6
+64812C991DD9FAC3544E05F40C1A1317B1317E7BF591F1958FAB17ABC7DB237F
+C5C81833F7EEFFACCAB8008F551754F53FED02E78DFD2A68760248FBE93E18FA
+A8107DA94600DC1FF087CF929A2F982462300FC405597749C786E0A480BF2D62
+2A760CDA33C48657FEEEFFDFBDA49ABC035468968B3433458C091050E2979C76
+8BCD67726B2410CD9A24CB8C0AD0F0A029C7BAF222D8207FB36C182DDC114732
+4423E8EC54FB9FE641F3E159BA92556575D71BDE9D19A932FFAEB72CDE9B179B
+BAB203F682AD096761E16D2A787D4CB5C97FF00B7A051FE89D0B39EEAA73E4F1
+57DD3A0166FE02487806B959E608430E57A2F93C6DBDB6374F3E1EFED1AD8EAD
+F5708EF45F8B66D711E332797FE9E2C85D6E32E4106958CF1F5733DCA27D6023
+5247A9EA34966E76A8DBDCE97FE5593F511D06F77FAD19EDFF23F5E999DF2C48
+F4A9B91C517B5765769BEDEE4AA8A5998EBFA1E4543AC375C379281F27A319A0
+1915874E1A401C60703F868F44A2336D1B9DCC6B3FF25AB31A2E55C822AEF034
+CCDACF7B5E4ADF3D003387E32036936FF6F63B54F11E517B52BCDB27B74F8FCD
+74208AEC6104118747FA2A7C0C4BBAE862CFA4436282CB2DFF1DF4E1A737DBD5
+5D64259C877191547076B1C7684CD252C02D58B7810E95ADC8C1C4497EE27922
+D87EB5B4B2F7081AB03BEEFB555C6942C79F53C77FF154FD87EAC82AC3A3A8C2
+2D91DF7C509A1838C72ADA3CB65BAF59E392FD8936DF8DC002A0C41215A3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 40 /parenleft put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 80 /P put
+dup 132 /Dcaron put
+dup 137 /Lcaron put
+dup 138 /Lslash put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+dup 197 /Aring put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB95DCD3599075B6F3852E6BD0C856EF704D5276DB85A577A3D89812DC6B
+E3FD98C5EF085ECA247CB9AAB98B493E6EDAF352ACE40162080B503DAA9E51DE
+6F5682F5627540723CCA87079E850FD3809CE0DD412E0D5F869F8AA462B305DA
+EA80E4FA8B83910A28089BA2613C51478E1AF167DBC726ADAA44731DBBC70AA7
+C5F09C13DCBD1C98D66300ED4734BA0CE7DB74FFBF159291B59A52324A568FD4
+743B61051BA406B6B80300A5C28E2478B7753E8903B8CC9CCAE3977B1CBD689D
+AAC6D5ABDB5BECC1F704639D6A4FF3A30B156503EDA1B8BD4DA69BD4316B73ED
+B1FA90735020D558F981CE612D99B7926177BCF57353053B24F0FB4954ED5622
+70D7249F56CCC0C465DA0E74E892825E9BEF02758AB38A769DE6E1FA50E2BE4D
+C5E1931C19ADA53901B9043CEDA1CD1BB2470E4852FE250C6CC8F197ED7F1D4F
+A62468ACF3EBEDD132A8CF46BAD3D3B3BA0FE3FFD1E90586342F38ACEB663FD7
+959C6D4910DB8E9640C6CFEB79575B4A698C96F0F87CF85E4D3EE82B4CB4983A
+38F3ED5C4197947596C51AA062957F2A79147DC7497862BF72FE7BB20827BEC2
+78F10273FE61F4D45CD9B7FAF363CB205A0C3FA53CBB5E67CFD9F3EA7437B35C
+EB575A4F94E973E95CD782E76C251AE66FB76692076CFA9A5AB11C51F19CE470
+2D0EBFEAB471868EE897DACF8EAFF76B7E9730D5B76BDCF48219651840EED6A3
+946DE7FBEA50604A15080819D7BE5BEF89F980D218043F77A0E5693D65751442
+25BD418F3B9B14494E46FA0814A921702D0B3965E4002CA91DDAE28B9529A22D
+415001418086EE58B0627D10EC85E09C55FA16F2BA2CAC7BE82C5786B2CC7F25
+597C660850861C4FBE1EC8C91B1A14B5058028A20D529020875BB33493A62410
+0740A4ED5CD5A3456AF41E91818E761E159D5E61C70DE1B766F6B41E595F9D6A
+5704B3FBB5C66D848266A4DCB61145FDA5301393B8DCD8D91EA10A320410CC96
+315850A76089412C572006D368542EB3368A85B5E4582457A56DD03A7D410062
+0650F660374C53560B4D74F207E8E4127D52264D3056E2DE77A7456415EA750F
+FFFB784024BB3042979D53166FF2D8634CADF52BACD9D9D9898C36B16850AB00
+B1323B1E5C63B633EE5C8E6660087C759288DCE4BA4FA80AF9A1B31EC3F9BEC0
+D49EC095D34DF10A4504C2B6AE0F2026ED14C65576D5E04A463AF972864805A8
+B20FE2BFB358A9188B39723BF5D509A7241EFEE4D02C8D097A4778E0522F64E2
+D8F8AA3006CAA4A99669B92363D9BD7E9D7D5D7DC32C34C091BAF3F5E91EFB72
+4A19F9E7656B7EC77A7311358B555BD8E67BEA86ED95F3811AD2E413F609330D
+0D5FEBF5DFC5115E4BC8DF3B6E7EA81880F7DEFD1DD0DF40DE9394011741FA62
+63633024AE5640A88BF5CF0AF60A1411AF651155DEE88B18FE80497B1FA81273
+0D2D71B4D268DA8CB6B2A3C9B64C76D285448BC770819F8D410699F9B5E24B7A
+4DDA1EBF98920A9B9AD10DB747A050C722AF53D42EEC2984BFBDD4765C88AFC8
+327AC35041C33A1A6D903104E93848F38CBEA1D07FBAEFE20D531C3E87897C62
+475583D0BF7204287576AC244E13724CDA03AC45651F894F44EDC78CF7332085
+F5C0E50172E1832D2B974B909BCD2122208C754F19C6041880EBEDF32BCB9502
+F49C830BE5B5A9D5EA91CCEF9009274F38AD5A6D09BC1B5F900E2ADABE11BF77
+F4A4BC38C5A5C65E43381F8910ECF8C58F1CC5F219CDF32DCBDFA1FCF0A3ACD2
+EEC570B614505B4D4C9B0820432FD2EC56769F3591B0BD33F87B4D1CC3FDB77C
+98776CC29A91DC183B1AD956AFF6A66CED1BE975026307E04141D857790DE2E8
+23984A8E39955032D7DE227956E27BDEBAE346746161A578FA507E455E291E3E
+ACE0E7BC9B24BF25F2469AB783C205794FF3E4B73EA85663F1EFF7BAE26B07CA
+29AE3CEFBC45DB7DD10E105B19271D89BA735555858B8B4879FA5D61AF8355F8
+F7BCF37687FC5B95A8826D577B7A846EBB0F068438F4AE5D3C1E1DBC78F14FB3
+4D9C491EC39840F21175D6097577723CF8AAFB128954B9A1BF4F866CCACF0810
+573C8BCD9AE2F0783FB483568924A4E5F3E0A0A6C413D240721F04DAE970C58A
+37158A31E56AEA0F0E49862F9D0D3A9886786F559FEF1AAEE9C0FEB1BE4810BE
+0DD2A5B6AE12B9B1FBBE34BF633D0C7DF974113475CDA0ED74232AD5F24B0CAF
+6E8360D5323800496C39D4D773CB3E61086DAC954DDE8100C4B683CF45DEA2D7
+A7A500A312812C894FA28DBD866036EA40EE5890CE80CA8E557996274C7796A4
+B993154981D7C1366438DED196D31C6B7BB409ADEBC53FC0CCD4B62F12D0B34A
+3BA8C7E852CB96C5644EF4927B74B2D135BA3726D039F19F657A9AA610C95E60
+9454D04AF05D869985F431FF5E13C9DD4085A28982A150D1928DE6AB60E2F880
+DB93ECA06E5A4BE4DC486339C31A1A4FD1363FFE9CE69CD21ABE99E5E18F7659
+BC1A1E4A6C336890D445FE22A76796B5ACFFDB460E37A9988A78010547B2CD50
+1B548D2B7C37CDBEDED471BFB748EDB33F3E3EF5FB0C98E77763A60443675685
+B58386B29C13C0CFFB422936DC5AD5BD51D5893EE6FBFDBC3680D9D81DAA41DA
+A34158776225C6117E1F907DC745F9E4F1CBF9D3CB5CF1039BF2F06BE39BFE09
+7B646265B8512A9C5B29BCE8627685A662BF38551BD0FFC2C9922DD07F5A02AE
+769A935D32100A542B34D46F17EB4B211323E28EF4B4DD68EA407B4F30C47E8E
+E4EF7F2450F6FA22096BD96C39C78117F82BE6AEB56F8B9AA097225BF86345BB
+5149205C375C406B814DF067DF12C88173D4FD778870A2F13873E8F048365EB4
+2B82D7B63BFC16578DA0BDF74F3C10542A1AA1C03A5AC10EA8CC36CD6A744233
+CCAC344386381D7C65F880F79E0C086F8190D6BBB0A07C61FEAE47B10E6B7E05
+24804EC1EE6C685FEF1B5CC3B83E883675B61FA0B08C24A0042F3506E11B51D9
+7A72308FCFD22A53ECEC43F6F4A98A87392FC040D221524DA3D248B0990F34A1
+18683603C3DB0F2CDA520D60A4B8E8546A45E4BC477B2D3FB3184945DE6315BD
+77FA819C1C1ADD745B02A7E1A90C80479040A3B9DAEA04BA3A4128AAFB480A50
+FEA18D66D290D1C4DE36C8EDAE6A1D3DB48CA071021E4C85E217B16E08174EED
+C1A10093879CF45706358D2D3400010BC6416E95E3249DF9EB536E8F4AAEAF40
+8F7DE58EAB0E10AD75157FA700
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 166 /eogonek put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D489DAAC4FCCE8E9BA1
+74B690085D9F011420EF2C163B75BDBACCF4EFBA71444E80A99EC69331AA6B02
+FEB7D8EC25FC4529D44DB8865A5F75FB5569E91A1B2F79D1D7FB7F05C7871213
+1A4EE92AF0EB675C5E9869003B297BC69D2A774183D4BB5A748733151CB253F7
+52ECF3F13DBC71ABD3FF5BB7270F135796F114F5B8FB58D13EDD36167A7985F1
+41A1D308BA0CD66D2E141A19F66FF2B1FACAAECB374980064E44915EB93763E8
+B7AA3FFDD0932914332AE9E7F51B220AC4475D1A88223D4F3B0F7B47950F3698
+5974C5C98CCFB607E775B7581BD82BD605E6EF1A0B3CB1EBF45ECEF7B8550D79
+21DF69EAB9E29446B3B2804BFDA94A4441DAF8A71A25FE0866792A2CDC2422BC
+5C66E15B69F47B25EB8FCDA4F0323901D02D7011C180F5F8711B81AF3BDC4D83
+FAB50B7975C55E782B4ED3F74E474F8A2FAB2AD4C349FF1BD0CEFA7451884AAF
+75E03F0DB9DAAD747943B91F963BB3D019CC351D78332E657D88EC81E78573D3
+AB6EE29D84A8681393EF4369C36DF5795919
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+TeXDict begin 39158280 55380996 1000 2540 2540 (dufay.dvi)
+@start /Fa 190[0 65[{}1 702.92 /TeXXSLZ20-Regular rf
+/Fb 198[176 1[176 1[176 1[176 176 176 49[{}6 351.46 /CMMI10
+rf /Fc 132[206 1[218 3[229 7[344 115 2[115 2[126 184
+3[206 25[324 2[315 4[195 7[206 2[206 2[206 206 6[161
+161 40[{}18 421.752 /CMR12 rf /Fd 134[536 6[527 8[264
+3[488 25[737 75[{}5 874.432 /CMCSC10 rf /Fe 134[300 4[221
+225 233 8[158 316 2[260 25[446 7[411 14[285 285 51[{}11
+506.102 /CMBX12 rf /Ff 58[2249 1125 562 56[1125 562 4[1125
+51[0 6[562 1[562 7[0 0 7[211 1[211 1[211 9[0 31[0 0 6[0{}18
+702.92 /TeXMUSIX20-Regular rf /Fg 89[0 166[{}1 702.92
+/TeXMUSIXSPX-Regular rf end
+TeXDict begin
+a4
+ end
+TeXDict begin 1 0 bop -1540 3379 a Fg(\246)p -1540 4045
+18417 15 v -1540 4220 V -1540 4396 V -1540 4572 V -1540
+4748 V -1540 2024 V -1540 2199 V -1540 2375 V -1540 2551
+V -1540 2727 V -1540 4748 15 2731 v 834 x Ff(I)-1540
+2544 y(G)-849 4376 y Fe(3)-849 4728 y(4)-849 2356 y(3)-849
+2707 y(4)6392 -16 y Fd(Kyrie)13794 628 y Fc(Guillaume)138
+b(Dufa)-11 b(y)14502 1050 y(\(1400?{1474\))p -71 5003
+15 615 v -70 4389 a Ff(\010)-70 4301 y(\000)p 133 4038
+15 516 v -263 x(\010)-1125 1665 y Fe(Kyrie)p 133 2456
+15 615 v -70 2456 a Ff(\010)p 1193 3869 317 15 v 1450
+3774 15 417 v 1247 3774 a(\007)p 1449 2456 15 615 v 1246
+2456 a(\007)p 2177 4748 15 2731 v 2520 4652 15 615 v
+2521 4038 a(\010)p 2467 3869 317 15 v 2724 3862 15 450
+v -176 x(\010)p 2724 2720 15 615 v -1142 x(\010)3625
+3950 y(2)p 3836 4564 V 1 w(\007)p 3784 3869 317 15 v
+4041 3774 15 417 v 3838 3774 a(\007)p 4040 2808 15 615
+v 3837 2808 a(\007)p 4768 4748 15 2731 v 5058 3869 317
+15 v 5111 4476 15 615 v 5112 3862 a(\010)p 5058 3869
+317 15 v 5059 3693 V 5316 3686 15 417 v 5113 3686 a(\010)p
+5315 2544 15 615 v 5112 2544 a(\010)p 6375 3869 317 15
+v 6428 4389 15 616 v 6429 3774 a(\007)p 6375 3869 317
+15 v 6632 3774 15 417 v(\007)p 6631 2632 15 615 v 6428
+2632 a(\007)p 7359 4748 15 2731 v 7702 4652 15 615 v
+7703 4038 a(\010)7703 3950 y(\000)7491 3862 y(4)p 7649
+3869 317 15 v 7906 3862 15 450 v 1 w(\010)7703 3774 y(\000)p
+7906 2720 15 615 v -1054 x(\010)1315 b(>)p 9950 4748
+15 2731 v 10240 3869 317 15 v 10293 4389 15 616 v 10294
+3774 a(\010\000)p 10240 3869 317 15 v 10241 3693 V 10498
+3598 15 417 v 10295 3598 a(\010)p 10497 2456 15 615 v
+10294 2456 a(\007\000)p 12037 3869 317 15 v 12038 3693
+V 12295 3598 15 417 v 12092 3598 a(\007)p 11635 2544
+15 659 v 11432 2544 a(\007)p 12293 2456 15 604 v 12090
+2456 a(\007)11636 1885 y(\204)11835 1875 y(\204)p 12952
+2368 15 550 v 12749 2368 a(\007)p 13406 4748 15 2731
+v 13749 4652 15 615 v 13750 4038 a(\010)p 13696 3869
+317 15 v 13697 3693 V 13954 3686 15 417 v 13751 3686
+a(\010)p 13749 2895 15 615 v 13750 2280 a(\007\000)p
+15493 3869 317 15 v 15546 4389 15 616 v 15547 3774 a(\007)p
+15493 3869 317 15 v 15494 3693 V 15751 3598 15 417 v
+15548 3598 a(\007)p 14888 2939 15 484 v 14889 2456 a(\007)p
+15546 2906 15 539 v 15547 2368 a(\007)14889 2939 y(\204)15095
+2929 y(\204)p 16204 2873 15 594 v 16205 2280 a(\007)p
+16862 4748 15 2731 v -1540 7200 a Fg(\246)p -1540 7866
+18417 15 v -1540 8042 V -1540 8218 V -1540 8394 V -1540
+8569 V -1540 5845 V -1540 6021 V -1540 6197 V -1540 6373
+V -1540 6548 V -1540 8569 15 2731 v -1628 5531 a Fb(7)-1540
+8035 y Ff(I)-1540 6366 y(G)p -684 7691 317 15 v -631
+8298 15 615 v -630 7684 a(\010)1364 7771 y(2)p 1574 8386
+V(\007)p -684 7691 317 15 v -683 7515 V -426 7508 15
+417 v -629 7508 a(\010)p 1522 7691 317 15 v 1779 7596
+15 417 v 1576 7596 a(\007)p -428 6278 15 572 v -631 6278
+a(\007)-291 6190 y(2)p 124 6190 15 456 v 1 w(\007)p 675
+6278 15 516 v 472 6278 a(\007)p 1227 6366 15 577 v 1024
+6366 a(\007)p 1778 6366 15 549 v 551 w(\007)-428 5707
+y(\305)87 5732 y(\305)p 2330 6454 15 609 v 2127 6454
+a(\007)p 2677 8569 15 2731 v 2967 8474 15 615 v 2968
+7859 a(\010)2968 7771 y(\000)p 2915 7691 317 15 v 2916
+7515 V 3173 7508 15 417 v 2970 7508 a(\007)p 3171 6278
+15 615 v 2968 6278 a(\010\000)p 3695 7691 317 15 v 3952
+7596 15 572 v 3953 7596 a(\()-204 b(\007)p 4246 7691
+317 15 v 4503 7684 15 450 v 4300 7684 a(\007)4869 7771
+y(2)p 5283 7771 15 572 v 204 w(\()g(\007)p 5631 8569
+15 2731 v 5921 8561 15 615 v 5922 7947 a(\010)p 7482
+8825 V 7483 8211 a(\007)p 5868 7691 317 15 v 6125 7596
+15 417 v 5922 7596 a(\007)6701 7947 y(>)p 7429 7691 317
+15 v 7686 7596 15 417 v 7483 7596 a(\007)5710 6190 y(2)p
+5921 6804 15 615 v 1 w(\010)p 7685 6278 V 7482 6278 a(\007)p
+8262 8569 15 2731 v 8552 8737 15 615 v 8553 8123 a(\010)p
+8756 7947 15 484 v -176 x(\007)p 9307 8035 15 572 v 9104
+8035 a(\007)p 9859 7947 15 484 v 9656 7947 a(\007)p 8756
+7506 1662 85 v 10410 8123 15 659 v 10207 8123 a(\007)p
+8756 6366 15 615 v 8553 6366 a(\010)p 10758 8825 V 10759
+8211 a(\007)p 10962 8035 15 549 v -176 x(\007)p 10962
+6278 15 615 v -1757 x(\007)p 11538 8569 15 2731 v 11828
+8561 15 615 v 11829 7947 a(\007)12720 7771 y(2)p 12931
+8386 V 1 w(\007)p 14034 8474 V 14035 7859 a(\007)-2207
+b(?)p 12327 7691 317 15 v 12584 7596 15 572 v 12381 7596
+a(\007)p 12878 7691 317 15 v 13135 7596 15 544 v 551
+w(\007)13272 7684 y(4)p 13430 7691 317 15 v 13687 7684
+15 604 v 1 w(\007)p 13981 7691 317 15 v 14238 7684 15
+577 v 551 w(\007)14375 7771 y(6)12583 7025 y(\304)13673
+7079 y(\304)p 14789 7771 15 637 v 14586 7771 a(\007)p
+12032 6366 15 615 v 11829 6366 a(\010)13823 6454 y(4)p
+14238 6454 V 1 w(\007)p 15137 8569 15 2731 v 15427 8561
+15 615 v 15428 7947 a(\010\000)p 15374 7691 317 15 v
+15631 7596 15 417 v -351 x(\010\000)p 15631 6366 15 615
+v -1230 x(\010)15428 6278 y(\000)p 16778 8569 15 2731
+v 16862 8569 V -1540 11374 a Fg(\246)p -1540 12040 18417
+15 v -1540 12215 V -1540 12391 V -1540 12567 V -1540
+12742 V -1540 10019 V -1540 10194 V -1540 10370 V -1540
+10546 V -1540 10722 V -1540 12742 15 2731 v -1716 9704
+a Fb(13)-1540 12208 y Ff(I)-1540 10539 y(G)-849 12371
+y Fe(3)-849 12723 y(4)-849 10350 y(3)-849 10702 y(4)p
+-96 12998 15 615 v -95 12384 a Ff(\010)-95 12296 y(\000)p
+-149 11864 317 15 v 108 11769 15 417 v -527 x(\010\000)-1151
+9572 y Fe(Christe)p 108 10451 15 615 v -95 10451 a Ff(\010\000)p
+1393 12742 15 2731 v 1711 12822 15 615 v 1712 12208 a(\010)1712
+12120 y(\000)p 1659 11864 317 15 v 1916 11857 15 450
+v 1713 11857 a(\010)913 10600 y Fa(A)p 1915 10451 15
+615 v 1712 10451 a Ff(\010\000)p 2874 11864 317 15 v
+2875 11688 V 3132 11593 15 572 v 2929 11593 a(\007)3133
+11022 y(\303)3186 11025 y(\303)p 3482 11864 317 15 v
+3483 11688 V 3740 11681 15 629 v 3537 11681 a(\007)p
+4143 12742 15 2731 v 4461 12734 15 615 v 4462 12120 a(\010\000)p
+4408 11864 317 15 v 4665 11769 15 417 v -351 x(\007)p
+5624 11864 317 15 v 5881 11857 15 450 v 5678 11857 a(\007)6682
+11945 y(2)p 7097 11945 15 483 v 1 w(\007)4461 10715 y(?)4858
+10363 y(2)p 5273 10363 15 484 v 1 w(\007)p 5881 10363
+V 608 w(\007)p 6489 10451 15 572 v 6286 10451 a(\007)p
+7097 10363 15 484 v 6894 10363 a(\007)p 5273 9922 2439
+85 v 7705 10539 15 659 v 7502 10539 a(\007)p 8109 12742
+15 2731 v 8427 12998 15 615 v 8428 12384 a(\010)p 8630
+12033 15 516 v 8427 12033 a(\010)8427 11945 y(\000)8216
+10627 y(4)p 8630 10627 15 615 v(\010\000)p 9643 12998
+V 9644 12384 a(\007)p 10503 12742 15 2731 v 10821 12910
+15 615 v 10822 12296 a(\010)p 11025 12120 15 516 v -176
+x(\010)p 11025 10539 15 615 v -1581 x(\010)p 12037 12998
+V 12038 12384 a(\007)p 12240 12208 15 549 v 12037 12208
+a(\007)p 12240 10451 15 615 v -1757 x(\007)p 12897 12742
+15 2731 v 13215 12734 15 615 v 13216 12120 a(\010)p 15647
+12647 V 15648 12033 a(\007)13215 12120 y(?)p 13770 11864
+317 15 v 14027 11769 15 484 v 13824 11769 a(\007)p 14378
+11864 317 15 v 14635 11857 15 572 v 14432 11857 a(\007)p
+15242 11945 15 659 v 15039 11945 a(\007)p 15594 11864
+317 15 v 15851 11857 15 572 v 15648 11857 a(\007)p 14027
+11328 2439 85 v 16202 11864 317 15 v 16459 11769 15 484
+v 16256 11769 a(\007)p 13419 10802 15 615 v 13216 10802
+a(\007)p 14635 10715 V 14432 10715 a(\007)p 15850 10627
+V 15647 10627 a(\007)p 16862 12742 15 2731 v -1540 15195
+a Fg(\246)p -1540 15861 18417 15 v -1540 16037 V -1540
+16213 V -1540 16388 V -1540 16564 V -1540 13840 V -1540
+14016 V -1540 14192 V -1540 14368 V -1540 14543 V -1540
+16564 15 2731 v -1716 13526 a Fb(19)-1540 16030 y Ff(I)-1540
+14361 y(G)-821 15766 y(2)p -610 16381 15 615 v 1 w(\010)p
+1075 16468 V 1076 15854 a(\007)p -195 15942 15 516 v
+-398 15942 a(\007)p 180 15686 317 15 v 437 15591 15 417
+v 234 15591 a(\007)p 1022 15686 317 15 v 1279 15679 15
+450 v 1076 15679 a(\007)p -406 14361 15 615 v -609 14361
+a(\010)p 1279 14448 V 1076 14448 a(\007)p 1917 16564
+15 2731 v 2229 16556 15 615 v 2230 15942 a(\010\000)p
+2176 15686 317 15 v 2433 15591 15 417 v -351 x(\010)3913
+16381 y(>)p 2432 14361 15 615 v 2229 14361 a(\007)3071
+14536 y(>)p 4117 14361 V 3914 14361 a(\007)p 4755 16564
+15 2731 v 5014 15686 317 15 v 5067 16206 15 616 v 5068
+15591 a(\010)p 6699 15686 317 15 v 6752 16293 15 615
+v 6753 15678 a(\007)p 5014 15686 317 15 v 5015 15510
+V 5272 15415 15 417 v 5069 15415 a(\010)p 6699 15686
+317 15 v 6700 15510 V 6957 15503 15 417 v 6754 15503
+a(\007)p 5271 14273 15 615 v 5068 14273 a(\007)5698 14185
+y(2)p 5909 14799 V 1 w(\007)p 6955 14273 V 6752 14273
+a(\007)p 7594 16564 15 2731 v 7694 15766 a(2)p 7905 16381
+15 615 v 1 w(\007)p 7852 15686 317 15 v 8109 15591 15
+417 v -175 x(\007)p 8109 14361 15 572 v 8110 14361 a(\()-204
+b(\007)p 8920 16468 15 615 v 8921 15854 a(\007)p 8867
+15686 317 15 v 9124 15679 15 450 v -175 x(\007)p 8704
+14448 15 615 v 8501 14448 a(\007)p 9935 16556 V 9936
+15942 a(\007)p 10139 15766 15 483 v -176 x(\007)p 9543
+14536 15 659 v 9340 14536 a(\007)p 10139 14361 15 454
+v 9936 14361 a(\007)9545 13877 y(\304)9618 13881 y(\304)p
+10734 14624 15 688 v 10531 14624 a(\007)p 11125 16564
+15 2731 v 11437 16820 15 615 v 11438 16206 a(\007)p 12627
+16644 V 12628 16030 a(\007)p 13818 16732 V 13819 16118
+a(\007)p 11641 15854 15 516 v 11438 15854 a(\010)13607
+15942 y(4)p 14022 15942 V 1 w(\007)p 11641 14448 15 484
+v 11438 14448 a(\007)p 12236 14536 15 542 v 12033 14536
+a(\007)p 12575 14719 317 15 v 12832 14712 15 688 v 12629
+14712 a(\007)p 13426 14624 15 570 v 13223 14624 a(\007)13607
+14712 y(4)p 13765 14719 317 15 v 14022 14712 15 628 v
+1 w(\007)11641 13965 y(\305)12374 14002 y(\305)p 14360
+14719 317 15 v 14617 14800 15 686 v 14414 14800 a(\007)p
+15008 16564 15 2731 v 15320 16820 15 615 v 15321 16206
+a(\010)15321 16118 y(\000)p 15524 15854 15 516 v -264
+x(\010)15321 15766 y(\000)p 15524 14624 15 615 v -1142
+x(\010\000)p 16778 16564 15 2731 v 16862 16564 V -1540
+19368 a Fg(\246)p -1540 20034 18417 15 v -1540 20210
+V -1540 20386 V -1540 20562 V -1540 20737 V -1540 18014
+V -1540 18189 V -1540 18365 V -1540 18541 V -1540 18716
+V -1540 20737 15 2731 v -1716 17699 a Fb(25)-1540 20203
+y Ff(I)-1540 18534 y(G)-849 20366 y Fe(3)-849 20718 y(4)-849
+18345 y(3)-849 18697 y(4)p -165 20993 15 615 v -164 20379
+a Ff(\010)p -218 19859 317 15 v 39 19764 15 417 v -615
+x(\010)-1220 17567 y Fe(Kyrie)p 39 18446 15 615 v -164
+18446 a Ff(\010)p 775 20729 V 776 20115 a(\007)564 19676
+y(2)p 722 19859 317 15 v 723 19683 V 980 19676 15 417
+v 2 w(\007)p 979 18534 15 615 v 776 18534 a(\007)p 1440
+20737 15 2731 v 1689 20993 15 615 v 1690 20379 a(\007)p
+1636 19859 317 15 v 1893 19764 15 417 v -615 x(\010)p
+1893 18622 15 615 v -1142 x(\010)2354 21082 y(?)p 2824
+20950 15 572 v 2825 20379 a(\007)p 3293 20903 15 612
+v 3294 20291 a(\007)2824 20950 y(\211)3216 20911 y(\211)p
+3763 20856 15 653 v 3764 20203 a(\007)p 3241 19859 317
+15 v 3498 19852 15 450 v 3295 19852 a(\007)p 3497 18534
+15 615 v 3294 18534 a(\007)p 4233 20737 15 2731 v 4494
+20729 15 615 v 4495 20115 a(\007)p 5159 20817 V 5160
+20203 a(\007)5613 20291 y(2)p 5824 20905 V 1 w(\007)4283
+19940 y(2)p 4698 19940 15 483 v 1 w(\010)p 5771 19859
+317 15 v 6028 19852 15 450 v 5825 19852 a(\007)4283 18358
+y(2)p 4494 18972 15 615 v 1 w(\007)p 5363 18446 V 5160
+18446 a(\007)p 6028 18534 V 5825 18534 a(\007)p 6489
+20737 15 2731 v 6750 20993 15 615 v 6751 20379 a(\007)7415
+20730 y(>)665 b(>)p 6697 19859 317 15 v 6954 19764 15
+417 v 6751 19764 a(\010\000)6539 18622 y(4)p 6954 18622
+15 615 v 1 w(\010\000)p 8745 20737 15 2731 v 8994 20729
+15 615 v 8995 20115 a(\010)p 10873 20642 V 10874 20027
+a(\007)p 8941 19859 317 15 v 9198 19764 15 417 v 8995
+19764 a(\010)10662 19852 y(4)p 10821 19859 317 15 v 11078
+19852 15 450 v 2 w(\007)8994 18709 y(?)p 9667 18534 15
+572 v 9464 18534 a(\007)p 10137 18534 15 548 v 470 w(\007)10193
+18622 y(4)p 10607 18622 15 612 v(\007)p 11077 18622 15
+589 v 470 w(\007)9667 17963 y(\304)10430 18001 y(\304)p
+11547 18709 15 653 v 11344 18709 a(\007)p 11813 20737
+15 2731 v 12062 20729 15 615 v 12063 20115 a(\010)p 12009
+19859 317 15 v 12266 19764 15 417 v -351 x(\010)p 12266
+18534 15 615 v -1230 x(\007)p 13667 20817 V 13668 20203
+a(\007)p 13871 20027 15 516 v -176 x(\007)p 12931 18622
+15 659 v 12728 18622 a(\007)p 13401 18534 15 619 v 13198
+18534 a(\007)p 13871 18446 15 578 v 13668 18446 a(\007)13927
+18358 y(2)12931 17963 y(\212)13224 17933 y(\212)p 14341
+18358 15 537 v 14138 18358 a(\007)p 14607 20737 15 2731
+v 14868 20729 15 615 v 14869 20115 a(\010)p 16197 20642
+V 16198 20027 a(\007)14657 19940 y(2)p 15071 19940 15
+483 v(\010)p 16145 19859 317 15 v 16402 19852 15 450
+v 16199 19852 a(\007)p 15071 18534 15 615 v 14868 18534
+a(\007)p 15736 18622 V 15533 18622 a(\007)p 16401 18709
+V 16198 18709 a(\007)p 16862 20737 15 2731 v -1540 23190
+a Fg(\246)p -1540 23856 18417 15 v -1540 24032 V -1540
+24208 V -1540 24383 V -1540 24559 V -1540 21835 V -1540
+22011 V -1540 22187 V -1540 22362 V -1540 22538 V -1540
+24559 15 2731 v -1716 21521 a Fb(32)-1540 24025 y Ff(I)-1540
+22355 y(G)p -683 24815 15 615 v -682 24201 a(\010)p 587
+24815 V 1270 w(\007)p -479 23849 15 516 v -682 23849
+a(\010)-682 23761 y(\000)p -479 22619 15 615 v -1142
+x(\007)-48 22531 y(>)635 b(>)p 1221 24559 15 2731 v 1489
+24551 15 615 v 1490 23937 a(\007)1278 23761 y(2)p 1693
+23761 15 483 v 1 w(\007)p 1693 22531 15 572 v 1694 22531
+a(\()-204 b(\007)p 2254 24639 15 615 v 2255 24025 a(\007)p
+2458 23849 15 516 v -176 x(\007)p 2142 22619 15 615 v
+1939 22619 a(\007)p 2518 22714 317 15 v 2775 22707 15
+572 v 2776 22707 a(\()g(\007)p 3183 24551 15 615 v 3184
+23937 a(\007)p 3387 23937 15 516 v(\007)2972 22795 y(2)p
+3130 22714 317 15 v 3387 22795 15 616 v 1 w(\007)p 3818
+24559 15 2731 v 4056 24463 15 615 v 4057 23849 a(\007)p
+4471 24025 15 549 v 4268 24025 a(\007)p 4003 22714 317
+15 v 4004 22890 V 4261 22883 15 703 v 4262 22751 a(\()4058
+22883 y(\007)p 4468 22714 285 15 v 4709 22707 15 615
+v 4506 22707 a(\007)p 4821 24639 V 4822 24025 a(\007)p
+5025 23849 15 572 v 5026 23849 a(\()g(\007)p 5473 23937
+15 516 v 5270 23937 a(\007)p 5473 22619 15 572 v 5474
+22619 a(\()g(\007)p 5718 24727 15 615 v 5719 24113 a(\007)p
+5681 22714 285 15 v 5922 22707 15 615 v -1406 x(\007)p
+6238 24025 15 572 v 6239 24025 a(\()g(\007)p 6483 24559
+15 2731 v 6722 24815 15 615 v 6723 24201 a(\007)p 6925
+23849 15 516 v 6722 23849 a(\007)p 6925 22619 15 572
+v 6926 22619 a(\()g(\007)p 7374 22443 15 615 v 7171 22443
+a(\007)p 7434 23680 317 15 v 7487 24201 15 616 v 7488
+23585 a(\007)7276 23761 y(2)p 7901 23761 15 572 v 415
+w(\()g(\007)p 8175 23937 15 516 v 7972 23937 a(\007)p
+8175 22355 15 572 v 8176 22355 a(\()g(\007)p 8383 23680
+285 15 v 8420 24288 15 615 v 8421 23673 a(\007)p 8624
+22531 V -1142 x(\007)p 8940 23849 15 572 v 8941 23849
+a(\()g(\007)p 9185 24559 15 2731 v 9370 23680 317 15
+v 9423 24201 15 616 v 9424 23585 a(\007)p 9838 24201
+15 615 v 9635 24201 a(\007)p 9627 22443 15 572 v 9628
+22443 a(\()g(\007)p 10076 22619 15 615 v 9873 22619 a(\007)p
+10135 23680 317 15 v 10136 23505 V 10189 24201 15 791
+v 10190 23410 a(\007)p 10346 23680 317 15 v 10603 23585
+15 572 v 10604 23585 a(\()g(\007)p 10621 23680 317 15
+v 10878 23673 15 450 v 10675 23673 a(\007)p 10876 22268
+15 572 v 10877 22268 a(\()g(\007)p 11084 23680 285 15
+v 11084 23505 V 11121 24201 15 703 v 11122 23498 a(\007)p
+11325 22355 15 615 v -1143 x(\007)11227 23761 y(2)p 11641
+23761 15 572 v 204 w(\()g(\007)p 11886 24559 15 2731
+v 12072 23680 317 15 v 12125 24201 15 616 v 12126 23585
+a(\010)p 13342 23680 317 15 v 13395 24288 15 615 v 13396
+23673 a(\007)p 12072 23680 317 15 v 12329 23585 15 417
+v 12126 23585 a(\010)p 13342 23680 317 15 v 13343 23505
+V 13600 23498 15 417 v 13397 23498 a(\007)p 12328 22268
+15 615 v 12125 22268 a(\007)p 12759 22794 V 12760 22180
+a(\007)p 13394 22706 V 13395 22092 a(\007)p 14029 24559
+15 2731 v 14215 23680 317 15 v 14268 24201 15 616 v 14269
+23585 a(\010\000)14294 23058 y(P)p 14215 23680 317 15
+v 14216 23505 V 14473 23410 15 417 v 14270 23410 a(\010\000)14294
+21740 y(P)p 14471 22268 15 615 v 14268 22268 a(\010\000)p
+15367 24559 15 2731 v 15605 24551 15 615 v 15606 23937
+a(\010\000)15631 23234 y(P)p 15552 23680 317 15 v 15809
+23585 15 417 v 15606 23585 a(\010\000)15631 21828 y(P)p
+15809 22355 15 615 v 15606 22355 a(\010)15606 22268 y(\000)p
+16704 24559 15 2731 v 16771 24559 106 2731 v eop end
+userdict /end-hook known{end-hook}if
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/grace.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/grace.eps
index 0ea3e9502b3..660e2f1af88 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/grace.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/grace.eps
@@ -1,758 +1,758 @@
-%% LaTeX2e file `eps/grace.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: grace.dvi
-%%CreationDate: Sun Sep 28 15:50:01 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 742 453 792
-%%DocumentFonts: TeXMUSIX16-Regular TeXMUSIX11-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE grace.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1550
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX11-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
-%%CreationDate: 01-07-25 at 04.06
-%%VMusage: 1024 36750
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 700 300 0
-%%EndComments
-FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX11-Regular) readonly def
-/FamilyName (TeXMUSIX11) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -200 def
-/UnderlineThickness 100 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 700 def
-/descent 300 def
-end readonly def
-/FontName /TeXMUSIX11-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 12 /ogonek put
-dup 40 /parenleft put
-dup 52 /four put
-dup 154 /Zcaron put
-dup 156 /IJ put
-dup 217 /Ugrave put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -3182 6250 3186}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
-46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
-4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
-BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
-66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
-021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
-15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
-4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
-3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
-FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
-99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
-BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
-1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
-9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
-698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
-33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
-42377558646B7A8EE402D8B9C63B03F236BEB5FB181701A6993C4C2BD002D0E6
-B37E7BAC1A3C29BEC60629602AE201EAE23C4DEC09B7767585443436C3FB1E81
-D846393DA3F4581BB3CEEC31ACFD76C69688F132A1B6BBC5D0ECD97DF776BFFC
-F5654F7147B8B84C545D3E5D0EAD5A168C76B2B96C6CC82A1C88BCAB20F1992F
-25FA93E98B38DDC599F5B09D4265C3430DB857CCBD6A49E13FACB92F33037FBB
-ACA91AA44045BA5A5A0B13A8CBC8693DC3F004BA247EB1C09D4818DA706DC06F
-3BABB74CD5149D8B6F296FBB7614A807AED6CAA479F4D590F8EB2E717A0D0427
-075A1B3A3ABEAC356EC120CCBEE31B848CD86131CFA88CF1AF91BD4F90A14BE2
-2FCA3A0D44585E55AF59A9B3F04955D294CC69F2FBA32BBBD1FA95797443331B
-3D332AE547D0D69449F294317EEB6180A89C86182D37840D3345634AC85CFD40
-C1C23E24BF7708188165F237333AE6848A243C03353C04E10B84606E855B7B7E
-6AC65568F00CC22CC3330BBEE50D516DC86951305859BFA76744E8B89973B55C
-1F4E06F1BC4489A2B22B6A800C9C705915650E1225292E42DCD659CBCB38CD78
-B48C1202E69BF0BCCBD6B04954748941D3B83F378E7241BBBE2365EF849276E0
-E2D8602D627682C1162E58BA92371282FC789C86E135520DFA8EA0FAE66922B9
-E42E93677C22DECAA731288F55DAA00EE2F6E55026E350B62F087D4FA4284CB9
-131D4C71390462E2115DC92CF64DB7CCC36A4531B41FF04C6044FCA5A7454193
-9231591CAA36FDCBC8424CF6015CD2BB5D1F9EFC1B9E050735BF2CD08C35C1DD
-04B8E04BDB6694AEE7D63B322682DD9C7BB481D65326D1BD15DEA4635C14531C
-099806B029B802A21FD38638A84293DA46724EE2A862A7519DA1622342E16E1E
-63B6E133C5FF0C22D1E170399A40BF79D7A98A4A7F7454916CAFD0B323B2504F
-5AB50BD8B9A1E00CDE0D4DE18873932EC3FD6D73C9025E1F05AD236D183C46DC
-D9203F0F69638B266D7CE7E5FBE7AB32761B883E9A0ADE0C36090DD7C5C19A4C
-16559CCC3B3606016477EDDB7989C1F0806C014F8B1BF2DF7C5279D14FB71130
-44DD923093974C627FE44502632899AD15650A7D80E848F92986FA69D5B9D7C2
-7DBC711C55C53C9CB58637C3B824D5F539997315D03BB14D74A363FF6D4D2661
-AFB2F5BB102E5445DDFF984A52C83493CE3279D6755C4D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 80 /P put
-dup 83 /S put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C220CC1ECAAC6AD874D3
-948549355B2CEBA27FC7AFAC507098CAC9DD91E34690FC4A1B2D0D9842C74229
-2211E48F88FE8DDFA41CF4AFA7B074462E8516FDA8020B22ED5E653A4636F2E5
-DB8CF80BEBC9E285DD5068AC96A4A7A48A1576634E8127149625577C6E731566
-1972FA7FD06E79ECBD9B339A09CC5232ACFB27DD65A6F5CA9FD7CD00333AE027
-DC29F9D371C82793A3C7BB27A6A3371E4D7B95B38854E444CF016E3B3AD1A5C0
-6C864CCF1F697CEF5B54E6A965F1111AFADA9CC1BEDF5E8CA62898DDA388F959
-9739A265F76AF43FEF59F6DD3892A98A3550F9E3505B1A1ED8870238738137FB
-4D7D5C2D9B06772817336D4621C615EFA9EBBEE5DD74AD54CEDCEAB810A0603C
-C282C4654FF06CCC8A720D6F923E8733FE8DA44F206019055A7FF5C045E12037
-59F32DE4EB910BE1BFEC658EDEA9D466F6AC12674D7E0956A20E75F89C66E8B7
-6075CA284279062DF03AFC8DFBCAD67457C273743B0623C2621FA25F8CD5F713
-6AC582592A9CA18B571F8FF94F45AC9FCBE9BF92AF41AE23EB5B40EBD0EB3AF6
-44E213247694D0218E4190ABDEBA3F2C8B740FD53E52617A88FA89A6A9934306
-176D8B81BCC476296DDCA7F8D9CF6040F529B172A2C37904F5A605ACF2CD7DCC
-DF7290D015A18B3BAE766A72F50E1DF43F8CBAD80C65740F39CFC5C1FC86D561
-64A018166F8A32BB6B17B2F0EE29C1E874AEE817B113AF2990ADB8DC424EF2BD
-C21058D11EE18FA66E738A1F2F91E88BD31AB6214574DE097CE2E6677AEF7DE5
-923A4F8C9091DE0A3A20EC1DD11C904AD125BAF3EF223A3697DB947753E13235
-21B321A742F8DCE96F46CC348FD2001FD230E118A9288EC4A9BD3088CBF0CF4E
-6BC65E2D7DDE76E26C2707F17339B7582AAB4EF6B131C90EF0CF08561423E11E
-475863C494A115F7660AD4F84AC33ADA86604DBFF136F748E84ED17AA22993AD
-C7F82A1D8F640C6C19F853B01BEE3E87722D63BB153CCC0CBE025916C5ED7A0E
-387531E4537A89221D8BE1E9CC50EBC7FEA9DA4C4F719293D0B0EE5842AF0693
-9AB5259D313EA20A078B2D969704545FF9110B776AE0C9DC8CC76FEDDED1539D
-15CC027A3384468481E4E64B395A09D0B7AD2B6BD55FF3FFD7F48E936ABDB97F
-F952257D8384E42F0D7BB166F77C7F22F920C207F0658487F6BAE87CC1AA93C3
-CA8B7B624C5144EE74DB4ACD9999DC5654294B49C5F1B7C0620E113AC2B66863
-128EBAED2CB40A92EE481CBEFAC0892ABAA08F3A3AB76A59C4CB667D8F6A3A86
-EAA221093FD30D7EA76EC2FE2565B7EBB72D2A6384E36ACCA49857A7EA7543EC
-490827901ED698F2097A557BE7754F0D0D358E418A0BB1C9B66503A39174D614
-91C2E917F0580AD603FCC9F3F46000159C102D538A011658
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (grace.dvi)
-@start /Fa 38[33 60[266 1[66 101[26 11[0 27[0 4[0 7[{}7
-85.0146 /TeXMUSIX11-Regular rf /Fb 172[66 2[0 8[106 62[0
-0 7[{}5 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3529 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)-121
--27 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -121 -27 a -112 -54 4 86 v -135 -54 a Fa(\007)p
--102 -69 39 4 v -71 -71 4 79 v -94 -71 a(\007)-110 -123
-y(\232)-95 -126 y(\232)-110 -139 y(\232)-95 -142 y(\232)p
--61 -69 39 4 v -30 -87 4 72 v -53 -87 a(\007)-25 -103
-y
- slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- -25 -103 a -25 -103 a
- end
- -25 -103 a -23 -69 60 4 v -23
--102 V -13 29 4 133 v 13 w Fb(\007)252 -64 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (19.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 252 -64
-a 229 79 4 117 v 230 -37 a Fb(\007)p 282 49 4 70 v 283
--20 a Fa(\007)283 49 y(\331)293 51 y(\331)342 -4 y
- slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 342
--4 a 342 -4 a
- end
- 342 -4 a 322 59 4 63 v -19 w Fa(\007)p
-474 129 4 117 v 475 13 a Fb(\007)672 -60 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (18.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 672 -60 a
-663 -69 39 4 v 694 -87 4 70 v 695 -87 a Fa(\014)-24 b(\007)709
--103 y
- slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 709 -103 a 709 -103 a
- end
- 709 -103 a 711 -69 60 4
-v 711 -102 V 721 29 4 133 v 13 w Fb(\007)p 965 98 4 135
-v 1029 46 4 70 v 1030 46 a Fa(\()g(\007)p 1093 63 4 117
-v 1055 63 a Fb(\007)1225 195 y Fa(4)p 1244 131 39 4 v
-1245 164 V 1246 197 V 1277 195 4 70 v 27 w(\()g(\007)p
-1294 131 60 4 v 1294 164 V 1342 179 4 150 v 1304 179
-a Fb(\007)p 1536 131 60 4 v 1584 129 4 117 v 1546 129
-a(\007)1630 139 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1630 139 a 1638 112 4 151 v 1615 112
-a Fa(\007)p 1678 96 4 145 v 1655 96 a(\007)p 1718 79
-4 138 v 1695 79 a(\007)p 1758 63 4 131 v 1735 63 a(\007)p
-1798 46 4 125 v 1775 46 a(\007)p 1837 29 4 118 v 1814
-29 a(\007)p 1877 13 4 111 v 1854 13 a(\007)p 1917 -4
-4 105 v 1894 -4 a(\007)p 1957 -20 4 98 v 1934 -20 a(\007)p
-1997 -37 4 91 v 1974 -37 a(\007)p 2037 -54 4 85 v 2014
--54 a(\007)p 2047 -69 39 4 v 2078 -71 4 78 v 2055 -71
-a(\007)1638 -6 y(\234)1852 -61 y(\234)1638 -22 y(\234)1852
--77 y(\234)1638 -38 y(\234)1852 -92 y(\234)p 2088 -69
-39 4 v 2119 -87 4 72 v 2096 -87 a(\007)2124 -103 y
- slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2124
--103 a 2124 -103 a
- end
- 2124 -103 a 2126 -69 60 4 v 2126 -102
-V 2136 29 4 133 v 13 w Fb(\007)p 2378 98 4 135 v 2491
--14 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 2491 -14 a 2468 129 4 117 v 2469 13 a Fb(\010)p
-2695 99 4 70 v 2696 29 a Fa(\007)p 2735 99 4 53 v 2736
-46 a(\007)p 2696 104 84 11 v 2795 29 a
- slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2795 29 a 2795
-29 a
- end
- 2795 29 a 2775 99 4 70 v -19 w Fa(\007)2815 -20
-y Fb(P)p 2815 129 4 117 v 2816 13 a(\010)p 3161 98 4
-135 v 3165 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3165 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/grace.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: grace.dvi
+%%CreationDate: Sun Sep 28 15:50:01 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 742 453 792
+%%DocumentFonts: TeXMUSIX16-Regular TeXMUSIX11-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE grace.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1550
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX11-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
+%%CreationDate: 01-07-25 at 04.06
+%%VMusage: 1024 36750
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 700 300 0
+%%EndComments
+FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX11-Regular) readonly def
+/FamilyName (TeXMUSIX11) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -200 def
+/UnderlineThickness 100 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 700 def
+/descent 300 def
+end readonly def
+/FontName /TeXMUSIX11-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 12 /ogonek put
+dup 40 /parenleft put
+dup 52 /four put
+dup 154 /Zcaron put
+dup 156 /IJ put
+dup 217 /Ugrave put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -3182 6250 3186}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
+46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
+4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
+BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
+66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
+021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
+15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
+4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
+3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
+FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
+99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
+BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
+1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
+9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
+698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
+33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
+42377558646B7A8EE402D8B9C63B03F236BEB5FB181701A6993C4C2BD002D0E6
+B37E7BAC1A3C29BEC60629602AE201EAE23C4DEC09B7767585443436C3FB1E81
+D846393DA3F4581BB3CEEC31ACFD76C69688F132A1B6BBC5D0ECD97DF776BFFC
+F5654F7147B8B84C545D3E5D0EAD5A168C76B2B96C6CC82A1C88BCAB20F1992F
+25FA93E98B38DDC599F5B09D4265C3430DB857CCBD6A49E13FACB92F33037FBB
+ACA91AA44045BA5A5A0B13A8CBC8693DC3F004BA247EB1C09D4818DA706DC06F
+3BABB74CD5149D8B6F296FBB7614A807AED6CAA479F4D590F8EB2E717A0D0427
+075A1B3A3ABEAC356EC120CCBEE31B848CD86131CFA88CF1AF91BD4F90A14BE2
+2FCA3A0D44585E55AF59A9B3F04955D294CC69F2FBA32BBBD1FA95797443331B
+3D332AE547D0D69449F294317EEB6180A89C86182D37840D3345634AC85CFD40
+C1C23E24BF7708188165F237333AE6848A243C03353C04E10B84606E855B7B7E
+6AC65568F00CC22CC3330BBEE50D516DC86951305859BFA76744E8B89973B55C
+1F4E06F1BC4489A2B22B6A800C9C705915650E1225292E42DCD659CBCB38CD78
+B48C1202E69BF0BCCBD6B04954748941D3B83F378E7241BBBE2365EF849276E0
+E2D8602D627682C1162E58BA92371282FC789C86E135520DFA8EA0FAE66922B9
+E42E93677C22DECAA731288F55DAA00EE2F6E55026E350B62F087D4FA4284CB9
+131D4C71390462E2115DC92CF64DB7CCC36A4531B41FF04C6044FCA5A7454193
+9231591CAA36FDCBC8424CF6015CD2BB5D1F9EFC1B9E050735BF2CD08C35C1DD
+04B8E04BDB6694AEE7D63B322682DD9C7BB481D65326D1BD15DEA4635C14531C
+099806B029B802A21FD38638A84293DA46724EE2A862A7519DA1622342E16E1E
+63B6E133C5FF0C22D1E170399A40BF79D7A98A4A7F7454916CAFD0B323B2504F
+5AB50BD8B9A1E00CDE0D4DE18873932EC3FD6D73C9025E1F05AD236D183C46DC
+D9203F0F69638B266D7CE7E5FBE7AB32761B883E9A0ADE0C36090DD7C5C19A4C
+16559CCC3B3606016477EDDB7989C1F0806C014F8B1BF2DF7C5279D14FB71130
+44DD923093974C627FE44502632899AD15650A7D80E848F92986FA69D5B9D7C2
+7DBC711C55C53C9CB58637C3B824D5F539997315D03BB14D74A363FF6D4D2661
+AFB2F5BB102E5445DDFF984A52C83493CE3279D6755C4D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 80 /P put
+dup 83 /S put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C220CC1ECAAC6AD874D3
+948549355B2CEBA27FC7AFAC507098CAC9DD91E34690FC4A1B2D0D9842C74229
+2211E48F88FE8DDFA41CF4AFA7B074462E8516FDA8020B22ED5E653A4636F2E5
+DB8CF80BEBC9E285DD5068AC96A4A7A48A1576634E8127149625577C6E731566
+1972FA7FD06E79ECBD9B339A09CC5232ACFB27DD65A6F5CA9FD7CD00333AE027
+DC29F9D371C82793A3C7BB27A6A3371E4D7B95B38854E444CF016E3B3AD1A5C0
+6C864CCF1F697CEF5B54E6A965F1111AFADA9CC1BEDF5E8CA62898DDA388F959
+9739A265F76AF43FEF59F6DD3892A98A3550F9E3505B1A1ED8870238738137FB
+4D7D5C2D9B06772817336D4621C615EFA9EBBEE5DD74AD54CEDCEAB810A0603C
+C282C4654FF06CCC8A720D6F923E8733FE8DA44F206019055A7FF5C045E12037
+59F32DE4EB910BE1BFEC658EDEA9D466F6AC12674D7E0956A20E75F89C66E8B7
+6075CA284279062DF03AFC8DFBCAD67457C273743B0623C2621FA25F8CD5F713
+6AC582592A9CA18B571F8FF94F45AC9FCBE9BF92AF41AE23EB5B40EBD0EB3AF6
+44E213247694D0218E4190ABDEBA3F2C8B740FD53E52617A88FA89A6A9934306
+176D8B81BCC476296DDCA7F8D9CF6040F529B172A2C37904F5A605ACF2CD7DCC
+DF7290D015A18B3BAE766A72F50E1DF43F8CBAD80C65740F39CFC5C1FC86D561
+64A018166F8A32BB6B17B2F0EE29C1E874AEE817B113AF2990ADB8DC424EF2BD
+C21058D11EE18FA66E738A1F2F91E88BD31AB6214574DE097CE2E6677AEF7DE5
+923A4F8C9091DE0A3A20EC1DD11C904AD125BAF3EF223A3697DB947753E13235
+21B321A742F8DCE96F46CC348FD2001FD230E118A9288EC4A9BD3088CBF0CF4E
+6BC65E2D7DDE76E26C2707F17339B7582AAB4EF6B131C90EF0CF08561423E11E
+475863C494A115F7660AD4F84AC33ADA86604DBFF136F748E84ED17AA22993AD
+C7F82A1D8F640C6C19F853B01BEE3E87722D63BB153CCC0CBE025916C5ED7A0E
+387531E4537A89221D8BE1E9CC50EBC7FEA9DA4C4F719293D0B0EE5842AF0693
+9AB5259D313EA20A078B2D969704545FF9110B776AE0C9DC8CC76FEDDED1539D
+15CC027A3384468481E4E64B395A09D0B7AD2B6BD55FF3FFD7F48E936ABDB97F
+F952257D8384E42F0D7BB166F77C7F22F920C207F0658487F6BAE87CC1AA93C3
+CA8B7B624C5144EE74DB4ACD9999DC5654294B49C5F1B7C0620E113AC2B66863
+128EBAED2CB40A92EE481CBEFAC0892ABAA08F3A3AB76A59C4CB667D8F6A3A86
+EAA221093FD30D7EA76EC2FE2565B7EBB72D2A6384E36ACCA49857A7EA7543EC
+490827901ED698F2097A557BE7754F0D0D358E418A0BB1C9B66503A39174D614
+91C2E917F0580AD603FCC9F3F46000159C102D538A011658
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (grace.dvi)
+@start /Fa 38[33 60[266 1[66 101[26 11[0 27[0 4[0 7[{}7
+85.0146 /TeXMUSIX11-Regular rf /Fb 172[66 2[0 8[106 62[0
+0 7[{}5 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3529 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)-121
+-27 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -121 -27 a -112 -54 4 86 v -135 -54 a Fa(\007)p
+-102 -69 39 4 v -71 -71 4 79 v -94 -71 a(\007)-110 -123
+y(\232)-95 -126 y(\232)-110 -139 y(\232)-95 -142 y(\232)p
+-61 -69 39 4 v -30 -87 4 72 v -53 -87 a(\007)-25 -103
+y
+ slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ -25 -103 a -25 -103 a
+ end
+ -25 -103 a -23 -69 60 4 v -23
+-102 V -13 29 4 133 v 13 w Fb(\007)252 -64 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (19.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 252 -64
+a 229 79 4 117 v 230 -37 a Fb(\007)p 282 49 4 70 v 283
+-20 a Fa(\007)283 49 y(\331)293 51 y(\331)342 -4 y
+ slur@Dict begin (2.0pt) GD S0hgt (12.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 342
+-4 a 342 -4 a
+ end
+ 342 -4 a 322 59 4 63 v -19 w Fa(\007)p
+474 129 4 117 v 475 13 a Fb(\007)672 -60 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (18.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 672 -60 a
+663 -69 39 4 v 694 -87 4 70 v 695 -87 a Fa(\014)-24 b(\007)709
+-103 y
+ slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 709 -103 a 709 -103 a
+ end
+ 709 -103 a 711 -69 60 4
+v 711 -102 V 721 29 4 133 v 13 w Fb(\007)p 965 98 4 135
+v 1029 46 4 70 v 1030 46 a Fa(\()g(\007)p 1093 63 4 117
+v 1055 63 a Fb(\007)1225 195 y Fa(4)p 1244 131 39 4 v
+1245 164 V 1246 197 V 1277 195 4 70 v 27 w(\()g(\007)p
+1294 131 60 4 v 1294 164 V 1342 179 4 150 v 1304 179
+a Fb(\007)p 1536 131 60 4 v 1584 129 4 117 v 1546 129
+a(\007)1630 139 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1630 139 a 1638 112 4 151 v 1615 112
+a Fa(\007)p 1678 96 4 145 v 1655 96 a(\007)p 1718 79
+4 138 v 1695 79 a(\007)p 1758 63 4 131 v 1735 63 a(\007)p
+1798 46 4 125 v 1775 46 a(\007)p 1837 29 4 118 v 1814
+29 a(\007)p 1877 13 4 111 v 1854 13 a(\007)p 1917 -4
+4 105 v 1894 -4 a(\007)p 1957 -20 4 98 v 1934 -20 a(\007)p
+1997 -37 4 91 v 1974 -37 a(\007)p 2037 -54 4 85 v 2014
+-54 a(\007)p 2047 -69 39 4 v 2078 -71 4 78 v 2055 -71
+a(\007)1638 -6 y(\234)1852 -61 y(\234)1638 -22 y(\234)1852
+-77 y(\234)1638 -38 y(\234)1852 -92 y(\234)p 2088 -69
+39 4 v 2119 -87 4 72 v 2096 -87 a(\007)2124 -103 y
+ slur@Dict begin (2.0pt) GD S0hgt (24.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2124
+-103 a 2124 -103 a
+ end
+ 2124 -103 a 2126 -69 60 4 v 2126 -102
+V 2136 29 4 133 v 13 w Fb(\007)p 2378 98 4 135 v 2491
+-14 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 2491 -14 a 2468 129 4 117 v 2469 13 a Fb(\010)p
+2695 99 4 70 v 2696 29 a Fa(\007)p 2735 99 4 53 v 2736
+46 a(\007)p 2696 104 84 11 v 2795 29 a
+ slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2795 29 a 2795
+29 a
+ end
+ 2795 29 a 2775 99 4 70 v -19 w Fa(\007)2815 -20
+y Fb(P)p 2815 129 4 117 v 2816 13 a(\010)p 3161 98 4
+135 v 3165 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3165 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/haydn.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/haydn.eps
index d498e501f10..5f2d9ee9975 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/haydn.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/haydn.eps
@@ -1,1378 +1,1378 @@
-%% LaTeX2e file `eps/haydn.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: haydn.dvi
-%%CreationDate: Wed Jan 21 13:57:12 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 16 570 510 792
-%%DocumentFonts: CMR10 TeXMUSIX16-Regular CMBX10 CMBXTI10 CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE haydn.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1357
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 65 /A put
-dup 101 /e put
-dup 103 /g put
-dup 108 /l put
-dup 111 /o put
-dup 114 /r put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2D4609D7
-D2E805DECFF5AF988F0808796D01500B18F0EFE1919743C126088426A5A27D4D
-03F21A15C23B9BF08DFD73708F2C1AAC530B2D00674DF2B5274D98C541905206
-6DD191F7458F1166231360871EA0C6AAE036BD3551B866DB578F29DEAFD289B3
-FA6E9CC4726B854E887BFFE87DA8AE960C817A1784031DA55BF78A79976A4FBB
-764DB071CF34E990D3531367408D37218B289FFDB701E870A32EC7ECC8C3D6FD
-90074953B49CABE8468930B55E5B5FE0FB302C8DBBC120A76AF9C2846C85E01F
-ECF513FA01B99C4F2ED6B902C842EF29F25789D8066B284AA832B8329224A14D
-92F49F2ED713D938A2ED14C1AEC4D73B6D6C0313293D18547DB010B2CC8CDF98
-8ED055570D39B01AA62FD6DFC6DF11BEABAA95FC7BAF76DD31E279F65F015E4F
-5638292A61635A6B3F2F9166E68585E41371A4F76F3011449188B5E6B4160518
-BE274DA3E8AADCBEC12CBC0C960FCF7ED30D17A96240AE3635C76EE25ABDEE3A
-5D5ED522BEB18E11DC1E1DB5F202673A8F4A2C80F89C4581875CA0470902638B
-F0D02673B4666C34103904901373FAF2C95210EB90B768B089DCB6771976EE31
-4EC033BEA244722A0755750F9FF437AE648CE60102390E459E7348AA1829A0E7
-B7D53464C332F216593999C6448419A67EFCBE6E06B5D20944630767922EE06C
-3BA3B34AA7EACF23B5EC0F433E4340990B55CF8379D7D1E93FE8871FDCCDAA74
-BB24DF5EA540072C54B85F40B1B55A5362DD9717A2E87D54489442CF48478FC9
-82E6C7130D88DD7E5BA2BDF8A477360A35294B5044513000D454CF53913DA0A7
-8D59FD768A5D4D80F6F376D95437A6492E75BD897C0C38340C094EF7F25C154C
-3A3C13CEACE051F9551CF66A2A583CD784880B44E19F19A81F62063F53EBC14F
-4494B181A6DA89F74089083C0405CF821C65008435E8EBC9516DED8A0990D5FB
-969AB5BC7A4B47FB9B3C2EB25CC21232337AF2FB3E0E7455E5A7D763C9DB94BB
-A941F65124C4ACB665968F4894B125777568FB381CDF09C02BD5E2612546C6BB
-2B3A12B74ECF99C16801053F50ACF6F385E77AB8DCFA921C5A4C628F57052811
-4D14E4DDDF859421174D7AAC6ACF8D4852A955E9872D4012D488EA78928C1FF4
-E1DAA8DC12D9E613E4EE895282577C68C9FBF1C96710F0B43254D366AF82B2A2
-CBF03B1B5B61BECCD3B8A1E230304E41D1A1A500555F1A752A492DD53B966536
-2BC19BB3D3A19162992228CC9A7C73A4BEEFF70CA925D4E36FE5F2C0CBF459E0
-D13B321F7FAD9635B14DD2B312FD6EAD2FC5411927F4B8AD43ECEE73071DCD6F
-31438A3BC07078F04A6CF179439B28DFFBFCD3DFAAC670690E29855C30D82177
-F2F087504AE7E2CF63E5921021F4BFFD592C58DB81818481815F8ECBB996B99F
-366DAB49482C09BC82042331872B5B71897A5AA3273C213532427799C980C9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 102 /f put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA7C97C35EAFA47778CE03E863303582D8A9901881E9A5E2B11B1B3C37D5
-69048F1FF37F535313F28EAD00061C788547D3D2EB16DFAFBC7024854A277D0D
-F4AAC20E3976FF31771141FB9F3D09836B0CFCFAF9E7D244071B530339516E5F
-AFED73B2D0E42C724CED873AA66142B95C8F46C83ACB6F5198450DAD0B85AE88
-2499B67C297F1AACC09B75E17345047F5E29A702C2DB50EC133977251F24C074
-69B4D9E2D854537671BBBDDC731BA5E0F963E75BCCC20162661199E89CCD5C05
-BE422124B8CE4668445BD623969823F3D6E94F5669153944489270BA786094FE
-655994C9314928787530F7D1AB9C171917984AF4E70823C6F9CB950F02184BD2
-B07E752DC88685DBA68B8989BBD83AECDE0FBB628235A71B1F39BC0406AA3B1A
-196770D283690A5579F36F7D0D479FA61601520C602F9296518227564200B4A4
-AA10760391183B27B7701DC3ED5C68C8F575A253BD54275131A21C002E
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX10
-%!PS-AdobeFont-1.1: CMBX10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:06
-% 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 (CMBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX10 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 44 /comma put
-dup 46 /period put
-dup 50 /two put
-dup 54 /six put
-dup 55 /seven put
-dup 70 /F put
-dup 72 /H put
-dup 74 /J put
-dup 78 /N put
-dup 81 /Q put
-dup 83 /S put
-dup 97 /a put
-dup 100 /d put
-dup 101 /e put
-dup 103 /g put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 116 /t put
-dup 117 /u put
-dup 121 /y put
-readonly def
-/FontBBox{-301 -250 1164 946}readonly def
-/UniqueID 5000768 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
-FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
-DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
-7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
-9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
-CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
-6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
-E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
-8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
-3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
-EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
-0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
-4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
-1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
-757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
-0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
-6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
-E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636
-6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B
-DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663
-12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C
-46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08
-F6DD0BC6A79A2DB1FF539454E8F5D1A42D40CCFBC093AFD3E57973A009095CEA
-B91FAFD236C47F453B38DB0067907A28EB5E9ADE87A4E5EF638B216C20701A30
-5521F6D4C1D3DABAFEAA7EDE9472813E7E707D7F70D685DEE4EE5AAF118E236A
-F7235D3B7C3CAFA5F99ABE792B377B97E059D705A0D83B40B1E038974CA38F89
-4F03A379682124CD29D1841D149F5F844D4988A574FB12CDDD4F1347213C9327
-55A8A71B51C2CA3E8D601A4121FAB4199883C9873391E7910E0CF540BB459E4C
-13C070931C27705BADFB232A4D4E104FD0B58642160A0A7BC252745EEB8E97ED
-D6AB9E3DFE44C13343BDAD307FC9B669A09B2C0E571C0B8FD5B11D255FB07C91
-5411AFA60737297844AA60618E11E3C5385B983B17B3E7F427B092D0FE0DBBD3
-F8F279BA556098C0CE2464D64363251395B2F35826AAAA4737FDC0FC2D92581F
-94F9BB361A619929DDADA47CCE9C33A2C88BCCC6A2E21EBDC891146CCACF9953
-8A308918293F09EA311F492952605836FFD27D21F892B9AE92E8480F5B8A2AB1
-B8786F0048C10005002C2B130128B91296C31BB0973003F648788CEED969D20F
-E0745B5A68AA0915E7D640105F39C5653C300F52896E5079721BAF2348D62292
-CD5E21CCB306A6D5AAE1CCA01990D42B522E889905215BB6920D50BE671F1D8E
-01E4DA81747FD266CDF20C4929992114915DDF1AEB1154E4C21FCB1072F5EFB0
-BF9E20989C124A54C79C77032B8514408528BE62786B8C6BD6AADD455B574805
-5DC43666FFA6D2F55D17FCB0E24F835FEBC6EB1060FE31A91DF62B41429D70DA
-6734DD893EEB5A520CD8B2844CC98D4C0C6F8A564E55E72CC322936510F6EBBA
-11FE1B3B8700AE71A83A46104B2C9EAF157CA75FB9E013492BD37C97AAAE4FFE
-52F99077D9F44558D3CC6C0FA3121EF68AFB0F4303307C4EEACA18558301D224
-AA98F2DAE75D4EFD20148ACEA2471AB4CA590DE4D2F2BEBE39239ADB477FBD2B
-0D86B7025004216B22E711D3832EF90A3985D2AF2088A42327E200D2934761F2
-25E01E7F7C607A0A86EF77CEFF032E93D43CC2C7DA8BB3CAB75BEF813BF14C66
-4C8233956D78DAAEDA89B8367E90070B377962C5A5E3724A7C10930067CF3F09
-B511CFA5053E6B18524AC77B6D23E69952F077C043843A26534F6507750E20B2
-FCE23B27E5960478E1E8092E928A66133D9E317A9FE11DC58DED6D4374158011
-6E2502EDDD7C31280F2238C71328BE06B5AABCC4C4144434BD16E87E39177A7F
-F7F955EE96F3165C1BF78F2DCA9E0D29BCA2C70A3AB4C5DFED7DE8A9F9436466
-E22B1E452064219431544157277F225E57B89868A652C29CD1971E53292FCD08
-C32388F9ED4759637F48E98F529C79A1379CDF46A682B6360B37560F08FCAD48
-C4BDE7C00BE5A57081865D8B51C87CDBF6C7AD065B3B871203A6CFA8B41445BC
-7651A5D8820FD960B61525101268DAD3C1B81974D50482EDBB75A680DB956534
-5697EFE6D4AD7EF090FD3966A6234475420179729C439F156330EC19D838B418
-A9EE5451C09AC5BA8AD96ED7D71294BEC637481FBB8BE4EB913B04F9B51956CE
-3DDCC1BA2D61FD1DBF4361C1165B75CA6FD2D33908E15B342B86D4364CDE0046
-88DDC04A7C20A1A3942B61A80D9D06A2480C9B710E1C4712293785AC93A46494
-1D220946E76C5CCECB1014847A8463412DB19B39279B00C934F03061DC96F20A
-AE9EA413C869717013F7164C3454E6DC3399EB9CCC50C69E2A2B8DB9A9044687
-A54F2414DD1AE335F85770D1BE543148C43A3DC79E7E123D1B27138E29CBBCFF
-640F760C96658C8741322B906000F46E8F8981AF12135448CB1F65C0B0EA983E
-1E328FC8B39E7A30E7150B5BBDB9D107AB51ED3FE361E39285C054E71A32286D
-E0FA24F89D4B97C30C3BDC1B779086C6922C6C609771B9490E5D52391B369E6A
-CB3B7B2FE53F823AB853A59C47DD24CAA24B5014AD7ED8167EA14E7959EABA09
-70B3E2472048817BEC9B5EBEE3B6CDD6F02657670899A6D243E4DABA614FD03A
-BA35BA790F948BE25016BC1E2B5EED7D780C74F3A6E6F00B0BD77AAEFA9488C0
-E092E1E29414544A4907AC40D858AC635509AEA53775D2694F56347EF016C120
-AC2C59A178C125D041C926866A009446DFDE3808CDEDFBB0C3F36557D6E3752E
-A0043EAEFBEF3D93F9B2E586F122B019C1369915A24CF333536D95155295D725
-47D9ED78B30DFD68E8271A3141FFD22BE0D71D90FC76713CE207B09FD4F79238
-7CD8D31F6B8EAE81A4358354E59ABBCB844EBF0F59CD0B7270799B2FF8DAC47F
-029A2CC0B5F535A9A92FF6DAD9F39A1CF7259EDA351EF93D854D4D3D4C9A6D52
-7F8FA4612EF62DD14C4B24677FCC3D675B8460E5956C536B300F7CBC734FE9E3
-F2F14E274561D53162EF0166BC676731C23225F63D35BCE3847E287671932F5B
-1CB1587214DB642EDB8EB1DD2B543B0587B59AC0209EAA2C61DF9E438BAAF2D1
-CC3E31E2BC47C5C0CBCC72CFCB55038F932D41A5EE46B3F29488167A9FEF9375
-56F2EEDB1C27C99E3C878F702C5604FD2062D694F8255A5F26305F313EC1EF75
-7FBC1DBB6AA7A84175F89E29496DB4394CFC88F061D2A0B0810708D0CA61821A
-42C8127E70D162CB5629DCDB2AE3911D4C5E6AFB2D12A54B0B284279306E0035
-240636C7EA550FE6A127CA35ED73703893F110572CAB392053F54AF754C0B402
-5406F79ADCBD46A45C6840B7723761B2AE94607558129D2985C3049A402F7ABB
-CDD4FA02B93E5C7F83595C2ABFF48D50CA7E0AEE9C02AAD1E4E32D952E2E8B54
-66F6B3C6131BAC47247C2C5D6858710DC47C86382B5AA641907E9CAD801E9155
-8C6CB7954D1BABA38AB2F64786D7AD676BA1596B15FC0559C8F7BD29E5C5C57D
-72073AA031100D5EB02623077B3B0EF043DB8D06FCB8B255E2237D82EC9EB994
-7EEB532D1D2A6D9093D32213EF286175262736601522895F83F6616D0948A33C
-E48325DC71702770034ADE54876466988F6A86B23E50BFEC110796942748F22F
-553A27420CFBBFD4306314C5EC9AEEA764B8EDA004B47E8C05FFF52E459DC93C
-DC24F86021E5829B1F673D7A9D356A6A08B8DFCCAC96BFB1832057F1B1EFE308
-A3E2B337276A101899EBB9DBF44F8BB6CDFC94F1ED835080720AC39B4D4F5B7F
-BCAECF8EF0758970C93AC90961318440F3A4842D9595CB9B6902CA9D68BE175E
-635E678D685013774CCDBB3C46C413E1A4724F3F0C107C5F78C324BB398C5AF9
-2E75CA94168A1FAECDF62A27431C192A1CF88DFA8995BADD6701CB28649E8F0A
-2E91C2E32872DE277C9AF9FDD4116606755A6561F566C63FE51DDE8EC2CBE0DF
-3D96D2AFA88D694A01B5748679CBC8DF25C9CA2BA84639171541FE4F63CE8074
-0ADEC1D8BF57066BA1CAB802900657BCDF3D3D5361CD6A7C6D754E6008D33FD2
-D76F46638D9FF2F878213E91861283172A1F51C3B7F614592E0309C64986CB3C
-CCBD53503AF68A71AE2647B6AC72CF4914C816B159913088F3E70DB1DD68CE6D
-860CB308A7B8CB5C982F8385BAB127CD93B1141D72B16FFBA2599988B7BAE451
-B8C09912F2FF35B18A1FC8D747C17CCAF4C93D6EB275BF7FA547E5E642BD71F7
-E19717C083068C594B61F5825AE71400CCA4FA2D108E1B073DD2F02A322045ED
-B45D38600D8D41D84B651C806ABB5A2377D74524348CE0D6D89AD1A0CC3E8745
-FE723ADF6F74F6ADBCD2BF80FDF662FD7DA55F86BDDC798D610B63EB2BB2BE92
-B3CD7062C668AA31E34B0908BAAFE1F84AACFA7EF2DC638067266402C113F8AC
-BB76189808824F1DEB463E003D85B2DCEAC744E72AA63367774ABBBF58D2863A
-94C9BA8E2E85D961A9635FAB23056491C54ECCC45A93BAC93704D2EC5723687D
-06949DA63050E6BC5581743640665B497AAAF808E2B90832B16AA17C231B0695
-1D30EA1B3DB4D5ABD62A11BD60DB1DDB1F13B2F2DF4F09A41A28A937B9572364
-62F3FD7A971C62A1CB9B0C592F71162F854F73DB0663C26A3FE720BBD5440F78
-67CE0C32C8762DAF38138102F290F0A695B114F6808C77DDEBAD26DE2F8207BF
-FE93EB2BA56E803EF43C0F9949CC1C0F14AD49C2F2E2044EBCA57003D3913806
-2EDBF64B751D827BC3C380217F68C7CFEAA99E339D1FC5418B7E33A131CCF42A
-F5825CC89FCDA966ADB665163DE9ABF6641779948875B060BE0D5A7962044ED4
-C81007BE8E3EFA0A742B94D521F9BEE683EE13040FDDAB9A09E53FAA09B42753
-1BC8DCCFCEEF62B1FDDF753117E26D4BEB58D8F7D93C1D8F9AF78ACADAC51B49
-269F0C4188497B813427480B76B4284A73407B76AFB44F9B12A2096CBA2D1D6D
-ED833B2C249F750EB0DC72ABA6D697199F45BF7F6B727A742753343131B440D7
-33E6191949995DE571680B62E19948033F99B16CA92E0E4AC35AB286CF5B1254
-358A48B60D6E7701A33AE33543E6B3E4224AD2F287F1F983788A5AB0D7C12E7D
-581689F62A33DA30205E45D3CC258834109E9A0D32B6F29A106EE5A5FC9D5611
-62EA7DDFC6D7D08BBB2F5AE4A7AEB2CA31A9FA57EBC55F1A24E7757CA057D439
-66E0C254AF416AA170A979C1A8405AE55538317D849BFE8D8D10B2BE77307835
-5328FE380797D5C571C054E03C8B7EC946D607EC594645A51F7B08918BECF2AC
-0768C3DBF91F908AA9C2DA28B470FE6144FA625735077488B5B2BA303119432C
-A6CC30D83FD5DB8B8598935E1F2F0F7426F4A3B375C690195CB6A0E583AF5A48
-16354278BCBFD2E6AE194AA11B2559E8798EBE0B5A1351E9422147C0B3A02361
-11D26F65DE59269B624C32272816E9F4CF2485BD9A9BC068770C67A179078F14
-E3E7DC56B2D04150B71298E6E9FB6009A5CCA057977366F5CBC6CCEA84E0CF59
-C3400CB3CF2AE4B69797C0450FA9B6A4A8538B97006DA5A7D95397D35CA29922
-BDEDF6F280796C95695591A553152AFB0301F4E77C876CBFA41A7DC53CCB1C40
-91223A83553BC527B348ADC7398A6EF51AF51990B2ABDD5FE6693DCBADF3B3AA
-131ECFD8EC146D706E99FC338346CD4CC182D6C61F58B0EAAC76AAA2B05D96EB
-E70153AEC20B59A5A832B23AF59116286EF83263196575D43BAE8BF321DD1C54
-24003C3DBF42550E9827470F6665EB0BE888F58126C57BDE391B7C8637B6E005
-9D265398ACC7EAB8A2889A896D976655B7CEEA3320B66FD68DFF6332FAC03FB2
-C65DAA83ECBF3F86E8BCB967A36DC9AE7D2136546AE8BA023EAE4B7C3B0A450C
-8393931531F82A8425D521ADD58B89B71579DC3C937754B3E6879EA0DF3DB608
-F9F83A5DD0AACC1C2CB0BA606C2B3BEA4F9264ACE3EDB1F03B70941577EF356D
-28CA4A743F8E0E06F1AE3A6F7BDE25CF5F6B3AA3201CF0353D8A59B04C56FC94
-AE43CAE8CF955D45D91286C0604E855192CFD8D1CCD0B76A291C53A8FCBF006C
-B38758767FE725A95B2FDEFDD5BFA93141FE11CF980B7EC68576F28D2F3AC254
-CD28BE834FFACDC13B523C157D919D2574BAC76F6AA014D1B8A684707F4B063C
-00363FD7DA61E8172D5A29CFDBE03860A1A4DF51BF7EB749FBE4AED5D64858F8
-A520290DA1A1317D25FE52D6D17C0A51CB775497A65B93E06F12D5D5C63A592B
-42EA0C2058FF50274EE8C30D53986B4ADFF1B3B13D8F18C50623291C3B7CA65E
-639E1573C064DF634B5B29086865E4CDC0377B0219E944AAE67BE53DFDA8DE67
-13F8D70A2D0D770AEA0ADAF2878B0B1D92704EA45A32CB9CE98D707CDA4DDF24
-8C6F493EBEBAE79ED507ECC8E577722ABAD87809EA0DB79BA269C2EEBD652F8F
-6BE422AED7223B05D9E54580FBDC02C430077EB555554B96D4D39F8E941BE874
-D532FF595ECD39B5B189D0EC7AD81B3921B9D7A24B6C5B1D4AF54E135BE3AF1E
-4EA3141E61E29AADBB4F15748D362E53AD55075E975DBA7F02A487A62834F6B9
-5D935FA780739008336843A2041BC26B001AF86E28BCC6DFDE96275959CB4E2B
-D6D62651E0B37DF33A82F25EA09FF62B26641C6F76BAAC1D58EF36E6E1387C4F
-3058A161DF7F935EE17D40A9B21F8D7C67FBEDF18B26CC09BC697B09CF333DD5
-CEF0DD4B7A59FDCDFE27234ECF9B2F4414CD821D8D87C8BE47F274E9740153C9
-9277117E712D6A01C6708B1618AD67F6802D04CE706249B7542B6B45AE8691BE
-F61B954F19CE81133D808E1CCA32C78B33E1D502B722EAF3C7EF2543A1917A01
-AC012370937A0D402443E6383EBA14C680A973772E9EDE9E55E9D7578E6979D8
-84F01EAABD421DD4F8DBCC2CBA7645CA7DC5A961A850CCE0AB25D4
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 24 /perthousand put
-dup 25 /dotlessi put
-dup 40 /parenleft put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 75 /K put
-dup 83 /S put
-dup 132 /Dcaron put
-dup 148 /Tcaron put
-dup 149 /Tcedilla put
-dup 200 /Egrave put
-dup 201 /Eacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF859449F6003874D095258B6F64ADC77D4830EB4B8B608DB3CB840D82
-75E4C819DAFEBB1BCE8B1518EEA99F8A79809C3BC0C39A9F36ED4968675C4278
-B5448E87397B9994127B6C41A6450F86A24ED491563370B43776BF34BBC2FCDD
-C44967CFB28B04E7A4A6968FC888607BA04952BA6FF345A44EABA4CA626F5CBD
-A262ED5029009388AE8E603F205FA45B5CE94452A1B9507B7A2BA757538FEB7B
-37355EAF0FD3D3D46D6A055EBDB681C5571E2D28FB7938AAA22E7D94B84F08A2
-5F8471744B9F8263D3FD1F5C324810FECBC42C915B3ECA50C477312DA5561824
-6A23E12C358DD5AF4516D82C33A8A4B4472AF361C3B2A0604745148F1ECA353A
-D07CBADC2174AC86F6EA6FBE992D1462259D82141FD6497E284F564B4A3E4B25
-943E7D0A2217C0E5F44226F2E4D147A4178A3D00D2CD1C9DB76123040AAC7EDC
-2C48CAB6CA3B68E294F0B8ECB6AC8BBC4D2064CADA1B4202F620DD6B9C2FE100
-5F9BCAEE97B9F1D60A5FDE4707B67CF1B217163E58EC42606A82964DE2DAA8BE
-C26EE31810C4F1B65AC1A36A0D5583DC863BB10FA55491ABC02C90932A44F3F2
-EAFC5CB803368B383636170091240DB91A829FE638BBFF08B396377050E84B9D
-B26A1CFDF9D6B4E4899EC298B9DA414013A5E73E1EF5DFFFA9EA8D08258F2EC5
-B389955A931A370B508DF28E9C70AD87654C8B87584194DE4FAFAD6C7FD12AD9
-B78A05993B1EEE75CF46AC8744BB5DAC0457BAEC0124EBCB5EA6516F4AE5B24B
-B313D2159279D38357DEEF4094970FF9000868C49A95B0A152EF68FF95AD1FF6
-D86CACBC719B35D08E6D3C3DF19EE01D33AB26FC8A672160D222B7DD01BEE56E
-FA10197006B49B85117A957B836D07BB27C168AD25E22591BE7E92FC1E037F36
-276CCBBD78E329D449F55D601695A2AEB02E933A7CD9FC282F2B71E9266CC0F2
-9071815E5AE7CD0A81212B83A53C1DE6D8C66137D7D80A5DF69AF2D4A5B211EE
-2DBD3A9B27D2D0902C3F80203EE2C71389678CEF08BA74BFF117051140FDCCE8
-587CDA8FCC25157961A6AD3793A6AACD5C6E3544922BD2510B673D37181F8C70
-F011121317E0449026DDDCF338061587CAEEC5572B61A55E422504D82AEE2966
-1AE4D3B2DF1DD36642B5A8BAA9776192C2A773DA27787BD08E2DE3AAC218E22D
-A3614EB2CEDBEC6125CC3ACC61B21C0378EF659A76D68A0ECD8B8B72A8875615
-B931E3C012AE65BA2F998DF4B5025E510123B6B286B19274B47D0D2E3EFD3D3A
-8C1732524B436AD0E5AF95CB254B14070342746C9F052D6C66D3FA79139F3F43
-EA1FDFB53184A460DDC633F252F907EE1B62D99B1F6716D1BD682F2B64B3D171
-9F0100189F378745F40F92D1B0012754F3DE04A24369A9595A641E1E720F336C
-64A8DC325D0AD81C7A83DC669EE5946ED94793EEC1FBAC597C0FC11AFC2372E7
-49F7B20869205A19283E4DBA2688E93F8BA42FB6D37E9647380B3098F06D9019
-5454ADED702806313B88AA823CB9D241504504A1A3205A594FA324A8B60E8C00
-2578238C0D42D54C3B6E4AAA2A0C150094E64766400CA797F18462EB4C5B3606
-D7BFEBC883219E3161C4131B9BEA1099C1DDFEE1B36FFEE8D687E733445AE84F
-8A01B22B0C78C05F1B47982D2426FB9D58EDC7031D94636CA551860C980B7691
-8BA3B1F631B039F174D66070AEFDC2323A0F3177B83C5CC1256C11A360B37B8F
-2E8A8D3DE40F801C8DFB17DD6366F06D0EA484A6C3759FBEC4E50483C4CC891E
-7DCB62D5D49AAD71F1B08D25792E2E4AE8B793D96FA696EFE5487E1B4B0F1786
-74F5FCA61CE0BA7A334C98034D14A4F33F3C5DC12EA412714E5FE2238EB3D7E8
-A7C162D594A595043FF9D544A11052B643420D397043D9D34947190E4D59A0C6
-890E20E9BC1A1AC75991E09740FDE1C280F87495A4F686EBD2CB81F76464319B
-3AB3EA0AC9E4542764153B543907CD78CE2663F892B98124D10113C4EA657AFC
-85BBE84A8E58FBA341FF1910399DAA8CD45A817DCEBAFB0BA9A53C60C0E9CE13
-4C28C7390443707855BB63AC73167DA9622DA189896BD9054151597D9E30A6DC
-E1862D1FCC69CB524F5007757B2662CC3443DE55FB2004BE2BD9D173ADFB35EF
-AAF1AF8B219EDFC86BBC120DD12F3C7AE1B44119753A4BF1865EBCBBF473B315
-DFA2EEDDC03698E390FD98715CE23BEC0BE84F006C17CD12207DB26F41F07C6F
-295AD370441619BC424AA3FB9B9034010D092DC59BCA7093EB4FE13F2555A97B
-CAD31850B5666A4A69544D6B9425626E5DACC81B42CFF1B504F76D922E7A2995
-6A7DE55771F4EA427FFCE7E40563D9A882116945ADA7FF481E213E841BF1E02C
-91C149EB291F9F2F0B4AF359458E506D20F2637BE51D59C238BD0C35617931F6
-3D67F6FA6A0CF85F876862F4812B199C8E8B803784C883998233A68ECBFB751C
-8278A1BAE595AA5F5F5E8A1F7AEC49EBAF71F0D1CD7FE3EF129D61A2922B820E
-C9DC3DF8956F7B1F567D82B2B78C99AEEBE7E84F1A676B2D221976631B191C97
-48A9E854459B3232D374C92C0C06EB81DA059F7BAA824E952FE48F5ECF3259BC
-546382B94E85DD82218D504DCFA8D6654101C80A8A967C0598CDDC51EB230D68
-5BB881D56F270E8C77310CB7B8FEE575907ADED10474DC8983AF97BD2DDA27D0
-3DB2656B65BD6DFCD58AEDC2ADEB3C09F7CEEA263E928C10EFD2F46AE8024CFA
-BF1940AE249ED997A5782553016CC3BD6C99F4D3C52A56AEA144A183959B5254
-CA95A5B3A8CD92074A5079ABDA1110C35AFB0B664D81C8E44311A91C1D297017
-433E994DEF6ACC3F8B270FBAED9339371B578F6B17D5CCCB1592BDF4710BF914
-D18897DD85661EFE0D927133B478294891A6631D4789412AAC9D5FFC7A36C9C8
-EA53EE293D49641C2E7CE61C67D472EB63BF759CC84B036E4BE78945AF204D60
-B3F319CED357965B045E8AA48A2228CD358B6F839013B7CEEB6A144596FEA93B
-E4E1A481DA268E62367B1221A4CC6A567F21112DC7F25A1DC406372A7672B574
-5A0AAA12F85D548DC2323C57219356CD6AFD36233F6B9511C5FE2A44C18DAC44
-7077D0C9D07774642CBB01A1CDBEAD9FDD50FF08C4F4F9F2F6D2B87AF552C030
-D669C39A2EB31DBF7B034F1133D32F6465C921CBE53FBDFCA4E27C6BC2BE83CF
-6852C3847226B5ACBE6D40E29B7CB7F4FEE6FC73B66AE8FCC71CEFBC384D4A71
-0EE4EBC5FCE4FDE5D17178CA1DB7E4BC937B0E29D336B1EF65B86A95F2F06DC5
-9068D506214C6EA0F99788FD341BE8EC78297F2AEC498D20DDF98CA0ACF5FC99
-54F5D0CB096CEF438E1F852C39A8FC9B4FBBDA3C6A950FB97FACE6B6764E8A5D
-ABD850403ECA81C84D9D817B5C3A46C3821009B5C85BEBD689FEB07CE7C933BD
-984E373459C48B8233296B0A17E7DD2A0E2115E5A13D9EFE68980BEAFE4625F3
-D60C662EA7AC0EA74D38DEE3B814680D72607D6067FEE02E1DCCCE0F159FDF0B
-E7EA51139107B8078E5608022803910D1CBBBE15F1C31676397AEDD2248AAA36
-A56F77B3092C8282CE634513CBB2989BD35D0D707FB2375FCC3C4DE1310EF43F
-7220B6D09DF49E01E985148BAF92428F513FAB0CA59FDAC2CB646C1B9E0113A1
-C012B4CB77E2F21833144FC5C1C8F0EA19790A83E546E45563DFDD073143933B
-6EDA7B0E7DDDF97B7EE35B8DE3C7686A50DD234E672238D9FC904C186BF7E4F6
-3EFE78DF73F083A6CEC9780B534181D875F243EC24BD2F0A59DC718621B30DD9
-A38634D3737C6B91C6B37B207F35238DA0E9C2BD6D8E28FA121E5B27FE887ADA
-99F20A5CE53B7F6AF6A6A194E1E7CD64861A604824C5
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 73 /I put
-dup 86 /V put
-dup 97 /a put
-dup 99 /c put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
-36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
-A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
-4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
-0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
-9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
-C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
-F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
-0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
-BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
-9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
-1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
-D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
-CBBD534323A8D661D56AA5DC45375FF2D5EC43DE7FEB8ADC4AD36D3453FB885D
-271155DE7822E184C986364E622AD60BBDC4040F752D5A20DDAF9BB052D77A0A
-20A0CA5CCE3D473B5D4F47A26ED4BF47E03B1D8EA8ACD99149A2695E749853F2
-E4EDDBCCFE6C126005EAEC0E17179D5492DDF90A09277DEEB2989CB23E0BC382
-BC34FE483BAF19ADFB00503B8401A16F341BF3F0F3B3373C1CD1E373A3E609AD
-8C74AD83D47B76ED9135C82DB67E64B1E63FD1463D0104766D213F1CD11DB5E7
-AC24905E08564369EC3F7F223FD11120811298E4AA95B0AF1C9C74E3F5E31211
-EEC583D68C76F62DA3A565F27A6EEE1C6ED18279EFB73CBD129C32062DAEB3B9
-661952C545BFC0820FB032ADFAC5925540E6EDB90E4EE8EA52B3978DF9958BC5
-AEF136E20544122F364254CFC8372E3F52749C0939D3D86216D0D97533974338
-AF7B7350ECF4E7B670D2315A3F0AE7524FE83FDEB8C591BBEB9FF37F8B2D9144
-827E647902446D748E65623251BE2A13557DF2D3958229FD34A9195C756A18A1
-8524FEE768AFB6314B0CCD8A71393E43F7A3D3FFDCA19DA18292236D3700246F
-333030C5E575DAF015A4482E55AB0CF3CE0C54EF09CC34EC3BE22D4D6707C678
-FE1A3CEE4C229CD72CB99DC089035FD9B1C16D37A0D9F82DE3824FDB9628F96B
-6278831C4D5232F029FE59C047F3DBC53E7CF3871FB34B93B4DC2FD71D3BBFB8
-075BA1F413DF4FB07C6ADAC2E821B52F47E715CD9784AF4E6E8E7DE5E1383601
-A24400F30CC56DBEA09E59B8ECE565FCB78504BAEDF3D85CD3C819FDC76BC497
-E32A285924978D49EFE856077B38E90DE735F2E94F278A963D75164728E378CA
-5F9D67295FD42CDE43FA7AF1CD490E59CE9FAC7554303D0C8F22F488A981A87A
-59AEA2D77F8485F19296BE39045D2A4C544A9ED25E9524AF015CBD141E317B8E
-0635A4A015652849EB443F97A65CBBA3F3F82C3782591A63849331DC6EB70A42
-49ED3B4A3CF1516A15CBD99DD097BCAF9FA286DCD98598CE7FB41463D887448A
-3715359AB96ACCABFC416936908F892A68A6510AD6EE1124F698E0616B1A37C7
-653138EBB410CE1C24D1F43426FEA8D4DF27C542D6A706C0024D9EC93F77935C
-88A376992D3BD751F08209F8D1343DE98E48038041A9C8A5F3FC43367949401C
-AFEDB9B80CB7B266C90DEB92515AF5E7FE4317B68E3CC5A3C075D84CE3A85825
-80FFC59180D4D4F4308068896636B886BE83FC02457EF8D6DAF0CCCEF2489732
-77F774A0393658CE96B9414E1732180E6219A59B3066744738F31EA3FAB6FD9E
-09A0840A07BCC8CC511BAEC8AEBFA61E1BB0A75599A9813390929F6924228837
-79642B00C4B6F2FF005099FAD4590C03AAED28503223301B179BC1F2E37C49E4
-FA26D8C5740F439CE6F2C38CE13806B8E3C50785BC6E56F6136049E440DB4D7C
-E3F21FD49B2EA28EA69B6DBF783F5475728E0333D2EF88598588095225738744
-77FF0B5CC8DFEEB8B407025A487DC30300CD62DCE541F022D8D07F7D184C0773
-99D0CFA04A76F9A081AE6870D071119F37CDF621F6F4184C2DB97EC3581BA284
-7140B2190C1F0C2241CAD7A7223C6EAA7E46173B899993CCB196A9646766A793
-2DD1A66F309B97D7EA2C05D9643D5D35F0E8AFDF35BB5F675AEEC1C16727E766
-BED413803046D285A7EF23D1ADC9F3B45B4AF1909C394917D19D7B7D4DD98F1E
-7140587C22575DE54CC744749DF46C5155B6114287F989F19D85505CECA8E6CB
-78D7FFF60419BB9A79620EF40A94FB00F24C4B839C025AFC1C442B44A37AE8B4
-ABD884B53400C24102A9D866C29B5F340194085254B67587EBF1AEA02C57B511
-73809B3611A6C359EEAAE0E9C20F2AB9D72B29000C030BA6FC6DD40A59634EF0
-C89BCD4097D093A7814A8A66D972EFEBB72FAE77F404ED35D6BE83DC7B97E55A
-D971B267
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (haydn.dvi)
-@start /Fa 141[55 2[67 2[37 4[67 1[61 35[102 65[{}6 119.552
-/CMBX12 rf /Fb 153[33 102[{}1 83.022 /CMBXTI10 rf /Fc
-134[73 10[76 9[76 2[67 22[71 1[108 1[87 23[38 46[{}8
-119.552 /CMBX10 rf /Fd 138[110 77 1[82 1[110 99 110 4[55
-1[99 1[91 3[96 13[110 1[149 2[155 22[99 99 3[99 3[55
-1[55 44[{}18 172.188 /CMBX10 rf /Fe 54[133 66 50[133
-66 15[266 48[66 7[106 1[106 1[106 7[0 0 7[40 1[40 1[40
-9[0 14[0 0 15[0 0 6[0{}20 132.835 /TeXMUSIX16-Regular
-rf /Ff 144[42 46 1[23 2[23 3[37 1[37 1[42 10[62 12[30
-73[{}9 83.022 /CMR10 rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -40 1361 3678 4 v -40 1395 V -40
-1428 V -40 1461 V -40 1494 V -40 1029 V -40 1063 V -40
-1096 V -40 1129 V -40 1162 V -40 697 V -40 730 V -40
-764 V -40 797 V -40 830 V -40 365 V -40 398 V -40 432
-V -40 465 V -40 498 V -40 1494 4 1131 v -457 1455 a Ff(Violoncello)-353
-1123 y(Viola)-412 791 y(Violin)28 b(I)r(I)-396 459 y(Violin)g(I)-40
-1393 y Fe(I)-40 1094 y(K)-40 795 y(G)-40 463 y(G)70 1459
-y(2)70 1111 y(2)70 762 y(2)70 430 y(2)113 1426 y(S)113
-1094 y(S)113 762 y(S)113 430 y(S)436 -50 y Fd(String)65
-b(Quartet)g(op.)i(76,)f(No.2)2962 141 y Fc(F.J.)46 b(Ha)l(ydn)231
-1642 y Fb(f)248 1542 y Fe(\031)p 238 1527 60 4 v 286
-1542 4 191 v(\007)345 1443 y(\031)p 384 1426 4 75 v 346
-1426 a(\007)443 1443 y(\031)p 481 1426 V -17 x(\007)540
-1443 y(\031)p 286 1359 295 16 v 579 1426 4 75 v 541 1426
-a(\007)638 1493 y(?)735 1443 y(\031)p 774 1426 4 108
-v 736 1426 a(\007)833 1443 y(\031)p 871 1426 V -17 x(\007)930
-1443 y(\031)p 774 1326 197 16 v 969 1426 4 108 v 931
-1426 a(\007)231 1260 y Fb(f)248 1161 y Fe(\031)p 286
-1161 V(\007)97 b(\031)p 384 1161 V 1 w(\007)g(\031)p
-481 1161 V(\007)g(\031)p 286 1061 295 16 v 579 1161 4
-108 v 1 w(\007)g(?)g(\031)p 774 1161 V 1 w(\007)g(\031)p
-871 1161 V(\007)g(\031)p 774 1061 197 16 v 969 1161 4
-108 v 1 w(\007)248 828 y(?)329 994 y Fb(f)345 895 y Fe(\031)p
-335 863 60 4 v 335 896 V 383 894 4 125 v -1 x(\007)h(\031)p
-433 863 60 4 v 433 896 V 481 894 4 125 v(\007)f(\031)p
-384 778 197 16 v 530 863 60 4 v 530 896 V 578 894 4 125
-v(\007)638 828 y(?)735 894 y(\031)p 725 863 60 4 v 725
-896 V 773 894 4 125 v(\007)h(\031)p 823 863 60 4 v 823
-896 V 871 894 4 125 v(\007)f(\031)p 774 778 197 16 v
-921 863 60 4 v 921 896 V 969 894 4 125 v 1 w(\007)-1
-231 y Fa(Allegro)231 579 y Fb(f)p 286 447 4 117 v 248
-447 a Fe(\010)p 676 513 V 638 513 a(\010)p 1028 1494
-4 1131 v 1080 1493 a(?)1178 1443 y(\031)p 1216 1426 4
-108 v -17 x(\007)1275 1443 y(\031)p 1313 1426 V -17 x(\007)1373
-1443 y(\031)p 1216 1326 197 16 v 1411 1426 4 108 v -17
-x(\007)1470 1493 y(?)1568 1410 y(\030)p 1568 1517 V 1
-w(\007)f(\030)p 1665 1517 V 1 w(\007)h(\030)p 1568 1525
-199 16 v 1763 1517 4 108 v 1 w(\007)1080 1161 y(?)1178
-1144 y(\031)p 1216 1144 V(\007)g(\031)p 1313 1144 V(\007)h(\031)p
-1216 1044 197 16 v 1411 1144 4 108 v(\007)1470 1161 y(?)1568
-1144 y(\031)p 1606 1144 V(\007)f(\031)p 1703 1144 V(\007)h(\031)p
-1606 1044 197 16 v 1801 1144 4 108 v(\007)1080 828 y(?)1178
-878 y(\031)p 1168 863 60 4 v 1216 878 4 108 v(\007)f(\031)p
-1265 863 60 4 v 1313 878 4 108 v(\007)h(\031)p 1216 778
-197 16 v 1363 863 60 4 v 1411 878 4 108 v(\007)1470 828
-y(?)1568 862 y(\031)-40 b(4)p 1558 863 60 4 v 1606 861
-4 108 v -1 x(\007)97 b(\031)p 1655 863 60 4 v 1703 861
-4 108 v(\007)h(\031)p 1606 762 197 16 v 1753 863 60 4
-v 1801 861 4 108 v(\007)p 1118 496 4 117 v 1080 496 a(\010)p
-1460 531 60 4 v 1460 564 V 1508 562 4 133 v 1470 562
-a(\010)p 1860 1494 4 1131 v 1936 1366 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (15.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 1936 1366 a 1912
-1517 4 125 v 1913 1393 a Fe(\007)p 2010 1517 4 108 v
-2011 1410 a(\007)p 2107 1517 4 125 v 2108 1393 a(\007)2225
-1443 y
- slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2225 1443 a 2225 1443 a
- end
- 2225 1443 a -60 w Fe(4)p
-1912 1525 296 16 v 2205 1517 4 75 v 1 w(\007)p 2341 1426
-4 117 v 2303 1426 a(\007)p 2536 1476 V 2498 1476 a(\007)1955
-1149 y
- slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(1.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
- 1955 1149 a 1950 1127 4 117 v 1912 1127 a Fe(\010)2307
-1161 y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
- 2307 1161 a 2341 1127 4 117 v 2303 1127 a Fe(\007)2303
-1111 y(\000)1936 872 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1936 872 a 1950 845 4 108 v 1912
-845 a Fe(\007)1970 862 y(4)p 2000 863 60 4 v 2048 861
-4 125 v -1 x(\007)p 2145 845 4 108 v 2107 845 a(\007)2225
-828 y
- slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2225 828 a 2225 828 a
- end
- 2225 828 a 1950 745 295 16
-v 2243 828 4 92 v -20 w Fe(\007)2326 855 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 2326 855 a
-2341 828 4 108 v 2303 828 a Fe(\007)2342 720 y(\310)2373
-724 y(\310)p 2438 845 4 115 v 2400 845 a(\007)2517 862
-y
- slur@Dict begin (2.0pt) GD S0hgt (-4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2517 862 a 2517 862 a
- end
- 2517 862 a 2487 863 60 4 v 2535
-861 4 158 v 2497 861 a Fe(\007)1936 540 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (140.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1936 540 a
-1950 513 4 108 v 1912 513 a Fe(\007)1970 530 y(4)p 2000
-531 60 4 v 2048 529 4 125 v -1 x(\007)p 2145 513 4 108
-v 2107 513 a(\007)2225 496 y
- slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2225 496 a 2225 496 a
- end
- 2225
-496 a 1950 413 295 16 v 2243 496 4 92 v -20 w Fe(\007)2326
-489 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (140.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 2326 489 a 2341 463 4 92 v 2303 463 a Fe(\007)p
-2438 480 4 113 v 2400 480 a(\007)2517 496 y
- slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2517 496
-a 2517 496 a
- end
- 2517 496 a 2536 496 4 135 v -19 w Fe(\007)2555
-1210 y(4)p 2585 1195 60 4 v 2633 1210 4 117 v 2634 1202
-a(\()2595 1210 y(\007)2618 805 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (2.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 2618 805 a 2633 779
-4 95 v 2595 779 a Fe(\007)2684 795 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2684 795 a 2684
-795 a
- end
- 2684 795 a 2634 709 a Fe(\224)2638 708 y(\224)2536
-704 y(\225)2571 697 y(\225)p 2702 795 4 125 v 2664 795
-a(\007)2341 372 y(\204)2369 370 y(\204)p 2633 447 4 90
-v 2595 447 a(\007)p 2737 1494 4 1131 v 2812 1486 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 2812
-1486 a 2827 1459 4 117 v 2789 1459 a Fe(\010)2812 1220
-y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-7.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 0 N end
- 2812 1220 a 2779 1195 60 4 v 2827 1193 4 125 v 2789
-1193 a Fe(\007)p 2964 1177 4 108 v 2926 1177 a(\007)p
-3102 1161 4 92 v 3064 1161 a(\007)3221 1194 y
- slur@Dict begin (2.0pt) GD S1hgt (-4.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3221 1194
-a 3221 1194 a
- end
- 3221 1194 a 2827 1077 415 16 v 3191 1195
-60 4 v 3239 1193 4 125 v 3201 1193 a Fe(\007)2812 838
-y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-1.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (100.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 0 N end
- 2812 838 a 2827 812 4 133 v 2789 812 a Fe(\007)p 2896
-795 4 117 v 2858 795 a(\007)p 2964 812 4 133 v 2926 812
-a(\007)3015 828 y
- slur@Dict begin (2.0pt) GD S1hgt (0.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3015 828 a 3015 828 a
- end
- 3015 828 a 2827
-712 208 16 v 2827 687 V 3033 828 4 150 v -20 w Fe(\007)3064
-845 y(\031)p 3102 845 4 108 v(\007)137 b(\031)p 3103
-745 140 16 v 3239 845 4 108 v(\007)2789 397 y(\007)p
-2827 513 4 220 v 116 x(\007)3087 440 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (6.79999pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (140.0pt) GDAR N /S1dir
--1 N /S1dash 0 N /S1adj 0 N end
- 3087 440 a 3024
-413 a Fe(6)p 3102 413 4 117 v(\007)p 3171 430 4 126 v
-3133 430 a(\007)p 3239 447 4 136 v 3201 447 a(\007)3310
-463 y
- slur@Dict begin (2.0pt) GD S1hgt (4.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3310 463 a 3310 463 a
- end
- 3310 463 a -60 w Fe(4)3102
-322 y(\311)3197 331 y(\311)3102 297 y(\311)3197 307 y(\311)p
-3328 463 4 144 v 3290 463 a(\007)3379 1493 y
- slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3379 1493
-a 3379 1493 a
- end
- 3379 1493 a 3359 1476 a Fe(\031)p 3397
-1476 4 117 v(\007)3497 1493 y(>)3359 1177 y(\031)p 3397
-1177 V(\007)3497 1161 y(>)3319 862 y(4)p 3349 863 60
-4 v 3397 861 4 117 v -1 x(\007)3497 828 y(>)3359 447
-y(\031)p 3397 447 V(\007)3497 496 y(>)p 3635 1494 4 1131
-v 3638 1659 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 1659 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/haydn.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: haydn.dvi
+%%CreationDate: Wed Jan 21 13:57:12 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 16 570 510 792
+%%DocumentFonts: CMR10 TeXMUSIX16-Regular CMBX10 CMBXTI10 CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE haydn.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1357
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 65 /A put
+dup 101 /e put
+dup 103 /g put
+dup 108 /l put
+dup 111 /o put
+dup 114 /r put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2D4609D7
+D2E805DECFF5AF988F0808796D01500B18F0EFE1919743C126088426A5A27D4D
+03F21A15C23B9BF08DFD73708F2C1AAC530B2D00674DF2B5274D98C541905206
+6DD191F7458F1166231360871EA0C6AAE036BD3551B866DB578F29DEAFD289B3
+FA6E9CC4726B854E887BFFE87DA8AE960C817A1784031DA55BF78A79976A4FBB
+764DB071CF34E990D3531367408D37218B289FFDB701E870A32EC7ECC8C3D6FD
+90074953B49CABE8468930B55E5B5FE0FB302C8DBBC120A76AF9C2846C85E01F
+ECF513FA01B99C4F2ED6B902C842EF29F25789D8066B284AA832B8329224A14D
+92F49F2ED713D938A2ED14C1AEC4D73B6D6C0313293D18547DB010B2CC8CDF98
+8ED055570D39B01AA62FD6DFC6DF11BEABAA95FC7BAF76DD31E279F65F015E4F
+5638292A61635A6B3F2F9166E68585E41371A4F76F3011449188B5E6B4160518
+BE274DA3E8AADCBEC12CBC0C960FCF7ED30D17A96240AE3635C76EE25ABDEE3A
+5D5ED522BEB18E11DC1E1DB5F202673A8F4A2C80F89C4581875CA0470902638B
+F0D02673B4666C34103904901373FAF2C95210EB90B768B089DCB6771976EE31
+4EC033BEA244722A0755750F9FF437AE648CE60102390E459E7348AA1829A0E7
+B7D53464C332F216593999C6448419A67EFCBE6E06B5D20944630767922EE06C
+3BA3B34AA7EACF23B5EC0F433E4340990B55CF8379D7D1E93FE8871FDCCDAA74
+BB24DF5EA540072C54B85F40B1B55A5362DD9717A2E87D54489442CF48478FC9
+82E6C7130D88DD7E5BA2BDF8A477360A35294B5044513000D454CF53913DA0A7
+8D59FD768A5D4D80F6F376D95437A6492E75BD897C0C38340C094EF7F25C154C
+3A3C13CEACE051F9551CF66A2A583CD784880B44E19F19A81F62063F53EBC14F
+4494B181A6DA89F74089083C0405CF821C65008435E8EBC9516DED8A0990D5FB
+969AB5BC7A4B47FB9B3C2EB25CC21232337AF2FB3E0E7455E5A7D763C9DB94BB
+A941F65124C4ACB665968F4894B125777568FB381CDF09C02BD5E2612546C6BB
+2B3A12B74ECF99C16801053F50ACF6F385E77AB8DCFA921C5A4C628F57052811
+4D14E4DDDF859421174D7AAC6ACF8D4852A955E9872D4012D488EA78928C1FF4
+E1DAA8DC12D9E613E4EE895282577C68C9FBF1C96710F0B43254D366AF82B2A2
+CBF03B1B5B61BECCD3B8A1E230304E41D1A1A500555F1A752A492DD53B966536
+2BC19BB3D3A19162992228CC9A7C73A4BEEFF70CA925D4E36FE5F2C0CBF459E0
+D13B321F7FAD9635B14DD2B312FD6EAD2FC5411927F4B8AD43ECEE73071DCD6F
+31438A3BC07078F04A6CF179439B28DFFBFCD3DFAAC670690E29855C30D82177
+F2F087504AE7E2CF63E5921021F4BFFD592C58DB81818481815F8ECBB996B99F
+366DAB49482C09BC82042331872B5B71897A5AA3273C213532427799C980C9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 102 /f put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7C97C35EAFA47778CE03E863303582D8A9901881E9A5E2B11B1B3C37D5
+69048F1FF37F535313F28EAD00061C788547D3D2EB16DFAFBC7024854A277D0D
+F4AAC20E3976FF31771141FB9F3D09836B0CFCFAF9E7D244071B530339516E5F
+AFED73B2D0E42C724CED873AA66142B95C8F46C83ACB6F5198450DAD0B85AE88
+2499B67C297F1AACC09B75E17345047F5E29A702C2DB50EC133977251F24C074
+69B4D9E2D854537671BBBDDC731BA5E0F963E75BCCC20162661199E89CCD5C05
+BE422124B8CE4668445BD623969823F3D6E94F5669153944489270BA786094FE
+655994C9314928787530F7D1AB9C171917984AF4E70823C6F9CB950F02184BD2
+B07E752DC88685DBA68B8989BBD83AECDE0FBB628235A71B1F39BC0406AA3B1A
+196770D283690A5579F36F7D0D479FA61601520C602F9296518227564200B4A4
+AA10760391183B27B7701DC3ED5C68C8F575A253BD54275131A21C002E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX10
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:06
+% 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 (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 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 44 /comma put
+dup 46 /period put
+dup 50 /two put
+dup 54 /six put
+dup 55 /seven put
+dup 70 /F put
+dup 72 /H put
+dup 74 /J put
+dup 78 /N put
+dup 81 /Q put
+dup 83 /S put
+dup 97 /a put
+dup 100 /d put
+dup 101 /e put
+dup 103 /g put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 116 /t put
+dup 117 /u put
+dup 121 /y put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
+1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
+757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
+0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
+6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
+E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636
+6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B
+DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663
+12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C
+46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08
+F6DD0BC6A79A2DB1FF539454E8F5D1A42D40CCFBC093AFD3E57973A009095CEA
+B91FAFD236C47F453B38DB0067907A28EB5E9ADE87A4E5EF638B216C20701A30
+5521F6D4C1D3DABAFEAA7EDE9472813E7E707D7F70D685DEE4EE5AAF118E236A
+F7235D3B7C3CAFA5F99ABE792B377B97E059D705A0D83B40B1E038974CA38F89
+4F03A379682124CD29D1841D149F5F844D4988A574FB12CDDD4F1347213C9327
+55A8A71B51C2CA3E8D601A4121FAB4199883C9873391E7910E0CF540BB459E4C
+13C070931C27705BADFB232A4D4E104FD0B58642160A0A7BC252745EEB8E97ED
+D6AB9E3DFE44C13343BDAD307FC9B669A09B2C0E571C0B8FD5B11D255FB07C91
+5411AFA60737297844AA60618E11E3C5385B983B17B3E7F427B092D0FE0DBBD3
+F8F279BA556098C0CE2464D64363251395B2F35826AAAA4737FDC0FC2D92581F
+94F9BB361A619929DDADA47CCE9C33A2C88BCCC6A2E21EBDC891146CCACF9953
+8A308918293F09EA311F492952605836FFD27D21F892B9AE92E8480F5B8A2AB1
+B8786F0048C10005002C2B130128B91296C31BB0973003F648788CEED969D20F
+E0745B5A68AA0915E7D640105F39C5653C300F52896E5079721BAF2348D62292
+CD5E21CCB306A6D5AAE1CCA01990D42B522E889905215BB6920D50BE671F1D8E
+01E4DA81747FD266CDF20C4929992114915DDF1AEB1154E4C21FCB1072F5EFB0
+BF9E20989C124A54C79C77032B8514408528BE62786B8C6BD6AADD455B574805
+5DC43666FFA6D2F55D17FCB0E24F835FEBC6EB1060FE31A91DF62B41429D70DA
+6734DD893EEB5A520CD8B2844CC98D4C0C6F8A564E55E72CC322936510F6EBBA
+11FE1B3B8700AE71A83A46104B2C9EAF157CA75FB9E013492BD37C97AAAE4FFE
+52F99077D9F44558D3CC6C0FA3121EF68AFB0F4303307C4EEACA18558301D224
+AA98F2DAE75D4EFD20148ACEA2471AB4CA590DE4D2F2BEBE39239ADB477FBD2B
+0D86B7025004216B22E711D3832EF90A3985D2AF2088A42327E200D2934761F2
+25E01E7F7C607A0A86EF77CEFF032E93D43CC2C7DA8BB3CAB75BEF813BF14C66
+4C8233956D78DAAEDA89B8367E90070B377962C5A5E3724A7C10930067CF3F09
+B511CFA5053E6B18524AC77B6D23E69952F077C043843A26534F6507750E20B2
+FCE23B27E5960478E1E8092E928A66133D9E317A9FE11DC58DED6D4374158011
+6E2502EDDD7C31280F2238C71328BE06B5AABCC4C4144434BD16E87E39177A7F
+F7F955EE96F3165C1BF78F2DCA9E0D29BCA2C70A3AB4C5DFED7DE8A9F9436466
+E22B1E452064219431544157277F225E57B89868A652C29CD1971E53292FCD08
+C32388F9ED4759637F48E98F529C79A1379CDF46A682B6360B37560F08FCAD48
+C4BDE7C00BE5A57081865D8B51C87CDBF6C7AD065B3B871203A6CFA8B41445BC
+7651A5D8820FD960B61525101268DAD3C1B81974D50482EDBB75A680DB956534
+5697EFE6D4AD7EF090FD3966A6234475420179729C439F156330EC19D838B418
+A9EE5451C09AC5BA8AD96ED7D71294BEC637481FBB8BE4EB913B04F9B51956CE
+3DDCC1BA2D61FD1DBF4361C1165B75CA6FD2D33908E15B342B86D4364CDE0046
+88DDC04A7C20A1A3942B61A80D9D06A2480C9B710E1C4712293785AC93A46494
+1D220946E76C5CCECB1014847A8463412DB19B39279B00C934F03061DC96F20A
+AE9EA413C869717013F7164C3454E6DC3399EB9CCC50C69E2A2B8DB9A9044687
+A54F2414DD1AE335F85770D1BE543148C43A3DC79E7E123D1B27138E29CBBCFF
+640F760C96658C8741322B906000F46E8F8981AF12135448CB1F65C0B0EA983E
+1E328FC8B39E7A30E7150B5BBDB9D107AB51ED3FE361E39285C054E71A32286D
+E0FA24F89D4B97C30C3BDC1B779086C6922C6C609771B9490E5D52391B369E6A
+CB3B7B2FE53F823AB853A59C47DD24CAA24B5014AD7ED8167EA14E7959EABA09
+70B3E2472048817BEC9B5EBEE3B6CDD6F02657670899A6D243E4DABA614FD03A
+BA35BA790F948BE25016BC1E2B5EED7D780C74F3A6E6F00B0BD77AAEFA9488C0
+E092E1E29414544A4907AC40D858AC635509AEA53775D2694F56347EF016C120
+AC2C59A178C125D041C926866A009446DFDE3808CDEDFBB0C3F36557D6E3752E
+A0043EAEFBEF3D93F9B2E586F122B019C1369915A24CF333536D95155295D725
+47D9ED78B30DFD68E8271A3141FFD22BE0D71D90FC76713CE207B09FD4F79238
+7CD8D31F6B8EAE81A4358354E59ABBCB844EBF0F59CD0B7270799B2FF8DAC47F
+029A2CC0B5F535A9A92FF6DAD9F39A1CF7259EDA351EF93D854D4D3D4C9A6D52
+7F8FA4612EF62DD14C4B24677FCC3D675B8460E5956C536B300F7CBC734FE9E3
+F2F14E274561D53162EF0166BC676731C23225F63D35BCE3847E287671932F5B
+1CB1587214DB642EDB8EB1DD2B543B0587B59AC0209EAA2C61DF9E438BAAF2D1
+CC3E31E2BC47C5C0CBCC72CFCB55038F932D41A5EE46B3F29488167A9FEF9375
+56F2EEDB1C27C99E3C878F702C5604FD2062D694F8255A5F26305F313EC1EF75
+7FBC1DBB6AA7A84175F89E29496DB4394CFC88F061D2A0B0810708D0CA61821A
+42C8127E70D162CB5629DCDB2AE3911D4C5E6AFB2D12A54B0B284279306E0035
+240636C7EA550FE6A127CA35ED73703893F110572CAB392053F54AF754C0B402
+5406F79ADCBD46A45C6840B7723761B2AE94607558129D2985C3049A402F7ABB
+CDD4FA02B93E5C7F83595C2ABFF48D50CA7E0AEE9C02AAD1E4E32D952E2E8B54
+66F6B3C6131BAC47247C2C5D6858710DC47C86382B5AA641907E9CAD801E9155
+8C6CB7954D1BABA38AB2F64786D7AD676BA1596B15FC0559C8F7BD29E5C5C57D
+72073AA031100D5EB02623077B3B0EF043DB8D06FCB8B255E2237D82EC9EB994
+7EEB532D1D2A6D9093D32213EF286175262736601522895F83F6616D0948A33C
+E48325DC71702770034ADE54876466988F6A86B23E50BFEC110796942748F22F
+553A27420CFBBFD4306314C5EC9AEEA764B8EDA004B47E8C05FFF52E459DC93C
+DC24F86021E5829B1F673D7A9D356A6A08B8DFCCAC96BFB1832057F1B1EFE308
+A3E2B337276A101899EBB9DBF44F8BB6CDFC94F1ED835080720AC39B4D4F5B7F
+BCAECF8EF0758970C93AC90961318440F3A4842D9595CB9B6902CA9D68BE175E
+635E678D685013774CCDBB3C46C413E1A4724F3F0C107C5F78C324BB398C5AF9
+2E75CA94168A1FAECDF62A27431C192A1CF88DFA8995BADD6701CB28649E8F0A
+2E91C2E32872DE277C9AF9FDD4116606755A6561F566C63FE51DDE8EC2CBE0DF
+3D96D2AFA88D694A01B5748679CBC8DF25C9CA2BA84639171541FE4F63CE8074
+0ADEC1D8BF57066BA1CAB802900657BCDF3D3D5361CD6A7C6D754E6008D33FD2
+D76F46638D9FF2F878213E91861283172A1F51C3B7F614592E0309C64986CB3C
+CCBD53503AF68A71AE2647B6AC72CF4914C816B159913088F3E70DB1DD68CE6D
+860CB308A7B8CB5C982F8385BAB127CD93B1141D72B16FFBA2599988B7BAE451
+B8C09912F2FF35B18A1FC8D747C17CCAF4C93D6EB275BF7FA547E5E642BD71F7
+E19717C083068C594B61F5825AE71400CCA4FA2D108E1B073DD2F02A322045ED
+B45D38600D8D41D84B651C806ABB5A2377D74524348CE0D6D89AD1A0CC3E8745
+FE723ADF6F74F6ADBCD2BF80FDF662FD7DA55F86BDDC798D610B63EB2BB2BE92
+B3CD7062C668AA31E34B0908BAAFE1F84AACFA7EF2DC638067266402C113F8AC
+BB76189808824F1DEB463E003D85B2DCEAC744E72AA63367774ABBBF58D2863A
+94C9BA8E2E85D961A9635FAB23056491C54ECCC45A93BAC93704D2EC5723687D
+06949DA63050E6BC5581743640665B497AAAF808E2B90832B16AA17C231B0695
+1D30EA1B3DB4D5ABD62A11BD60DB1DDB1F13B2F2DF4F09A41A28A937B9572364
+62F3FD7A971C62A1CB9B0C592F71162F854F73DB0663C26A3FE720BBD5440F78
+67CE0C32C8762DAF38138102F290F0A695B114F6808C77DDEBAD26DE2F8207BF
+FE93EB2BA56E803EF43C0F9949CC1C0F14AD49C2F2E2044EBCA57003D3913806
+2EDBF64B751D827BC3C380217F68C7CFEAA99E339D1FC5418B7E33A131CCF42A
+F5825CC89FCDA966ADB665163DE9ABF6641779948875B060BE0D5A7962044ED4
+C81007BE8E3EFA0A742B94D521F9BEE683EE13040FDDAB9A09E53FAA09B42753
+1BC8DCCFCEEF62B1FDDF753117E26D4BEB58D8F7D93C1D8F9AF78ACADAC51B49
+269F0C4188497B813427480B76B4284A73407B76AFB44F9B12A2096CBA2D1D6D
+ED833B2C249F750EB0DC72ABA6D697199F45BF7F6B727A742753343131B440D7
+33E6191949995DE571680B62E19948033F99B16CA92E0E4AC35AB286CF5B1254
+358A48B60D6E7701A33AE33543E6B3E4224AD2F287F1F983788A5AB0D7C12E7D
+581689F62A33DA30205E45D3CC258834109E9A0D32B6F29A106EE5A5FC9D5611
+62EA7DDFC6D7D08BBB2F5AE4A7AEB2CA31A9FA57EBC55F1A24E7757CA057D439
+66E0C254AF416AA170A979C1A8405AE55538317D849BFE8D8D10B2BE77307835
+5328FE380797D5C571C054E03C8B7EC946D607EC594645A51F7B08918BECF2AC
+0768C3DBF91F908AA9C2DA28B470FE6144FA625735077488B5B2BA303119432C
+A6CC30D83FD5DB8B8598935E1F2F0F7426F4A3B375C690195CB6A0E583AF5A48
+16354278BCBFD2E6AE194AA11B2559E8798EBE0B5A1351E9422147C0B3A02361
+11D26F65DE59269B624C32272816E9F4CF2485BD9A9BC068770C67A179078F14
+E3E7DC56B2D04150B71298E6E9FB6009A5CCA057977366F5CBC6CCEA84E0CF59
+C3400CB3CF2AE4B69797C0450FA9B6A4A8538B97006DA5A7D95397D35CA29922
+BDEDF6F280796C95695591A553152AFB0301F4E77C876CBFA41A7DC53CCB1C40
+91223A83553BC527B348ADC7398A6EF51AF51990B2ABDD5FE6693DCBADF3B3AA
+131ECFD8EC146D706E99FC338346CD4CC182D6C61F58B0EAAC76AAA2B05D96EB
+E70153AEC20B59A5A832B23AF59116286EF83263196575D43BAE8BF321DD1C54
+24003C3DBF42550E9827470F6665EB0BE888F58126C57BDE391B7C8637B6E005
+9D265398ACC7EAB8A2889A896D976655B7CEEA3320B66FD68DFF6332FAC03FB2
+C65DAA83ECBF3F86E8BCB967A36DC9AE7D2136546AE8BA023EAE4B7C3B0A450C
+8393931531F82A8425D521ADD58B89B71579DC3C937754B3E6879EA0DF3DB608
+F9F83A5DD0AACC1C2CB0BA606C2B3BEA4F9264ACE3EDB1F03B70941577EF356D
+28CA4A743F8E0E06F1AE3A6F7BDE25CF5F6B3AA3201CF0353D8A59B04C56FC94
+AE43CAE8CF955D45D91286C0604E855192CFD8D1CCD0B76A291C53A8FCBF006C
+B38758767FE725A95B2FDEFDD5BFA93141FE11CF980B7EC68576F28D2F3AC254
+CD28BE834FFACDC13B523C157D919D2574BAC76F6AA014D1B8A684707F4B063C
+00363FD7DA61E8172D5A29CFDBE03860A1A4DF51BF7EB749FBE4AED5D64858F8
+A520290DA1A1317D25FE52D6D17C0A51CB775497A65B93E06F12D5D5C63A592B
+42EA0C2058FF50274EE8C30D53986B4ADFF1B3B13D8F18C50623291C3B7CA65E
+639E1573C064DF634B5B29086865E4CDC0377B0219E944AAE67BE53DFDA8DE67
+13F8D70A2D0D770AEA0ADAF2878B0B1D92704EA45A32CB9CE98D707CDA4DDF24
+8C6F493EBEBAE79ED507ECC8E577722ABAD87809EA0DB79BA269C2EEBD652F8F
+6BE422AED7223B05D9E54580FBDC02C430077EB555554B96D4D39F8E941BE874
+D532FF595ECD39B5B189D0EC7AD81B3921B9D7A24B6C5B1D4AF54E135BE3AF1E
+4EA3141E61E29AADBB4F15748D362E53AD55075E975DBA7F02A487A62834F6B9
+5D935FA780739008336843A2041BC26B001AF86E28BCC6DFDE96275959CB4E2B
+D6D62651E0B37DF33A82F25EA09FF62B26641C6F76BAAC1D58EF36E6E1387C4F
+3058A161DF7F935EE17D40A9B21F8D7C67FBEDF18B26CC09BC697B09CF333DD5
+CEF0DD4B7A59FDCDFE27234ECF9B2F4414CD821D8D87C8BE47F274E9740153C9
+9277117E712D6A01C6708B1618AD67F6802D04CE706249B7542B6B45AE8691BE
+F61B954F19CE81133D808E1CCA32C78B33E1D502B722EAF3C7EF2543A1917A01
+AC012370937A0D402443E6383EBA14C680A973772E9EDE9E55E9D7578E6979D8
+84F01EAABD421DD4F8DBCC2CBA7645CA7DC5A961A850CCE0AB25D4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 24 /perthousand put
+dup 25 /dotlessi put
+dup 40 /parenleft put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 75 /K put
+dup 83 /S put
+dup 132 /Dcaron put
+dup 148 /Tcaron put
+dup 149 /Tcedilla put
+dup 200 /Egrave put
+dup 201 /Eacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF859449F6003874D095258B6F64ADC77D4830EB4B8B608DB3CB840D82
+75E4C819DAFEBB1BCE8B1518EEA99F8A79809C3BC0C39A9F36ED4968675C4278
+B5448E87397B9994127B6C41A6450F86A24ED491563370B43776BF34BBC2FCDD
+C44967CFB28B04E7A4A6968FC888607BA04952BA6FF345A44EABA4CA626F5CBD
+A262ED5029009388AE8E603F205FA45B5CE94452A1B9507B7A2BA757538FEB7B
+37355EAF0FD3D3D46D6A055EBDB681C5571E2D28FB7938AAA22E7D94B84F08A2
+5F8471744B9F8263D3FD1F5C324810FECBC42C915B3ECA50C477312DA5561824
+6A23E12C358DD5AF4516D82C33A8A4B4472AF361C3B2A0604745148F1ECA353A
+D07CBADC2174AC86F6EA6FBE992D1462259D82141FD6497E284F564B4A3E4B25
+943E7D0A2217C0E5F44226F2E4D147A4178A3D00D2CD1C9DB76123040AAC7EDC
+2C48CAB6CA3B68E294F0B8ECB6AC8BBC4D2064CADA1B4202F620DD6B9C2FE100
+5F9BCAEE97B9F1D60A5FDE4707B67CF1B217163E58EC42606A82964DE2DAA8BE
+C26EE31810C4F1B65AC1A36A0D5583DC863BB10FA55491ABC02C90932A44F3F2
+EAFC5CB803368B383636170091240DB91A829FE638BBFF08B396377050E84B9D
+B26A1CFDF9D6B4E4899EC298B9DA414013A5E73E1EF5DFFFA9EA8D08258F2EC5
+B389955A931A370B508DF28E9C70AD87654C8B87584194DE4FAFAD6C7FD12AD9
+B78A05993B1EEE75CF46AC8744BB5DAC0457BAEC0124EBCB5EA6516F4AE5B24B
+B313D2159279D38357DEEF4094970FF9000868C49A95B0A152EF68FF95AD1FF6
+D86CACBC719B35D08E6D3C3DF19EE01D33AB26FC8A672160D222B7DD01BEE56E
+FA10197006B49B85117A957B836D07BB27C168AD25E22591BE7E92FC1E037F36
+276CCBBD78E329D449F55D601695A2AEB02E933A7CD9FC282F2B71E9266CC0F2
+9071815E5AE7CD0A81212B83A53C1DE6D8C66137D7D80A5DF69AF2D4A5B211EE
+2DBD3A9B27D2D0902C3F80203EE2C71389678CEF08BA74BFF117051140FDCCE8
+587CDA8FCC25157961A6AD3793A6AACD5C6E3544922BD2510B673D37181F8C70
+F011121317E0449026DDDCF338061587CAEEC5572B61A55E422504D82AEE2966
+1AE4D3B2DF1DD36642B5A8BAA9776192C2A773DA27787BD08E2DE3AAC218E22D
+A3614EB2CEDBEC6125CC3ACC61B21C0378EF659A76D68A0ECD8B8B72A8875615
+B931E3C012AE65BA2F998DF4B5025E510123B6B286B19274B47D0D2E3EFD3D3A
+8C1732524B436AD0E5AF95CB254B14070342746C9F052D6C66D3FA79139F3F43
+EA1FDFB53184A460DDC633F252F907EE1B62D99B1F6716D1BD682F2B64B3D171
+9F0100189F378745F40F92D1B0012754F3DE04A24369A9595A641E1E720F336C
+64A8DC325D0AD81C7A83DC669EE5946ED94793EEC1FBAC597C0FC11AFC2372E7
+49F7B20869205A19283E4DBA2688E93F8BA42FB6D37E9647380B3098F06D9019
+5454ADED702806313B88AA823CB9D241504504A1A3205A594FA324A8B60E8C00
+2578238C0D42D54C3B6E4AAA2A0C150094E64766400CA797F18462EB4C5B3606
+D7BFEBC883219E3161C4131B9BEA1099C1DDFEE1B36FFEE8D687E733445AE84F
+8A01B22B0C78C05F1B47982D2426FB9D58EDC7031D94636CA551860C980B7691
+8BA3B1F631B039F174D66070AEFDC2323A0F3177B83C5CC1256C11A360B37B8F
+2E8A8D3DE40F801C8DFB17DD6366F06D0EA484A6C3759FBEC4E50483C4CC891E
+7DCB62D5D49AAD71F1B08D25792E2E4AE8B793D96FA696EFE5487E1B4B0F1786
+74F5FCA61CE0BA7A334C98034D14A4F33F3C5DC12EA412714E5FE2238EB3D7E8
+A7C162D594A595043FF9D544A11052B643420D397043D9D34947190E4D59A0C6
+890E20E9BC1A1AC75991E09740FDE1C280F87495A4F686EBD2CB81F76464319B
+3AB3EA0AC9E4542764153B543907CD78CE2663F892B98124D10113C4EA657AFC
+85BBE84A8E58FBA341FF1910399DAA8CD45A817DCEBAFB0BA9A53C60C0E9CE13
+4C28C7390443707855BB63AC73167DA9622DA189896BD9054151597D9E30A6DC
+E1862D1FCC69CB524F5007757B2662CC3443DE55FB2004BE2BD9D173ADFB35EF
+AAF1AF8B219EDFC86BBC120DD12F3C7AE1B44119753A4BF1865EBCBBF473B315
+DFA2EEDDC03698E390FD98715CE23BEC0BE84F006C17CD12207DB26F41F07C6F
+295AD370441619BC424AA3FB9B9034010D092DC59BCA7093EB4FE13F2555A97B
+CAD31850B5666A4A69544D6B9425626E5DACC81B42CFF1B504F76D922E7A2995
+6A7DE55771F4EA427FFCE7E40563D9A882116945ADA7FF481E213E841BF1E02C
+91C149EB291F9F2F0B4AF359458E506D20F2637BE51D59C238BD0C35617931F6
+3D67F6FA6A0CF85F876862F4812B199C8E8B803784C883998233A68ECBFB751C
+8278A1BAE595AA5F5F5E8A1F7AEC49EBAF71F0D1CD7FE3EF129D61A2922B820E
+C9DC3DF8956F7B1F567D82B2B78C99AEEBE7E84F1A676B2D221976631B191C97
+48A9E854459B3232D374C92C0C06EB81DA059F7BAA824E952FE48F5ECF3259BC
+546382B94E85DD82218D504DCFA8D6654101C80A8A967C0598CDDC51EB230D68
+5BB881D56F270E8C77310CB7B8FEE575907ADED10474DC8983AF97BD2DDA27D0
+3DB2656B65BD6DFCD58AEDC2ADEB3C09F7CEEA263E928C10EFD2F46AE8024CFA
+BF1940AE249ED997A5782553016CC3BD6C99F4D3C52A56AEA144A183959B5254
+CA95A5B3A8CD92074A5079ABDA1110C35AFB0B664D81C8E44311A91C1D297017
+433E994DEF6ACC3F8B270FBAED9339371B578F6B17D5CCCB1592BDF4710BF914
+D18897DD85661EFE0D927133B478294891A6631D4789412AAC9D5FFC7A36C9C8
+EA53EE293D49641C2E7CE61C67D472EB63BF759CC84B036E4BE78945AF204D60
+B3F319CED357965B045E8AA48A2228CD358B6F839013B7CEEB6A144596FEA93B
+E4E1A481DA268E62367B1221A4CC6A567F21112DC7F25A1DC406372A7672B574
+5A0AAA12F85D548DC2323C57219356CD6AFD36233F6B9511C5FE2A44C18DAC44
+7077D0C9D07774642CBB01A1CDBEAD9FDD50FF08C4F4F9F2F6D2B87AF552C030
+D669C39A2EB31DBF7B034F1133D32F6465C921CBE53FBDFCA4E27C6BC2BE83CF
+6852C3847226B5ACBE6D40E29B7CB7F4FEE6FC73B66AE8FCC71CEFBC384D4A71
+0EE4EBC5FCE4FDE5D17178CA1DB7E4BC937B0E29D336B1EF65B86A95F2F06DC5
+9068D506214C6EA0F99788FD341BE8EC78297F2AEC498D20DDF98CA0ACF5FC99
+54F5D0CB096CEF438E1F852C39A8FC9B4FBBDA3C6A950FB97FACE6B6764E8A5D
+ABD850403ECA81C84D9D817B5C3A46C3821009B5C85BEBD689FEB07CE7C933BD
+984E373459C48B8233296B0A17E7DD2A0E2115E5A13D9EFE68980BEAFE4625F3
+D60C662EA7AC0EA74D38DEE3B814680D72607D6067FEE02E1DCCCE0F159FDF0B
+E7EA51139107B8078E5608022803910D1CBBBE15F1C31676397AEDD2248AAA36
+A56F77B3092C8282CE634513CBB2989BD35D0D707FB2375FCC3C4DE1310EF43F
+7220B6D09DF49E01E985148BAF92428F513FAB0CA59FDAC2CB646C1B9E0113A1
+C012B4CB77E2F21833144FC5C1C8F0EA19790A83E546E45563DFDD073143933B
+6EDA7B0E7DDDF97B7EE35B8DE3C7686A50DD234E672238D9FC904C186BF7E4F6
+3EFE78DF73F083A6CEC9780B534181D875F243EC24BD2F0A59DC718621B30DD9
+A38634D3737C6B91C6B37B207F35238DA0E9C2BD6D8E28FA121E5B27FE887ADA
+99F20A5CE53B7F6AF6A6A194E1E7CD64861A604824C5
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 73 /I put
+dup 86 /V put
+dup 97 /a put
+dup 99 /c put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
+C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
+F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
+0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
+BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
+9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
+1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
+D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
+CBBD534323A8D661D56AA5DC45375FF2D5EC43DE7FEB8ADC4AD36D3453FB885D
+271155DE7822E184C986364E622AD60BBDC4040F752D5A20DDAF9BB052D77A0A
+20A0CA5CCE3D473B5D4F47A26ED4BF47E03B1D8EA8ACD99149A2695E749853F2
+E4EDDBCCFE6C126005EAEC0E17179D5492DDF90A09277DEEB2989CB23E0BC382
+BC34FE483BAF19ADFB00503B8401A16F341BF3F0F3B3373C1CD1E373A3E609AD
+8C74AD83D47B76ED9135C82DB67E64B1E63FD1463D0104766D213F1CD11DB5E7
+AC24905E08564369EC3F7F223FD11120811298E4AA95B0AF1C9C74E3F5E31211
+EEC583D68C76F62DA3A565F27A6EEE1C6ED18279EFB73CBD129C32062DAEB3B9
+661952C545BFC0820FB032ADFAC5925540E6EDB90E4EE8EA52B3978DF9958BC5
+AEF136E20544122F364254CFC8372E3F52749C0939D3D86216D0D97533974338
+AF7B7350ECF4E7B670D2315A3F0AE7524FE83FDEB8C591BBEB9FF37F8B2D9144
+827E647902446D748E65623251BE2A13557DF2D3958229FD34A9195C756A18A1
+8524FEE768AFB6314B0CCD8A71393E43F7A3D3FFDCA19DA18292236D3700246F
+333030C5E575DAF015A4482E55AB0CF3CE0C54EF09CC34EC3BE22D4D6707C678
+FE1A3CEE4C229CD72CB99DC089035FD9B1C16D37A0D9F82DE3824FDB9628F96B
+6278831C4D5232F029FE59C047F3DBC53E7CF3871FB34B93B4DC2FD71D3BBFB8
+075BA1F413DF4FB07C6ADAC2E821B52F47E715CD9784AF4E6E8E7DE5E1383601
+A24400F30CC56DBEA09E59B8ECE565FCB78504BAEDF3D85CD3C819FDC76BC497
+E32A285924978D49EFE856077B38E90DE735F2E94F278A963D75164728E378CA
+5F9D67295FD42CDE43FA7AF1CD490E59CE9FAC7554303D0C8F22F488A981A87A
+59AEA2D77F8485F19296BE39045D2A4C544A9ED25E9524AF015CBD141E317B8E
+0635A4A015652849EB443F97A65CBBA3F3F82C3782591A63849331DC6EB70A42
+49ED3B4A3CF1516A15CBD99DD097BCAF9FA286DCD98598CE7FB41463D887448A
+3715359AB96ACCABFC416936908F892A68A6510AD6EE1124F698E0616B1A37C7
+653138EBB410CE1C24D1F43426FEA8D4DF27C542D6A706C0024D9EC93F77935C
+88A376992D3BD751F08209F8D1343DE98E48038041A9C8A5F3FC43367949401C
+AFEDB9B80CB7B266C90DEB92515AF5E7FE4317B68E3CC5A3C075D84CE3A85825
+80FFC59180D4D4F4308068896636B886BE83FC02457EF8D6DAF0CCCEF2489732
+77F774A0393658CE96B9414E1732180E6219A59B3066744738F31EA3FAB6FD9E
+09A0840A07BCC8CC511BAEC8AEBFA61E1BB0A75599A9813390929F6924228837
+79642B00C4B6F2FF005099FAD4590C03AAED28503223301B179BC1F2E37C49E4
+FA26D8C5740F439CE6F2C38CE13806B8E3C50785BC6E56F6136049E440DB4D7C
+E3F21FD49B2EA28EA69B6DBF783F5475728E0333D2EF88598588095225738744
+77FF0B5CC8DFEEB8B407025A487DC30300CD62DCE541F022D8D07F7D184C0773
+99D0CFA04A76F9A081AE6870D071119F37CDF621F6F4184C2DB97EC3581BA284
+7140B2190C1F0C2241CAD7A7223C6EAA7E46173B899993CCB196A9646766A793
+2DD1A66F309B97D7EA2C05D9643D5D35F0E8AFDF35BB5F675AEEC1C16727E766
+BED413803046D285A7EF23D1ADC9F3B45B4AF1909C394917D19D7B7D4DD98F1E
+7140587C22575DE54CC744749DF46C5155B6114287F989F19D85505CECA8E6CB
+78D7FFF60419BB9A79620EF40A94FB00F24C4B839C025AFC1C442B44A37AE8B4
+ABD884B53400C24102A9D866C29B5F340194085254B67587EBF1AEA02C57B511
+73809B3611A6C359EEAAE0E9C20F2AB9D72B29000C030BA6FC6DD40A59634EF0
+C89BCD4097D093A7814A8A66D972EFEBB72FAE77F404ED35D6BE83DC7B97E55A
+D971B267
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (haydn.dvi)
+@start /Fa 141[55 2[67 2[37 4[67 1[61 35[102 65[{}6 119.552
+/CMBX12 rf /Fb 153[33 102[{}1 83.022 /CMBXTI10 rf /Fc
+134[73 10[76 9[76 2[67 22[71 1[108 1[87 23[38 46[{}8
+119.552 /CMBX10 rf /Fd 138[110 77 1[82 1[110 99 110 4[55
+1[99 1[91 3[96 13[110 1[149 2[155 22[99 99 3[99 3[55
+1[55 44[{}18 172.188 /CMBX10 rf /Fe 54[133 66 50[133
+66 15[266 48[66 7[106 1[106 1[106 7[0 0 7[40 1[40 1[40
+9[0 14[0 0 15[0 0 6[0{}20 132.835 /TeXMUSIX16-Regular
+rf /Ff 144[42 46 1[23 2[23 3[37 1[37 1[42 10[62 12[30
+73[{}9 83.022 /CMR10 rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -40 1361 3678 4 v -40 1395 V -40
+1428 V -40 1461 V -40 1494 V -40 1029 V -40 1063 V -40
+1096 V -40 1129 V -40 1162 V -40 697 V -40 730 V -40
+764 V -40 797 V -40 830 V -40 365 V -40 398 V -40 432
+V -40 465 V -40 498 V -40 1494 4 1131 v -457 1455 a Ff(Violoncello)-353
+1123 y(Viola)-412 791 y(Violin)28 b(I)r(I)-396 459 y(Violin)g(I)-40
+1393 y Fe(I)-40 1094 y(K)-40 795 y(G)-40 463 y(G)70 1459
+y(2)70 1111 y(2)70 762 y(2)70 430 y(2)113 1426 y(S)113
+1094 y(S)113 762 y(S)113 430 y(S)436 -50 y Fd(String)65
+b(Quartet)g(op.)i(76,)f(No.2)2962 141 y Fc(F.J.)46 b(Ha)l(ydn)231
+1642 y Fb(f)248 1542 y Fe(\031)p 238 1527 60 4 v 286
+1542 4 191 v(\007)345 1443 y(\031)p 384 1426 4 75 v 346
+1426 a(\007)443 1443 y(\031)p 481 1426 V -17 x(\007)540
+1443 y(\031)p 286 1359 295 16 v 579 1426 4 75 v 541 1426
+a(\007)638 1493 y(?)735 1443 y(\031)p 774 1426 4 108
+v 736 1426 a(\007)833 1443 y(\031)p 871 1426 V -17 x(\007)930
+1443 y(\031)p 774 1326 197 16 v 969 1426 4 108 v 931
+1426 a(\007)231 1260 y Fb(f)248 1161 y Fe(\031)p 286
+1161 V(\007)97 b(\031)p 384 1161 V 1 w(\007)g(\031)p
+481 1161 V(\007)g(\031)p 286 1061 295 16 v 579 1161 4
+108 v 1 w(\007)g(?)g(\031)p 774 1161 V 1 w(\007)g(\031)p
+871 1161 V(\007)g(\031)p 774 1061 197 16 v 969 1161 4
+108 v 1 w(\007)248 828 y(?)329 994 y Fb(f)345 895 y Fe(\031)p
+335 863 60 4 v 335 896 V 383 894 4 125 v -1 x(\007)h(\031)p
+433 863 60 4 v 433 896 V 481 894 4 125 v(\007)f(\031)p
+384 778 197 16 v 530 863 60 4 v 530 896 V 578 894 4 125
+v(\007)638 828 y(?)735 894 y(\031)p 725 863 60 4 v 725
+896 V 773 894 4 125 v(\007)h(\031)p 823 863 60 4 v 823
+896 V 871 894 4 125 v(\007)f(\031)p 774 778 197 16 v
+921 863 60 4 v 921 896 V 969 894 4 125 v 1 w(\007)-1
+231 y Fa(Allegro)231 579 y Fb(f)p 286 447 4 117 v 248
+447 a Fe(\010)p 676 513 V 638 513 a(\010)p 1028 1494
+4 1131 v 1080 1493 a(?)1178 1443 y(\031)p 1216 1426 4
+108 v -17 x(\007)1275 1443 y(\031)p 1313 1426 V -17 x(\007)1373
+1443 y(\031)p 1216 1326 197 16 v 1411 1426 4 108 v -17
+x(\007)1470 1493 y(?)1568 1410 y(\030)p 1568 1517 V 1
+w(\007)f(\030)p 1665 1517 V 1 w(\007)h(\030)p 1568 1525
+199 16 v 1763 1517 4 108 v 1 w(\007)1080 1161 y(?)1178
+1144 y(\031)p 1216 1144 V(\007)g(\031)p 1313 1144 V(\007)h(\031)p
+1216 1044 197 16 v 1411 1144 4 108 v(\007)1470 1161 y(?)1568
+1144 y(\031)p 1606 1144 V(\007)f(\031)p 1703 1144 V(\007)h(\031)p
+1606 1044 197 16 v 1801 1144 4 108 v(\007)1080 828 y(?)1178
+878 y(\031)p 1168 863 60 4 v 1216 878 4 108 v(\007)f(\031)p
+1265 863 60 4 v 1313 878 4 108 v(\007)h(\031)p 1216 778
+197 16 v 1363 863 60 4 v 1411 878 4 108 v(\007)1470 828
+y(?)1568 862 y(\031)-40 b(4)p 1558 863 60 4 v 1606 861
+4 108 v -1 x(\007)97 b(\031)p 1655 863 60 4 v 1703 861
+4 108 v(\007)h(\031)p 1606 762 197 16 v 1753 863 60 4
+v 1801 861 4 108 v(\007)p 1118 496 4 117 v 1080 496 a(\010)p
+1460 531 60 4 v 1460 564 V 1508 562 4 133 v 1470 562
+a(\010)p 1860 1494 4 1131 v 1936 1366 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (15.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 1936 1366 a 1912
+1517 4 125 v 1913 1393 a Fe(\007)p 2010 1517 4 108 v
+2011 1410 a(\007)p 2107 1517 4 125 v 2108 1393 a(\007)2225
+1443 y
+ slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2225 1443 a 2225 1443 a
+ end
+ 2225 1443 a -60 w Fe(4)p
+1912 1525 296 16 v 2205 1517 4 75 v 1 w(\007)p 2341 1426
+4 117 v 2303 1426 a(\007)p 2536 1476 V 2498 1476 a(\007)1955
+1149 y
+ slur@Dict begin /S-1alt (60.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(1.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
+ 1955 1149 a 1950 1127 4 117 v 1912 1127 a Fe(\010)2307
+1161 y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+ 2307 1161 a 2341 1127 4 117 v 2303 1127 a Fe(\007)2303
+1111 y(\000)1936 872 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1936 872 a 1950 845 4 108 v 1912
+845 a Fe(\007)1970 862 y(4)p 2000 863 60 4 v 2048 861
+4 125 v -1 x(\007)p 2145 845 4 108 v 2107 845 a(\007)2225
+828 y
+ slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2225 828 a 2225 828 a
+ end
+ 2225 828 a 1950 745 295 16
+v 2243 828 4 92 v -20 w Fe(\007)2326 855 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 2326 855 a
+2341 828 4 108 v 2303 828 a Fe(\007)2342 720 y(\310)2373
+724 y(\310)p 2438 845 4 115 v 2400 845 a(\007)2517 862
+y
+ slur@Dict begin (2.0pt) GD S0hgt (-4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2517 862 a 2517 862 a
+ end
+ 2517 862 a 2487 863 60 4 v 2535
+861 4 158 v 2497 861 a Fe(\007)1936 540 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (140.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1936 540 a
+1950 513 4 108 v 1912 513 a Fe(\007)1970 530 y(4)p 2000
+531 60 4 v 2048 529 4 125 v -1 x(\007)p 2145 513 4 108
+v 2107 513 a(\007)2225 496 y
+ slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2225 496 a 2225 496 a
+ end
+ 2225
+496 a 1950 413 295 16 v 2243 496 4 92 v -20 w Fe(\007)2326
+489 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (140.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 2326 489 a 2341 463 4 92 v 2303 463 a Fe(\007)p
+2438 480 4 113 v 2400 480 a(\007)2517 496 y
+ slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2517 496
+a 2517 496 a
+ end
+ 2517 496 a 2536 496 4 135 v -19 w Fe(\007)2555
+1210 y(4)p 2585 1195 60 4 v 2633 1210 4 117 v 2634 1202
+a(\()2595 1210 y(\007)2618 805 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (2.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (100.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 2618 805 a 2633 779
+4 95 v 2595 779 a Fe(\007)2684 795 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2684 795 a 2684
+795 a
+ end
+ 2684 795 a 2634 709 a Fe(\224)2638 708 y(\224)2536
+704 y(\225)2571 697 y(\225)p 2702 795 4 125 v 2664 795
+a(\007)2341 372 y(\204)2369 370 y(\204)p 2633 447 4 90
+v 2595 447 a(\007)p 2737 1494 4 1131 v 2812 1486 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 2812
+1486 a 2827 1459 4 117 v 2789 1459 a Fe(\010)2812 1220
+y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-7.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (60.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 0 N end
+ 2812 1220 a 2779 1195 60 4 v 2827 1193 4 125 v 2789
+1193 a Fe(\007)p 2964 1177 4 108 v 2926 1177 a(\007)p
+3102 1161 4 92 v 3064 1161 a(\007)3221 1194 y
+ slur@Dict begin (2.0pt) GD S1hgt (-4.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3221 1194
+a 3221 1194 a
+ end
+ 3221 1194 a 2827 1077 415 16 v 3191 1195
+60 4 v 3239 1193 4 125 v 3201 1193 a Fe(\007)2812 838
+y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (-1.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (100.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 0 N end
+ 2812 838 a 2827 812 4 133 v 2789 812 a Fe(\007)p 2896
+795 4 117 v 2858 795 a(\007)p 2964 812 4 133 v 2926 812
+a(\007)3015 828 y
+ slur@Dict begin (2.0pt) GD S1hgt (0.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3015 828 a 3015 828 a
+ end
+ 3015 828 a 2827
+712 208 16 v 2827 687 V 3033 828 4 150 v -20 w Fe(\007)3064
+845 y(\031)p 3102 845 4 108 v(\007)137 b(\031)p 3103
+745 140 16 v 3239 845 4 108 v(\007)2789 397 y(\007)p
+2827 513 4 220 v 116 x(\007)3087 440 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (6.79999pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 -1 M M A N /S1lift 0 N /S1alt (140.0pt) GDAR N /S1dir
+-1 N /S1dash 0 N /S1adj 0 N end
+ 3087 440 a 3024
+413 a Fe(6)p 3102 413 4 117 v(\007)p 3171 430 4 126 v
+3133 430 a(\007)p 3239 447 4 136 v 3201 447 a(\007)3310
+463 y
+ slur@Dict begin (2.0pt) GD S1hgt (4.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3310 463 a 3310 463 a
+ end
+ 3310 463 a -60 w Fe(4)3102
+322 y(\311)3197 331 y(\311)3102 297 y(\311)3197 307 y(\311)p
+3328 463 4 144 v 3290 463 a(\007)3379 1493 y
+ slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3379 1493
+a 3379 1493 a
+ end
+ 3379 1493 a 3359 1476 a Fe(\031)p 3397
+1476 4 117 v(\007)3497 1493 y(>)3359 1177 y(\031)p 3397
+1177 V(\007)3497 1161 y(>)3319 862 y(4)p 3349 863 60
+4 v 3397 861 4 117 v -1 x(\007)3497 828 y(>)3359 447
+y(\031)p 3397 447 V(\007)3497 496 y(>)p 3635 1494 4 1131
+v 3638 1659 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 1659 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/inlinesample.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/inlinesample.eps
index 2662f8781db..e444debc7cd 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/inlinesample.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/inlinesample.eps
@@ -1,383 +1,383 @@
-%% LaTeX2e file `eps/inlinesample.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: inlinesample.dvi
-%%CreationDate: Wed Jan 21 13:57:45 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 686 256 782
-%%DocumentFonts: TeXMUSIX16-Regular CMBX8 CMTI10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE inlinesample.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1357
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 51 /three put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
-98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
-2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
-CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
-F78C2BEB83AB223A89D9E231D1BB561CE1F4D331204DB837BB19AC9CFD17CE2D
-780F24FB04647172DC1A33202B151BCBC19FEDDA661EC85ABA559F99955C1AF9
-7C28F886515381B3AC725E6689B6B3FC6CCC01A9A5E6130CF4627D2D278FFE59
-7E96C90E2EECBBA9EEF8A03B0F73CD212E68CD5C25410D0C549707D5CA26A2AF
-1594E8738A5399F53772F7CBEDF1BAB4929F4D5E4298FB40D4C7889D26E9BA7D
-01324DE2488D560B63BFFEB739015040D92698BEF31F3678712C2BC044B5243D
-8ECE96439EA190B6F1F0F10859FE7B157363EF372CD86E081F0169ADAEB664BB
-1D42ADAA27EDC9EF3428C31CE8B2B4F59F058A6EB76C838A0EC1FAEEC0E52309
-36533738402D68ABE803D41648969B41A1449A749F1DE9D2D95AD2ECE5545B92
-BC6DADB0E9EA3FDEFC1C481B730599E23C16F52DC9A9B82311D83869EFE1CACA
-FD6C06CB792E030808E9F78C7A87E52E98C99F93DFB1FD41007F346888EAE23C
-143B4CF0701A3A7DF1BB87FCA33099648D0170F52C0E9BCCE5DB
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX8
-%!PS-AdobeFont-1.1: CMBX8 1.0
-%%CreationDate: 1991 Aug 20 16:36:07
-% 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 (CMBX8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX8 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 50 /two put
-readonly def
-/FontBBox{-59 -250 1235 750}readonly def
-/UniqueID 5000766 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
-7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
-EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
-7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
-AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
-E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
-4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
-5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
-611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
-D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
-EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
-35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
-ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
-7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
-C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
-B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
-53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
-E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
-3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
-9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C156CEFB
-BEC5F726D4263EBD641C785872BFA574F0B4E88A5C710AEE88252CE733503B29
-837817D91B1EFDDB957CAA788C50C72CE6E1F26879C242305682B9CE76ABD8DD
-89B3F2CA9FECCEFA9A699A7912E03259430F2481AD9A16DF066412EEC1CC0BA7
-31279D99BAB2ABB8D8C7CE6B0B1EE757CE62471A920906076F352F99C306BD79
-9114AA300A51C9A926597691A9E7CD33ACE86127A5609ABA87087D42CC2E4FFE
-BC2075F6D216BEA427287098F1EAC1A0582EF6684519DC1D31625B0931E0BA1F
-BD9D7BB6F9877AFA10E38AA8E4ED0F003857D503C720AAAEE92F3580876EFD3C
-C9A56D15C31DA95644341CD36D2B0B7103C98440D1B496BA837ECAE7DD035B3F
-839828B9D2F34982953109E183170C592EB2483D28D1333DD8F0709C4C2BF975
-B63D82C9079D78F8265976926A2F18B2E9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 8 /breve put
-dup 33 /exclam put
-dup 35 /numbersign put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C842E525D682369F691C
-D1E265DB2F52B5A8AB51B3DC798FC31B0F09A16835D7F80D19C5E68424D9D609
-073D1021B433C48622300EED23559A1265852B3426359A787A132DBF67181DAE
-F27440FBE72EBCE24D65612CB50CD3F6D33A3F19ACE9A1B376CE830CA26FB06C
-BB27085F3E9FAA6658F0B3F6EF57D828B0819B68B957E82CFD01A5BA37A2002F
-3E9D68548795C9E4EE0BC1AFE80E37E1135433C63AD950AA0517B33EF64C936D
-2576506A8506DCC8298E80C7BAC59D76641944ED9F53700B149FD532CD2887B9
-90712368094707B22578E7A15AAE931639378E800A1B8791AAF293DE0A0FF4CF
-DD475B53BF6999FDCBBC23B25AB8A47B0E1D168383347A15933978F3BA7F1638
-AAC52829E110E3A0F788AFB5EA356925AC4E8A7111D8784327DDA17C2E85EBE6
-341901BF08B46582FE27C107CAA08552B3339591EDF187D6EC0CCCCAC1F2352A
-444D444EA1E228262544F8CDECB5F924F9E66BE20D02610F16F2F0E7820385D5
-A677D9025C07C44FB5B3F33F1D9CEDDED6CAA63DAF5B914D75E27CC245BF18D9
-A38AA9F253524FEDD7BAE01C12A45DC6A679FDB1CEC1B8BB0B37EDBAA69B25DD
-390A84F2F4AD2CB0D3A1A1DF57B67C7D43496068B475427EA664806867A2F6E1
-41990EAAD87F9672D17B9638ED2231E202527886DF82DE0232FB8D8D16CAE767
-96C4A2953E9394FA0FC80F0EFB7E581E3508BAE1B699501EF4CCC9894A74492F
-379D369A14A925F7C48B918DE4E807E3E8FCC5E566C01654448F8CF3A12B79BF
-FE3A4CB2B5867D6222FE306EE9CE7069BAA4E279C940EDB4AEF09FD936D72CCA
-FE242E09D8260A6963D90D022D14FF7AEC188A07308961FB9AC6B2EC4113F787
-9B29403A942567DB5CBE4A660A70E84820D2AB94B0FED627265F6823DAF9EAFE
-9B86BFDB8301D8FDF3CE4907B0B4B73C9CBB0FB18FA3037C45B28579EA75A1E3
-0ED28943AAF6B21EAE221D6447BA3F03EE95186055B556A236F9BF24F8C8FA7B
-A186CB7443CB6BE701AC30923E3AC338D4CE36ED481AA76591BA1EB23CCD6321
-E7B35A63CDC08F1713CE16777DF6EF22C1EC2AFB7DC3A1A11E59A41C6C7E5925
-C0F898B26D1CEE50D6FF7C746288686935A80DDE75199BEBFFC8FDEE6EEFB6D9
-15E93652212610121BD4434B9EF724EE8129F071370D879EE710D5E6CBE05ADD
-2307BB78777916EC0CB1022985D4BF384A974512EB403EC0D60325FFAFCDDF78
-C24E111752AED1352A065271C4DF7B57CA54725A92AEB557B66F96AD062A6213
-20B0A0CB06A8B2E38A2DCAA5B5793832102AF2CDE72E10B6454C3DF9C4E93CAA
-91723ADFC33BD8093CCD8BA3FD35DEBA8078252462AEE107D816A84CAAD09E21
-FCE725B3F7C96BE214F528B36262BE10F30C412FF78BE5913A426341EC95F0A8
-01E7D5111B4499997226D893058DD136C42369F6A42B68E46CF334F22D3E8CD5
-74C5157BE5D0A4E873B0E2E650B260876E725C0563EC1DA2E22020DC3F6A9B07
-7055D2D034A4FA10FF695CA2B1AA7EDF47063A03AAFD61DEE7FB7ACA977038F4
-29E1D3DDD099C92B273611B7981F226AB7318D603D3C975701CD8FEC2720800E
-F857A1CE2921DE94A7EA5AC5B87D72646FC51E7710D0A9059EF8C69477C4D853
-3ED5F401A6394A8B35E8A81ABD6B70A97122C3B6C1163FBA61380C8CFD5FDD76
-D71FE7541EC23E4006F1141A9E99AB7AD1E91E08DE54A17C0155264AEBAB9CF4
-E9BC8EEE9647181E4BC8D94467B3239CDBB077BF36300E6C20F805E59AA10779
-3863F521CF0C4FC6E1E1F8A7F7D67C2BD6023D3F28CFE5BB0F177A08B3098D58
-7FF96E47FAE9A361A96BC52AAF74449E0CE88815D0682CD5644C0D4A1A74BB90
-600903A0CF4458BD384F1CCB5DEFD92BD95210FAEB01FB28A1B84A68A0C8DFE2
-E5BBF6582493B76EEDCDD45CD888E8719CBB7DDBB1B8C67298029631ACD35F51
-B07EB04B869EF9472497E5E98186984708DAF6370365EE3DE3BAC13F7B7A9054
-839478511722F7E62C21FD955DD35364220A9B2796EE4BAECAF27A79D704A298
-1F18FF3C390A088352911F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (inlinesample.dvi)
-@start /Fa 204[42 51[{}1 83.022 /CMTI10 rf /Fb 205[41
-50[{}1 66.4176 /CMBX8 rf /Fc 184[106 35[0 1[0 24[0 8[{}4
-132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 1885 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fc(G)p 146 63 4 117
-v 366 w(\010)p 1517 98 4 135 v -364 444 1885 4 v -364
-477 V -364 510 V -364 543 V -364 577 V -291 274 98 4
-v -291 366 4 93 v -263 341 a Fb(2)p -197 366 V -291 369
-98 4 v -364 542 a Fc(G)-68 691 y(#)597 b(!)p -30 525
-4 117 v -68 525 a(\010)p 635 577 4 135 v 636 409 a Fa(3)p
-814 608 4 117 v 815 492 a Fc(\010)p 1517 577 4 135 v
-eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/inlinesample.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: inlinesample.dvi
+%%CreationDate: Wed Jan 21 13:57:45 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 686 256 782
+%%DocumentFonts: TeXMUSIX16-Regular CMBX8 CMTI10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE inlinesample.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1357
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 51 /three put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
+98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
+2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
+CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
+F78C2BEB83AB223A89D9E231D1BB561CE1F4D331204DB837BB19AC9CFD17CE2D
+780F24FB04647172DC1A33202B151BCBC19FEDDA661EC85ABA559F99955C1AF9
+7C28F886515381B3AC725E6689B6B3FC6CCC01A9A5E6130CF4627D2D278FFE59
+7E96C90E2EECBBA9EEF8A03B0F73CD212E68CD5C25410D0C549707D5CA26A2AF
+1594E8738A5399F53772F7CBEDF1BAB4929F4D5E4298FB40D4C7889D26E9BA7D
+01324DE2488D560B63BFFEB739015040D92698BEF31F3678712C2BC044B5243D
+8ECE96439EA190B6F1F0F10859FE7B157363EF372CD86E081F0169ADAEB664BB
+1D42ADAA27EDC9EF3428C31CE8B2B4F59F058A6EB76C838A0EC1FAEEC0E52309
+36533738402D68ABE803D41648969B41A1449A749F1DE9D2D95AD2ECE5545B92
+BC6DADB0E9EA3FDEFC1C481B730599E23C16F52DC9A9B82311D83869EFE1CACA
+FD6C06CB792E030808E9F78C7A87E52E98C99F93DFB1FD41007F346888EAE23C
+143B4CF0701A3A7DF1BB87FCA33099648D0170F52C0E9BCCE5DB
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX8
+%!PS-AdobeFont-1.1: CMBX8 1.0
+%%CreationDate: 1991 Aug 20 16:36:07
+% 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 (CMBX8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX8 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 50 /two put
+readonly def
+/FontBBox{-59 -250 1235 750}readonly def
+/UniqueID 5000766 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
+7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
+EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
+7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
+AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
+E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
+4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
+5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
+611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
+D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
+EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
+35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
+ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
+7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
+C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
+B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
+53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
+E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
+3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
+9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C156CEFB
+BEC5F726D4263EBD641C785872BFA574F0B4E88A5C710AEE88252CE733503B29
+837817D91B1EFDDB957CAA788C50C72CE6E1F26879C242305682B9CE76ABD8DD
+89B3F2CA9FECCEFA9A699A7912E03259430F2481AD9A16DF066412EEC1CC0BA7
+31279D99BAB2ABB8D8C7CE6B0B1EE757CE62471A920906076F352F99C306BD79
+9114AA300A51C9A926597691A9E7CD33ACE86127A5609ABA87087D42CC2E4FFE
+BC2075F6D216BEA427287098F1EAC1A0582EF6684519DC1D31625B0931E0BA1F
+BD9D7BB6F9877AFA10E38AA8E4ED0F003857D503C720AAAEE92F3580876EFD3C
+C9A56D15C31DA95644341CD36D2B0B7103C98440D1B496BA837ECAE7DD035B3F
+839828B9D2F34982953109E183170C592EB2483D28D1333DD8F0709C4C2BF975
+B63D82C9079D78F8265976926A2F18B2E9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 8 /breve put
+dup 33 /exclam put
+dup 35 /numbersign put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C842E525D682369F691C
+D1E265DB2F52B5A8AB51B3DC798FC31B0F09A16835D7F80D19C5E68424D9D609
+073D1021B433C48622300EED23559A1265852B3426359A787A132DBF67181DAE
+F27440FBE72EBCE24D65612CB50CD3F6D33A3F19ACE9A1B376CE830CA26FB06C
+BB27085F3E9FAA6658F0B3F6EF57D828B0819B68B957E82CFD01A5BA37A2002F
+3E9D68548795C9E4EE0BC1AFE80E37E1135433C63AD950AA0517B33EF64C936D
+2576506A8506DCC8298E80C7BAC59D76641944ED9F53700B149FD532CD2887B9
+90712368094707B22578E7A15AAE931639378E800A1B8791AAF293DE0A0FF4CF
+DD475B53BF6999FDCBBC23B25AB8A47B0E1D168383347A15933978F3BA7F1638
+AAC52829E110E3A0F788AFB5EA356925AC4E8A7111D8784327DDA17C2E85EBE6
+341901BF08B46582FE27C107CAA08552B3339591EDF187D6EC0CCCCAC1F2352A
+444D444EA1E228262544F8CDECB5F924F9E66BE20D02610F16F2F0E7820385D5
+A677D9025C07C44FB5B3F33F1D9CEDDED6CAA63DAF5B914D75E27CC245BF18D9
+A38AA9F253524FEDD7BAE01C12A45DC6A679FDB1CEC1B8BB0B37EDBAA69B25DD
+390A84F2F4AD2CB0D3A1A1DF57B67C7D43496068B475427EA664806867A2F6E1
+41990EAAD87F9672D17B9638ED2231E202527886DF82DE0232FB8D8D16CAE767
+96C4A2953E9394FA0FC80F0EFB7E581E3508BAE1B699501EF4CCC9894A74492F
+379D369A14A925F7C48B918DE4E807E3E8FCC5E566C01654448F8CF3A12B79BF
+FE3A4CB2B5867D6222FE306EE9CE7069BAA4E279C940EDB4AEF09FD936D72CCA
+FE242E09D8260A6963D90D022D14FF7AEC188A07308961FB9AC6B2EC4113F787
+9B29403A942567DB5CBE4A660A70E84820D2AB94B0FED627265F6823DAF9EAFE
+9B86BFDB8301D8FDF3CE4907B0B4B73C9CBB0FB18FA3037C45B28579EA75A1E3
+0ED28943AAF6B21EAE221D6447BA3F03EE95186055B556A236F9BF24F8C8FA7B
+A186CB7443CB6BE701AC30923E3AC338D4CE36ED481AA76591BA1EB23CCD6321
+E7B35A63CDC08F1713CE16777DF6EF22C1EC2AFB7DC3A1A11E59A41C6C7E5925
+C0F898B26D1CEE50D6FF7C746288686935A80DDE75199BEBFFC8FDEE6EEFB6D9
+15E93652212610121BD4434B9EF724EE8129F071370D879EE710D5E6CBE05ADD
+2307BB78777916EC0CB1022985D4BF384A974512EB403EC0D60325FFAFCDDF78
+C24E111752AED1352A065271C4DF7B57CA54725A92AEB557B66F96AD062A6213
+20B0A0CB06A8B2E38A2DCAA5B5793832102AF2CDE72E10B6454C3DF9C4E93CAA
+91723ADFC33BD8093CCD8BA3FD35DEBA8078252462AEE107D816A84CAAD09E21
+FCE725B3F7C96BE214F528B36262BE10F30C412FF78BE5913A426341EC95F0A8
+01E7D5111B4499997226D893058DD136C42369F6A42B68E46CF334F22D3E8CD5
+74C5157BE5D0A4E873B0E2E650B260876E725C0563EC1DA2E22020DC3F6A9B07
+7055D2D034A4FA10FF695CA2B1AA7EDF47063A03AAFD61DEE7FB7ACA977038F4
+29E1D3DDD099C92B273611B7981F226AB7318D603D3C975701CD8FEC2720800E
+F857A1CE2921DE94A7EA5AC5B87D72646FC51E7710D0A9059EF8C69477C4D853
+3ED5F401A6394A8B35E8A81ABD6B70A97122C3B6C1163FBA61380C8CFD5FDD76
+D71FE7541EC23E4006F1141A9E99AB7AD1E91E08DE54A17C0155264AEBAB9CF4
+E9BC8EEE9647181E4BC8D94467B3239CDBB077BF36300E6C20F805E59AA10779
+3863F521CF0C4FC6E1E1F8A7F7D67C2BD6023D3F28CFE5BB0F177A08B3098D58
+7FF96E47FAE9A361A96BC52AAF74449E0CE88815D0682CD5644C0D4A1A74BB90
+600903A0CF4458BD384F1CCB5DEFD92BD95210FAEB01FB28A1B84A68A0C8DFE2
+E5BBF6582493B76EEDCDD45CD888E8719CBB7DDBB1B8C67298029631ACD35F51
+B07EB04B869EF9472497E5E98186984708DAF6370365EE3DE3BAC13F7B7A9054
+839478511722F7E62C21FD955DD35364220A9B2796EE4BAECAF27A79D704A298
+1F18FF3C390A088352911F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (inlinesample.dvi)
+@start /Fa 204[42 51[{}1 83.022 /CMTI10 rf /Fb 205[41
+50[{}1 66.4176 /CMBX8 rf /Fc 184[106 35[0 1[0 24[0 8[{}4
+132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 1885 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fc(G)p 146 63 4 117
+v 366 w(\010)p 1517 98 4 135 v -364 444 1885 4 v -364
+477 V -364 510 V -364 543 V -364 577 V -291 274 98 4
+v -291 366 4 93 v -263 341 a Fb(2)p -197 366 V -291 369
+98 4 v -364 542 a Fc(G)-68 691 y(#)597 b(!)p -30 525
+4 117 v -68 525 a(\010)p 635 577 4 135 v 636 409 a Fa(3)p
+814 608 4 117 v 815 492 a Fc(\010)p 1517 577 4 135 v
+eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpbeam.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpbeam.eps
index c522bb73a97..b5a7123bb80 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpbeam.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpbeam.eps
@@ -1,724 +1,724 @@
-%% LaTeX2e file `eps/jumpbeam.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: jumpbeam.dvi
-%%CreationDate: Sun Sep 28 15:50:20 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 20 699 453 793
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE jumpbeam.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1550
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 45 /hyphen put
-dup 50 /two put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 82 /R put
-dup 133 /Ecaron put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
-C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
-4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
-12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
-86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
-88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
-62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
-71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
-4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
-63AFD4CB3CA38143731CE9D4F750BDCFCAF1E66E150C6A0F236DFFB66781B02E
-3E9EEB191992C0EB96B8FBC1EB6EF7778CD34B03041285A82179EFADADA50376
-2B587A6E48042DF6E32F5C197917A24A987B3B11315E8CD8B390DC5D4ABCABBD
-E209EA84CB75B2C5ED13C7C91961CB59EC649C858FCA81D342F1FFF0E4603C68
-F7676A333DE6FA0A7B22C2BAC0923D43B439B82C28C23BE4AF6BB39B7FF4515F
-6B49EA0C6A9E11C08A4E2961990BDDC899779B1E5714FA12EE05462F78898062
-F8CD972E714616E637C1D72AE095D4A9761F4DCF897C390F21C0D02E5E98BA87
-7C37111076E09F16BCF48F14A07174E3FC733021AB99BB5F77567759FE689DE3
-D82A9AF5FA2A937EA56C02888FEE5C4441C0775FBC731C4B340D4E450832C194
-2CE3E9EADB7B34EF098CA280602EC8F682E41C2641C178E6FE338412C20858C2
-E874322B56EB62F24F49D45C5353EE4E263C6022022A4BC61DD639EA42044A2C
-D8F0B55CA1D5318AD21A063B02D0E646156C50A6FC7C683CCA60FB4C38DAA74F
-9FD32F83D11CA97AC20A21453322F247BBB4B3EEF3712A73B6CE0F7C2B8DBA89
-4939563208D1E5DBEB5EC318333438FE89EB5C699529139DAD8507A6B96CADF7
-DE0679084292CAFFE48CF4FDBC3CEC833125DDFB4543CA49284B11ADF1E71F1E
-E4D4DA5CD0614FDF21D75B020D7F7EE25C5D4A5F7802C10E79E992DB8FE093C7
-01699C2DAF47B1C4BC7C5C4592FB86548E2F310760BDC1B6B063E6D3DB215DC3
-6E83FF1DA54F5386D61ED431CB8295D563563737E6F0D18112C1285155A24A0C
-3BB4F0FA9A4CCD97D8A67C8F194774CCD1DA85EDC98D856F96565DF4A010D8A3
-4475AB25531952A93EA2ADF617CC3362EE0FAAEB242F32E36FE5125592B59B34
-CD9CBC9E1229DE9D074ACE45759A866FF4E0967FCD844F812EE1BC673E984E59
-2ED574F730CBDA3E376222E9012BA43DD2A6C43836B77CDF5D2F18B1E9DBE03F
-DA1C90119AE0C42D6FCE9E0A917D7C70E70208D45901CE99479E7CBE6293032E
-2490522F7EE8AD4E554E8B4D5108BF8253B37E0E52C008A5A346166C3185A1EB
-EC87040FCA542C4CA2D6177E67BA5F109BA18F880F7CA3CDB5031CAE941ACB46
-F1A93812D472AF8D00BFFE3857D849B30EE0615B8B8006424B81279C32C9AFEB
-02B66F5A34FB9E35756A15AFDDCA4F0D064CDAE2C0E2222978BEF190A829D364
-1439B3689B8EF86DB0EA6E87D2121BB3969487024F814777C848A497B47808CE
-4FBF36F9E8CB8B6B7A193410D705E6774A87DEE8801CF1B468B8C913A43ACACB
-E22F786B37D7A59ABEB12676FEE82449AD24F5161683B52C20CF7246DB4B8E73
-165816BDEF7DFBA767CFD7370BAAED3B34BF97E9463FC6BA4D163ABE4F5DBBB7
-B441E6C3A9AE90454760D001363986645CAC3FF7EA4544EB9CF9FDB4BA9EF9A5
-9A92F8C7CD865CB6CB7CED7064AD9E20FD93984ED0E98A48434A1B5861F7DB50
-64C4E417AD0851C622762F245903F96A3F2CC5D7AD9C5DB4AC85FDFD4F7E53AE
-4A33F1F3FCE5668FACC0CE1EA84D09E4E1DB3961D469A712CEABAC926C1A6C3D
-A6A637BDFEB987F189A60FA8EB9F0A7E71CDA7EFD005AEFD1C47975F0CF5FE00
-48F68996A8742DE39485FAA0AF35F4977E2E40DD14CE6F78237FBF2348CB98FB
-2C2C925B89BDF22275B07D1FDA504F76F46C809EBAF5F6F9084C71598C412C9D
-A29BC65E640E20411128AE07E4C9AB862E87B97336ECC1382B3B9A519C3D9928
-6B62872FD8F96EB09D963FD92BBE4E0BF23F9A6308905522FD785AEA4AEC9010
-98EDA7E7C10D071249C7E9890A70AEFC79AB48FDE391D1541BF7273ABFF57A22
-D028F5B71B4B94713467E9C752DCCF2669F6826F24AEA775C4C52E6C67FF1AF9
-B6F56C6027E9AAA74A8DFA9C3572DD85699D632F36179D63BED8B30A39A5FB5C
-979E03B8B0ABA842F598BFB691BA20395D319103C5F7495902DD00202FCB88CC
-55B54270AA35C737F3DF938084E69E31EFCD37A7303C2E37EAE46E1AFDBE4BEE
-35341E5B2CF9779837DC32774FA0D91AA13BB87F0AB187BCB947EA17383CBF48
-BB1C4DE44B4A49C73A64901EDF75F0DE018FC8209BEF5AEAAF77B3B0E0F4A275
-4C184481D10FAFD830EBD98FFAAB
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 160 /abreve put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
-EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
-3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
-B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
-16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
-DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
-A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
-DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
-710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
-D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
-19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
-852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (jumpbeam.dvi)
-@start /Fa 122[531 50[66 8[106 1[106 7[0 0 11[40 4[0
-35[0 0 0 6[0{}12 132.835 /TeXMUSIX16-Regular rf /Fb 95[0
-160[{}1 166.044 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 245 a Fb(\240)p -364 380 3529
-4 v -364 413 V -364 446 V -364 479 V -364 513 V -364
--19 V -364 15 V -364 48 V -364 81 V -364 114 V -364 513
-4 534 v 166 x Fa(I)-364 79 y(G)-244 445 y(R)-244 46 y(R)-68
-511 y(>)-44 -113 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (27.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (48.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- -44 -113 a -77 -52 60 4 v -77 -85
-V -67 -87 a Fa(\007)p -67 146 4 233 v -66 29 a(\007)p
-188 513 4 534 v 272 546 60 4 v 272 579 V 320 577 4 274
-v 282 577 a(\007)p 453 546 60 4 v 501 544 4 250 v 463
-544 a(\007)p 681 461 4 176 v 643 461 a(\007)p 862 428
-4 152 v 824 428 a(\007)p 995 347 60 4 v 1043 345 4 78
-v 1005 345 a(\007)p 1224 428 4 170 v 1186 428 a(\007)p
-1404 461 4 212 v 1366 461 a(\007)1590 400 y
- slur@Dict begin /S-1alt (0.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(13.4pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
- 1590 400
-a 1585 378 4 138 v 1547 378 a Fa(\007)242 46 y(2\010)282
-63 y(\000)242 -70 y(2)p 272 -52 60 4 v 282 162 4 233
-v 1 w(\010\000)1386 -54 y
- slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1386 -54 a 1386 -54 a
- end
- 1386
--54 a 1366 63 a Fa(\007)p 1356 -52 60 4 v 1366 172 4
-227 v 1367 -54 a(\007)322 -4 y(\011)p 1728 513 4 534
-v 1814 511 a
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 1814 511 a 1821 428 a Fa(\010\000)p 1811
-347 60 4 v 1811 313 V -117 x(\010)1821 295 y(\000)p 1821
-544 4 233 v 1822 378 a(\010)1822 362 y(\000)p 1811 147
-60 4 v 1821 228 4 83 v -216 x(\007)p 2002 219 4 157 v
-2003 63 a(\007)p 2183 210 4 181 v 2184 29 a(\007)320
-303 y(\205)851 277 y(\205)1383 250 y(\205)1835 228 y(\205)p
-2363 201 4 206 v 2364 -4 a(\007)p 2534 -52 60 4 v 2534
--85 V 2544 46 4 133 v 2545 46 a(-)2545 -87 y(\007)2725
-112 y(?)2906 511 y(>)2906 29 y(\007)p 2896 -52 60 4 v
-2896 -85 V 2906 146 4 233 v 2907 -87 a(\007)p 3161 513
-4 534 v 3165 511 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3165 511 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/jumpbeam.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: jumpbeam.dvi
+%%CreationDate: Sun Sep 28 15:50:20 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 20 699 453 793
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE jumpbeam.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1550
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 45 /hyphen put
+dup 50 /two put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 82 /R put
+dup 133 /Ecaron put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
+C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
+4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
+12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
+86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
+88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
+62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
+71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
+4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
+63AFD4CB3CA38143731CE9D4F750BDCFCAF1E66E150C6A0F236DFFB66781B02E
+3E9EEB191992C0EB96B8FBC1EB6EF7778CD34B03041285A82179EFADADA50376
+2B587A6E48042DF6E32F5C197917A24A987B3B11315E8CD8B390DC5D4ABCABBD
+E209EA84CB75B2C5ED13C7C91961CB59EC649C858FCA81D342F1FFF0E4603C68
+F7676A333DE6FA0A7B22C2BAC0923D43B439B82C28C23BE4AF6BB39B7FF4515F
+6B49EA0C6A9E11C08A4E2961990BDDC899779B1E5714FA12EE05462F78898062
+F8CD972E714616E637C1D72AE095D4A9761F4DCF897C390F21C0D02E5E98BA87
+7C37111076E09F16BCF48F14A07174E3FC733021AB99BB5F77567759FE689DE3
+D82A9AF5FA2A937EA56C02888FEE5C4441C0775FBC731C4B340D4E450832C194
+2CE3E9EADB7B34EF098CA280602EC8F682E41C2641C178E6FE338412C20858C2
+E874322B56EB62F24F49D45C5353EE4E263C6022022A4BC61DD639EA42044A2C
+D8F0B55CA1D5318AD21A063B02D0E646156C50A6FC7C683CCA60FB4C38DAA74F
+9FD32F83D11CA97AC20A21453322F247BBB4B3EEF3712A73B6CE0F7C2B8DBA89
+4939563208D1E5DBEB5EC318333438FE89EB5C699529139DAD8507A6B96CADF7
+DE0679084292CAFFE48CF4FDBC3CEC833125DDFB4543CA49284B11ADF1E71F1E
+E4D4DA5CD0614FDF21D75B020D7F7EE25C5D4A5F7802C10E79E992DB8FE093C7
+01699C2DAF47B1C4BC7C5C4592FB86548E2F310760BDC1B6B063E6D3DB215DC3
+6E83FF1DA54F5386D61ED431CB8295D563563737E6F0D18112C1285155A24A0C
+3BB4F0FA9A4CCD97D8A67C8F194774CCD1DA85EDC98D856F96565DF4A010D8A3
+4475AB25531952A93EA2ADF617CC3362EE0FAAEB242F32E36FE5125592B59B34
+CD9CBC9E1229DE9D074ACE45759A866FF4E0967FCD844F812EE1BC673E984E59
+2ED574F730CBDA3E376222E9012BA43DD2A6C43836B77CDF5D2F18B1E9DBE03F
+DA1C90119AE0C42D6FCE9E0A917D7C70E70208D45901CE99479E7CBE6293032E
+2490522F7EE8AD4E554E8B4D5108BF8253B37E0E52C008A5A346166C3185A1EB
+EC87040FCA542C4CA2D6177E67BA5F109BA18F880F7CA3CDB5031CAE941ACB46
+F1A93812D472AF8D00BFFE3857D849B30EE0615B8B8006424B81279C32C9AFEB
+02B66F5A34FB9E35756A15AFDDCA4F0D064CDAE2C0E2222978BEF190A829D364
+1439B3689B8EF86DB0EA6E87D2121BB3969487024F814777C848A497B47808CE
+4FBF36F9E8CB8B6B7A193410D705E6774A87DEE8801CF1B468B8C913A43ACACB
+E22F786B37D7A59ABEB12676FEE82449AD24F5161683B52C20CF7246DB4B8E73
+165816BDEF7DFBA767CFD7370BAAED3B34BF97E9463FC6BA4D163ABE4F5DBBB7
+B441E6C3A9AE90454760D001363986645CAC3FF7EA4544EB9CF9FDB4BA9EF9A5
+9A92F8C7CD865CB6CB7CED7064AD9E20FD93984ED0E98A48434A1B5861F7DB50
+64C4E417AD0851C622762F245903F96A3F2CC5D7AD9C5DB4AC85FDFD4F7E53AE
+4A33F1F3FCE5668FACC0CE1EA84D09E4E1DB3961D469A712CEABAC926C1A6C3D
+A6A637BDFEB987F189A60FA8EB9F0A7E71CDA7EFD005AEFD1C47975F0CF5FE00
+48F68996A8742DE39485FAA0AF35F4977E2E40DD14CE6F78237FBF2348CB98FB
+2C2C925B89BDF22275B07D1FDA504F76F46C809EBAF5F6F9084C71598C412C9D
+A29BC65E640E20411128AE07E4C9AB862E87B97336ECC1382B3B9A519C3D9928
+6B62872FD8F96EB09D963FD92BBE4E0BF23F9A6308905522FD785AEA4AEC9010
+98EDA7E7C10D071249C7E9890A70AEFC79AB48FDE391D1541BF7273ABFF57A22
+D028F5B71B4B94713467E9C752DCCF2669F6826F24AEA775C4C52E6C67FF1AF9
+B6F56C6027E9AAA74A8DFA9C3572DD85699D632F36179D63BED8B30A39A5FB5C
+979E03B8B0ABA842F598BFB691BA20395D319103C5F7495902DD00202FCB88CC
+55B54270AA35C737F3DF938084E69E31EFCD37A7303C2E37EAE46E1AFDBE4BEE
+35341E5B2CF9779837DC32774FA0D91AA13BB87F0AB187BCB947EA17383CBF48
+BB1C4DE44B4A49C73A64901EDF75F0DE018FC8209BEF5AEAAF77B3B0E0F4A275
+4C184481D10FAFD830EBD98FFAAB
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 160 /abreve put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4C4EF15DEE67EBE46D
+EECE5BDDA7CB599B4D3BA5BAE2A01A9819C386589CE2173F72C941F956520D76
+3CD86FE6D2F56991584FD219FBBB94E452413D5E0C3397E1E26057A662EF4C43
+B5F3CFB14D62A5AB6C1A906B1E3B4F6EF0B6E7A44DDB81D4804E447637E0EA02
+16EE9C242CE66CD996ECE1EC81858EE3C8EF5F9FA158404FD0CB2782DCC42ECA
+DFE9BA8794723CBDEBBB0EE17906816A3E28E2C1901F447041F386ECEB770E65
+A7984B8BF5374842B4712B4BC91CAC69BD4C37AC12F6991295F1AF6EE312AEFE
+DD468FEDFEA440BC0455A0A6F3680DA3E29582B5134D003EF4ABDF0D124F5505
+710F8FFE321D5FA14D6C6D9D44EFEE32C3DF4BE75C703F39340F11B76FC8CA51
+D1565E507A32B9F6B9E8EDBA117FCE6B57B89A52D77E0DB6F5B886BA996A36A4
+19D8E9C97EB8165A5780556D956D3B49A9ABD6787A4147664379CAFA0B16AAD0
+852C4E8190EED9EF4AA135B5FE64F4A80D0A1B9E5EA05B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (jumpbeam.dvi)
+@start /Fa 122[531 50[66 8[106 1[106 7[0 0 11[40 4[0
+35[0 0 0 6[0{}12 132.835 /TeXMUSIX16-Regular rf /Fb 95[0
+160[{}1 166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 245 a Fb(\240)p -364 380 3529
+4 v -364 413 V -364 446 V -364 479 V -364 513 V -364
+-19 V -364 15 V -364 48 V -364 81 V -364 114 V -364 513
+4 534 v 166 x Fa(I)-364 79 y(G)-244 445 y(R)-244 46 y(R)-68
+511 y(>)-44 -113 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (27.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (48.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ -44 -113 a -77 -52 60 4 v -77 -85
+V -67 -87 a Fa(\007)p -67 146 4 233 v -66 29 a(\007)p
+188 513 4 534 v 272 546 60 4 v 272 579 V 320 577 4 274
+v 282 577 a(\007)p 453 546 60 4 v 501 544 4 250 v 463
+544 a(\007)p 681 461 4 176 v 643 461 a(\007)p 862 428
+4 152 v 824 428 a(\007)p 995 347 60 4 v 1043 345 4 78
+v 1005 345 a(\007)p 1224 428 4 170 v 1186 428 a(\007)p
+1404 461 4 212 v 1366 461 a(\007)1590 400 y
+ slur@Dict begin /S-1alt (0.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(13.4pt) GD N /T1dir -1 N /T1dash 0 N /T1adj 0 N end
+ 1590 400
+a 1585 378 4 138 v 1547 378 a Fa(\007)242 46 y(2\010)282
+63 y(\000)242 -70 y(2)p 272 -52 60 4 v 282 162 4 233
+v 1 w(\010\000)1386 -54 y
+ slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1386 -54 a 1386 -54 a
+ end
+ 1386
+-54 a 1366 63 a Fa(\007)p 1356 -52 60 4 v 1366 172 4
+227 v 1367 -54 a(\007)322 -4 y(\011)p 1728 513 4 534
+v 1814 511 a
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 1814 511 a 1821 428 a Fa(\010\000)p 1811
+347 60 4 v 1811 313 V -117 x(\010)1821 295 y(\000)p 1821
+544 4 233 v 1822 378 a(\010)1822 362 y(\000)p 1811 147
+60 4 v 1821 228 4 83 v -216 x(\007)p 2002 219 4 157 v
+2003 63 a(\007)p 2183 210 4 181 v 2184 29 a(\007)320
+303 y(\205)851 277 y(\205)1383 250 y(\205)1835 228 y(\205)p
+2363 201 4 206 v 2364 -4 a(\007)p 2534 -52 60 4 v 2534
+-85 V 2544 46 4 133 v 2545 46 a(-)2545 -87 y(\007)2725
+112 y(?)2906 511 y(>)2906 29 y(\007)p 2896 -52 60 4 v
+2896 -85 V 2906 146 4 233 v 2907 -87 a(\007)p 3161 513
+4 534 v 3165 511 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3165 511 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpslur.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpslur.eps
index 14b3e5a62c7..bd3525abe58 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpslur.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/jumpslur.eps
@@ -1,948 +1,948 @@
-%% LaTeX2e file `eps/jumpslur.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: jumpslur.dvi
-%%CreationDate: Wed Jan 21 13:58:18 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 698 510 782
-%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMTI10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE jumpslur.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1358
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 39 /quoteright put
-dup 97 /a put
-dup 100 /d put
-dup 104 /h put
-dup 110 /n put
-dup 111 /o put
-dup 116 /t put
-dup 117 /u put
-dup 119 /w put
-dup 121 /y put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
-D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
-993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
-2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
-E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
-309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
-F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75
-3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A
-FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472ADBF11
-05A77651F118824F6CD00209EFB60C1D32D46A78E8C8DCB8B0E742828E3B7D17
-DF5200D68189C91FB8489CDEE8BC223C4281DDCA5F7DA80BD5C2D66A13AB49D2
-3BBBA5D38653AAC7B813F29F450710ABE132AEE5BDF71E90DA34D547ACCA61BE
-6D41EC35142A11C8B2EBFFAADD0C11B0065E2ABCF51132F38B3DF7887D35F29C
-F3DA6A21033BB28D01D9967E01667868C7234F9C904A03CA7875A7B9B2980655
-C5952AB003126D522009AA379D50EE8C22EC0237A9E82F50B6A05B048486C72A
-C2E03FA005479A87156A02E696548F55EBEA076E40AB4086284D3F6E6FF54FEC
-5580193AFEC62B732E78E23E04F5BE1A8CD544AF5EAE657CF98B1E0A386CA42A
-21E7AC6441FDD27CAB4F57D5BBC01B93F974BD11EBA36182178BDD4CC8BBB232
-06CCB58E69D597CA92C121A06CD95AD46FF23AA0CC104FFE3B3AB8C036A46188
-F92597C6D7289DFCCD5401AA332B8203547B1620776B3DB3E79FAE29DD427E96
-21CE4FF06EABDF3080724BFE37359CF44B428BDA26DD36404DE1AE57839EAD48
-55632958E84C8E50B8C92A64B6CEDBB37648F571B43173B26F36F1B70A584FBA
-E32191147EF898B73DFBEDC43302B718686B0D3E694B97504BFA4FFF39FC1323
-1153EA5F47A782EFCA727E1DC0B90B79EB0D621103EBFD5AE77117C5FD813450
-8236CBBBB6E977D5228FFF88ED9EF0CDD3D764C30D35E562544873FC8F93DA02
-DA3EAC5ADB1B017B014BF90096C7199E049FD264EE15F9CDD1FFF0AD0E531F41
-80FF553DB72F54057859566ED2B7648550861C49487BC6B952FB8FFDBF19251E
-95705583534BA9C9FD9F40AC64D0197EE64035C03F0A2F1CA5FC6C94C62280C2
-379FA8A2DE802E10511391E5EDD29A420FED9704F59A2FF9E841072CE3E966A1
-BD7EB538CA8A217FF1389BD54D072A38E4D743F91299ADF655365BFC8C053351
-FAA9339AB4B2B75C73CA32E8D47598A3A72D2435727AF8408F7835CE04769C72
-8AC6CCEADC6ABFA715D17273707E5A1380567108201359E3CBEA3570BCAA852A
-59762EDE3B2E5D0A77B31B5F00EE3287BC5B40588249FE7C5F66AB7718118073
-A8D5DB6332B2871F8725BDBDC599D16B4E38370D281C5C02AF8A1F52496E34CB
-2483366E24F6050B0DE62073BBD5E024D979927699E54475AF8EEDAD35F51DDC
-E8B35712444414B5162B7A9209844274A475C0FC42328BBCE05083C7955F6244
-9BA4520602EFA90719489A6D51E38342E60216351B07FCB22ECAC7EC1702F429
-BE8C8C611295363EA777AABA95DB3EDC16E6DFA4A6BE3898AEF4DB835C095045
-C24D99ABA691A97C8F5FFBC1EA65F1340B92C5751F2464E9C7EC657E91B0A902
-6C25A52436517DFE13190B6483A58373482BF3EED86960A6A4F5049334B5466B
-F62C9CA577F52B1EEBF2B23F991C26027412E64512B2AEE8967A7CB578731772
-D7B32317114829321942CE281369BEAEE3EAA192B1D0A1E68DAAC14144360B1E
-0645FCFA1E53305939701762E76A81C654D40318A2CA93C4ADAC54E9D5F19171
-46EDC64756AFF183416B0697D98DA22D83178CC0C5DCDE1A065D8039B42C009B
-80BFC87B298F9E576D00E39628DF374A47130290D4F6C3562E7B4CB4A3D14C3B
-D48256ECEFC7E1858E7F39A5DFC277A18BA08E104DEA66836FE7D5B586B4ACE5
-BEF4C0E7C738839A59F77F987292BFDC90664A4001EE3843756373CB28F3AB38
-5EAE14A5E04FFF7B2A8870C7F598B724CF70BEC10E61F74C483297D686E6EB72
-96E9B9B6E1A4279A0F1FB38A9A984280060F769FBCF1AFDB599C3DC5D46506E5
-752BD249E6E953483A0290315715A872E902DB371DF587A975198B8BC9CE6E23
-0A47653B7256D1893F5E05D055C17660E8DD89E6B521F7D50CC78D861EC09AA2
-7A186D9D3334A71CB844C8CD336F60A6A5D9CA81A0110E0496DF249A01AEDC82
-8994ED18AA3DDFC4097BA2406D700C196392C7EE7D6935D3A9657B5CF39E939D
-B8F7ABE9266E7470015DD3DE0F2722D8456D5E91993EBDA99E8F5D44E50A990B
-3424C34D84A90B1DDE43DE4284290128D3C0F8FE4D7C18B1537923D333728D7B
-F65DF58F1307C30770297F35FDFF99103A492055B4C9EACF43ACAF4B916FC4A0
-61D41C0C32A046E02041AA223B04CA5C1FBE6609AA41CB10B72E10584E201A2C
-88B85E8940CBFBEA12DD5DF830E752241A0E188471F8345010C486F4C08982CC
-5D5C344AD6D08E7F036C075420D7ABAC74D25464BFA0890F3E5B3E72BA56AC3C
-523C9EA8C135BE76E0788279207EAA25957B80EFB8F5B28B81EFA0FB27B5B673
-BB0E0B3F742420F67C774EC8ED214D2C286D8559C87573328DE93EABBA3FD5A7
-9802617644306F169BB7D39A19740725CD0D641CC07C847687B37203909EE02E
-59B3E23898ED419AD149AD000F2F28F5598B312F69B44A6ACEE2426617E6F931
-1E3494F1329A8D929C2C6141DFDF83D3DD130FAE0AC8F9802ED8FA22E9C1D45D
-3C5B10B5CE9FC8BA329F33A10986839A6568BCC451CD13BE58C8D48A9C8E80A4
-6ABA0AC3004869DB23D97AC184B16846A3B8F1DC47A3DBF7AF5496E41AD0FD6A
-25DA356631880F01CF826F48B69316DAB845D6D9F3965B0BDCAC3730A40C641E
-BBB5D4375BA2CA2F1DDF77BE5F3CF2C2FD99606F890774C2ABD8919DBC97B22A
-A3C099287C9BACD15CB2FE7761B2DB8FA781D0FF08AB3E0135DD7E7AEDB1F20E
-4778F7A8F0E5F69ED73D4A29EFAB48E0F64864D763E0268546798B14AA13D3E7
-A47CCB3EE1FC57F19CC3E2FA32A5E5ACECCEBC23C074D2F5C37F103C7CFAEA3E
-C67E849C832CECDAE9ACBE862591649AA60D7CD13DB672B81B97D987CF7313D2
-C2299DFC2099C7863FDBF899905BA358262C274A49A4AB63BCE783A8E1C81803
-1024E9C88A4354535B0A2BCD89CF4812F1DA1B7D051BC4843594AEB6EE714A7C
-18355063B97C80BD2B4DD285EDABEF47EC6133F03BD84837D092B80EE2C322FF
-47C4623E103B4CABAA6AFFBA6F3BA75A0E49E7515470791C4FA675280D9B3E5F
-05F867A86E92FE8E349A672402F7C9F0FFA04E9CAE2B18F3BCAF8EE3C31201F2
-3347262C1B3D7BDFDD1AD8FDE20F68DFF56912F2562FAF0484CB7B34F96D596E
-C1D43E35D3B419123F9D52D531B6969392736F6D335CC40D37C426FAA1B2F6D4
-EE74384F0EFD10985F410EB681C2FDDDD7F5205A9D09FDBD8AB7774596666D4A
-BF01F539BC6F33AC094ED5BEBEFF935FE8E2294FCA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 71 /G put
-dup 73 /I put
-dup 197 /Aring put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
-C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
-F53C14821D671E086E5BE271924C3F9879A9038BE6DB7E7BFF0549334F624171
-96FE42411704B4349F81A19E53D956E03800F82E9634CC472517AA8BA531C5A4
-BA1ACBF350D3DC02B9CA305EFEB4F2AC9139EE3FD5574E402515030AC1F14888
-22AC0B95980706F2D489320DCB5E788153D1F10D9C288DE19485887F183E5344
-D0E2178991E9E700398400EE2037C9CABB932AD5A8D86E00FF96D6C3DC7D3B54
-96D13C89BC7029A1A9544BFE81B105BB573A64366FD28650158F36A46D52B98B
-D612CF0FC2086D64855322A7D8706ECA86F4A0C503BF6C29F4375427E117B79A
-0AC1C5704EA8520FE4EACB56A349C9C1F0AABF58D01489007CA2D3E17D84985D
-A3230D6936D8A7C40B64CF703FD416BCE1B1A0799062F8B52F4440A395E7494A
-49274B20EACB35679B205C994714B095C2DD2D4FEBBB75A92185980CAD8C53F3
-FA2DA06E75AF4F95B481AE17A11B8962657D478FB08584B87C8C7A3521E7C5E3
-09A29A7DC6A745582E65AEDE28D3EC79A39DF6D620CA543C79C8F49E36FA4C3A
-9BAFCEBFC8C83241A31F214B586757D9AFB83AC31E71F30CEC6D296D64307828
-78AB88453B8B6910C69F0263603377A43E55F8740F25DBE2776FADC1C75D3DCD
-3FB8A7D79E80D28FC7ED33CEEA1B7B54EF576FE22C8B0E10B0C41926E4952E11
-0175216460B2D8A1776493BF6F7CF33DA9D530FC39E58CE892A48BAA3D322BE1
-2061BBA6148B713BD9E9C3C2796EE3743FA4B83C8AA6EBD98FC8987676635840
-F3DF930AA546AD065F9BE9A13970686F0D6E486CE51A68F32BD6D99A1EC99E03
-2FF72904D86C62113E94DBB4350D51C356957867E516B78C1785496FC38A5281
-478E72B482A04AF416B87E1F14DD80051450858135616CCA5980EDBA81268278
-3C1614C5769422CF3A3E3E23DF68B5D7ED35C78B2500EE8843CC6B9920DCB24A
-DA70C41EA7127C4D97D4B1A672009D6F40978896B877868331B6E6A65661ABCC
-CB4EF72E897B85359F50CD932C7E387B89D9BC282762A8A9D9482F9D5A931F4F
-81FF6EA89F85CFB3A6B137C4B69D894E4B3BCF60A5112A8F853905CC9C2DF42A
-66798FB63A2E71C42A032B3FB77EA164F03F79AFA9FC5D54547C05D2FCBEEEA4
-4F829066596553D3E201249DFEBA224B326EC57EB7054B1B54965CE0724DA41A
-18C54AC36876880DA97ABBD68D23D0963EE4F3D2BA0BBA4A0E78
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 80 /P put
-dup 97 /a put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
-36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
-A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
-4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
-0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
-9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
-C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
-F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
-0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
-BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
-9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
-1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
-D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
-CBBD534323A8D661D56AA5DC42BC8BFAA5BC6C322093460223EA50789047AC60
-4EACAB6E95576C2BC1388EF8C633E67DA506210D4A26D8D64A117796E8EB2B2B
-B51218447418B593FCBF6D71CDE52F70D5D2D6F08EF58B126A96627120A847BC
-7DE861B70914FF4300CC03A9FDA150A410448A6D529AFB4D82A7FEEE9E758D9E
-86177BC7CE728B3AC1E2034DAA7AD92DAC2CF1E774B39430C9E7F09E4D964CE6
-22BA6EC5184AE6493C19970CCC0B38DCA85A2BB66A287D0BA0678663205CACE4
-139D54BAA0AE86174F9774AAA689FD7212A56263ECEC01137303AF81D77CB6A5
-4B5F83450FA28844F41F5D704E03EE989DEE0CFCD0D268CCFDA1123AD3474CBF
-EAAF5ECF15BBDA72ACEA150D4B241193D450E3C3B92F758FD2A6516F07D3599E
-680E6FCBA1171250245AE9F4A7741E817F2C2D455125C4405E299EDB88771DF9
-44B4899ACDE5612CD3F7BCB097BE7C996559A8B724043992A3DB9B9744564D07
-34BBDF6D4283F0EC765134FF442007402AB9B2A58A76A373C50F07F92D93ACAC
-EEE6B227A9FA43A6A2B88062D50C2D3ACEDB3DB0042D798028F718BA869376DF
-E5B117FCF03CFACFC4F95ECC142E639E034E2F1187E5FEA2F9F3554E0D3DD8A9
-116E82B55B1F5E80E9793A4EE26B5297E2F295003992A40DD1B65831766E4871
-A23F3D621CE21E1FD97FC40A51268F1A60143A2AD58628269FBF6F6E004F1A65
-B064FB316BA4D18B5BA818FF682B861FD82D181923EC23C580634F4BDEF01E04
-CDB078C16EBB18E1D872E1102BB0B5D5AE5EB3FFC567DD3BC288787D1470411D
-B6E1C1FBFE36B28FAA6A8BA1A0DAD997D481AEA853FC73ABD6BE8DD33F8B19EF
-C70C5F74874664AA02DBBEB58DDAE21B0F39BA08CDDF4B4B8F68B3F493951279
-4192AB74FC50FA6D7D5D4D023D42A8AA8B781A3FE1541DB2936085CDD05B9D2D
-542B424D5D42ECD8FD8A58FE313B84A88F8A16E8B3D22A7A6FE870C36BDCE807
-247287DEB939CA99FD04C6519D3897523B8E02C531813B64583109C4383C9A43
-0B9397C1024614AD68F8691D812E34C16AA34E6D27765EC819A1C9D23AB7EEC4
-4FD22E191986AC8D9843F7283A6A74E2C5740AD6E122D2FF99461F5E681FF9AC
-ABCE227D536255DC1F5A7CD5CED43E12E0B012504C320FCE8CE68E882EE7D13E
-A51B796EE128C045956A3D761695109405E2112C707F10498503C7ECB3217B32
-D88B309C700BFDC85BADFB14A4B13AC4CA645C69C1839F632965E5D829563981
-3179A518977FC7DC6209A58BAC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 156 /IJ put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
-19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
-F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
-78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
-3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
-ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
-E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
-51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
-906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
-30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
-C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
-CF6FF708F7024031
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (jumpslur.dvi)
-@start /Fa 134[40 1[55 1[45 28 4[42 47 5[42 3[42 2[42
-57[25 39[{}10 83.022 /CMTI10 rf /Fb 58[531 123[106 1[106
-63[0 7[{}4 132.835 /TeXMUSIX16-Regular rf /Fc 144[42
-46 4[23 7[42 16[57 80[{}5 83.022 /CMR10 rf /Fd 99[0 156[{}1
-166.044 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -40 195 a Fd(\234)p -40 297 3678
-4 v -40 330 V -40 363 V -40 396 V -40 430 V -40 -35 V
--40 -2 V -40 31 V -40 64 V -40 98 V -40 430 4 467 v -362
-224 a Fc(Piano)-40 328 y Fb(I)-40 63 y(G)254 106 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 254
-106 a 269 79 4 117 v 231 79 a Fb(\007)p 481 96 4 123
-v 443 96 a(\007)656 577 y Fa(what)30 b(you)g(want)p 694
-112 4 129 v 656 112 a Fb(\007)p 859 131 60 4 v 907 129
-4 135 v 869 129 a(\007)p 1120 279 4 273 v 1082 279 a(\007)p
-1332 295 4 279 v 1294 295 a(\007)p 1545 312 4 285 v 1507
-312 a(\007)269 -12 y(\305)800 15 y(\305)1228 36 y(\305)269
--37 y(\305)800 -10 y(\305)1228 11 y(\305)p 1758 328 4
-291 v 1720 328 a(\007)1740 328 y
- slur@Dict begin (2.0pt) GD S0hgt (-28.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1740 328 a 1740 328
-a
- end
- 1740 328 a 1956 89 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1956 89 a 1971 63 4 117 v 1933
-63 a Fb(\007)p 2183 79 4 123 v 2145 79 a(\007)2358 561
-y Fa(what)g(you)g(don)-8 b('t)30 b(want)p 2396 96 4 129
-v 2358 96 a Fb(\007)p 2609 112 4 135 v 2571 112 a(\007)p
-2774 264 60 4 v 2822 262 4 273 v 2784 262 a(\007)p 3034
-279 4 279 v 2996 279 a(\007)p 3247 295 4 285 v 3209 295
-a(\007)1971 -29 y(\305)2502 -2 y(\305)2930 19 y(\305)1971
--54 y(\305)2502 -27 y(\305)2930 -6 y(\305)p 3460 312
-4 291 v 3422 312 a(\007)2803 312 y
- slur@Dict begin (2.0pt) GD S0hgt (-26.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2803 312 a 2803 312
-a
- end
- 2803 312 a 3635 430 4 467 v 3638 594 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 594 a eop
-end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/jumpslur.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: jumpslur.dvi
+%%CreationDate: Wed Jan 21 13:58:18 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 698 510 782
+%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMTI10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE jumpslur.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1358
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 39 /quoteright put
+dup 97 /a put
+dup 100 /d put
+dup 104 /h put
+dup 110 /n put
+dup 111 /o put
+dup 116 /t put
+dup 117 /u put
+dup 119 /w put
+dup 121 /y put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
+D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
+993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
+2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
+E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
+309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
+F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75
+3851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A
+FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472ADBF11
+05A77651F118824F6CD00209EFB60C1D32D46A78E8C8DCB8B0E742828E3B7D17
+DF5200D68189C91FB8489CDEE8BC223C4281DDCA5F7DA80BD5C2D66A13AB49D2
+3BBBA5D38653AAC7B813F29F450710ABE132AEE5BDF71E90DA34D547ACCA61BE
+6D41EC35142A11C8B2EBFFAADD0C11B0065E2ABCF51132F38B3DF7887D35F29C
+F3DA6A21033BB28D01D9967E01667868C7234F9C904A03CA7875A7B9B2980655
+C5952AB003126D522009AA379D50EE8C22EC0237A9E82F50B6A05B048486C72A
+C2E03FA005479A87156A02E696548F55EBEA076E40AB4086284D3F6E6FF54FEC
+5580193AFEC62B732E78E23E04F5BE1A8CD544AF5EAE657CF98B1E0A386CA42A
+21E7AC6441FDD27CAB4F57D5BBC01B93F974BD11EBA36182178BDD4CC8BBB232
+06CCB58E69D597CA92C121A06CD95AD46FF23AA0CC104FFE3B3AB8C036A46188
+F92597C6D7289DFCCD5401AA332B8203547B1620776B3DB3E79FAE29DD427E96
+21CE4FF06EABDF3080724BFE37359CF44B428BDA26DD36404DE1AE57839EAD48
+55632958E84C8E50B8C92A64B6CEDBB37648F571B43173B26F36F1B70A584FBA
+E32191147EF898B73DFBEDC43302B718686B0D3E694B97504BFA4FFF39FC1323
+1153EA5F47A782EFCA727E1DC0B90B79EB0D621103EBFD5AE77117C5FD813450
+8236CBBBB6E977D5228FFF88ED9EF0CDD3D764C30D35E562544873FC8F93DA02
+DA3EAC5ADB1B017B014BF90096C7199E049FD264EE15F9CDD1FFF0AD0E531F41
+80FF553DB72F54057859566ED2B7648550861C49487BC6B952FB8FFDBF19251E
+95705583534BA9C9FD9F40AC64D0197EE64035C03F0A2F1CA5FC6C94C62280C2
+379FA8A2DE802E10511391E5EDD29A420FED9704F59A2FF9E841072CE3E966A1
+BD7EB538CA8A217FF1389BD54D072A38E4D743F91299ADF655365BFC8C053351
+FAA9339AB4B2B75C73CA32E8D47598A3A72D2435727AF8408F7835CE04769C72
+8AC6CCEADC6ABFA715D17273707E5A1380567108201359E3CBEA3570BCAA852A
+59762EDE3B2E5D0A77B31B5F00EE3287BC5B40588249FE7C5F66AB7718118073
+A8D5DB6332B2871F8725BDBDC599D16B4E38370D281C5C02AF8A1F52496E34CB
+2483366E24F6050B0DE62073BBD5E024D979927699E54475AF8EEDAD35F51DDC
+E8B35712444414B5162B7A9209844274A475C0FC42328BBCE05083C7955F6244
+9BA4520602EFA90719489A6D51E38342E60216351B07FCB22ECAC7EC1702F429
+BE8C8C611295363EA777AABA95DB3EDC16E6DFA4A6BE3898AEF4DB835C095045
+C24D99ABA691A97C8F5FFBC1EA65F1340B92C5751F2464E9C7EC657E91B0A902
+6C25A52436517DFE13190B6483A58373482BF3EED86960A6A4F5049334B5466B
+F62C9CA577F52B1EEBF2B23F991C26027412E64512B2AEE8967A7CB578731772
+D7B32317114829321942CE281369BEAEE3EAA192B1D0A1E68DAAC14144360B1E
+0645FCFA1E53305939701762E76A81C654D40318A2CA93C4ADAC54E9D5F19171
+46EDC64756AFF183416B0697D98DA22D83178CC0C5DCDE1A065D8039B42C009B
+80BFC87B298F9E576D00E39628DF374A47130290D4F6C3562E7B4CB4A3D14C3B
+D48256ECEFC7E1858E7F39A5DFC277A18BA08E104DEA66836FE7D5B586B4ACE5
+BEF4C0E7C738839A59F77F987292BFDC90664A4001EE3843756373CB28F3AB38
+5EAE14A5E04FFF7B2A8870C7F598B724CF70BEC10E61F74C483297D686E6EB72
+96E9B9B6E1A4279A0F1FB38A9A984280060F769FBCF1AFDB599C3DC5D46506E5
+752BD249E6E953483A0290315715A872E902DB371DF587A975198B8BC9CE6E23
+0A47653B7256D1893F5E05D055C17660E8DD89E6B521F7D50CC78D861EC09AA2
+7A186D9D3334A71CB844C8CD336F60A6A5D9CA81A0110E0496DF249A01AEDC82
+8994ED18AA3DDFC4097BA2406D700C196392C7EE7D6935D3A9657B5CF39E939D
+B8F7ABE9266E7470015DD3DE0F2722D8456D5E91993EBDA99E8F5D44E50A990B
+3424C34D84A90B1DDE43DE4284290128D3C0F8FE4D7C18B1537923D333728D7B
+F65DF58F1307C30770297F35FDFF99103A492055B4C9EACF43ACAF4B916FC4A0
+61D41C0C32A046E02041AA223B04CA5C1FBE6609AA41CB10B72E10584E201A2C
+88B85E8940CBFBEA12DD5DF830E752241A0E188471F8345010C486F4C08982CC
+5D5C344AD6D08E7F036C075420D7ABAC74D25464BFA0890F3E5B3E72BA56AC3C
+523C9EA8C135BE76E0788279207EAA25957B80EFB8F5B28B81EFA0FB27B5B673
+BB0E0B3F742420F67C774EC8ED214D2C286D8559C87573328DE93EABBA3FD5A7
+9802617644306F169BB7D39A19740725CD0D641CC07C847687B37203909EE02E
+59B3E23898ED419AD149AD000F2F28F5598B312F69B44A6ACEE2426617E6F931
+1E3494F1329A8D929C2C6141DFDF83D3DD130FAE0AC8F9802ED8FA22E9C1D45D
+3C5B10B5CE9FC8BA329F33A10986839A6568BCC451CD13BE58C8D48A9C8E80A4
+6ABA0AC3004869DB23D97AC184B16846A3B8F1DC47A3DBF7AF5496E41AD0FD6A
+25DA356631880F01CF826F48B69316DAB845D6D9F3965B0BDCAC3730A40C641E
+BBB5D4375BA2CA2F1DDF77BE5F3CF2C2FD99606F890774C2ABD8919DBC97B22A
+A3C099287C9BACD15CB2FE7761B2DB8FA781D0FF08AB3E0135DD7E7AEDB1F20E
+4778F7A8F0E5F69ED73D4A29EFAB48E0F64864D763E0268546798B14AA13D3E7
+A47CCB3EE1FC57F19CC3E2FA32A5E5ACECCEBC23C074D2F5C37F103C7CFAEA3E
+C67E849C832CECDAE9ACBE862591649AA60D7CD13DB672B81B97D987CF7313D2
+C2299DFC2099C7863FDBF899905BA358262C274A49A4AB63BCE783A8E1C81803
+1024E9C88A4354535B0A2BCD89CF4812F1DA1B7D051BC4843594AEB6EE714A7C
+18355063B97C80BD2B4DD285EDABEF47EC6133F03BD84837D092B80EE2C322FF
+47C4623E103B4CABAA6AFFBA6F3BA75A0E49E7515470791C4FA675280D9B3E5F
+05F867A86E92FE8E349A672402F7C9F0FFA04E9CAE2B18F3BCAF8EE3C31201F2
+3347262C1B3D7BDFDD1AD8FDE20F68DFF56912F2562FAF0484CB7B34F96D596E
+C1D43E35D3B419123F9D52D531B6969392736F6D335CC40D37C426FAA1B2F6D4
+EE74384F0EFD10985F410EB681C2FDDDD7F5205A9D09FDBD8AB7774596666D4A
+BF01F539BC6F33AC094ED5BEBEFF935FE8E2294FCA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 71 /G put
+dup 73 /I put
+dup 197 /Aring put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
+C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
+F53C14821D671E086E5BE271924C3F9879A9038BE6DB7E7BFF0549334F624171
+96FE42411704B4349F81A19E53D956E03800F82E9634CC472517AA8BA531C5A4
+BA1ACBF350D3DC02B9CA305EFEB4F2AC9139EE3FD5574E402515030AC1F14888
+22AC0B95980706F2D489320DCB5E788153D1F10D9C288DE19485887F183E5344
+D0E2178991E9E700398400EE2037C9CABB932AD5A8D86E00FF96D6C3DC7D3B54
+96D13C89BC7029A1A9544BFE81B105BB573A64366FD28650158F36A46D52B98B
+D612CF0FC2086D64855322A7D8706ECA86F4A0C503BF6C29F4375427E117B79A
+0AC1C5704EA8520FE4EACB56A349C9C1F0AABF58D01489007CA2D3E17D84985D
+A3230D6936D8A7C40B64CF703FD416BCE1B1A0799062F8B52F4440A395E7494A
+49274B20EACB35679B205C994714B095C2DD2D4FEBBB75A92185980CAD8C53F3
+FA2DA06E75AF4F95B481AE17A11B8962657D478FB08584B87C8C7A3521E7C5E3
+09A29A7DC6A745582E65AEDE28D3EC79A39DF6D620CA543C79C8F49E36FA4C3A
+9BAFCEBFC8C83241A31F214B586757D9AFB83AC31E71F30CEC6D296D64307828
+78AB88453B8B6910C69F0263603377A43E55F8740F25DBE2776FADC1C75D3DCD
+3FB8A7D79E80D28FC7ED33CEEA1B7B54EF576FE22C8B0E10B0C41926E4952E11
+0175216460B2D8A1776493BF6F7CF33DA9D530FC39E58CE892A48BAA3D322BE1
+2061BBA6148B713BD9E9C3C2796EE3743FA4B83C8AA6EBD98FC8987676635840
+F3DF930AA546AD065F9BE9A13970686F0D6E486CE51A68F32BD6D99A1EC99E03
+2FF72904D86C62113E94DBB4350D51C356957867E516B78C1785496FC38A5281
+478E72B482A04AF416B87E1F14DD80051450858135616CCA5980EDBA81268278
+3C1614C5769422CF3A3E3E23DF68B5D7ED35C78B2500EE8843CC6B9920DCB24A
+DA70C41EA7127C4D97D4B1A672009D6F40978896B877868331B6E6A65661ABCC
+CB4EF72E897B85359F50CD932C7E387B89D9BC282762A8A9D9482F9D5A931F4F
+81FF6EA89F85CFB3A6B137C4B69D894E4B3BCF60A5112A8F853905CC9C2DF42A
+66798FB63A2E71C42A032B3FB77EA164F03F79AFA9FC5D54547C05D2FCBEEEA4
+4F829066596553D3E201249DFEBA224B326EC57EB7054B1B54965CE0724DA41A
+18C54AC36876880DA97ABBD68D23D0963EE4F3D2BA0BBA4A0E78
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 80 /P put
+dup 97 /a put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
+C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
+F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
+0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
+BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
+9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
+1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
+D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
+CBBD534323A8D661D56AA5DC42BC8BFAA5BC6C322093460223EA50789047AC60
+4EACAB6E95576C2BC1388EF8C633E67DA506210D4A26D8D64A117796E8EB2B2B
+B51218447418B593FCBF6D71CDE52F70D5D2D6F08EF58B126A96627120A847BC
+7DE861B70914FF4300CC03A9FDA150A410448A6D529AFB4D82A7FEEE9E758D9E
+86177BC7CE728B3AC1E2034DAA7AD92DAC2CF1E774B39430C9E7F09E4D964CE6
+22BA6EC5184AE6493C19970CCC0B38DCA85A2BB66A287D0BA0678663205CACE4
+139D54BAA0AE86174F9774AAA689FD7212A56263ECEC01137303AF81D77CB6A5
+4B5F83450FA28844F41F5D704E03EE989DEE0CFCD0D268CCFDA1123AD3474CBF
+EAAF5ECF15BBDA72ACEA150D4B241193D450E3C3B92F758FD2A6516F07D3599E
+680E6FCBA1171250245AE9F4A7741E817F2C2D455125C4405E299EDB88771DF9
+44B4899ACDE5612CD3F7BCB097BE7C996559A8B724043992A3DB9B9744564D07
+34BBDF6D4283F0EC765134FF442007402AB9B2A58A76A373C50F07F92D93ACAC
+EEE6B227A9FA43A6A2B88062D50C2D3ACEDB3DB0042D798028F718BA869376DF
+E5B117FCF03CFACFC4F95ECC142E639E034E2F1187E5FEA2F9F3554E0D3DD8A9
+116E82B55B1F5E80E9793A4EE26B5297E2F295003992A40DD1B65831766E4871
+A23F3D621CE21E1FD97FC40A51268F1A60143A2AD58628269FBF6F6E004F1A65
+B064FB316BA4D18B5BA818FF682B861FD82D181923EC23C580634F4BDEF01E04
+CDB078C16EBB18E1D872E1102BB0B5D5AE5EB3FFC567DD3BC288787D1470411D
+B6E1C1FBFE36B28FAA6A8BA1A0DAD997D481AEA853FC73ABD6BE8DD33F8B19EF
+C70C5F74874664AA02DBBEB58DDAE21B0F39BA08CDDF4B4B8F68B3F493951279
+4192AB74FC50FA6D7D5D4D023D42A8AA8B781A3FE1541DB2936085CDD05B9D2D
+542B424D5D42ECD8FD8A58FE313B84A88F8A16E8B3D22A7A6FE870C36BDCE807
+247287DEB939CA99FD04C6519D3897523B8E02C531813B64583109C4383C9A43
+0B9397C1024614AD68F8691D812E34C16AA34E6D27765EC819A1C9D23AB7EEC4
+4FD22E191986AC8D9843F7283A6A74E2C5740AD6E122D2FF99461F5E681FF9AC
+ABCE227D536255DC1F5A7CD5CED43E12E0B012504C320FCE8CE68E882EE7D13E
+A51B796EE128C045956A3D761695109405E2112C707F10498503C7ECB3217B32
+D88B309C700BFDC85BADFB14A4B13AC4CA645C69C1839F632965E5D829563981
+3179A518977FC7DC6209A58BAC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 156 /IJ put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
+19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
+F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
+78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
+3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
+ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
+E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
+51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
+906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
+30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
+C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
+CF6FF708F7024031
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (jumpslur.dvi)
+@start /Fa 134[40 1[55 1[45 28 4[42 47 5[42 3[42 2[42
+57[25 39[{}10 83.022 /CMTI10 rf /Fb 58[531 123[106 1[106
+63[0 7[{}4 132.835 /TeXMUSIX16-Regular rf /Fc 144[42
+46 4[23 7[42 16[57 80[{}5 83.022 /CMR10 rf /Fd 99[0 156[{}1
+166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -40 195 a Fd(\234)p -40 297 3678
+4 v -40 330 V -40 363 V -40 396 V -40 430 V -40 -35 V
+-40 -2 V -40 31 V -40 64 V -40 98 V -40 430 4 467 v -362
+224 a Fc(Piano)-40 328 y Fb(I)-40 63 y(G)254 106 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 254
+106 a 269 79 4 117 v 231 79 a Fb(\007)p 481 96 4 123
+v 443 96 a(\007)656 577 y Fa(what)30 b(you)g(want)p 694
+112 4 129 v 656 112 a Fb(\007)p 859 131 60 4 v 907 129
+4 135 v 869 129 a(\007)p 1120 279 4 273 v 1082 279 a(\007)p
+1332 295 4 279 v 1294 295 a(\007)p 1545 312 4 285 v 1507
+312 a(\007)269 -12 y(\305)800 15 y(\305)1228 36 y(\305)269
+-37 y(\305)800 -10 y(\305)1228 11 y(\305)p 1758 328 4
+291 v 1720 328 a(\007)1740 328 y
+ slur@Dict begin (2.0pt) GD S0hgt (-28.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1740 328 a 1740 328
+a
+ end
+ 1740 328 a 1956 89 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (60.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1956 89 a 1971 63 4 117 v 1933
+63 a Fb(\007)p 2183 79 4 123 v 2145 79 a(\007)2358 561
+y Fa(what)g(you)g(don)-8 b('t)30 b(want)p 2396 96 4 129
+v 2358 96 a Fb(\007)p 2609 112 4 135 v 2571 112 a(\007)p
+2774 264 60 4 v 2822 262 4 273 v 2784 262 a(\007)p 3034
+279 4 279 v 2996 279 a(\007)p 3247 295 4 285 v 3209 295
+a(\007)1971 -29 y(\305)2502 -2 y(\305)2930 19 y(\305)1971
+-54 y(\305)2502 -27 y(\305)2930 -6 y(\305)p 3460 312
+4 291 v 3422 312 a(\007)2803 312 y
+ slur@Dict begin (2.0pt) GD S0hgt (-26.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2803 312 a 2803 312
+a
+ end
+ 2803 312 a 3635 430 4 467 v 3638 594 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 594 a eop
+end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/keychg.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/keychg.eps
index e69df1c2735..e49cb9e9070 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/keychg.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/keychg.eps
@@ -1,715 +1,715 @@
-%% LaTeX2e file `eps/keychg.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: keychg.dvi
-%%CreationDate: Wed Jan 21 13:58:49 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 681 510 784
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE keychg.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1358
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 43 /plus put
-dup 45 /hyphen put
-dup 48 /zero put
-dup 50 /two put
-dup 52 /four put
-dup 75 /K put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC756CB5417F6F05EC7BB9535B18C91B14572544D4E8834
-E38772A731EEA8F581E571A878C8215B9F542D8110341824604994ACAD02DBAB
-7FBCE39606B19569C83F1DF93D5A272787C65B3441FD1C06D2EDC0FB1D1015FD
-6A95C3F4602BAB714A362DFB9B64A5B0B609A05207C4B5DE6D4C5D330DB525A6
-3557AF6A3ADC9659A71E27CF793E55F2A1CE91E69715B11E188E4270C47ED56D
-8B1EFC96694929EE7CF195142EEBD8A349CC08B8D89A9806F23F22EB69C90CBD
-B64953D1548C68C24773412417E8DF1CAD0A99AC8A85DD2269D7F9D2CEEFD0A6
-7E856B11EAAFCB4FAAA1BA662C22A31657258F2A457F15CC561028CB317EF55D
-31AC9C6CC117B13CF1C3671525F59490B2411BB8AF0E793C9A5AA545ECC7663E
-22507C0AD04E5FDB667F8771FCD97261E7A8491DB6FF67B9DE0DD3D8B6BE40B0
-B1325AA2F0A75D4BB92244EE156CB499FEF051D64933D0B15614F62DC233B5F2
-BF172AADAC025F5159409F4484294EE9739093895F37DC61D78F4817EE50DED5
-2876F382DC0F46719A66375A55BCFDD7FE0A5203797410F595907EDF2B0A7E53
-BCBAC20B62691BE4E10F5096012A48E4A1B5940BA4FD8A374D02C1BCC2B41D8D
-1AF07A29E77FC3E65EA551E1B7FFD2E363E2E85A8E2F9FE095F9422BCB0621C6
-B616184178187CB73CFB28D8D55C180A2B5D509EB1B8BB3BA6ED12E5895F51FF
-16C4AEE429EC06A1531A369319E7AAEE7E3A7302F6041B692067823F725453EC
-CBA39B8EDD2C606EFCB5C3DC502F5E5B92222B58417503D0BDB7A92FA3959F48
-F653D8254B1E285EC285823F3C54A4E7D4C78EF52280ABE80AB95B4FD9BA665B
-9E686CA32D483DBA445326A757456A5FE407EEF7894547EEBCDF561D792ED801
-4F37374EFD27CE586BB6C9D0733DB5F5D0295A065E6D5F2872ED9E1D05036FCA
-72C6264FB5B00E835B4C415634D2D7D01A225A74524C3D1CBB68BF0EC062E3F1
-D4E15F021786D5CDDF35E1D591D4BD2C798F8CEBE9351298E13381F893DE6167
-5A3184E9BF27B530A8C5927D05685CC17D8C4EB2684EB54B765BBEA5C3254A29
-6B64660E5DFB217D28E890855850F65E5D42C9E60013691D29F3511DAF36DAE2
-2FE433F7773C957C81E015C7099B34AEB3013D365D02BB9D73AEA31C9C5CDE26
-601006335118F11CDB145BE2812207C2CDDCC26BC194C6B525AEDAE39812F63D
-37D95CD6D2A47F4A57411399327A7F7378A7945C93E9A0A9AB4FB5C9FDEF7891
-9A8950DED5D6F16DFCC28DBC004B7C2A18DA01A75FD89C9A89DB738C04ED486C
-3AD63E2381F2246F4DD53EEBEB7F1762A51AAEEBF25F1D0DA10052441E70C370
-7482FDD5BAAEF0752CEEF0FF777702004EAF806E60474DB24EAD6B1F6238B6B7
-44304678FBA2AC5DFC189DDE6C0653221D8DCEF1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 83 /S put
-dup 132 /Dcaron put
-dup 133 /Ecaron put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
-37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
-9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD033C37E76FB2BC297A8C4C8985
-FB5FCCEDCC9C1F14F6D218923243F49FF7F456628CC9A57A0533AD36177DF4BB
-44584CFA17811CE830DE2B3F12C9D14341A38213D5DFC90335069D8E0DD46312
-4A3C1EDE1A8CFF4C5D25AC2E19C09D111612EECEAC2B33D332CAA17B7F635104
-813EAF27D51349DE803EC3EC265A18F501C90D6B612ABB371FFB3A6B86827748
-3B4BA4C341D265F0D959D841259A78FC7137FD75951BDEF9138B43503B6989F0
-73711AC6E6F44869E6D24AB9B1D30DE332F02D55C84A0715BF8BA4A40AAD85C5
-49F402995060BAD59A2231AF54F2C431BDAC75FF5EE6AEABF06E5FC1344BEF04
-1BF5ABD965099866207E4BF02C305A85067BD09512C67963728DD6410AD9B41A
-3ED1F11F451506142600D3F7F4C72AFB19880DD24B95EEAC1E88B46BF93A5997
-585FE48BCD21A1A0D39E03AB847DE539D15150599EE42DA7D87B1000E24930E0
-5E9C82777BDE41282DC5FEDB07DC6E4A4735881C6D2F05BE59EE6BE5476145D9
-791D05C30909B95F44CF7D604FEF2AD1E268ED44D65AAE1281C96FA111124CCE
-094A8CC9DDBD2124084FFF40077311E3680B8614469DA698F276C134317C002E
-E1004403A36F55E27799381128AAAE19E4DB8AB2E789438011053E21849A26A2
-286BF2AF71AC0BB266A4C19520A2E04F0D7EDEBDAC2C6880EEBDEAE78F4B3065
-EE17894175CA606994BE01C0D079F3F3910AEC5A6C14CC925F8B55EBB489B22A
-E3FB88CBD97234F5A227AD20C352FE98A07109938667CD842C3CE59471CCA8A0
-6A1D4474B381E03E9FD1B123BFA2361EE26890B4F32948DFD28B478E81E8788B
-99FA5BD00902065EBA501C8E44A9747DF7FD4B3F35BD9826723C8384AE567991
-4835778EB7F61DDBD5F706F15F4ECBA48EB39F8A35164EDA809E6F17D94E82C4
-342CA76490F575EE96B0435C3CBBE223999FE1917A31C5A7ABA988563801C80B
-F272DD77357E0FD54023E1E9A361AB3808AAA8DCFF4C9C2B88616DF7717ABD68
-55001AEF8C1A0E9D1DB7935509EF8A03B89F84361601183AC75F28A3B6C0531C
-B8BCE20F7B79CDBCA892302AC302669A32AAD74601BB0AAED9FC404A6E9A57F7
-DC506A2F23EE2C382C4E75E4114708A4988C3A789F6A7B6216B49D842D761ED5
-682FBA1D45DFF7E0FF44A64EB0C06694C98863DE259FCF909175E51BB9E46103
-58A9FC1B87FF06CFBF91BD89781AEE9B690858335BCE928041EF629B9A589258
-D22D18FE643DFFD214F109DB2888828F1858EE34343980D51CDD35240C014CBA
-C7AD597F59D74B8091E677DCED2C5938B82D93CF19F14CFD966A255870165217
-E34EF1579DEA55A4217FDE084E93618876D91227ABDF04318B62EA558CBFE2F0
-EED088B46C20DCCC45BAB9457A7612A8B01C2C6819E798DDA67A95396B9F0962
-988813D3E43ED3B9C473FAF297B5F9F606AAAD4819F380BE1BCBD03BA70E0823
-016DC2D07A085B5D70F5A052BC82D4C45BDB6321EA9F14BF2F84F2C646BE4E18
-27F78CD8E8A0A90B9D935661E8198A7CEC8E809C37DB7393F6498D8A26FF0760
-0D6CBE065AF22DDA25317440E34D4258502F47193C33FF286A79DAEE62575A7D
-1D594A8538507CE918BD684A3EB8D6070005F686C7ADED1BBD2DECAF840964DC
-3C51D700FD91E81E05EE279FF8CDB717F2CD33B24754AE3929983BA6609441F7
-916770D3E1DC7FF10051FBFCB78AAE9BA17C1E7029B7C1F7E3CEED9C5F8A2732
-4A5E2FE395BAC21ED96CB08A1A9F59F9638B6B471B81F49E53B6E80213F1C797
-3BAC2F6833F456E01F287FD31DBA6AE78AE9201ADD142440C2F4EE016538
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (keychg.dvi)
-@start /Fa 180[44 22[44 1[44 1[44 2[44 1[44 43[{}6 83.022
-/CMTT10 rf /Fb 122[531 266 48[66 11[106 16[40 1[40 1[40
-42[0 7[{}8 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)p
--62 131 60 4 v -14 129 4 125 v -52 129 a(\007)p 198 112
-4 119 v 160 112 a(\007)p 410 96 4 113 v 372 96 a(\007)-14
-5 y(\205)92 -1 y(\205)p 621 79 4 107 v 583 79 a(\007)p
-833 63 4 125 v 795 63 a(\007)p 1045 46 4 119 v 1007 46
-a(\007)p 1257 29 4 113 v 1219 29 a(\007)833 -62 y(\205)939
--67 y(\205)p 1468 13 4 107 v 1430 13 a(\007)p 1642 98
-4 135 v 1655 -37 a(4)1688 13 y(4)1665 212 y Fa(K+0+2)p
-1823 112 4 125 v 1785 112 a Fb(\007)p 2034 96 4 119 v
-1996 96 a(\007)p 2246 79 4 113 v 2208 79 a(\007)1823
--12 y(\205)1928 -17 y(\205)p 2458 63 4 107 v 2420 63
-a(\007)p 2632 137 4 92 v 2633 46 a(\007)p 2843 126 4
-98 v 2844 29 a(\007)p 3055 115 4 104 v 3056 13 a(\007)2632
-137 y(\205)2739 132 y(\205)p 3267 104 4 110 v 3268 -4
-a(\007)p 3478 98 4 135 v 3482 98 V 3495 -37 a(4)3528
-13 y(4)3562 -54 y(4)3595 -4 y(4)3638 262 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 262 a
--364 504 4002 4 v -364 538 V -364 571 V -364 604 V -364
-637 V -364 602 a Fb(G)-254 503 y(4)-221 552 y(4)-188
-486 y(4)-155 536 y(4)-246 735 y Fa(K+0+4)p -8 636 4 125
-v -46 636 a Fb(\007)p 121 619 4 115 v 83 619 a(\007)p
-250 602 4 105 v 212 602 a(\007)-8 511 y(\204)116 505
-y(\204)p 380 586 4 95 v 342 586 a(\007)p 471 660 4 92
-v 472 569 a(\007)p 601 654 4 102 v 602 552 a(\007)p 730
-648 4 112 v 731 536 a(\007)471 661 y(\204)597 655 y(\204)p
-859 642 4 122 v 860 519 a(\007)p 989 637 4 135 v 1095
-619 4 125 v 1057 619 a(\007)p 1225 602 4 115 v 1187 602
-a(\007)p 1354 586 4 105 v 1316 586 a(\007)1565 719 y
-Fa(K+0-4)1095 494 y Fb(\204)1219 488 y(\204)p 1484 569
-4 95 v 1446 569 a(\007)1585 503 y(6)1618 552 y(6)1651
-486 y(6)1684 536 y(6)1718 569 y(2)1751 519 y(2)1784 586
-y(2)1817 536 y(2)p 1893 644 4 92 v 1894 552 a(\007)1982
-536 y(6)p 2022 638 4 102 v 1 w(\007)2112 519 y(6)p 2152
-632 4 112 v 1 w(\007)1893 645 y(\204)2019 639 y(\204)p
-2281 626 4 122 v 2282 503 a(\007)p 2411 637 4 135 v 2424
-586 a(6)2457 536 y(6)2490 569 y(2)2523 519 y(2)2440 719
-y Fa(K+0-2)p 2637 602 4 125 v 2599 602 a Fb(\007)p 2767
-586 4 115 v 2729 586 a(\007)p 2896 569 4 105 v 2858 569
-a(\007)2637 478 y(\204)2761 472 y(\204)p 3026 552 4 95
-v 2988 552 a(\007)p 3117 627 4 92 v 3118 536 a(\007)3206
-519 y(6)p 3246 621 4 102 v 1 w(\007)3336 503 y(4)p 3376
-615 4 112 v 1 w(\007)3117 628 y(\204)3243 622 y(\204)p
-3505 609 4 122 v 3506 486 a(\007)p 3635 637 4 135 v 3638
-802 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 802 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/keychg.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: keychg.dvi
+%%CreationDate: Wed Jan 21 13:58:49 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 681 510 784
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE keychg.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1358
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 43 /plus put
+dup 45 /hyphen put
+dup 48 /zero put
+dup 50 /two put
+dup 52 /four put
+dup 75 /K put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC756CB5417F6F05EC7BB9535B18C91B14572544D4E8834
+E38772A731EEA8F581E571A878C8215B9F542D8110341824604994ACAD02DBAB
+7FBCE39606B19569C83F1DF93D5A272787C65B3441FD1C06D2EDC0FB1D1015FD
+6A95C3F4602BAB714A362DFB9B64A5B0B609A05207C4B5DE6D4C5D330DB525A6
+3557AF6A3ADC9659A71E27CF793E55F2A1CE91E69715B11E188E4270C47ED56D
+8B1EFC96694929EE7CF195142EEBD8A349CC08B8D89A9806F23F22EB69C90CBD
+B64953D1548C68C24773412417E8DF1CAD0A99AC8A85DD2269D7F9D2CEEFD0A6
+7E856B11EAAFCB4FAAA1BA662C22A31657258F2A457F15CC561028CB317EF55D
+31AC9C6CC117B13CF1C3671525F59490B2411BB8AF0E793C9A5AA545ECC7663E
+22507C0AD04E5FDB667F8771FCD97261E7A8491DB6FF67B9DE0DD3D8B6BE40B0
+B1325AA2F0A75D4BB92244EE156CB499FEF051D64933D0B15614F62DC233B5F2
+BF172AADAC025F5159409F4484294EE9739093895F37DC61D78F4817EE50DED5
+2876F382DC0F46719A66375A55BCFDD7FE0A5203797410F595907EDF2B0A7E53
+BCBAC20B62691BE4E10F5096012A48E4A1B5940BA4FD8A374D02C1BCC2B41D8D
+1AF07A29E77FC3E65EA551E1B7FFD2E363E2E85A8E2F9FE095F9422BCB0621C6
+B616184178187CB73CFB28D8D55C180A2B5D509EB1B8BB3BA6ED12E5895F51FF
+16C4AEE429EC06A1531A369319E7AAEE7E3A7302F6041B692067823F725453EC
+CBA39B8EDD2C606EFCB5C3DC502F5E5B92222B58417503D0BDB7A92FA3959F48
+F653D8254B1E285EC285823F3C54A4E7D4C78EF52280ABE80AB95B4FD9BA665B
+9E686CA32D483DBA445326A757456A5FE407EEF7894547EEBCDF561D792ED801
+4F37374EFD27CE586BB6C9D0733DB5F5D0295A065E6D5F2872ED9E1D05036FCA
+72C6264FB5B00E835B4C415634D2D7D01A225A74524C3D1CBB68BF0EC062E3F1
+D4E15F021786D5CDDF35E1D591D4BD2C798F8CEBE9351298E13381F893DE6167
+5A3184E9BF27B530A8C5927D05685CC17D8C4EB2684EB54B765BBEA5C3254A29
+6B64660E5DFB217D28E890855850F65E5D42C9E60013691D29F3511DAF36DAE2
+2FE433F7773C957C81E015C7099B34AEB3013D365D02BB9D73AEA31C9C5CDE26
+601006335118F11CDB145BE2812207C2CDDCC26BC194C6B525AEDAE39812F63D
+37D95CD6D2A47F4A57411399327A7F7378A7945C93E9A0A9AB4FB5C9FDEF7891
+9A8950DED5D6F16DFCC28DBC004B7C2A18DA01A75FD89C9A89DB738C04ED486C
+3AD63E2381F2246F4DD53EEBEB7F1762A51AAEEBF25F1D0DA10052441E70C370
+7482FDD5BAAEF0752CEEF0FF777702004EAF806E60474DB24EAD6B1F6238B6B7
+44304678FBA2AC5DFC189DDE6C0653221D8DCEF1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 83 /S put
+dup 132 /Dcaron put
+dup 133 /Ecaron put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
+37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
+9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD033C37E76FB2BC297A8C4C8985
+FB5FCCEDCC9C1F14F6D218923243F49FF7F456628CC9A57A0533AD36177DF4BB
+44584CFA17811CE830DE2B3F12C9D14341A38213D5DFC90335069D8E0DD46312
+4A3C1EDE1A8CFF4C5D25AC2E19C09D111612EECEAC2B33D332CAA17B7F635104
+813EAF27D51349DE803EC3EC265A18F501C90D6B612ABB371FFB3A6B86827748
+3B4BA4C341D265F0D959D841259A78FC7137FD75951BDEF9138B43503B6989F0
+73711AC6E6F44869E6D24AB9B1D30DE332F02D55C84A0715BF8BA4A40AAD85C5
+49F402995060BAD59A2231AF54F2C431BDAC75FF5EE6AEABF06E5FC1344BEF04
+1BF5ABD965099866207E4BF02C305A85067BD09512C67963728DD6410AD9B41A
+3ED1F11F451506142600D3F7F4C72AFB19880DD24B95EEAC1E88B46BF93A5997
+585FE48BCD21A1A0D39E03AB847DE539D15150599EE42DA7D87B1000E24930E0
+5E9C82777BDE41282DC5FEDB07DC6E4A4735881C6D2F05BE59EE6BE5476145D9
+791D05C30909B95F44CF7D604FEF2AD1E268ED44D65AAE1281C96FA111124CCE
+094A8CC9DDBD2124084FFF40077311E3680B8614469DA698F276C134317C002E
+E1004403A36F55E27799381128AAAE19E4DB8AB2E789438011053E21849A26A2
+286BF2AF71AC0BB266A4C19520A2E04F0D7EDEBDAC2C6880EEBDEAE78F4B3065
+EE17894175CA606994BE01C0D079F3F3910AEC5A6C14CC925F8B55EBB489B22A
+E3FB88CBD97234F5A227AD20C352FE98A07109938667CD842C3CE59471CCA8A0
+6A1D4474B381E03E9FD1B123BFA2361EE26890B4F32948DFD28B478E81E8788B
+99FA5BD00902065EBA501C8E44A9747DF7FD4B3F35BD9826723C8384AE567991
+4835778EB7F61DDBD5F706F15F4ECBA48EB39F8A35164EDA809E6F17D94E82C4
+342CA76490F575EE96B0435C3CBBE223999FE1917A31C5A7ABA988563801C80B
+F272DD77357E0FD54023E1E9A361AB3808AAA8DCFF4C9C2B88616DF7717ABD68
+55001AEF8C1A0E9D1DB7935509EF8A03B89F84361601183AC75F28A3B6C0531C
+B8BCE20F7B79CDBCA892302AC302669A32AAD74601BB0AAED9FC404A6E9A57F7
+DC506A2F23EE2C382C4E75E4114708A4988C3A789F6A7B6216B49D842D761ED5
+682FBA1D45DFF7E0FF44A64EB0C06694C98863DE259FCF909175E51BB9E46103
+58A9FC1B87FF06CFBF91BD89781AEE9B690858335BCE928041EF629B9A589258
+D22D18FE643DFFD214F109DB2888828F1858EE34343980D51CDD35240C014CBA
+C7AD597F59D74B8091E677DCED2C5938B82D93CF19F14CFD966A255870165217
+E34EF1579DEA55A4217FDE084E93618876D91227ABDF04318B62EA558CBFE2F0
+EED088B46C20DCCC45BAB9457A7612A8B01C2C6819E798DDA67A95396B9F0962
+988813D3E43ED3B9C473FAF297B5F9F606AAAD4819F380BE1BCBD03BA70E0823
+016DC2D07A085B5D70F5A052BC82D4C45BDB6321EA9F14BF2F84F2C646BE4E18
+27F78CD8E8A0A90B9D935661E8198A7CEC8E809C37DB7393F6498D8A26FF0760
+0D6CBE065AF22DDA25317440E34D4258502F47193C33FF286A79DAEE62575A7D
+1D594A8538507CE918BD684A3EB8D6070005F686C7ADED1BBD2DECAF840964DC
+3C51D700FD91E81E05EE279FF8CDB717F2CD33B24754AE3929983BA6609441F7
+916770D3E1DC7FF10051FBFCB78AAE9BA17C1E7029B7C1F7E3CEED9C5F8A2732
+4A5E2FE395BAC21ED96CB08A1A9F59F9638B6B471B81F49E53B6E80213F1C797
+3BAC2F6833F456E01F287FD31DBA6AE78AE9201ADD142440C2F4EE016538
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (keychg.dvi)
+@start /Fa 180[44 22[44 1[44 1[44 2[44 1[44 43[{}6 83.022
+/CMTT10 rf /Fb 122[531 266 48[66 11[106 16[40 1[40 1[40
+42[0 7[{}8 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)p
+-62 131 60 4 v -14 129 4 125 v -52 129 a(\007)p 198 112
+4 119 v 160 112 a(\007)p 410 96 4 113 v 372 96 a(\007)-14
+5 y(\205)92 -1 y(\205)p 621 79 4 107 v 583 79 a(\007)p
+833 63 4 125 v 795 63 a(\007)p 1045 46 4 119 v 1007 46
+a(\007)p 1257 29 4 113 v 1219 29 a(\007)833 -62 y(\205)939
+-67 y(\205)p 1468 13 4 107 v 1430 13 a(\007)p 1642 98
+4 135 v 1655 -37 a(4)1688 13 y(4)1665 212 y Fa(K+0+2)p
+1823 112 4 125 v 1785 112 a Fb(\007)p 2034 96 4 119 v
+1996 96 a(\007)p 2246 79 4 113 v 2208 79 a(\007)1823
+-12 y(\205)1928 -17 y(\205)p 2458 63 4 107 v 2420 63
+a(\007)p 2632 137 4 92 v 2633 46 a(\007)p 2843 126 4
+98 v 2844 29 a(\007)p 3055 115 4 104 v 3056 13 a(\007)2632
+137 y(\205)2739 132 y(\205)p 3267 104 4 110 v 3268 -4
+a(\007)p 3478 98 4 135 v 3482 98 V 3495 -37 a(4)3528
+13 y(4)3562 -54 y(4)3595 -4 y(4)3638 262 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 262 a
+-364 504 4002 4 v -364 538 V -364 571 V -364 604 V -364
+637 V -364 602 a Fb(G)-254 503 y(4)-221 552 y(4)-188
+486 y(4)-155 536 y(4)-246 735 y Fa(K+0+4)p -8 636 4 125
+v -46 636 a Fb(\007)p 121 619 4 115 v 83 619 a(\007)p
+250 602 4 105 v 212 602 a(\007)-8 511 y(\204)116 505
+y(\204)p 380 586 4 95 v 342 586 a(\007)p 471 660 4 92
+v 472 569 a(\007)p 601 654 4 102 v 602 552 a(\007)p 730
+648 4 112 v 731 536 a(\007)471 661 y(\204)597 655 y(\204)p
+859 642 4 122 v 860 519 a(\007)p 989 637 4 135 v 1095
+619 4 125 v 1057 619 a(\007)p 1225 602 4 115 v 1187 602
+a(\007)p 1354 586 4 105 v 1316 586 a(\007)1565 719 y
+Fa(K+0-4)1095 494 y Fb(\204)1219 488 y(\204)p 1484 569
+4 95 v 1446 569 a(\007)1585 503 y(6)1618 552 y(6)1651
+486 y(6)1684 536 y(6)1718 569 y(2)1751 519 y(2)1784 586
+y(2)1817 536 y(2)p 1893 644 4 92 v 1894 552 a(\007)1982
+536 y(6)p 2022 638 4 102 v 1 w(\007)2112 519 y(6)p 2152
+632 4 112 v 1 w(\007)1893 645 y(\204)2019 639 y(\204)p
+2281 626 4 122 v 2282 503 a(\007)p 2411 637 4 135 v 2424
+586 a(6)2457 536 y(6)2490 569 y(2)2523 519 y(2)2440 719
+y Fa(K+0-2)p 2637 602 4 125 v 2599 602 a Fb(\007)p 2767
+586 4 115 v 2729 586 a(\007)p 2896 569 4 105 v 2858 569
+a(\007)2637 478 y(\204)2761 472 y(\204)p 3026 552 4 95
+v 2988 552 a(\007)p 3117 627 4 92 v 3118 536 a(\007)3206
+519 y(6)p 3246 621 4 102 v 1 w(\007)3336 503 y(4)p 3376
+615 4 112 v 1 w(\007)3117 628 y(\204)3243 622 y(\204)p
+3505 609 4 122 v 3506 486 a(\007)p 3635 637 4 135 v 3638
+802 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 802 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs1.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs1.eps
index 51ca3beb4e4..5a0c523a776 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs1.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs1.eps
@@ -1,707 +1,707 @@
-%% LaTeX2e file `eps/kslurs1.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: kslurs1.dvi
-%%CreationDate: Wed Jan 21 13:59:24 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 735 312 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE kslurs1.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1359
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 40 /parenleft put
-dup 41 /parenright put
-dup 72 /H put
-dup 102 /f put
-dup 104 /h put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC756CB5417F6F05EC7BB9535B18C91B14572544D4E8834
-E38772A731EEA8F581E571A878C8215B9F542D8110341824604994ACAD02DBAB
-7FBCE39606B19569C83F1DF93D5A272787C65B3441FD1C06D2EDC0FB1D1015FD
-6A95C3F4602BAB714A362DFB9B64A5B0B609A05207C4B5DE6D4C5D330DB525A6
-3557AF6A3ADC9659A71E27CF78708C89C3907F88F1689272B424CAB12095FC8A
-95D08B90B05474ADD448C50026FD7D7CC3CA9121DEEF5E27C977B79DB024D169
-700F24DDE5522EF6D5B14A94BB28A2E50B21804A13152132CA1D5D8B2A89AD56
-59602CEB4BF74C920222A7C64260307B1BDC568212FD1C4CC59B791BB2CE1530
-D565CA1DD8C2C3C963FACC0AC5E3D0660BDB2676DF3767F0DE0BB4CCEC3EE3AB
-B4373D0D04933C7F5CDB6B182EC4345FE53DAAC94D45691D50A9D688EE6F619D
-4E60F236BB6031172D162412279BBE8475D6454637B1BD49453BCF5A7FDE4F4E
-4F2723486FC28EB0DCF0DCD67D7DEFF53645BF01E900F71D251C2D0B5F02D12B
-F47BFD2D5C0EBF2C8F22EBB86710C191AF3674E24621E416D0F6FF04941C67A2
-AFA59CC174DA733417A78A230797426640470FA3B6078760AE8E42EA7E00F770
-88762A8C9180F71495F588AE56A405C572F215DFE57E7AE05A5046E736884D0E
-6E0C2B3CAD3ECB76F0994B4AECF2F13CBD5BF7003F47B6C76FC3D41D124B012C
-BC43EA98C8B200474166BA192CDB871BF6DD31EEC7540585072AE0444B1687DD
-E44CD47B9E52FDA6D2D4E414486A47C2EC0B9018BF1958D7B4518385438D7184
-59E3E6EF36132F4EC475A4F62A5064F411F308CCC586C31E2E6E012729A06067
-73FE3247B5BCC428A71513C5F8984339BBBD51ACB8BBF5CB98BAB9FCD790EB21
-184977761B8013539A34DDE51FBE7A603E88CD3BDE12817BBF27AA52DDFB189B
-5D3DF7AE995246F594343F38B54E1E46E9697D5273ABEDC8F875E354926412A2
-D9E86833288473DB0C4726AA79FDD517A92123E2C1E5DB9D3C28EA7873680210
-60632FE1FF814B26790E2A510D94BC95B13C5736FD0400AE99D3D6E94A422109
-D5220B8C9ADB21A70DB3CF6B40FD5CF320C7FE7E9797817A7E78D3BB68D7D709
-BB6FDEB4C9F685A48AE0C2650E8CA9C058956CF17741E16622A4DEEAE2E7E856
-93C27E27CCE2CEBE09D1656061ACD3F18E2AFBE855AB36199C1B5C49B8D17CB7
-24DCB5C4E9F6D28A5FA8CBAA31450A44A610ED7CDEC449606FC225AE16677B03
-B17B3E24AE218F148767C02BC5C7F1CBBEB7774FD49E424B2B632B1D6CD425FC
-CCBF74582B8E9EE715B1A3257CF67B9F15B355A3BCF624491F4DDD84701A9B5F
-4D01D29CC8A8AB9601283FDEF8D25C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
-C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
-9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
-F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
-0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
-3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
-555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
-B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
-EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
-D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
-494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
-CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
-C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
-357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
-E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
-F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
-B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
-5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
-8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
-16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
-AC14244C421456BB3E06591DEEB9DCDC135C6D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (kslurs1.dvi)
-@start /Fa 151[44 1[44 29[44 30[44 44 40[{}5 83.022 /CMTT10
-rf /Fb 184[106 63[0 7[{}2 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-155 122 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -155
-122 a -178 279 a Fa(\()131 b(\))p -140 96 4 117 v -178
-96 a Fb(\007)30 63 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 30 63 a 30 63 a
- end
- 30 63 a 49 63 4
-117 v -19 w Fb(\007)p 198 98 4 135 v 291 122 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 291 122
-a 268 279 a Fa(\(f)43 b(\))p 306 96 4 117 v 268 96 a
-Fb(\007)476 63 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 476 63 a 476 63 a
- end
- 476 63 a 495 63 4
-117 v -19 w Fb(\007)p 644 98 4 135 v 737 122 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 737 122
-a 714 279 a Fa(\(h)g(\))p 752 96 4 117 v 714 96 a Fb(\007)922
-63 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 922 63 a 922 63 a
- end
- 922 63 a 941 63 4 117 v -19 w
-Fb(\007)p 1090 98 4 135 v 1183 122 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1183 122 a 1160
-279 a Fa(\(hh)g(\))p 1198 96 4 117 v 1160 96 a Fb(\007)1368
-63 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1368 63 a 1368 63 a
- end
- 1368 63 a 1387 63 4 117 v -19
-w Fb(\007)p 1536 98 4 135 v 1629 122 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1629 122 a 1606
-279 a Fa(\(HH)g(\))p 1644 96 4 117 v 1606 96 a Fb(\007)1814
-63 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1814 63 a 1814 63 a
- end
- 1814 63 a 1833 63 4 117 v -19
-w Fb(\007)p 1982 98 4 135 v 1986 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 262 a eop
-end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/kslurs1.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: kslurs1.dvi
+%%CreationDate: Wed Jan 21 13:59:24 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 735 312 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE kslurs1.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1359
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 40 /parenleft put
+dup 41 /parenright put
+dup 72 /H put
+dup 102 /f put
+dup 104 /h put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC756CB5417F6F05EC7BB9535B18C91B14572544D4E8834
+E38772A731EEA8F581E571A878C8215B9F542D8110341824604994ACAD02DBAB
+7FBCE39606B19569C83F1DF93D5A272787C65B3441FD1C06D2EDC0FB1D1015FD
+6A95C3F4602BAB714A362DFB9B64A5B0B609A05207C4B5DE6D4C5D330DB525A6
+3557AF6A3ADC9659A71E27CF78708C89C3907F88F1689272B424CAB12095FC8A
+95D08B90B05474ADD448C50026FD7D7CC3CA9121DEEF5E27C977B79DB024D169
+700F24DDE5522EF6D5B14A94BB28A2E50B21804A13152132CA1D5D8B2A89AD56
+59602CEB4BF74C920222A7C64260307B1BDC568212FD1C4CC59B791BB2CE1530
+D565CA1DD8C2C3C963FACC0AC5E3D0660BDB2676DF3767F0DE0BB4CCEC3EE3AB
+B4373D0D04933C7F5CDB6B182EC4345FE53DAAC94D45691D50A9D688EE6F619D
+4E60F236BB6031172D162412279BBE8475D6454637B1BD49453BCF5A7FDE4F4E
+4F2723486FC28EB0DCF0DCD67D7DEFF53645BF01E900F71D251C2D0B5F02D12B
+F47BFD2D5C0EBF2C8F22EBB86710C191AF3674E24621E416D0F6FF04941C67A2
+AFA59CC174DA733417A78A230797426640470FA3B6078760AE8E42EA7E00F770
+88762A8C9180F71495F588AE56A405C572F215DFE57E7AE05A5046E736884D0E
+6E0C2B3CAD3ECB76F0994B4AECF2F13CBD5BF7003F47B6C76FC3D41D124B012C
+BC43EA98C8B200474166BA192CDB871BF6DD31EEC7540585072AE0444B1687DD
+E44CD47B9E52FDA6D2D4E414486A47C2EC0B9018BF1958D7B4518385438D7184
+59E3E6EF36132F4EC475A4F62A5064F411F308CCC586C31E2E6E012729A06067
+73FE3247B5BCC428A71513C5F8984339BBBD51ACB8BBF5CB98BAB9FCD790EB21
+184977761B8013539A34DDE51FBE7A603E88CD3BDE12817BBF27AA52DDFB189B
+5D3DF7AE995246F594343F38B54E1E46E9697D5273ABEDC8F875E354926412A2
+D9E86833288473DB0C4726AA79FDD517A92123E2C1E5DB9D3C28EA7873680210
+60632FE1FF814B26790E2A510D94BC95B13C5736FD0400AE99D3D6E94A422109
+D5220B8C9ADB21A70DB3CF6B40FD5CF320C7FE7E9797817A7E78D3BB68D7D709
+BB6FDEB4C9F685A48AE0C2650E8CA9C058956CF17741E16622A4DEEAE2E7E856
+93C27E27CCE2CEBE09D1656061ACD3F18E2AFBE855AB36199C1B5C49B8D17CB7
+24DCB5C4E9F6D28A5FA8CBAA31450A44A610ED7CDEC449606FC225AE16677B03
+B17B3E24AE218F148767C02BC5C7F1CBBEB7774FD49E424B2B632B1D6CD425FC
+CCBF74582B8E9EE715B1A3257CF67B9F15B355A3BCF624491F4DDD84701A9B5F
+4D01D29CC8A8AB9601283FDEF8D25C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
+C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
+9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
+F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
+0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
+3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
+555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
+B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
+EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
+D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
+494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
+CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
+C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
+357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
+E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
+F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
+B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
+5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
+8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
+16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
+AC14244C421456BB3E06591DEEB9DCDC135C6D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (kslurs1.dvi)
+@start /Fa 151[44 1[44 29[44 30[44 44 40[{}5 83.022 /CMTT10
+rf /Fb 184[106 63[0 7[{}2 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-155 122 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -155
+122 a -178 279 a Fa(\()131 b(\))p -140 96 4 117 v -178
+96 a Fb(\007)30 63 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 30 63 a 30 63 a
+ end
+ 30 63 a 49 63 4
+117 v -19 w Fb(\007)p 198 98 4 135 v 291 122 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 291 122
+a 268 279 a Fa(\(f)43 b(\))p 306 96 4 117 v 268 96 a
+Fb(\007)476 63 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 476 63 a 476 63 a
+ end
+ 476 63 a 495 63 4
+117 v -19 w Fb(\007)p 644 98 4 135 v 737 122 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 737 122
+a 714 279 a Fa(\(h)g(\))p 752 96 4 117 v 714 96 a Fb(\007)922
+63 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 922 63 a 922 63 a
+ end
+ 922 63 a 941 63 4 117 v -19 w
+Fb(\007)p 1090 98 4 135 v 1183 122 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1183 122 a 1160
+279 a Fa(\(hh)g(\))p 1198 96 4 117 v 1160 96 a Fb(\007)1368
+63 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1368 63 a 1368 63 a
+ end
+ 1368 63 a 1387 63 4 117 v -19
+w Fb(\007)p 1536 98 4 135 v 1629 122 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1629 122 a 1606
+279 a Fa(\(HH)g(\))p 1644 96 4 117 v 1606 96 a Fb(\007)1814
+63 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1814 63 a 1814 63 a
+ end
+ 1814 63 a 1833 63 4 117 v -19
+w Fb(\007)p 1982 98 4 135 v 1986 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 262 a eop
+end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs2.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs2.eps
index 6a6b22473ed..c2ec3336a86 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs2.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurs2.eps
@@ -1,727 +1,727 @@
-%% LaTeX2e file `eps/kslurs2.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: kslurs2.dvi
-%%CreationDate: Wed Jan 21 13:59:47 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 734 312 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE kslurs2.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1359
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 72 /H put
-dup 102 /f put
-dup 104 /h put
-dup 115 /s put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
-7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
-81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
-D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
-740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
-921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
-495069A1DDF11DC589D2E91C1514C2799C5B954EB8B347918C4920C7142A2AC6
-8231DD2AF57E9540C46BDA6AAC09689487F5E0EB021CADA860FD25B2E5230259
-7BFF0F12D7DF5CE219716715073177028CE276FC313D6A101898D1A6BB0AD8D5
-662A85EE6B921A72E46589CC08EA87EECFDF36B819B07306C44AC3FBCD134930
-4B2F9EC4D5C57518E8210FC2C61DA3FD185CFA65DF3DB858BCF75E95321A7131
-547E0C854068826FAB1D8A48A3708F6B3AA1DE3502DDFE91A553D31ACB26D732
-FD54BD83E3C485032A061769D33F2D8BD8AF3E5EB9BC7BE18F5EB7A440C673D6
-25151DBC12F033A1D5D20EBF8530E7129D0A90AD3EA1E185EB58B12472AF22F9
-8DC999EED472B2C2B85B60A09D6A2D42E04AD651074A7FB8EEAD846888F72410
-59A99B49ACFC71131694C405F36C8F710B467AB3742C6EE007FE240976397D06
-E1E409013769EC79E2F70C1A9B84991F3AAE219469E3F323439BF51726A76F60
-DC410D411CDA75C4C5C7864FA957AAFEEA79FEC8CF95A53326E328A8F446C415
-10A842D5DFFA8223B034B62B87A7B6BF4FEBD03132F9075C271F205407839CE1
-CCE65AFD00A134F3C357C1E7666BA9F121A12E2B9BB63F2814EED3E56A6B66D1
-8B2C866622030FA1AA10AE103A4E9244C9687E2356B635DCBA342CDF976583AC
-E27BE925C57585CA0FF2FBAA5169551AE362F31CEFB8F71A4FFFAF0D97924631
-A3D3F22E8B3A54268D8D742FA1F23ED4B73390654FB4E132B615FF0A0798ED0B
-7DA27D8116AEF3E3326774FA5C0662104B61BA54D437030951984A98A1D0A6D7
-6F3DFD8899BEBA630DB1DF819C7CAD4C243AAC157F3BC44A9582DA059DC13828
-4A25265D6AA0407F9B9EB6DB87FF4FEED5B6A109FE0521D3BF720F8446D9C758
-36C279F20E294F7974C7A8E63ACA1B534AE8C1B517013FC03B940095E021CEE1
-2FE7C094AA23B7B5BC016BC5E8BF9EB96DC6F4ECFA90685D740F92D22D5E1D5F
-4CF3474831AFF202A57C89D89BA25869483CCC82F3D1B1B364DC66897BAFEE2E
-EF3154F6D65F7553E4F6EA6D376E579F119B12882419C5EA85A8707DBC1E87CC
-8D563899C7632E24A53CA5D050588B9A889ED7EDD347C7D98381D44C1A5823D4
-F171B3D6DA586C6C545DB2294CDEE0CD36D898318B57FE9B4CA514FA43AE584A
-6033CD7DE353A2D119B825AA7517D9687BDD1E438E90A849054A4EBA890F3A00
-0C7A13B16FAEEF6D31110E5310BB27C428498D4578E660265AAB30CA156E16F0
-0A43A6EC0A5496B850A53B8018EB965453AB3758D31F9F7DE6C93F655EA57DF6
-E87B08DF568D8B9034F1C4FCDD6B73C552D1DEB9605768CDBFC4028F42373682
-D2F7E60386F7368C5BE8BDEC5D5B29D060BA790A3A33FD3778646A2518FC97DE
-EDE030EC4FD3CACB08D58379AF1FB31DB2F2814BE34141E339C14A0D4BDE8A7C
-C4D79C6257C9898492659F421469939DB3BBE9AF9A95F632701C5C53482A2B18
-806DB57A3085D6F407D97881B3888EA65929493B03590BC9423F317A18FDCB85
-849406F24E59B41F673AFB499B5253CAC1A4F52E45F572DADB137DA541574771
-811A68701B81CC369EBEAC00F4D2AFF2C5EC3597FDBE3558AAC4397A55C65EEA
-C0A0FC545BECB36595B387282424B32782F3B738191DBD0B4B11E377E798F743
-2EE0EE0A8AB2F27A69C049A254BCBD7CEC8AAE2EFF3DC7BFD908E1DC382E5F69
-542EF247D4543527927D23592B07D41EB441D93F42A7ABE61742E0BB8F75EDC6
-777721AD2F40D9FE781F97E685E1ACA482DEEEC783AB1F87178DCEEACF6E74BE
-D597199B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF83287B2C762EFD151232F1E1B856941A07C76AD4A6030971385C9614
-AF82D00B6895EE8090AE00C2AABDB1D374E9C0317A2F09AC4177697BF63E3627
-D9EBBE30E9D146E27FC0ADC8AE7C3D7A1991AD1D243A9D862E4F268136DA3550
-8230C17ED70FD1763C8D45041B6E46171F7F37B395304CE44CE0077B6AD46D53
-5F8BDDE09732958D00A2B463F8F609FE3D6B20EBFA30AAC3ECCBF6039C8E9EEF
-2023730F8DC41E7BCC26F26F01B717D07F34A5472635CDE17185A14FE17F1D42
-45D5D51CCD4DF7C5E27D97FED25E5C3E0D90B4363736DF9490104B3C4E24D571
-2A1D512B35D5072ADB70DA4C0C58261A83EC38C301D68187A6C8497D27712CDA
-0BAE303A69CD15C4E1D4541864355B74EACBBA7B5DC82CD0C4D85DCBF2CBA386
-E1E7D76EBF80FA169BC5BA62AC0D08FF48E2E17BB4301C9081B2FB58C506D896
-9A5860BAF45AA28F4BFABA3E4E34A688FCADEBBE28BFEAEB9C92B9FBF241A834
-2F8BB3CB5DEED85D1A13048D43CDDB439A27F6E6DB485B4FA7F3CD358D9B9BCD
-60A1B71FAED11AAECB95800DE4D3AFDDE2B7D45A98B048DDBA9448F4B17168C4
-E030962D21DB9753BFA5305CBD00123401CF7FF018A5EC990600148CEE8555BD
-B6332D422923CF2116FD5F0ABD8BEA064E9FBD98DF2C16890920AFC6475947FA
-579F700AF7EF9DF8D64C05FD70B998CB12FFCE033A4A4DE938DDB27E8F887FDE
-B6C927FFF339F501C7A1A141F10A439B7E4F16FEACC6CCDDBEFAE73137C2A479
-D1164C40D2DA5F1E48AD08A67339DD054356204ADFEC881E4469E9F64A660B84
-0F341C95F3987B198DB8F5E801CA2D420E52C1D727BB16A516485F5609968622
-A0E0367DA9F8AE81FFDFFDA8991BA220F0E25BC0E6FEE87BE5C52D5323388F93
-3F1108D74468D3D4B8F9041C564626D9CBFDC221D39147F89806A60ADBEC556C
-C1D5A3E5628366B2B5C4DF96306501624260FB31D93C88FEC1987D07C53FE45A
-02EEDB8CCD1B2BF4B1F9E8C52E7CD13137EAC87A59E873A011458E604A181A20
-307772346FC959B5B700C14916245B1EDEDA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (kslurs2.dvi)
-@start /Fa 140[44 10[44 1[44 29[44 72[{}4 83.022 /CMTT10
-rf /Fb 184[106 62[0 0 7[{}3 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-159 89 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -159
-89 a -182 295 a Fa(s)p -144 63 4 117 v -182 63 a Fb(\007)p
--6 98 4 135 v 80 63 a
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 80 63 a 80 63 a
- end
- 80 63 a 60 295
-a Fa(s)p 98 63 4 117 v 60 63 a Fb(\007)260 89 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 260 89
-a 236 295 a Fa(sf)p 275 63 4 117 v 237 63 a Fb(\007)p
-413 98 4 135 v 498 63 a
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 498 63 a 498 63 a
- end
- 498 63 a 478
-295 a Fa(s)p 517 63 4 117 v 479 63 a Fb(\007)678 89 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
-
-678 89 a 655 295 a Fa(sh)p 693 63 4 117 v 655 63 a Fb(\007)p
-831 98 4 135 v 917 63 a
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 917 63 a 917 63 a
- end
- 917 63 a 897
-295 a Fa(s)p 935 63 4 117 v 897 63 a Fb(\007)1096 89
-y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1096 89 a 1073 295 a Fa(shh)p 1111 63 4 117 v 1073
-63 a Fb(\007)p 1249 98 4 135 v 1335 63 a
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1335 63 a 1335
-63 a
- end
- 1335 63 a 1315 295 a Fa(s)p 1353 63 4 117 v 1315
-63 a Fb(\007)1514 89 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1514 89 a 1491 295 a Fa(sHH)p
-1529 63 4 117 v 1491 63 a Fb(\007)p 1668 98 4 135 v 1753
-63 a
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1753 63 a 1753 63 a
- end
- 1753 63 a 1771 63 4 117 v -20
-w Fb(\010)p 1982 98 4 135 v 1986 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 1986 262 a eop
-end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/kslurs2.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: kslurs2.dvi
+%%CreationDate: Wed Jan 21 13:59:47 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 734 312 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE kslurs2.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1359
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 72 /H put
+dup 102 /f put
+dup 104 /h put
+dup 115 /s put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
+7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
+81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
+D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
+740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
+921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
+495069A1DDF11DC589D2E91C1514C2799C5B954EB8B347918C4920C7142A2AC6
+8231DD2AF57E9540C46BDA6AAC09689487F5E0EB021CADA860FD25B2E5230259
+7BFF0F12D7DF5CE219716715073177028CE276FC313D6A101898D1A6BB0AD8D5
+662A85EE6B921A72E46589CC08EA87EECFDF36B819B07306C44AC3FBCD134930
+4B2F9EC4D5C57518E8210FC2C61DA3FD185CFA65DF3DB858BCF75E95321A7131
+547E0C854068826FAB1D8A48A3708F6B3AA1DE3502DDFE91A553D31ACB26D732
+FD54BD83E3C485032A061769D33F2D8BD8AF3E5EB9BC7BE18F5EB7A440C673D6
+25151DBC12F033A1D5D20EBF8530E7129D0A90AD3EA1E185EB58B12472AF22F9
+8DC999EED472B2C2B85B60A09D6A2D42E04AD651074A7FB8EEAD846888F72410
+59A99B49ACFC71131694C405F36C8F710B467AB3742C6EE007FE240976397D06
+E1E409013769EC79E2F70C1A9B84991F3AAE219469E3F323439BF51726A76F60
+DC410D411CDA75C4C5C7864FA957AAFEEA79FEC8CF95A53326E328A8F446C415
+10A842D5DFFA8223B034B62B87A7B6BF4FEBD03132F9075C271F205407839CE1
+CCE65AFD00A134F3C357C1E7666BA9F121A12E2B9BB63F2814EED3E56A6B66D1
+8B2C866622030FA1AA10AE103A4E9244C9687E2356B635DCBA342CDF976583AC
+E27BE925C57585CA0FF2FBAA5169551AE362F31CEFB8F71A4FFFAF0D97924631
+A3D3F22E8B3A54268D8D742FA1F23ED4B73390654FB4E132B615FF0A0798ED0B
+7DA27D8116AEF3E3326774FA5C0662104B61BA54D437030951984A98A1D0A6D7
+6F3DFD8899BEBA630DB1DF819C7CAD4C243AAC157F3BC44A9582DA059DC13828
+4A25265D6AA0407F9B9EB6DB87FF4FEED5B6A109FE0521D3BF720F8446D9C758
+36C279F20E294F7974C7A8E63ACA1B534AE8C1B517013FC03B940095E021CEE1
+2FE7C094AA23B7B5BC016BC5E8BF9EB96DC6F4ECFA90685D740F92D22D5E1D5F
+4CF3474831AFF202A57C89D89BA25869483CCC82F3D1B1B364DC66897BAFEE2E
+EF3154F6D65F7553E4F6EA6D376E579F119B12882419C5EA85A8707DBC1E87CC
+8D563899C7632E24A53CA5D050588B9A889ED7EDD347C7D98381D44C1A5823D4
+F171B3D6DA586C6C545DB2294CDEE0CD36D898318B57FE9B4CA514FA43AE584A
+6033CD7DE353A2D119B825AA7517D9687BDD1E438E90A849054A4EBA890F3A00
+0C7A13B16FAEEF6D31110E5310BB27C428498D4578E660265AAB30CA156E16F0
+0A43A6EC0A5496B850A53B8018EB965453AB3758D31F9F7DE6C93F655EA57DF6
+E87B08DF568D8B9034F1C4FCDD6B73C552D1DEB9605768CDBFC4028F42373682
+D2F7E60386F7368C5BE8BDEC5D5B29D060BA790A3A33FD3778646A2518FC97DE
+EDE030EC4FD3CACB08D58379AF1FB31DB2F2814BE34141E339C14A0D4BDE8A7C
+C4D79C6257C9898492659F421469939DB3BBE9AF9A95F632701C5C53482A2B18
+806DB57A3085D6F407D97881B3888EA65929493B03590BC9423F317A18FDCB85
+849406F24E59B41F673AFB499B5253CAC1A4F52E45F572DADB137DA541574771
+811A68701B81CC369EBEAC00F4D2AFF2C5EC3597FDBE3558AAC4397A55C65EEA
+C0A0FC545BECB36595B387282424B32782F3B738191DBD0B4B11E377E798F743
+2EE0EE0A8AB2F27A69C049A254BCBD7CEC8AAE2EFF3DC7BFD908E1DC382E5F69
+542EF247D4543527927D23592B07D41EB441D93F42A7ABE61742E0BB8F75EDC6
+777721AD2F40D9FE781F97E685E1ACA482DEEEC783AB1F87178DCEEACF6E74BE
+D597199B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF83287B2C762EFD151232F1E1B856941A07C76AD4A6030971385C9614
+AF82D00B6895EE8090AE00C2AABDB1D374E9C0317A2F09AC4177697BF63E3627
+D9EBBE30E9D146E27FC0ADC8AE7C3D7A1991AD1D243A9D862E4F268136DA3550
+8230C17ED70FD1763C8D45041B6E46171F7F37B395304CE44CE0077B6AD46D53
+5F8BDDE09732958D00A2B463F8F609FE3D6B20EBFA30AAC3ECCBF6039C8E9EEF
+2023730F8DC41E7BCC26F26F01B717D07F34A5472635CDE17185A14FE17F1D42
+45D5D51CCD4DF7C5E27D97FED25E5C3E0D90B4363736DF9490104B3C4E24D571
+2A1D512B35D5072ADB70DA4C0C58261A83EC38C301D68187A6C8497D27712CDA
+0BAE303A69CD15C4E1D4541864355B74EACBBA7B5DC82CD0C4D85DCBF2CBA386
+E1E7D76EBF80FA169BC5BA62AC0D08FF48E2E17BB4301C9081B2FB58C506D896
+9A5860BAF45AA28F4BFABA3E4E34A688FCADEBBE28BFEAEB9C92B9FBF241A834
+2F8BB3CB5DEED85D1A13048D43CDDB439A27F6E6DB485B4FA7F3CD358D9B9BCD
+60A1B71FAED11AAECB95800DE4D3AFDDE2B7D45A98B048DDBA9448F4B17168C4
+E030962D21DB9753BFA5305CBD00123401CF7FF018A5EC990600148CEE8555BD
+B6332D422923CF2116FD5F0ABD8BEA064E9FBD98DF2C16890920AFC6475947FA
+579F700AF7EF9DF8D64C05FD70B998CB12FFCE033A4A4DE938DDB27E8F887FDE
+B6C927FFF339F501C7A1A141F10A439B7E4F16FEACC6CCDDBEFAE73137C2A479
+D1164C40D2DA5F1E48AD08A67339DD054356204ADFEC881E4469E9F64A660B84
+0F341C95F3987B198DB8F5E801CA2D420E52C1D727BB16A516485F5609968622
+A0E0367DA9F8AE81FFDFFDA8991BA220F0E25BC0E6FEE87BE5C52D5323388F93
+3F1108D74468D3D4B8F9041C564626D9CBFDC221D39147F89806A60ADBEC556C
+C1D5A3E5628366B2B5C4DF96306501624260FB31D93C88FEC1987D07C53FE45A
+02EEDB8CCD1B2BF4B1F9E8C52E7CD13137EAC87A59E873A011458E604A181A20
+307772346FC959B5B700C14916245B1EDEDA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (kslurs2.dvi)
+@start /Fa 140[44 10[44 1[44 29[44 72[{}4 83.022 /CMTT10
+rf /Fb 184[106 62[0 0 7[{}3 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 2350 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-159 89 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -159
+89 a -182 295 a Fa(s)p -144 63 4 117 v -182 63 a Fb(\007)p
+-6 98 4 135 v 80 63 a
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 80 63 a 80 63 a
+ end
+ 80 63 a 60 295
+a Fa(s)p 98 63 4 117 v 60 63 a Fb(\007)260 89 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 260 89
+a 236 295 a Fa(sf)p 275 63 4 117 v 237 63 a Fb(\007)p
+413 98 4 135 v 498 63 a
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 498 63 a 498 63 a
+ end
+ 498 63 a 478
+295 a Fa(s)p 517 63 4 117 v 479 63 a Fb(\007)678 89 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+
+678 89 a 655 295 a Fa(sh)p 693 63 4 117 v 655 63 a Fb(\007)p
+831 98 4 135 v 917 63 a
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 917 63 a 917 63 a
+ end
+ 917 63 a 897
+295 a Fa(s)p 935 63 4 117 v 897 63 a Fb(\007)1096 89
+y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1096 89 a 1073 295 a Fa(shh)p 1111 63 4 117 v 1073
+63 a Fb(\007)p 1249 98 4 135 v 1335 63 a
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1335 63 a 1335
+63 a
+ end
+ 1335 63 a 1315 295 a Fa(s)p 1353 63 4 117 v 1315
+63 a Fb(\007)1514 89 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1514 89 a 1491 295 a Fa(sHH)p
+1529 63 4 117 v 1491 63 a Fb(\007)p 1668 98 4 135 v 1753
+63 a
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1753 63 a 1753 63 a
+ end
+ 1753 63 a 1771 63 4 117 v -20
+w Fb(\010)p 1982 98 4 135 v 1986 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 1986 262 a eop
+end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurtweaks.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurtweaks.eps
index cbe2741c41f..347b81e35cd 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurtweaks.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/kslurtweaks.eps
@@ -1,747 +1,747 @@
-%% LaTeX2e file `eps/kslurtweaks.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: kslurtweaks.dvi
-%%CreationDate: Wed Jan 21 14:00:21 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 736 440 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE kslurtweaks.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1400
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 43 /plus put
-dup 45 /hyphen put
-dup 65 /A put
-dup 112 /p put
-dup 115 /s put
-dup 116 /t put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
-7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
-81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
-D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
-740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
-921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
-495069A1DDF11DC589D2E91C1514C2799C5B954EB8B347918C4920C7142A2AC6
-8231DD2AF57E9540C46BDA6AAC09689487F5E0EB021CADA860FD25B2E5230259
-7BFF0F12D7DF5CE219716715073177028CE276FC313D6A101898D1A6BB0AD8D5
-662A85EE6B921A72E46589CC08EA87EECFDF36B819B07306C44AC3FBCD134930
-4B2F9EC4D5C57518E8210FC2C61DA3FD185CFA65DF3DB858BCF75E95321A7131
-547E0C854068826FAB1D8A48A3708F6B3AA1DE3502DDFE91A553D31ACB26D732
-FD54BD83E3C485032A061769D33F2D8BD8AF3E5EB9BC7BE18F5EB7A440C673D6
-25151DBC12F033A1D5D20EBF8530E7129D0A90AD3EA1E185EB58B12472AF22F9
-8DC999EED472B2C2B85B60A09D6A2D42E04AD651074A7FB8EEAD846888F72410
-59A99B49ACFC71131694C405F36C8F710B467AB3742C6EE007FE240976397D06
-E1E409013769EC79E2F70C1A9B84991F3AAE219469E3F323439BF51726A76F60
-DC410D411CDA75C4C5C7864FA957AAFEEA79FEC8CF95A53326E328A8F446C415
-10A842D5DFFA8223B034B62B80D1A97EEE66B66D5AFBEC3756D16624CF69F000
-D16A16263208FCA1816E1725F39215694896C69BC40880EFCEB8D91A7661AD81
-34E3C94FE80AA65A15DD9590EF6C9215C9A7DAD7089EB18A1237C8F7668BFC49
-B501F92448D40AE0E32BD0C50C3D1702B8CD0BCCA7B2B9FB10B3E2CDBE929DEB
-046B25CC240633555939B92866D85D32E65646505D2EC2B808540C394E83DCDA
-A63A3DAC44B04F8F6690D88A88E7081F16183B7BE92EA21C1DB6DC5C6BFAD8F9
-63847F23B2B2093E4132A805805DA3D9397DBB13753E6C213C2DA837BD95825B
-4598AE0187BB989818A1ADB46FB8767132B26DA53E19A26FEEE283140A706552
-51AA8E6174027559A2BACEDF0ACE336DC970EA47012C61928851CF8D6FA15E25
-751F47D61E2A685A03B2906517A69C5141256068A434203194AD1A517B752769
-51F6FE414C9D258B59E711ADDAC0745888459C6433A5E6FEF5E4AAF3A4BC7DDD
-538367A784CDB89884E999F6490E4221D68110617BFEB5C7A64E0883210572C1
-8E5508D6AE0E71AB667F2CA305C7E36CAADF58E9A09105601DEE9383B517032A
-2047E118D1CD12575183BB15312BA00015295BEBDCF9F784DF1FE8007C2EC8F4
-9C67A5AAAF5A5A69776B16ED355C148979AA14CD54FB148BD83C2275911140A2
-8EE3FAE0CB79E646E93D6838AE78BEF22FE7CDE47DA249355E5F32B0630C2DF8
-5C6FEDA555A5BB66122CC85834FDC321910D0CBB8F01BC63D3AA04301E5F7863
-D832DD8B487F7ACEDB3963E4833FF01CB050277E6C886EC662E67145B093097A
-55E985300C0C0C1F0EC98AB952DAD4A28A4B0360CC90CECAD32CB4A860EA29FA
-FC89A882E1C53C1689C4F1A4DC57EB60424F8061674E17D71D4699CC1C7EE260
-31F1C9F91A93EBFD8FF9735417DF74C77C2A8172496822EA01B19D1AFCFDF221
-94C6EC434891E4DB92273E98F7AC34973562DA44C173D71D4360FD8AE4F8F8CB
-3EBFD33C1F88BD3FE9F55B4DBAAA3BF773C445F0F9C3CB3B8317BACB6B9811EA
-5E4DD378C4C4D14AD6EF48EF3DC3AF592AAE166BA5DD14375F74EFD6E6E236D4
-7D75796A0CAD634A01D870EF84FE2CD9B413591F416213B1F206112705C2354B
-9BA8011D690425411FC95B74C899A0D62C67F01268B40102ED3B658817CD48B4
-71DF134518EBB1AC4C5AB908E5E64591666BA590C6706D50CFF819A1A23FEB93
-101D3CED755A218BF267B1510FFE56911B87B64B3EFEC72E596D629DB374FB7D
-941F10A22EEF8B3921C752C921D45A519320C527B029058744039F662C2C964D
-D1B71B6422EA8E52F4EDEC2600034FB9C8E4F8FB1589888FBB41B4FB05E6CC3E
-A15C0BF97523CFC931F659E6401186EF99C72775639D2EF0646D21F00A3E9A08
-2B1746A81A54849AB307EC144D8F5DD090E0CE5287BFC9196B82AE81B849F007
-ACC36B326FD8736BD05756149E08A7BE9AF87E1138C0CE
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
-C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
-9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
-F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
-0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
-3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
-555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
-B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
-EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
-D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
-494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
-CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
-C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
-357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
-E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
-F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
-B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
-5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
-8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
-16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
-AC14244C421456BB3E06591DEEB9DCDC135C6D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (kslurtweaks.dvi)
-@start /Fa 139[44 44 2[44 46[44 19[44 1[44 43[{}6 83.022
-/CMTT10 rf /Fb 184[106 63[0 7[{}2 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3413 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-160 73 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (2.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -160
-73 a -183 262 a Fa(Ap-s)p -145 46 4 117 v -183 46 a Fb(\007)10
-29 y
- slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 10 29 a 10 29 a
- end
- 10 29 a 29 29 4 117 v -19 w Fb(\007)p
-164 98 4 135 v 252 3 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 252 3 a 229 146 4 117 v 230 29
-a Fb(\007)422 13 y
- slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 422 13 a 422 13 a
- end
- 422 13 a 402 129
-4 117 v -19 w Fb(\007)p 576 98 4 135 v 663 73 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (2.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 1 N end
- 663 73
-a 640 262 a Fa(Ap+s)p 678 46 4 117 v 640 46 a Fb(\007)834
-29 y
- slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 834 29 a 834 29 a
- end
- 834 29 a 852 29 4 117 v -20 w
-Fb(\007)p 987 98 4 135 v 1075 3 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 1 N end
- 1075 3 a 1052 146 4
-117 v 1053 29 a Fb(\007)1245 13 y
- slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1245 13 a 1245 13 a
- end
-
-1245 13 a 1225 129 4 117 v -19 w Fb(\007)p 1399 98 4
-135 v 1507 68 a
- slur@Dict begin /S-1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(3.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
- 1507 68 a 1463 262 a Fa(Ap-t)p 1502 46
-4 117 v 1464 46 a Fb(\007)1642 96 y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
- 1642 96 a 1675 46
-4 117 v 1637 46 a Fb(\007)p 1810 98 4 135 v 1918 8 a
- slur@Dict begin /S1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(10.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 0 N end
-
-1918 8 a 1875 146 4 117 v 1876 29 a Fb(\007)2053 96 y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
-
-2053 96 a 2048 146 4 117 v 2049 29 a Fb(\007)p 2222 98
-4 135 v 2330 68 a
- slur@Dict begin /S-1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(3.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 1 N end
- 2330 68 a 2287 262 a Fa(Ap+t)p 2325
-46 4 117 v 2287 46 a Fb(\007)2465 96 y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
- 2465 96 a 2498
-46 4 117 v 2460 46 a Fb(\007)p 2634 98 4 135 v 2741 8
-a
- slur@Dict begin /S1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(10.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 1 N end
- 2741 8 a 2698 146 4 117 v 2699 29 a Fb(\007)2877 96
-y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
- 2877 96 a 2872 146 4 117 v 2873 29 a Fb(\007)p 3045
-98 4 135 v 3048 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3048 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/kslurtweaks.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: kslurtweaks.dvi
+%%CreationDate: Wed Jan 21 14:00:21 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 736 440 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE kslurtweaks.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1400
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 43 /plus put
+dup 45 /hyphen put
+dup 65 /A put
+dup 112 /p put
+dup 115 /s put
+dup 116 /t put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
+7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
+81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
+D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
+740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
+921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
+495069A1DDF11DC589D2E91C1514C2799C5B954EB8B347918C4920C7142A2AC6
+8231DD2AF57E9540C46BDA6AAC09689487F5E0EB021CADA860FD25B2E5230259
+7BFF0F12D7DF5CE219716715073177028CE276FC313D6A101898D1A6BB0AD8D5
+662A85EE6B921A72E46589CC08EA87EECFDF36B819B07306C44AC3FBCD134930
+4B2F9EC4D5C57518E8210FC2C61DA3FD185CFA65DF3DB858BCF75E95321A7131
+547E0C854068826FAB1D8A48A3708F6B3AA1DE3502DDFE91A553D31ACB26D732
+FD54BD83E3C485032A061769D33F2D8BD8AF3E5EB9BC7BE18F5EB7A440C673D6
+25151DBC12F033A1D5D20EBF8530E7129D0A90AD3EA1E185EB58B12472AF22F9
+8DC999EED472B2C2B85B60A09D6A2D42E04AD651074A7FB8EEAD846888F72410
+59A99B49ACFC71131694C405F36C8F710B467AB3742C6EE007FE240976397D06
+E1E409013769EC79E2F70C1A9B84991F3AAE219469E3F323439BF51726A76F60
+DC410D411CDA75C4C5C7864FA957AAFEEA79FEC8CF95A53326E328A8F446C415
+10A842D5DFFA8223B034B62B80D1A97EEE66B66D5AFBEC3756D16624CF69F000
+D16A16263208FCA1816E1725F39215694896C69BC40880EFCEB8D91A7661AD81
+34E3C94FE80AA65A15DD9590EF6C9215C9A7DAD7089EB18A1237C8F7668BFC49
+B501F92448D40AE0E32BD0C50C3D1702B8CD0BCCA7B2B9FB10B3E2CDBE929DEB
+046B25CC240633555939B92866D85D32E65646505D2EC2B808540C394E83DCDA
+A63A3DAC44B04F8F6690D88A88E7081F16183B7BE92EA21C1DB6DC5C6BFAD8F9
+63847F23B2B2093E4132A805805DA3D9397DBB13753E6C213C2DA837BD95825B
+4598AE0187BB989818A1ADB46FB8767132B26DA53E19A26FEEE283140A706552
+51AA8E6174027559A2BACEDF0ACE336DC970EA47012C61928851CF8D6FA15E25
+751F47D61E2A685A03B2906517A69C5141256068A434203194AD1A517B752769
+51F6FE414C9D258B59E711ADDAC0745888459C6433A5E6FEF5E4AAF3A4BC7DDD
+538367A784CDB89884E999F6490E4221D68110617BFEB5C7A64E0883210572C1
+8E5508D6AE0E71AB667F2CA305C7E36CAADF58E9A09105601DEE9383B517032A
+2047E118D1CD12575183BB15312BA00015295BEBDCF9F784DF1FE8007C2EC8F4
+9C67A5AAAF5A5A69776B16ED355C148979AA14CD54FB148BD83C2275911140A2
+8EE3FAE0CB79E646E93D6838AE78BEF22FE7CDE47DA249355E5F32B0630C2DF8
+5C6FEDA555A5BB66122CC85834FDC321910D0CBB8F01BC63D3AA04301E5F7863
+D832DD8B487F7ACEDB3963E4833FF01CB050277E6C886EC662E67145B093097A
+55E985300C0C0C1F0EC98AB952DAD4A28A4B0360CC90CECAD32CB4A860EA29FA
+FC89A882E1C53C1689C4F1A4DC57EB60424F8061674E17D71D4699CC1C7EE260
+31F1C9F91A93EBFD8FF9735417DF74C77C2A8172496822EA01B19D1AFCFDF221
+94C6EC434891E4DB92273E98F7AC34973562DA44C173D71D4360FD8AE4F8F8CB
+3EBFD33C1F88BD3FE9F55B4DBAAA3BF773C445F0F9C3CB3B8317BACB6B9811EA
+5E4DD378C4C4D14AD6EF48EF3DC3AF592AAE166BA5DD14375F74EFD6E6E236D4
+7D75796A0CAD634A01D870EF84FE2CD9B413591F416213B1F206112705C2354B
+9BA8011D690425411FC95B74C899A0D62C67F01268B40102ED3B658817CD48B4
+71DF134518EBB1AC4C5AB908E5E64591666BA590C6706D50CFF819A1A23FEB93
+101D3CED755A218BF267B1510FFE56911B87B64B3EFEC72E596D629DB374FB7D
+941F10A22EEF8B3921C752C921D45A519320C527B029058744039F662C2C964D
+D1B71B6422EA8E52F4EDEC2600034FB9C8E4F8FB1589888FBB41B4FB05E6CC3E
+A15C0BF97523CFC931F659E6401186EF99C72775639D2EF0646D21F00A3E9A08
+2B1746A81A54849AB307EC144D8F5DD090E0CE5287BFC9196B82AE81B849F007
+ACC36B326FD8736BD05756149E08A7BE9AF87E1138C0CE
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF84F6B1279B7674E8DE6DCE1063C9E4118FF05C936431122E61073092
+C7AB9D34C66D72A19D11C4EB4BD4C9FD60F8F43521251AA3CA90AD4517664D23
+9AC96DF4437EF5A80E21CB1FB19864CB2192C1B81BDD87430EA6CC8D6FE62BE6
+F8E20537303758CCE2376A77730BDBAB081CD511D6D06F5E742B2927C4EA5BB6
+0391730CCC3278B317A8CB5D0CD45BC04BCB150B362E881CEE82E2CFD4947AE7
+3A5BAF3E12C8A8DA92F59FFFD620DE6C6B87B0245356A739F625850F79AB4AF5
+555250A4E5A4891292D123DFFE3400DF051A52DC6F27D806BA9F2882486E1A9B
+B5615D339AFEAB59F2B5B04AD39BFE9962113C997AE10D24AA640488D296E8F3
+EE0A0C61579ED6AA1D1CBF98B697C08E13C2B3955C331313703D188FD8B4EE58
+D2196051B0CBA1B8A71EA5512C7609DDA22B40B82FC8E3201A934BBA2139681C
+494C7F2FD7EAD77E93527E9F9FA3F65BF20C30DEE4E79FA76722407C90124C4B
+CB4403FCBA22C2EEA16BAA1DC19C5BD97B5B1DC5D5D56F30739893BFE0D40A2C
+C1BDDFC6EC833B9AD95DB241A59D9726CCEFF77072DA19B7B02BF40F24B2A86A
+357A5C439130895AD4E535BE21C7BB7740E3CA522A9DFB02F73771484A59F9F1
+E7591CED1AF1591FEE7BCBC86F516C7BA141441FF79A7CEF77F49C5C4D17ED6D
+F3ADC427AFB049BF60AD6788ED2C786ED2275AEE20A36EE4C77CA3B2AF407D8B
+B4651DC2DCC0528275D4500AED080D85E17CC9E05EF487D6F378B58AE53D96D5
+5930BFEA7766A734C7082ED09958E703F74607D7819AE8AD9C35E0199E997C41
+8759B0DC00D855A46B4836C488EA54DE8957686649506D0FF3885716963404F3
+16ECC18897582CDBDAED6F81220C52D028CB3185A5FFAF3EE4B5514355FE060E
+AC14244C421456BB3E06591DEEB9DCDC135C6D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (kslurtweaks.dvi)
+@start /Fa 139[44 44 2[44 46[44 19[44 1[44 43[{}6 83.022
+/CMTT10 rf /Fb 184[106 63[0 7[{}2 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3413 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-160 73 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (2.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -160
+73 a -183 262 a Fa(Ap-s)p -145 46 4 117 v -183 46 a Fb(\007)10
+29 y
+ slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 10 29 a 10 29 a
+ end
+ 10 29 a 29 29 4 117 v -19 w Fb(\007)p
+164 98 4 135 v 252 3 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 252 3 a 229 146 4 117 v 230 29
+a Fb(\007)422 13 y
+ slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 422 13 a 422 13 a
+ end
+ 422 13 a 402 129
+4 117 v -19 w Fb(\007)p 576 98 4 135 v 663 73 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (2.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 1 N end
+ 663 73
+a 640 262 a Fa(Ap+s)p 678 46 4 117 v 640 46 a Fb(\007)834
+29 y
+ slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 834 29 a 834 29 a
+ end
+ 834 29 a 852 29 4 117 v -20 w
+Fb(\007)p 987 98 4 135 v 1075 3 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (11.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 1 N end
+ 1075 3 a 1052 146 4
+117 v 1053 29 a Fb(\007)1245 13 y
+ slur@Dict begin (2.0pt) GD S0hgt (10.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1245 13 a 1245 13 a
+ end
+
+1245 13 a 1225 129 4 117 v -19 w Fb(\007)p 1399 98 4
+135 v 1507 68 a
+ slur@Dict begin /S-1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(3.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
+ 1507 68 a 1463 262 a Fa(Ap-t)p 1502 46
+4 117 v 1464 46 a Fb(\007)1642 96 y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+ 1642 96 a 1675 46
+4 117 v 1637 46 a Fb(\007)p 1810 98 4 135 v 1918 8 a
+ slur@Dict begin /S1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(10.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 0 N end
+
+1918 8 a 1875 146 4 117 v 1876 29 a Fb(\007)2053 96 y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+
+2053 96 a 2048 146 4 117 v 2049 29 a Fb(\007)p 2222 98
+4 135 v 2330 68 a
+ slur@Dict begin /S-1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(3.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 1 N end
+ 2330 68 a 2287 262 a Fa(Ap+t)p 2325
+46 4 117 v 2287 46 a Fb(\007)2465 96 y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+ 2465 96 a 2498
+46 4 117 v 2460 46 a Fb(\007)p 2634 98 4 135 v 2741 8
+a
+ slur@Dict begin /S1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(10.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 1 N end
+ 2741 8 a 2698 146 4 117 v 2699 29 a Fb(\007)2877 96
+y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+ 2877 96 a 2872 146 4 117 v 2873 29 a Fb(\007)p 3045
+98 4 135 v 3048 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3048 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/macro.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/macro.eps
index f9bb6cbb32d..d809df610a2 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/macro.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/macro.eps
@@ -1,589 +1,589 @@
-%% LaTeX2e file `eps/macro.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: macro.dvi
-%%CreationDate: Sun Sep 28 15:51:02 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 751 483 783
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE macro.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1551
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 26 /dotlessj put
-dup 55 /seven put
-dup 71 /G put
-dup 83 /S put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A10AB1944FDCEABAC15FE
-313FA135EE234D9908A84DB61F49A88C3FCB026129E02F3DD66444AD6478FE17
-24ACB57725877B2343345DDC62448B06B383C2FB32CC7FE00362B06268496800
-0895E007ABA62705A03433DE3A8F171F35764B4E8769A7F99994D8AEE033F370
-DBF7321E09FD2149672054190994F36EAEFCDE9129957B0FD57008B04AD1D75D
-20A70E7D8195DED774D988ED7E0C3CFF13C8EC50696359CDCEE2ABF16FFD3666
-CE4476840B89B8A61DCD7251D03D99469D1C11D7C135347A276DB5CE67BA3EAE
-97FBD9C46756D30570FD831555F3530F8334C21187EDE68020EDF6D4A7D552F8
-04E732998C1821CF7747869303DA966237614FDA87ABAE9C898C5F68C3D2F5A7
-C8B3755D794D1A2DB1AE66CE31C80364E6656A5FD96A8ADB6C87652C777F42E1
-D5452977793A44D27CCE218523B2694634B89CA9C3E4DE380F9C6EEDC7CF720F
-472051A1B53080AD80FC8B30BC3A3EFF5C7A5EF94BB0BDCC7F701ED2DD34B01F
-B13DCFE40D94BFA6BD2F628B0C9F9C85BCED5ADB5C224BB0E379A3975437C315
-77BB9AC7AC012A14067960C8997E518FD57B2BCE6D8FC23FFA347935EAF2BC8D
-CBD5D172277D31FC77C3DEF72C50D14212AFF19CCD4C496DF2899666DC3DB9A0
-4F67E2CA8DB6867051381DB3A066FFEAFAF08BD7AD7AAD740CA9D90C7E18A282
-964C85962EED8F0F969F791A79B50F0FA2A3F414677F4CAB5BC3C291633390AA
-8A924B1E97CEFEA30A328DE7D7F5D0AE239727DFFB93C3DE0222247699684A09
-FF6F857A20B7DD8B6E39E3CE349CBE725B6D8B3297D7ADDBF2628B95E97DBA3B
-95CC026A263E68C912930E028BB237013D4F3534781B97DF85C90707EF3664F7
-402947A3430A88C7A139E9E604ACD99526E79B12384B3AFFF2C283506E576814
-D2A5A09BD7285BC9EBFD89934D322A669FF3D7B54B72D48AE6D968827DAAB67E
-E93A81A5D3BC4EBDAB2D3E8EFAC5E19EE4B66515BA664A513D23BA0DD27090CC
-27BF47A6A3C6E59BB8A6A7B4A8979F2A04B3318AAA4D4664EFA8E550BBA473EC
-5403AE66B6FB8EDEACB8B7FB1145ECF9C2AAA0819F90FC5E873D53D3519EF056
-14035662E63DE471648FAD0F5381E85CCEB346894C39462EA5C7873350B8A493
-3C2790B40BE1C15A3D86F96BAE672019C9F44FE3A4D094D6A38DC17739E857FB
-0D9D834B9C6D998059F01FE088BDD0962115E8910A93F20532F7FE88BBE12461
-8D1E5C83127C91784AD0274F6ED28DE229D18F641BF8245D10A6E0DDD181C543
-D32BF9B4DD2A2B49E3E433C034A4BE895736DF810EFC5B2DAE6A4A8A86C4393C
-C5F653301ACB78543DC561E84C3C256A06A0DA98B98F9B75CC16453587310B49
-D53C6C4D531F99AD1C6E4C8FF59F91913192A046A24596B56AF2067420640E5A
-C8513E495B560510A5B4087DE1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (macro.dvi)
-@start /Fa 172[66 11[106 15[0 28[0 17[0 0 7[{}6 132.835
-/TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fa(G)-244 29 y(S)p
--123 98 20 135 v -93 98 4 135 v 108 w(7)p -34 129 4 117
-v -33 13 a(\007)p 65 112 V 66 -4 a(\007)p 165 96 V 166
--20 a(\007)p 264 129 V 265 13 a(\007)p 364 98 4 135 v
-402 129 4 117 v 138 w(\007)p 502 112 V 503 -4 a(\007)p
-602 96 V 603 -20 a(\007)p 701 129 V 702 13 a(\007)p 801
-98 4 135 v 839 96 4 117 v 840 -20 a(\007)p 939 79 V 940
--37 a(\007)1038 -54 y(\032)p 1038 62 V 1 w(\010)p 1179
-98 4 135 v 1218 96 4 117 v 1219 -20 a(\007)p 1317 79
-V 1318 -37 a(\007)1417 -54 y(\032)p 1417 62 V 1 w(\010)p
-1557 98 4 135 v 1596 54 4 108 v 179 w(\007)p 1656 -69
-60 4 v 1666 54 4 125 v 1667 -70 a(\007)p 1737 54 4 108
-v 1738 -54 a(\007)p 1596 62 215 16 v 1807 54 4 92 v 1808
--37 a(\007)p 1877 96 4 117 v 1878 -20 a(\007)p 1977 129
-V 1978 13 a(\007)p 2076 98 4 135 v 2115 54 4 108 v 2116
--54 a(\007)p 2175 -69 60 4 v 2185 54 4 125 v 2186 -70
-a(\007)p 2256 54 4 108 v 2257 -54 a(\007)p 2115 62 215
-16 v 2326 54 4 92 v 2327 -37 a(\007)p 2396 96 4 117 v
-2397 -20 a(\007)p 2496 129 V 2497 13 a(\007)p 2596 98
-4 135 v 2634 129 4 117 v 138 w(\007)p 2772 63 V 2734
-63 a(\007)2833 13 y(\032)p 2833 129 V 1 w(\010)p 2974
-98 4 135 v 3012 129 4 117 v 179 w(\007)p 3150 63 V 3112
-63 a(\007)3212 13 y(\032)p 3212 129 V 1 w(\010)3352 29
-y(7)p 3372 98 4 135 v 3385 98 20 135 v 3405 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405
-262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/macro.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: macro.dvi
+%%CreationDate: Sun Sep 28 15:51:02 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 751 483 783
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE macro.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1551
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 26 /dotlessj put
+dup 55 /seven put
+dup 71 /G put
+dup 83 /S put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF80BD119C2DF1A8FB89B797B084BC9C71236A10AB1944FDCEABAC15FE
+313FA135EE234D9908A84DB61F49A88C3FCB026129E02F3DD66444AD6478FE17
+24ACB57725877B2343345DDC62448B06B383C2FB32CC7FE00362B06268496800
+0895E007ABA62705A03433DE3A8F171F35764B4E8769A7F99994D8AEE033F370
+DBF7321E09FD2149672054190994F36EAEFCDE9129957B0FD57008B04AD1D75D
+20A70E7D8195DED774D988ED7E0C3CFF13C8EC50696359CDCEE2ABF16FFD3666
+CE4476840B89B8A61DCD7251D03D99469D1C11D7C135347A276DB5CE67BA3EAE
+97FBD9C46756D30570FD831555F3530F8334C21187EDE68020EDF6D4A7D552F8
+04E732998C1821CF7747869303DA966237614FDA87ABAE9C898C5F68C3D2F5A7
+C8B3755D794D1A2DB1AE66CE31C80364E6656A5FD96A8ADB6C87652C777F42E1
+D5452977793A44D27CCE218523B2694634B89CA9C3E4DE380F9C6EEDC7CF720F
+472051A1B53080AD80FC8B30BC3A3EFF5C7A5EF94BB0BDCC7F701ED2DD34B01F
+B13DCFE40D94BFA6BD2F628B0C9F9C85BCED5ADB5C224BB0E379A3975437C315
+77BB9AC7AC012A14067960C8997E518FD57B2BCE6D8FC23FFA347935EAF2BC8D
+CBD5D172277D31FC77C3DEF72C50D14212AFF19CCD4C496DF2899666DC3DB9A0
+4F67E2CA8DB6867051381DB3A066FFEAFAF08BD7AD7AAD740CA9D90C7E18A282
+964C85962EED8F0F969F791A79B50F0FA2A3F414677F4CAB5BC3C291633390AA
+8A924B1E97CEFEA30A328DE7D7F5D0AE239727DFFB93C3DE0222247699684A09
+FF6F857A20B7DD8B6E39E3CE349CBE725B6D8B3297D7ADDBF2628B95E97DBA3B
+95CC026A263E68C912930E028BB237013D4F3534781B97DF85C90707EF3664F7
+402947A3430A88C7A139E9E604ACD99526E79B12384B3AFFF2C283506E576814
+D2A5A09BD7285BC9EBFD89934D322A669FF3D7B54B72D48AE6D968827DAAB67E
+E93A81A5D3BC4EBDAB2D3E8EFAC5E19EE4B66515BA664A513D23BA0DD27090CC
+27BF47A6A3C6E59BB8A6A7B4A8979F2A04B3318AAA4D4664EFA8E550BBA473EC
+5403AE66B6FB8EDEACB8B7FB1145ECF9C2AAA0819F90FC5E873D53D3519EF056
+14035662E63DE471648FAD0F5381E85CCEB346894C39462EA5C7873350B8A493
+3C2790B40BE1C15A3D86F96BAE672019C9F44FE3A4D094D6A38DC17739E857FB
+0D9D834B9C6D998059F01FE088BDD0962115E8910A93F20532F7FE88BBE12461
+8D1E5C83127C91784AD0274F6ED28DE229D18F641BF8245D10A6E0DDD181C543
+D32BF9B4DD2A2B49E3E433C034A4BE895736DF810EFC5B2DAE6A4A8A86C4393C
+C5F653301ACB78543DC561E84C3C256A06A0DA98B98F9B75CC16453587310B49
+D53C6C4D531F99AD1C6E4C8FF59F91913192A046A24596B56AF2067420640E5A
+C8513E495B560510A5B4087DE1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (macro.dvi)
+@start /Fa 172[66 11[106 15[0 28[0 17[0 0 7[{}6 132.835
+/TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fa(G)-244 29 y(S)p
+-123 98 20 135 v -93 98 4 135 v 108 w(7)p -34 129 4 117
+v -33 13 a(\007)p 65 112 V 66 -4 a(\007)p 165 96 V 166
+-20 a(\007)p 264 129 V 265 13 a(\007)p 364 98 4 135 v
+402 129 4 117 v 138 w(\007)p 502 112 V 503 -4 a(\007)p
+602 96 V 603 -20 a(\007)p 701 129 V 702 13 a(\007)p 801
+98 4 135 v 839 96 4 117 v 840 -20 a(\007)p 939 79 V 940
+-37 a(\007)1038 -54 y(\032)p 1038 62 V 1 w(\010)p 1179
+98 4 135 v 1218 96 4 117 v 1219 -20 a(\007)p 1317 79
+V 1318 -37 a(\007)1417 -54 y(\032)p 1417 62 V 1 w(\010)p
+1557 98 4 135 v 1596 54 4 108 v 179 w(\007)p 1656 -69
+60 4 v 1666 54 4 125 v 1667 -70 a(\007)p 1737 54 4 108
+v 1738 -54 a(\007)p 1596 62 215 16 v 1807 54 4 92 v 1808
+-37 a(\007)p 1877 96 4 117 v 1878 -20 a(\007)p 1977 129
+V 1978 13 a(\007)p 2076 98 4 135 v 2115 54 4 108 v 2116
+-54 a(\007)p 2175 -69 60 4 v 2185 54 4 125 v 2186 -70
+a(\007)p 2256 54 4 108 v 2257 -54 a(\007)p 2115 62 215
+16 v 2326 54 4 92 v 2327 -37 a(\007)p 2396 96 4 117 v
+2397 -20 a(\007)p 2496 129 V 2497 13 a(\007)p 2596 98
+4 135 v 2634 129 4 117 v 138 w(\007)p 2772 63 V 2734
+63 a(\007)2833 13 y(\032)p 2833 129 V 1 w(\010)p 2974
+98 4 135 v 3012 129 4 117 v 179 w(\007)p 3150 63 V 3112
+63 a(\007)3212 13 y(\032)p 3212 129 V 1 w(\010)3352 29
+y(7)p 3372 98 4 135 v 3385 98 20 135 v 3405 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405
+262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/meter.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/meter.eps
index b579b328a3e..41d0b6bc581 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/meter.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/meter.eps
@@ -1,779 +1,779 @@
-%% LaTeX2e file `eps/meter.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: meter.dvi
-%%CreationDate: Wed Jan 21 14:00:52 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 745 510 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTI10 CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE meter.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1400
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2F230D3C
-B337635E94E2E21519DC89511E33C2C89CB30ADEB55C30526171958693A26C49
-EE29789EE165278B618FE6C66B5A31D1EE0009AE31DECCDE85DC5B7A5A50A797
-E5F262DE9DC272D9069A9B92C5CD3EF91591276F8E5D0CE7EA5D64BA6CA908F0
-D44652C6A1A2EEEB9E858F64BB0D99AF77C3F526427A5B6C15B93167D9AC4A7A
-9256E5CFBC803AD886AE923C677ECA297893038F030BC7EDD8FC674FA5A249E7
-7A1BDC26DA4ED3EC2AE4513EABF127EDAA5D84BE46AB6CAB33EBA5AC7BE232A1
-2451C0EDA1A563536A490EAB16DAE14DF6C852FFA9742083DA145C7FA9942B7D
-536AE0E489F2D3357CADC28E5F57DC7D4E0009E1B3D914E26C7BBA6582AB6117
-16CE3418179C1099498A11D4E7D13FA3251E86901FF17331B44B3154F9872587
-40BB0A6B16A11EE6275C52BB2DEF7CE1687B044846435DCFBE997B17ADCE26CB
-23CDB2E5CA3EBECEB74BCE120D00B4C7FEA607BD2D85506D60A4E169454A599C
-49B2A75912799B20CD3A6193EB1A318D64B46AC14810E2512517EA54DF0F5240
-B511D7D839B6DDE3E11CF32D55090B6C7780DC4D2D6CE145DA11B0D73A16489C
-48E0CAC5E7D876A8AC7FB44587E76D01A1425E0DC1BBA4A35BA3CABC484D624F
-29DB2D11C5A91C976CFFE4712C8845DE66E141C1CB74C2433F79ED0BC96D1098
-AE7E32AC20083058F0B11870B2BEEBE80631E610C68F4AACAAB1FC69AA03108C
-2C059D0621C3257C9B758950F205B889988662BC5FEF023EEF17B99778064739
-C1476B682C6B547F9F4C975997FB9CE9A0052A8A75369EE7172E3B75FB222AB7
-40CE6AF79034DC13B0E7C6A74DDD9FBEF04E231E4F42734BCEB0F35F8BF26069
-5311A1446589D64D4A9E1BFB6A102743EF64632148AB4E22C2661D967D635CAA
-CAF4FC8AF61579339EF8BD8393CED26EF16CAC84EC023E6A49A48C3E3C83990C
-1509503523A7AA24FCE2A6A01C88C5597DB5374386759151E2D4B0BDE3DE49C1
-4A4E5D559B0A397294BA27CA179B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 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
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
-98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
-2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
-CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
-F78C2BE0E5562B7D270E50562384744A40016091F940869123A087B157631D46
-36DDB117A3831C2B22A303F927600573990346251844046EE43B1F4F37551FF6
-DA826506E7682476B4A6505DA5BD5E5992D79018E3943A76EA407127F22119D9
-44370D96AB458CC59307EDD88515151D19980E8224F077F1DC5CBB96DABF3505
-6FA1537F59657C725FBB9C34C878912F32EB74712693104BF2B3A61278479B08
-67B282BEF71475C1A545A17CC59377F4F83EFF40214836E914C8FD662E69E973
-425090482E446595E527DF8F10E071E6BED8A518E938FB639E1F33000123AD31
-76A0DBC492B2AE579EEB9BFB602BCA5F307BD820B44742B94997442E5F87B000
-E6C5A833DF46026447F5CBF4E396FE6019E02BC755CB76EBE380BEAC7A5928FE
-B7836D45108EEB539CFA57DB0355074C00662ABA63F093310C9601FA1F383560
-26072506B4DF70798BBA7F56C8A256C5C43393706076B90B1EBCC2388B1431BD
-36349845A7A47D7EAD8BB9A341B3F34FAE9E7677C4534A64111CDF3026B2C8C5
-9E38CB46949AAA6B55A826937EB86B16BCBE058C2975F487C393B99663A7D751
-8702838BA830D7F800603792DC48A4677834163955D6557CD7EB8FD261881946
-2876C95000DC189D38D7F1A7538AA6EDFC60DB9F87A734439AAA61F616D4AACC
-94C78EA84541E16BF2465DE58507AF1296C871F469E59947BACDF35C88A6409D
-5194BD7FF6A4ED2727B3B8E475235B8B68841008BCC442A312DE09FAA6101C61
-E02872B0A265F62A14446B063C22D0BFAEC6F5F03D8FD92932DD573D48254ECC
-C477AFABF7F717EB96CA36D554243B2D551BF9B0F0E7DB384946243E7ED288FD
-8A7D23353F171E5FAF16EC1F07A7B4DA85F6FEB5DC65229F361A90C46F6C472D
-79E5A0A5BA759620E849B0FC8B6529C183CA5D4A763019CC816C48EB407CCD0F
-19D9C90AC695A30C6E9B4C5F976BF798EE4C8D4C977219751761CFD9DE8F9E51
-90D493534A33D954CCCA7DFABADEFBCC97A79D200F96633E8E36963893BE68E3
-9C20282775760108B28BF58CB6F951F21E2978A12676C7DC712CD456C44BF032
-901803991C8A110E60F2B32B10DA69E0BC2B6F9BF4259E4ABAA84F53FA6D351B
-EBFE63737F041C08271A2B855A1770BFFC41BBA28A4B897D2A75F60D51656D12
-2D1FF1956FFC44A81DABB1C17AEBFEE1A05035E0F0A341832022FD4A0E8B1457
-FFE11AF37F601A67E81FA6C4E5A21B355EFD39371B106C703DEC0FE4866DED3A
-4E71681D0BFD85CDC56AED6B031E9F9EF1AE064B24119F9BAE9575DD57515051
-8967DB41FBCFDB4C6DF95295672E9371397C79D3B17D21887E5172A682D6F98B
-058A944B66C70DF3050B027DD2061DBF2D6B759FAC915232FFE1C84DC83C98B8
-8B846854A8FAEECDE36C12397BBB1737D656BD22D0A294FBF124B6939C3BE2EE
-39F25678177E6C21617BEA61ACAB387F44530B231E6EEF996914B2D35E5FCA7D
-9473C0650922F270EF08013CB41A0D8FB33748C3A9358A4D4A3036698C92DD1F
-1BFB5B9A89AC1D39F2B91A74F72964E8E723553EB7CA5E28F6809DAA66A2E2B9
-52A6511B2F7D52994F37ED126726D550CAC180844FC0A2CF383AB8CE73B2C813
-3CC904EA782CB203F7B38C919F09910BE1B522971D11E0B61505598078B909E7
-E6F6974F71A8C96DC52DE09D9B54B0DF7753F7AC3B874A94E80300427105BAE6
-8AD4158A6B6550A8AFB9C21BBBB93AB39FE134D088E9AE99E1DD6D471DD70856
-BBE5DE9D69D29BE07FA7B7D85D38C7B18CC1DE7DBD80D0CCADE0BA5B0398381E
-4C5FC9564D7ACFB65D7D4536F3C17821A218A4288FFC99B9CEF27156620626DF
-750758667173AB957697CE14D4B6B5018F12FA5E75BED5B271AB481E31AA46EC
-4422474BC67CE76AF2488B6B80132F839CE9CA5FE52E2EFA196AC061F9C476E2
-0467E38DC20C423E0D4E0E6D4B5A9FF4A2C07B1EFBEF8ED15E4C561F3B83D6E8
-BE06A2EAB0764A7F79A9938E5F0D92413611472F2384437B8F47D300C8BDD9A8
-4E8DD99E632A90E6E67BD0951CD46895FF0DC094B93D571A224B2A558B2F0F91
-96957B6F78E6CF9995D3B94F4D0857F7D842DB816C32A1A712B58C027037FBDF
-65344927FA4F7E1E779ADDED06B6DE1142BC792A526004FF7F2B92CB34B928C6
-A6DF7DED71A8F7C6CE32C7F6FBE4216EECC92EA669207A8F079CF489CB6A02A4
-4A45954EA754B019CD30C1F1934C0003470DF862AED6E3D757332B8425FDB647
-D3953AAC82599668618C87019C0C7B36A7FEFCA54923220F2A4687F6610480F9
-DAD45FA578991D9298A86BAB36852636AC244730CCE5923B4AAE3C33F17C6494
-0123612B2C6666BFA7C6A67404EB26523A1B594C1485F70AB12102A7C6B27995
-6DE69EF77F2FFC49FDCB9400947FCA5CBC98FA145E7778D19F7D1758405BC6A4
-F206F07169D9C1F7FD1F7DA638017165BDB3575435D5636B85BC648A323FA0C0
-3A3D99F2FBC14B10AE444AB0FCB733F1FDFEA6671F8006CE3D1718B80B55DB01
-91B3A77370EFE31A4B359508F9A00695AA601107EDE4C387B5DBD7142E49
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 71 /G put
-dup 82 /R put
-dup 83 /S put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF83287B2C762EFD151232F1E1B856941A07C74E01F945F668BF66A41F
-3B3AB82BBEA03A5FE6EB764F903EF00160F549DAC7A40200C47DB6E44E870A77
-10F5D1BD2DDEACCC5F7090DF1828E8A0C174818567A01610FAA70F63F02D98DD
-6C9E9A58E9CAE833D2638E690825DC75956862A14B9983A38DBBD7575FE0E586
-7AC9B8CB0B6FED1839F1CEA9B9B44260D9ACB1722C3F6E30464B72CE8556528D
-031F5B4CD2EAF05685958EAC0D4D23FA7F26828BF5BA79DB4A9723A5BECB2BA8
-C1A0675816674891A0B8AA81E344A1ED2687DA31A9A901F0F3B301FEF283F4B3
-BDF615EF5FCD97708F7301DE84492A8E555B42857C1C5F925BA39E005A2DDA77
-5A9E834A82627F80C2992552FD43E04130ED7344B944E7F74AD62C071B44DFDE
-92116D945CEF063B37F75153DAB64478B6DF6C0C869A3EA71D24A919DE5E5F35
-361345D74C5806067D9CFF0F1F32ED1C50A06D98EF77700FBF4452F619D8ABBC
-189C55B673C3A835F3054AC8F8A9D3865457B5B207BAE7627C53F312B647E39E
-CF7FA7B4BB9A881AE9153373F91022B15126DD3395DF9BB5BC99C16BB68A8F31
-D03FC06E40E9E13CB9EEA3D59496D27D5180FAF3C0277E2FA70712075F3E716F
-0E6ECD23417B08E67003AE89D0BE0FE642EB7EAD8AC3AE28B2297478EE1F7F6B
-C0DFAE44001B5277CF92FEA77C09E6F1449E42581E12688A878D520E52DB0EB0
-857DDF1066C30FB467CCE124F16CB0BE10B884E1372DDACD8A37A5F9F9188F5B
-04EDBAD12809BAC15775A07A603DE1C6C7A0FDC8A67663EB41F5E875351ECD0E
-14AFCF05EBE50E42C0EBDD364A67F60BB4C9EB5FDEE29DF1C737D2071427FDE9
-63D76181E112966999C707644B327E2A28AB958AB34F4946DBBD8970884ABF43
-5CAD8018463C59397E96D8A4B30877ABE90419E5A1A4778C1D2948ADDE404F60
-62DF3A070FB0498DFCF4C926E330F448DCA7EF1953215D9DFA7E19607F664B71
-3C19E4692F7272758BBE732C734EDBA514943BB1D550ED201370B5746229C740
-A6BA6A72E5DCA29C66244141E55E2E4BAAA89C6F0BAA568CA41C1004475DC74E
-2A9876564BF93C5F400C24C94D440CDEAEACB781950EA5A951B477E707605683
-6CCB14F8B60AB2B4729E55EC3E019806C3A2F838B2E100F31CC1FF34DF879046
-140A73215A552CC6273F250B2538B2CD6881BCC687A50A900BA875EC97CCAC72
-97F6990BFCA6F6A1C0F903F1EF093198990986C5CFB5C94DB01087D6EE107D44
-DD8442D694B167BEB182FBE308A36953D0F73BF158C2B4AB00751070F9BC8137
-2D181DF20436
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (meter.dvi)
-@start /Fa 203[56 56 56 56 49[{}4 99.6264 /CMBX12 rf
-/Fb 200[42 42 42 42 42 42 42 42 48[{}8 83.022 /CMTI10
-rf /Fc 172[66 66 10[106 71[{}3 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fc(G)-187 179 y Fb(0)p
-138 98 4 135 v 172 62 a Fa(1)319 179 y Fb(1)p 644 98
-V 678 62 a Fa(2)825 179 y Fb(2)p 1150 98 V 1184 62 a
-Fa(3)1331 179 y Fb(3)p 1656 98 V 1690 62 a Fa(4)1837
-179 y Fb(4)p 2162 98 V 2183 29 a Fc(R)2326 179 y Fb(5)p
-2651 98 V 2671 29 a Fc(S)2815 179 y Fb(6)p 3140 98 V
-3177 63 a Fa(3)p 3200 79 5 100 v 3310 179 a Fb(7)p 3635
-98 4 135 v 3638 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/meter.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: meter.dvi
+%%CreationDate: Wed Jan 21 14:00:52 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 745 510 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTI10 CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE meter.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1400
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2F230D3C
+B337635E94E2E21519DC89511E33C2C89CB30ADEB55C30526171958693A26C49
+EE29789EE165278B618FE6C66B5A31D1EE0009AE31DECCDE85DC5B7A5A50A797
+E5F262DE9DC272D9069A9B92C5CD3EF91591276F8E5D0CE7EA5D64BA6CA908F0
+D44652C6A1A2EEEB9E858F64BB0D99AF77C3F526427A5B6C15B93167D9AC4A7A
+9256E5CFBC803AD886AE923C677ECA297893038F030BC7EDD8FC674FA5A249E7
+7A1BDC26DA4ED3EC2AE4513EABF127EDAA5D84BE46AB6CAB33EBA5AC7BE232A1
+2451C0EDA1A563536A490EAB16DAE14DF6C852FFA9742083DA145C7FA9942B7D
+536AE0E489F2D3357CADC28E5F57DC7D4E0009E1B3D914E26C7BBA6582AB6117
+16CE3418179C1099498A11D4E7D13FA3251E86901FF17331B44B3154F9872587
+40BB0A6B16A11EE6275C52BB2DEF7CE1687B044846435DCFBE997B17ADCE26CB
+23CDB2E5CA3EBECEB74BCE120D00B4C7FEA607BD2D85506D60A4E169454A599C
+49B2A75912799B20CD3A6193EB1A318D64B46AC14810E2512517EA54DF0F5240
+B511D7D839B6DDE3E11CF32D55090B6C7780DC4D2D6CE145DA11B0D73A16489C
+48E0CAC5E7D876A8AC7FB44587E76D01A1425E0DC1BBA4A35BA3CABC484D624F
+29DB2D11C5A91C976CFFE4712C8845DE66E141C1CB74C2433F79ED0BC96D1098
+AE7E32AC20083058F0B11870B2BEEBE80631E610C68F4AACAAB1FC69AA03108C
+2C059D0621C3257C9B758950F205B889988662BC5FEF023EEF17B99778064739
+C1476B682C6B547F9F4C975997FB9CE9A0052A8A75369EE7172E3B75FB222AB7
+40CE6AF79034DC13B0E7C6A74DDD9FBEF04E231E4F42734BCEB0F35F8BF26069
+5311A1446589D64D4A9E1BFB6A102743EF64632148AB4E22C2661D967D635CAA
+CAF4FC8AF61579339EF8BD8393CED26EF16CAC84EC023E6A49A48C3E3C83990C
+1509503523A7AA24FCE2A6A01C88C5597DB5374386759151E2D4B0BDE3DE49C1
+4A4E5D559B0A397294BA27CA179B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 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
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
+98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
+2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
+CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
+F78C2BE0E5562B7D270E50562384744A40016091F940869123A087B157631D46
+36DDB117A3831C2B22A303F927600573990346251844046EE43B1F4F37551FF6
+DA826506E7682476B4A6505DA5BD5E5992D79018E3943A76EA407127F22119D9
+44370D96AB458CC59307EDD88515151D19980E8224F077F1DC5CBB96DABF3505
+6FA1537F59657C725FBB9C34C878912F32EB74712693104BF2B3A61278479B08
+67B282BEF71475C1A545A17CC59377F4F83EFF40214836E914C8FD662E69E973
+425090482E446595E527DF8F10E071E6BED8A518E938FB639E1F33000123AD31
+76A0DBC492B2AE579EEB9BFB602BCA5F307BD820B44742B94997442E5F87B000
+E6C5A833DF46026447F5CBF4E396FE6019E02BC755CB76EBE380BEAC7A5928FE
+B7836D45108EEB539CFA57DB0355074C00662ABA63F093310C9601FA1F383560
+26072506B4DF70798BBA7F56C8A256C5C43393706076B90B1EBCC2388B1431BD
+36349845A7A47D7EAD8BB9A341B3F34FAE9E7677C4534A64111CDF3026B2C8C5
+9E38CB46949AAA6B55A826937EB86B16BCBE058C2975F487C393B99663A7D751
+8702838BA830D7F800603792DC48A4677834163955D6557CD7EB8FD261881946
+2876C95000DC189D38D7F1A7538AA6EDFC60DB9F87A734439AAA61F616D4AACC
+94C78EA84541E16BF2465DE58507AF1296C871F469E59947BACDF35C88A6409D
+5194BD7FF6A4ED2727B3B8E475235B8B68841008BCC442A312DE09FAA6101C61
+E02872B0A265F62A14446B063C22D0BFAEC6F5F03D8FD92932DD573D48254ECC
+C477AFABF7F717EB96CA36D554243B2D551BF9B0F0E7DB384946243E7ED288FD
+8A7D23353F171E5FAF16EC1F07A7B4DA85F6FEB5DC65229F361A90C46F6C472D
+79E5A0A5BA759620E849B0FC8B6529C183CA5D4A763019CC816C48EB407CCD0F
+19D9C90AC695A30C6E9B4C5F976BF798EE4C8D4C977219751761CFD9DE8F9E51
+90D493534A33D954CCCA7DFABADEFBCC97A79D200F96633E8E36963893BE68E3
+9C20282775760108B28BF58CB6F951F21E2978A12676C7DC712CD456C44BF032
+901803991C8A110E60F2B32B10DA69E0BC2B6F9BF4259E4ABAA84F53FA6D351B
+EBFE63737F041C08271A2B855A1770BFFC41BBA28A4B897D2A75F60D51656D12
+2D1FF1956FFC44A81DABB1C17AEBFEE1A05035E0F0A341832022FD4A0E8B1457
+FFE11AF37F601A67E81FA6C4E5A21B355EFD39371B106C703DEC0FE4866DED3A
+4E71681D0BFD85CDC56AED6B031E9F9EF1AE064B24119F9BAE9575DD57515051
+8967DB41FBCFDB4C6DF95295672E9371397C79D3B17D21887E5172A682D6F98B
+058A944B66C70DF3050B027DD2061DBF2D6B759FAC915232FFE1C84DC83C98B8
+8B846854A8FAEECDE36C12397BBB1737D656BD22D0A294FBF124B6939C3BE2EE
+39F25678177E6C21617BEA61ACAB387F44530B231E6EEF996914B2D35E5FCA7D
+9473C0650922F270EF08013CB41A0D8FB33748C3A9358A4D4A3036698C92DD1F
+1BFB5B9A89AC1D39F2B91A74F72964E8E723553EB7CA5E28F6809DAA66A2E2B9
+52A6511B2F7D52994F37ED126726D550CAC180844FC0A2CF383AB8CE73B2C813
+3CC904EA782CB203F7B38C919F09910BE1B522971D11E0B61505598078B909E7
+E6F6974F71A8C96DC52DE09D9B54B0DF7753F7AC3B874A94E80300427105BAE6
+8AD4158A6B6550A8AFB9C21BBBB93AB39FE134D088E9AE99E1DD6D471DD70856
+BBE5DE9D69D29BE07FA7B7D85D38C7B18CC1DE7DBD80D0CCADE0BA5B0398381E
+4C5FC9564D7ACFB65D7D4536F3C17821A218A4288FFC99B9CEF27156620626DF
+750758667173AB957697CE14D4B6B5018F12FA5E75BED5B271AB481E31AA46EC
+4422474BC67CE76AF2488B6B80132F839CE9CA5FE52E2EFA196AC061F9C476E2
+0467E38DC20C423E0D4E0E6D4B5A9FF4A2C07B1EFBEF8ED15E4C561F3B83D6E8
+BE06A2EAB0764A7F79A9938E5F0D92413611472F2384437B8F47D300C8BDD9A8
+4E8DD99E632A90E6E67BD0951CD46895FF0DC094B93D571A224B2A558B2F0F91
+96957B6F78E6CF9995D3B94F4D0857F7D842DB816C32A1A712B58C027037FBDF
+65344927FA4F7E1E779ADDED06B6DE1142BC792A526004FF7F2B92CB34B928C6
+A6DF7DED71A8F7C6CE32C7F6FBE4216EECC92EA669207A8F079CF489CB6A02A4
+4A45954EA754B019CD30C1F1934C0003470DF862AED6E3D757332B8425FDB647
+D3953AAC82599668618C87019C0C7B36A7FEFCA54923220F2A4687F6610480F9
+DAD45FA578991D9298A86BAB36852636AC244730CCE5923B4AAE3C33F17C6494
+0123612B2C6666BFA7C6A67404EB26523A1B594C1485F70AB12102A7C6B27995
+6DE69EF77F2FFC49FDCB9400947FCA5CBC98FA145E7778D19F7D1758405BC6A4
+F206F07169D9C1F7FD1F7DA638017165BDB3575435D5636B85BC648A323FA0C0
+3A3D99F2FBC14B10AE444AB0FCB733F1FDFEA6671F8006CE3D1718B80B55DB01
+91B3A77370EFE31A4B359508F9A00695AA601107EDE4C387B5DBD7142E49
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 71 /G put
+dup 82 /R put
+dup 83 /S put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF83287B2C762EFD151232F1E1B856941A07C74E01F945F668BF66A41F
+3B3AB82BBEA03A5FE6EB764F903EF00160F549DAC7A40200C47DB6E44E870A77
+10F5D1BD2DDEACCC5F7090DF1828E8A0C174818567A01610FAA70F63F02D98DD
+6C9E9A58E9CAE833D2638E690825DC75956862A14B9983A38DBBD7575FE0E586
+7AC9B8CB0B6FED1839F1CEA9B9B44260D9ACB1722C3F6E30464B72CE8556528D
+031F5B4CD2EAF05685958EAC0D4D23FA7F26828BF5BA79DB4A9723A5BECB2BA8
+C1A0675816674891A0B8AA81E344A1ED2687DA31A9A901F0F3B301FEF283F4B3
+BDF615EF5FCD97708F7301DE84492A8E555B42857C1C5F925BA39E005A2DDA77
+5A9E834A82627F80C2992552FD43E04130ED7344B944E7F74AD62C071B44DFDE
+92116D945CEF063B37F75153DAB64478B6DF6C0C869A3EA71D24A919DE5E5F35
+361345D74C5806067D9CFF0F1F32ED1C50A06D98EF77700FBF4452F619D8ABBC
+189C55B673C3A835F3054AC8F8A9D3865457B5B207BAE7627C53F312B647E39E
+CF7FA7B4BB9A881AE9153373F91022B15126DD3395DF9BB5BC99C16BB68A8F31
+D03FC06E40E9E13CB9EEA3D59496D27D5180FAF3C0277E2FA70712075F3E716F
+0E6ECD23417B08E67003AE89D0BE0FE642EB7EAD8AC3AE28B2297478EE1F7F6B
+C0DFAE44001B5277CF92FEA77C09E6F1449E42581E12688A878D520E52DB0EB0
+857DDF1066C30FB467CCE124F16CB0BE10B884E1372DDACD8A37A5F9F9188F5B
+04EDBAD12809BAC15775A07A603DE1C6C7A0FDC8A67663EB41F5E875351ECD0E
+14AFCF05EBE50E42C0EBDD364A67F60BB4C9EB5FDEE29DF1C737D2071427FDE9
+63D76181E112966999C707644B327E2A28AB958AB34F4946DBBD8970884ABF43
+5CAD8018463C59397E96D8A4B30877ABE90419E5A1A4778C1D2948ADDE404F60
+62DF3A070FB0498DFCF4C926E330F448DCA7EF1953215D9DFA7E19607F664B71
+3C19E4692F7272758BBE732C734EDBA514943BB1D550ED201370B5746229C740
+A6BA6A72E5DCA29C66244141E55E2E4BAAA89C6F0BAA568CA41C1004475DC74E
+2A9876564BF93C5F400C24C94D440CDEAEACB781950EA5A951B477E707605683
+6CCB14F8B60AB2B4729E55EC3E019806C3A2F838B2E100F31CC1FF34DF879046
+140A73215A552CC6273F250B2538B2CD6881BCC687A50A900BA875EC97CCAC72
+97F6990BFCA6F6A1C0F903F1EF093198990986C5CFB5C94DB01087D6EE107D44
+DD8442D694B167BEB182FBE308A36953D0F73BF158C2B4AB00751070F9BC8137
+2D181DF20436
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (meter.dvi)
+@start /Fa 203[56 56 56 56 49[{}4 99.6264 /CMBX12 rf
+/Fb 200[42 42 42 42 42 42 42 42 48[{}8 83.022 /CMTI10
+rf /Fc 172[66 66 10[106 71[{}3 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fc(G)-187 179 y Fb(0)p
+138 98 4 135 v 172 62 a Fa(1)319 179 y Fb(1)p 644 98
+V 678 62 a Fa(2)825 179 y Fb(2)p 1150 98 V 1184 62 a
+Fa(3)1331 179 y Fb(3)p 1656 98 V 1690 62 a Fa(4)1837
+179 y Fb(4)p 2162 98 V 2183 29 a Fc(R)2326 179 y Fb(5)p
+2651 98 V 2671 29 a Fc(S)2815 179 y Fb(6)p 3140 98 V
+3177 63 a Fa(3)p 3200 79 5 100 v 3310 179 a Fb(7)p 3635
+98 4 135 v 3638 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.eps
index f6f58f5deb9..ddd94f5c58f 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.eps
@@ -1,626 +1,626 @@
-%% LaTeX2e file `eps/midi.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: MIDI.dvi
-%%CreationDate: Sat Oct 25 18:08:55 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 734 538 786
-%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMTI10 CMTT10 CMR10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE MIDI.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.10.25:1808
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%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 63 /question put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3A3A4AAE8B33E71E4D
-02DEC8C94BCEA6B88FCC6940D4700E371B76295C26C6B423098A3A57AD41F0DC
-A7EF476FAFAF30B36B2268B9055F55100F35A8925085317CCF8666F132417AAB
-A5FB3F070DF1CC8CAB13CC24B4FC62AA06FDCC588D847D0A4C232E3AD5677DE8
-593A4E99A03A35942CE0F211067D815E95F80F722072DE3D6F652FB0C9C9843D
-A6DD2482804FE10153467FC0AFC951B645E30ECCABC655E444F87B8B46C868D6
-D2FAEF826C12ED0AC7340059522DE65BA324640B70E9B902E9FB32F894C4CF49
-421240850599926BFB60AEC2B30D2A6340553EF7512A32BEBC5C892A004DFE16
-DD9CA9ADB963D51374A806711890C1AC5997F21A14E7523CEDB295474BF8C3A0
-5017A993D91DABC265A39EE4A494BCDEE0775982D2EB9D2112ECA3C2E597CBD7
-A9BBAAF9A808FBE68DB5E710CD843327B1F360133AB8050418585ED2A27ACB5E
-D28FA1E9FCB1CE83942637B2A6BD6CF81D0F04480805E17E05FB37A385D6433E
-59230884274319372B3F691D60B533FCDBE7BC65101A046A23D417365FAF18AC
-8EAEEB99B34D37764CCA28A466731CE6FC9FACCBA91B72D7440A7BE1390540A5
-E42BB2215FABBF72DB85657F4A3558D4585AD1918E86DAACB863E2343EA4EAB4
-D57D768391594AFF7153A7B5D44489DBDDDA7D2F0D5051B62B7D90A1E8F3B23E
-6E061E7BAAC70DEC0F84304AEEC154CE8954D28D42F41B1650337E53B855227E
-90E41188315E45160DC15AB480F4E2893D9DDAB2DFCBE800B92B6545FA09FA12
-AB08A1A7F38F9B2A749BA0EDABBCBF893EFCF2FE1AB8B32F2698FD72012414EF
-53FF85C3017FACEDACECD2C5A72867A8792E48C82E3C903835E6B2864798E1BE
-6E1BEB09B9080D31B36695CE1C7E8B4D0E2B9E98DBBF6C68D53CC922A58F65DF
-AFDABA383FA19ED3063475CD3A616C7FF692E6401B80ADF8E09D6DBFE974AE09
-1F7AC7442640757A7AAC9C55FE669782182A14EDE31D7F66E3053AF6648F5817
-82383342BF31E3986759CF58BB8767F31CD54FCA813817A80ED827D1E13EC021
-D2AB87E15CA4756A7AD9CF29959054CD826492AF65F4CBFA5770864B6B094805
-FC2C0C5BD7EE76EB9418C68A37313FAC8C61CEB31B2BFC971FF075B7651BDF76
-8ACBD8919998C4E31696E8E17213D549482C2E2BDBEC5BE1FA58899327DF5D28
-6937872841865988F950AE741DF73CA06F3F093A2B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%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 63 /question put
-dup 98 /b put
-dup 99 /c put
-dup 101 /e put
-dup 102 /f put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A9D9755522FF50BFFF61E504C1AC474646B0910BEB2B
-950E33B9AB30D0786CF7F5F5DD218EBDF7B90241CFD6EE56AD3ED6BA5F18855D
-7E430575CF31761423CF91A9275915A099A5D0C289E5CA71844EA3179A2E917C
-8ED53F194AC2E42AF88FA2A7843F392E71F66DEA6D6D320CC018C055ED3FD2E3
-D896CB52C58907EC253A6EE4C0F0142C0D2BA97AAB203D626433EABDD890E1D8
-85B46B1D6801E39931F402F8825A21D0D4869F02FA1C99FEE1A786CE64B76750
-63A2B3BD3FA2B3E0E04ED9832582F5515AFEA4A9D8A9F924028ED77937B47766
-2CCCE77BADA00E6573D5CE090C2DBDCA93B57A82AF52A14DB5E2FB7D6A08CD85
-F75F066456C470C3226274D60C73AA595F8DD5FC1640FCB2723544574BE6FE15
-05687BC3B6140D6E0B528CC121CED1CBC64BD28DE9517C0A6C28BA71CDAF2712
-CA45107D0A0320C8F48D7825D17BF0F1288A77DC4F5A56CCDD932DE755548188
-A8360779EFF7EB2E1E458010F9E338AF54166E27780D54AD116BF3D0D336C9BD
-F01077572B7FB2D4365582E4B187B3209ECDF1387960FB843E1A31E4F20296F2
-B4608AAF2B9F3A272B7A987888C1E9D50C054CE99B9F75309C6EF8DF1BE13CC0
-6BE30D434EE42C60407656EE331F446D95630E649AA4F1A3780A58C2ACA4B924
-F9CA240BA34EF74607B25310DA547F6D8D16CA42529B17A3967DA998AFAD854F
-54E5FD4DDA0AED726D4250278DD84A9A652307B7EF8B7DCBEDF2FF5011A06D5F
-3D7F33E2DE1B9AFE011885A5C8611D55D514BCD27AD5FF36BA79486C31A5805E
-DA613947A9966E13A9C528A198B8EC8654AD69CCB5C209964A289E98030CAA21
-B527A604BF1433B97814C41B3C5B7176AC0D7DF1662AB716FACFC44EF116A72D
-505D502B9B2877DC1A03478F8BB6B4D50B9237F51D6DC31C0C240B3E65D912A7
-015D66215E9F5389203A852626ACA7DC164299B3390D4569D5CE220DE24AA86D
-6EA9815CD2AB87A2049735F9B9AB4564ACCBE5B088C961E6933F023AD8DE47F2
-E2B33305527FA0B2B6DBABEC580CEAE71BD2ECE7D86610853BCFEB6AEF24F8FA
-6018F244C6F5DE471062A4BC6D2E84D7316B11026AF640CB0DFE02891373EBA7
-A493ABEA9CC0B80173C4F793E36F7FC284597C405A57CFE4039A748551659477
-1E53B0FCAC94BC479547AC72B2F4344E1120DF4B2A585F006D0E035C4CAEFCEE
-64021416CE412C8014B750BBF3A919BCDE7614402E48F6B5ACA5D86616BA18CD
-49BC12FFBA3C2809CC6A8B985A5FA8CD7084CB46444B56BAC8CB35B74399D19F
-0634510E0F171F1F0841DC426B39D632F01FDAB4887EB15B5FE8BAF50376D68B
-FE2C766F18CBB43B3A807EF02863B5F886DC9C34616558274FFD30E6D066929E
-EFECCEFA4FCBB2092BFD296B39B67E43E5A3BAB8284A7F4B85694907343EB2E7
-6260F22E90838988A1D39425B70F6DEE0F185DB9E8E9AD5B322463C980A5244C
-60CD27C30E66E6E0CC2ECBF2855B47DA9B5D6BA45D749A72ACE57F2776A51D82
-3F5D48E164644672F8D9685A98FEE059A25AA93D536693B0101C8161C671F984
-72F5CC9B9D6E3E6F5CF09A233917364C6D7C7B90A2AF7F530F7147BC6EE2C685
-E52A1839E742E8C7F44514A66D11D053F5801F6201A9917221F8B7DED27EA943
-2ACA455895A2F47EEC89F7CD3A16DBDD2E7F4335C646E773FF26F8EAB773CB1D
-B17C323967038461C8E61CEE23C7538EF421A1F10965E29AAF45087F539ECE65
-A51876381E2433F05E00E5C1B88C60A55ADB0C0180563DE6294FBED7B428257A
-62490020C6A97AF4ADE1DAB59CF144291D076A96959D672AE8E6287F6BC82E3E
-9091E5F1C0D244226A5A9492FBB9345EF56A45039111ADB4008BFD2E0C228E38
-E04ED3027971B2A3C905A078C8E6B2050911E0A2C133C1A6F09C90D21940DE85
-4F3027D60D941C2768AF2B767B9C119223924B281FC88C49CB33423777BC58C7
-8D79F0B8D4BE393228C677762A6F363533E23E19804418C8479518B05BD0E350
-0FB10C5A784504819E1D52B3DC3AD5E7EFB40C75F75C417E69A5418206CA9121
-378AD60CB79DCD829C936615C8739A31FA1E3192B762629F20CD6A3E17F84B69
-85D238391C63955D8510D111D24F839953F155D7162C79F50F5915E08E5C7BDB
-B94EA8A35998589DB96E1CFB12272FB8EA268448BAE69BB5BED22BDCCA0F854F
-E813860649F1B7484905F69B5AD59032279EB36C55291D34413BF33C10E75B0E
-C255E626EBD804CF2AA4C6E6A8B40F92C12D854D638D23833593A77ADCD54A79
-34E8A690968331B2FF7D15E1FF8BD03A87114D23743CA5086ACE54B7A23FD3D8
-49C38DAA8F4C7B621C570AEE22DBECC4591438AF3DBD5F83C082DE39782C1D54
-D2004C5E7B385C093B9CCC603EA9E504A77D557F5962005E78645689F1EC442C
-FCC0B7D9B254C186AB362EBC843950D49D0FBDB4B6263E416801E3B5D4075439
-780EC2BA8AFD73423915B04540B71C629C6F48D74CE2A7FD98991FFD3B32E744
-22C666576A29E9575EF6F7F0F593DF552B24492E2219962A6EBA7E728BD2A05C
-5A42A831B242205D4DAC3E757D34C1584AF21BC1C5F243F01B0F35CFC0C787E3
-B582A22DF92F179064A1246F5BD84698
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
-98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
-2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
-CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
-F78C2BEC5282828B86F7CA8953099CE2E9195341F704109C29C51AADD373EBDE
-EB85E47FD8D3C5FF7652BDA7494EC12851E94722B815562994192F0035086FE4
-79077E7B7DDB2CE800B6D41311D0D4D8A9DA254420DCA2741BE79693ADFAA035
-3217F7A98BA0828D52DD9EA1F4A4D89171C53564E295B2423FCA0DF89DDE60E8
-894DFEFBA44B19A01AB98AA3269C70041EC7EC7F8E7013F549834931E9F255FB
-23E2DD6999D2882CA45BBA7F9CDFB2F93DD12FA5D62A78EC285358822976B8A6
-7434109B435B127CB44E2E652E701A1E5D08E09BA2218D97EFA6474729A1C34D
-946803B33324335388CD40D54F371A8A745AB9AE6861841F2CAD24DD2895A1CE
-917B0DE6FE31FB804B4F54BDBECAF442B39F8AA1D636C56480C6E4392A16E304
-B9E32BF4BA8E9281FF7A043F5E45C387AF6C380BAD62D78E378830C6EFD77FBB
-098F7F197EC4E3C7B491F0F03BE7DCDD7968683664BE698E777DE46120E1A3FC
-71F905EB4E0EA6EF2E9ABE1ADB9EA9957213043D791E722724CE050AF94997A2
-89CCABF2F225227FC520612C40AC4EFF40C34C2B3DA7D9C1EDB15B16B0914130
-66A82DFFD0F99E8765483B51638865F0FBA634E292B17DE5EAAD5D8868D03188
-D2C8334DEA82EC96CE56E5B09BF2184F59D8F4C639F5C5559B8DC668B6B36AC4
-55898B9FAD2941D07AB3305DCD987C524AFBF737D0BF553EBB477FD089BE5865
-E4164CDCD7940CC3649FBF62D7FC6C3F645CE760635C93E47DFD50CC40284D2A
-7ACD6C41C543555A7E5DA581896870AA5E5EB20ADCAA9EE28556F70B68C3A631
-3BFEE05B208E187DFBA7593E25C068B01D4222663ED5D0D79C3F382EF3268F68
-E0B8ECC6442C11A5D062E1DD636399F405DB56E7F92A9785A6A4A925E231333D
-31EC4C1D689E94DE98E6850E9584FEA7A0F21C484F8AAFC2D68CE1289EA42B4A
-077A9A38BFBE409AD51CA55BAD5034E0E6063EBD75ECA3F687F99DEF457BDC31
-0C394CC7F0AB283EE8CB33FBD1080DA997AB7B9E05333B575EBB6090BCAB51D9
-E7D90C5078DB2F28FF246C87FA78D778FEA084B6DC970A4F4EE8767A05A8F8BE
-CDD24FFCBB156E402FC4F23462D0FF4825FC55545771314134E52E5F7495D6D1
-66DDFC3F62982B1F15C440D2B03C2AC96F65DA745E720DEBF359B6129592D2E0
-D54D184196A17AE2B70C28C88825DFCBEB3CA73DDF18BE9F98930F733B406129
-B0C5C6473FD1854EFBF08471EBB664F81A9C2CBDAC5E990CD6930FF42CCB72AA
-3823364E15D4D39B0D158A7187A5593B4E3EB480969AF7C89059BB4ADD7B1E12
-88E217E4665C736AAE955813183617314FA9C34760FCC414F1652ADE318F11B1
-C1284CD4F40B59495F6C9F462462DFF4F1FA87E34FFE1FB0A24A44E870BDDE90
-784498DF8ACBFBF63734E3739A387C34008A67ACDC1E3523E43AE53C3C8E1800
-249BA4C0E77DB02D782872CE1C3F74E922E05D96F80A93C1986BA9F19C80D655
-E45420D2A3929D6910293F33B5A855B7822C31959DF3F6357630D5E81DF70488
-13EDD658AFCA928426C0E3CC396D5F4E
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 52 /four put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE287EF5CB
-4AFBF055F1F20E242E54A1687053562E48284AA44FD71844BE368A19A186D68C
-2EF25174E1C39A8F6412B7634F31D08A693EE59FABA56B8C51A7BCE95F9E2211
-66F9D77A2EDDA79ED4E4E06DA0D31B7DD5D94288B281913A1D0896BE5D05DFB9
-EA8782194FB56DC85CE99FFE52158B222780F763C3EA599CF3B6B1C7BB8A9126
-A99FCE0DB02761773793827DA26C9E66FC5EBF64496813E2E2F0B3E31D30672B
-D77D8154C19F2CE0FB9CBA05167FB08D991B55296268659ED99C6DAE848B8E60
-415A46507A8A5968530F1C469E5CC29F0BAF6BF13CBF747757BB44D7F70326E4
-A2B863B0ACE913EDDF42E0A4BDA6F0D5C9ECCF062DD9FC2E39ACFC235F6BA531
-734F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 52 /four put
-dup 71 /G put
-dup 80 /P put
-dup 90 /Z put
-dup 94 /asciicircum put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
-37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
-9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
-50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
-CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
-BF379E82AAC67D2B525096311CB3EB38519CBBBCEC3995EEA605FFD0E8A8E3D5
-BA606330FFDF7684C73C9355BFE075BDC391C88F52F414735D555BF233D892EC
-179EBA1FEA31A25820ED1E28C729FF481D1B091EC9FA3267F005FEB9E365955D
-9AA01F1DE1BC9B9412D6D36DC9B1C5D5300CD2F808B9B5D594EACAD417E60EBB
-7EF4EAA9D4EFB077E3B34E10EDE9BEE555478D5B69C16F750F47089881764078
-C516DCEBB15E4A172DABEB941FBC816167737EB8060576EED2304D78A5CE4CF1
-927CF7C728B9B6C23CD061F97140B6C8E1C8697999B014D7A0D576A76D917F0C
-DBCC28804767109BD87270D1A4162468CEB81233A1BDB90C1483773B7F84592B
-E982241506CC744BD914CBD4A866CAC70E650D3A5B2B3EEB77BBE0EC5F2B075A
-7184BDA8E06C896EE537D04D729D1561435783F8EFF177DEE91D24533AA9CF13
-62D2DB59DDA4993E2E9BA6AED6C1A37DB43C170E5D7F6CE2A81BD29254AEFC76
-A4970E633465EE396A1D087FAF05A24770CE48473C02DB8C4E48703482220F4F
-FAAA280FCF21CD93AE3F519C12F0286BDB6A85F230CD146E09C0A7E5D0C3EAEE
-EF6F13A2B082B2346E5F4166BB4F27118BBEB59B884FDB8A6F9840383E0B0C96
-826EE958F2EB5DB799C1921A461E63496A077D2B43B367A31D8EC116ED12DC8C
-502A0CE2A70376C4F0CC4D7DF21F33467C79BC5BF37EF861064F0CF58FD61061
-C6B8EDC0196E0D2F0D196EE3CCDD07BB0DC362B141DD89B2002DA1237613A798
-6919D6C88E6BE03A83A23690D1CF3A19DE6A9649CB2CB484C847CB1B5D173B79
-FB337DB44B63B524161F15A90F478CB64B27738D7C3AA5940413984A2419B426
-F5C29B90EBD9460732DADEA29FAC22F2A05D8A5B21702CF224A7E2B9B1F8078A
-06D3B133A29AF4FBDE0CBE66801A03A6A018DA11D6AE57966D227086D26C93B4
-83AC4BAABE966B895502E8F88ACF5518BC39D8AFB6D0B3876F61A16D84FBA829
-9D6262588F3E73A0894C13BA89D2860E60B5660C822C025FE9EF4944D9BD170D
-C31D4BBD076B2322FADB7F91571D450AD928BF1B6D2D355ED3ABD85D9E0F81C4
-D68BC7264F536835459C0B98222B6B269094CD4C5B6CF8D1DE1DAD7225DB2EAB
-9B592B64C754C27349ACDBF9643D29291F82861FE3EC0B0DA4F4B35F3F15F919
-B6826A40763BBB4ED7692C22D8FCA7719BAC9FC4BE4372F0EC4944C70F18F5B6
-4C612F9A9A0F36D431105E8DCFE926F37E2CC8BB665219387F9F2918F94608BE
-C7636CF6F6EFC4F67DF166473EAF91C2C5E069872A195E442C12A7318977FDFC
-FB0613C0D88061A833CD2080BFD3F7FD1D7C03AE7649EE437DE1511C02D3B0B6
-1770BC7E62F10258D1DAD80244233525F18BD9A77C0A7750B37F23870FEE0F40
-E78732AE8FA4ABBEF75EB55D8C47D5084843954D89E85CA18B1FD932D2EB7D49
-3907F4D3857D39FF4EB39055A0919A4BCDAF9906E9FC43B93F2174C07D8E97F2
-85726F9ECA5C9BABFAE46960A56087596C6611CF45B2724F994521EA611901B6
-EE25ADC1C85EB53DEFB0CF905CF189FACCF3841FC7E7ED6244553C096ABE140D
-EEE6DC51F0347956962788EEBB4003973974DA4DA0026CE61B5D3174554A7C57
-BA4AEB56A5BA0DBF163937F31A754A7798A631FC5A8D22F43862E946A6DEB4BA
-7A7F56E1F78466BF285604CD654C8ECA5D4D713E1001B7317F4F80554D5131ED
-088F2655EAFBD3C4451C3782D38CAB76B94B80ECBF907BC8E41565A51F1C0040
-5DC7FB674F21EB11BAEEC2AAA516B6B28F3DD15956D16274503855D7D3D6FBD2
-A40B752F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (MIDI.dvi)
-@start /Fa 192[39 63[{}1 83.022 /CMR10 rf /Fb 144[44
-44 4[44 2[44 44 1[44 44 34[44 63[{}8 83.022 /CMTT10 rf
-/Fc 202[42 42 42 42 50[{}4 83.022 /CMTI10 rf /Fd 203[56
-52[{}1 99.6264 /CMBX12 rf /Fe 161[30 3[30 9[0 8[106 18[40
-42[0 0 0 7[{}8 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4235 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fe(G)-230 28 y Fd(4)-230
-95 y(4)-105 13 y Fe(4)p -65 129 4 117 v 1 w(\007)p 149
-129 V 214 w(\007)p 363 129 V 214 w(\010)p 665 98 4 135
-v 666 -70 a Fc(2)p 744 129 4 117 v 745 13 a Fe(\007)918
-212 y Fb(cni)918 279 y(oen)970 -87 y Fe(^)p 958 129 V
-959 13 a(\007)p 1172 129 V 214 w(\010)p 1474 98 4 135
-v 1475 -70 a Fc(3)p 1591 63 4 117 v 1553 63 a Fe(\007)p
-1805 46 V 1767 46 a(\007)1941 229 y Fb(oef?)1973 -70
-y Fe(Z)2003 -57 y Fa(?)p 1981 146 V 1982 29 a Fe(\007)p
-2195 129 V 2196 13 a(\007)p 2409 98 4 135 v 2410 -70
-a Fc(4)p 2526 63 4 117 v 2488 63 a Fe(\007)p 2740 46
-V 2702 46 a(\007)2876 229 y Fb(bfi)2876 295 y(oef)2928
--70 y Fe(Z)p 2916 146 V 2917 29 a(\007)p 3130 129 V 3131
-13 a(\007)p 3344 98 4 135 v 3344 -70 a Fc(5)3428 -20
-y Fe(P)3423 79 y(\011)p 3850 98 V 3867 98 V eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/midi.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: MIDI.dvi
+%%CreationDate: Sat Oct 25 18:08:55 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 734 538 786
+%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMTI10 CMTT10 CMR10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE MIDI.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.10.25:1808
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%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 63 /question put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3A3A4AAE8B33E71E4D
+02DEC8C94BCEA6B88FCC6940D4700E371B76295C26C6B423098A3A57AD41F0DC
+A7EF476FAFAF30B36B2268B9055F55100F35A8925085317CCF8666F132417AAB
+A5FB3F070DF1CC8CAB13CC24B4FC62AA06FDCC588D847D0A4C232E3AD5677DE8
+593A4E99A03A35942CE0F211067D815E95F80F722072DE3D6F652FB0C9C9843D
+A6DD2482804FE10153467FC0AFC951B645E30ECCABC655E444F87B8B46C868D6
+D2FAEF826C12ED0AC7340059522DE65BA324640B70E9B902E9FB32F894C4CF49
+421240850599926BFB60AEC2B30D2A6340553EF7512A32BEBC5C892A004DFE16
+DD9CA9ADB963D51374A806711890C1AC5997F21A14E7523CEDB295474BF8C3A0
+5017A993D91DABC265A39EE4A494BCDEE0775982D2EB9D2112ECA3C2E597CBD7
+A9BBAAF9A808FBE68DB5E710CD843327B1F360133AB8050418585ED2A27ACB5E
+D28FA1E9FCB1CE83942637B2A6BD6CF81D0F04480805E17E05FB37A385D6433E
+59230884274319372B3F691D60B533FCDBE7BC65101A046A23D417365FAF18AC
+8EAEEB99B34D37764CCA28A466731CE6FC9FACCBA91B72D7440A7BE1390540A5
+E42BB2215FABBF72DB85657F4A3558D4585AD1918E86DAACB863E2343EA4EAB4
+D57D768391594AFF7153A7B5D44489DBDDDA7D2F0D5051B62B7D90A1E8F3B23E
+6E061E7BAAC70DEC0F84304AEEC154CE8954D28D42F41B1650337E53B855227E
+90E41188315E45160DC15AB480F4E2893D9DDAB2DFCBE800B92B6545FA09FA12
+AB08A1A7F38F9B2A749BA0EDABBCBF893EFCF2FE1AB8B32F2698FD72012414EF
+53FF85C3017FACEDACECD2C5A72867A8792E48C82E3C903835E6B2864798E1BE
+6E1BEB09B9080D31B36695CE1C7E8B4D0E2B9E98DBBF6C68D53CC922A58F65DF
+AFDABA383FA19ED3063475CD3A616C7FF692E6401B80ADF8E09D6DBFE974AE09
+1F7AC7442640757A7AAC9C55FE669782182A14EDE31D7F66E3053AF6648F5817
+82383342BF31E3986759CF58BB8767F31CD54FCA813817A80ED827D1E13EC021
+D2AB87E15CA4756A7AD9CF29959054CD826492AF65F4CBFA5770864B6B094805
+FC2C0C5BD7EE76EB9418C68A37313FAC8C61CEB31B2BFC971FF075B7651BDF76
+8ACBD8919998C4E31696E8E17213D549482C2E2BDBEC5BE1FA58899327DF5D28
+6937872841865988F950AE741DF73CA06F3F093A2B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%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 63 /question put
+dup 98 /b put
+dup 99 /c put
+dup 101 /e put
+dup 102 /f put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A9D9755522FF50BFFF61E504C1AC474646B0910BEB2B
+950E33B9AB30D0786CF7F5F5DD218EBDF7B90241CFD6EE56AD3ED6BA5F18855D
+7E430575CF31761423CF91A9275915A099A5D0C289E5CA71844EA3179A2E917C
+8ED53F194AC2E42AF88FA2A7843F392E71F66DEA6D6D320CC018C055ED3FD2E3
+D896CB52C58907EC253A6EE4C0F0142C0D2BA97AAB203D626433EABDD890E1D8
+85B46B1D6801E39931F402F8825A21D0D4869F02FA1C99FEE1A786CE64B76750
+63A2B3BD3FA2B3E0E04ED9832582F5515AFEA4A9D8A9F924028ED77937B47766
+2CCCE77BADA00E6573D5CE090C2DBDCA93B57A82AF52A14DB5E2FB7D6A08CD85
+F75F066456C470C3226274D60C73AA595F8DD5FC1640FCB2723544574BE6FE15
+05687BC3B6140D6E0B528CC121CED1CBC64BD28DE9517C0A6C28BA71CDAF2712
+CA45107D0A0320C8F48D7825D17BF0F1288A77DC4F5A56CCDD932DE755548188
+A8360779EFF7EB2E1E458010F9E338AF54166E27780D54AD116BF3D0D336C9BD
+F01077572B7FB2D4365582E4B187B3209ECDF1387960FB843E1A31E4F20296F2
+B4608AAF2B9F3A272B7A987888C1E9D50C054CE99B9F75309C6EF8DF1BE13CC0
+6BE30D434EE42C60407656EE331F446D95630E649AA4F1A3780A58C2ACA4B924
+F9CA240BA34EF74607B25310DA547F6D8D16CA42529B17A3967DA998AFAD854F
+54E5FD4DDA0AED726D4250278DD84A9A652307B7EF8B7DCBEDF2FF5011A06D5F
+3D7F33E2DE1B9AFE011885A5C8611D55D514BCD27AD5FF36BA79486C31A5805E
+DA613947A9966E13A9C528A198B8EC8654AD69CCB5C209964A289E98030CAA21
+B527A604BF1433B97814C41B3C5B7176AC0D7DF1662AB716FACFC44EF116A72D
+505D502B9B2877DC1A03478F8BB6B4D50B9237F51D6DC31C0C240B3E65D912A7
+015D66215E9F5389203A852626ACA7DC164299B3390D4569D5CE220DE24AA86D
+6EA9815CD2AB87A2049735F9B9AB4564ACCBE5B088C961E6933F023AD8DE47F2
+E2B33305527FA0B2B6DBABEC580CEAE71BD2ECE7D86610853BCFEB6AEF24F8FA
+6018F244C6F5DE471062A4BC6D2E84D7316B11026AF640CB0DFE02891373EBA7
+A493ABEA9CC0B80173C4F793E36F7FC284597C405A57CFE4039A748551659477
+1E53B0FCAC94BC479547AC72B2F4344E1120DF4B2A585F006D0E035C4CAEFCEE
+64021416CE412C8014B750BBF3A919BCDE7614402E48F6B5ACA5D86616BA18CD
+49BC12FFBA3C2809CC6A8B985A5FA8CD7084CB46444B56BAC8CB35B74399D19F
+0634510E0F171F1F0841DC426B39D632F01FDAB4887EB15B5FE8BAF50376D68B
+FE2C766F18CBB43B3A807EF02863B5F886DC9C34616558274FFD30E6D066929E
+EFECCEFA4FCBB2092BFD296B39B67E43E5A3BAB8284A7F4B85694907343EB2E7
+6260F22E90838988A1D39425B70F6DEE0F185DB9E8E9AD5B322463C980A5244C
+60CD27C30E66E6E0CC2ECBF2855B47DA9B5D6BA45D749A72ACE57F2776A51D82
+3F5D48E164644672F8D9685A98FEE059A25AA93D536693B0101C8161C671F984
+72F5CC9B9D6E3E6F5CF09A233917364C6D7C7B90A2AF7F530F7147BC6EE2C685
+E52A1839E742E8C7F44514A66D11D053F5801F6201A9917221F8B7DED27EA943
+2ACA455895A2F47EEC89F7CD3A16DBDD2E7F4335C646E773FF26F8EAB773CB1D
+B17C323967038461C8E61CEE23C7538EF421A1F10965E29AAF45087F539ECE65
+A51876381E2433F05E00E5C1B88C60A55ADB0C0180563DE6294FBED7B428257A
+62490020C6A97AF4ADE1DAB59CF144291D076A96959D672AE8E6287F6BC82E3E
+9091E5F1C0D244226A5A9492FBB9345EF56A45039111ADB4008BFD2E0C228E38
+E04ED3027971B2A3C905A078C8E6B2050911E0A2C133C1A6F09C90D21940DE85
+4F3027D60D941C2768AF2B767B9C119223924B281FC88C49CB33423777BC58C7
+8D79F0B8D4BE393228C677762A6F363533E23E19804418C8479518B05BD0E350
+0FB10C5A784504819E1D52B3DC3AD5E7EFB40C75F75C417E69A5418206CA9121
+378AD60CB79DCD829C936615C8739A31FA1E3192B762629F20CD6A3E17F84B69
+85D238391C63955D8510D111D24F839953F155D7162C79F50F5915E08E5C7BDB
+B94EA8A35998589DB96E1CFB12272FB8EA268448BAE69BB5BED22BDCCA0F854F
+E813860649F1B7484905F69B5AD59032279EB36C55291D34413BF33C10E75B0E
+C255E626EBD804CF2AA4C6E6A8B40F92C12D854D638D23833593A77ADCD54A79
+34E8A690968331B2FF7D15E1FF8BD03A87114D23743CA5086ACE54B7A23FD3D8
+49C38DAA8F4C7B621C570AEE22DBECC4591438AF3DBD5F83C082DE39782C1D54
+D2004C5E7B385C093B9CCC603EA9E504A77D557F5962005E78645689F1EC442C
+FCC0B7D9B254C186AB362EBC843950D49D0FBDB4B6263E416801E3B5D4075439
+780EC2BA8AFD73423915B04540B71C629C6F48D74CE2A7FD98991FFD3B32E744
+22C666576A29E9575EF6F7F0F593DF552B24492E2219962A6EBA7E728BD2A05C
+5A42A831B242205D4DAC3E757D34C1584AF21BC1C5F243F01B0F35CFC0C787E3
+B582A22DF92F179064A1246F5BD84698
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
+98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
+2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
+CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
+F78C2BEC5282828B86F7CA8953099CE2E9195341F704109C29C51AADD373EBDE
+EB85E47FD8D3C5FF7652BDA7494EC12851E94722B815562994192F0035086FE4
+79077E7B7DDB2CE800B6D41311D0D4D8A9DA254420DCA2741BE79693ADFAA035
+3217F7A98BA0828D52DD9EA1F4A4D89171C53564E295B2423FCA0DF89DDE60E8
+894DFEFBA44B19A01AB98AA3269C70041EC7EC7F8E7013F549834931E9F255FB
+23E2DD6999D2882CA45BBA7F9CDFB2F93DD12FA5D62A78EC285358822976B8A6
+7434109B435B127CB44E2E652E701A1E5D08E09BA2218D97EFA6474729A1C34D
+946803B33324335388CD40D54F371A8A745AB9AE6861841F2CAD24DD2895A1CE
+917B0DE6FE31FB804B4F54BDBECAF442B39F8AA1D636C56480C6E4392A16E304
+B9E32BF4BA8E9281FF7A043F5E45C387AF6C380BAD62D78E378830C6EFD77FBB
+098F7F197EC4E3C7B491F0F03BE7DCDD7968683664BE698E777DE46120E1A3FC
+71F905EB4E0EA6EF2E9ABE1ADB9EA9957213043D791E722724CE050AF94997A2
+89CCABF2F225227FC520612C40AC4EFF40C34C2B3DA7D9C1EDB15B16B0914130
+66A82DFFD0F99E8765483B51638865F0FBA634E292B17DE5EAAD5D8868D03188
+D2C8334DEA82EC96CE56E5B09BF2184F59D8F4C639F5C5559B8DC668B6B36AC4
+55898B9FAD2941D07AB3305DCD987C524AFBF737D0BF553EBB477FD089BE5865
+E4164CDCD7940CC3649FBF62D7FC6C3F645CE760635C93E47DFD50CC40284D2A
+7ACD6C41C543555A7E5DA581896870AA5E5EB20ADCAA9EE28556F70B68C3A631
+3BFEE05B208E187DFBA7593E25C068B01D4222663ED5D0D79C3F382EF3268F68
+E0B8ECC6442C11A5D062E1DD636399F405DB56E7F92A9785A6A4A925E231333D
+31EC4C1D689E94DE98E6850E9584FEA7A0F21C484F8AAFC2D68CE1289EA42B4A
+077A9A38BFBE409AD51CA55BAD5034E0E6063EBD75ECA3F687F99DEF457BDC31
+0C394CC7F0AB283EE8CB33FBD1080DA997AB7B9E05333B575EBB6090BCAB51D9
+E7D90C5078DB2F28FF246C87FA78D778FEA084B6DC970A4F4EE8767A05A8F8BE
+CDD24FFCBB156E402FC4F23462D0FF4825FC55545771314134E52E5F7495D6D1
+66DDFC3F62982B1F15C440D2B03C2AC96F65DA745E720DEBF359B6129592D2E0
+D54D184196A17AE2B70C28C88825DFCBEB3CA73DDF18BE9F98930F733B406129
+B0C5C6473FD1854EFBF08471EBB664F81A9C2CBDAC5E990CD6930FF42CCB72AA
+3823364E15D4D39B0D158A7187A5593B4E3EB480969AF7C89059BB4ADD7B1E12
+88E217E4665C736AAE955813183617314FA9C34760FCC414F1652ADE318F11B1
+C1284CD4F40B59495F6C9F462462DFF4F1FA87E34FFE1FB0A24A44E870BDDE90
+784498DF8ACBFBF63734E3739A387C34008A67ACDC1E3523E43AE53C3C8E1800
+249BA4C0E77DB02D782872CE1C3F74E922E05D96F80A93C1986BA9F19C80D655
+E45420D2A3929D6910293F33B5A855B7822C31959DF3F6357630D5E81DF70488
+13EDD658AFCA928426C0E3CC396D5F4E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE287EF5CB
+4AFBF055F1F20E242E54A1687053562E48284AA44FD71844BE368A19A186D68C
+2EF25174E1C39A8F6412B7634F31D08A693EE59FABA56B8C51A7BCE95F9E2211
+66F9D77A2EDDA79ED4E4E06DA0D31B7DD5D94288B281913A1D0896BE5D05DFB9
+EA8782194FB56DC85CE99FFE52158B222780F763C3EA599CF3B6B1C7BB8A9126
+A99FCE0DB02761773793827DA26C9E66FC5EBF64496813E2E2F0B3E31D30672B
+D77D8154C19F2CE0FB9CBA05167FB08D991B55296268659ED99C6DAE848B8E60
+415A46507A8A5968530F1C469E5CC29F0BAF6BF13CBF747757BB44D7F70326E4
+A2B863B0ACE913EDDF42E0A4BDA6F0D5C9ECCF062DD9FC2E39ACFC235F6BA531
+734F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 52 /four put
+dup 71 /G put
+dup 80 /P put
+dup 90 /Z put
+dup 94 /asciicircum put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
+37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
+9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
+50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
+CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
+BF379E82AAC67D2B525096311CB3EB38519CBBBCEC3995EEA605FFD0E8A8E3D5
+BA606330FFDF7684C73C9355BFE075BDC391C88F52F414735D555BF233D892EC
+179EBA1FEA31A25820ED1E28C729FF481D1B091EC9FA3267F005FEB9E365955D
+9AA01F1DE1BC9B9412D6D36DC9B1C5D5300CD2F808B9B5D594EACAD417E60EBB
+7EF4EAA9D4EFB077E3B34E10EDE9BEE555478D5B69C16F750F47089881764078
+C516DCEBB15E4A172DABEB941FBC816167737EB8060576EED2304D78A5CE4CF1
+927CF7C728B9B6C23CD061F97140B6C8E1C8697999B014D7A0D576A76D917F0C
+DBCC28804767109BD87270D1A4162468CEB81233A1BDB90C1483773B7F84592B
+E982241506CC744BD914CBD4A866CAC70E650D3A5B2B3EEB77BBE0EC5F2B075A
+7184BDA8E06C896EE537D04D729D1561435783F8EFF177DEE91D24533AA9CF13
+62D2DB59DDA4993E2E9BA6AED6C1A37DB43C170E5D7F6CE2A81BD29254AEFC76
+A4970E633465EE396A1D087FAF05A24770CE48473C02DB8C4E48703482220F4F
+FAAA280FCF21CD93AE3F519C12F0286BDB6A85F230CD146E09C0A7E5D0C3EAEE
+EF6F13A2B082B2346E5F4166BB4F27118BBEB59B884FDB8A6F9840383E0B0C96
+826EE958F2EB5DB799C1921A461E63496A077D2B43B367A31D8EC116ED12DC8C
+502A0CE2A70376C4F0CC4D7DF21F33467C79BC5BF37EF861064F0CF58FD61061
+C6B8EDC0196E0D2F0D196EE3CCDD07BB0DC362B141DD89B2002DA1237613A798
+6919D6C88E6BE03A83A23690D1CF3A19DE6A9649CB2CB484C847CB1B5D173B79
+FB337DB44B63B524161F15A90F478CB64B27738D7C3AA5940413984A2419B426
+F5C29B90EBD9460732DADEA29FAC22F2A05D8A5B21702CF224A7E2B9B1F8078A
+06D3B133A29AF4FBDE0CBE66801A03A6A018DA11D6AE57966D227086D26C93B4
+83AC4BAABE966B895502E8F88ACF5518BC39D8AFB6D0B3876F61A16D84FBA829
+9D6262588F3E73A0894C13BA89D2860E60B5660C822C025FE9EF4944D9BD170D
+C31D4BBD076B2322FADB7F91571D450AD928BF1B6D2D355ED3ABD85D9E0F81C4
+D68BC7264F536835459C0B98222B6B269094CD4C5B6CF8D1DE1DAD7225DB2EAB
+9B592B64C754C27349ACDBF9643D29291F82861FE3EC0B0DA4F4B35F3F15F919
+B6826A40763BBB4ED7692C22D8FCA7719BAC9FC4BE4372F0EC4944C70F18F5B6
+4C612F9A9A0F36D431105E8DCFE926F37E2CC8BB665219387F9F2918F94608BE
+C7636CF6F6EFC4F67DF166473EAF91C2C5E069872A195E442C12A7318977FDFC
+FB0613C0D88061A833CD2080BFD3F7FD1D7C03AE7649EE437DE1511C02D3B0B6
+1770BC7E62F10258D1DAD80244233525F18BD9A77C0A7750B37F23870FEE0F40
+E78732AE8FA4ABBEF75EB55D8C47D5084843954D89E85CA18B1FD932D2EB7D49
+3907F4D3857D39FF4EB39055A0919A4BCDAF9906E9FC43B93F2174C07D8E97F2
+85726F9ECA5C9BABFAE46960A56087596C6611CF45B2724F994521EA611901B6
+EE25ADC1C85EB53DEFB0CF905CF189FACCF3841FC7E7ED6244553C096ABE140D
+EEE6DC51F0347956962788EEBB4003973974DA4DA0026CE61B5D3174554A7C57
+BA4AEB56A5BA0DBF163937F31A754A7798A631FC5A8D22F43862E946A6DEB4BA
+7A7F56E1F78466BF285604CD654C8ECA5D4D713E1001B7317F4F80554D5131ED
+088F2655EAFBD3C4451C3782D38CAB76B94B80ECBF907BC8E41565A51F1C0040
+5DC7FB674F21EB11BAEEC2AAA516B6B28F3DD15956D16274503855D7D3D6FBD2
+A40B752F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (MIDI.dvi)
+@start /Fa 192[39 63[{}1 83.022 /CMR10 rf /Fb 144[44
+44 4[44 2[44 44 1[44 44 34[44 63[{}8 83.022 /CMTT10 rf
+/Fc 202[42 42 42 42 50[{}4 83.022 /CMTI10 rf /Fd 203[56
+52[{}1 99.6264 /CMBX12 rf /Fe 161[30 3[30 9[0 8[106 18[40
+42[0 0 0 7[{}8 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4235 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fe(G)-230 28 y Fd(4)-230
+95 y(4)-105 13 y Fe(4)p -65 129 4 117 v 1 w(\007)p 149
+129 V 214 w(\007)p 363 129 V 214 w(\010)p 665 98 4 135
+v 666 -70 a Fc(2)p 744 129 4 117 v 745 13 a Fe(\007)918
+212 y Fb(cni)918 279 y(oen)970 -87 y Fe(^)p 958 129 V
+959 13 a(\007)p 1172 129 V 214 w(\010)p 1474 98 4 135
+v 1475 -70 a Fc(3)p 1591 63 4 117 v 1553 63 a Fe(\007)p
+1805 46 V 1767 46 a(\007)1941 229 y Fb(oef?)1973 -70
+y Fe(Z)2003 -57 y Fa(?)p 1981 146 V 1982 29 a Fe(\007)p
+2195 129 V 2196 13 a(\007)p 2409 98 4 135 v 2410 -70
+a Fc(4)p 2526 63 4 117 v 2488 63 a Fe(\007)p 2740 46
+V 2702 46 a(\007)2876 229 y Fb(bfi)2876 295 y(oef)2928
+-70 y Fe(Z)p 2916 146 V 2917 29 a(\007)p 3130 129 V 3131
+13 a(\007)p 3344 98 4 135 v 3344 -70 a Fc(5)3428 -20
+y Fe(P)3423 79 y(\011)p 3850 98 V 3867 98 V eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.mid b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.mid
deleted file mode 100644
index 722f945bafa..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midi.mid
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midibaroque.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midibaroque.eps
deleted file mode 100644
index 41e3b46b9dc..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/midibaroque.eps
+++ /dev/null
@@ -1,809 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.96 Copyright 2007 Radical Eye Software
-%%Title: midibaroque.dvi
-%%CreationDate: Wed Nov 14 21:20:39 2007
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 746 483 786
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMTI10
-%%DocumentPaperSizes: a4
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\.user\Programme\MikTeX_2.6\miktex\bin\dvips.exe
-%+ midibaroque.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2007.11.14:2120
-%%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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro 0 0
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-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]/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[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/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/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: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 54 /six put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
-98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
-2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
-CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
-F78C2BEFFDFC4C9EAD682618538735E450B90C07A19FA2E1E6B14E108EE10572
-BD1394AFC602228D482645089DCFA6953F36F466476451D6E9C157B4C8BBC5B8
-207DDA828B159B0243C2BC52E0DFAC68AAEB762502308E42D9342BDA3BF2EB44
-0457D4A2EAEE65839361D5E2F94C5F61660764518BDFA10F22AACBC7B62D12C2
-33F2C2B15724548727C51D84AD40D64BDF1A62DBAAC89585702924806A8FABCE
-214E30C56B440A3B11D1DCE2BECCADB19527A63DE5B86FF67D643B386805AC92
-B0A21A5B657118532712493D0AFD2C4FA8D5BB71E33984501FAD0ACBAF5EFB0F
-56EAD3F60C5176B5B66CDE2822C4E6BF216A001254936C9F6B9402884606BDE3
-6CA01DAC17A279BADF0D33D9FE46D04042D32A964FB5A81E41648A5485A71B86
-A2BB411F26D0696D8148DC4567BDC420522841485FD29BBD06D63ACA7E8BE3F1
-8E2CCBE7ADAE5A73A8EEEA82B57AFD22568E4350352361DCD4790FDF133CC35E
-F856E23916A4F17FB409A752770652EBF38CE415EEA237741C2000672D0EB78C
-1E8A7836AEF94F344543B14AD6BA6B49AA1E291141D782DB98E999A3DA035122
-B359CEE641C5F25258D6141841047969E9F0BD0C571C79D30B83DF605EB5C0FF
-AFF1BC98A8B8ED62692F3E38A2E6472E2C6989C4D994E1D922A0C88F5FBD3B59
-B01E5A6B0D326482929D1296750A3AF665F16F06CE728F1EA52EC0A138EB0AE6
-26718F0C0C68A0DBFC8E7E9780EECB9E3DDE5A109FF508D98B9F59785B621B0A
-D9E0C72056B32912FBF66995E2B19827E0E181C2F59767CC26D03B5954D3D41F
-E2AF25CDD7468C83CC33B6ED37DB76CCC10BB3757C2F287B5C26EE29E687E6BB
-26F0585AE5CF4C1EB36B67A45ADF96EC290071388A5E44A22A658A0554373FE1
-FF1E07092E7A1F90553014608C4C0A6D6E96991F9D4972F3F571E2FEF4BA58F8
-3F41D38AA1CBB68EDB506F0D49CBD834883E0299DE49B59EFE54186AE7E3CD59
-84E5FA2DD880F8DF01AA0650252AB2D29D2B98CC28A36400DE1CE365C40F9102
-215849F10C8E03FD327CFA1C99761E066F1A1431DD72997E876893256F754C5B
-2D1883761270260DA23285FA680CC18F9A3616560ED05A698A133117B2781356
-12C7A9C658E0617CEBD3ABDB4DF569D704BC7CCFB2DB31BAAF68304EF8C1B7CC
-5ED813E83B9C8993EAF020ADB2B659BF953AE8901672AD6D7669FB2D8E9457CF
-FD923B9C20C602DFD54394A80AE70E61425B05F383A0294D9ED6C5229A866323
-EACC891D157656158065216DACAB055B4C0B5C5BCBB9C315953D92DCCC1DC5C6
-9E0B83BFA4A7E1B18A83980444F94EAC996AD937D6BD3F20ADE6C7F11C36D23B
-400EF4BAC9ACAB4757B0FA17C00535470DF1E1731B7423FF2F947E3285C80EB9
-F252DE5DA7E58F9B8D50790EAEAEEF4DBB650A1F15426343FC472FD9F3654DDD
-A089F5FA449A1D679A897FD1C7315E65F437D415C310C31AD6A80D0F3DA3B41F
-514616824EEB7C2F12CDB681AD8337310D7E63F4DD62C5BF4B879E8AAEE95F0B
-BC8C0A6F3A43D9E195BC558A5A80B351F1095D7FF79016BD49BAF246138A1DBB
-70D58488D40AC45B7DE6B3B8648F302054A54B0DAB33696579AF2260BD9E80F4
-9377EDB81D44811DBC63EF33B402E20CA2C1A7D163D7CF83F981F1E92EC26257
-638EF3C7FE6BCF69DC2DC4E52F2D14DD1FCA6B2714DA8750B2440FF35D34A3AD
-ED57C5FA22F45587C72AC6C7FE48D25B5C82254D9FA37CABF19D63A986746F30
-D207BB75E22D9648E0F0AAAB7DF0D69238B2EEF29D45F21ADCC192429C1F4D59
-65C4565865A0AFDAFC4707581DC5BE
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%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 97 /a put
-dup 100 /d put
-dup 102 /f put
-dup 105 /i put
-dup 110 /n put
-dup 115 /s 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
-BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
-7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
-81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
-D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
-740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
-921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
-495069A1DDF11DC589D2E91C1514C2799C5B954EB8B347918C4920C7142A2AC6
-8231DD2AF57E9540C46BDA6AAC09689487F5E0EB021CADA860FD25B2E5230259
-7BFF0F12D7DF5CE219716715073177028CE276FC313D6A101898D1A6BB0AD8D5
-662A85EE6B921A72E46589CC08EA87EECFDF36B819B07306C44AC3FBCD134930
-4B2F9EC4D5C57518E8210FC2C61DA3FD185CFA65DF3DB858BCF75E95321A7131
-547E0C854068826FAB1D8A48A3708F6B3AA1DE3502DDFE91A553D31ACB26D732
-FD54BD83E3C485032A061769D33F2D8BD8AF3E5EB9BC7BE18F5EB7A440C673D6
-25151DBC150FE25384B0E304BB85A140375383149A3A282B3C1A2DD60330607B
-2227C8FA6DCA0BBA0FF8F31D06A6F3355819580C478B6E2A509CED4243271E59
-20ECD1C98F0548750A22B4803ECBB4273E712595734F20D72AD8ECC1D2197E28
-093E66A9837BBE4ADBD0291F03932E92CE5320DC3DA94674E8E633B249A1D62A
-9F428C43636F2CA75746E3923DFD2D24579B47D27ED376F51F35A5340BE770E4
-49D89FC8C589974C55513AE70589392CB5599C78917EE5155E70BCF5C7580718
-38AF50C44016FE62E8E24140591350325700D9DD4FE28C41C283D48AD7CA7CDF
-68C9EB692475BBA065F8BFCFF80F22F04B4B689DCAAC170408185E91647F364B
-DDD7DC50C1376A2C3719CB2FB7C4B1311ADB97C07BA2477251EDA166A7C24AE2
-2CFE9AAE9734CBF4CDC62A672666C1A45C090427BFC9A5966DB9AA412EC1304A
-2403826D62AAB3D9636FB5B87B805B40E103902948CC6AA0CA362203EABDD9C3
-AC4AF069C651C4CA524C60FCA92329912C72F551D602CC540CBFDFB5AB5E82CC
-56AAE5C64145F7771539BF24F8371F25E317B5248AD9F80B9B13CD4BEE19AFBF
-C635FBB3CC954AFAF571FD7152641E33425C822C344160A6BC4939285377FC04
-42D89CFEFD136EAC7E97F8D4B2D507B08DC251B07E7493F7CBFDACAE7D0D2F09
-00A3831CDC7A15CA79209984AF5C18A593264D7DCEAEDBE9EB7CB54209AEC66A
-DC9119086F0CB9BDBA53BE0F4E3B64D730A97BE97DE8CDEF1B74D97C64AB2CEB
-74BC22650914C20DCA7A07E4FC71102E454E5FA617A2F5539C3E65BD0E02C474
-90FD2E9DDB2BF727146B4E9F5B8B195CBA21822D647653B1D5666E5875E177F7
-4B1A61BE87F3B7F0A6F6D83D06AB8C4AFF88C664643D9D37220AD289859B3F4F
-5F12FA616CAE542971CEB62EB2B85101522F70F8A7F9995A717A71E5613A01EA
-657941747028B451EFDFCDBF36912B16BD6EFB285117B18F619BC14401EEB00B
-04A235E7816908F2EDB40D80DEAF2D5D0D3992DD5CABAE569914878FEB1540A9
-695D6C0D653214A24D6BD81CCB510C74310AC58690E5697FB5B835943D375AFA
-1F458308CC35B3A871E4F570F7F88ACD409D5C2059282B2AD3D2DAAB56BFBAFE
-7FC35C770622EC07259D91320BA661CEB0ED3132C9062CC6F9160918E3DC37C7
-85A079FD74B969747934501A53D54FF8620A50BFD26AC05FA2DAF07CE405769B
-4D65A6C7B25A5590571AC7936F3B12E0FB0F64010A21A303AE80894C6FFB8961
-521B0E64A8814FB30D3692BC124CB709B60E35AD1EC4782A7BD7AA60A3C41AF3
-F419095859E86394DD2BC886EA390D0662AE65787F50B322E92C70ED0795A1B6
-BB0EC1C84D98AC56B9AE4607989B6EB5F534CDCF67F0E143CCA7BCA5CA1124E3
-6098168035007AB730102FFD2E9FF27C9410EDEF5AB72297560475F170E6FFBE
-A49BAFF2E4D8FC00F0C05D35A5AF1116ABB001129319FF87BF75327347193743
-28D2EFDAA65EDE9F4E9A19F7F3128D9449F0E34BDD74F617D31FDD3D4FEDFF23
-D4C798B65997EBB51701D157472006D5706B65CE19B5185277D53A4FDD22890D
-52D25E99BB7146DBCDA6CD6BBDA6E5D4D6D8C8B42D87D8C4640CE121F8EBF095
-A64C192678C35B50B0C884DE0EE572B39E76EBBC2B089D151320C39E53FA7C72
-D61C37C10F886D1864BF4EAA872ED22E6C76473C899E9BF9B1798C8644E4747F
-631ADFCA67A02A073238BDB35A360397E58DEAC827E24EFC60B7B64777BEA645
-E32A70444D9D3E5FFE5914A8C22A4B7AE09080EB8CFDC9F497AB7C231496CAC9
-6A76ACEB09F86262AF5DE3523E66BBDEC80F12A88C2F94F601FDB6B48613C26C
-3AC738DCD4AB05A16C34AAC07EB789901B095230281FC71F045AC83D60C6B822
-55C6276398134634A8135902A31A52E84B55AECE4BE46E9D9372E8C2738A3AE2
-9CE61298D5C2E792BC098A143F3F08614489
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF821A5E5C18925EA0BBEBDCD5BAA2B3C302E1C99E38E12C7F2441F9EF
-C88D77D02D3961BF5020513E586DA43DFA4C70E2F9DBECEB458E4119AC3F5662
-F53C14821D671E086E5BE271924C3F9879A9038BC7942281C9D93DD426FB86BF
-48CD0CCCA0A654C1EE7422C144F68087BBD3C6B3C8EFEF40355E5446394FEBDD
-4B8386403F0C749D8195364571B16DC206BA9CE194D727D96FC629247E851891
-8BD5B1D1CDB1DF01F68FF07F792E6077CB612D0E4FB566DC5EBBC8EF5D1B91D9
-59D5329CB08B8382660387AA1024B464B0D6CA1861F5386DB4A683E444662559
-284335983BB2328BE681F11DB56CFEF2AEB1F383E280C1517FD9A134C03D7969
-3E82311D3A2A81B60A2675E28F7848AF34EB4AD1CB643AC8525AC755D48AF483
-ED43C6DD7C366CD5C743AE783B7FC2BC68BBA888FC1B29DF72D84164E5A47434
-533AE973107C34672BA2775EFC58C4C512316EB9E01CABE788DEF4A549C9A544
-6011F1FD1E21C307B5E42DA7CAC389D15F0D28A01F7FCFC7837794B57CBA4DDD
-29B91879316F8EB0523D63CD4410398B6091E0F43CFF2A56D2B8274183DF2514
-A33129B83FEBA8E6B759AD2319DF17AFE815A0E258F607D84FCF18D10B52C68B
-93821B18B176F877705311887EDC94A157BB1F09BAE080BC0E2EC11D4417131E
-564986BAA33F5E279B8A1742EB20DEB16BD8CC7A3693BB57816303F34C3D51CB
-235DD792942647C2995D465A94283C0456981ADCDD3861F037DF51528509C846
-60265D1B54E78F32DE6B19B1CDDF5D06D893E8C5ECDA780366A9F6CBB543BB7A
-59F8B818928A3371233BC35808A322E81D4EF8EB08F4C5D8C36F269922522D9B
-5C0A6091DE5F6C53B7DFD89EF430E3CE4A5A26AD6ABA27DF4852F20B1E79854E
-384C2BFAE23FE96CCB0836977F4CBB34901FAEBD2B17DECD28A478E065FBDDA3
-F91BBFFF86516628D69D2F70D1967955AEB024CA3BCA461EA8F23948FCA72A61
-E06E161C12662B9F78A42713FAF9B28B040007187097B2E5534E80D8E84713EB
-06DCF006D7B61730726C7E7D925C92CFBABB28148049FDBA391478FF5EA55B51
-8DDA7BCADC62B30516C11FAE5050FA324E5FEA467A9A74F162449B807D14800C
-417C1FDF804B2480DCDB71DF9D0FCA2B8771194CED564452E20F5CE90065B9C1
-3FE92717CA07DDF872C24B0CCB3C529706FFFE25A42D571340E2E19CADAD6D96
-B78FE89FF656139CAE00A7897DE81BBB49022AE7198392CDFEAAB4E927848993
-81424B1AEEA51DD8B4F48F29F8969979F00909CE4B8F5A1BA698EAFC8B852399
-41456CE796C3E542C6966F3E8244ABAD51FA861F7B37A1199292CA774190C2F1
-5834FD63E9AEE80E26EF104AB808C6A189864044F74FBE2CC0097A63B93D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39139632 55387786 1000 600 600 (midibaroque.dvi)
-@start /Fa 201[42 42 42 42 42 50[{}5 83.022 /CMTI10 rf
-/Fb 140[44 4[44 4[44 2[44 1[44 2[44 97[{}6 83.022 /CMTT10
-rf /Fc 184[106 16[40 1[40 44[0 7[{}4 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
-10 64 V 10 98 V 10 63 a Fc(G)119 -37 y(4)178 195 y Fb(d)p
-198 112 4 117 v 199 -4 a Fc(\007)278 195 y Fb(f)p 298
-79 V 299 -37 a Fc(\007)p 398 98 4 135 v 399 -70 a Fa(2)417
-195 y Fb(d)p 437 112 4 117 v 438 -4 a Fc(\007)518 195
-y Fb(fn)498 -37 y Fc(6)p 537 79 V(\007)p 638 98 4 135
-v 638 -70 a Fa(3)656 195 y Fb(d)p 676 112 4 117 v 677
--4 a Fc(\007)757 195 y Fb(f)p 777 79 V 778 -37 a Fc(\007)p
-877 98 4 135 v 878 -70 a Fa(4)896 195 y Fb(d)p 916 112
-4 117 v 917 -4 a Fc(\007)996 195 y Fb(fn)976 -37 y Fc(6)p
-1016 79 V 1 w(\007)p 1116 98 4 135 v 1117 -70 a Fa(5)1135
-195 y Fb(f)p 1155 79 4 117 v 1156 -37 a Fc(\007)1235
-195 y Fb(a)p 1245 -69 60 4 v 1255 46 4 117 v 1256 -70
-a Fc(\007)p 1355 98 4 135 v 100 w Fa(6)1374 195 y Fb(d)p
-1394 112 4 117 v 1395 -4 a Fc(\007)1474 195 y Fb(fn)1454
--37 y Fc(6)p 1494 79 V 1 w(\007)p 1674 98 4 135 v 1693
-195 a Fb(f)p 1713 79 4 117 v 1714 -37 a Fc(\007)1870
-195 y Fb(a)p 1880 -69 60 4 v 1890 46 4 117 v 1891 -70
-a Fc(\007)p 1990 98 4 135 v 2009 195 a Fb(d)p 2029 112
-4 117 v 2030 -4 a Fc(\007)2109 195 y Fb(fn)2089 -37 y
-Fc(6)p 2129 79 V 1 w(\007)p 2309 98 4 135 v 2339 195
-a Fb(fs)2319 -37 y Fc(4)p 2358 79 4 117 v(\007)2554 195
-y Fb(a)p 2564 -69 60 4 v 2574 46 4 117 v 2575 -70 a Fc(\007)p
-2674 98 4 135 v 2693 195 a Fb(d)p 2713 112 4 117 v 2714
--4 a Fc(\007)2793 195 y Fb(fn)2773 -37 y Fc(6)p 2813
-79 V 1 w(\007)p 2993 98 4 135 v 3012 195 a Fb(fsi)p 3032
-79 4 117 v 3033 -37 a Fc(\007)3265 195 y Fb(a)p 3275
--69 60 4 v 3285 46 4 117 v 3286 -70 a Fc(\007)p 3385
-98 4 135 v 3402 98 V 3405 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mozart.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mozart.eps
index 2ba3d91c67a..2d495ebe717 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mozart.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mozart.eps
@@ -1,505 +1,505 @@
-%% LaTeX2e file `eps/mozart.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: mozart.dvi
-%%CreationDate: Wed Oct 15 18:57:10 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 29 712 369 782
-%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE mozart.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.10.15:1857
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 52 /four put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE287EF5CB
-4AFBF055F1F20E242E54A1687053562E48284AA44FD71844BE368A19A186D68C
-2EF25174E1C39A8F6412B7634F31D08A693EE59FABA56B8C51A7BCE95F9E2211
-66F9D77A2EDDA79ED4E4E06DA0D31B7DD5D94288B281913A1D0896BE5D05DFB9
-EA8782194FB56DC85CE99FFE52158B222780F763C3EA599CF3B6B1C7BB8A9126
-A99FCE0DB02761773793827DA26C9E66FC5EBF64496813E2E2F0B3E31D30672B
-D77D8154C19F2CE0FB9CBA05167FB08D991B55296268659ED99C6DAE848B8E60
-415A46507A8A5968530F1C469E5CC29F0BAF6BF13CBF747757BB44D7F70326E4
-A2B863B0ACE913EDDF42E0A4BDA6F0D5C9ECCF062DD9FC2E39ACFC235F6BA531
-734F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 71 /G put
-dup 136 /Lacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C609FD71CD7D9875C048
-B6BC06A44D45A240E09361B9FDD3B62611C1D3F3ED90A4EB80A366F5239819D6
-D45AB930E7CDF84821190380FA3C8A43E94B8E3762CFA594F3223C22C504D6F3
-8E807F48547BFB0C2EB1E3902EEBDB8DAFDAFE3B0A5635392760102263D68086
-B1F0347C724750C7EE7A16826887EA2F5E19C18C3E02672FEBF3700B6161F8A3
-0A59CF3D2D946252E71B4F5BDE590308ED1BB3A220DB1544AC4F01B3D7A3CB35
-25DCDB78FB2E73C4E380E609205B400D6218D5C3DA09CF0D278BAE82DBB83AD8
-D1265A6EC3D2F5F2E8813DDFA408BBB8BB88DAF930B9706250D5C86CF8A7C54C
-596316F985231C72591B9DC7803FD34A1FA57C6D87A70B2BE737B152F9D8FE29
-D8C78FA7AFAE2DBF85975D5AD41443D2446ED91C13E04293B573F5474F331250
-3999AD25D3253B4B8C6D7FA065516B9603309AB71DA7701EF8E319417BA34F8C
-CF77116CE5C4BC7890FC1DDB068F4318BFFAE5BB82324B0E102FE5F90643FBB2
-A62183C5EFF12B756C9347BFF424FB571009E5F7EF3CB1DC7151DDF0BDC7AF3C
-0E9FE518BABBE46A99A74645F706CF0587F97BC890920440A47A61C85293C3F4
-14F324A838A861F75AC5C217758AA4913EFD650111C9D5C01C39F4DA4ED88774
-AF2DAB8CFD6B57E0180FABF25BCBCA1CFF2FD44440B0BFFD98DD7588EA18826B
-9076FBD64530DE6177C0E6538D47F6E680C5ECC769E2BA9FB8F78A4ED6F5B297
-1B6D62E5A290AECB7DD9081F02194D72351FB5CF396D54C3C7498883E06EE7AA
-71CAAD9B894A91E541CF3372ABF9758F46B37C34F7C61272E41296C156E6512E
-96B9A62B13D82C68F3AFA298EE7C9CF73F2FC774D52D7260C60BC18A384BC3A3
-611BBDB0AA975022FF69093A50608AA00E38635FF64C96000BEEC8063F69C75A
-B675EFF6B3068C02458CC961999A4677C2ED6669C52C5B96E5727912B022D02C
-64F6E2B0DBCD892E94B7ABDF2462CECDC89969B49BC67FEE54D5BBE46B4AEE28
-4CC611189AD3160E8F92677CC6FE8AFDCBEE49F007589A2A0869D86AB09993CD
-415B49404527B6A32B142059AE82607E9D03602BA1854319079B1DDE280A9CC9
-3EF2664C5163226433E8329873C10231E6113D18A6B046CE5D8FA9ABC4177A61
-CB279304E78B4B23B14680489F15348FC09B59CBED0F0A86AB3A49
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 80 /P put
-dup 97 /a put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
-439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
-09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
-0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
-7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
-68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
-983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
-3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
-A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
-BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
-F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
-800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
-64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
-2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
-36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
-A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
-4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
-0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
-9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
-C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
-F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
-0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
-BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
-9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
-1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
-D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
-CBBD534323A8D661D56AA5DC42BC8BFAA5BC6C322093460223EA50789047AC60
-4EACAB6E95576C2BC1388EF8C633E67DA506210D4A26D8D64A117796E8EB2B2B
-B51218447418B593FCBF6D71CDE52F70D5D2D6F08EF58B126A96627120A847BC
-7DE861B70914FF4300CC03A9FDA150A410448A6D529AFB4D82A7FEEE9E758D9E
-86177BC7CE728B3AC1E2034DAA7AD92DAC2CF1E774B39430C9E7F09E4D964CE6
-22BA6EC5184AE6493C19970CCC0B38DCA85A2BB66A287D0BA0678663205CACE4
-139D54BAA0AE86174F9774AAA689FD7212A56263ECEC01137303AF81D77CB6A5
-4B5F83450FA28844F41F5D704E03EE989DEE0CFCD0D268CCFDA1123AD3474CBF
-EAAF5ECF15BBDA72ACEA150D4B241193D450E3C3B92F758FD2A6516F07D3599E
-680E6FCBA1171250245AE9F4A7741E817F2C2D455125C4405E299EDB88771DF9
-44B4899ACDE5612CD3F7BCB097BE7C996559A8B724043992A3DB9B9744564D07
-34BBDF6D4283F0EC765134FF442007402AB9B2A58A76A373C50F07F92D93ACAC
-EEE6B227A9FA43A6A2B88062D50C2D3ACEDB3DB0042D798028F718BA869376DF
-E5B117FCF03CFACFC4F95ECC142E639E034E2F1187E5FEA2F9F3554E0D3DD8A9
-116E82B55B1F5E80E9793A4EE26B5297E2F295003992A40DD1B65831766E4871
-A23F3D621CE21E1FD97FC40A51268F1A60143A2AD58628269FBF6F6E004F1A65
-B064FB316BA4D18B5BA818FF682B861FD82D181923EC23C580634F4BDEF01E04
-CDB078C16EBB18E1D872E1102BB0B5D5AE5EB3FFC567DD3BC288787D1470411D
-B6E1C1FBFE36B28FAA6A8BA1A0DAD997D481AEA853FC73ABD6BE8DD33F8B19EF
-C70C5F74874664AA02DBBEB58DDAE21B0F39BA08CDDF4B4B8F68B3F493951279
-4192AB74FC50FA6D7D5D4D023D42A8AA8B781A3FE1541DB2936085CDD05B9D2D
-542B424D5D42ECD8FD8A58FE313B84A88F8A16E8B3D22A7A6FE870C36BDCE807
-247287DEB939CA99FD04C6519D3897523B8E02C531813B64583109C4383C9A43
-0B9397C1024614AD68F8691D812E34C16AA34E6D27765EC819A1C9D23AB7EEC4
-4FD22E191986AC8D9843F7283A6A74E2C5740AD6E122D2FF99461F5E681FF9AC
-ABCE227D536255DC1F5A7CD5CED43E12E0B012504C320FCE8CE68E882EE7D13E
-A51B796EE128C045956A3D761695109405E2112C707F10498503C7ECB3217B32
-D88B309C700BFDC85BADFB14A4B13AC4CA645C69C1839F632965E5D829563981
-3179A518977FC7DC6209A58BAC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 156 /IJ put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
-19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
-F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
-78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
-3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
-ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
-E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
-51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
-906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
-30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
-C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
-CF6FF708F7024031
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (mozart.dvi)
-@start /Fa 203[56 52[{}1 99.6264 /CMBX12 rf /Fb 119[66
-64[106 62[0 0 6[0{}5 132.835 /TeXMUSIX16-Regular rf /Fc
-144[42 46 4[23 7[42 16[57 80[{}5 83.022 /CMR10 rf /Fd
-99[0 156[{}1 166.044 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -23 195 a Fd(\234)p -23 297 2483
-4 v -23 330 V -23 363 V -23 396 V -23 430 V -23 -35 V
--23 -2 V -23 31 V -23 64 V -23 98 V -23 430 4 467 v -353
-224 a Fc(Piano)-23 395 y Fb(G)-23 63 y(G)110 360 y Fa(4)110
-427 y(4)110 28 y(4)110 95 y(4)p 255 463 60 4 v 303 461
-4 158 v 265 461 a Fb(\007)p 432 395 4 92 v 394 395 a(\007)p
-561 428 4 125 v 523 428 a(\007)p 303 311 390 16 v 691
-395 4 92 v 653 395 a(\007)p 772 463 60 4 v 820 461 4
-158 v 782 461 a(\007)p 950 395 4 92 v 912 395 a(\007)p
-1079 428 4 125 v 1041 428 a(\007)p 820 311 390 16 v 1208
-395 4 92 v 1170 395 a(\007)p 264 129 4 117 v 265 13 a(\010)p
-782 96 V 783 -20 a(\007)p 1041 62 V 1042 -54 a(\007)p
-1300 430 4 467 v 1406 445 4 142 v 1368 445 a(\007)p 1535
-395 4 92 v 1497 395 a(\007)p 1665 411 4 108 v 1627 411
-a(\007)p 1368 146 4 117 v 1369 29 a(\007)1369 13 y(\000)p
-1406 311 390 16 v 1794 395 4 92 v 1756 395 a(\007)p 1756
-146 4 133 v 1757 13 a(\007)1757 121 y(\210)1784 118 y(\210)1757
-146 y(\210)1784 143 y(\210)p 1847 137 4 141 v 1848 -4
-a(\007)p 1928 463 60 4 v 1976 461 4 158 v 1938 461 a(\007)p
-2106 395 4 92 v 2068 395 a(\007)p 2235 428 4 125 v 2197
-428 a(\007)p 1976 311 390 16 v 2364 395 4 92 v 2326 395
-a(\007)p 1938 129 4 117 v 1939 13 a(\010)p 2456 430 4
-467 v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/mozart.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: mozart.dvi
+%%CreationDate: Wed Oct 15 18:57:10 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 29 712 369 782
+%%DocumentFonts: TeXMUSIXSPX-Regular CMR10 TeXMUSIX16-Regular CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE mozart.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.10.15:1857
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE287EF5CB
+4AFBF055F1F20E242E54A1687053562E48284AA44FD71844BE368A19A186D68C
+2EF25174E1C39A8F6412B7634F31D08A693EE59FABA56B8C51A7BCE95F9E2211
+66F9D77A2EDDA79ED4E4E06DA0D31B7DD5D94288B281913A1D0896BE5D05DFB9
+EA8782194FB56DC85CE99FFE52158B222780F763C3EA599CF3B6B1C7BB8A9126
+A99FCE0DB02761773793827DA26C9E66FC5EBF64496813E2E2F0B3E31D30672B
+D77D8154C19F2CE0FB9CBA05167FB08D991B55296268659ED99C6DAE848B8E60
+415A46507A8A5968530F1C469E5CC29F0BAF6BF13CBF747757BB44D7F70326E4
+A2B863B0ACE913EDDF42E0A4BDA6F0D5C9ECCF062DD9FC2E39ACFC235F6BA531
+734F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 71 /G put
+dup 136 /Lacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C609FD71CD7D9875C048
+B6BC06A44D45A240E09361B9FDD3B62611C1D3F3ED90A4EB80A366F5239819D6
+D45AB930E7CDF84821190380FA3C8A43E94B8E3762CFA594F3223C22C504D6F3
+8E807F48547BFB0C2EB1E3902EEBDB8DAFDAFE3B0A5635392760102263D68086
+B1F0347C724750C7EE7A16826887EA2F5E19C18C3E02672FEBF3700B6161F8A3
+0A59CF3D2D946252E71B4F5BDE590308ED1BB3A220DB1544AC4F01B3D7A3CB35
+25DCDB78FB2E73C4E380E609205B400D6218D5C3DA09CF0D278BAE82DBB83AD8
+D1265A6EC3D2F5F2E8813DDFA408BBB8BB88DAF930B9706250D5C86CF8A7C54C
+596316F985231C72591B9DC7803FD34A1FA57C6D87A70B2BE737B152F9D8FE29
+D8C78FA7AFAE2DBF85975D5AD41443D2446ED91C13E04293B573F5474F331250
+3999AD25D3253B4B8C6D7FA065516B9603309AB71DA7701EF8E319417BA34F8C
+CF77116CE5C4BC7890FC1DDB068F4318BFFAE5BB82324B0E102FE5F90643FBB2
+A62183C5EFF12B756C9347BFF424FB571009E5F7EF3CB1DC7151DDF0BDC7AF3C
+0E9FE518BABBE46A99A74645F706CF0587F97BC890920440A47A61C85293C3F4
+14F324A838A861F75AC5C217758AA4913EFD650111C9D5C01C39F4DA4ED88774
+AF2DAB8CFD6B57E0180FABF25BCBCA1CFF2FD44440B0BFFD98DD7588EA18826B
+9076FBD64530DE6177C0E6538D47F6E680C5ECC769E2BA9FB8F78A4ED6F5B297
+1B6D62E5A290AECB7DD9081F02194D72351FB5CF396D54C3C7498883E06EE7AA
+71CAAD9B894A91E541CF3372ABF9758F46B37C34F7C61272E41296C156E6512E
+96B9A62B13D82C68F3AFA298EE7C9CF73F2FC774D52D7260C60BC18A384BC3A3
+611BBDB0AA975022FF69093A50608AA00E38635FF64C96000BEEC8063F69C75A
+B675EFF6B3068C02458CC961999A4677C2ED6669C52C5B96E5727912B022D02C
+64F6E2B0DBCD892E94B7ABDF2462CECDC89969B49BC67FEE54D5BBE46B4AEE28
+4CC611189AD3160E8F92677CC6FE8AFDCBEE49F007589A2A0869D86AB09993CD
+415B49404527B6A32B142059AE82607E9D03602BA1854319079B1DDE280A9CC9
+3EF2664C5163226433E8329873C10231E6113D18A6B046CE5D8FA9ABC4177A61
+CB279304E78B4B23B14680489F15348FC09B59CBED0F0A86AB3A49
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 80 /P put
+dup 97 /a put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361239003619BCF
+C8573C722B3E9318797AFF46829FA0954EDAE667CBDC94759A867CC85D4F5208
+F9180171E06B8DDB646FFC9A23B8BB4A46413D6F2AEF5FD2BA95D15B89CB959A
+0DD9A52F808A67779ABA1385A3D821F319221CE2C2823903980506A9F523F673
+BA8CF49FF6291AC9211F1A636516C6772D7BDA6CBEE2DC32B4B588EAB6D5B703
+9993D7498A032F336C94C4D22D62C959A39542360C638A47B3631DB34AB2DDB6
+1F7F3380C2E498998FD037D939B772D6975B5830277FE1C2186E0271E235D08A
+D60E58A9CDBBD47877F44B51BDB6B244EAECD38B9AF5EAF86F9CF515CB81E8A7
+CBBD534323A8D661D56AA5DC42BC8BFAA5BC6C322093460223EA50789047AC60
+4EACAB6E95576C2BC1388EF8C633E67DA506210D4A26D8D64A117796E8EB2B2B
+B51218447418B593FCBF6D71CDE52F70D5D2D6F08EF58B126A96627120A847BC
+7DE861B70914FF4300CC03A9FDA150A410448A6D529AFB4D82A7FEEE9E758D9E
+86177BC7CE728B3AC1E2034DAA7AD92DAC2CF1E774B39430C9E7F09E4D964CE6
+22BA6EC5184AE6493C19970CCC0B38DCA85A2BB66A287D0BA0678663205CACE4
+139D54BAA0AE86174F9774AAA689FD7212A56263ECEC01137303AF81D77CB6A5
+4B5F83450FA28844F41F5D704E03EE989DEE0CFCD0D268CCFDA1123AD3474CBF
+EAAF5ECF15BBDA72ACEA150D4B241193D450E3C3B92F758FD2A6516F07D3599E
+680E6FCBA1171250245AE9F4A7741E817F2C2D455125C4405E299EDB88771DF9
+44B4899ACDE5612CD3F7BCB097BE7C996559A8B724043992A3DB9B9744564D07
+34BBDF6D4283F0EC765134FF442007402AB9B2A58A76A373C50F07F92D93ACAC
+EEE6B227A9FA43A6A2B88062D50C2D3ACEDB3DB0042D798028F718BA869376DF
+E5B117FCF03CFACFC4F95ECC142E639E034E2F1187E5FEA2F9F3554E0D3DD8A9
+116E82B55B1F5E80E9793A4EE26B5297E2F295003992A40DD1B65831766E4871
+A23F3D621CE21E1FD97FC40A51268F1A60143A2AD58628269FBF6F6E004F1A65
+B064FB316BA4D18B5BA818FF682B861FD82D181923EC23C580634F4BDEF01E04
+CDB078C16EBB18E1D872E1102BB0B5D5AE5EB3FFC567DD3BC288787D1470411D
+B6E1C1FBFE36B28FAA6A8BA1A0DAD997D481AEA853FC73ABD6BE8DD33F8B19EF
+C70C5F74874664AA02DBBEB58DDAE21B0F39BA08CDDF4B4B8F68B3F493951279
+4192AB74FC50FA6D7D5D4D023D42A8AA8B781A3FE1541DB2936085CDD05B9D2D
+542B424D5D42ECD8FD8A58FE313B84A88F8A16E8B3D22A7A6FE870C36BDCE807
+247287DEB939CA99FD04C6519D3897523B8E02C531813B64583109C4383C9A43
+0B9397C1024614AD68F8691D812E34C16AA34E6D27765EC819A1C9D23AB7EEC4
+4FD22E191986AC8D9843F7283A6A74E2C5740AD6E122D2FF99461F5E681FF9AC
+ABCE227D536255DC1F5A7CD5CED43E12E0B012504C320FCE8CE68E882EE7D13E
+A51B796EE128C045956A3D761695109405E2112C707F10498503C7ECB3217B32
+D88B309C700BFDC85BADFB14A4B13AC4CA645C69C1839F632965E5D829563981
+3179A518977FC7DC6209A58BAC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 156 /IJ put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D64CCB667EC883665B5
+19CDB7E2377F72A2667B9520B5DE6EE482A180F2A583CB51686EBB655321249D
+F21ED88379740A9919696632ECBB21D94D62216722D0065942B20A53BE6326D1
+78F361DB3F9B6D0D63E2B69AF898AAB2210472C907A1F29D0BEB20484209B513
+3BC0264EC258A35B5E7AD6A79910DDF9BB185A3633C9079AC73752191D16B1E7
+ED7450987320959FFD242C4DF467557FA9D612F8D17316508489EF833FF01888
+E886AD08890E4576F8BA32BCE39FFC7B5250B87C85FE147099327339CD62C747
+51890DC3EEA5012B2B95E5584C7430FB4E0665D720E69848A4AF017FF6930225
+906127EBBE7284E79D7F91FD5E57B9B666B2E8B1CAC9DB35BED0615EBBBE9A13
+30FE6403C2560F401C36C3DAFCE42DBDDEF687BFE03D557EAA9CA2DA724B2080
+C625DC1890F4CFB678ABD690EF6CFC29C2B186FB6A8E9F33B10F5FFF53680BEB
+CF6FF708F7024031
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (mozart.dvi)
+@start /Fa 203[56 52[{}1 99.6264 /CMBX12 rf /Fb 119[66
+64[106 62[0 0 6[0{}5 132.835 /TeXMUSIX16-Regular rf /Fc
+144[42 46 4[23 7[42 16[57 80[{}5 83.022 /CMR10 rf /Fd
+99[0 156[{}1 166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -23 195 a Fd(\234)p -23 297 2483
+4 v -23 330 V -23 363 V -23 396 V -23 430 V -23 -35 V
+-23 -2 V -23 31 V -23 64 V -23 98 V -23 430 4 467 v -353
+224 a Fc(Piano)-23 395 y Fb(G)-23 63 y(G)110 360 y Fa(4)110
+427 y(4)110 28 y(4)110 95 y(4)p 255 463 60 4 v 303 461
+4 158 v 265 461 a Fb(\007)p 432 395 4 92 v 394 395 a(\007)p
+561 428 4 125 v 523 428 a(\007)p 303 311 390 16 v 691
+395 4 92 v 653 395 a(\007)p 772 463 60 4 v 820 461 4
+158 v 782 461 a(\007)p 950 395 4 92 v 912 395 a(\007)p
+1079 428 4 125 v 1041 428 a(\007)p 820 311 390 16 v 1208
+395 4 92 v 1170 395 a(\007)p 264 129 4 117 v 265 13 a(\010)p
+782 96 V 783 -20 a(\007)p 1041 62 V 1042 -54 a(\007)p
+1300 430 4 467 v 1406 445 4 142 v 1368 445 a(\007)p 1535
+395 4 92 v 1497 395 a(\007)p 1665 411 4 108 v 1627 411
+a(\007)p 1368 146 4 117 v 1369 29 a(\007)1369 13 y(\000)p
+1406 311 390 16 v 1794 395 4 92 v 1756 395 a(\007)p 1756
+146 4 133 v 1757 13 a(\007)1757 121 y(\210)1784 118 y(\210)1757
+146 y(\210)1784 143 y(\210)p 1847 137 4 141 v 1848 -4
+a(\007)p 1928 463 60 4 v 1976 461 4 158 v 1938 461 a(\007)p
+2106 395 4 92 v 2068 395 a(\007)p 2235 428 4 125 v 2197
+428 a(\007)p 1976 311 390 16 v 2364 395 4 92 v 2326 395
+a(\007)p 1938 129 4 117 v 1939 13 a(\010)p 2456 430 4
+467 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mtrauermus.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mtrauermus.eps
index 73c75da128e..254e7c5d385 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mtrauermus.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/mtrauermus.eps
@@ -1,1815 +1,1815 @@
-%% LaTeX2e file `eps/mtrauermus.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: Mtrauermus.dvi
-%%CreationDate: Wed Feb 18 18:05:14 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 20 184 594 765
-%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX20-Regular CMR10 CMMI10
-%%+ TeXMUSIX16-Regular CMTI8 CMBX10 CMBXTI10 CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE Mtrauermus.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.02.18:1805
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 65 /A put
-dup 97 /a put
-dup 100 /d put
-dup 103 /g put
-dup 105 /i put
-dup 111 /o put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2D4609D7
-D2E805DECFF5AF988F0808796D01500B18F0EFE1919743C126088426A5A27D4D
-03F21A15C23B9BF08DFD73708F2C1AAC530B2D00674DF2B5274D98C541905206
-6DD191F7458F1166231360871EA0C6AAE036BD3551B866DB578F29DEAFD289B3
-FA6E9CC4726B854E887BFFE87DA8AE960C817A1784031DA55BF78A79976A4FBB
-764DB071CF34E990D3531367408D37218B289FFDB701E870A32EC7ECC8C3D6FD
-90074953B49CABE8468930B55E5B5BA75B9EFEDF3A17405A626C7EAB6FCF110F
-D67C2210DEB1D9688F44E3904D353E0FFC63C6F3F15222685A8B5CA87C9F2F51
-DD1235E9F499B23FB69822FD9EAB739451E752796942ADD80A8BE9D4565859FD
-FBC97827BF4AE0C5691889BD555A44AB58E86D684591F33F54D08112EADA5B75
-BC6E242C6F8CC695CDB2A01A4F327739336236851BA94BAE26700028E1D6A4F8
-F01704ED48F6D9A2FA84A2A17EBEB204937C529EEB9D62AD38DDBCAE30F40E76
-8B94F67873840E5C75EE4E4EE56C4778A8CECD927FDCB363211AD63CE6FDA202
-128736AF1125DFBBA9649E9FD779A715ABFC54603FE76F6FFEDFEF914F46F1FF
-5F0E20BCA0E11294BC23EE1DEB119DB1E0CBF9B927744B72A0ADE9745AF7E8DF
-B31346CB86059E8720FEBA8315F47FFA51B3F4E115522C38AC7212D4DE2C09DE
-02AF5B0ACC5B55C6BB7229E55CA37AF459D13A9A39EA485AB3C3EC584209824A
-26E225F66FCA279117EFCE5FB19A0BBA2142DB5D3D4772D9D0046B29C5F767CA
-97CCEFC10A4B32B623C299FE994BEA5F079DBBFFE892E341AD7431AB9F65C890
-4CF6C21053C0788B5EE7BA3EE5A0D4E4268A6E1F44B697D385580DEF9F30ABAD
-FD6C8F1FE00E9A957000F66922EA9379CDFA2A100F8465167B6FCB40210FBBD8
-909E3783562676CFB96B44689041CF1A8020A61110491EFEAC35D2C500F66C2C
-2F4A2BA4297FE5345AE4A866DECC6B7EC6DC42D342ED564AF4A382C607340160
-1E6611FC45C357FC6078C24719C17742394B4D704338261BD2A15B311360D989
-F6C7B040347A9FAF09404BDC3CF4CE7F32C60D19F8E2198655389680C5FA583F
-EC53EDD3FF641B35C225FEB6B8813C0DA15BDA3666DACA70ADE0DCB6C9B135CB
-03902C948CD610340945E1EFC67FCC828D9F56293D9586FA9932068C2F126192
-6C1A75E7A66DDC1104B9584F3D9C4C72216F0C2147DF8F48E7C4BEC81FAC291A
-DFB4093A86F3C6AC58287D78F2782F57D1415921D2C11F6B9B45A8754ED126C6
-116A5AD4F5E2E693254F749CA5A22E38FCC186C18238F7D1334440193A641360
-281F2C1F715CCADD5D6EF405A17146C825652DAEDA2DEC79F53F4D3B90841BA5
-893A3E1DAC7C027C81FB603CEC6099227F6A15C2607AF3D169D36383499F88E7
-39EF8506CA74101E5A37D5264A6217BF9E518EDF57893310CA57BF111E0A6EDB
-03F62F7292FD83B90785143386FBF4F17A98CEC610B995167BAD9DC2E19484EB
-48DA33DD7542CC5125905D36FA830B8F3657726B15A5ED174830A06EBD5B6CD9
-12F90101
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 112 /p put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA7C97C35EAFA47778CE03E863303582D8A9900EB1B623940B0807358C1A
-ADF30ADE694B653E32E635899367378C770B13D1E9C51E8127E19550ED085F63
-B21E3E3994B6D8509793C094C2B05AB846E5BDAF4FAE7E9DCEAFEC9CE55A447F
-B055846823C1F76126BBCB5F331EEDD026946C1F1EC8FC757DA5E1EEF2728439
-77B75667751A4303C4C9995B51F737E36407D3D9F8B9853CFB6A9E80CCD45E95
-5E2C361F6D78716FDB9B0D958FA699BCF7B5E2BAB95BF9EF6031A408EBB777C5
-DA9541E2A7331451BFD90A849C117A5AB2025FDE44A146F272852C1F5937857F
-F83F72E6B876DF198E00646120F7A7CC2B7534F1C4337915C58FCFE10B392003
-2739CF2CC74D30CE138C566A666FC0CB433ACE2322F486F3A5104985C26BF17C
-AE12796FD9467F84A86816F1D514F4187E823327496D4CD157958E5805E56961
-C5B8C3FAC57E2B870FAC8D1A49722E832BD9C8CFF3C3F3806B8913E5B4C7D5E7
-A64531DDD7334AA5CFBEEDD6BFECE143FFF7F7C23513A09D7725
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX10
-%!PS-AdobeFont-1.1: CMBX10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:06
-% 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 (CMBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX10 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 40 /parenleft put
-dup 41 /parenright put
-dup 46 /period put
-dup 49 /one put
-dup 52 /four put
-dup 53 /five put
-dup 55 /seven put
-dup 56 /eight put
-dup 65 /A put
-dup 75 /K put
-dup 77 /M put
-dup 84 /T put
-dup 86 /V put
-dup 87 /W put
-dup 97 /a put
-dup 99 /c put
-dup 101 /e put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 109 /m put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 122 /z put
-readonly def
-/FontBBox{-301 -250 1164 946}readonly def
-/UniqueID 5000768 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
-FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
-DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
-7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
-9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
-CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
-6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
-E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
-8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
-3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
-EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
-0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
-4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
-1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
-757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
-0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
-6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
-E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636
-6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B
-DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663
-12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C
-46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08
-F6DD0BC6A79A2DB1FF539453CB8AC1F7D705DC0B07E5E48BF1DF1C51EFA748FE
-79FFE0BB0BE8802DB51EC3DF27141481CD0BA51D77C073F18578570B55162182
-1D3982BBB81BD942B41B5B3F6D02F3B33FC770A5491A040D3D7CC97870FD88F3
-D1F83F812FC70D2989F281143AA4BC8822F5ABF7E6A3D7C2B2F72F09073C679D
-C16B25219C7BEB049D7EE1AE6EDA40D9791D4FD8CFD7A5010962CF1989F1179C
-80ED82109EF203E8E6F42E7E40DAF99F15F7C116DB632E372CAA22D747B16088
-579C361AE04D572FB04D48E69939FDF48DF49CBE4C7AC998CBCF84E39CE3B141
-286A5994C60855979B40287A47AC5664BCB5A71663B8B0644BF7E5B57B4024BC
-62777739FC42EE3624CA9754C4B6A8B33BC05A3C74405EC9554403EC55074CF2
-EE1330EBA1372371DE3F678BD7629D652A88F6C78C812A630850019C1CBA38DC
-D94E21069ED4EB4830E5E1BE4EE7195B4650686C1537F69B8C5422B1DC82FF76
-904B24129BDEE930A38C48B4FC5A91FE145FF8C4CA9DAF7F285A012039391C0F
-D9E3062F4EBC4405EA4B88BB5F97F04924E8CFD206DF0F49911A0A5A2997B2CE
-F0E5CE99FB7A4A607F01A6C14EBA0F06E03599F8C5E364170E0D91C3AC57DD8D
-E5C6C63C0ABC3B55D585A07F83EF2B05452520ED37307C7CC93944AB53050CE2
-16C0122EC9AF73CD67F6B33A8D57D28AEA4891E6ADF40B96B2B66958AFC64543
-B9FB6002AD9B691A76A39BF028058610280DFCFE25B380D2DFC3330A48DEB41C
-9E0244FE6AE33A67140AF890E662EFB96CCAAB60C03D7566356B99961D2DFDA9
-B22773F34FFCE8351715605A9EE21CF836572E2BFFDD9A56E20DB6B82794DD9D
-32CF139FDAEBF847CED7829DDF6E787D1D14F0F2278479E7168F2F4E058C0177
-456811B2D43B71D7154E113AC200C2731CC6948948FFB9DBEC26A201066F50B0
-137DA092DF7815ED4F2F318D95C006D4480FF23D9EEB787AC0DE7EA32E608B5A
-2403AA61DA0316487C3CFA6F892AF2B2721AF440E7D8CF16A32DDAC22AD0EEA6
-2C5387D923B065E4EFD7CF43670FC4964E4173A9DF3EEB390A02BA4873F05FDA
-B63FB78C484F52F4121E28FA6E58EF23259D4A201DD56750B1517A02EF822717
-B778B9BD024A1DFE832602DC70820E36C8A3BB65EDDBCF42DAC31973B2A00D50
-4DA02621A38BC077A51A64E664DC72658C7B560F3EA451945BF1ADF2FC99E834
-3B3CC81AA4D14F9E1C8B90A066382AE770AFE3A4C81FE1336051C283A96F1F3F
-427E57BD04E92ACEA8B8E5CACFF75095FDA325C4792593809BDE240A1984D6EA
-DDA7D365AB6CD1FDCB236F59DA1F169D63486CD71596E1FEC1764EE8B863BFAD
-D8651C11661D7E0D9954A49C328F263746D43CD1A5818D143B35F67E0A3EAAF1
-04B0CBB2B83665C6F2DF59597D2C3098DBD3EB96A32B02F21C4BDF854090557A
-092ED1187A091121236D2BC50D34F17FDAD059C4CFB583FF8B6550F6DEE056C8
-1B6B1AED26F61DAD377536DC326CA1D6B83AD46D2D8936A260A347077C70B713
-AB695A232D41CC5F40D95EA445AC0E59EFB295237DE7417EC7F0E3E880B8F005
-38059B831FB1E949637D51EDA3272FF567CE4324DB5074AFAA4752BB903F6D91
-9E44D074E8202E6C23B0C2AC66125C9C4E84C36C154EFF5AA38B8E89418DC4E5
-15FD446EEA5E626EAA9268583E56DA048D6433C961169A7DE13B83E29732373A
-1CCB483F3649D5972C62913CB6EC1B2052A65A4685A5F13BFB467B17243401D6
-DBC1969B03DE4632DE0DCF7A4C781BEB5CBA1C05E9219B49CC14B74B9C4B6390
-7A3947044190643219B8AB00A397DDFBD0D8A90702F677E3063EC4721D411535
-03302230E1AD84C9AD72F3D0F2CA0108FB1F4AE11B27A58F6A5E37B87428EEFB
-0BB76ABBD6D78DC0C9D4231EF012B7DC963D6A7B70D45ABA9855406877A679DA
-83DEDDD06BA7D84B9C0B7C55B0DCBC2299918CD8148C9C451EB64633ADC2DB49
-6A2000A12FF9ADEA9FCD00D66D4061F4ED70B15DA324A73619B48800E47E127A
-60BA55176F175E48907D1F03F9C305B9C7B913FF2CF75D77CE4C2CCDC864BDB1
-36A77636F53B8002276DEF175E210BA36E62AFBEB47FCE372E9DDBF67F7D20E9
-B498C9054C2231DD4542F80BCEDCEDA17553CDC56B5985CB6474C7766082730D
-E004968F668D9FC95D6999CE8FDFD1999E4714F9B27C925664BB630407FAB043
-87B893F42B5C66CDB85D693B68C79280BB22BF769D52F8C59140080B202D00B6
-FDDE1DDEF17B2C9054ECFFC7D5F2C273FC6690F4A6C764921F765FBF71FF8376
-EFEBBE66FD46847590293C8AA9B2C4E476B7922607FCD34E773244A0F4E2663B
-14E09EF51DFA8087C570CFA615DFA21C9C29808CF75CA3083D17453FF800F1E3
-E0270A226319D5E61A5F8DE652E298E4EAEA588305741DE08EC55595B51B3562
-53BA265EA013AA1DA5D547F25F2D8EB247F8102A0091FE0A0B49C9C9F5E8E44D
-EE02835686E52599C5833377445634DCBBD3D416D9111713D4BEE7F9A047F277
-3B1D580E0F7107E2FA3A9B74E99A3A489BC3CADE92D957E7ECF37C5BEFEB2D95
-ACF5EBF354E8DF850AE9DD0B42EA21F6C90D4D5B29A715C8ADC624EABD7771AD
-F9DE9392A2AC511606D3EBBD01409F5812125ED2D13A13BAA39283ACC87A96B1
-EB89C329B5E67C85381760142CCFD208F6EEE9108ABC4E16318B31306A37708B
-AAAB88D4A55AF6A604F771FBA50DBBEF688CF23118F414B00765382665F6C354
-F1A132F0BE5DD9614E8644546D0E488D3E5DD913283C10071BB729F66F650256
-F7BA0FAE1953AF69265CF5E53A76E8807F6046C00D31FDE4460E1BC3A151D363
-AB071B33AA879A7B565BE204F6CBC53156AEB04CA2D349D508B14939CF029327
-EB2003DCDBE202AFD474A9A547E17408CA12B6DEB60E640064888B560A9D8BFC
-2A6DCF2D72336C5B0FA4BB34D3C505F280A72EA9ECB53B186A1EFEB3C529CD92
-7AE1E44DA3C88C95F31CB2061B748F41EB1AA361669629B3318EDB123CF454F5
-5E03BF3B0BA5B74774EA0B64C96871D85C41AB34453B4A3B66D40A4AAF689CCA
-86F7DC6FEA48ED533A8AE71F9AE3BFE8383BC86BCE01FEE39F3324310883A222
-D70BAE1E0DA2CD38CF94543B7CDD7408275AE54229A835EBE9FE8C9E8226170F
-3F9DC2A9E80CD2843B81DFA6B13CD91778FCCA0AA46CF19B7938F90D3560D8B8
-66B31227B4B82303EB9B44886ADE7D474A10BE87D8DB8B2D7568CFB8B10366A1
-6C4E4C4BAF11A3E4B18AD973BA05B2995C35B4E6C6299D49C6FC2ADC4FCAC3E0
-FFEBDD1D4D52056902DAA5ACA3199E4A37201A38576A6AF516D10E7A7054212F
-A8B4B9CAED15C21447825D5E68FA9622F5ECCEB76A9C8EACEE8D967E637DD8F9
-033FAF6B6E237C5A4992F37F431C7E2B4D9E56E3D3A040FB5D24C73F1FD0ADD5
-B52982785C62D5743D0AEC0127A509B885A487B7621E7809DA775E703D52D184
-DB9BBDB91D30454438EBB7794FF7FC604CEA997B55551934096DFE09EB708193
-8441C94FE35FD8762386146F012A8C57A772F83A9A81579CF0B4BDA1066C7866
-9C38C2A8FE562DAC7B7DAE3C813DC2A86AC804AF74798DA9E0EF5C20AFDD13C7
-A68DA960D30F92D2A9FA3DC22E821C6D22C0638174DDBC3F972A2D94A9168119
-57F5EEA5E3789CA3043BD9401C3CFC88189724894148E3B3AD9EF4F9D5B90C33
-0843B328280FF8505CCEACB475957F28D6367ED16C67B9AAF8A722D921003B85
-A0A428F323D781F71BE5873171D00EC386D7C8276614ED813BC14A63357E8A09
-C2B9989C8C177628E061CF35546FC02012E3B6F7FC5056B56D10C325814AE2AF
-BA7DDF8A722E8B84993E6399053D3EBBACD4EB5D3EB655F1BFF0F414EDCE6C7E
-1E5C18EDC80F693FF53CADC585287B26F0F635B2F153BCBDB36DB6EFDFB05636
-31DB3265B9154F83B19596BC4F2807A3B024F2CB3C8A504D7264BBFE38CFFB16
-E8A29D6A09F1594D641191E0CB6F43E6F342F2EEF8A04A322FD1D48ECF0513EB
-A0A7CE74985912AFCFD42C2EB3A10CD6CB024B46CD5E92EA556F4B820D8FFD89
-6C6BFACF1430713BB8EB91D4965FACAD1724E59C17AF10F516F10C13332136D6
-3F019006A4F066E5A3F72C35F824041C18DBF2E7A95A4575CF8E0BF4F60A8003
-96E79B8A4AB508BCB06DEC58EA0A474468E851F32E69B826F8F3F576EADF3CBD
-6A0A61871997B090CE011A964D0DF16552B5B0D3F23D97FB52034F484129EB61
-CA0927AE4EE05DFA3B5016A1007DD3B8C2D952B538989F8D5F0E1420E2D57DB1
-1B9C85A40959D140043DE2614ECE60FA6AFC07021831DDCFCBF4524C0238F284
-5019A3180AC1CCC153B33DB655D7B4B21F2B64CB2A7A9B2E3A20DF36E1CE51C5
-E9A94CC834C6A713732058A522AB93F5EAC1832F1B9B1A73E98967BC4CBD5EC2
-2986CF0C3E2875DAD479E4DF43B0D4D0DAF23F2047DA7A5550CAF9080F15757A
-E1CFF64F30C9569B0FC5F03EB1BB98A94C0CAFB8138EE46FEDA16A94E0C35862
-F87D35EE09B7705EA9887C37BC793857A78F4D75578888B374F6103A90045BA9
-1B262A070E022ED70CF8AF0FCDBBDCE64EF4EF8F9DB1523C48C58AAE00AD6E53
-78C7621A4635CDC989243E01789EAD94AEF2A179E3C650D767BD8D1B62D97E51
-020640EF4123638DA52D0077F3EC11C58477E2022B6C0FD315731C2A51EC8617
-B296ADFD96E7C73A059300F8C4FF8CAF558B3928A5C7D42FC9971C63D3F0E1AE
-BE787024CD787033D2266C6F56932C0F9AD90C44D0180D2FE603DA3229882EE0
-E211182E87153653DB28E918C8F1865A2CC732B50C1459C695536B77E863B1B3
-B808493B17DC9CD5B429D45774C9B1644567FA38FA334535DE16A4E57B7B3D24
-485ADD89D4AEE7B8D25056E1AC0332ADC60D166E2B14AB48F330EEE640F3D09B
-039833A526CA38E999EAE96A2CFB9B57611DF356E3D263C68B8CEEFAABE88A7A
-A47C110DD74A38FA2DB462E4983B2A540E14343413A1AFC38951C246856A97B8
-6A69C04B8960AF6EA38D5468B9ED408C247B34764FD01CBABC090087334C13E5
-CC95CE85EF3F959209752AA3684C7A34A65F8F18AC94E97C503360F9FDF6D09B
-A4A6AC7914547A336762151B009A0ECA5408CEEB65C577B42BE8FB0DDBB20180
-B3D4AC3408F53E64BC61C15F235726E367AFCC9CCD8C9DEEA111839575E21FBF
-BE4350018E4A904BA8174404862FE3F0805215089ED2EBE1F7425F752200EA70
-C20A993468E9E01EC8DC3F6AA159EA6DE833BA19FF39D5F68840F95EF862C9F5
-82E8E7C8EA11CBAE793B508D1554248AF52A93E6BBB6EC93FC682E1F9E66ACC6
-4B881B06F97AE0562404D348DAFA447E12B8EE97E27425D2AE4029FAF1F9181A
-877DADE36522A2397CDD7D91213E0E83E5A43BC3A1DAE79C1A18133CE11550F3
-6CFA235B9E51D3C45AE77F0301B84DA272E9BA32636E146FECE160E49D9F5D3E
-681269E0FD24252B6A74738F3C4E3AEC976C9AD672FC18A23AB7C05B04F82B3E
-F34C3FEFDCAA1B98AF7D6F036473AA7C859A843CC046CB358AA372F15CAEA7DD
-90B06D8C712069FF03C3267D812ED88EFA72381CD7E444EFBAA260C73AF7196D
-26B719C9499DCD52EB6A8378101C3CB3EB6AC715E519C7D81F6E6D9CA69FBB40
-0CB9ACCD90BC16EB56588BA249BE57E6F7B4FE5D617513C85F8905168450C9E5
-F0F2B914563158300657734B866C2A4A05978AAEB0F3AC612F596A00785FBF14
-0304CB11EBACDF1A45666A848A7AB371B3FC25C463123BBC38EE992834915F72
-433C8BB13562EAACB2B917E0708689A3159421B199700512C5A78BD3CBD7C45A
-8E8685E120C0C87AFB6DB0E6517C4E78D3F576578C0399B5950DB1463FA84E56
-D4852E2DBA1CD200037B0BF6C07737C7D5BA78F15EE7FCF1FB236DE745A7EA90
-02B41CDA6329666C98D95BFA4D8B18B715E146C353C615BAB248A1978E4055C1
-C3860F65FA057F27102D546632433B52B89AEA1D12121A34821006C2A2C92D9C
-B8D01304806EE8433C5748803FF06D2E2D0AC6F984E1EE79F60347613ED6F560
-DE221AE60E0452D9A5105B0525F17EFB3A89A1CAC51B6B40DF1C26CB6A0835FD
-8DDF6C9DF88164094A4E54372F344411824191734F31EF698A0C97FB2088E6ED
-8B886ACFB5785D69851B470ED4CB593C3D72A1AC4152BFE6B2C533BA2DF86820
-EA9B429D84D21A8FFFF2F0379D724A15AC44D9B8155C620AAA0CDA1B2ECCC35B
-A3408A8AAA28BF5D8714B7BFFE4795A91402C45F953B6971EE762F3D267344E6
-8AB3DBA667EF4F55F79675F8C5CCE10990B47F2A37FC6477A630A9CFF02DB041
-28246693483E0BC685E16655BC3924CF66C13EFF9647E26678BC729FD5CD3468
-98DA10C6EBA01A227B5A9B0E38BD9EABE5DFC67C68CFBDC44F9A1E562BF11A06
-EDCE8F928562DA1C92F9499FF4A0D11DB94102941BC07A81711199288B36F2A7
-D5502B97E838B8DDAAD5C667E94B2CFBF20FC865D2B8B29CFE3982056DD02485
-46B0CF7BF961FC0BAE58A811F8FB615919B6EF9788364D72DAC7EC17B51CC5A4
-8A47554999159FA05516EBA16FE3FF14376E6E673353325A8029E48BBF3CBEA4
-5CAD512E630035D5027DB68778EEBEF6EC3C5BCB6F1E1BB98772440E4A34216C
-BB200814CC629377F36C48785873D5F684EC99F20258654DD5D8E81C2A34311D
-4462D9D6A263A4D9C9F47518DF26586E50256D9DF6A3766A6971ECCE20A085CA
-69FF98A0412AAADCEB077113B1DAD714A5F44DA7D8EEC356FD0D4DA1C02E9F97
-303B31A180AB82DA41C68CEAE82CE84997CFFC7FCA4601D3D86E5F98F8D74EE9
-0ECA5D9A843AC2D074A72C08647E7224E47B691E88E0DA3110F402EF0199AC11
-E275A8161538D339D97BD522BF730BFA80DF1DAB92C813AB3B4131E19F6102F1
-8B9F8E9A003E9A20CDF9A30A978C06888954631B0B09
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 56 /eight put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4803AA3E45F388F65179AA988898B7B7A8252625EA5D7BBE65642F35DE
-6926648975C26BB71EC4AAA2C6B061F34705BB1D6366B0410E461F4A4573E422
-A6DBBED212134EA12D0A744EFD8B5A8043C4C98E70FB61AB44AD65396F903CE6
-C75567EA638DCB1AE5C7FDC2535439C4A948A94DC17DB26CAF391EE972891DA5
-AFBEEF4A5893EABB4976611AE3579228B0B980F3A9608C8B9912B166886EF6A9
-467B1DB9349470B8C001FE43AC234638ABA572238D147B23955C053CBFDEA682
-3C8492AC68F7DA2A03201B749878C0A4F08C1CF33E27EDB13F1145CCE6406642
-E72E7D84E0E5BBC7CC381FC635621540FA735619E502DFEC0146AD485114AB3F
-40944FEFE1562249944C410AC526A17ACB00319ECC675E6570FEEEC37CE863DE
-DDB1280C7A23A512C6D12294203C728393E6DBEB55B976C3D5E1B9AFDF240658
-9F3F6B1DF2301CD5975A054A844C0F9A0672B0ED
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 9 /macron put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 60 /less put
-dup 61 /equal put
-dup 62 /greater put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 75 /K put
-dup 82 /R put
-dup 137 /Lcaron put
-dup 143 /Racute put
-dup 201 /Eacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8644A236A5A4721E6864E6AF374839907799DED840F1E36C55DE79F4
-D0CFB5F9C44E2CDED27E603CC36D1B1D0A4F732BB3D6E91C91571202DA6B7F7F
-1B5B8015DEC1102F651D488BA107BB674A8847A135FF82080C41D82E23492AD0
-AB800B022A9B592CC775996A968FBBB04CC7B8ED6DC10655E6CFD643DA80D068
-110852F4D961126EF23D5BC3DD95A702FC3DBD17A402D4D23C5590C9A01735B5
-8C9FEA9288AA556DE2124353DA1F310C732D54A70D41672C8E159B7C8A5B5FA4
-78B909E88C17138E9B692ADAF3E16E044AB9EA1278E210D30567B07105A3EB29
-7E507FE544F582450525A4D7E4E6CB82AB60E8DCB6EBCE38D8A42F76F1BA6C92
-0A19BD1464043D8CE3945496FDA6C769398371FD8908C50D59A02E41E88FDE74
-0DF7CBB665B2832184204DD00953B14EC647AD62BD056C1394F3C05D2ADB50B7
-F074B076283E3640ABE626665E7F51FB2ACB78C3B4B34A90ADB21BB2B8F0BFFB
-C0857417F1D336580C856E40E39B1F929F73DA5A26461913EBC480D58E4F87D1
-DDA6A658C3535EB6C54FD5EF5CBCC1E21077B5848CCA4E6EDD5050C816C91A85
-A9627973D790BF10A387E75F4BE8B92F64595EF16235A0F732DB549374B80C16
-D8ED87820A54EC647AC4D835F73E3FBAE0B95FD50978D462AE1EFCEE70F21704
-6D41294D272F95F78E1DCAA8B7EB91979B8F7C7331448C2EC2F01E9F1D101583
-50A09456255581837A138316FA69F604AB2FAD9AA915CE03F6B4CA4588D543B4
-6F95C0ACDA7840F65E27784A8DC4F23DFE5CF2892C132520BF7A0A8CCC4A6BA6
-1B52F37888CED9BAC5456F79B3D9FAE4D8B1097F1C81D7A16243C47D1C1EB3C0
-3C3E7AD2EF9449AE4F8339C6AACECED9E4F7C5292FBF87911EE2CAB503DE209E
-8103B575B37DD1D9B0D4D332C878425A9B8B282314DF2A3997BEDA6A49121908
-B2682609A7DEA7249FABFB9080572857A1A2DF3BAFC67134F6C0C205F028DBE4
-FEBFDD5DCB58DD6DC817115F53BD723FFB14DDF4D9BFEECC4073901FF09A0E42
-3765C2FF3AE2005FA8871C15D50317AED8BE81F18E0A9DE39E0E8F097B9F3315
-CAA7A6F3011E56B300F073D6AE44D97EB1A540837222856B0D97B983D39B4C74
-5DCA02A3B96AA6BEFEA1C88CCF62EF6FC868053B6EDDE12EE3E7A297EBD8098A
-6EE1A25DBF13720031E14278F3043F17F396D0728B4A40B02629D530C025BE85
-8A40BFCAA07F25580BF56F31BD9B7DD754B2EEC0C669767C7155A3BCB9F192EF
-08972754E1D090E33B65BF4B4A3AC65BE3DB121BFEA68F8D0C14125A52256BD8
-F2C36994ED817636CD6E7E8CE9F33CBE901B99FFDFA9F5BB69A6FAE2701EA52F
-A2CBD0010ABB80BAEBCADA7D34BCC106AD273A2DE8CE79F2909FEB1508536828
-3057695F74B70DDC6B1F9ADCB9F5F81607D159B1CF7BBCE7F473E3335FC549F4
-D79F4BDEAF307EF6649F554849471A6DE846B96CE53B47531A036D3009D65641
-BE437C600378B2B1E68BE5BFA766E9DB2515FCD38ABAC3E0B6BF592C6EB30095
-CAA581BA736909E72525F6F77BB437FF13EA6ADCDD57F02A0445D73B44AFD0F4
-68A759868AC0EBDF3BEAC6A50F86A07EDABC6E62E508F0D798D7DEFE5F8A47E1
-02D2A3276F699FDF6C5EC03F799FFE9D977CA93BCDB07E088CC19E6F4D253643
-00612C2A8D2163317C77FAE506C185251EDFCA0589FBFA2E404280B2E170E737
-E50A841F1D556AFC03863A787D1625E44DE38C805878605ACD54CB3A2A8465B9
-1141CCF4DC6480C6B47380A4F5FAACCC35E84EF2FA073EFB41C2764040AFE949
-B098354012BF3DFD5ADA4B9648AC1BBBD1EC2F8203A7DF97F325EE0DA98B9C3E
-99A003FBA58880971A9E6F6E6102A880FF60ECD596240653426FE45BF0B85F8B
-5BEF8920C7044635284A056BDA85D0F2D3AC535DB737EA9D05FC11983333BAC7
-C841FAF39E89635A04A60D923F8259130E9EF23C9F9D78B0676B39D59CA85F94
-9A78548C3B8A4C2FE7D9B5B3847BF6784C2B9C7191BD1A42B2D5230F12F41323
-6A7D8241FA991B870E3470A8045658C31C19B3788FD0C6688C934E0624E40AF2
-608F30BDF8F9B04F80EFC41B863696FE07ED7F3D960BEB85B3719AC13E0E88AB
-0B9BFDCEFB26C421E23D8140D54169AAD6BB5AD81B00F44CF34D1436ECBC2099
-65CF67F2E30C14ED5AABF6797533BA17476B7AA978C194EDEB20469FFCF82425
-A9A2527E333129780055D87E52F7FC1CCC8A9C0766BC4B9B59EDC889EDEBAF9F
-CCBCED687E8F59EEA6FF46FA5CF168671C6E6EC807D253C2BAAD32FEA674CE99
-3AFC1AAA830E14DF9BF9EE2232A445A950A48E261341A6DA28E253359CAA96C1
-7D6BB26EB45635BF587A1433502BAE2FD82785988DFE45711E605B6B46E09A20
-2750E24EC995440A28A6106930FFFA26AA882A7A262FB1F21C312DF111B5F3C9
-F1DCEC2876A507F34AB7A4BB97096DFDFFF3A3B6DA8248B49055DDC587A04C44
-7129F7266308015CBF33FEBE83695AF5CF14CE95635DC4D5085A69339BD5DEF6
-9F5AF875621B8211844F735587F6799A3A79BAC006ED961E6F299BC9987B34D9
-5BAD9B9A5E0FEFB42CA2DE3D796E5F13703F9AC32F8C0B34A971223C1920C335
-8D2DA05149D2F10432F44354C8B70736D59E5A4317F9E27D64781F8F8C527CA2
-291DD2F1ABD10BFCA2F44AD920FF16945D51FA749738EEFE990FD969B2F52E57
-E38325DABE121F8EE208519042BD5A14B2A594798A2283B034006A67B0D007E6
-4218BC71019161CA3F3A8785871580005CD04C212D3DDD26D3BA250A31CA87E8
-4CF496F3D79E2BA3D0172A87A15D37A5CB00049F7B93C11BE0526F6AA8F6103D
-5205D102989482D0EFE5C156C20EE35A89B56CA716AD1F3855FAE7783D3F01E9
-D8A046148EDBFAD76F5CD2039210F9919B011E150E5FC1620187C3EFF31F92AA
-3E367D3844C913264E1D65E93969CEDBB779BCB1F765D511F9184CF7651326E2
-E5FCE493F68A5CFDDDEFA7F5D931F00AB9B20D49E6EF92A143C3E1B568C61EAC
-EA46F62D5F9A79C80FB48A99C028D22D53A92D62F8F37BBE1B90A49FB968CBC0
-95A6B16D14AEDA12A4E6C95622562C69BF6580C629A7592A1049444BF64AAC86
-18540E7D9F3434E986199DF6E67CAF153D1CFB9C0311F9B2DF95C3D15F2B3A9B
-2A19920A36C93CB63E55734B673ED3FCAFB952C25FC77722AD9E6FB660FAD58D
-C137044B2FFD4350524178ADD2B023B5B50CC2D59D77CAEEC0FC2F464F66CBFB
-46E98286E82B8F94D8FA0A39F6FFFAE0206A5F71A34F5AD59F31E3AD735D4DAB
-1DE44C875FC87BEA79E8193E5C672D2948177B3196BAA2576D01E6D40E09698D
-DF6C96BAB6AEB6BB431A899E66740176F596899CEA3C04211D095E006F49CEE3
-DC9D1F70C039A58F3C0DF4F337DDB83B0D3B358CC70EF07C30C4B61BD6640F5E
-DD5D6F766C4E4B359C0111BDF29296422F38FE44AED247212CA0
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 91 /flat put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-/UniqueID 5087385 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
-9560176676ABB71BBD0EE56B4CC492C0652750227CEC7A49D7E6B962DA9F5459
-28DDBD921441A2E2A8A03D9B66A60AB7F3B21F3EE15FEB15C456465AC8CD737E
-F8620F968A81AF059E1C6AB8958CF6E3ECFAF18771B1B9E4F15668F6DA7F012A
-6A433F350D43710982B1743103504319B21FD8A531F3F0F0F6A767F4B079C562
-F1B48913CE6C4BA87A48D3C1921E0AFAC9B11232226B880E9FB700B67CF4A755
-E2653431285EB0E006D7A913ECE69FE9CE8527C15341381BE658046FD36DB42A
-9D2A54FCA18C7AF294DC2F208D1506217F302A06DA6BF596EF64FAEFD2B4964F
-2245F57C1207EB6698D875DEB4F8CB2ADF8DDBE223C600BA06CF7562B9422E4C
-F8F829E4FFDE1943983F46E7D9D764411E7D5F544F73D40670
-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 40 /parenleft put
-dup 41 /parenright put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 70 /F put
-dup 73 /I put
-dup 77 /M put
-dup 79 /O put
-dup 83 /S put
-dup 86 /V put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
-71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
-F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
-81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
-8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
-4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
-9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
-B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
-4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
-828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
-E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
-C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
-C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
-3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
-CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
-78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
-31E8F6E32F83DE748E345F81D3BFD57E78461379ACDEB99CDE6205C96BFD3DFE
-3B966D19B25596A888D7530D42F284E22E30D2B418CAE285AA38F9FB436D3937
-147E92E69D23E9FD278CD5F26788A7E5D8476DE8E214B027C2044F358E7E039A
-AED19D06B2BE80C3AE9F91D3FA70013517034EDDA896D6075C4699D34F5F9B4B
-EE1AC79D2701041C4D4A34A61CE8CD2D0600B5522CA3E348788ED962C12A1670
-BFC1771EDDB9B003555AAC7D7F474BEAAC5E03166CF952715959885FE167C934
-B4BD46A3B52C7FB49F22376C8C335B8BBA0DEEC900AEA7DEEE968024D2F74E71
-119C673D1DA43BF1E7945E388EC4D643AC1C17387237FC958B9713A128C91C36
-EEE43CB41592BD13837B9EC9735996A9588BAB96A43EA23021F4E8FA1AC648F2
-79B587634753132DC394E6F658D88D55F4B2A80912DCD840C0DB82DFEA436DEB
-4794ACD823CA8A15AA00D3070A0CCE970653875954E3E747A5E47E0FD55E4E9B
-FD0DC49A870A8708D87966BA66499A03D41A0DB672A1054981DA2CCE50261937
-EF449394178F13030AE0D5E7B3CB7D36842E751568F4CB6A19EB6A3E1BF76F90
-C6FFC27B544A46BFB426765D0AB00C411D4359C1F3BC9E1039E23AAD84D84C75
-E5B51D444A212A56555CAE6BD34D7CC8940E9556DDF207881B5732237828141B
-878D2ECD235FF2A8497999889CB9F6EB2456E5DE0F472B30B6B527C46EEE73EA
-5B2F14DD101D24E8EB1498F651753881436FA4F51472F0080255DF788C7CE588
-52727951ADF92052561C02E4E0F07E885BD85D8C55CE7610AADFA0BFFE83DC0F
-7CD48EC2BBA27E23808D244DA001421D7D16201C9E2AB85E981D7082841D0AE0
-35E4A51A1DF3E77ED53828DC7F801064EED128373B3423E822F7D667606B81CE
-C74B2D56BFC827AF0BDD3EC7B61DD26439BE58F47597ABC19806B2E1FDFBAD28
-8DAC8A5E423FAD6B160D4529BAAA80881D56A89D73A503E40780F000A924D8FF
-98A3ECB3689605AE62D005E916F742840D9CFB6791A4B60B935708DEA17A2D42
-61B4F690251989EEC5AAA8350E00C369371C2F7E52B66ADA716AB0336E703058
-9221C11DDD97C7F03AD4AE69B24F75392CC4D8B7054CDFE3EFF2FA852B77F278
-79469A7B8A7C48697BE9045CB3825B51FFC5972A473635DF75C702B1CCD98E53
-2ED6476AE97691E2A612947A2C515A47CA9CBDD654870BBFC4095E601E7274A1
-9748EDC4F48F6A3E3E2B825D491F7BDBFBA05E42C745E6853B7704877FDBCBDD
-03FE1969E06032A754B84534FBDD0AA8FCB9B94667072B6E77F1224F3F378EC7
-F862B3AB0D68F77558AD9F3A97D267106678F4D0122B45322912F0F6277C1D66
-712B6FA23DFEF8824E5FD45C46D705B4EA0F90C94253BB40AA115A610441B81F
-7CF6E2B73746C5ED1B081436F596DDDFC02DC7D1BF01E7906DEDA2A9F60376E0
-032C4E67A20C649840F2D18BB31457D112163C2F41AFB04F6FF749155C0E6DCF
-476E4A2AD5D1515AF4EF16864966E92491E826E45B8ED6C07E403FE43642F5A3
-EC69281CAA0B832D5209684C89E645180443B92DCAD58D77E7DE4AF80087E0C5
-B73FD1E5805EDF9488C855934E5F7AE13745B79ADF17470DD5AAD98067851A7D
-98B1FA28718638B2E21DA164CE1F0342C6A7A2CD5BBDF7A863D8AC3831846322
-97B9A356E31E2035E45EDDA03D854702A87B35148400F01145920570CC1B7CED
-B72B950FA36A96D087821176933FBBC50D0C976A75DA30EB2B719A99E4C2C63B
-6F083E4EA01E852AEB84FC84CD9766FCA90BE68B1EFDF0E6BF9F61C3F5E28854
-509E2F12CCE937F0A588651BCF70B67AFDC2134F088922616CB8153E9F6B3983
-EB6140E995D3066F300AD1B4C59CB34C8083E84D55425D72AB3BD5B2414A4880
-43086E2EDDD276A7F762706C03AEC749ADFA86B7A2D47B3BBCD07AFD87B4E778
-7AB0A97DF20029C2236793BA64185E0107D8694F217E30A9C442F0A7633AAB01
-AE71FC6563B09ACDB687408F6985ABD0F13388EE1E83884C57119DEC1A11250E
-1C9A7B0C1EEA101FCC479E2AF9E35F750E87A417BB770F611B26C07C37D8FD52
-268E6464096C8653CD557236F7F6E651980A00FB0C8C0B0B112E4C059AB9ECA3
-223CFC7DC171933045B2D76756FE0FBF876E9F25D46507DEAA67EC7EF8DDE9A9
-EAB502C3DCEC3D4FF72DA03A073F16DB3894F1F7ACADCF501F70E39A06D80AEE
-B40B2396D1781EC4B132D7E43D6AC41318EEAA9DC8E641B844E3BDB8401258B7
-9A02E07924DDE0AD5193DD91A5558089CEEFAF4D12223461476CDBE256B236AA
-092D43C986BEFDB709C018CD7AF4C000C405C0D5828A2A1268C75DACFC80FE9D
-0A9E86FAD8C036704BB64F961A3D7F8C4B6FF6C08DC72569240D9BDA6B4ADAF4
-ECF8F752840F8C621C3238C328877160536DF81F2E6E8CD644DA4F97050350C8
-C9E8FE3FE48F3B71C8F82DC1E46A76604C300B5EF94C17D882E34462A10E7833
-247C37DB46A79A54973BFC20A2EE94CDD612449599387E2CB5E87037A2361E93
-CED8B1DD5FC6BE1582F3E2E5C735ADDA82ACD81629780AA5DF16A8FE8699FB24
-558C96E3EFEFB02DCD505AE605F071FC618EDF8BC38C4745429B8F11E8981BB0
-4A119CAD18D0E555DACB42CFC2F65F1FE3EE08C269A1BB1A21E2E6C89E0F5167
-9070BBD72BF11265673DC0BFC8B41C3C3EA196731CDB58968B021DD17DB7F275
-CA4B1906300CB962709005690C829EC0BC2A08E54C70DB788EDEBD64DF9F7B32
-855A9D10233082A9F0266EA5BAE334CA0545AFC80BDB63B1C561F56DE0CE037F
-C9C91E1732DBC50E8FC061992319C26E71F8D0CAACCE390E2CB204AAFF413F96
-5740A387E0EC536EB4F226351687ED8D87B25182997D146CE02C555C590588A6
-B0098F3C37986809E4661D37158FA80F068A877C3816F7CCB7D8538DC99736D4
-C0E9EAF01ABC2EC856606973A1A4987EB12DDCA75781821CE775F55AB9A2F497
-601A62D4C2DB89C1195E100DD0EAE6CBC800B8DD690F9E24FD414117ACF050E4
-2A2B7E3D2F7B861F04CA52C54E0F675F71881DAE3BB63EA814A5A6717D52661B
-7BB1D0343FE1BFA34756BE9BC09ADD1E70FFAD669CD6F5C436861969DE8CEF42
-166C1B112C38073CA93006AD1F51A83D6911F8115D1C75C7ACBF4AE6CA77B1AF
-63B0A929E022C55FF4ED5223DC6CA729520E7D183CA62D31D8C48B1A9CF3930A
-AA4D3A8606005E4B832ACE419786368F549C432AE5B025A590D51DD0FB0F1978
-DD174C334BA623A7D9BCBDF595F15929031420FF58232D02D17AE86AB5854C11
-86856A0A455DDE556B565CCFFB578D00E0D387FE39CA3117CE5511998CF863C7
-CA9DE7F9198F696297D4EE8DECEB708BDF342DCB33354C172EC5C761D74606B0
-80FA000301C4CE68E28A2BED979506328CB2F2E329C8740A079AAA62F304862F
-C6B82958CFFD38F0FC5923422B7103367FA990852486FCD30C2BAF577F2791D8
-74CD837433FD1D02243CB99B3D7B00A2B49AC90626B771127404F56128374723
-513F262009AAC2E07A148141F44D9EE9D82B5EC1DC0FFA65C026187F5B64E620
-98482B3A9273342B2A4EDB986DA5877F14119069035FB1748491EF5F091E93DF
-1A8CED51BAF061FA6995584BB7991FE6D273188AE577051D3EF292B4ADF91E02
-9B7F04B2050AD82CD1B22EBA3BA2F42EB45654395CDEB7EF344DFFBE8D28FAB8
-16C64D438C294C5CE0421DB9B2FBA0CADE0A20806E946E96BB45970BA5E93780
-CDFBC180D2475579551C071BAACB169DB2F72EAE150690E9DA92914777840B6D
-D4397BA600D3B6C3A216C44F1EF1733FF892AB12E1AF770AB1011BDFCDF266B0
-471C23B3DB93548E988569293C563B2FA762CAC43CD65FC6A5C6C56499883BCC
-4168E70C70F6ED4CE55CEC04F63582265626A41FB2ECA3FD1AE68DFF72EB9241
-228C218D0A79FD7C468E1FB590D9C4E77F006E2E6DDA26B13F3C40203BDF9C22
-F55E710B1B8CE81E98BAE79AB794FD47362040CB37007C56926D90C390AC51B0
-B140EB716195168AABEB3123146F57AD01D66ABB13F9FF94CFFEA68D5483749F
-E2BEB40B790B4BDED81AA8697004389EBECCC943F9F704DB4A9F0BDDC9604D6F
-B8E48EA961C1F155A2E3CFF332166468D6E5FB4ADA32BE23B3FF6457D2C0C437
-927D67062C34D6918BD7B6F223598D9057906238AB05300C65EF8864073E8AC3
-56813C54717194F78C9CB7C24A719A8D851D2946AB316250FC220D1FE115462F
-424A6178A25062B840F1174BB263A1D1F400A71CD7D642D5A7C90903CF38C8AA
-61C5418C19D7DB393822DC598CAB3A8DE627C8308C40C327CAA53FBCC5D94E8E
-2A21A6197FD9D1B9137CB254B827D3D7330FBF555D83C79EE61A06597566F720
-D652D0198BD94C4A46EB53A8F7607A123E75100B1402D2791981D28AC24865A4
-83AA73063CBC2ACA71D92BB76B8FB5EDA146E7EA7C39FF4648967BC5AE516E3D
-7386CEB0313CF1D60FCC1D033351C5D7BDBE60878E009C4C535600684A9C3A97
-D396771AA958F05F8C6F39D475A05E0677488433BD8711A786493B92BF446B37
-1F84B5D146D44E06A4C5A140FD34275F6665712AE8A56697B371EB9A068D24E9
-D51D6A4D961609BB12FD8B634ABE1FBC87E64E6DA030F7CE8A65B22D128FB30C
-B308ECC1905682DFE2070CA642F847E37F4BC8F1DD2CDC245296C22F4DF5C964
-17A5E5FB248682C8187D932F272B5DF7879987C0EB3FA708B974FFCA3086E98B
-453BC4D86CD194F364342D0F51BB4492602AD6D1D0D14230204012CCB86597EB
-1501508FE32DBEEECB66EC116CC74DD0BD6AA871CBBA8FCB5E17B80C67C64D87
-8E2C03EA187D13429C63B773A2D9BBE7AC2BFD5AF8ECCDF2EA08EAABDCC1F1BA
-110303333F76043B5AE4253E378393511720A3908DA3910AB0B26E14C1A1B09C
-477B0794069EEA16A5BD191A3CFB8337F54A697702BDA7D26BFA885CBC82394E
-9368B059FB476383F297C98C8DA244BEFA398502FB5E17CAB2D40364964D6464
-F3BBDA16DC4D441F90E976BC17DC3D1F70D9702D8DC2EB04C867E27368C96E3A
-0D821A04EAB756929459A288D36604276471288A1EB3C65492A6D80F17703F50
-1A5BFC1D21E2087AF286C49F380F4A495BB059286CD86E76E49AB835C0908468
-CEB585B0F0E0C6C8E69EB20DA93921C9CCAF37CACEFFAFC197D03BAF63F8CDB7
-A66ACA97D193B8177D9967D609D39F241BBA3F7764539A0F3E097D4FA8C125A4
-C2F57C37A54FA03F25CA78F228AC6780F73751F7CF6BDA98EEE814E48225C706
-4C81098C7D065A620B5B206FCF252167BC3CA5C54398D5B17B9693D20BD3029D
-C7088DB7FF526A29AE5AB086179F9FDB9044C162620A505ED77C980AA383FD1F
-3BAFA73BA28381E9BA0E873C9061BD17112FE9221EB91D1ABE58A7F15B8A0A3E
-B63AA1BEF0B7D2C70BC1FA13FCF0239314CECC01EED8BABE4D032B43DB94E2B1
-E0AD2E0879C5F5DDF48B102ADA392B605992D7F2D6FBFC323105EFB17E312194
-63E2F0C5482C3388EB87C2F7D6C237A1D4B28CCCAA5A581E6015C3C5D70CC5B9
-CC033B35C3C4EB81B43A0C40B7DD97720F7A799209F884AAA53D38D98E3B50C0
-282450AB2DD6DAD5D08BC4A7194B62F4D37C563FA454C07311296D9F5F4F53DA
-8D1108E24239BEFF6BFA84FCDD17253BFA14681E623C8A67F5981D4D108831A4
-68188F527A545E270EDE0045C5EFF7725063CBFC5EFD5549063F609A5BB46982
-C33C7AE7188DE3175A3BCF2E3490C825F5948074891FA2BCEE77F2B10B10D54B
-18048B9181D6048C4B62AA46
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX20-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 35768
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 14 /guilsinglleft put
-dup 15 /guilsinglright put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB97A2075592DB74A1A04E90939C9E9C4A8F438BEFC93D5AC7CB71AF1026
-AF32540C0FC74F3E14C9239E2F222D5A9C4E8F92C7B91830080EAE6FC0A9450D
-8EBC5FA8F7416B2E490B12C00F9C9EC927282D9F0729E4CD3D8880E3E04E1FAE
-3B9227357235D96D627E3ACA3446F802571351CC6B1E21E2AC3DBD4F5A7BDBDA
-C371E05E4AE97BBAE69A4A1CBF84790B20E882C3A13092D14B1AFD217F6C6714
-C9F383DCC8BBF7224653928010D9C297C61993388CE6F247F438F597F62178D8
-7854EC9FA698B4855DCBF3BDE7660099E5411F1C45DC780E1147750E6811B0B8
-94A902F1E0E35278812A5D58EED4242B54BCF63A8347443849FFF1388EEADAA3
-07232C6978897511DE1DABC18874AD2E075004B780CCC943753D16BA91A8403C
-09059249DAC2F51AAA8B7234C8
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 87 /W put
-dup 119 /w put
-dup 159 /section put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C19EEEF4452FFA3114E28A4B2E249BFC6ADFE8650334EF5FE0868AD
-5FEDAB9AAA1E535201E5FED871E9FF3EBBCE92D4C88514205A4A5355B94829CB
-8BC2C0DA8965855459EA5C3195D64343A85230E9D7CFCA89EF8F3F25A72867ED
-9EB848236A72EDCAD8F8860AD99CEAC01859104B9C79221081AC986FCBF59A34
-9348BBF639D549C0EA00989DE95E8876A5AFF31EB303F58007C92C6D6AB10E92
-5CF0B6045201B0B1BF2C0F014FFA685378713E2F795330A3F95EB8A3894A9DF1
-546AB3C776A9B70C3EDC0606391F67042DF663991C3F637F19FFB7511DE2A03E
-1271F16C9DEF7050A00C7132AF4B2F37B9C95AE33A938481E35A1CFAC35F6A92
-8CC70B7C527D80623C9ED4EE739B65CAD8F90AC6A3DFB90D0E5305468CDA2D27
-ED28CBF993232BB5F84CDD8364627777DC2ED5810B230BC60E59AE3C964291E3
-5DA6B4DCADA04350611C90AA29DCBD4161D973A4F1D410106E7477A72FD4CEE1
-667D58CEAC5D1311524CD26584BFC75F13769BBAFFDEE650F6E888565FBBA4EE
-2FCC346FFE64F6742774D64ACA848CE7B29D2C1D9723BCA3DDFA0ADC22730D5D
-28728C6DEAE6787BCE9A6650B821FF771F8AD47495F557BCB1E8D5579B8A14A7
-D198CB5BCF59D592FF356509185EA4027D98DB5F558BFDDE65778D7AA7332784
-DA3B3D6C76C98640CFD5CCD2C09404DD7F06B3237C1D048506751B33CB419856
-F4C58C867A067B96FE067261BFC6C4B8500D6D99A035C364E6184DACF555D44F
-2BFB7D37BCCB729FCD32A5ACCB782F2077874EF671D05EED81D01D9F36C57FCC
-8FA780B572AE548DDE1977E168EE81BB349CAFB67BB4253791D503075E87282A
-52B920859FEEA05076F55ED380B69B4522009EE8BA8844EFF8C057C22C16F58B
-8554679E050F3ABCB8622C13F0B61E06E75BEF3F6A051122862C1C4783FBBA21
-ABACBE32CADAE1B08D2F6ED4C9CABD7A87D4BB26832FB9F1226A17A5F9A3BECA
-7E46DE4EA03C3C8EFCCFFA7B8AC8556D594DEABA2A3D899B63D9BE5D9E22CEAF
-C2A8F93649D1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (Mtrauermus.dvi)
-@start /Fa 144[67 5[37 1[67 2[75 2[65 31[102 65[{}6 119.552
-/CMBX12 rf /Fb 143[49 112[{}1 83.022 /CMBXTI10 rf /Fc
-133[61 5[53 1[57 2[69 13[67 9[142 9[131 11[104 18[38
-46[{}9 119.552 /CMBX10 rf /Fd 138[110 1[78 82 4[165 1[105
-1[55 110 2[91 1[88 1[96 10[150 1[138 6[188 1[155 18[99
-99 1[99 99 2[99 7[77 77 40[{}21 172.188 /CMBX10 rf /Fe
-199[36 56[{}1 66.4176 /CMTI8 rf /Ff 54[133 57[133 5[133
-54[66 6[106 1[106 1[106 7[0 0 50 50 5[40 1[40 1[40 40[0
-1[0 7[{}16 132.835 /TeXMUSIX16-Regular rf /Fg 164[32
-91[{}1 83.022 /CMMI10 rf /Fh 139[32 33 33 2[42 46 1[23
-2[23 3[37 46 37 46 42 10[62 2[46 3[65 1[76 3[30 2[54
-1[63 60 59 24[32 32 40[{}23 83.022 /CMR10 rf /Fi 240[0
-0 14[{}2 166.044 /TeXMUSIX20-Regular rf /Fj 96[0 39[0
-31[0 87[{}3 166.044 /TeXMUSIXSPX-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 483 4668 3861 4 v 483 4701 V 483
-4734 V 483 4767 V 483 4800 V 483 4272 V 483 4306 V 483
-4339 V 483 4372 V 483 4405 V 450 3744 a Fj(\237)p 483
-3877 V 483 3910 V 483 3944 V 483 3977 V 483 4010 V 483
-3482 V 483 3515 V 483 3548 V 483 3582 V 483 3615 V 483
-3087 V 483 3120 V 483 3153 V 483 3186 V 483 3220 V 483
-2692 V 483 2725 V 483 2758 V 483 2791 V 483 2824 V 483
-2296 V 483 2330 V 483 2363 V 483 2396 V 483 2429 V 483
-1901 V 483 1934 V 483 1968 V 483 2001 V 483 2034 V -2371
-x(\237)p 483 1506 V 483 1539 V 483 1572 V 483 1606 V
-483 1639 V 483 1111 V 483 1144 V 483 1177 V 483 1210
-V 483 1244 V 483 4801 4 3692 v 2091 x Fi(\016)p 450 4815
-17 1352 v 1351 x(\017)450 2278 y(\016)p 450 3235 17 957
-v 957 x(\017)450 1093 y(\016)p 450 2049 V 956 x(\017)-195
-4761 y Fh(Violoncello)-91 4366 y(Viola)-117 3773 y(Violini)-410
-3183 y(Corno)27 b(I)r(I)h(in)f(Do)h(\(basso\))-277 2787
-y(Corno)e(I)i(in)g(Mi)f Fg([)-430 2390 y Fh(Corno)f(di)i(Bassetto)f(in)
-h(F)-7 b(a)-307 1997 y(Clarinetto)27 b(in)h(Si)f Fg([)-85
-1402 y Fh(Ob)r(oi)483 4699 y Ff(I)483 4337 y(K)483 3975
-y(G)483 3580 y(G)483 3185 y(G)513 3301 y Fe(8)483 2790
-y Ff(G)483 2328 y(I)483 1999 y(G)483 1604 y(G)483 1209
-y(G)593 4765 y(2)626 4716 y(2)659 4782 y(2)593 4354 y(2)626
-4304 y(2)659 4370 y(2)593 3942 y(2)626 3892 y(2)659 3959
-y(2)593 3547 y(2)626 3497 y(2)659 3563 y(2)593 2394 y(2)626
-2345 y(2)593 1966 y(2)593 1571 y(2)626 1521 y(2)659 1587
-y(2)593 1176 y(2)626 1126 y(2)659 1192 y(2)702 4732 y(R)702
-4337 y(R)702 3942 y(R)702 3547 y(R)702 3152 y(R)702 2756
-y(R)702 2361 y(R)702 1966 y(R)702 1571 y(R)702 1176 y(R)888
-174 y Fd(Mauerisc)-6 b(he)66 b(T)-17 b(rauerm)-6 b(usik)1381
-361 y(KV)66 b(477)g(\(1785\))3538 594 y Fc(W.A.)46 b(Mozart)794
-1704 y Fb(p)871 1687 y Fj(W)239 b(w)834 1528 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (380.7998pt) GDAR N
-/S0dir 1 N /S0dash 0 N /S0adj 0 N end
- 834 1528
-a 811 1554 a Ff(\011)562 976 y Fa(Adagio)794 1308 y Fb(p)871
-1292 y Fj(W)g(w)834 1099 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (17.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (428.39978pt) GDAR
-N /S1dir 1 N /S1dash 0 N /S1adj 0 N end
- 834 1099 a 811 1126 a Ff(\011)p
-1177 4801 4 3692 v 940 4699 a(=)940 4304 y(=)940 3909
-y(=)940 3514 y(=)940 3118 y(=)940 2723 y(=)940 2328 y(=)940
-1933 y(=)1234 1571 y
- slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1234 1571 a 1234 1571 a
- end
- 1234 1571
-a -60 w Ff(6)p 1214 1687 4 117 v 1 w(\007)1285 1637 y(>)1234
-1142 y
- slur@Dict begin (2.0pt) GD S1hgt (12.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1234 1142 a 1234 1142 a
- end
- 1234 1142 a 1214 1258
-4 117 v -19 w Ff(\007)1285 1242 y(>)1355 1571 y(<)1355
-1176 y(<)p 1450 4801 4 3692 v 1315 4699 a(=)1315 4304
-y(=)1315 3909 y(=)1315 3514 y(=)1315 3118 y(=)1315 2723
-y(=)1315 2328 y(=)1315 1933 y(=)1459 3284 y Fb(p)1535
-3268 y Fj(W)g(w)1475 3118 y Ff(\011)1459 2889 y Fb(p)1535
-2873 y Fj(W)g(w)1475 2723 y Ff(\011)1459 2527 y Fb(p)1535
-2511 y Fj(W)g(w)1475 2361 y Ff(\011)p 1882 4801 V 1667
-4699 a(=)1667 4304 y(=)1667 3909 y(=)1667 3514 y(=)1667
-1933 y(=)1667 1538 y(=)1667 1142 y(=)p 1907 3251 4 117
-v 1908 3135 a(\007)1978 3218 y(>)p 1907 2856 V 1908 2740
-a(\007)1978 2823 y(>)p 1946 2428 V 1908 2428 a(\007)70
-b(>)2048 3152 y(<)2048 2756 y(<)2048 2361 y(<)p 2143
-4801 4 3692 v 2014 4699 a(=)2014 4304 y(=)2014 3909 y(=)2014
-3514 y(=)2014 1933 y(=)2014 1538 y(=)2014 1142 y(=)2152
-3284 y Fb(p)2228 3268 y Fj(W)240 b(w)2169 3069 y Ff(\011)2152
-2889 y Fb(p)2228 2873 y Fj(W)g(w)2169 2740 y Ff(\011)2152
-2527 y Fb(p)2228 2511 y Fj(W)g(w)2169 2394 y Ff(\011)2152
-2099 y Fb(p)2228 2082 y Fj(W)g(w)2212 1928 y
- slur@Dict begin /S1alt (333.19983pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(12.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 0 N end
- 2212 1928
-a 2169 1949 a Ff(\011)2152 1704 y Fb(p)2228 1687 y Fj(W)g(w)2192
-1494 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (17.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (380.7998pt) GDAR N
-/S1dir 1 N /S1dash 0 N /S1adj 0 N end
- 2192 1494 a 2169 1521 a Ff(\011)2152 1308 y Fb(p)2228
-1292 y Fj(W)g(w)2192 1066 y
- slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (21.20001pt) GD N /S2brk
-S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (428.39978pt) GDAR
-N /S2dir 1 N /S2dash 0 N /S2adj 0 N end
- 2192 1066 a 2169 1093 a Ff(\011)p
-2575 4801 4 3692 v 2361 4699 a(=)2361 4304 y(=)2361 3909
-y(=)2361 3514 y(=)p 2601 3234 4 117 v 2602 3118 a(\007)2671
-3218 y(>)p 2601 2839 V 2602 2723 a(\007)2671 2823 y(>)p
-2639 2444 V 2601 2444 a(\007)2671 2428 y(>)2606 2032
-y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
- 2606 2032 a 2601 2065 4 117 v 2602 1949 a Ff(\007)2671
-2032 y(>)2621 1538 y
- slur@Dict begin (2.0pt) GD S1hgt (12.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2621 1538 a 2621 1538 a
- end
- 2621 1538
-a 2601 1654 4 117 v -19 w Ff(\007)2671 1637 y(>)2621
-1109 y
- slur@Dict begin (2.0pt) GD S2hgt (16.0pt) GD 1.6 (2.0pt) GD M S2dir
-M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
-S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2621 1109 a 2621 1109 a
- end
- 2621 1109 a 2601 1225
-4 117 v -19 w Ff(\007)2671 1242 y(>)2741 3152 y(<)2741
-2756 y(<)2741 2361 y(<)2741 1966 y(<)2741 1571 y(<)2741
-1176 y(<)p 2836 4801 4 3692 v 2707 4699 a(=)2707 4304
-y(=)2707 3909 y(=)2707 3514 y(=)2845 3284 y Fb(p)2922
-3268 y Fj(W)f(w)2862 3135 y Ff(\011)2845 2889 y Fb(p)2922
-2873 y Fj(W)g(w)2862 2740 y Ff(\011)2845 2527 y Fb(p)2922
-2511 y Fj(W)g(w)2862 2428 y Ff(\011)2845 2099 y Fb(p)2922
-2082 y Fj(W)g(w)2905 2004 y
- slur@Dict begin /S-1alt (333.19983pt) GDAR N CP /T0y1 ED /T0x1 ED
-/T0hgt (3.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
- 2905 2004 a 2862 1983 a Ff(\011)2845
-1704 y Fb(p)2922 1687 y Fj(W)g(w)2885 1528 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (13.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (380.7998pt) GDAR N
-/S1dir 1 N /S1dash 0 N /S1adj 0 N end
- 2885 1528
-a 2862 1554 a Ff(\011)2845 1308 y Fb(p)2922 1292 y Fj(W)g(w)2885
-1099 y
- slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (17.20001pt) GD N /S2brk
-S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (428.39978pt) GDAR
-N /S2dir 1 N /S2dash 0 N /S2adj 0 N end
- 2885 1099 a 2862 1126 a Ff(\011)p 3268 4801 4
-3692 v 3054 4699 a(=)3054 4304 y(=)3054 3909 y(=)3054
-3514 y(=)3305 3613 y(?)3381 3590 y
- slur@Dict begin CP /S3y1 ED /S3x1 ED /S3hgt (2.79999pt) GD N /S3brk
-S3hgt (2.0pt) GD 1 -1 M M A N /S3lift 0 N /S3alt (142.79993pt) GDAR
-N /S3dir -1 N /S3dash 0 N /S3adj 0 N end
- 3381 3590 a 3341 3680
-a Fb(p)p 3396 3563 4 108 v 3358 3563 a Ff(\007)p 3448
-3580 4 120 v 3410 3580 a(\007)3460 3597 y(4)3396 3455
-y(\311)3407 3456 y(\311)p 3537 3597 4 127 v 3499 3597
-a(\007)p 3590 3580 4 75 v 3552 3580 a(\007)p 3642 3630
-4 120 v 3604 3630 a(\007)p 3695 3613 4 98 v 3657 3613
-a(\007)3752 3696 y
- slur@Dict begin (2.0pt) GD S3hgt (-10.0pt) GD 1.6 (2.0pt) GD M S3dir
-M A S3x1 S3y1 CP (3.20001pt) GDAR S3dir M SB 1 S3dir M 0.17 40 S3dash
-S3adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3752 3696 a 3752 3696 a
- end
- 3752 3696
-a 3693 3663 a Ff(6)3591 3505 y(\311)3640 3510 y(\311)p
-3728 3648 49 4 v 3771 3663 4 140 v 3733 3663 a(\007)p
-3305 3234 4 117 v 3306 3118 a(\007)3410 3218 y(>)3552
-3152 y(<)p 3343 2823 V 3305 2823 a(\007)105 b(>)3552
-2756 y(<)p 3301 2462 49 4 v 3344 2477 4 117 v 3306 2477
-a(\007)3410 2428 y(>)3552 2361 y(<)3310 2032 y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
- 3310 2032
-a 3343 1983 4 117 v 3305 1983 a Ff(\007)3410 2032 y(>)3552
-1966 y(<)3325 1571 y
- slur@Dict begin (2.0pt) GD S1hgt (8.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3325 1571 a 3325 1571 a
- end
- 3325 1571
-a -60 w Ff(6)p 3305 1687 4 117 v 1 w(\007)3410 1637 y(>)3552
-1571 y(<)3325 1142 y
- slur@Dict begin (2.0pt) GD S2hgt (12.0pt) GD 1.6 (2.0pt) GD M S2dir
-M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
-S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3325 1142 a 3325 1142 a
- end
- 3325 1142
-a 3305 1258 4 117 v -19 w Ff(\007)3410 1242 y(>)3552
-1176 y(<)p 3784 4801 4 3692 v 3528 4699 a(=)3528 4304
-y(=)3528 3909 y(=)3794 4865 y Fb(p)3810 4749 y Ff(\011)3794
-4470 y Fb(p)3810 4337 y Ff(\011)3794 4091 y Fb(p)3810
-4008 y Ff(\011)3825 3487 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (15.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (142.79993pt) GDAR
-N /S0dir 1 N /S0dash 0 N /S0adj 0 N end
- 3825 3487 a 3806 3648 49 4
-v 3849 3646 4 142 v 3811 3646 a Ff(\007)p 3901 3613 4
-114 v 3863 3613 a(\007)p 3953 3563 4 69 v 3915 3563 a(\007)3849
-3505 y(\211)3875 3503 y(\211)p 4005 3580 4 91 v 3967
-3580 a(\007)4012 3597 y(4)p 4051 3671 4 75 v(\007)4095
-3563 y(6)p 4135 3658 4 96 v 1 w(\007)p 4187 3650 4 121
-v 4188 3530 a(\007)4291 3447 y
- slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 4291 3447 a 4291 3447
-a
- end
- 4291 3447 a 4231 3480 a Ff(4)4051 3671 y(\217)4142
-3657 y(\217)p 4271 3637 4 158 v 4272 3480 a(\007)3794
-1704 y Fb(p)3870 1687 y Fj(W)239 b(w)3853 1499 y
- slur@Dict begin /S1alt (380.7998pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(16.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 0 N end
- 3853
-1499 a 3794 1704 a Fb(p)3810 1521 y Ff(\011)3794 1308
-y Fb(p)3870 1292 y Fj(W)g(w)3853 1137 y
- slur@Dict begin /S1alt (428.39978pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(12.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
- 3853 1137 a 3794
-1308 a Fb(p)3810 1159 y Ff(\011)p 4324 4801 4 3692 v
-4340 4801 V 4056 3118 a(=)4056 2723 y(=)4056 2328 y(=)4056
-1933 y(=)4327 4799 y
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 DP CP P S 0.7 T0dir
-M 0.14 30 T0dash 40 T0adj DS end
- 4327 4799 a 4327 4799 a
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 DP CP P S 0.7 T1dir
-M 0.14 30 T1dash 40 T1adj DS end
- 4327 4799
-a 4344 4799 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 15 N end
- 4344 4799 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/mtrauermus.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: Mtrauermus.dvi
+%%CreationDate: Wed Feb 18 18:05:14 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 20 184 594 765
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX20-Regular CMR10 CMMI10
+%%+ TeXMUSIX16-Regular CMTI8 CMBX10 CMBXTI10 CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE Mtrauermus.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.02.18:1805
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 65 /A put
+dup 97 /a put
+dup 100 /d put
+dup 103 /g put
+dup 105 /i put
+dup 111 /o put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2D4609D7
+D2E805DECFF5AF988F0808796D01500B18F0EFE1919743C126088426A5A27D4D
+03F21A15C23B9BF08DFD73708F2C1AAC530B2D00674DF2B5274D98C541905206
+6DD191F7458F1166231360871EA0C6AAE036BD3551B866DB578F29DEAFD289B3
+FA6E9CC4726B854E887BFFE87DA8AE960C817A1784031DA55BF78A79976A4FBB
+764DB071CF34E990D3531367408D37218B289FFDB701E870A32EC7ECC8C3D6FD
+90074953B49CABE8468930B55E5B5BA75B9EFEDF3A17405A626C7EAB6FCF110F
+D67C2210DEB1D9688F44E3904D353E0FFC63C6F3F15222685A8B5CA87C9F2F51
+DD1235E9F499B23FB69822FD9EAB739451E752796942ADD80A8BE9D4565859FD
+FBC97827BF4AE0C5691889BD555A44AB58E86D684591F33F54D08112EADA5B75
+BC6E242C6F8CC695CDB2A01A4F327739336236851BA94BAE26700028E1D6A4F8
+F01704ED48F6D9A2FA84A2A17EBEB204937C529EEB9D62AD38DDBCAE30F40E76
+8B94F67873840E5C75EE4E4EE56C4778A8CECD927FDCB363211AD63CE6FDA202
+128736AF1125DFBBA9649E9FD779A715ABFC54603FE76F6FFEDFEF914F46F1FF
+5F0E20BCA0E11294BC23EE1DEB119DB1E0CBF9B927744B72A0ADE9745AF7E8DF
+B31346CB86059E8720FEBA8315F47FFA51B3F4E115522C38AC7212D4DE2C09DE
+02AF5B0ACC5B55C6BB7229E55CA37AF459D13A9A39EA485AB3C3EC584209824A
+26E225F66FCA279117EFCE5FB19A0BBA2142DB5D3D4772D9D0046B29C5F767CA
+97CCEFC10A4B32B623C299FE994BEA5F079DBBFFE892E341AD7431AB9F65C890
+4CF6C21053C0788B5EE7BA3EE5A0D4E4268A6E1F44B697D385580DEF9F30ABAD
+FD6C8F1FE00E9A957000F66922EA9379CDFA2A100F8465167B6FCB40210FBBD8
+909E3783562676CFB96B44689041CF1A8020A61110491EFEAC35D2C500F66C2C
+2F4A2BA4297FE5345AE4A866DECC6B7EC6DC42D342ED564AF4A382C607340160
+1E6611FC45C357FC6078C24719C17742394B4D704338261BD2A15B311360D989
+F6C7B040347A9FAF09404BDC3CF4CE7F32C60D19F8E2198655389680C5FA583F
+EC53EDD3FF641B35C225FEB6B8813C0DA15BDA3666DACA70ADE0DCB6C9B135CB
+03902C948CD610340945E1EFC67FCC828D9F56293D9586FA9932068C2F126192
+6C1A75E7A66DDC1104B9584F3D9C4C72216F0C2147DF8F48E7C4BEC81FAC291A
+DFB4093A86F3C6AC58287D78F2782F57D1415921D2C11F6B9B45A8754ED126C6
+116A5AD4F5E2E693254F749CA5A22E38FCC186C18238F7D1334440193A641360
+281F2C1F715CCADD5D6EF405A17146C825652DAEDA2DEC79F53F4D3B90841BA5
+893A3E1DAC7C027C81FB603CEC6099227F6A15C2607AF3D169D36383499F88E7
+39EF8506CA74101E5A37D5264A6217BF9E518EDF57893310CA57BF111E0A6EDB
+03F62F7292FD83B90785143386FBF4F17A98CEC610B995167BAD9DC2E19484EB
+48DA33DD7542CC5125905D36FA830B8F3657726B15A5ED174830A06EBD5B6CD9
+12F90101
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 112 /p put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7C97C35EAFA47778CE03E863303582D8A9900EB1B623940B0807358C1A
+ADF30ADE694B653E32E635899367378C770B13D1E9C51E8127E19550ED085F63
+B21E3E3994B6D8509793C094C2B05AB846E5BDAF4FAE7E9DCEAFEC9CE55A447F
+B055846823C1F76126BBCB5F331EEDD026946C1F1EC8FC757DA5E1EEF2728439
+77B75667751A4303C4C9995B51F737E36407D3D9F8B9853CFB6A9E80CCD45E95
+5E2C361F6D78716FDB9B0D958FA699BCF7B5E2BAB95BF9EF6031A408EBB777C5
+DA9541E2A7331451BFD90A849C117A5AB2025FDE44A146F272852C1F5937857F
+F83F72E6B876DF198E00646120F7A7CC2B7534F1C4337915C58FCFE10B392003
+2739CF2CC74D30CE138C566A666FC0CB433ACE2322F486F3A5104985C26BF17C
+AE12796FD9467F84A86816F1D514F4187E823327496D4CD157958E5805E56961
+C5B8C3FAC57E2B870FAC8D1A49722E832BD9C8CFF3C3F3806B8913E5B4C7D5E7
+A64531DDD7334AA5CFBEEDD6BFECE143FFF7F7C23513A09D7725
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX10
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:06
+% 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 (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 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 40 /parenleft put
+dup 41 /parenright put
+dup 46 /period put
+dup 49 /one put
+dup 52 /four put
+dup 53 /five put
+dup 55 /seven put
+dup 56 /eight put
+dup 65 /A put
+dup 75 /K put
+dup 77 /M put
+dup 84 /T put
+dup 86 /V put
+dup 87 /W put
+dup 97 /a put
+dup 99 /c put
+dup 101 /e put
+dup 104 /h put
+dup 105 /i put
+dup 107 /k put
+dup 109 /m put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 122 /z put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
+1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
+757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
+0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
+6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
+E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636
+6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B
+DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663
+12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C
+46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08
+F6DD0BC6A79A2DB1FF539453CB8AC1F7D705DC0B07E5E48BF1DF1C51EFA748FE
+79FFE0BB0BE8802DB51EC3DF27141481CD0BA51D77C073F18578570B55162182
+1D3982BBB81BD942B41B5B3F6D02F3B33FC770A5491A040D3D7CC97870FD88F3
+D1F83F812FC70D2989F281143AA4BC8822F5ABF7E6A3D7C2B2F72F09073C679D
+C16B25219C7BEB049D7EE1AE6EDA40D9791D4FD8CFD7A5010962CF1989F1179C
+80ED82109EF203E8E6F42E7E40DAF99F15F7C116DB632E372CAA22D747B16088
+579C361AE04D572FB04D48E69939FDF48DF49CBE4C7AC998CBCF84E39CE3B141
+286A5994C60855979B40287A47AC5664BCB5A71663B8B0644BF7E5B57B4024BC
+62777739FC42EE3624CA9754C4B6A8B33BC05A3C74405EC9554403EC55074CF2
+EE1330EBA1372371DE3F678BD7629D652A88F6C78C812A630850019C1CBA38DC
+D94E21069ED4EB4830E5E1BE4EE7195B4650686C1537F69B8C5422B1DC82FF76
+904B24129BDEE930A38C48B4FC5A91FE145FF8C4CA9DAF7F285A012039391C0F
+D9E3062F4EBC4405EA4B88BB5F97F04924E8CFD206DF0F49911A0A5A2997B2CE
+F0E5CE99FB7A4A607F01A6C14EBA0F06E03599F8C5E364170E0D91C3AC57DD8D
+E5C6C63C0ABC3B55D585A07F83EF2B05452520ED37307C7CC93944AB53050CE2
+16C0122EC9AF73CD67F6B33A8D57D28AEA4891E6ADF40B96B2B66958AFC64543
+B9FB6002AD9B691A76A39BF028058610280DFCFE25B380D2DFC3330A48DEB41C
+9E0244FE6AE33A67140AF890E662EFB96CCAAB60C03D7566356B99961D2DFDA9
+B22773F34FFCE8351715605A9EE21CF836572E2BFFDD9A56E20DB6B82794DD9D
+32CF139FDAEBF847CED7829DDF6E787D1D14F0F2278479E7168F2F4E058C0177
+456811B2D43B71D7154E113AC200C2731CC6948948FFB9DBEC26A201066F50B0
+137DA092DF7815ED4F2F318D95C006D4480FF23D9EEB787AC0DE7EA32E608B5A
+2403AA61DA0316487C3CFA6F892AF2B2721AF440E7D8CF16A32DDAC22AD0EEA6
+2C5387D923B065E4EFD7CF43670FC4964E4173A9DF3EEB390A02BA4873F05FDA
+B63FB78C484F52F4121E28FA6E58EF23259D4A201DD56750B1517A02EF822717
+B778B9BD024A1DFE832602DC70820E36C8A3BB65EDDBCF42DAC31973B2A00D50
+4DA02621A38BC077A51A64E664DC72658C7B560F3EA451945BF1ADF2FC99E834
+3B3CC81AA4D14F9E1C8B90A066382AE770AFE3A4C81FE1336051C283A96F1F3F
+427E57BD04E92ACEA8B8E5CACFF75095FDA325C4792593809BDE240A1984D6EA
+DDA7D365AB6CD1FDCB236F59DA1F169D63486CD71596E1FEC1764EE8B863BFAD
+D8651C11661D7E0D9954A49C328F263746D43CD1A5818D143B35F67E0A3EAAF1
+04B0CBB2B83665C6F2DF59597D2C3098DBD3EB96A32B02F21C4BDF854090557A
+092ED1187A091121236D2BC50D34F17FDAD059C4CFB583FF8B6550F6DEE056C8
+1B6B1AED26F61DAD377536DC326CA1D6B83AD46D2D8936A260A347077C70B713
+AB695A232D41CC5F40D95EA445AC0E59EFB295237DE7417EC7F0E3E880B8F005
+38059B831FB1E949637D51EDA3272FF567CE4324DB5074AFAA4752BB903F6D91
+9E44D074E8202E6C23B0C2AC66125C9C4E84C36C154EFF5AA38B8E89418DC4E5
+15FD446EEA5E626EAA9268583E56DA048D6433C961169A7DE13B83E29732373A
+1CCB483F3649D5972C62913CB6EC1B2052A65A4685A5F13BFB467B17243401D6
+DBC1969B03DE4632DE0DCF7A4C781BEB5CBA1C05E9219B49CC14B74B9C4B6390
+7A3947044190643219B8AB00A397DDFBD0D8A90702F677E3063EC4721D411535
+03302230E1AD84C9AD72F3D0F2CA0108FB1F4AE11B27A58F6A5E37B87428EEFB
+0BB76ABBD6D78DC0C9D4231EF012B7DC963D6A7B70D45ABA9855406877A679DA
+83DEDDD06BA7D84B9C0B7C55B0DCBC2299918CD8148C9C451EB64633ADC2DB49
+6A2000A12FF9ADEA9FCD00D66D4061F4ED70B15DA324A73619B48800E47E127A
+60BA55176F175E48907D1F03F9C305B9C7B913FF2CF75D77CE4C2CCDC864BDB1
+36A77636F53B8002276DEF175E210BA36E62AFBEB47FCE372E9DDBF67F7D20E9
+B498C9054C2231DD4542F80BCEDCEDA17553CDC56B5985CB6474C7766082730D
+E004968F668D9FC95D6999CE8FDFD1999E4714F9B27C925664BB630407FAB043
+87B893F42B5C66CDB85D693B68C79280BB22BF769D52F8C59140080B202D00B6
+FDDE1DDEF17B2C9054ECFFC7D5F2C273FC6690F4A6C764921F765FBF71FF8376
+EFEBBE66FD46847590293C8AA9B2C4E476B7922607FCD34E773244A0F4E2663B
+14E09EF51DFA8087C570CFA615DFA21C9C29808CF75CA3083D17453FF800F1E3
+E0270A226319D5E61A5F8DE652E298E4EAEA588305741DE08EC55595B51B3562
+53BA265EA013AA1DA5D547F25F2D8EB247F8102A0091FE0A0B49C9C9F5E8E44D
+EE02835686E52599C5833377445634DCBBD3D416D9111713D4BEE7F9A047F277
+3B1D580E0F7107E2FA3A9B74E99A3A489BC3CADE92D957E7ECF37C5BEFEB2D95
+ACF5EBF354E8DF850AE9DD0B42EA21F6C90D4D5B29A715C8ADC624EABD7771AD
+F9DE9392A2AC511606D3EBBD01409F5812125ED2D13A13BAA39283ACC87A96B1
+EB89C329B5E67C85381760142CCFD208F6EEE9108ABC4E16318B31306A37708B
+AAAB88D4A55AF6A604F771FBA50DBBEF688CF23118F414B00765382665F6C354
+F1A132F0BE5DD9614E8644546D0E488D3E5DD913283C10071BB729F66F650256
+F7BA0FAE1953AF69265CF5E53A76E8807F6046C00D31FDE4460E1BC3A151D363
+AB071B33AA879A7B565BE204F6CBC53156AEB04CA2D349D508B14939CF029327
+EB2003DCDBE202AFD474A9A547E17408CA12B6DEB60E640064888B560A9D8BFC
+2A6DCF2D72336C5B0FA4BB34D3C505F280A72EA9ECB53B186A1EFEB3C529CD92
+7AE1E44DA3C88C95F31CB2061B748F41EB1AA361669629B3318EDB123CF454F5
+5E03BF3B0BA5B74774EA0B64C96871D85C41AB34453B4A3B66D40A4AAF689CCA
+86F7DC6FEA48ED533A8AE71F9AE3BFE8383BC86BCE01FEE39F3324310883A222
+D70BAE1E0DA2CD38CF94543B7CDD7408275AE54229A835EBE9FE8C9E8226170F
+3F9DC2A9E80CD2843B81DFA6B13CD91778FCCA0AA46CF19B7938F90D3560D8B8
+66B31227B4B82303EB9B44886ADE7D474A10BE87D8DB8B2D7568CFB8B10366A1
+6C4E4C4BAF11A3E4B18AD973BA05B2995C35B4E6C6299D49C6FC2ADC4FCAC3E0
+FFEBDD1D4D52056902DAA5ACA3199E4A37201A38576A6AF516D10E7A7054212F
+A8B4B9CAED15C21447825D5E68FA9622F5ECCEB76A9C8EACEE8D967E637DD8F9
+033FAF6B6E237C5A4992F37F431C7E2B4D9E56E3D3A040FB5D24C73F1FD0ADD5
+B52982785C62D5743D0AEC0127A509B885A487B7621E7809DA775E703D52D184
+DB9BBDB91D30454438EBB7794FF7FC604CEA997B55551934096DFE09EB708193
+8441C94FE35FD8762386146F012A8C57A772F83A9A81579CF0B4BDA1066C7866
+9C38C2A8FE562DAC7B7DAE3C813DC2A86AC804AF74798DA9E0EF5C20AFDD13C7
+A68DA960D30F92D2A9FA3DC22E821C6D22C0638174DDBC3F972A2D94A9168119
+57F5EEA5E3789CA3043BD9401C3CFC88189724894148E3B3AD9EF4F9D5B90C33
+0843B328280FF8505CCEACB475957F28D6367ED16C67B9AAF8A722D921003B85
+A0A428F323D781F71BE5873171D00EC386D7C8276614ED813BC14A63357E8A09
+C2B9989C8C177628E061CF35546FC02012E3B6F7FC5056B56D10C325814AE2AF
+BA7DDF8A722E8B84993E6399053D3EBBACD4EB5D3EB655F1BFF0F414EDCE6C7E
+1E5C18EDC80F693FF53CADC585287B26F0F635B2F153BCBDB36DB6EFDFB05636
+31DB3265B9154F83B19596BC4F2807A3B024F2CB3C8A504D7264BBFE38CFFB16
+E8A29D6A09F1594D641191E0CB6F43E6F342F2EEF8A04A322FD1D48ECF0513EB
+A0A7CE74985912AFCFD42C2EB3A10CD6CB024B46CD5E92EA556F4B820D8FFD89
+6C6BFACF1430713BB8EB91D4965FACAD1724E59C17AF10F516F10C13332136D6
+3F019006A4F066E5A3F72C35F824041C18DBF2E7A95A4575CF8E0BF4F60A8003
+96E79B8A4AB508BCB06DEC58EA0A474468E851F32E69B826F8F3F576EADF3CBD
+6A0A61871997B090CE011A964D0DF16552B5B0D3F23D97FB52034F484129EB61
+CA0927AE4EE05DFA3B5016A1007DD3B8C2D952B538989F8D5F0E1420E2D57DB1
+1B9C85A40959D140043DE2614ECE60FA6AFC07021831DDCFCBF4524C0238F284
+5019A3180AC1CCC153B33DB655D7B4B21F2B64CB2A7A9B2E3A20DF36E1CE51C5
+E9A94CC834C6A713732058A522AB93F5EAC1832F1B9B1A73E98967BC4CBD5EC2
+2986CF0C3E2875DAD479E4DF43B0D4D0DAF23F2047DA7A5550CAF9080F15757A
+E1CFF64F30C9569B0FC5F03EB1BB98A94C0CAFB8138EE46FEDA16A94E0C35862
+F87D35EE09B7705EA9887C37BC793857A78F4D75578888B374F6103A90045BA9
+1B262A070E022ED70CF8AF0FCDBBDCE64EF4EF8F9DB1523C48C58AAE00AD6E53
+78C7621A4635CDC989243E01789EAD94AEF2A179E3C650D767BD8D1B62D97E51
+020640EF4123638DA52D0077F3EC11C58477E2022B6C0FD315731C2A51EC8617
+B296ADFD96E7C73A059300F8C4FF8CAF558B3928A5C7D42FC9971C63D3F0E1AE
+BE787024CD787033D2266C6F56932C0F9AD90C44D0180D2FE603DA3229882EE0
+E211182E87153653DB28E918C8F1865A2CC732B50C1459C695536B77E863B1B3
+B808493B17DC9CD5B429D45774C9B1644567FA38FA334535DE16A4E57B7B3D24
+485ADD89D4AEE7B8D25056E1AC0332ADC60D166E2B14AB48F330EEE640F3D09B
+039833A526CA38E999EAE96A2CFB9B57611DF356E3D263C68B8CEEFAABE88A7A
+A47C110DD74A38FA2DB462E4983B2A540E14343413A1AFC38951C246856A97B8
+6A69C04B8960AF6EA38D5468B9ED408C247B34764FD01CBABC090087334C13E5
+CC95CE85EF3F959209752AA3684C7A34A65F8F18AC94E97C503360F9FDF6D09B
+A4A6AC7914547A336762151B009A0ECA5408CEEB65C577B42BE8FB0DDBB20180
+B3D4AC3408F53E64BC61C15F235726E367AFCC9CCD8C9DEEA111839575E21FBF
+BE4350018E4A904BA8174404862FE3F0805215089ED2EBE1F7425F752200EA70
+C20A993468E9E01EC8DC3F6AA159EA6DE833BA19FF39D5F68840F95EF862C9F5
+82E8E7C8EA11CBAE793B508D1554248AF52A93E6BBB6EC93FC682E1F9E66ACC6
+4B881B06F97AE0562404D348DAFA447E12B8EE97E27425D2AE4029FAF1F9181A
+877DADE36522A2397CDD7D91213E0E83E5A43BC3A1DAE79C1A18133CE11550F3
+6CFA235B9E51D3C45AE77F0301B84DA272E9BA32636E146FECE160E49D9F5D3E
+681269E0FD24252B6A74738F3C4E3AEC976C9AD672FC18A23AB7C05B04F82B3E
+F34C3FEFDCAA1B98AF7D6F036473AA7C859A843CC046CB358AA372F15CAEA7DD
+90B06D8C712069FF03C3267D812ED88EFA72381CD7E444EFBAA260C73AF7196D
+26B719C9499DCD52EB6A8378101C3CB3EB6AC715E519C7D81F6E6D9CA69FBB40
+0CB9ACCD90BC16EB56588BA249BE57E6F7B4FE5D617513C85F8905168450C9E5
+F0F2B914563158300657734B866C2A4A05978AAEB0F3AC612F596A00785FBF14
+0304CB11EBACDF1A45666A848A7AB371B3FC25C463123BBC38EE992834915F72
+433C8BB13562EAACB2B917E0708689A3159421B199700512C5A78BD3CBD7C45A
+8E8685E120C0C87AFB6DB0E6517C4E78D3F576578C0399B5950DB1463FA84E56
+D4852E2DBA1CD200037B0BF6C07737C7D5BA78F15EE7FCF1FB236DE745A7EA90
+02B41CDA6329666C98D95BFA4D8B18B715E146C353C615BAB248A1978E4055C1
+C3860F65FA057F27102D546632433B52B89AEA1D12121A34821006C2A2C92D9C
+B8D01304806EE8433C5748803FF06D2E2D0AC6F984E1EE79F60347613ED6F560
+DE221AE60E0452D9A5105B0525F17EFB3A89A1CAC51B6B40DF1C26CB6A0835FD
+8DDF6C9DF88164094A4E54372F344411824191734F31EF698A0C97FB2088E6ED
+8B886ACFB5785D69851B470ED4CB593C3D72A1AC4152BFE6B2C533BA2DF86820
+EA9B429D84D21A8FFFF2F0379D724A15AC44D9B8155C620AAA0CDA1B2ECCC35B
+A3408A8AAA28BF5D8714B7BFFE4795A91402C45F953B6971EE762F3D267344E6
+8AB3DBA667EF4F55F79675F8C5CCE10990B47F2A37FC6477A630A9CFF02DB041
+28246693483E0BC685E16655BC3924CF66C13EFF9647E26678BC729FD5CD3468
+98DA10C6EBA01A227B5A9B0E38BD9EABE5DFC67C68CFBDC44F9A1E562BF11A06
+EDCE8F928562DA1C92F9499FF4A0D11DB94102941BC07A81711199288B36F2A7
+D5502B97E838B8DDAAD5C667E94B2CFBF20FC865D2B8B29CFE3982056DD02485
+46B0CF7BF961FC0BAE58A811F8FB615919B6EF9788364D72DAC7EC17B51CC5A4
+8A47554999159FA05516EBA16FE3FF14376E6E673353325A8029E48BBF3CBEA4
+5CAD512E630035D5027DB68778EEBEF6EC3C5BCB6F1E1BB98772440E4A34216C
+BB200814CC629377F36C48785873D5F684EC99F20258654DD5D8E81C2A34311D
+4462D9D6A263A4D9C9F47518DF26586E50256D9DF6A3766A6971ECCE20A085CA
+69FF98A0412AAADCEB077113B1DAD714A5F44DA7D8EEC356FD0D4DA1C02E9F97
+303B31A180AB82DA41C68CEAE82CE84997CFFC7FCA4601D3D86E5F98F8D74EE9
+0ECA5D9A843AC2D074A72C08647E7224E47B691E88E0DA3110F402EF0199AC11
+E275A8161538D339D97BD522BF730BFA80DF1DAB92C813AB3B4131E19F6102F1
+8B9F8E9A003E9A20CDF9A30A978C06888954631B0B09
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 56 /eight put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4803AA3E45F388F65179AA988898B7B7A8252625EA5D7BBE65642F35DE
+6926648975C26BB71EC4AAA2C6B061F34705BB1D6366B0410E461F4A4573E422
+A6DBBED212134EA12D0A744EFD8B5A8043C4C98E70FB61AB44AD65396F903CE6
+C75567EA638DCB1AE5C7FDC2535439C4A948A94DC17DB26CAF391EE972891DA5
+AFBEEF4A5893EABB4976611AE3579228B0B980F3A9608C8B9912B166886EF6A9
+467B1DB9349470B8C001FE43AC234638ABA572238D147B23955C053CBFDEA682
+3C8492AC68F7DA2A03201B749878C0A4F08C1CF33E27EDB13F1145CCE6406642
+E72E7D84E0E5BBC7CC381FC635621540FA735619E502DFEC0146AD485114AB3F
+40944FEFE1562249944C410AC526A17ACB00319ECC675E6570FEEEC37CE863DE
+DDB1280C7A23A512C6D12294203C728393E6DBEB55B976C3D5E1B9AFDF240658
+9F3F6B1DF2301CD5975A054A844C0F9A0672B0ED
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 9 /macron put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 60 /less put
+dup 61 /equal put
+dup 62 /greater put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 75 /K put
+dup 82 /R put
+dup 137 /Lcaron put
+dup 143 /Racute put
+dup 201 /Eacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8644A236A5A4721E6864E6AF374839907799DED840F1E36C55DE79F4
+D0CFB5F9C44E2CDED27E603CC36D1B1D0A4F732BB3D6E91C91571202DA6B7F7F
+1B5B8015DEC1102F651D488BA107BB674A8847A135FF82080C41D82E23492AD0
+AB800B022A9B592CC775996A968FBBB04CC7B8ED6DC10655E6CFD643DA80D068
+110852F4D961126EF23D5BC3DD95A702FC3DBD17A402D4D23C5590C9A01735B5
+8C9FEA9288AA556DE2124353DA1F310C732D54A70D41672C8E159B7C8A5B5FA4
+78B909E88C17138E9B692ADAF3E16E044AB9EA1278E210D30567B07105A3EB29
+7E507FE544F582450525A4D7E4E6CB82AB60E8DCB6EBCE38D8A42F76F1BA6C92
+0A19BD1464043D8CE3945496FDA6C769398371FD8908C50D59A02E41E88FDE74
+0DF7CBB665B2832184204DD00953B14EC647AD62BD056C1394F3C05D2ADB50B7
+F074B076283E3640ABE626665E7F51FB2ACB78C3B4B34A90ADB21BB2B8F0BFFB
+C0857417F1D336580C856E40E39B1F929F73DA5A26461913EBC480D58E4F87D1
+DDA6A658C3535EB6C54FD5EF5CBCC1E21077B5848CCA4E6EDD5050C816C91A85
+A9627973D790BF10A387E75F4BE8B92F64595EF16235A0F732DB549374B80C16
+D8ED87820A54EC647AC4D835F73E3FBAE0B95FD50978D462AE1EFCEE70F21704
+6D41294D272F95F78E1DCAA8B7EB91979B8F7C7331448C2EC2F01E9F1D101583
+50A09456255581837A138316FA69F604AB2FAD9AA915CE03F6B4CA4588D543B4
+6F95C0ACDA7840F65E27784A8DC4F23DFE5CF2892C132520BF7A0A8CCC4A6BA6
+1B52F37888CED9BAC5456F79B3D9FAE4D8B1097F1C81D7A16243C47D1C1EB3C0
+3C3E7AD2EF9449AE4F8339C6AACECED9E4F7C5292FBF87911EE2CAB503DE209E
+8103B575B37DD1D9B0D4D332C878425A9B8B282314DF2A3997BEDA6A49121908
+B2682609A7DEA7249FABFB9080572857A1A2DF3BAFC67134F6C0C205F028DBE4
+FEBFDD5DCB58DD6DC817115F53BD723FFB14DDF4D9BFEECC4073901FF09A0E42
+3765C2FF3AE2005FA8871C15D50317AED8BE81F18E0A9DE39E0E8F097B9F3315
+CAA7A6F3011E56B300F073D6AE44D97EB1A540837222856B0D97B983D39B4C74
+5DCA02A3B96AA6BEFEA1C88CCF62EF6FC868053B6EDDE12EE3E7A297EBD8098A
+6EE1A25DBF13720031E14278F3043F17F396D0728B4A40B02629D530C025BE85
+8A40BFCAA07F25580BF56F31BD9B7DD754B2EEC0C669767C7155A3BCB9F192EF
+08972754E1D090E33B65BF4B4A3AC65BE3DB121BFEA68F8D0C14125A52256BD8
+F2C36994ED817636CD6E7E8CE9F33CBE901B99FFDFA9F5BB69A6FAE2701EA52F
+A2CBD0010ABB80BAEBCADA7D34BCC106AD273A2DE8CE79F2909FEB1508536828
+3057695F74B70DDC6B1F9ADCB9F5F81607D159B1CF7BBCE7F473E3335FC549F4
+D79F4BDEAF307EF6649F554849471A6DE846B96CE53B47531A036D3009D65641
+BE437C600378B2B1E68BE5BFA766E9DB2515FCD38ABAC3E0B6BF592C6EB30095
+CAA581BA736909E72525F6F77BB437FF13EA6ADCDD57F02A0445D73B44AFD0F4
+68A759868AC0EBDF3BEAC6A50F86A07EDABC6E62E508F0D798D7DEFE5F8A47E1
+02D2A3276F699FDF6C5EC03F799FFE9D977CA93BCDB07E088CC19E6F4D253643
+00612C2A8D2163317C77FAE506C185251EDFCA0589FBFA2E404280B2E170E737
+E50A841F1D556AFC03863A787D1625E44DE38C805878605ACD54CB3A2A8465B9
+1141CCF4DC6480C6B47380A4F5FAACCC35E84EF2FA073EFB41C2764040AFE949
+B098354012BF3DFD5ADA4B9648AC1BBBD1EC2F8203A7DF97F325EE0DA98B9C3E
+99A003FBA58880971A9E6F6E6102A880FF60ECD596240653426FE45BF0B85F8B
+5BEF8920C7044635284A056BDA85D0F2D3AC535DB737EA9D05FC11983333BAC7
+C841FAF39E89635A04A60D923F8259130E9EF23C9F9D78B0676B39D59CA85F94
+9A78548C3B8A4C2FE7D9B5B3847BF6784C2B9C7191BD1A42B2D5230F12F41323
+6A7D8241FA991B870E3470A8045658C31C19B3788FD0C6688C934E0624E40AF2
+608F30BDF8F9B04F80EFC41B863696FE07ED7F3D960BEB85B3719AC13E0E88AB
+0B9BFDCEFB26C421E23D8140D54169AAD6BB5AD81B00F44CF34D1436ECBC2099
+65CF67F2E30C14ED5AABF6797533BA17476B7AA978C194EDEB20469FFCF82425
+A9A2527E333129780055D87E52F7FC1CCC8A9C0766BC4B9B59EDC889EDEBAF9F
+CCBCED687E8F59EEA6FF46FA5CF168671C6E6EC807D253C2BAAD32FEA674CE99
+3AFC1AAA830E14DF9BF9EE2232A445A950A48E261341A6DA28E253359CAA96C1
+7D6BB26EB45635BF587A1433502BAE2FD82785988DFE45711E605B6B46E09A20
+2750E24EC995440A28A6106930FFFA26AA882A7A262FB1F21C312DF111B5F3C9
+F1DCEC2876A507F34AB7A4BB97096DFDFFF3A3B6DA8248B49055DDC587A04C44
+7129F7266308015CBF33FEBE83695AF5CF14CE95635DC4D5085A69339BD5DEF6
+9F5AF875621B8211844F735587F6799A3A79BAC006ED961E6F299BC9987B34D9
+5BAD9B9A5E0FEFB42CA2DE3D796E5F13703F9AC32F8C0B34A971223C1920C335
+8D2DA05149D2F10432F44354C8B70736D59E5A4317F9E27D64781F8F8C527CA2
+291DD2F1ABD10BFCA2F44AD920FF16945D51FA749738EEFE990FD969B2F52E57
+E38325DABE121F8EE208519042BD5A14B2A594798A2283B034006A67B0D007E6
+4218BC71019161CA3F3A8785871580005CD04C212D3DDD26D3BA250A31CA87E8
+4CF496F3D79E2BA3D0172A87A15D37A5CB00049F7B93C11BE0526F6AA8F6103D
+5205D102989482D0EFE5C156C20EE35A89B56CA716AD1F3855FAE7783D3F01E9
+D8A046148EDBFAD76F5CD2039210F9919B011E150E5FC1620187C3EFF31F92AA
+3E367D3844C913264E1D65E93969CEDBB779BCB1F765D511F9184CF7651326E2
+E5FCE493F68A5CFDDDEFA7F5D931F00AB9B20D49E6EF92A143C3E1B568C61EAC
+EA46F62D5F9A79C80FB48A99C028D22D53A92D62F8F37BBE1B90A49FB968CBC0
+95A6B16D14AEDA12A4E6C95622562C69BF6580C629A7592A1049444BF64AAC86
+18540E7D9F3434E986199DF6E67CAF153D1CFB9C0311F9B2DF95C3D15F2B3A9B
+2A19920A36C93CB63E55734B673ED3FCAFB952C25FC77722AD9E6FB660FAD58D
+C137044B2FFD4350524178ADD2B023B5B50CC2D59D77CAEEC0FC2F464F66CBFB
+46E98286E82B8F94D8FA0A39F6FFFAE0206A5F71A34F5AD59F31E3AD735D4DAB
+1DE44C875FC87BEA79E8193E5C672D2948177B3196BAA2576D01E6D40E09698D
+DF6C96BAB6AEB6BB431A899E66740176F596899CEA3C04211D095E006F49CEE3
+DC9D1F70C039A58F3C0DF4F337DDB83B0D3B358CC70EF07C30C4B61BD6640F5E
+DD5D6F766C4E4B359C0111BDF29296422F38FE44AED247212CA0
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 91 /flat put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 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
+9560176676ABB71BBD0EE56B4CC492C0652750227CEC7A49D7E6B962DA9F5459
+28DDBD921441A2E2A8A03D9B66A60AB7F3B21F3EE15FEB15C456465AC8CD737E
+F8620F968A81AF059E1C6AB8958CF6E3ECFAF18771B1B9E4F15668F6DA7F012A
+6A433F350D43710982B1743103504319B21FD8A531F3F0F0F6A767F4B079C562
+F1B48913CE6C4BA87A48D3C1921E0AFAC9B11232226B880E9FB700B67CF4A755
+E2653431285EB0E006D7A913ECE69FE9CE8527C15341381BE658046FD36DB42A
+9D2A54FCA18C7AF294DC2F208D1506217F302A06DA6BF596EF64FAEFD2B4964F
+2245F57C1207EB6698D875DEB4F8CB2ADF8DDBE223C600BA06CF7562B9422E4C
+F8F829E4FFDE1943983F46E7D9D764411E7D5F544F73D40670
+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 40 /parenleft put
+dup 41 /parenright put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 70 /F put
+dup 73 /I put
+dup 77 /M put
+dup 79 /O put
+dup 83 /S put
+dup 86 /V put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
+71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
+F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
+81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
+8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
+4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
+9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
+B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
+4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
+828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
+E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
+C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
+C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
+3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
+CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
+78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
+31E8F6E32F83DE748E345F81D3BFD57E78461379ACDEB99CDE6205C96BFD3DFE
+3B966D19B25596A888D7530D42F284E22E30D2B418CAE285AA38F9FB436D3937
+147E92E69D23E9FD278CD5F26788A7E5D8476DE8E214B027C2044F358E7E039A
+AED19D06B2BE80C3AE9F91D3FA70013517034EDDA896D6075C4699D34F5F9B4B
+EE1AC79D2701041C4D4A34A61CE8CD2D0600B5522CA3E348788ED962C12A1670
+BFC1771EDDB9B003555AAC7D7F474BEAAC5E03166CF952715959885FE167C934
+B4BD46A3B52C7FB49F22376C8C335B8BBA0DEEC900AEA7DEEE968024D2F74E71
+119C673D1DA43BF1E7945E388EC4D643AC1C17387237FC958B9713A128C91C36
+EEE43CB41592BD13837B9EC9735996A9588BAB96A43EA23021F4E8FA1AC648F2
+79B587634753132DC394E6F658D88D55F4B2A80912DCD840C0DB82DFEA436DEB
+4794ACD823CA8A15AA00D3070A0CCE970653875954E3E747A5E47E0FD55E4E9B
+FD0DC49A870A8708D87966BA66499A03D41A0DB672A1054981DA2CCE50261937
+EF449394178F13030AE0D5E7B3CB7D36842E751568F4CB6A19EB6A3E1BF76F90
+C6FFC27B544A46BFB426765D0AB00C411D4359C1F3BC9E1039E23AAD84D84C75
+E5B51D444A212A56555CAE6BD34D7CC8940E9556DDF207881B5732237828141B
+878D2ECD235FF2A8497999889CB9F6EB2456E5DE0F472B30B6B527C46EEE73EA
+5B2F14DD101D24E8EB1498F651753881436FA4F51472F0080255DF788C7CE588
+52727951ADF92052561C02E4E0F07E885BD85D8C55CE7610AADFA0BFFE83DC0F
+7CD48EC2BBA27E23808D244DA001421D7D16201C9E2AB85E981D7082841D0AE0
+35E4A51A1DF3E77ED53828DC7F801064EED128373B3423E822F7D667606B81CE
+C74B2D56BFC827AF0BDD3EC7B61DD26439BE58F47597ABC19806B2E1FDFBAD28
+8DAC8A5E423FAD6B160D4529BAAA80881D56A89D73A503E40780F000A924D8FF
+98A3ECB3689605AE62D005E916F742840D9CFB6791A4B60B935708DEA17A2D42
+61B4F690251989EEC5AAA8350E00C369371C2F7E52B66ADA716AB0336E703058
+9221C11DDD97C7F03AD4AE69B24F75392CC4D8B7054CDFE3EFF2FA852B77F278
+79469A7B8A7C48697BE9045CB3825B51FFC5972A473635DF75C702B1CCD98E53
+2ED6476AE97691E2A612947A2C515A47CA9CBDD654870BBFC4095E601E7274A1
+9748EDC4F48F6A3E3E2B825D491F7BDBFBA05E42C745E6853B7704877FDBCBDD
+03FE1969E06032A754B84534FBDD0AA8FCB9B94667072B6E77F1224F3F378EC7
+F862B3AB0D68F77558AD9F3A97D267106678F4D0122B45322912F0F6277C1D66
+712B6FA23DFEF8824E5FD45C46D705B4EA0F90C94253BB40AA115A610441B81F
+7CF6E2B73746C5ED1B081436F596DDDFC02DC7D1BF01E7906DEDA2A9F60376E0
+032C4E67A20C649840F2D18BB31457D112163C2F41AFB04F6FF749155C0E6DCF
+476E4A2AD5D1515AF4EF16864966E92491E826E45B8ED6C07E403FE43642F5A3
+EC69281CAA0B832D5209684C89E645180443B92DCAD58D77E7DE4AF80087E0C5
+B73FD1E5805EDF9488C855934E5F7AE13745B79ADF17470DD5AAD98067851A7D
+98B1FA28718638B2E21DA164CE1F0342C6A7A2CD5BBDF7A863D8AC3831846322
+97B9A356E31E2035E45EDDA03D854702A87B35148400F01145920570CC1B7CED
+B72B950FA36A96D087821176933FBBC50D0C976A75DA30EB2B719A99E4C2C63B
+6F083E4EA01E852AEB84FC84CD9766FCA90BE68B1EFDF0E6BF9F61C3F5E28854
+509E2F12CCE937F0A588651BCF70B67AFDC2134F088922616CB8153E9F6B3983
+EB6140E995D3066F300AD1B4C59CB34C8083E84D55425D72AB3BD5B2414A4880
+43086E2EDDD276A7F762706C03AEC749ADFA86B7A2D47B3BBCD07AFD87B4E778
+7AB0A97DF20029C2236793BA64185E0107D8694F217E30A9C442F0A7633AAB01
+AE71FC6563B09ACDB687408F6985ABD0F13388EE1E83884C57119DEC1A11250E
+1C9A7B0C1EEA101FCC479E2AF9E35F750E87A417BB770F611B26C07C37D8FD52
+268E6464096C8653CD557236F7F6E651980A00FB0C8C0B0B112E4C059AB9ECA3
+223CFC7DC171933045B2D76756FE0FBF876E9F25D46507DEAA67EC7EF8DDE9A9
+EAB502C3DCEC3D4FF72DA03A073F16DB3894F1F7ACADCF501F70E39A06D80AEE
+B40B2396D1781EC4B132D7E43D6AC41318EEAA9DC8E641B844E3BDB8401258B7
+9A02E07924DDE0AD5193DD91A5558089CEEFAF4D12223461476CDBE256B236AA
+092D43C986BEFDB709C018CD7AF4C000C405C0D5828A2A1268C75DACFC80FE9D
+0A9E86FAD8C036704BB64F961A3D7F8C4B6FF6C08DC72569240D9BDA6B4ADAF4
+ECF8F752840F8C621C3238C328877160536DF81F2E6E8CD644DA4F97050350C8
+C9E8FE3FE48F3B71C8F82DC1E46A76604C300B5EF94C17D882E34462A10E7833
+247C37DB46A79A54973BFC20A2EE94CDD612449599387E2CB5E87037A2361E93
+CED8B1DD5FC6BE1582F3E2E5C735ADDA82ACD81629780AA5DF16A8FE8699FB24
+558C96E3EFEFB02DCD505AE605F071FC618EDF8BC38C4745429B8F11E8981BB0
+4A119CAD18D0E555DACB42CFC2F65F1FE3EE08C269A1BB1A21E2E6C89E0F5167
+9070BBD72BF11265673DC0BFC8B41C3C3EA196731CDB58968B021DD17DB7F275
+CA4B1906300CB962709005690C829EC0BC2A08E54C70DB788EDEBD64DF9F7B32
+855A9D10233082A9F0266EA5BAE334CA0545AFC80BDB63B1C561F56DE0CE037F
+C9C91E1732DBC50E8FC061992319C26E71F8D0CAACCE390E2CB204AAFF413F96
+5740A387E0EC536EB4F226351687ED8D87B25182997D146CE02C555C590588A6
+B0098F3C37986809E4661D37158FA80F068A877C3816F7CCB7D8538DC99736D4
+C0E9EAF01ABC2EC856606973A1A4987EB12DDCA75781821CE775F55AB9A2F497
+601A62D4C2DB89C1195E100DD0EAE6CBC800B8DD690F9E24FD414117ACF050E4
+2A2B7E3D2F7B861F04CA52C54E0F675F71881DAE3BB63EA814A5A6717D52661B
+7BB1D0343FE1BFA34756BE9BC09ADD1E70FFAD669CD6F5C436861969DE8CEF42
+166C1B112C38073CA93006AD1F51A83D6911F8115D1C75C7ACBF4AE6CA77B1AF
+63B0A929E022C55FF4ED5223DC6CA729520E7D183CA62D31D8C48B1A9CF3930A
+AA4D3A8606005E4B832ACE419786368F549C432AE5B025A590D51DD0FB0F1978
+DD174C334BA623A7D9BCBDF595F15929031420FF58232D02D17AE86AB5854C11
+86856A0A455DDE556B565CCFFB578D00E0D387FE39CA3117CE5511998CF863C7
+CA9DE7F9198F696297D4EE8DECEB708BDF342DCB33354C172EC5C761D74606B0
+80FA000301C4CE68E28A2BED979506328CB2F2E329C8740A079AAA62F304862F
+C6B82958CFFD38F0FC5923422B7103367FA990852486FCD30C2BAF577F2791D8
+74CD837433FD1D02243CB99B3D7B00A2B49AC90626B771127404F56128374723
+513F262009AAC2E07A148141F44D9EE9D82B5EC1DC0FFA65C026187F5B64E620
+98482B3A9273342B2A4EDB986DA5877F14119069035FB1748491EF5F091E93DF
+1A8CED51BAF061FA6995584BB7991FE6D273188AE577051D3EF292B4ADF91E02
+9B7F04B2050AD82CD1B22EBA3BA2F42EB45654395CDEB7EF344DFFBE8D28FAB8
+16C64D438C294C5CE0421DB9B2FBA0CADE0A20806E946E96BB45970BA5E93780
+CDFBC180D2475579551C071BAACB169DB2F72EAE150690E9DA92914777840B6D
+D4397BA600D3B6C3A216C44F1EF1733FF892AB12E1AF770AB1011BDFCDF266B0
+471C23B3DB93548E988569293C563B2FA762CAC43CD65FC6A5C6C56499883BCC
+4168E70C70F6ED4CE55CEC04F63582265626A41FB2ECA3FD1AE68DFF72EB9241
+228C218D0A79FD7C468E1FB590D9C4E77F006E2E6DDA26B13F3C40203BDF9C22
+F55E710B1B8CE81E98BAE79AB794FD47362040CB37007C56926D90C390AC51B0
+B140EB716195168AABEB3123146F57AD01D66ABB13F9FF94CFFEA68D5483749F
+E2BEB40B790B4BDED81AA8697004389EBECCC943F9F704DB4A9F0BDDC9604D6F
+B8E48EA961C1F155A2E3CFF332166468D6E5FB4ADA32BE23B3FF6457D2C0C437
+927D67062C34D6918BD7B6F223598D9057906238AB05300C65EF8864073E8AC3
+56813C54717194F78C9CB7C24A719A8D851D2946AB316250FC220D1FE115462F
+424A6178A25062B840F1174BB263A1D1F400A71CD7D642D5A7C90903CF38C8AA
+61C5418C19D7DB393822DC598CAB3A8DE627C8308C40C327CAA53FBCC5D94E8E
+2A21A6197FD9D1B9137CB254B827D3D7330FBF555D83C79EE61A06597566F720
+D652D0198BD94C4A46EB53A8F7607A123E75100B1402D2791981D28AC24865A4
+83AA73063CBC2ACA71D92BB76B8FB5EDA146E7EA7C39FF4648967BC5AE516E3D
+7386CEB0313CF1D60FCC1D033351C5D7BDBE60878E009C4C535600684A9C3A97
+D396771AA958F05F8C6F39D475A05E0677488433BD8711A786493B92BF446B37
+1F84B5D146D44E06A4C5A140FD34275F6665712AE8A56697B371EB9A068D24E9
+D51D6A4D961609BB12FD8B634ABE1FBC87E64E6DA030F7CE8A65B22D128FB30C
+B308ECC1905682DFE2070CA642F847E37F4BC8F1DD2CDC245296C22F4DF5C964
+17A5E5FB248682C8187D932F272B5DF7879987C0EB3FA708B974FFCA3086E98B
+453BC4D86CD194F364342D0F51BB4492602AD6D1D0D14230204012CCB86597EB
+1501508FE32DBEEECB66EC116CC74DD0BD6AA871CBBA8FCB5E17B80C67C64D87
+8E2C03EA187D13429C63B773A2D9BBE7AC2BFD5AF8ECCDF2EA08EAABDCC1F1BA
+110303333F76043B5AE4253E378393511720A3908DA3910AB0B26E14C1A1B09C
+477B0794069EEA16A5BD191A3CFB8337F54A697702BDA7D26BFA885CBC82394E
+9368B059FB476383F297C98C8DA244BEFA398502FB5E17CAB2D40364964D6464
+F3BBDA16DC4D441F90E976BC17DC3D1F70D9702D8DC2EB04C867E27368C96E3A
+0D821A04EAB756929459A288D36604276471288A1EB3C65492A6D80F17703F50
+1A5BFC1D21E2087AF286C49F380F4A495BB059286CD86E76E49AB835C0908468
+CEB585B0F0E0C6C8E69EB20DA93921C9CCAF37CACEFFAFC197D03BAF63F8CDB7
+A66ACA97D193B8177D9967D609D39F241BBA3F7764539A0F3E097D4FA8C125A4
+C2F57C37A54FA03F25CA78F228AC6780F73751F7CF6BDA98EEE814E48225C706
+4C81098C7D065A620B5B206FCF252167BC3CA5C54398D5B17B9693D20BD3029D
+C7088DB7FF526A29AE5AB086179F9FDB9044C162620A505ED77C980AA383FD1F
+3BAFA73BA28381E9BA0E873C9061BD17112FE9221EB91D1ABE58A7F15B8A0A3E
+B63AA1BEF0B7D2C70BC1FA13FCF0239314CECC01EED8BABE4D032B43DB94E2B1
+E0AD2E0879C5F5DDF48B102ADA392B605992D7F2D6FBFC323105EFB17E312194
+63E2F0C5482C3388EB87C2F7D6C237A1D4B28CCCAA5A581E6015C3C5D70CC5B9
+CC033B35C3C4EB81B43A0C40B7DD97720F7A799209F884AAA53D38D98E3B50C0
+282450AB2DD6DAD5D08BC4A7194B62F4D37C563FA454C07311296D9F5F4F53DA
+8D1108E24239BEFF6BFA84FCDD17253BFA14681E623C8A67F5981D4D108831A4
+68188F527A545E270EDE0045C5EFF7725063CBFC5EFD5549063F609A5BB46982
+C33C7AE7188DE3175A3BCF2E3490C825F5948074891FA2BCEE77F2B10B10D54B
+18048B9181D6048C4B62AA46
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX20-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 35768
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 14 /guilsinglleft put
+dup 15 /guilsinglright put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB97A2075592DB74A1A04E90939C9E9C4A8F438BEFC93D5AC7CB71AF1026
+AF32540C0FC74F3E14C9239E2F222D5A9C4E8F92C7B91830080EAE6FC0A9450D
+8EBC5FA8F7416B2E490B12C00F9C9EC927282D9F0729E4CD3D8880E3E04E1FAE
+3B9227357235D96D627E3ACA3446F802571351CC6B1E21E2AC3DBD4F5A7BDBDA
+C371E05E4AE97BBAE69A4A1CBF84790B20E882C3A13092D14B1AFD217F6C6714
+C9F383DCC8BBF7224653928010D9C297C61993388CE6F247F438F597F62178D8
+7854EC9FA698B4855DCBF3BDE7660099E5411F1C45DC780E1147750E6811B0B8
+94A902F1E0E35278812A5D58EED4242B54BCF63A8347443849FFF1388EEADAA3
+07232C6978897511DE1DABC18874AD2E075004B780CCC943753D16BA91A8403C
+09059249DAC2F51AAA8B7234C8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 87 /W put
+dup 119 /w put
+dup 159 /section put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C19EEEF4452FFA3114E28A4B2E249BFC6ADFE8650334EF5FE0868AD
+5FEDAB9AAA1E535201E5FED871E9FF3EBBCE92D4C88514205A4A5355B94829CB
+8BC2C0DA8965855459EA5C3195D64343A85230E9D7CFCA89EF8F3F25A72867ED
+9EB848236A72EDCAD8F8860AD99CEAC01859104B9C79221081AC986FCBF59A34
+9348BBF639D549C0EA00989DE95E8876A5AFF31EB303F58007C92C6D6AB10E92
+5CF0B6045201B0B1BF2C0F014FFA685378713E2F795330A3F95EB8A3894A9DF1
+546AB3C776A9B70C3EDC0606391F67042DF663991C3F637F19FFB7511DE2A03E
+1271F16C9DEF7050A00C7132AF4B2F37B9C95AE33A938481E35A1CFAC35F6A92
+8CC70B7C527D80623C9ED4EE739B65CAD8F90AC6A3DFB90D0E5305468CDA2D27
+ED28CBF993232BB5F84CDD8364627777DC2ED5810B230BC60E59AE3C964291E3
+5DA6B4DCADA04350611C90AA29DCBD4161D973A4F1D410106E7477A72FD4CEE1
+667D58CEAC5D1311524CD26584BFC75F13769BBAFFDEE650F6E888565FBBA4EE
+2FCC346FFE64F6742774D64ACA848CE7B29D2C1D9723BCA3DDFA0ADC22730D5D
+28728C6DEAE6787BCE9A6650B821FF771F8AD47495F557BCB1E8D5579B8A14A7
+D198CB5BCF59D592FF356509185EA4027D98DB5F558BFDDE65778D7AA7332784
+DA3B3D6C76C98640CFD5CCD2C09404DD7F06B3237C1D048506751B33CB419856
+F4C58C867A067B96FE067261BFC6C4B8500D6D99A035C364E6184DACF555D44F
+2BFB7D37BCCB729FCD32A5ACCB782F2077874EF671D05EED81D01D9F36C57FCC
+8FA780B572AE548DDE1977E168EE81BB349CAFB67BB4253791D503075E87282A
+52B920859FEEA05076F55ED380B69B4522009EE8BA8844EFF8C057C22C16F58B
+8554679E050F3ABCB8622C13F0B61E06E75BEF3F6A051122862C1C4783FBBA21
+ABACBE32CADAE1B08D2F6ED4C9CABD7A87D4BB26832FB9F1226A17A5F9A3BECA
+7E46DE4EA03C3C8EFCCFFA7B8AC8556D594DEABA2A3D899B63D9BE5D9E22CEAF
+C2A8F93649D1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (Mtrauermus.dvi)
+@start /Fa 144[67 5[37 1[67 2[75 2[65 31[102 65[{}6 119.552
+/CMBX12 rf /Fb 143[49 112[{}1 83.022 /CMBXTI10 rf /Fc
+133[61 5[53 1[57 2[69 13[67 9[142 9[131 11[104 18[38
+46[{}9 119.552 /CMBX10 rf /Fd 138[110 1[78 82 4[165 1[105
+1[55 110 2[91 1[88 1[96 10[150 1[138 6[188 1[155 18[99
+99 1[99 99 2[99 7[77 77 40[{}21 172.188 /CMBX10 rf /Fe
+199[36 56[{}1 66.4176 /CMTI8 rf /Ff 54[133 57[133 5[133
+54[66 6[106 1[106 1[106 7[0 0 50 50 5[40 1[40 1[40 40[0
+1[0 7[{}16 132.835 /TeXMUSIX16-Regular rf /Fg 164[32
+91[{}1 83.022 /CMMI10 rf /Fh 139[32 33 33 2[42 46 1[23
+2[23 3[37 46 37 46 42 10[62 2[46 3[65 1[76 3[30 2[54
+1[63 60 59 24[32 32 40[{}23 83.022 /CMR10 rf /Fi 240[0
+0 14[{}2 166.044 /TeXMUSIX20-Regular rf /Fj 96[0 39[0
+31[0 87[{}3 166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 483 4668 3861 4 v 483 4701 V 483
+4734 V 483 4767 V 483 4800 V 483 4272 V 483 4306 V 483
+4339 V 483 4372 V 483 4405 V 450 3744 a Fj(\237)p 483
+3877 V 483 3910 V 483 3944 V 483 3977 V 483 4010 V 483
+3482 V 483 3515 V 483 3548 V 483 3582 V 483 3615 V 483
+3087 V 483 3120 V 483 3153 V 483 3186 V 483 3220 V 483
+2692 V 483 2725 V 483 2758 V 483 2791 V 483 2824 V 483
+2296 V 483 2330 V 483 2363 V 483 2396 V 483 2429 V 483
+1901 V 483 1934 V 483 1968 V 483 2001 V 483 2034 V -2371
+x(\237)p 483 1506 V 483 1539 V 483 1572 V 483 1606 V
+483 1639 V 483 1111 V 483 1144 V 483 1177 V 483 1210
+V 483 1244 V 483 4801 4 3692 v 2091 x Fi(\016)p 450 4815
+17 1352 v 1351 x(\017)450 2278 y(\016)p 450 3235 17 957
+v 957 x(\017)450 1093 y(\016)p 450 2049 V 956 x(\017)-195
+4761 y Fh(Violoncello)-91 4366 y(Viola)-117 3773 y(Violini)-410
+3183 y(Corno)27 b(I)r(I)h(in)f(Do)h(\(basso\))-277 2787
+y(Corno)e(I)i(in)g(Mi)f Fg([)-430 2390 y Fh(Corno)f(di)i(Bassetto)f(in)
+h(F)-7 b(a)-307 1997 y(Clarinetto)27 b(in)h(Si)f Fg([)-85
+1402 y Fh(Ob)r(oi)483 4699 y Ff(I)483 4337 y(K)483 3975
+y(G)483 3580 y(G)483 3185 y(G)513 3301 y Fe(8)483 2790
+y Ff(G)483 2328 y(I)483 1999 y(G)483 1604 y(G)483 1209
+y(G)593 4765 y(2)626 4716 y(2)659 4782 y(2)593 4354 y(2)626
+4304 y(2)659 4370 y(2)593 3942 y(2)626 3892 y(2)659 3959
+y(2)593 3547 y(2)626 3497 y(2)659 3563 y(2)593 2394 y(2)626
+2345 y(2)593 1966 y(2)593 1571 y(2)626 1521 y(2)659 1587
+y(2)593 1176 y(2)626 1126 y(2)659 1192 y(2)702 4732 y(R)702
+4337 y(R)702 3942 y(R)702 3547 y(R)702 3152 y(R)702 2756
+y(R)702 2361 y(R)702 1966 y(R)702 1571 y(R)702 1176 y(R)888
+174 y Fd(Mauerisc)-6 b(he)66 b(T)-17 b(rauerm)-6 b(usik)1381
+361 y(KV)66 b(477)g(\(1785\))3538 594 y Fc(W.A.)46 b(Mozart)794
+1704 y Fb(p)871 1687 y Fj(W)239 b(w)834 1528 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (380.7998pt) GDAR N
+/S0dir 1 N /S0dash 0 N /S0adj 0 N end
+ 834 1528
+a 811 1554 a Ff(\011)562 976 y Fa(Adagio)794 1308 y Fb(p)871
+1292 y Fj(W)g(w)834 1099 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (17.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (428.39978pt) GDAR
+N /S1dir 1 N /S1dash 0 N /S1adj 0 N end
+ 834 1099 a 811 1126 a Ff(\011)p
+1177 4801 4 3692 v 940 4699 a(=)940 4304 y(=)940 3909
+y(=)940 3514 y(=)940 3118 y(=)940 2723 y(=)940 2328 y(=)940
+1933 y(=)1234 1571 y
+ slur@Dict begin (2.0pt) GD S0hgt (8.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1234 1571 a 1234 1571 a
+ end
+ 1234 1571
+a -60 w Ff(6)p 1214 1687 4 117 v 1 w(\007)1285 1637 y(>)1234
+1142 y
+ slur@Dict begin (2.0pt) GD S1hgt (12.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1234 1142 a 1234 1142 a
+ end
+ 1234 1142 a 1214 1258
+4 117 v -19 w Ff(\007)1285 1242 y(>)1355 1571 y(<)1355
+1176 y(<)p 1450 4801 4 3692 v 1315 4699 a(=)1315 4304
+y(=)1315 3909 y(=)1315 3514 y(=)1315 3118 y(=)1315 2723
+y(=)1315 2328 y(=)1315 1933 y(=)1459 3284 y Fb(p)1535
+3268 y Fj(W)g(w)1475 3118 y Ff(\011)1459 2889 y Fb(p)1535
+2873 y Fj(W)g(w)1475 2723 y Ff(\011)1459 2527 y Fb(p)1535
+2511 y Fj(W)g(w)1475 2361 y Ff(\011)p 1882 4801 V 1667
+4699 a(=)1667 4304 y(=)1667 3909 y(=)1667 3514 y(=)1667
+1933 y(=)1667 1538 y(=)1667 1142 y(=)p 1907 3251 4 117
+v 1908 3135 a(\007)1978 3218 y(>)p 1907 2856 V 1908 2740
+a(\007)1978 2823 y(>)p 1946 2428 V 1908 2428 a(\007)70
+b(>)2048 3152 y(<)2048 2756 y(<)2048 2361 y(<)p 2143
+4801 4 3692 v 2014 4699 a(=)2014 4304 y(=)2014 3909 y(=)2014
+3514 y(=)2014 1933 y(=)2014 1538 y(=)2014 1142 y(=)2152
+3284 y Fb(p)2228 3268 y Fj(W)240 b(w)2169 3069 y Ff(\011)2152
+2889 y Fb(p)2228 2873 y Fj(W)g(w)2169 2740 y Ff(\011)2152
+2527 y Fb(p)2228 2511 y Fj(W)g(w)2169 2394 y Ff(\011)2152
+2099 y Fb(p)2228 2082 y Fj(W)g(w)2212 1928 y
+ slur@Dict begin /S1alt (333.19983pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(12.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 0 N end
+ 2212 1928
+a 2169 1949 a Ff(\011)2152 1704 y Fb(p)2228 1687 y Fj(W)g(w)2192
+1494 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (17.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (380.7998pt) GDAR N
+/S1dir 1 N /S1dash 0 N /S1adj 0 N end
+ 2192 1494 a 2169 1521 a Ff(\011)2152 1308 y Fb(p)2228
+1292 y Fj(W)g(w)2192 1066 y
+ slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (21.20001pt) GD N /S2brk
+S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (428.39978pt) GDAR
+N /S2dir 1 N /S2dash 0 N /S2adj 0 N end
+ 2192 1066 a 2169 1093 a Ff(\011)p
+2575 4801 4 3692 v 2361 4699 a(=)2361 4304 y(=)2361 3909
+y(=)2361 3514 y(=)p 2601 3234 4 117 v 2602 3118 a(\007)2671
+3218 y(>)p 2601 2839 V 2602 2723 a(\007)2671 2823 y(>)p
+2639 2444 V 2601 2444 a(\007)2671 2428 y(>)2606 2032
+y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+ 2606 2032 a 2601 2065 4 117 v 2602 1949 a Ff(\007)2671
+2032 y(>)2621 1538 y
+ slur@Dict begin (2.0pt) GD S1hgt (12.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2621 1538 a 2621 1538 a
+ end
+ 2621 1538
+a 2601 1654 4 117 v -19 w Ff(\007)2671 1637 y(>)2621
+1109 y
+ slur@Dict begin (2.0pt) GD S2hgt (16.0pt) GD 1.6 (2.0pt) GD M S2dir
+M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
+S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2621 1109 a 2621 1109 a
+ end
+ 2621 1109 a 2601 1225
+4 117 v -19 w Ff(\007)2671 1242 y(>)2741 3152 y(<)2741
+2756 y(<)2741 2361 y(<)2741 1966 y(<)2741 1571 y(<)2741
+1176 y(<)p 2836 4801 4 3692 v 2707 4699 a(=)2707 4304
+y(=)2707 3909 y(=)2707 3514 y(=)2845 3284 y Fb(p)2922
+3268 y Fj(W)f(w)2862 3135 y Ff(\011)2845 2889 y Fb(p)2922
+2873 y Fj(W)g(w)2862 2740 y Ff(\011)2845 2527 y Fb(p)2922
+2511 y Fj(W)g(w)2862 2428 y Ff(\011)2845 2099 y Fb(p)2922
+2082 y Fj(W)g(w)2905 2004 y
+ slur@Dict begin /S-1alt (333.19983pt) GDAR N CP /T0y1 ED /T0x1 ED
+/T0hgt (3.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
+ 2905 2004 a 2862 1983 a Ff(\011)2845
+1704 y Fb(p)2922 1687 y Fj(W)g(w)2885 1528 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (13.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (380.7998pt) GDAR N
+/S1dir 1 N /S1dash 0 N /S1adj 0 N end
+ 2885 1528
+a 2862 1554 a Ff(\011)2845 1308 y Fb(p)2922 1292 y Fj(W)g(w)2885
+1099 y
+ slur@Dict begin CP /S2y1 ED /S2x1 ED /S2hgt (17.20001pt) GD N /S2brk
+S2hgt (2.0pt) GD 1 1 M M A N /S2lift 0 N /S2alt (428.39978pt) GDAR
+N /S2dir 1 N /S2dash 0 N /S2adj 0 N end
+ 2885 1099 a 2862 1126 a Ff(\011)p 3268 4801 4
+3692 v 3054 4699 a(=)3054 4304 y(=)3054 3909 y(=)3054
+3514 y(=)3305 3613 y(?)3381 3590 y
+ slur@Dict begin CP /S3y1 ED /S3x1 ED /S3hgt (2.79999pt) GD N /S3brk
+S3hgt (2.0pt) GD 1 -1 M M A N /S3lift 0 N /S3alt (142.79993pt) GDAR
+N /S3dir -1 N /S3dash 0 N /S3adj 0 N end
+ 3381 3590 a 3341 3680
+a Fb(p)p 3396 3563 4 108 v 3358 3563 a Ff(\007)p 3448
+3580 4 120 v 3410 3580 a(\007)3460 3597 y(4)3396 3455
+y(\311)3407 3456 y(\311)p 3537 3597 4 127 v 3499 3597
+a(\007)p 3590 3580 4 75 v 3552 3580 a(\007)p 3642 3630
+4 120 v 3604 3630 a(\007)p 3695 3613 4 98 v 3657 3613
+a(\007)3752 3696 y
+ slur@Dict begin (2.0pt) GD S3hgt (-10.0pt) GD 1.6 (2.0pt) GD M S3dir
+M A S3x1 S3y1 CP (3.20001pt) GDAR S3dir M SB 1 S3dir M 0.17 40 S3dash
+S3adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3752 3696 a 3752 3696 a
+ end
+ 3752 3696
+a 3693 3663 a Ff(6)3591 3505 y(\311)3640 3510 y(\311)p
+3728 3648 49 4 v 3771 3663 4 140 v 3733 3663 a(\007)p
+3305 3234 4 117 v 3306 3118 a(\007)3410 3218 y(>)3552
+3152 y(<)p 3343 2823 V 3305 2823 a(\007)105 b(>)3552
+2756 y(<)p 3301 2462 49 4 v 3344 2477 4 117 v 3306 2477
+a(\007)3410 2428 y(>)3552 2361 y(<)3310 2032 y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+ 3310 2032
+a 3343 1983 4 117 v 3305 1983 a Ff(\007)3410 2032 y(>)3552
+1966 y(<)3325 1571 y
+ slur@Dict begin (2.0pt) GD S1hgt (8.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 0.7 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3325 1571 a 3325 1571 a
+ end
+ 3325 1571
+a -60 w Ff(6)p 3305 1687 4 117 v 1 w(\007)3410 1637 y(>)3552
+1571 y(<)3325 1142 y
+ slur@Dict begin (2.0pt) GD S2hgt (12.0pt) GD 1.6 (2.0pt) GD M S2dir
+M A S2x1 S2y1 CP (3.20001pt) GDAR S2dir M SB 0.7 S2dir M 0.17 40 S2dash
+S2adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3325 1142 a 3325 1142 a
+ end
+ 3325 1142
+a 3305 1258 4 117 v -19 w Ff(\007)3410 1242 y(>)3552
+1176 y(<)p 3784 4801 4 3692 v 3528 4699 a(=)3528 4304
+y(=)3528 3909 y(=)3794 4865 y Fb(p)3810 4749 y Ff(\011)3794
+4470 y Fb(p)3810 4337 y Ff(\011)3794 4091 y Fb(p)3810
+4008 y Ff(\011)3825 3487 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (15.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (142.79993pt) GDAR
+N /S0dir 1 N /S0dash 0 N /S0adj 0 N end
+ 3825 3487 a 3806 3648 49 4
+v 3849 3646 4 142 v 3811 3646 a Ff(\007)p 3901 3613 4
+114 v 3863 3613 a(\007)p 3953 3563 4 69 v 3915 3563 a(\007)3849
+3505 y(\211)3875 3503 y(\211)p 4005 3580 4 91 v 3967
+3580 a(\007)4012 3597 y(4)p 4051 3671 4 75 v(\007)4095
+3563 y(6)p 4135 3658 4 96 v 1 w(\007)p 4187 3650 4 121
+v 4188 3530 a(\007)4291 3447 y
+ slur@Dict begin (2.0pt) GD S0hgt (20.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 4291 3447 a 4291 3447
+a
+ end
+ 4291 3447 a 4231 3480 a Ff(4)4051 3671 y(\217)4142
+3657 y(\217)p 4271 3637 4 158 v 4272 3480 a(\007)3794
+1704 y Fb(p)3870 1687 y Fj(W)239 b(w)3853 1499 y
+ slur@Dict begin /S1alt (380.7998pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(16.6pt) GD N /T0dir 1 N /T0dash 0 N /T0adj 0 N end
+ 3853
+1499 a 3794 1704 a Fb(p)3810 1521 y Ff(\011)3794 1308
+y Fb(p)3870 1292 y Fj(W)g(w)3853 1137 y
+ slur@Dict begin /S1alt (428.39978pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(12.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
+ 3853 1137 a 3794
+1308 a Fb(p)3810 1159 y Ff(\011)p 4324 4801 4 3692 v
+4340 4801 V 4056 3118 a(=)4056 2723 y(=)4056 2328 y(=)4056
+1933 y(=)4327 4799 y
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 DP CP P S 0.7 T0dir
+M 0.14 30 T0dash 40 T0adj DS end
+ 4327 4799 a 4327 4799 a
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 DP CP P S 0.7 T1dir
+M 0.14 30 T1dash 40 T1adj DS end
+ 4327 4799
+a 4344 4799 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 15 N end
+ 4344 4799 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/notepara.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/notepara.eps
index 27b10b451ae..a69a1dfed89 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/notepara.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/notepara.eps
@@ -1,557 +1,557 @@
-%% LaTeX2e file `eps/notepara.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: notepara.dvi
-%%CreationDate: Wed Jan 21 14:01:16 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 686 510 795
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMBX8
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE notepara.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1401
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: CMBX8
-%!PS-AdobeFont-1.1: CMBX8 1.0
-%%CreationDate: 1991 Aug 20 16:36:07
-% 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 (CMBX8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX8 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 52 /four put
-readonly def
-/FontBBox{-59 -250 1235 750}readonly def
-/UniqueID 5000766 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
-7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
-EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
-7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
-AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
-E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
-4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
-5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
-611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
-D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
-EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
-35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
-ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
-7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
-C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
-B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
-53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
-E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
-3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
-9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C156CEFB
-BEC5F726D4263EBD641C785872BFB7E8711AA2C28499589449C6DE4D2F2A9CC8
-2ED25C6DD5D5C2A69FC999E0AA19DB8B70754FCED303B82A23FF9F6B8FA3FEDE
-68B228824F4E7A67B6A8E14A7C600D1ED773F57854570F7CE0A5B43253837D1B
-F0527133F629F149A87BACFFCAFF2143F0E1899D2A7A435EA5577325FC29F975
-A04CFFFDA2DCDF887BEA50F5800C3C821388EF3E3189067FE0541BE609E85F61
-BD99A3FE24F2FBC72E6909904E6C370413B620AA61E61C83D7217EF9EB11917E
-31C04E11FA84A5AB62BC40CE511742D5AC2455E6EDEFE9422E09E08D02A7ABE8
-AC73721DA14CEA5CC868BC0A4F9283E5AD881986328C4752810085F7D7087657
-AA93003688711EEFD60A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%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 49 /one put
-dup 50 /two put
-dup 52 /four put
-dup 56 /eight put
-dup 97 /a put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 114 /r put
-dup 115 /s put
-dup 117 /u put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-931DADF03DA48AFB8561FC2E710087251BFBA7E06DE0CCA1319B0AF5D42C06F9
-BAF3AD96F8BCCE747C6D166465A9E2071E750A972AB4411C172079EF21F73ABC
-121D8DB43921FF40006597D8A756B3A7D086CD86CDC90F418D86E8B704D37E19
-D3CE1BF599FA98E9FC6346773531445FA23A4A39E98895476B28F8B4B968EBCA
-BB8ADFBD84B70334512ED0D628B75223D15695B6ED06E7FB334F4F2A5BEB4C09
-E4D6B6C4C7A6F71524A3FC7E01BA3CCCB302F2F1DEB601902B1AF844710A6C14
-6FDBA289EF710F595D8FE187151278F32ABEF9E7771C23CDC5B31FA66CB42435
-8EAC006A594AFCB839778FD0925E2DAABE77592864080F153BDB9F2F8F684A58
-0EE7736B5296A52096DC94CC7FB0A6F5A594B9E7BED1D13E534C46C3FA4C157F
-5B8C568B6005F5989022DC463B753D64CA47A71087764A54D975AB039A10C537
-A837010ABA63BDDB5EE2708434A9F0CBB97C471EBF18942E5AA2C99D424B8AB1
-F5A341530C88F6424C5E3C86400929C0C0FC2CC452BD5905A58D195FFA8FE00C
-E40B0335F65B6A5C256FAD854857CDE7124AB84B35FAFC53F3047E5DDC31CB8B
-EE484ACEA3F4C904C19B7456A83B17083469EE367CC1FB28CA84ACF93D541634
-44C8BE9D8D9D39421C6EC5DFA818ED4A5CB2A662E847B43B32B139566B94BD12
-05B19FFA8EA1F2021F5AA2FBC1D6798E0B0426A3FC071E413DDEC857FC62C68F
-040BF71AE8A31F9AC7B1ACC07387DA9274CAD79CC3EA95E41BF7BD8FE716FFB8
-9CDA6071346779A6F6791DE39BA0D03259656520B696F8D2B0AA6A4DF023E5C8
-B5C3632E81D8CE77B483ED98F94CBB55DCAE95F46111C5DA5BAC4524869AF857
-BD69AA8FAFEEB356BD3BB7FA6207CA9EA68E8B566BDCC3105C0525CFF084A68A
-6EC4773F381184C4DD0C4C1C1B247FA5EF24943C791023C4007A99382439E56E
-75E12EF5DB265D0F4C39D18E1965E835A0E2656E97DCB873E23378381DB43E12
-0BED4002DC6EA0772EB1DD3F2E3441B2BFF0EAFCCD1DA346D91097461A2BB6C8
-CC9B943EAC8B454D6465F744FE6E8E3419F44A42297143518677ADCBAB2020F4
-BB2AB826389931CCFF6288B876290F5AB6B80DE8D2810C956B2F8AD5CB5B59DA
-69559B43DDBF1852A44FE0944726B6CB16F7D15982E4EA7CA6A40F90561098C7
-45832EF0B65BE57E68342B9B930DAAF6C6F2E16B646865337E9A630879C80EB0
-DC653D2D57C6F233C434BF267B2B9E6B5DEBF6FBC4CE6908B4B14DC03B19A4EA
-F57727F5E3D3E68FF2D6A2E782399614C89229B733A9049FD4B5A939242ED364
-C921AB44C520EE5AC25EAAB24395D1628D6A32D33A5228FBF728EFCC2B10A877
-0B078E8EAF28529EF3D13B081A08EE308CCF2C3A368B10809A4A06AE42F515E9
-8C14FEDE0725594F130A720123FE2937F6844C89CBDF5BAF3C85698DB4374BED
-EE84E17C13F864FCF9CC19C674BB69C987BB23353515379B1735BCC879DF2F82
-D75C47DCD3E5839552DBAC07932B2BB21528383DB816781ECD0F7F02A33ADC09
-3DF6DB026E364B23189826572A1D10DD133B19186C58D654B9F0CF27DAAC5AA2
-DCEF3B8CC2041AEB058D32C359AC4CF8F3732DEE2F291249A6B0B4208C4D8D47
-810B38AE89C12F6B5EC84FF7F05D980645AA019CE2108A8530697F11090B8967
-E7585CD4A1BC755B5A9CA37DE10035C5AA652A3D0BBF9D004A9590046465EFC1
-649CE475E75295F68C51FF714CB94B86047A96047ADDD4A101B9A3FC0BE13FCF
-D3E087D76827BD8512E4A8174F765278FA06930AB5DEE343F48E267AB4E0E402
-E0FF08646D2B9285A8368DFCBF84AA9105DDAC1EC0BCDF9345DF7117EA3D220A
-E115AD1A38DE90966287412A1255F63BB9F543129BFF876325225B35B8BB1A91
-94A636242BFE712BD17AB625EE5E75E7ECDB60C202370AB57FFE4BCD6386BA6B
-48CF53B63DAFC1903DDBCF9F904C5384830E535233A2AD43A5CC6CE3620554D4
-29E27FF49FA904AA3F9B3A74FD69FAF8651429F612B5026F074C488C087C37D6
-A13B1CB979A7B1E9B78AE0D9BF564E5CD136344FB30E2CD1B0B9A075B5539EDB
-F9527B68C0C7BD10ADE45B9603C72A46C109947130AB83B04611C93A782F9E18
-A26C260E899A26A959C2EC33D4CA63389F72EB92A7A7D79F8A88964D31E4D3D3
-83F6F5D559DBCFA38963D94C921C9AA199CA4A21C5211F5C3F8942DDEDDA0DD7
-3B81EDA6C25AEDAE94BDED2723846A47CB392C73329A30C052B1F90F6F43FFE5
-013A03A1F6FAE13AC979A7993ABCD026DA817A386E9889B50F79119F4308D2EA
-9954A081C413E6F3F2FA3447BC3BCBCF50C755870DB822398145946CA5475C25
-A3FCB52342E83E4F8CCFDC02F4D75A86EC4F2AB7E8F87B8C950144DE07FA3EED
-B75AB1DC41481B7F2FCB97347C1721EAC01F2C7CC400B475BC87DC7D64DF4B17
-C303D4312632D4BB4AABFD9179AB16791728D3AB1CDE6FEF7C380C3898E7D578
-CEB86B7D630E4957DC8AA87326DB1E63F635578B6D05F1B591AAB2F48A98A96D
-E3678A273CA399212DF8479170AB193D532C981BC2C0065406EBF9510622695A
-5AD5FA714F5460AFD1DAB60B259A14CFED89E07F93A2ABD73DAF105E6EA40EF2
-FA26DD06D12D3E79DD576A547D1086CB7CAD54D5C1B0EAEC7634371A21F59B4C
-E102154C27BEC20161ED48F6856307ACBB4AD4BB73006063D9202702FF40E27E
-024914DB6FAF40FA75D333AD64329273B421DD80023B81EC9EC49E4B69AE8F02
-5AD25EACAD3CE9BB0C4092B9DF7D14DAFD64800965F96E7883D687671046C9DE
-34354BB17DFB057E826DE33EB956DD385551166953AF9D1E92EBC723A72D0BFA
-D40119D487A2EF2E56045156D83C08606CC8352B39DAB2E00EE284DA0B5B6E65
-5F21DFC5B21763910DE200E657A14EACD5FB8F3BE0A45506C817BC569213F7A5
-21411219E7A2B912BCEABBDCDAA94F9C1C4A3F0226FF767AE605AA07E7C620C5
-828ABDF96CBB706708BEF5D930F69F875A0EFD2AC871887D1DA37892AF5F7AB8
-E8411693DFC6D2D31B43B8E2410A1C40E714B8C1B7F3F14B052F68BA4764184E
-3D1A2C81636D1BCBE4AF2A3B7488BD380FAD3A9876D7D67FD60C293387B170EE
-3E2DBDB932FD79D2DC8B85C729686D177906904E0D0F659CA08FE636723E3BB5
-8F10CCFBD52AF60BF25D7324093C0BEC0CE294397A310564DBFF434D2B0AE22D
-9DE3970FA94D64CDD9943891E22A753C37A2884120E3D5DB51119E12C7E13DD0
-C53EF99C0324BA723C5AC8CF8C7BD844FD6F9063440DD6FABEB84FF63B5B56B7
-4BE6F85D3A8AA269244582CF70AE86C32930B06AF5F89FF86E1EABF1729283AB
-6D8A3475E8A67864E7018246CA6EBC8EE7D9FDABE64997BF6415623ACBB25038
-8B00F62E4EFE58ADB74C9402C8C816037ECF81F2440E104585D650E015770E4F
-1DA92E4CBEB159D53C0E3EA022EAEC28C96108574FB4C4375BAF692B74692A2E
-DCB4360D2096EB3468E3F2378E9AB126C1C27B8AD0EABEB5D1EC9C46C722FADC
-199D9A63ACFA638A1071818C87C5E114E3319605184203C4B584AFD2BF52F266
-D974DF623AA217E29E25F00CBB289DE6B18BA64B3BFB53F7D5E5EC5E7CF25013
-4B48AD817160D423BA04EB1A48036321375AF798065944F1FE9C5885DD9AE6AA
-015AF8B71667C745E208D31354055D25C99C13C06F722AEA024B8C59F326A364
-AB41C6E80972DDEE9F5BBFDECE293795EA57F7C78FB22ED10E6B44E4E3BC658F
-F09981D89B6F83353615140EA3C21311BF26F931473FE18C8059E45C92571760
-8C7A651C690F30972738478046CB54D7AF40155DD7E88C5B43733BD183F177F5
-F86E7B19679B39824D715DFBFDEADDD69684E89610C8D38F46CDF64E2F15D6E8
-636A264BBE9F8C7B05835AEA7D5CA84D68
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 1 /acute put
-dup 5 /hungarumlaut put
-dup 7 /caron put
-dup 8 /breve put
-dup 45 /hyphen put
-dup 46 /period put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 54 /six put
-dup 71 /G put
-dup 83 /S put
-dup 90 /Z put
-dup 92 /backslash put
-dup 94 /asciicircum put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF864B07EA753FAEF544036D0E4433178BC2473AC08304F23AF879AA97
-4371748BD7282E05ABDDF507A2FB03D483E2822B9D8D558D952E5251DAB477F3
-B374BDA2B19A0DF5BBFC08FCA1B17E2D3ECD5D8E2081ECFDBBD22BAC44ED6A55
-4CDCEE7DE0AD678686D00B41846A99AC6C1A9E4079CEF2D1CE39CE4BCE35937B
-A34C365308FD18F5C85A19F6D1D8178D57752ADF73E63959A21B810450E175DE
-223F6C1CCE8754DB2005C895C697D48418F38F7F93BC5B9D987B94B7276855C2
-7B5B8FACBC2EE0C2EFB9D3565FB5D3C4956F77F37CB5B17FB3A58837DF9D557C
-EBF08CF518B79CC4B73C72932D38061390BE88D968E1FCBC3D5AF7422559588A
-84239983A1D959ED1C8089E248D0A790AF533D08D7E5CFDC6198BEBCF23B5D37
-7CEA09C7AF33C85386194985D1AB3C01FAC93E5B52E676261D0081048670817F
-A6CFA36B4E31ED5C87A1085A93B6CE917901C4BFA839F42813EA963C6F2DFC99
-9B1860FEE3E50FE253462A68A28CAFC810C17C8FF9C43DF99FF217CE366F7921
-642BF446F03089246BBA2DDBEDD7B7D7A14DAC15E2142018985CD16F50F02F8E
-BCCF08C591AFF159FD72789EBA34CC60111CA348761F3EC226839CDB2F41799D
-E1EF2E05BD94C2C92676F97549E0D1E027F0430863056B1DAAD8280BF0F6B975
-A993C55CB9CCF6D3711A30E5C87D0A389FC010BD4E540B97FF808093254F967C
-6B469C206876F6BCC50EDC121CA1ABAB5CF489BFB183168B310A10C5956ACEA6
-8C717D8E7399168B8B2F79B4FEDF698C4390A94DA11C270190FAB3A76B5F1785
-2FFACD48660B2A88CFE66A281B5A39DDA3537B3F1C9CD317126C621BF5E891E8
-E97D7EB7E08BFA5CA8C5EE7859AF3D5ED7365931E1120B2FE9BBC070E7663641
-14B518C29A5B09F061EE12517DD4B458016E809924F197AB62C322264ED48B8A
-C84CC960B07E05316B3AEF41CED1A74A3E4B2ED9B0AAF5D80C7C140EE33A2144
-18635F602943AA34A9D6424DF3EA621BCF928DB53ACEEF4F8B858403372BBBA8
-DEEAE3C2DD16A80CF1E0E1888351A35ED150907F7830D8096621E81A3A8C9050
-260EB2F0D4859007B201232CC0487D8F26169B1DEC638F494A8B2D288597BDD3
-E3B0054CE0B031AF562516D90E58AC1C6196AA0A7830DB3DA46E21F9F2AA7A52
-CAF209C88871660A7459BB8AF2ED694CF8552A900DAB2E2704F5C4028DB9A350
-9F974F8B31E8F40F45BEA3EC2024D06B26E183C91789E58C3E2CC8D34B01A3A6
-2ECBDD44988BF5AB4EC2E06455B3676BD9D3E71286CA0D8EDC5F3410027553E7
-E8164B360F48B38F4E108243BE29FFCC03054EFB4BFC5B986A5450DBA4C08A85
-481B9F19407C8977346AACBDE061B1BD73D8868DA671693669F540C6B216B5F4
-B58219B7C6E8BB31F12BD603F7DE8BE4C379EE8F3171D867C0080CCD9D52B35B
-D25845085308BA5E02B3B99F1EEA058FDED18F4229E8154DD6BD2BC1DD6B38DE
-FC47FE05933FCFE49B4EDB4764B492C9152B63072A5D560A020507973D489E06
-40B3D904E2D70E5CB3CB93B2358F193917A812D009BA0489DCD3AC3A74195604
-EE2B7E3376006F093FC66A9B6844E3537F36DB37928C885156A6658DB1AF3A89
-66762ECE6245477C29F206C3A78EF5FA5B21E76E955D58E98D17AD757BF1C5A4
-7FF76CA15550BC7D9C1D30505FCF71B2EC1390EEB452CBE4E23E6E85ADDC6913
-066E427633EAD58B01A372F2330ADF112037BDE3F252E4C28F2F8E4EE0C2B5DE
-BFE5FD6B105121A531D33792145ECA7EF086ABFCEDC3F42F4101ACEE411E3FBB
-76A7DB5FD1625756FA944F985B8638C8915CE9B7FBF38E79705C98254C8E5E48
-6CE713566F9AD450E5AB3D9B77F24E7C6BD93D479C538697049979512992B012
-50459D0BCA0C2F5F083EF81EBA856F634E27BB52EE46F45B90480F2E059D7F6B
-9AD02CD47259C9B3C3606C60BDA46510A99348BF7E5FE040F5344139288425A6
-63B85700F53C3263521FE6A6B18B495B1DA088CD63517621ECFA2AE24E8F8D01
-3700FC395959F11C5301A2FBB7C725F876563C37C72383DED13135D0315D2386
-98DE9BB4275021C8404077E62281C88D9A785B2007F3CF9034984294EB8A2A59
-A9D734A31F14D9ED69A8BD2D6E50BC5D2DDC74CA655F2537EB96BE26E03497C1
-387C941F1A80FB11B43FA504AFC25F287449A67C02CEDDB8A7A9276D4ECDA5D0
-0D9B852062B99DD9E4C4FBF0B67C45AC1CFD60CAF47D82BF13242FF8D2769C4A
-D8357712E51E20ED6E44B92322812616560B893197F15EF1EEAC3D187CB3F46F
-1ACE9C2B8568CB73E22F51C526090EDFDA3ADE57A04484769BBBE0D209A18687
-6B99DAF77F2705AD06AFE76ED2BD7216E5FAEEF998528C8258EDC2CC73D67941
-C0E171C90F58E2762A05D08814E04DE81E573823F7242B01B3373B986A3AE3D9
-D423F19770480A4C575D4D869CE00E73C30DED74F77C6A3BBFE8BF0E2B033039
-BBCD3E4C0FDD65DC607DCF854482A8747F6F84ABE5F2413E337087F73600E478
-CF31B15DD7C5B7CACCF280A7E7A9580B906594FE555927C74B2380EEEE63AFAF
-557259DFD63D5565B4ADA6DB7B82BAE105449E378FE470821279ECBF546CF3F1
-4F6735C351E4E2662E3911083AB8911B94736C09550BA6C296A0A3F45C8D3FB4
-B5C75FA8F5EF6B844FEAE66950D20FE3AD5A48E788309B18F63C9FB48F14E34D
-AD5A97D8934E4F2CB32DDE342B13B3413B0C3671E35D5D6AC966736238920875
-C32B47DC2949CEC9B5EDA1F3C3055F86A01E426AFF61AB1D901B706935A7E998
-40DCCFD6DB7391D30CF70C8D21B63594441D4CDD612F5EB6531B508A42EB3C15
-BDF47EDBE1AB1CB1B0A2BACF7C717B892A1A319D10AE93C181E6CE7E5E0A2F7F
-1C18376BF09A20AB14357010CF4E0BBF37169638D912227BD43F7664B67891AD
-D239B642ED9E429864EAD8389F3BF0C664901281F5B5063CCF4BA454B01DCE3C
-7766ED25E5A2F9776000234B80C69AC24FEC99DE1F7CA1F61DDECF08BB5392C8
-D2641FDF1374CDD305697033BA7BF257D4A9E5369EC10CDD9ED0B5E3AE64B7A6
-78F8A10536CF41624C3B49BF3ADB28A9165328D41EFEADEC8CCE2A151A345DE1
-EE905CFE0A5DE0EFB06C960B18796851BDB442017149151ADC241B5086C3D7C2
-490B8B4529805E0E9BDCE58F02C1C561F979C38F9A834224D3E81364306707D6
-A9493015CBAE7206ED821303C04A33D56F87E84BB27EAD7DBA151010DAB4A862
-1C5A22384A564DA57C9E5A3F1FC285C5EB881837179CFB46994074BBBF60534E
-5AF073F7EC4FFB1B262E71BC1799B5A7E6DEDB641BD0EE2AE975849488EE4F1F
-BE17A92B3E3D40E6B62172CF2D3D8F86D6ABE9CDDAD0935F8BCEC0282401306F
-B2F6D421A1D1770F04F4C52A7F53AA59A25E885E1A77CAC4748DC33B7ED309A5
-E760F414600E215176FC799AA975E3A6ECC4308C0D786E282082649DEA14D1EE
-B3F57C135EBC72DEF2427D671ACBD63A0146415ADB136D8B9872D63B237330CF
-464A504EAD372AC6A0265D4995D79ECF5BB3BCF28499ACED6B5DF2DA940EA1E2
-4719EB699519EF11305A3671C67FAF4764D1B98D2B53E97D17955798B38C1403
-64E561762A86F962A968A22667DCED2DA7546D8793B1CB9777818E0F0BA5C183
-C0F44C2444DF548408A6BCF2D21E8D6238395DC39915CF1C1E8307A3D5C2E354
-4FC1328E09E54EE645B5C787C6735BC559601CE203BC4044ACC76908AA81DD6E
-873CA378640ED82DFE1574FDD05182B433440F182B5BB3D65FBBAC444CD94587
-34343FC4EFC7CEA6075FE46A87FBFC87B6CE9FDB4D174E02673BF00A938E4449
-FFFF4F5529BDD4C5B81C6745187669EEA5CB47A7A3D0C6B2D42D8C852159259C
-7CA721D7039B12F0C65D2C831FA7A489B6FDB7211FBBDB1C73068A7257A3B4E4
-C8ABF3D15E6E920B129F852BB408
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (notepara.dvi)
-@start /Fa 203[41 52[{}1 66.4176 /CMBX8 rf /Fb 138[44
-1[44 44 3[44 1[44 2[44 2[44 44 44 44 1[44 40[44 3[44
-1[44 44 49[{}15 83.022 /CMTT10 rf /Fc 161[30 1[30 1[30
-6[66 11[106 16[40 40 40 68 40 3[0 0 36[0 0 1[0 3[0 0{}17
-132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fc(G)-244 29 y(S)-57
-245 y Fb(al4)p -37 156 4 110 v -36 46 a Fc(\007)306 179
-y Fb(cu)p 344 13 V 306 13 a Fc(\007)629 212 y Fb(cd)p
-648 129 4 117 v 649 13 a Fc(\007\000)1047 212 y Fb(c8)p
-1067 121 4 108 v 1068 121 a Fc(-)1068 13 y(\007)p 1309
-98 4 135 v 1414 212 a Fb(cdd4)p 1434 129 4 117 v 1435
-13 a Fc(\007\001)1867 212 y Fb(c1)p 1887 121 4 108 v
-1888 121 a Fc(.)1888 13 y(\007)2037 212 y Fb(c2)p 2057
-129 4 117 v 2058 13 a Fc(\010)p 2542 98 4 135 v 2646
-212 a Fb(c2)p 2666 129 4 117 v 2667 13 a Fc(\010)3130
-212 y Fb(cr2)p 3190 129 V 3191 13 a Fc(\010)2666 -153
-y Fb(de2)p 2664 -4 4 104 v 2626 -4 a Fc(\010)3150 -153
-y Fb(d2)p 3188 -4 V 3150 -4 a Fc(\010)p 3635 98 4 135
-v -364 444 4002 4 v -364 477 V -364 510 V -364 543 V
--364 577 V -291 274 98 4 v -291 366 4 93 v -263 341 a
-Fa(4)p -197 366 V -291 369 98 4 v -364 542 a Fc(G)-150
-691 y Fb(c8)p -130 600 4 108 v -129 492 a Fc(\007)78
-691 y Fb(c)p 98 600 V 99 492 a Fc(\007)306 691 y Fb(c)p
--130 608 460 16 v 326 600 4 108 v 327 492 a Fc(\007)534
-691 y Fb(ca)p 554 600 V 555 600 a Fc(-)555 492 y(\007)762
-691 y Fb(cs)742 492 y Fc(4)p 782 600 V 1 w(\007)990 691
-y Fb(cf)970 492 y Fc(2)p 1010 600 V 1 w(\007)1218 691
-y Fb(cn)1198 492 y Fc(6)p 1238 600 V 1 w(\007)1446 691
-y Fb(css)1426 492 y Fc(5)p 782 608 688 16 v 1466 600
-4 108 v 1 w(\007)p 1694 577 4 135 v 1791 691 a Fb(cff)1743
-492 y Fc(3)p 1811 600 4 108 v 1 w(\007)2019 691 y Fb(c)p
-2039 600 V 2040 492 a Fc(\007)2247 691 y Fb(csc)2225
-492 y Fc(\005\\)p 2267 600 V 13 w(\007)2475 691 y Fb(cfc)2453
-492 y Fc(\005Z)p 1811 608 688 16 v 2495 600 4 108 v 13
-w(\007)2703 691 y Fb(cnc)2681 492 y Fc(\005^)p 2723 600
-V 13 w(\007)2931 691 y Fb(csi)p 2951 600 V 2952 492 a
-Fc(\007)3159 691 y Fb(cfi)p 3179 600 V 3180 492 a Fc(\007)3387
-691 y Fb(cni)p 2723 608 688 16 v 3407 600 4 108 v 3408
-492 a Fc(\007)p 3635 577 4 135 v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/notepara.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: notepara.dvi
+%%CreationDate: Wed Jan 21 14:01:16 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 686 510 795
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMBX8
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE notepara.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1401
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: CMBX8
+%!PS-AdobeFont-1.1: CMBX8 1.0
+%%CreationDate: 1991 Aug 20 16:36:07
+% 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 (CMBX8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX8 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 52 /four put
+readonly def
+/FontBBox{-59 -250 1235 750}readonly def
+/UniqueID 5000766 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
+7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
+EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
+7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
+AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
+E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
+4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
+5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
+611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
+D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
+EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
+35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
+ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
+7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
+C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
+B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
+53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
+E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
+3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
+9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C156CEFB
+BEC5F726D4263EBD641C785872BFB7E8711AA2C28499589449C6DE4D2F2A9CC8
+2ED25C6DD5D5C2A69FC999E0AA19DB8B70754FCED303B82A23FF9F6B8FA3FEDE
+68B228824F4E7A67B6A8E14A7C600D1ED773F57854570F7CE0A5B43253837D1B
+F0527133F629F149A87BACFFCAFF2143F0E1899D2A7A435EA5577325FC29F975
+A04CFFFDA2DCDF887BEA50F5800C3C821388EF3E3189067FE0541BE609E85F61
+BD99A3FE24F2FBC72E6909904E6C370413B620AA61E61C83D7217EF9EB11917E
+31C04E11FA84A5AB62BC40CE511742D5AC2455E6EDEFE9422E09E08D02A7ABE8
+AC73721DA14CEA5CC868BC0A4F9283E5AD881986328C4752810085F7D7087657
+AA93003688711EEFD60A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%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 49 /one put
+dup 50 /two put
+dup 52 /four put
+dup 56 /eight put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 114 /r put
+dup 115 /s put
+dup 117 /u put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+931DADF03DA48AFB8561FC2E710087251BFBA7E06DE0CCA1319B0AF5D42C06F9
+BAF3AD96F8BCCE747C6D166465A9E2071E750A972AB4411C172079EF21F73ABC
+121D8DB43921FF40006597D8A756B3A7D086CD86CDC90F418D86E8B704D37E19
+D3CE1BF599FA98E9FC6346773531445FA23A4A39E98895476B28F8B4B968EBCA
+BB8ADFBD84B70334512ED0D628B75223D15695B6ED06E7FB334F4F2A5BEB4C09
+E4D6B6C4C7A6F71524A3FC7E01BA3CCCB302F2F1DEB601902B1AF844710A6C14
+6FDBA289EF710F595D8FE187151278F32ABEF9E7771C23CDC5B31FA66CB42435
+8EAC006A594AFCB839778FD0925E2DAABE77592864080F153BDB9F2F8F684A58
+0EE7736B5296A52096DC94CC7FB0A6F5A594B9E7BED1D13E534C46C3FA4C157F
+5B8C568B6005F5989022DC463B753D64CA47A71087764A54D975AB039A10C537
+A837010ABA63BDDB5EE2708434A9F0CBB97C471EBF18942E5AA2C99D424B8AB1
+F5A341530C88F6424C5E3C86400929C0C0FC2CC452BD5905A58D195FFA8FE00C
+E40B0335F65B6A5C256FAD854857CDE7124AB84B35FAFC53F3047E5DDC31CB8B
+EE484ACEA3F4C904C19B7456A83B17083469EE367CC1FB28CA84ACF93D541634
+44C8BE9D8D9D39421C6EC5DFA818ED4A5CB2A662E847B43B32B139566B94BD12
+05B19FFA8EA1F2021F5AA2FBC1D6798E0B0426A3FC071E413DDEC857FC62C68F
+040BF71AE8A31F9AC7B1ACC07387DA9274CAD79CC3EA95E41BF7BD8FE716FFB8
+9CDA6071346779A6F6791DE39BA0D03259656520B696F8D2B0AA6A4DF023E5C8
+B5C3632E81D8CE77B483ED98F94CBB55DCAE95F46111C5DA5BAC4524869AF857
+BD69AA8FAFEEB356BD3BB7FA6207CA9EA68E8B566BDCC3105C0525CFF084A68A
+6EC4773F381184C4DD0C4C1C1B247FA5EF24943C791023C4007A99382439E56E
+75E12EF5DB265D0F4C39D18E1965E835A0E2656E97DCB873E23378381DB43E12
+0BED4002DC6EA0772EB1DD3F2E3441B2BFF0EAFCCD1DA346D91097461A2BB6C8
+CC9B943EAC8B454D6465F744FE6E8E3419F44A42297143518677ADCBAB2020F4
+BB2AB826389931CCFF6288B876290F5AB6B80DE8D2810C956B2F8AD5CB5B59DA
+69559B43DDBF1852A44FE0944726B6CB16F7D15982E4EA7CA6A40F90561098C7
+45832EF0B65BE57E68342B9B930DAAF6C6F2E16B646865337E9A630879C80EB0
+DC653D2D57C6F233C434BF267B2B9E6B5DEBF6FBC4CE6908B4B14DC03B19A4EA
+F57727F5E3D3E68FF2D6A2E782399614C89229B733A9049FD4B5A939242ED364
+C921AB44C520EE5AC25EAAB24395D1628D6A32D33A5228FBF728EFCC2B10A877
+0B078E8EAF28529EF3D13B081A08EE308CCF2C3A368B10809A4A06AE42F515E9
+8C14FEDE0725594F130A720123FE2937F6844C89CBDF5BAF3C85698DB4374BED
+EE84E17C13F864FCF9CC19C674BB69C987BB23353515379B1735BCC879DF2F82
+D75C47DCD3E5839552DBAC07932B2BB21528383DB816781ECD0F7F02A33ADC09
+3DF6DB026E364B23189826572A1D10DD133B19186C58D654B9F0CF27DAAC5AA2
+DCEF3B8CC2041AEB058D32C359AC4CF8F3732DEE2F291249A6B0B4208C4D8D47
+810B38AE89C12F6B5EC84FF7F05D980645AA019CE2108A8530697F11090B8967
+E7585CD4A1BC755B5A9CA37DE10035C5AA652A3D0BBF9D004A9590046465EFC1
+649CE475E75295F68C51FF714CB94B86047A96047ADDD4A101B9A3FC0BE13FCF
+D3E087D76827BD8512E4A8174F765278FA06930AB5DEE343F48E267AB4E0E402
+E0FF08646D2B9285A8368DFCBF84AA9105DDAC1EC0BCDF9345DF7117EA3D220A
+E115AD1A38DE90966287412A1255F63BB9F543129BFF876325225B35B8BB1A91
+94A636242BFE712BD17AB625EE5E75E7ECDB60C202370AB57FFE4BCD6386BA6B
+48CF53B63DAFC1903DDBCF9F904C5384830E535233A2AD43A5CC6CE3620554D4
+29E27FF49FA904AA3F9B3A74FD69FAF8651429F612B5026F074C488C087C37D6
+A13B1CB979A7B1E9B78AE0D9BF564E5CD136344FB30E2CD1B0B9A075B5539EDB
+F9527B68C0C7BD10ADE45B9603C72A46C109947130AB83B04611C93A782F9E18
+A26C260E899A26A959C2EC33D4CA63389F72EB92A7A7D79F8A88964D31E4D3D3
+83F6F5D559DBCFA38963D94C921C9AA199CA4A21C5211F5C3F8942DDEDDA0DD7
+3B81EDA6C25AEDAE94BDED2723846A47CB392C73329A30C052B1F90F6F43FFE5
+013A03A1F6FAE13AC979A7993ABCD026DA817A386E9889B50F79119F4308D2EA
+9954A081C413E6F3F2FA3447BC3BCBCF50C755870DB822398145946CA5475C25
+A3FCB52342E83E4F8CCFDC02F4D75A86EC4F2AB7E8F87B8C950144DE07FA3EED
+B75AB1DC41481B7F2FCB97347C1721EAC01F2C7CC400B475BC87DC7D64DF4B17
+C303D4312632D4BB4AABFD9179AB16791728D3AB1CDE6FEF7C380C3898E7D578
+CEB86B7D630E4957DC8AA87326DB1E63F635578B6D05F1B591AAB2F48A98A96D
+E3678A273CA399212DF8479170AB193D532C981BC2C0065406EBF9510622695A
+5AD5FA714F5460AFD1DAB60B259A14CFED89E07F93A2ABD73DAF105E6EA40EF2
+FA26DD06D12D3E79DD576A547D1086CB7CAD54D5C1B0EAEC7634371A21F59B4C
+E102154C27BEC20161ED48F6856307ACBB4AD4BB73006063D9202702FF40E27E
+024914DB6FAF40FA75D333AD64329273B421DD80023B81EC9EC49E4B69AE8F02
+5AD25EACAD3CE9BB0C4092B9DF7D14DAFD64800965F96E7883D687671046C9DE
+34354BB17DFB057E826DE33EB956DD385551166953AF9D1E92EBC723A72D0BFA
+D40119D487A2EF2E56045156D83C08606CC8352B39DAB2E00EE284DA0B5B6E65
+5F21DFC5B21763910DE200E657A14EACD5FB8F3BE0A45506C817BC569213F7A5
+21411219E7A2B912BCEABBDCDAA94F9C1C4A3F0226FF767AE605AA07E7C620C5
+828ABDF96CBB706708BEF5D930F69F875A0EFD2AC871887D1DA37892AF5F7AB8
+E8411693DFC6D2D31B43B8E2410A1C40E714B8C1B7F3F14B052F68BA4764184E
+3D1A2C81636D1BCBE4AF2A3B7488BD380FAD3A9876D7D67FD60C293387B170EE
+3E2DBDB932FD79D2DC8B85C729686D177906904E0D0F659CA08FE636723E3BB5
+8F10CCFBD52AF60BF25D7324093C0BEC0CE294397A310564DBFF434D2B0AE22D
+9DE3970FA94D64CDD9943891E22A753C37A2884120E3D5DB51119E12C7E13DD0
+C53EF99C0324BA723C5AC8CF8C7BD844FD6F9063440DD6FABEB84FF63B5B56B7
+4BE6F85D3A8AA269244582CF70AE86C32930B06AF5F89FF86E1EABF1729283AB
+6D8A3475E8A67864E7018246CA6EBC8EE7D9FDABE64997BF6415623ACBB25038
+8B00F62E4EFE58ADB74C9402C8C816037ECF81F2440E104585D650E015770E4F
+1DA92E4CBEB159D53C0E3EA022EAEC28C96108574FB4C4375BAF692B74692A2E
+DCB4360D2096EB3468E3F2378E9AB126C1C27B8AD0EABEB5D1EC9C46C722FADC
+199D9A63ACFA638A1071818C87C5E114E3319605184203C4B584AFD2BF52F266
+D974DF623AA217E29E25F00CBB289DE6B18BA64B3BFB53F7D5E5EC5E7CF25013
+4B48AD817160D423BA04EB1A48036321375AF798065944F1FE9C5885DD9AE6AA
+015AF8B71667C745E208D31354055D25C99C13C06F722AEA024B8C59F326A364
+AB41C6E80972DDEE9F5BBFDECE293795EA57F7C78FB22ED10E6B44E4E3BC658F
+F09981D89B6F83353615140EA3C21311BF26F931473FE18C8059E45C92571760
+8C7A651C690F30972738478046CB54D7AF40155DD7E88C5B43733BD183F177F5
+F86E7B19679B39824D715DFBFDEADDD69684E89610C8D38F46CDF64E2F15D6E8
+636A264BBE9F8C7B05835AEA7D5CA84D68
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 1 /acute put
+dup 5 /hungarumlaut put
+dup 7 /caron put
+dup 8 /breve put
+dup 45 /hyphen put
+dup 46 /period put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 71 /G put
+dup 83 /S put
+dup 90 /Z put
+dup 92 /backslash put
+dup 94 /asciicircum put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF864B07EA753FAEF544036D0E4433178BC2473AC08304F23AF879AA97
+4371748BD7282E05ABDDF507A2FB03D483E2822B9D8D558D952E5251DAB477F3
+B374BDA2B19A0DF5BBFC08FCA1B17E2D3ECD5D8E2081ECFDBBD22BAC44ED6A55
+4CDCEE7DE0AD678686D00B41846A99AC6C1A9E4079CEF2D1CE39CE4BCE35937B
+A34C365308FD18F5C85A19F6D1D8178D57752ADF73E63959A21B810450E175DE
+223F6C1CCE8754DB2005C895C697D48418F38F7F93BC5B9D987B94B7276855C2
+7B5B8FACBC2EE0C2EFB9D3565FB5D3C4956F77F37CB5B17FB3A58837DF9D557C
+EBF08CF518B79CC4B73C72932D38061390BE88D968E1FCBC3D5AF7422559588A
+84239983A1D959ED1C8089E248D0A790AF533D08D7E5CFDC6198BEBCF23B5D37
+7CEA09C7AF33C85386194985D1AB3C01FAC93E5B52E676261D0081048670817F
+A6CFA36B4E31ED5C87A1085A93B6CE917901C4BFA839F42813EA963C6F2DFC99
+9B1860FEE3E50FE253462A68A28CAFC810C17C8FF9C43DF99FF217CE366F7921
+642BF446F03089246BBA2DDBEDD7B7D7A14DAC15E2142018985CD16F50F02F8E
+BCCF08C591AFF159FD72789EBA34CC60111CA348761F3EC226839CDB2F41799D
+E1EF2E05BD94C2C92676F97549E0D1E027F0430863056B1DAAD8280BF0F6B975
+A993C55CB9CCF6D3711A30E5C87D0A389FC010BD4E540B97FF808093254F967C
+6B469C206876F6BCC50EDC121CA1ABAB5CF489BFB183168B310A10C5956ACEA6
+8C717D8E7399168B8B2F79B4FEDF698C4390A94DA11C270190FAB3A76B5F1785
+2FFACD48660B2A88CFE66A281B5A39DDA3537B3F1C9CD317126C621BF5E891E8
+E97D7EB7E08BFA5CA8C5EE7859AF3D5ED7365931E1120B2FE9BBC070E7663641
+14B518C29A5B09F061EE12517DD4B458016E809924F197AB62C322264ED48B8A
+C84CC960B07E05316B3AEF41CED1A74A3E4B2ED9B0AAF5D80C7C140EE33A2144
+18635F602943AA34A9D6424DF3EA621BCF928DB53ACEEF4F8B858403372BBBA8
+DEEAE3C2DD16A80CF1E0E1888351A35ED150907F7830D8096621E81A3A8C9050
+260EB2F0D4859007B201232CC0487D8F26169B1DEC638F494A8B2D288597BDD3
+E3B0054CE0B031AF562516D90E58AC1C6196AA0A7830DB3DA46E21F9F2AA7A52
+CAF209C88871660A7459BB8AF2ED694CF8552A900DAB2E2704F5C4028DB9A350
+9F974F8B31E8F40F45BEA3EC2024D06B26E183C91789E58C3E2CC8D34B01A3A6
+2ECBDD44988BF5AB4EC2E06455B3676BD9D3E71286CA0D8EDC5F3410027553E7
+E8164B360F48B38F4E108243BE29FFCC03054EFB4BFC5B986A5450DBA4C08A85
+481B9F19407C8977346AACBDE061B1BD73D8868DA671693669F540C6B216B5F4
+B58219B7C6E8BB31F12BD603F7DE8BE4C379EE8F3171D867C0080CCD9D52B35B
+D25845085308BA5E02B3B99F1EEA058FDED18F4229E8154DD6BD2BC1DD6B38DE
+FC47FE05933FCFE49B4EDB4764B492C9152B63072A5D560A020507973D489E06
+40B3D904E2D70E5CB3CB93B2358F193917A812D009BA0489DCD3AC3A74195604
+EE2B7E3376006F093FC66A9B6844E3537F36DB37928C885156A6658DB1AF3A89
+66762ECE6245477C29F206C3A78EF5FA5B21E76E955D58E98D17AD757BF1C5A4
+7FF76CA15550BC7D9C1D30505FCF71B2EC1390EEB452CBE4E23E6E85ADDC6913
+066E427633EAD58B01A372F2330ADF112037BDE3F252E4C28F2F8E4EE0C2B5DE
+BFE5FD6B105121A531D33792145ECA7EF086ABFCEDC3F42F4101ACEE411E3FBB
+76A7DB5FD1625756FA944F985B8638C8915CE9B7FBF38E79705C98254C8E5E48
+6CE713566F9AD450E5AB3D9B77F24E7C6BD93D479C538697049979512992B012
+50459D0BCA0C2F5F083EF81EBA856F634E27BB52EE46F45B90480F2E059D7F6B
+9AD02CD47259C9B3C3606C60BDA46510A99348BF7E5FE040F5344139288425A6
+63B85700F53C3263521FE6A6B18B495B1DA088CD63517621ECFA2AE24E8F8D01
+3700FC395959F11C5301A2FBB7C725F876563C37C72383DED13135D0315D2386
+98DE9BB4275021C8404077E62281C88D9A785B2007F3CF9034984294EB8A2A59
+A9D734A31F14D9ED69A8BD2D6E50BC5D2DDC74CA655F2537EB96BE26E03497C1
+387C941F1A80FB11B43FA504AFC25F287449A67C02CEDDB8A7A9276D4ECDA5D0
+0D9B852062B99DD9E4C4FBF0B67C45AC1CFD60CAF47D82BF13242FF8D2769C4A
+D8357712E51E20ED6E44B92322812616560B893197F15EF1EEAC3D187CB3F46F
+1ACE9C2B8568CB73E22F51C526090EDFDA3ADE57A04484769BBBE0D209A18687
+6B99DAF77F2705AD06AFE76ED2BD7216E5FAEEF998528C8258EDC2CC73D67941
+C0E171C90F58E2762A05D08814E04DE81E573823F7242B01B3373B986A3AE3D9
+D423F19770480A4C575D4D869CE00E73C30DED74F77C6A3BBFE8BF0E2B033039
+BBCD3E4C0FDD65DC607DCF854482A8747F6F84ABE5F2413E337087F73600E478
+CF31B15DD7C5B7CACCF280A7E7A9580B906594FE555927C74B2380EEEE63AFAF
+557259DFD63D5565B4ADA6DB7B82BAE105449E378FE470821279ECBF546CF3F1
+4F6735C351E4E2662E3911083AB8911B94736C09550BA6C296A0A3F45C8D3FB4
+B5C75FA8F5EF6B844FEAE66950D20FE3AD5A48E788309B18F63C9FB48F14E34D
+AD5A97D8934E4F2CB32DDE342B13B3413B0C3671E35D5D6AC966736238920875
+C32B47DC2949CEC9B5EDA1F3C3055F86A01E426AFF61AB1D901B706935A7E998
+40DCCFD6DB7391D30CF70C8D21B63594441D4CDD612F5EB6531B508A42EB3C15
+BDF47EDBE1AB1CB1B0A2BACF7C717B892A1A319D10AE93C181E6CE7E5E0A2F7F
+1C18376BF09A20AB14357010CF4E0BBF37169638D912227BD43F7664B67891AD
+D239B642ED9E429864EAD8389F3BF0C664901281F5B5063CCF4BA454B01DCE3C
+7766ED25E5A2F9776000234B80C69AC24FEC99DE1F7CA1F61DDECF08BB5392C8
+D2641FDF1374CDD305697033BA7BF257D4A9E5369EC10CDD9ED0B5E3AE64B7A6
+78F8A10536CF41624C3B49BF3ADB28A9165328D41EFEADEC8CCE2A151A345DE1
+EE905CFE0A5DE0EFB06C960B18796851BDB442017149151ADC241B5086C3D7C2
+490B8B4529805E0E9BDCE58F02C1C561F979C38F9A834224D3E81364306707D6
+A9493015CBAE7206ED821303C04A33D56F87E84BB27EAD7DBA151010DAB4A862
+1C5A22384A564DA57C9E5A3F1FC285C5EB881837179CFB46994074BBBF60534E
+5AF073F7EC4FFB1B262E71BC1799B5A7E6DEDB641BD0EE2AE975849488EE4F1F
+BE17A92B3E3D40E6B62172CF2D3D8F86D6ABE9CDDAD0935F8BCEC0282401306F
+B2F6D421A1D1770F04F4C52A7F53AA59A25E885E1A77CAC4748DC33B7ED309A5
+E760F414600E215176FC799AA975E3A6ECC4308C0D786E282082649DEA14D1EE
+B3F57C135EBC72DEF2427D671ACBD63A0146415ADB136D8B9872D63B237330CF
+464A504EAD372AC6A0265D4995D79ECF5BB3BCF28499ACED6B5DF2DA940EA1E2
+4719EB699519EF11305A3671C67FAF4764D1B98D2B53E97D17955798B38C1403
+64E561762A86F962A968A22667DCED2DA7546D8793B1CB9777818E0F0BA5C183
+C0F44C2444DF548408A6BCF2D21E8D6238395DC39915CF1C1E8307A3D5C2E354
+4FC1328E09E54EE645B5C787C6735BC559601CE203BC4044ACC76908AA81DD6E
+873CA378640ED82DFE1574FDD05182B433440F182B5BB3D65FBBAC444CD94587
+34343FC4EFC7CEA6075FE46A87FBFC87B6CE9FDB4D174E02673BF00A938E4449
+FFFF4F5529BDD4C5B81C6745187669EEA5CB47A7A3D0C6B2D42D8C852159259C
+7CA721D7039B12F0C65D2C831FA7A489B6FDB7211FBBDB1C73068A7257A3B4E4
+C8ABF3D15E6E920B129F852BB408
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (notepara.dvi)
+@start /Fa 203[41 52[{}1 66.4176 /CMBX8 rf /Fb 138[44
+1[44 44 3[44 1[44 2[44 2[44 44 44 44 1[44 40[44 3[44
+1[44 44 49[{}15 83.022 /CMTT10 rf /Fc 161[30 1[30 1[30
+6[66 11[106 16[40 40 40 68 40 3[0 0 36[0 0 1[0 3[0 0{}17
+132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fc(G)-244 29 y(S)-57
+245 y Fb(al4)p -37 156 4 110 v -36 46 a Fc(\007)306 179
+y Fb(cu)p 344 13 V 306 13 a Fc(\007)629 212 y Fb(cd)p
+648 129 4 117 v 649 13 a Fc(\007\000)1047 212 y Fb(c8)p
+1067 121 4 108 v 1068 121 a Fc(-)1068 13 y(\007)p 1309
+98 4 135 v 1414 212 a Fb(cdd4)p 1434 129 4 117 v 1435
+13 a Fc(\007\001)1867 212 y Fb(c1)p 1887 121 4 108 v
+1888 121 a Fc(.)1888 13 y(\007)2037 212 y Fb(c2)p 2057
+129 4 117 v 2058 13 a Fc(\010)p 2542 98 4 135 v 2646
+212 a Fb(c2)p 2666 129 4 117 v 2667 13 a Fc(\010)3130
+212 y Fb(cr2)p 3190 129 V 3191 13 a Fc(\010)2666 -153
+y Fb(de2)p 2664 -4 4 104 v 2626 -4 a Fc(\010)3150 -153
+y Fb(d2)p 3188 -4 V 3150 -4 a Fc(\010)p 3635 98 4 135
+v -364 444 4002 4 v -364 477 V -364 510 V -364 543 V
+-364 577 V -291 274 98 4 v -291 366 4 93 v -263 341 a
+Fa(4)p -197 366 V -291 369 98 4 v -364 542 a Fc(G)-150
+691 y Fb(c8)p -130 600 4 108 v -129 492 a Fc(\007)78
+691 y Fb(c)p 98 600 V 99 492 a Fc(\007)306 691 y Fb(c)p
+-130 608 460 16 v 326 600 4 108 v 327 492 a Fc(\007)534
+691 y Fb(ca)p 554 600 V 555 600 a Fc(-)555 492 y(\007)762
+691 y Fb(cs)742 492 y Fc(4)p 782 600 V 1 w(\007)990 691
+y Fb(cf)970 492 y Fc(2)p 1010 600 V 1 w(\007)1218 691
+y Fb(cn)1198 492 y Fc(6)p 1238 600 V 1 w(\007)1446 691
+y Fb(css)1426 492 y Fc(5)p 782 608 688 16 v 1466 600
+4 108 v 1 w(\007)p 1694 577 4 135 v 1791 691 a Fb(cff)1743
+492 y Fc(3)p 1811 600 4 108 v 1 w(\007)2019 691 y Fb(c)p
+2039 600 V 2040 492 a Fc(\007)2247 691 y Fb(csc)2225
+492 y Fc(\005\\)p 2267 600 V 13 w(\007)2475 691 y Fb(cfc)2453
+492 y Fc(\005Z)p 1811 608 688 16 v 2495 600 4 108 v 13
+w(\007)2703 691 y Fb(cnc)2681 492 y Fc(\005^)p 2723 600
+V 13 w(\007)2931 691 y Fb(csi)p 2951 600 V 2952 492 a
+Fc(\007)3159 691 y Fb(cfi)p 3179 600 V 3180 492 a Fc(\007)3387
+691 y Fb(cni)p 2723 608 688 16 v 3407 600 4 108 v 3408
+492 a Fc(\007)p 3635 577 4 135 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparb.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparb.eps
index 7d4b01f88a8..2e663a6f944 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparb.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparb.eps
@@ -1,460 +1,460 @@
-%% LaTeX2e file `eps/noteparb.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: noteparb.dvi
-%%CreationDate: Wed Jan 21 14:01:41 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 732 510 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE noteparb.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1401
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 51 /three put
-dup 56 /eight put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
-E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
-32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
-27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
-2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
-CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
-2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A7278BFD6FBAC798
-26892D97DA40495AB66E4117A4D7D41FC56DDEA6361E8481B531329C76C5BD98
-DE8BEC8F502722395B3E379EC4CE14F450DBC073678B656A38DC10C9A3E3D953
-5DC9DA2FCA556B50F7C014466B9043460BEE198F6BCF6F8C58E0B9D26C44889F
-39AC3826EE590DE761C53D93951559FBA1ADB21213EB75C8CBD579446986F52F
-239754935CAA46CBB211C23C451FC617F82DC195518912B4929FFEE242D11E56
-83880FDA54D4751817870482F85867864476FB3B555E68C758FE3D06BEEDCF0C
-1D83964DB47CC0C965535C29CFF6F840894FF754F4C1AA077A67180503E107F9
-EE2640E28870170110B180F0C0B19A4AA23FEF9B805397C5AB1680C94A04613F
-FE2D5D4ABE9EDF69E0DD3824787C989AB4B2E585D5713981695DA1DFF8D2A9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%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 43 /plus put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 46 /period put
-dup 49 /one put
-dup 50 /two put
-dup 52 /four put
-dup 56 /eight put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1AE21DBE974A618791F330A89AF49A70D4FEADC842CBB
-599B7BA4910A3FC50030FBCA25C94E9F1B99B392E755F7122FA54E38B7456300
-40E2785443764DE6FC0B0215E256D63C586958C727D206D2921284C577D70E33
-9334EAF80831E27646825F503A3AABDEC09DC9FCE175E01B99D07029E5B08EF5
-ADE761B9FEE9B84098679EF62CB0CBCB1EEAB6E9391163B1D34923A19B1743CE
-E654C9C39665AADA2FE6687D91EB5B8F0E20A4FD5984624C21F595F9DDF1C071
-90BFB61B710DDA6CC608A623FD4459C787EE99861F30D092FC6BA87AD98A0BAE
-C9D3F17AE9C6AF10CF6ED9FF7180E277C771BBC84A300794A6E9D3F815AF894B
-558561839D7F33962AA01C1302C92275DA3839A2D0813AC02F0E975FF530CDE7
-6666407C312F03459349717A20904D66981384DC2E6373B5424BBB2D32079DD4
-08226AEAA0C4DCB8DF16CC64DB63F2456C51F705D0670878F7ADD1BC96DBC8C8
-23F2276A4400CE3B5D209696357B663D35D2E7183BA810BB3E2B65D78732C40F
-1F4B6614F932F98837F99BA5F253A0ECEFC2D2E76DDFF6D7128E80DEF90FC98C
-F2D53E5F146FFAAF35B8BF4B489AF91F30654219A71EA159D900FF96495BB9B5
-4ED7A963CA7625C148E51B70B4C25CB9FB0DCDAE37389EA66396BE8E96037D07
-DE1A0D6FF9195C6C7CF63C285E2D52D69BEAF062C8BB4B435A292512A6388B9B
-7A76041E5DE162A5422FE058A0CF3E885DDFF05C37D8E308BE7437608A2476D3
-C256A2D9248B72EA6C66813EB142005040F6426DC702FD02BD3BF7BA439A4191
-FA087040ACADEA634E969D0D9DD5FDC745F147E59B3379D11FAA2A42BA5FCCFB
-02C80C7F07930052A42C46DCCE42637E6590297BE32BC67423A69F28D9F7B1FE
-EEA8558C104372D27FC54C4212D4D64CBE9757FC93E03EBE1BFC400419946D72
-E603247EB1AA2681CBAD39FAFB0721D95CE812A44362A160D6C9BF577C1D3912
-ABD0E25D2E4CD317E1C7942C46589DDF4E64EF70790B353EF3E014D319F14B9F
-164047C6FE40F270E69B12DA8A260E4B75787F68109B56E22D8BF57B6CE5DC0F
-8D23B7C8A981F7E9F8294C47E3ECC246A1A37259A338DFF3C1DB1151FA07A7B2
-1643A986180B7C7C399AB4685C858B7A0281AA2F08DECAD2BD3480599F9DCD89
-F64638E23009CD8650C51F3CF4651A6FF8EA232C912D658E7C24E3CD6F8A3B44
-C4016EC5A76E9645DEA84BBCA05221A914CEB258951ECF06D102DD92532B8B1A
-CD1CCD3EB456F7F270C9165949E3E59634A70107F1303439BD54BB79CE8DC309
-8ACCA0773321C030A4F8C7182B162DAE21FD4F5AE08157084A00535B1F39A57D
-941C9F1140FEC1A36ECBE0A9AB974CB1C4AF92025E9AEB2701D8E2120DDD1C7F
-71021D22912B04354509A58F94C8A766DE4D530AB51071C5DC1ACABDF2E16431
-CBAECAFBB67A4C62BA59FF50E4065060E1124A4653EEF96728A5F789D9AB4F8D
-25C251FBC7808F72A38672DE9F40EED278A17A23E3B07CA55D712BDDA5D5FB0B
-33A7B6D5011D6E29293F5564A338702AE85DA5CC2FF93B1E6D1B5EFAC247D088
-F2C80DE37451D68E3F59189FAE42CA963F37BEE0EAAA5B3D8E28B628211EE0E0
-2A3C914B0629362748E0A64CA1A95B8EFCD2C017BC4C0B9085071231375E3731
-C640E23D71640FCB014F5821FEB0DF3A3A7AE93A1DB46364E6A0890B0A389550
-8F286D9CCE65049DD5FA5D087AA09D020E7AACFBA5BE120C619E4DE91D2B765C
-BF60AB947DA17991BAB9E5A4BDA2EA11FA2378515A1377D1A135F92A51AFE026
-324A6F3C36879C22F4C4139C2AA48F91DF6A0842453C21606E8B6CBC4DA44A8F
-A85DFAFA3296AFB91BF35B8D704004EE2B2F7E5616A20BC3D102D01E01348694
-7AB1C109B83EF4D9762660FBC31D5C5778EDB6DAD84FDA1FD003177AE4CEDD26
-551A45BD66F86E69077920C4665D1EA1C75D57C7D83D7EE77EE068A624D1C433
-E5342F34405AC70416228C90915019A3785F2E577C603FCD6EF937EADC53A3F5
-7F3600C89893D52E10BD27F1D1A6E6868A4A07A0CC84B554B8184BEB9FC6F19E
-364A8A1831566686F91DBDD6C4D8CE7FB89BACCE2503C2E34C1CEAD9662FE5B7
-CF1BF4A27919726C800335B892B1A82516FA524249C9445CADB2124DF097A35D
-42915E1C6E2567EF08B7D1123B3F996A34F149C7B3E4881B35D83EA70BFDEF15
-58562F52AB83C8E7A3E5257D2AEFAB9BE2A61BD79F1D6E4BAF7D06A61BCEC6DF
-7EA0A033F4B81A23E3EF8DB103EFFD53C26ADE882FE838ACE1393CD762570DAA
-71117ECEA8850EAA1E8BFBCDC033730104ED5D1FA2C2A71F3F47D3D2EAE87734
-4ADE2409AA47110C34E2BD33F3A1BCD03CE94134E3E30239880BF60D41181F6F
-04BCFB928DB2A3DB6D27AF949BAD1C0924F7533376A10B12BB6D2869DD96510F
-8C466D238386F4945039513BD423FB82AA6454BEDC25D253EEBAB5A7164F66C2
-5DB264333A62B8E923B35953FCDF9390087EDE84DB8340A5095761478A83159B
-26FFFF3AD5E16FBB78E0C0B1D8BB38CBF96E87FB319D819F1D71B9B9C640FEEB
-A5DEAB11746551F061D23B9A746B5F565A4E4763824440EA042DF6A8A812A453
-56C9D9D0275BD379E1571F109B352BACB3C240052D9A7CB6BE77F7FF814DF29B
-5009A306D761D1CC7CF02D4DFF2F8A14EF9220B9354EA3EEB3B3A2C4772C949E
-2C136D66AE280D576485618AAA2D5CC1F5CCD04BE08442C2B8A160F468AE5F62
-6F67295F9B36B36C35F5BFBD2850D867574B17A12769E9B44704BAD22B763911
-BA81EF8A17140CFBBF05DF5FEF44EB21372C13B99FBF09ECCDB659E615DD596A
-DACF2C551ECF73649CEB9CD7347DA87E143E8C02DA7A146E2B50C14BA142B44C
-904CCE56EE231C42444A5DD0870C3FB5F2387924902667F5AA15AEA8875811D5
-94541777CA66F25CD506877C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 1 /acute put
-dup 7 /caron put
-dup 45 /hyphen put
-dup 46 /period put
-dup 71 /G put
-dup 83 /S put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8F9524DFA303DA7EF108C04CD361477AFBD9946AAFC501E3B28A9A48
-C9A8894D29C2CE77691DA0C9179A2BF537046F2964992CC0A612B956C947CA89
-0035478C7854000DA0EB8861476F3E966AF03C783DEA3E5A06C67184BBCF9A95
-240C8630B58162837938E90DCC39A554D2E818F4E1D04BFC9273A52A5483B8CE
-9F9589630F2D0A8330A871DC553C51FE5C3C81B5D9404244986FD65E695438CF
-9E5E45BDAD0202ABCDA712035B1E6BACD7B08033E1F7F194CDBF5FA8D2B912FE
-377B9254A385F1FC81156A8C515EA4D2E2C7DF70676F0A7BDDEB39819683383B
-E7AF4DE9FFE98A5D9D8FE443D762F78EB550255AA27132524B460A7E1276377C
-D8A4BBCC377CBB90D0D20767FC41F3FBF0C645AD915B84D17750335EF1C86CF6
-86C3FBA8B96787EB2A41231DB8FCE6E91D4AEBBBF0E05D6ED6887014F8E206F2
-736C5D166E753586C697B414EF54CB82FEF42093DE12116C8DACED5AB3F9EFD5
-BE2074CA75708B34B1429E598DA2449544F31D586BCC6699C93FEBA6DD6B5CA9
-BF5E47A45580232A9CE3124F1645E6381D15C8A25D782A62CB6177A6125ADE35
-302CFC7AC50B66646DF9D9B4BD999951B51572879CFFEB0358C7F60E7AE29952
-C397BE4978A023FD35E7BA5C53A1D254920901F4D90CDDDAE0FBAB39366CF5B2
-3F78C26F6B4B02FBE11C45977BD696C181469D1CBDD8258AC16B2907EBE8455F
-324EE2749AC96751E692995EF60CCB7EC6F86FBE05806BD022E7C17C77CF8CEE
-CD22200C46B3F48F466EF04288E36A8997AD8EB5158F5CEEDFD90F439570BE1C
-F05A61498F48CB9F0F479B4E24DAF69D279AFCE41EDEDFA75F82D28A45EAB2EA
-BA7982C3C91AA9B98A37A142E18E5DBAF3C719B8C5D1A4A18C1B4C6B5A483365
-1B310DE26A3735BF872440B62A98C8838526A23D35A9201DAA9408B24B54E736
-B92EF57A721DA99762597EDFD066E02FE3005D2703AF0E68458D595DDC6BA4FA
-C70D9F6AB6C4DBAD4FF3B246AA8D8587CD35500A4CCC5E44380B7929151C4D1C
-5073F4D9FB1C1C0B8DFE2709176987D5CFB358049121E939005EEBB7D2E17DE1
-02FE344217BE3D217AF42578A3B46D6B26CC6F61DE2AE7CEC140FB4B65EA7778
-489CE588B5924CFBB1FBC8B39576A99FDEFA2183938DB2DEEC78D81537CF795B
-212BAF16F05E777632FEF75C7C30CD0C79551A455952DB88C098F20B00BABE01
-01E55D957A14F1ED832DD5C9B734DFF84D692CC1C9B1268D36BFA925EB581B45
-B37E7A3BF43CB4A28F81D9311DE726971FB4EC32D5087E797B3A8FCFA3D180BE
-BABFC58740A672F65486F4923A9E5310D981C2EA651AE387F6F825E24EE856AF
-4B1A4BB3A6B99C142AA96180F6B347FCFC8B5D9F40A162B226B69F8BD25439EE
-108C8D4826D6124F8C861DEEE5D8271F44E24AEBB360AA538818BD48AECFC5D0
-E6F34CF76F8141E5E64BE650929B27BC755ADA434200EA9D0D727C7A1C4FE618
-F7F56DE20BC03139DB436DF0F7F5ABC4952023326B44F5EA5E31B2483D01113B
-2BD7AD0D1C26A1FD37C2DD54BF5578229B3A73ECD174CC6DDF8D6EF1D2DF4A2A
-1B9236F6F697474CB1AA337295E75D1225E45258E24A61B227C6B0A2C95F8CCC
-D895B4B2F766379DA4811B27A25978C5630AC2287DB129BDB53CF0470BBC674F
-C928E20612
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (noteparb.dvi)
-@start /Fa 199[56 4[56 51[{}2 99.6264 /CMBX12 rf /Fb
-154[44 44 44 44 41[44 3[44 1[44 44 2[44 44 44 44 43[{}12
-83.022 /CMTT10 rf /Fc 172[66 11[106 24[0 0 37[0 5[0 0{}7
-132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fc(G)-244 29 y(S)-180
-212 y Fb(c4d-2+1)p -80 129 4 117 v -79 13 a Fc(\007)-41
-46 y(\000)168 279 y Fb(d8)p 188 104 4 108 v 189 104 a
-Fc(-)189 -4 y(\007)323 212 y Fb(c4d+2)p 343 129 4 117
-v 344 13 a Fc(\007)344 -20 y(\000)591 262 y Fb(e8)p 611
-88 4 108 v 612 88 a Fc(-)612 -20 y(\007)p 766 98 4 135
-v 787 212 a Fb(c4d-2+1)p 847 129 4 117 v 848 13 a Fc(\007)887
-46 y(\000)1095 295 y Fb(c8)p 1115 121 4 108 v 1116 121
-a Fc(-)1116 13 y(\007)1250 212 y Fb(c4dd+2)p 1270 129
-4 117 v 1271 13 a Fc(\007)1271 -20 y(\001)1540 312 y
-Fb(b1)p 1560 137 4 108 v 1561 137 a Fc(.)1561 29 y(\007)p
-1670 98 4 135 v 1731 212 a Fb(c4d)p 1750 129 4 117 v
-1751 13 a Fc(\007\000)1999 279 y Fb(d8)p 2019 104 4 108
-v 2020 104 a Fc(-)2020 -4 y(\007)p 2174 129 4 117 v 2175
-13 a(\007\000)2223 195 y Fb(c4.d)p 2442 104 4 108 v 2443
-104 a Fc(-)2443 -4 y(\007)p 2597 98 4 135 v 2637 28 a
-Fa(3)2637 95 y(8)2785 212 y Fb(c4)p 2805 129 4 117 v
-2806 13 a Fc(\007)3004 295 y Fb(c8)p 3024 121 4 108 v
-3025 121 a Fc(-)3025 13 y(\007)p 3179 98 4 135 v 3260
-129 4 117 v 236 w(\007)3260 195 y Fb(c4,c)p 3480 121
-4 108 v 3481 121 a Fc(-)3481 13 y(\007)p 3635 98 4 135
-v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/noteparb.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: noteparb.dvi
+%%CreationDate: Wed Jan 21 14:01:41 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 732 510 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE noteparb.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1401
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 51 /three put
+dup 56 /eight put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
+E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
+32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
+27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
+2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
+CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
+2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A7278BFD6FBAC798
+26892D97DA40495AB66E4117A4D7D41FC56DDEA6361E8481B531329C76C5BD98
+DE8BEC8F502722395B3E379EC4CE14F450DBC073678B656A38DC10C9A3E3D953
+5DC9DA2FCA556B50F7C014466B9043460BEE198F6BCF6F8C58E0B9D26C44889F
+39AC3826EE590DE761C53D93951559FBA1ADB21213EB75C8CBD579446986F52F
+239754935CAA46CBB211C23C451FC617F82DC195518912B4929FFEE242D11E56
+83880FDA54D4751817870482F85867864476FB3B555E68C758FE3D06BEEDCF0C
+1D83964DB47CC0C965535C29CFF6F840894FF754F4C1AA077A67180503E107F9
+EE2640E28870170110B180F0C0B19A4AA23FEF9B805397C5AB1680C94A04613F
+FE2D5D4ABE9EDF69E0DD3824787C989AB4B2E585D5713981695DA1DFF8D2A9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%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 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 49 /one put
+dup 50 /two put
+dup 52 /four put
+dup 56 /eight put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1AE21DBE974A618791F330A89AF49A70D4FEADC842CBB
+599B7BA4910A3FC50030FBCA25C94E9F1B99B392E755F7122FA54E38B7456300
+40E2785443764DE6FC0B0215E256D63C586958C727D206D2921284C577D70E33
+9334EAF80831E27646825F503A3AABDEC09DC9FCE175E01B99D07029E5B08EF5
+ADE761B9FEE9B84098679EF62CB0CBCB1EEAB6E9391163B1D34923A19B1743CE
+E654C9C39665AADA2FE6687D91EB5B8F0E20A4FD5984624C21F595F9DDF1C071
+90BFB61B710DDA6CC608A623FD4459C787EE99861F30D092FC6BA87AD98A0BAE
+C9D3F17AE9C6AF10CF6ED9FF7180E277C771BBC84A300794A6E9D3F815AF894B
+558561839D7F33962AA01C1302C92275DA3839A2D0813AC02F0E975FF530CDE7
+6666407C312F03459349717A20904D66981384DC2E6373B5424BBB2D32079DD4
+08226AEAA0C4DCB8DF16CC64DB63F2456C51F705D0670878F7ADD1BC96DBC8C8
+23F2276A4400CE3B5D209696357B663D35D2E7183BA810BB3E2B65D78732C40F
+1F4B6614F932F98837F99BA5F253A0ECEFC2D2E76DDFF6D7128E80DEF90FC98C
+F2D53E5F146FFAAF35B8BF4B489AF91F30654219A71EA159D900FF96495BB9B5
+4ED7A963CA7625C148E51B70B4C25CB9FB0DCDAE37389EA66396BE8E96037D07
+DE1A0D6FF9195C6C7CF63C285E2D52D69BEAF062C8BB4B435A292512A6388B9B
+7A76041E5DE162A5422FE058A0CF3E885DDFF05C37D8E308BE7437608A2476D3
+C256A2D9248B72EA6C66813EB142005040F6426DC702FD02BD3BF7BA439A4191
+FA087040ACADEA634E969D0D9DD5FDC745F147E59B3379D11FAA2A42BA5FCCFB
+02C80C7F07930052A42C46DCCE42637E6590297BE32BC67423A69F28D9F7B1FE
+EEA8558C104372D27FC54C4212D4D64CBE9757FC93E03EBE1BFC400419946D72
+E603247EB1AA2681CBAD39FAFB0721D95CE812A44362A160D6C9BF577C1D3912
+ABD0E25D2E4CD317E1C7942C46589DDF4E64EF70790B353EF3E014D319F14B9F
+164047C6FE40F270E69B12DA8A260E4B75787F68109B56E22D8BF57B6CE5DC0F
+8D23B7C8A981F7E9F8294C47E3ECC246A1A37259A338DFF3C1DB1151FA07A7B2
+1643A986180B7C7C399AB4685C858B7A0281AA2F08DECAD2BD3480599F9DCD89
+F64638E23009CD8650C51F3CF4651A6FF8EA232C912D658E7C24E3CD6F8A3B44
+C4016EC5A76E9645DEA84BBCA05221A914CEB258951ECF06D102DD92532B8B1A
+CD1CCD3EB456F7F270C9165949E3E59634A70107F1303439BD54BB79CE8DC309
+8ACCA0773321C030A4F8C7182B162DAE21FD4F5AE08157084A00535B1F39A57D
+941C9F1140FEC1A36ECBE0A9AB974CB1C4AF92025E9AEB2701D8E2120DDD1C7F
+71021D22912B04354509A58F94C8A766DE4D530AB51071C5DC1ACABDF2E16431
+CBAECAFBB67A4C62BA59FF50E4065060E1124A4653EEF96728A5F789D9AB4F8D
+25C251FBC7808F72A38672DE9F40EED278A17A23E3B07CA55D712BDDA5D5FB0B
+33A7B6D5011D6E29293F5564A338702AE85DA5CC2FF93B1E6D1B5EFAC247D088
+F2C80DE37451D68E3F59189FAE42CA963F37BEE0EAAA5B3D8E28B628211EE0E0
+2A3C914B0629362748E0A64CA1A95B8EFCD2C017BC4C0B9085071231375E3731
+C640E23D71640FCB014F5821FEB0DF3A3A7AE93A1DB46364E6A0890B0A389550
+8F286D9CCE65049DD5FA5D087AA09D020E7AACFBA5BE120C619E4DE91D2B765C
+BF60AB947DA17991BAB9E5A4BDA2EA11FA2378515A1377D1A135F92A51AFE026
+324A6F3C36879C22F4C4139C2AA48F91DF6A0842453C21606E8B6CBC4DA44A8F
+A85DFAFA3296AFB91BF35B8D704004EE2B2F7E5616A20BC3D102D01E01348694
+7AB1C109B83EF4D9762660FBC31D5C5778EDB6DAD84FDA1FD003177AE4CEDD26
+551A45BD66F86E69077920C4665D1EA1C75D57C7D83D7EE77EE068A624D1C433
+E5342F34405AC70416228C90915019A3785F2E577C603FCD6EF937EADC53A3F5
+7F3600C89893D52E10BD27F1D1A6E6868A4A07A0CC84B554B8184BEB9FC6F19E
+364A8A1831566686F91DBDD6C4D8CE7FB89BACCE2503C2E34C1CEAD9662FE5B7
+CF1BF4A27919726C800335B892B1A82516FA524249C9445CADB2124DF097A35D
+42915E1C6E2567EF08B7D1123B3F996A34F149C7B3E4881B35D83EA70BFDEF15
+58562F52AB83C8E7A3E5257D2AEFAB9BE2A61BD79F1D6E4BAF7D06A61BCEC6DF
+7EA0A033F4B81A23E3EF8DB103EFFD53C26ADE882FE838ACE1393CD762570DAA
+71117ECEA8850EAA1E8BFBCDC033730104ED5D1FA2C2A71F3F47D3D2EAE87734
+4ADE2409AA47110C34E2BD33F3A1BCD03CE94134E3E30239880BF60D41181F6F
+04BCFB928DB2A3DB6D27AF949BAD1C0924F7533376A10B12BB6D2869DD96510F
+8C466D238386F4945039513BD423FB82AA6454BEDC25D253EEBAB5A7164F66C2
+5DB264333A62B8E923B35953FCDF9390087EDE84DB8340A5095761478A83159B
+26FFFF3AD5E16FBB78E0C0B1D8BB38CBF96E87FB319D819F1D71B9B9C640FEEB
+A5DEAB11746551F061D23B9A746B5F565A4E4763824440EA042DF6A8A812A453
+56C9D9D0275BD379E1571F109B352BACB3C240052D9A7CB6BE77F7FF814DF29B
+5009A306D761D1CC7CF02D4DFF2F8A14EF9220B9354EA3EEB3B3A2C4772C949E
+2C136D66AE280D576485618AAA2D5CC1F5CCD04BE08442C2B8A160F468AE5F62
+6F67295F9B36B36C35F5BFBD2850D867574B17A12769E9B44704BAD22B763911
+BA81EF8A17140CFBBF05DF5FEF44EB21372C13B99FBF09ECCDB659E615DD596A
+DACF2C551ECF73649CEB9CD7347DA87E143E8C02DA7A146E2B50C14BA142B44C
+904CCE56EE231C42444A5DD0870C3FB5F2387924902667F5AA15AEA8875811D5
+94541777CA66F25CD506877C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 1 /acute put
+dup 7 /caron put
+dup 45 /hyphen put
+dup 46 /period put
+dup 71 /G put
+dup 83 /S put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8F9524DFA303DA7EF108C04CD361477AFBD9946AAFC501E3B28A9A48
+C9A8894D29C2CE77691DA0C9179A2BF537046F2964992CC0A612B956C947CA89
+0035478C7854000DA0EB8861476F3E966AF03C783DEA3E5A06C67184BBCF9A95
+240C8630B58162837938E90DCC39A554D2E818F4E1D04BFC9273A52A5483B8CE
+9F9589630F2D0A8330A871DC553C51FE5C3C81B5D9404244986FD65E695438CF
+9E5E45BDAD0202ABCDA712035B1E6BACD7B08033E1F7F194CDBF5FA8D2B912FE
+377B9254A385F1FC81156A8C515EA4D2E2C7DF70676F0A7BDDEB39819683383B
+E7AF4DE9FFE98A5D9D8FE443D762F78EB550255AA27132524B460A7E1276377C
+D8A4BBCC377CBB90D0D20767FC41F3FBF0C645AD915B84D17750335EF1C86CF6
+86C3FBA8B96787EB2A41231DB8FCE6E91D4AEBBBF0E05D6ED6887014F8E206F2
+736C5D166E753586C697B414EF54CB82FEF42093DE12116C8DACED5AB3F9EFD5
+BE2074CA75708B34B1429E598DA2449544F31D586BCC6699C93FEBA6DD6B5CA9
+BF5E47A45580232A9CE3124F1645E6381D15C8A25D782A62CB6177A6125ADE35
+302CFC7AC50B66646DF9D9B4BD999951B51572879CFFEB0358C7F60E7AE29952
+C397BE4978A023FD35E7BA5C53A1D254920901F4D90CDDDAE0FBAB39366CF5B2
+3F78C26F6B4B02FBE11C45977BD696C181469D1CBDD8258AC16B2907EBE8455F
+324EE2749AC96751E692995EF60CCB7EC6F86FBE05806BD022E7C17C77CF8CEE
+CD22200C46B3F48F466EF04288E36A8997AD8EB5158F5CEEDFD90F439570BE1C
+F05A61498F48CB9F0F479B4E24DAF69D279AFCE41EDEDFA75F82D28A45EAB2EA
+BA7982C3C91AA9B98A37A142E18E5DBAF3C719B8C5D1A4A18C1B4C6B5A483365
+1B310DE26A3735BF872440B62A98C8838526A23D35A9201DAA9408B24B54E736
+B92EF57A721DA99762597EDFD066E02FE3005D2703AF0E68458D595DDC6BA4FA
+C70D9F6AB6C4DBAD4FF3B246AA8D8587CD35500A4CCC5E44380B7929151C4D1C
+5073F4D9FB1C1C0B8DFE2709176987D5CFB358049121E939005EEBB7D2E17DE1
+02FE344217BE3D217AF42578A3B46D6B26CC6F61DE2AE7CEC140FB4B65EA7778
+489CE588B5924CFBB1FBC8B39576A99FDEFA2183938DB2DEEC78D81537CF795B
+212BAF16F05E777632FEF75C7C30CD0C79551A455952DB88C098F20B00BABE01
+01E55D957A14F1ED832DD5C9B734DFF84D692CC1C9B1268D36BFA925EB581B45
+B37E7A3BF43CB4A28F81D9311DE726971FB4EC32D5087E797B3A8FCFA3D180BE
+BABFC58740A672F65486F4923A9E5310D981C2EA651AE387F6F825E24EE856AF
+4B1A4BB3A6B99C142AA96180F6B347FCFC8B5D9F40A162B226B69F8BD25439EE
+108C8D4826D6124F8C861DEEE5D8271F44E24AEBB360AA538818BD48AECFC5D0
+E6F34CF76F8141E5E64BE650929B27BC755ADA434200EA9D0D727C7A1C4FE618
+F7F56DE20BC03139DB436DF0F7F5ABC4952023326B44F5EA5E31B2483D01113B
+2BD7AD0D1C26A1FD37C2DD54BF5578229B3A73ECD174CC6DDF8D6EF1D2DF4A2A
+1B9236F6F697474CB1AA337295E75D1225E45258E24A61B227C6B0A2C95F8CCC
+D895B4B2F766379DA4811B27A25978C5630AC2287DB129BDB53CF0470BBC674F
+C928E20612
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (noteparb.dvi)
+@start /Fa 199[56 4[56 51[{}2 99.6264 /CMBX12 rf /Fb
+154[44 44 44 44 41[44 3[44 1[44 44 2[44 44 44 44 43[{}12
+83.022 /CMTT10 rf /Fc 172[66 11[106 24[0 0 37[0 5[0 0{}7
+132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fc(G)-244 29 y(S)-180
+212 y Fb(c4d-2+1)p -80 129 4 117 v -79 13 a Fc(\007)-41
+46 y(\000)168 279 y Fb(d8)p 188 104 4 108 v 189 104 a
+Fc(-)189 -4 y(\007)323 212 y Fb(c4d+2)p 343 129 4 117
+v 344 13 a Fc(\007)344 -20 y(\000)591 262 y Fb(e8)p 611
+88 4 108 v 612 88 a Fc(-)612 -20 y(\007)p 766 98 4 135
+v 787 212 a Fb(c4d-2+1)p 847 129 4 117 v 848 13 a Fc(\007)887
+46 y(\000)1095 295 y Fb(c8)p 1115 121 4 108 v 1116 121
+a Fc(-)1116 13 y(\007)1250 212 y Fb(c4dd+2)p 1270 129
+4 117 v 1271 13 a Fc(\007)1271 -20 y(\001)1540 312 y
+Fb(b1)p 1560 137 4 108 v 1561 137 a Fc(.)1561 29 y(\007)p
+1670 98 4 135 v 1731 212 a Fb(c4d)p 1750 129 4 117 v
+1751 13 a Fc(\007\000)1999 279 y Fb(d8)p 2019 104 4 108
+v 2020 104 a Fc(-)2020 -4 y(\007)p 2174 129 4 117 v 2175
+13 a(\007\000)2223 195 y Fb(c4.d)p 2442 104 4 108 v 2443
+104 a Fc(-)2443 -4 y(\007)p 2597 98 4 135 v 2637 28 a
+Fa(3)2637 95 y(8)2785 212 y Fb(c4)p 2805 129 4 117 v
+2806 13 a Fc(\007)3004 295 y Fb(c8)p 3024 121 4 108 v
+3025 121 a Fc(-)3025 13 y(\007)p 3179 98 4 135 v 3260
+129 4 117 v 236 w(\007)3260 195 y Fb(c4,c)p 3480 121
+4 108 v 3481 121 a Fc(-)3481 13 y(\007)p 3635 98 4 135
+v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparc.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparc.eps
index 93dbe155789..6bff9a44bd5 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparc.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/noteparc.eps
@@ -1,442 +1,442 @@
-%% LaTeX2e file `eps/noteparc.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: noteparc.dvi
-%%CreationDate: Wed Jan 21 14:02:09 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 734 483 794
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE noteparc.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1402
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
-%!
-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]/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[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
-%%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 43 /plus put
-dup 45 /hyphen put
-dup 46 /period 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 56 /eight put
-dup 57 /nine put
-dup 60 /less put
-dup 62 /greater put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 110 /n put
-dup 115 /s put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
-7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
-81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
-D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
-740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
-921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
-495069A1DDF11DC589D2E91C1514C2799C5B9549A3CEBDEEF87B000E2686DF86
-A256B3BDB4FDC79C218947A13035A3DD2DAC7684B9DE946538F2015273B3DE1F
-40FA724FEDEF2A55EE15C84A5CF29933AB3A46E4CCF552939B7AAAB007CD23C7
-FAD6E3D0DC8157A389BBB3C8C2D91E42A8F3E97D7E71DB1A31E211B10CE936B8
-BC2BA8E68F6013BE26E198EF3850072A86E1B243D3D9F9ACD0599807382D7F9B
-28929369E708C9FB86D79097C4BB3C8A76EC327C921F5DE5387463818BBAA1A7
-1A96F1A3279CCC5BDF1642206044F4707F3F4239774EC5D2A5353C77EEE12722
-F9712F9A88DBA8330981646E985FA02EA06DB14CA1F713A8EA6A54D4D4D8A18B
-49B70485BB000F5AD372CD4F290E84611217ECA70B2B6B81870D9F218D6998DC
-60F58E1CC11183A3C769172BA9946F66D3F9D51BF73E000254A8671C3523CAB6
-20C1D7CA68CEC69209777C4077D9E4DA668B24760843DE0A896D413C85B4A4D6
-D7335853650EAA263A1E1BB95CFF3AD96057488ADDC936C2663E536691FD02BF
-4F4A88512A5126B880FF51D981A08AA153E579E54A8A162BD9BB26137253BA8B
-581941E759A7CA7FCAC8F94568E2E17613658DCF3506FD4770918757F110434F
-254274D012BC8E21B5277ACC63EB23D7C8372773FECF95E68FE5579E0720E18A
-2BB150D25BFB1A7EDD694614DB003C32C3CD2BCD8F270DE51FBC211C499AA0B5
-4B0EDFF7B23D8A22E7E602AB4A355FBA4E4E99A88103935A91A910B6AC680A8E
-B59EF077EF22D373A323A5A71768EDB3C6F00EF2696A76E9EBFC9D84A09B87CC
-052BEDEAE67B8AEA4A4E5316ABECDC9B4B7BDB26280DB9D3AAFF8D9EE36AC437
-10CEC80D5637774B7BC99AC842F09FFFA9F0D702ADD22D096B585383EE26283D
-14BBF065E7C6B5EAB9F1650B5E1413DB1D4829634FF529E2973359FA01074F2D
-6901F3010B0D203F167F1F8943E97556A4DA0B0016A16F8E096022272D0157A8
-387F89D345BBB483C4A36074050761DDBEA2866319AB96110DA5A51F85AC92F8
-2F64481F8A1BC991B2A0991E653273FAE4CE000CAA21B52D7C879FA9CC696610
-97E92B4E5579760E8B3EED85473B958679661C395C70E89F42FF9266D82F4B88
-43794F398931EFF99A37FEF1DC0BE6E7B9C33DB7AB14D41730F3F4880AEA047D
-DB2BCBDC8F5FEBA09B7004C1CE3826DECAD87B43B6F36104E101DB6F818A969B
-A68D5BAAB57980B12E7BE3ABD448A09A3C18E3CE047E3001BB4B1F7EE3E45B9F
-D66CA18630021664234BF52630C04B28DABCB7894262F503F8F30FDBE0197C7B
-593C724042FD5B5967CB7492BA3E97E4A28E2DD3DCFD605466B466207E5B000B
-58D73C065CDD7E21F59DA5C4C206854B2847820D8165266B8B1590C4465D5179
-143FBA3B56AF85ABB1289874666D8B9E9BD08BCC7F9B8DDCA6ED9C0223BF1B22
-C23E171EE66B0B62B853F1D5C10FD8F8A12E831F67A61DF55ED3341F89D3DE64
-DBC9549E5078ED02BD8FD96538EEB2220691CDBF06C1A00209708A7306FC813B
-299AC1A2F7962D90182FF073105CE637FE094F97D271695E775DCDDAE438D03A
-950A9BCB4CA1BAFBAD094D1346E35457F83B32BA8218B94DC760EE57773A06F4
-7796FFEA26625BB6C52D83CDAB7AAD70E10CB9AE83CEA179AF4A252DE8DF1E62
-C706DB0652A1A7F19C2D8487DBBB8F2E75DCE2856BB3DB92A7EC371B0460FC8D
-58CA8C6C7D386AA08931AA99234B688F500113CEC67ED38C9FD88337F7EBF58F
-2ED0A2554455B3AE1D663A765C2E3AF50E3F0A67AD551E933F476948B53505F4
-61499E66B3D64A5B1CE260A74152FFAE463C8F9DC64E457F0D34C0407C80FB87
-A9564712EA7A7A08A71D114A3E263E5AACB9E320DFE09C21EC05EF776E5E88C5
-6756D840A5FEEB315A16AC3B74E42B4CA0D08D381BFF600FD515BD14B1131DF5
-6FF553DD3CE94FE6470590B5AE2B545877A894375175060C0B93DFC0ACA49EAB
-6C6D347157B703E79EA65D42CCE46CC998FC3941DBEBAC909F1DC18A94EA64D5
-C113393DA5F34BEFC74792A8FEE106855C24C3BA15768C64E9FB4BD0CD1BA318
-002C9FD0D6391BF069E57475A7E565BC5AB99767D5CA8A63F70D296381537E85
-5FC85EE136D7BBD1B99EAC9CDF4611179AB60D7315F5509AEE0C67EE8C30A396
-AA77F4FE4327428B389A4FC1CF3D099432165A07137EBE0777AD2AEBDDDC6641
-824B92513FEA92C3364A8A2ED9687086BAFBE842722D02C1C297F6DB44BEBAB0
-4EEA68F5062AD7827B3BC59A97F02543B753094B8ACDBEA32753E9A1EC3AFCAC
-1603027DCFEAB88BE498BDFEBD41FE38FA178806A0C59FC0519CF14FDDE66A20
-60CF097156063069521187D64FDB0B339242716E0ECFA7C48415BC6711AF2605
-137B6930C4BB1DC42FE9379244FA9C1CD7A41434A1D9A9E104C08DEBE1260F66
-BF30EAC2643C3E68E383ECE6E41DAB4DA1EF9C0CBF9BB22A3F8ABFD8008D70D0
-E5B42290EBE499C767DF0743FFFFC721D8265631DECFAF653B4C4371CF669A42
-523BE328339012B5B0BF16C1574E641953AB61649877E229E5FF3C5D62D3A07D
-32D9B82FACFEC06DADB542D089D17A87D9EF685ED11F14589522407D387F69B0
-CA698486A56B8F54F40685B921A21F0BA0D17E40D916F6535C0E264C7209B8F8
-C46139684911545F755A71D592B4BC5AC8204353BFE9F140598A3AD6BBC642AB
-38507F36A597A8819448250232074B8CC4CDF46087DA407B1492BEAAEEEE951C
-16FE6A0DECCE7B0A7D23A7D4A7CD6C3A3F5DF30404A5E945399533E5DD8D1A68
-074660B996D6CF224B5CB46C3C0586F89BE10F1327E707BA1BB6D6501ED5CC5B
-8618AEAA33CFC9C3F18EA6EC9977A22113DE0CEFEBAE067C3B6A32C728987926
-D9DD1AE3EF2008A5DE95BA0CD66BD20F2DFDFFBB148598D2C8C940975F5D6D23
-FBF10B553CAE7C892B2F95012A9B768817D81C13B9E12FEE75DCA03F0F1AB77D
-02C0DC5C43CDA9EB0BE8E1211C7B47184513AFA7BF98C3A74AD9F319E0C73313
-6C0FCCEF931028631D9CD17602EF0E60D646C8B17DA6F533D3C902DDF331BA9B
-3DF4FC1F0191498C426C6AEB69B7F45A0DF2335B69E09ED263878E83E42E0C35
-DB3F3C5522443401EC56F628C5B466AAF93D0D58C499AC823F6AA7BCFF3BF21E
-5AD9A472B3CF600918C5B9155EA05EC1367CBD2F031C09E712F3DD3B2926847D
-EA8756FA9327F333FAB77EC3F8D636D95FE9926140C466C7A060A9DE55927F10
-D471FD682DE24BB8A5F2E1BA4BC111C73A38C5A1241D1953A3CB6B1362AC131B
-E1878CA4CCBFCF549CB4CB268279575F04DF1DA6B0C0DEEDFA23812FE5CD38BE
-1A14C57E955120F52D3BCB1B66D7B1E5D1E24DE46B737F60F7C968C7B30787A9
-68967EEAB11B1AFC0201F211147B81AD6C8223AD6C031EAE5995A61911EE212A
-8E2DB52F5AB4B46FCCF6629B19F475CBC11C539047DEBF3AB0FE6B73619644DF
-9E30E227282D208CBB8CEA06B20E94FBA31590B1482177DD6C3E81AE67CDCBA1
-301B243D1B16BD0FF2E3280FC1D31FFC094E872E3449D79C93331C7EB8C88152
-ABA1221EF1BAEE1297FB6A95DAE8E180B05B88BF47C3164C5AA2E5E4B40A8473
-9426A1E0703B429903C34F9D62036CBCDBA28AFC2EE33AD78B1975801CB7485F
-C6D812DD6C0BA74A738EE8356D4C353CE8FF67004BE92E355703576A4E09BDBA
-A1977DC1C06E273E4D86B4FD7501BFDE679729763C05E0C1DDA2AE947758851E
-508CD591A9633276076A41E177320D321A5295BB33A126D59AD4DCE24B002940
-2F1BDBBDD8E2E8EEA37E989F793CE3C5BDCCE8ABA7B5283CB983C71AC662D4AA
-A69A40CFDF69CB655A5CBE57057DBA0CB97CE3624FFE9C669CDF4256C2489FED
-8D68FC4EC7CC8E01BDB88A71F85FCB03FD2E1B3F71C708669B793B6590523E95
-9B51F4CA8A4C4B529DCB4604694D398FB452C579D90363D2364B7C41522BA211
-AC389FAE45923D145D5B72A91BD204BCC0BA10910E58634987D987C9F152F548
-45E15DC8BC7E39B844107613F40CBBBF59159E677D1CB36738DE414DB43B2677
-3BA899DC73BFB8E9C3D6602D8EC106A746D995E84B74EFE96E366BD4D6147214
-3AA1E6D05D260C175EBC6059A71251628858688D2DAAEBBBE16A5F65F6BBD367
-59B5A068988AFEE87C34944B7A5562ACE4FF8DBE4515B3B42042095451835CD2
-CBA0CF719E54313469493FCAE9E46F272A234D3D72D8F90C7BD6BB825DFB294D
-E726076AF3808AF91494E4867DCF67E517A03B2BE4FAA502DED7EC7918138A28
-5F0F2CB7AC770FC68F387144E4077EB5A838B3E08D56D0247E9DE994F554FABC
-8A206D98B06E5C523BA6C860C30127CEF042F67FB96C71572C34087CA6ED3CFE
-7523D99EA0CAAB6F49C3C5255BF0FB997CF767E7AC04C0399D0286EFAA15B9B0
-74D9D265DECBBE232F0F36BDD1C33795D2E69C485ACE5AACD6E832E286E2C2F4
-A9AFB9642910481A0ED165C601AB6E030B82B987E9F7D9EC9586D3F1F5433FB1
-C9913E5C4EAE74F4843FE33EB2915635317A9AFDEB525C6FF5D6A2BF994AFAA5
-04DB4E99A9A6BD343477D18711802118904C811C48BEFA4AB1E454A6E14AF293
-E85C78F287AC0D11E7BE110683DF922C5208D67EB52FA3197C89636657C2C792
-638BD90C700DDEBDC1C45E6358AC35EB3A58A973934BAE762D1704E7700686F1
-7855CCF651BEA2A3C8DB4989B862EAF8D375E9A31B04AE59FA41035DF3C23510
-389C00095B6A93AFA74917AD2634763AD044AACBD776AAF9AE6EAAE4
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 50 /two put
-dup 52 /four put
-dup 53 /five put
-dup 54 /six put
-dup 71 /G put
-dup 83 /S put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
-37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
-9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
-50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
-CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
-BF379E82AAC67D2B525096311CB3EB38519CBBA5763BC35F17680EFD0BA3A114
-DBA1E29AB53CB60CE6F2F2D54DA981BA238A67C494922778CB7C324EE93B044B
-98383C5CC7BFE0D8F4B7D67CE243E72A7418EFADCF7EF9CB960C34C6F9478D53
-41B59AB05909ADC3A5A5315B6C472F79B1ED2BD09E06C4B597EBE1F537378B7E
-2028EE56949E91DB1FA3A97ABDA31120A3E33D098E0DC67FA33638F9C7DB6090
-E3DCCCCDA81215F10B5BF153911D5F8F86B1967A56CE6537323086FF88D4DA63
-2832AD9B20F65383CF19E9536C2AFFC04C98D3AB546AB3794AEC10968AB5B46D
-95DF663C4445ED3D90AE429F9E8D184C0AA1FF9B6FED8F6A431877E32C34B6D4
-AE62C46FEF64139F20539BF200264C55A91297CFCAB19F38072EE7479F820F57
-A7B0DF1C1C2AD1BDD42779B30010B4E5681409A6CFEF2998B7C6684DABC3D02B
-F1AFC916E2875851943467E8935E5B16ED8D1139F174D66051E77A3989A8C1BD
-860829C1FC5AB7FD68218CF76380F3C3EFF3567AAFC00F15E6EAE41F9947DA32
-0009812F446C5852139757C60958E5CD434741B35CFC1A4EEB2D2FA9B0268DB1
-10EBEF130A63D83D5D640625C07C982752B9F0E075DCECD615F7A84231F79E6A
-14B30CF3DCED7BF8AD6B6F1646FC545565AEC6595FB8C26419FEFF5CE2AF8046
-19345EAFA43AACD76CFC5848A8039CCF9CEB0E79A06B71C0D66467F7593FEF6A
-75B76A27BDCFC44F56038D6D7323770FAD36CC222392062D187404D00C502177
-445CBA744D9CB0A077D7901EA830D1EBCE08531B11E7AC503902BCF484E8B79A
-FC5A57F906E7ED94ABD2B9F06FFE165951426B16F06F582B10CE839558BD07F4
-40900D6AC9FFF055B087C9F121B2E9F95523047679943D245257AC0E99CC1AC9
-F83CFCA21DAD89AA1248AC105632B41797E5E2F833013F3AF35D6C7448280F82
-2B16AAAD44C5647824104F26895F368DA40124E7CB980AE4A4415218AB30BF63
-32E90F24CBDF6586C0A174B4E68AF105D2AF9B2258F1C8A5CD36DF943C97913C
-5BE7DD366FBA166ED87C87547EE703B00DFBACAF6F6A9B5101A66416131BB4B2
-35D5CDC2092F1DBFABD5BCE94848D4EE6ECD8E8B10F2A7912B5E3F90B3374759
-A934FE30E9CE93FF19C2F90CD82E33D028B50376B994761AAD7A4A12ABB01EBC
-57FD27A15AEDEF44153CB9C3B7E656CD110BF5968E3F38D47D34F3FC94AE81E0
-2311E7A5AC456B69113E9CA328A9A18F9E3257C756BC7937CF8DB521A640AB0B
-A989876AE72A754813C5C57C33985C21AD06A1237F52A378EAAE54C1DD71FB2F
-7C45B05F97964FB646938BEA39D0B10CEE879F3E9797AC669E00B15B6F5CF3F9
-C3B869B53C0F70AB78DAA2C869DE42CB7771462955E03029F4A8E4C408148010
-856E4A4FC44999C393CA94E4033B2FA45A4F554F7F483EA664BD9F9A5851DA4A
-116972A1AE2F402AD634D62E6901F2CCF253586DC794C4CB59CD761CB5AB52BC
-61303CF59E0C773A30178ED3F93768A87FD0732657B37D9818896C8B57232CED
-8A40E0791FA3963E05811172A2F3FE203CE1764BA7694D21ABD509EE246D428E
-D4430933D2ED9B436A7480D95D271C9DBC24300D90CDA405DEA3C67EC593C6E9
-4F30484E7C9D1B03DF3F3F75BC1EDE4D04F58E2B3EA2036AC027592E21EDA406
-B3E5917AFC7089458B17DD393CF139CF1B55F706F709863DB0C40D6FBED3536C
-2CF9820E57A9B81A35DCB38DA2DA8CEDB2F18CFD2D2EF42839DC83C60F9DBBC0
-FE6B92E86AAFED86355A21A744D2ADE7F2B23026EE1A6BA9A0B925299C9D320D
-0D7C719DC6684C55D379D47755F5367EB1A91E40F5CD09B29F2209610B6AD776
-A8C5F997A2A509DB0B2B4D900C2026DB1B6B4EF1F7729CDB19741A7412BD3DE4
-4A20DD514389AF7D23BF76F912302EFEB60249488B22879FDBB46ED5CFBF3A46
-F59789C6EE5181A840724D5D9791F5331A18832D6A647B3305E4EE7C3B58D8DC
-25ECF2A02D39CFA0F1B38D4218AAE010E01263B43EC51501B2D64876
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (noteparc.dvi)
-@start /Fa 140[44 4[44 7[44 44 44 44 44 35[44 1[44 2[44
-44 2[44 44 44 44 44 44 1[44 44 1[44 43[{}20 83.022 /CMTT10
-rf /Fb 172[66 11[106 16[40 40 40 1[40 41[0 0 7[{}8 132.835
-/TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)-192
-212 y Fa(c4+s+1+0)-92 -4 y Fb(4)p -52 129 4 117 v -51
-13 a(\007)187 295 y Fa(cf-1-1)167 29 y Fb(2)p 247 129
-V 248 13 a(\007)446 212 y Fa(cn-2+0)506 46 y Fb(6)p 546
-129 V 547 13 a(\007)785 295 y Fa(css+0-2)725 13 y Fb(5)p
-845 129 V 81 w(\007)p 1143 98 4 135 v 1113 212 a Fa(c4s<.85)1179
-13 y Fb(4)p 1252 129 4 117 v 34 w(\007)1492 295 y Fa(cs>.2)1519
-13 y Fb(4)p 1551 129 V -7 w(\007)1711 212 y Fa(cf<.3)1798
-13 y Fb(2)p 1850 129 V 13 w(\007)2089 295 y Fa(cf>.2)2117
-13 y Fb(2)p 2149 129 V -7 w(\007)p 2448 98 4 135 v 2537
-229 a Fa(c2s<.9)2481 13 y Fb(4)p 2557 129 4 117 v 37
-w(\010)2960 245 y Fa(bf<.4)2924 29 y Fb(2)p 2980 146
-V 17 w(\010)2557 -137 y Fa(e2s)2517 -20 y Fb(4)p 2595
--20 4 98 v(\010)2980 -137 y Fa(df)2940 -4 y Fb(2)p 3018
--4 4 104 v(\010)p 3402 98 4 135 v eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/noteparc.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: noteparc.dvi
+%%CreationDate: Wed Jan 21 14:02:09 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 734 483 794
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE noteparc.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1402
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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
+%!
+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]/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[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
+%%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 43 /plus put
+dup 45 /hyphen put
+dup 46 /period 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 56 /eight put
+dup 57 /nine put
+dup 60 /less put
+dup 62 /greater put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 110 /n put
+dup 115 /s put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A6ADAB001EDF5C9D6FE45735098A304A8BD4A0AC9980
+7FFE62FEAD3843EF8C45E1203E303D028897CFE1D4D0AB8BBA74CE279275A67E
+81AEA417A3E49397386B7304DC9247290A5CE2408114441EDD82F9B3A8E49C4D
+D9745142652BE8B82C2A9610B26EA1A71212CE97781A06B58C3DDD9179016AB6
+740166FF986AE856AFDD2D8955D95B2D0C57BC179F1D9136BEFBB6F17E8DE96E
+921502FB19F0C21F0A491F951D83972DECD70AA8987112F05C939A6FB073A5EA
+495069A1DDF11DC589D2E91C1514C2799C5B9549A3CEBDEEF87B000E2686DF86
+A256B3BDB4FDC79C218947A13035A3DD2DAC7684B9DE946538F2015273B3DE1F
+40FA724FEDEF2A55EE15C84A5CF29933AB3A46E4CCF552939B7AAAB007CD23C7
+FAD6E3D0DC8157A389BBB3C8C2D91E42A8F3E97D7E71DB1A31E211B10CE936B8
+BC2BA8E68F6013BE26E198EF3850072A86E1B243D3D9F9ACD0599807382D7F9B
+28929369E708C9FB86D79097C4BB3C8A76EC327C921F5DE5387463818BBAA1A7
+1A96F1A3279CCC5BDF1642206044F4707F3F4239774EC5D2A5353C77EEE12722
+F9712F9A88DBA8330981646E985FA02EA06DB14CA1F713A8EA6A54D4D4D8A18B
+49B70485BB000F5AD372CD4F290E84611217ECA70B2B6B81870D9F218D6998DC
+60F58E1CC11183A3C769172BA9946F66D3F9D51BF73E000254A8671C3523CAB6
+20C1D7CA68CEC69209777C4077D9E4DA668B24760843DE0A896D413C85B4A4D6
+D7335853650EAA263A1E1BB95CFF3AD96057488ADDC936C2663E536691FD02BF
+4F4A88512A5126B880FF51D981A08AA153E579E54A8A162BD9BB26137253BA8B
+581941E759A7CA7FCAC8F94568E2E17613658DCF3506FD4770918757F110434F
+254274D012BC8E21B5277ACC63EB23D7C8372773FECF95E68FE5579E0720E18A
+2BB150D25BFB1A7EDD694614DB003C32C3CD2BCD8F270DE51FBC211C499AA0B5
+4B0EDFF7B23D8A22E7E602AB4A355FBA4E4E99A88103935A91A910B6AC680A8E
+B59EF077EF22D373A323A5A71768EDB3C6F00EF2696A76E9EBFC9D84A09B87CC
+052BEDEAE67B8AEA4A4E5316ABECDC9B4B7BDB26280DB9D3AAFF8D9EE36AC437
+10CEC80D5637774B7BC99AC842F09FFFA9F0D702ADD22D096B585383EE26283D
+14BBF065E7C6B5EAB9F1650B5E1413DB1D4829634FF529E2973359FA01074F2D
+6901F3010B0D203F167F1F8943E97556A4DA0B0016A16F8E096022272D0157A8
+387F89D345BBB483C4A36074050761DDBEA2866319AB96110DA5A51F85AC92F8
+2F64481F8A1BC991B2A0991E653273FAE4CE000CAA21B52D7C879FA9CC696610
+97E92B4E5579760E8B3EED85473B958679661C395C70E89F42FF9266D82F4B88
+43794F398931EFF99A37FEF1DC0BE6E7B9C33DB7AB14D41730F3F4880AEA047D
+DB2BCBDC8F5FEBA09B7004C1CE3826DECAD87B43B6F36104E101DB6F818A969B
+A68D5BAAB57980B12E7BE3ABD448A09A3C18E3CE047E3001BB4B1F7EE3E45B9F
+D66CA18630021664234BF52630C04B28DABCB7894262F503F8F30FDBE0197C7B
+593C724042FD5B5967CB7492BA3E97E4A28E2DD3DCFD605466B466207E5B000B
+58D73C065CDD7E21F59DA5C4C206854B2847820D8165266B8B1590C4465D5179
+143FBA3B56AF85ABB1289874666D8B9E9BD08BCC7F9B8DDCA6ED9C0223BF1B22
+C23E171EE66B0B62B853F1D5C10FD8F8A12E831F67A61DF55ED3341F89D3DE64
+DBC9549E5078ED02BD8FD96538EEB2220691CDBF06C1A00209708A7306FC813B
+299AC1A2F7962D90182FF073105CE637FE094F97D271695E775DCDDAE438D03A
+950A9BCB4CA1BAFBAD094D1346E35457F83B32BA8218B94DC760EE57773A06F4
+7796FFEA26625BB6C52D83CDAB7AAD70E10CB9AE83CEA179AF4A252DE8DF1E62
+C706DB0652A1A7F19C2D8487DBBB8F2E75DCE2856BB3DB92A7EC371B0460FC8D
+58CA8C6C7D386AA08931AA99234B688F500113CEC67ED38C9FD88337F7EBF58F
+2ED0A2554455B3AE1D663A765C2E3AF50E3F0A67AD551E933F476948B53505F4
+61499E66B3D64A5B1CE260A74152FFAE463C8F9DC64E457F0D34C0407C80FB87
+A9564712EA7A7A08A71D114A3E263E5AACB9E320DFE09C21EC05EF776E5E88C5
+6756D840A5FEEB315A16AC3B74E42B4CA0D08D381BFF600FD515BD14B1131DF5
+6FF553DD3CE94FE6470590B5AE2B545877A894375175060C0B93DFC0ACA49EAB
+6C6D347157B703E79EA65D42CCE46CC998FC3941DBEBAC909F1DC18A94EA64D5
+C113393DA5F34BEFC74792A8FEE106855C24C3BA15768C64E9FB4BD0CD1BA318
+002C9FD0D6391BF069E57475A7E565BC5AB99767D5CA8A63F70D296381537E85
+5FC85EE136D7BBD1B99EAC9CDF4611179AB60D7315F5509AEE0C67EE8C30A396
+AA77F4FE4327428B389A4FC1CF3D099432165A07137EBE0777AD2AEBDDDC6641
+824B92513FEA92C3364A8A2ED9687086BAFBE842722D02C1C297F6DB44BEBAB0
+4EEA68F5062AD7827B3BC59A97F02543B753094B8ACDBEA32753E9A1EC3AFCAC
+1603027DCFEAB88BE498BDFEBD41FE38FA178806A0C59FC0519CF14FDDE66A20
+60CF097156063069521187D64FDB0B339242716E0ECFA7C48415BC6711AF2605
+137B6930C4BB1DC42FE9379244FA9C1CD7A41434A1D9A9E104C08DEBE1260F66
+BF30EAC2643C3E68E383ECE6E41DAB4DA1EF9C0CBF9BB22A3F8ABFD8008D70D0
+E5B42290EBE499C767DF0743FFFFC721D8265631DECFAF653B4C4371CF669A42
+523BE328339012B5B0BF16C1574E641953AB61649877E229E5FF3C5D62D3A07D
+32D9B82FACFEC06DADB542D089D17A87D9EF685ED11F14589522407D387F69B0
+CA698486A56B8F54F40685B921A21F0BA0D17E40D916F6535C0E264C7209B8F8
+C46139684911545F755A71D592B4BC5AC8204353BFE9F140598A3AD6BBC642AB
+38507F36A597A8819448250232074B8CC4CDF46087DA407B1492BEAAEEEE951C
+16FE6A0DECCE7B0A7D23A7D4A7CD6C3A3F5DF30404A5E945399533E5DD8D1A68
+074660B996D6CF224B5CB46C3C0586F89BE10F1327E707BA1BB6D6501ED5CC5B
+8618AEAA33CFC9C3F18EA6EC9977A22113DE0CEFEBAE067C3B6A32C728987926
+D9DD1AE3EF2008A5DE95BA0CD66BD20F2DFDFFBB148598D2C8C940975F5D6D23
+FBF10B553CAE7C892B2F95012A9B768817D81C13B9E12FEE75DCA03F0F1AB77D
+02C0DC5C43CDA9EB0BE8E1211C7B47184513AFA7BF98C3A74AD9F319E0C73313
+6C0FCCEF931028631D9CD17602EF0E60D646C8B17DA6F533D3C902DDF331BA9B
+3DF4FC1F0191498C426C6AEB69B7F45A0DF2335B69E09ED263878E83E42E0C35
+DB3F3C5522443401EC56F628C5B466AAF93D0D58C499AC823F6AA7BCFF3BF21E
+5AD9A472B3CF600918C5B9155EA05EC1367CBD2F031C09E712F3DD3B2926847D
+EA8756FA9327F333FAB77EC3F8D636D95FE9926140C466C7A060A9DE55927F10
+D471FD682DE24BB8A5F2E1BA4BC111C73A38C5A1241D1953A3CB6B1362AC131B
+E1878CA4CCBFCF549CB4CB268279575F04DF1DA6B0C0DEEDFA23812FE5CD38BE
+1A14C57E955120F52D3BCB1B66D7B1E5D1E24DE46B737F60F7C968C7B30787A9
+68967EEAB11B1AFC0201F211147B81AD6C8223AD6C031EAE5995A61911EE212A
+8E2DB52F5AB4B46FCCF6629B19F475CBC11C539047DEBF3AB0FE6B73619644DF
+9E30E227282D208CBB8CEA06B20E94FBA31590B1482177DD6C3E81AE67CDCBA1
+301B243D1B16BD0FF2E3280FC1D31FFC094E872E3449D79C93331C7EB8C88152
+ABA1221EF1BAEE1297FB6A95DAE8E180B05B88BF47C3164C5AA2E5E4B40A8473
+9426A1E0703B429903C34F9D62036CBCDBA28AFC2EE33AD78B1975801CB7485F
+C6D812DD6C0BA74A738EE8356D4C353CE8FF67004BE92E355703576A4E09BDBA
+A1977DC1C06E273E4D86B4FD7501BFDE679729763C05E0C1DDA2AE947758851E
+508CD591A9633276076A41E177320D321A5295BB33A126D59AD4DCE24B002940
+2F1BDBBDD8E2E8EEA37E989F793CE3C5BDCCE8ABA7B5283CB983C71AC662D4AA
+A69A40CFDF69CB655A5CBE57057DBA0CB97CE3624FFE9C669CDF4256C2489FED
+8D68FC4EC7CC8E01BDB88A71F85FCB03FD2E1B3F71C708669B793B6590523E95
+9B51F4CA8A4C4B529DCB4604694D398FB452C579D90363D2364B7C41522BA211
+AC389FAE45923D145D5B72A91BD204BCC0BA10910E58634987D987C9F152F548
+45E15DC8BC7E39B844107613F40CBBBF59159E677D1CB36738DE414DB43B2677
+3BA899DC73BFB8E9C3D6602D8EC106A746D995E84B74EFE96E366BD4D6147214
+3AA1E6D05D260C175EBC6059A71251628858688D2DAAEBBBE16A5F65F6BBD367
+59B5A068988AFEE87C34944B7A5562ACE4FF8DBE4515B3B42042095451835CD2
+CBA0CF719E54313469493FCAE9E46F272A234D3D72D8F90C7BD6BB825DFB294D
+E726076AF3808AF91494E4867DCF67E517A03B2BE4FAA502DED7EC7918138A28
+5F0F2CB7AC770FC68F387144E4077EB5A838B3E08D56D0247E9DE994F554FABC
+8A206D98B06E5C523BA6C860C30127CEF042F67FB96C71572C34087CA6ED3CFE
+7523D99EA0CAAB6F49C3C5255BF0FB997CF767E7AC04C0399D0286EFAA15B9B0
+74D9D265DECBBE232F0F36BDD1C33795D2E69C485ACE5AACD6E832E286E2C2F4
+A9AFB9642910481A0ED165C601AB6E030B82B987E9F7D9EC9586D3F1F5433FB1
+C9913E5C4EAE74F4843FE33EB2915635317A9AFDEB525C6FF5D6A2BF994AFAA5
+04DB4E99A9A6BD343477D18711802118904C811C48BEFA4AB1E454A6E14AF293
+E85C78F287AC0D11E7BE110683DF922C5208D67EB52FA3197C89636657C2C792
+638BD90C700DDEBDC1C45E6358AC35EB3A58A973934BAE762D1704E7700686F1
+7855CCF651BEA2A3C8DB4989B862EAF8D375E9A31B04AE59FA41035DF3C23510
+389C00095B6A93AFA74917AD2634763AD044AACBD776AAF9AE6EAAE4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 50 /two put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 71 /G put
+dup 83 /S put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8EC7934A8988317F820C3833204CCB641AB035E474D3D0F4CBC0FAAD
+37018CCA129AC521C8E8916B21A7EDED9AB7F0FE2404D8278693189630810EF1
+9FAE92A28B9DAD3491B0FCE1A8A3CFF8A6EFFD032ACF581C1DE887B96C69FEB1
+50C270FCB72CC52017718C53866E71FE25ED03BF0D93109BADA749C7537F43A2
+CA4C3CF2FCBA242909BC178114785C0A3924FB763B95C107C9402ED186369245
+BF379E82AAC67D2B525096311CB3EB38519CBBA5763BC35F17680EFD0BA3A114
+DBA1E29AB53CB60CE6F2F2D54DA981BA238A67C494922778CB7C324EE93B044B
+98383C5CC7BFE0D8F4B7D67CE243E72A7418EFADCF7EF9CB960C34C6F9478D53
+41B59AB05909ADC3A5A5315B6C472F79B1ED2BD09E06C4B597EBE1F537378B7E
+2028EE56949E91DB1FA3A97ABDA31120A3E33D098E0DC67FA33638F9C7DB6090
+E3DCCCCDA81215F10B5BF153911D5F8F86B1967A56CE6537323086FF88D4DA63
+2832AD9B20F65383CF19E9536C2AFFC04C98D3AB546AB3794AEC10968AB5B46D
+95DF663C4445ED3D90AE429F9E8D184C0AA1FF9B6FED8F6A431877E32C34B6D4
+AE62C46FEF64139F20539BF200264C55A91297CFCAB19F38072EE7479F820F57
+A7B0DF1C1C2AD1BDD42779B30010B4E5681409A6CFEF2998B7C6684DABC3D02B
+F1AFC916E2875851943467E8935E5B16ED8D1139F174D66051E77A3989A8C1BD
+860829C1FC5AB7FD68218CF76380F3C3EFF3567AAFC00F15E6EAE41F9947DA32
+0009812F446C5852139757C60958E5CD434741B35CFC1A4EEB2D2FA9B0268DB1
+10EBEF130A63D83D5D640625C07C982752B9F0E075DCECD615F7A84231F79E6A
+14B30CF3DCED7BF8AD6B6F1646FC545565AEC6595FB8C26419FEFF5CE2AF8046
+19345EAFA43AACD76CFC5848A8039CCF9CEB0E79A06B71C0D66467F7593FEF6A
+75B76A27BDCFC44F56038D6D7323770FAD36CC222392062D187404D00C502177
+445CBA744D9CB0A077D7901EA830D1EBCE08531B11E7AC503902BCF484E8B79A
+FC5A57F906E7ED94ABD2B9F06FFE165951426B16F06F582B10CE839558BD07F4
+40900D6AC9FFF055B087C9F121B2E9F95523047679943D245257AC0E99CC1AC9
+F83CFCA21DAD89AA1248AC105632B41797E5E2F833013F3AF35D6C7448280F82
+2B16AAAD44C5647824104F26895F368DA40124E7CB980AE4A4415218AB30BF63
+32E90F24CBDF6586C0A174B4E68AF105D2AF9B2258F1C8A5CD36DF943C97913C
+5BE7DD366FBA166ED87C87547EE703B00DFBACAF6F6A9B5101A66416131BB4B2
+35D5CDC2092F1DBFABD5BCE94848D4EE6ECD8E8B10F2A7912B5E3F90B3374759
+A934FE30E9CE93FF19C2F90CD82E33D028B50376B994761AAD7A4A12ABB01EBC
+57FD27A15AEDEF44153CB9C3B7E656CD110BF5968E3F38D47D34F3FC94AE81E0
+2311E7A5AC456B69113E9CA328A9A18F9E3257C756BC7937CF8DB521A640AB0B
+A989876AE72A754813C5C57C33985C21AD06A1237F52A378EAAE54C1DD71FB2F
+7C45B05F97964FB646938BEA39D0B10CEE879F3E9797AC669E00B15B6F5CF3F9
+C3B869B53C0F70AB78DAA2C869DE42CB7771462955E03029F4A8E4C408148010
+856E4A4FC44999C393CA94E4033B2FA45A4F554F7F483EA664BD9F9A5851DA4A
+116972A1AE2F402AD634D62E6901F2CCF253586DC794C4CB59CD761CB5AB52BC
+61303CF59E0C773A30178ED3F93768A87FD0732657B37D9818896C8B57232CED
+8A40E0791FA3963E05811172A2F3FE203CE1764BA7694D21ABD509EE246D428E
+D4430933D2ED9B436A7480D95D271C9DBC24300D90CDA405DEA3C67EC593C6E9
+4F30484E7C9D1B03DF3F3F75BC1EDE4D04F58E2B3EA2036AC027592E21EDA406
+B3E5917AFC7089458B17DD393CF139CF1B55F706F709863DB0C40D6FBED3536C
+2CF9820E57A9B81A35DCB38DA2DA8CEDB2F18CFD2D2EF42839DC83C60F9DBBC0
+FE6B92E86AAFED86355A21A744D2ADE7F2B23026EE1A6BA9A0B925299C9D320D
+0D7C719DC6684C55D379D47755F5367EB1A91E40F5CD09B29F2209610B6AD776
+A8C5F997A2A509DB0B2B4D900C2026DB1B6B4EF1F7729CDB19741A7412BD3DE4
+4A20DD514389AF7D23BF76F912302EFEB60249488B22879FDBB46ED5CFBF3A46
+F59789C6EE5181A840724D5D9791F5331A18832D6A647B3305E4EE7C3B58D8DC
+25ECF2A02D39CFA0F1B38D4218AAE010E01263B43EC51501B2D64876
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (noteparc.dvi)
+@start /Fa 140[44 4[44 7[44 44 44 44 44 35[44 1[44 2[44
+44 2[44 44 44 44 44 44 1[44 44 1[44 43[{}20 83.022 /CMTT10
+rf /Fb 172[66 11[106 16[40 40 40 1[40 41[0 0 7[{}8 132.835
+/TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)-192
+212 y Fa(c4+s+1+0)-92 -4 y Fb(4)p -52 129 4 117 v -51
+13 a(\007)187 295 y Fa(cf-1-1)167 29 y Fb(2)p 247 129
+V 248 13 a(\007)446 212 y Fa(cn-2+0)506 46 y Fb(6)p 546
+129 V 547 13 a(\007)785 295 y Fa(css+0-2)725 13 y Fb(5)p
+845 129 V 81 w(\007)p 1143 98 4 135 v 1113 212 a Fa(c4s<.85)1179
+13 y Fb(4)p 1252 129 4 117 v 34 w(\007)1492 295 y Fa(cs>.2)1519
+13 y Fb(4)p 1551 129 V -7 w(\007)1711 212 y Fa(cf<.3)1798
+13 y Fb(2)p 1850 129 V 13 w(\007)2089 295 y Fa(cf>.2)2117
+13 y Fb(2)p 2149 129 V -7 w(\007)p 2448 98 4 135 v 2537
+229 a Fa(c2s<.9)2481 13 y Fb(4)p 2557 129 4 117 v 37
+w(\010)2960 245 y Fa(bf<.4)2924 29 y Fb(2)p 2980 146
+V 17 w(\010)2557 -137 y Fa(e2s)2517 -20 y Fb(4)p 2595
+-20 4 98 v(\010)2980 -137 y Fa(df)2940 -4 y Fb(2)p 3018
+-4 4 104 v(\010)p 3402 98 4 135 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/ornament.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/ornament.eps
index 8e3e28ffd4f..d0bdf80bf37 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/ornament.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/ornament.eps
@@ -1,1502 +1,1502 @@
-%% LaTeX2e file `eps/ornament.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: ornament.dvi
-%%CreationDate: Wed Jan 21 14:02:42 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 602 510 795
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMSY10 CMBX10 CMBX12 CMTI10
-%%+ TeXMUSIX11-Regular CMR10 TeXMUSIX13-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE ornament.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1402
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX13-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX13-Regular 001.000
-%%CreationDate: 01-08-17 at 19.17
-%%VMusage: 1024 36748
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 650 350 0
-%%EndComments
-FontDirectory/TeXMUSIX13-Regular known{/TeXMUSIX13-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX13-Regular) readonly def
-/FamilyName (TeXMUSIX13) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -200 def
-/UnderlineThickness 100 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 650 def
-/descent 350 def
-end readonly def
-/FontName /TeXMUSIX13-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 86 /V put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -2558 5000 2562}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7FC717A06282102BEAB6E
-5127DF2C08934CA5B107A96329A3A606D51499FBF8DA4597359DFE76E800416E
-B2914645830E08DDC61E82928AA715CB8C10280898C9DB13ADEB09D2B8FE9158
-A754DF312FB71C27801B70AF28522D7E11596D5B78DF15A9F6A09522B6BE4B04
-4F540291FC9612FFC4ABCBFD9892254575356D4C9D3DCEE5A9E5FF2A53F02BFD
-4386CBDED83C22BBDFBD9CFC8AE968CBCBFD4F6C590B239616FEB41B11E74447
-C230B229DB37EDB820D61B6965C1F1F8FF629395CCE17AF6C6131E4E1D5616B8
-0BAAEB474CF39C17453321C384CBEFD5536102A579B1E300C53E6BCE5A547AA0
-AF108824572078914C787E5CCEBFF8123E81CEA52DD625B0751AAF8FC38C0038
-750C173080A9FC117506370DE557AA0BCC9CD4A39C0DF5627EC27F515A0EBA6B
-1F56CD4282F5BAD4FAA93CECBDA6E238759AB9DCAF079168EBF0C2ECB1601E21
-BAA0A5F566F5FC147C314E30DDEE8187EBE54A5D3FD3AB69E247297E1D645966
-F3D70B758881042B9A9E06D1DBA6162C739BC4C5106C45275E412CC4334C3CF9
-4A981A4F8D622F6502FC22B7ABDC397ED07EBD10A495048439B2A9E2E524DC1B
-CC1BC10458CA6C4395659B0DB69C3467040FFE55D555F885B480671C113EBFA2
-4E1473CF5FAF07873D331875CD54E4BBD087C44C4B9A8D68CF019127BA77CEB1
-4FCB5E56AC9622A381808CDDFD8C284BD081BC950DA10A37FB3A8DC20F6C6B95
-C0CA83987D35E52EB77F350BF340FBE8D5E7E124A253398B04B36A1E048DB809
-AC804E08BE2ADD5E3A54C061C5674437B04926FF6C2B66C6BB9AF21EBB43B820
-D0AECA99F9CB17A703448C5B00FAE72CDD3719B88C2D8909ACF079471E30DA53
-68F23AAAEDC2A0B31481B4A874997441415577BE5C37D897AA994877EB8148BC
-6357E734564E6CF8BFE9F0094D3F19B0BDEA6ED61228B76E0EEB3AED169323A0
-0909FEA40D9A13C4DE69C9C62B139966D4CE56A0D0DC59605E6EB617525DB4EB
-FCF1D7A553C13B3A947F7AA9EB57E1F7309D8283514B614828C43BDE46D00EBF
-3943BE65FE99DBCE9F16AA603E0A5A6E0450E46271C71749560CEB6AFEAD2194
-DD167D7653565E75B98CBF83C6DAC38D0A83797F957E47EA1FD44A33EE760A8C
-80ABA4CB4AFDC235D786046F80B403D285372181C7C38538F661A2C86F063EED
-FE18D22F9639567BD05D41FE005F19A2D7C0C386B79D9A4DCE6213EFD9471502
-B260A33457DE2A890EB07142B5C2182C127B7FAA8E56651F54AA3F5CD89F5678
-CBBCF1246441
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%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 63 /question put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3A3A4AAE8B33E71E4D
-02DEC8C94BCEA6B88FCC6940D4700E371B76295C26C6B423098A3A57AD41F0DC
-A7EF476FAFAF30B36B2268B9055F55100F35A8925085317CCF8666F132417AAB
-A5FB3F070DF1CC8CAB13CC24B4FC62AA06FDCC588D847D0A4C232E3AD5677DE8
-593A4E99A03A35942CE0F211067D815E95F80F722072DE3D6F652FB0C9C9843D
-A6DD2482804FE10153467FC0AFC951B645E30ECCABC655E444F87B8B46C868D6
-D2FAEF826C12ED0AC7340059522DE65BA324640B70E9B902E9FB32F894C4CF49
-421240850599926BFB60AEC2B30D2A6340553EF7512A32BEBC5C892A004DFE16
-DD9CA9ADB963D51374A806711890C1AC5997F21A14E7523CEDB295474BF8C3A0
-5017A993D91DABC265A39EE4A494BCDEE0775982D2EB9D2112ECA3C2E597CBD7
-A9BBAAF9A808FBE68DB5E710CD843327B1F360133AB8050418585ED2A27ACB5E
-D28FA1E9FCB1CE83942637B2A6BD6CF81D0F04480805E17E05FB37A385D6433E
-59230884274319372B3F691D60B533FCDBE7BC65101A046A23D417365FAF18AC
-8EAEEB99B34D37764CCA28A466731CE6FC9FACCBA91B72D7440A7BE1390540A5
-E42BB2215FABBF72DB85657F4A3558D4585AD1918E86DAACB863E2343EA4EAB4
-D57D768391594AFF7153A7B5D44489DBDDDA7D2F0D5051B62B7D90A1E8F3B23E
-6E061E7BAAC70DEC0F84304AEEC154CE8954D28D42F41B1650337E53B855227E
-90E41188315E45160DC15AB480F4E2893D9DDAB2DFCBE800B92B6545FA09FA12
-AB08A1A7F38F9B2A749BA0EDABBCBF893EFCF2FE1AB8B32F2698FD72012414EF
-53FF85C3017FACEDACECD2C5A72867A8792E48C82E3C903835E6B2864798E1BE
-6E1BEB09B9080D31B36695CE1C7E8B4D0E2B9E98DBBF6C68D53CC922A58F65DF
-AFDABA383FA19ED3063475CD3A616C7FF692E6401B80ADF8E09D6DBFE974AE09
-1F7AC7442640757A7AAC9C55FE669782182A14EDE31D7F66E3053AF6648F5817
-82383342BF31E3986759CF58BB8767F31CD54FCA813817A80ED827D1E13EC021
-D2AB87E15CA4756A7AD9CF29959054CD826492AF65F4CBFA5770864B6B094805
-FC2C0C5BD7EE76EB9418C68A37313FAC8C61CEB31B2BFC971FF075B7651BDF76
-8ACBD8919998C4E31696E8E17213D549482C2E2BDBEC5BE1FA58899327DF5D28
-6937872841865988F950AE741DF73CA06F3F093A2B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX11-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
-%%CreationDate: 01-07-25 at 04.06
-%%VMusage: 1024 36750
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 700 300 0
-%%EndComments
-FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX11-Regular) readonly def
-/FamilyName (TeXMUSIX11) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -200 def
-/UnderlineThickness 100 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 700 def
-/descent 300 def
-end readonly def
-/FontName /TeXMUSIX11-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 153 /Zacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -3182 6250 3186}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
-46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
-4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
-BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
-66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
-021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
-15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
-4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
-3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
-FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
-99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
-BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
-1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
-9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
-698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
-33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
-423775531C98D6D16EA470D1CF6A101C2659527FA9145E008860E294728C62BB
-A2C6AD31A05A13180271FA4370F51BA493A3B744404BF5F65496B401DC928352
-2B9B436D65DAFDF80336D769F8B96FF771FEE77C020C7490051C88531EBE04D3
-92E44119D84F77DE0C154CCD01C2E69AE1F0619B4378D3FB07A811A9AFCDCF44
-483F2900BD4BEB91E1B8EB1B75F967140641FC060C41FF9C79DC6721AC2E3848
-2F9357BC89E40AE46B117FB5BE874175DEDEE81893FAA39EB5F7DC2DB62D4B9E
-D0970A31B42A9BDB790593EC273A0AF8D92F57F60F6A98C23BBD673672E36D55
-8B02AFE04248E7E7374DBFA08FB38E3BC2FB71908032
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 114 /r put
-dup 116 /t put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
-98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
-2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
-CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
-F78C2BEAF545FB34D38EED3579B16A9724302E591A3997C60552511C02B69726
-6FB1FC45E4D494372887DEFAFB1671DB490472686C3D7335F91F0CBABB19416B
-834CA65E59C51BCF0B1EA832833AC7867A412EEEF98C56370869BEC4213B4224
-697A9BD8D207994D1A67D4B5567B9BF7022D97F696654C257ECB331A20E22DA3
-031DD2B5E1279B1CEA257E6CC4FD149FDB9793B5A5ABAC33BE2886199308C794
-C660D52A1D574A5952A34478F1959A1F3906E9A8861ACC8C89C9E68A18CF0159
-135DBDD1C223DBBDFEE880DE6F3A2BD4AB98B39AE9AA6CED045437B8203A499E
-96228E1DF45138D07915097DEB8F74636474DD431A8931713A20DE865441E558
-354F8CD26C6EBBFC64AFB4AA3F6FA146C8CBF498DFE7A13D8EF4F008D2AD956D
-C40E7814D669E20CB9E4C955FD3791FDF1E5EDCF6FEEA76B815DEBF03B20C50C
-21B2AEC25C0D9EC87473219434AEDD93E55B7134F8FA07E6CDC9C1ADC9903BAC
-89444860966D5E1909DFE94C7327A04D31A3A7F179B722C6E0C3B4EBC5EE77F4
-1768D2D94C716B56C4DCCC6A19E24D79128FB9DAD4C6DE933C0D6BE57795828B
-17E18B298D4735F6FF6E32F4C1C615D148D53CBAD0E4CF18ADC51DD2D6F93B8D
-AA2338F84F7BB848EA19CD9DAE23B1A6E2397C2EE2ECD0C156E550058A08
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 50 /two put
-dup 51 /three put
-dup 52 /four put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E15E0A3
-32D9D2069E82BB9906811AD94C3D5B5B92FA9D223A8EF8385B379C82A530F343
-CE4B760073EF4735DC3BF1CB9C19D924D2814D02DF8C1A14B14496D577B86C9F
-3E23D18EC1904C2769C59D3F1C8CABCE91D06649DE62292B7C5C0FBD963799A5
-30F6BE49EF663E843BABFC83223BAE75AECD722623A1D0662988B02C5642066D
-A1BB913233756BD835B56BEE11A2982F07E29E9C110BD6099D621C3344E3029F
-317178D8EB16A3703D9A56B7A997876A167C9FC9834A8D96F46959BD5A5E9B53
-6454847AD0C81A3EDBFEEE56FF7F8022FC982309ED7E18017A3E7D450205ED2C
-D62EB924F7611790D189CC13CB5F25644C2492FF63710528311B25D4AFCFFC93
-8B0A0B9EB00D7EBF987EAFA639FB6C5381262D6DC7B1B404733A0629683693D3
-CDC7E9628DEFAF90605E2C819C05B7DCDA47A7C73C6FBA0162F1164A844956F3
-A5AFA8B70784AC5D1EDEBF6A9A7B4E8D7015FB00CD51CAC4EB9BFBF481628FAE
-BCE5979AE9316357F783610AA79E45F1D25A84CC7CB0FD98130A27D188014BCF
-9A936FC12DAA35F0D7D1FBB7BA8394AE97F27E3B2B4CFCEBBFDB14BD0AB0C4D3
-5A67848DB068BCC52E67668683FE22C7B8BAE76C3C1A97B41B2E6132BFD79FE9
-D8F64DE434CA73992C4F4E96E01FE17E5B5B4F0E7C7EB6991C4AF5AC8BDA29F9
-AE7478C2A4C23B57298E54B18FB612F18377E5A32FF58C8EF86784390654D2D7
-90570F0C2A4B3E4BA527EA76CCE289F65664CC7F52DF26305E5D629970389C85
-E989A092D64AC5F02C3C92B0B071E066168BCAFB93D4100A1E5D047237D1555F
-3037AE8564A82360DE17A142C4C7036BDC1DB85B6DDF60DC167ED2901728D59C
-85C1F3FC3E093BA9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX10
-%!PS-AdobeFont-1.1: CMBX10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:06
-% 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 (CMBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX10 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 39 /quoteright put
-readonly def
-/FontBBox{-301 -250 1164 946}readonly def
-/UniqueID 5000768 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
-FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
-DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
-7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
-9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
-CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
-6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
-E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
-8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
-3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
-EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
-0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
-4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA620E40822E15C2AB
-8BF88EF4FF68D9C81564F0AC5495C426E3ED091CF4AEAD7696C3B00A0D6FB6CE
-60547AD516EC9CC7B904D6617F81D2AC5086C30E40057B3C8854C4893D3B1D82
-2D61C4414046FFBFDCD7AD22EE19016B50905C92287F9946F2DBA4CB1B18E118
-FD01CB5EB39E77C77A4BE276258F7EF35269272729704F2A26BDE6159C77034B
-5492340010118D673DD5EA0631B6540522A418DC654382226CE228E335051B5C
-04100E40BCA0A9F35CF931C5556F99BD9D1829A19FE05121DA69E300668B02F2
-9858B2B3A2C14799A00EA840A745D42F4092CF7B7D350435BA0B5A1984BCDA3D
-0C80714603B84AC0E1240BE5D109A361026794A31FA4008589F4327052C6E6A1
-5F65857EC1AF86BA8955C05B590BFD7D42460A7B7A537444AB5432F044186F22
-A21EFD308BE31E98ACBD5985D32C186EED51490BFA8EA2E85C1C74E528668B1F
-EF1FD463FD30F4487BDE23F858BBC4ABC7EBA07820757B360D8978E841CD929B
-52144F2BEEC0F86899B64A401EB30389252F9242F69167187D4C
-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 2 /multiply put
-readonly def
-/FontBBox{-29 -960 1116 775}readonly def
-/UniqueID 5000820 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
-7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
-A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
-E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
-221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
-27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
-5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
-0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
-DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
-71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
-4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
-515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609
-C627A8B149D71F3155BFBF5A359E54EFE40EB6AAF7344F336BBDFA5241D39DFD
-19DFE4F1B56DCAAEA84D9290E81FFAD8472517CB517C9F8D04EAF8E87A58341D
-57386FF17BF29235356C3F85FE85CCB75DFBD407A6B76C198356415768FE0D58
-0F0E0665E6B2EFC269256FCE0146C415E35D900293555D8B6CB2AA451586E477
-93461FAF0803AE54B9FEE351771B08F9F7D564B5F50CB4E660298DECF4DC0F67
-0A4DA5738D89F708019CDFF9443964830B406748B60EF34EA35EDA7DF1C05A1E
-A385C5DE4B171FCD735AA0C41E54B09D133E48FCAA3A75F1B05C2AD4CD792534
-4160FCF0C48076AD3174E1A970FD9A285EB251E016B2739E373B43F17A1D50BC
-02FB2383DACFF35A5503EE8D0C8147908BFF5FA0D9D06F243AA8B4FFFCD8FF4E
-ED02BC
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%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 43 /plus put
-dup 44 /comma put
-dup 46 /period put
-dup 48 /zero put
-dup 49 /one put
-dup 58 /colon put
-dup 62 /greater put
-dup 63 /question put
-dup 84 /T put
-dup 94 /asciicircum 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 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 120 /x put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-DA293B0C740987ACE9F2A8EC2DB98F85783C01623FD3612C7E4A84FA702EC190
-DA0F7C6D4C7BCFBC2C88F4FBEAA7248E35804AA88578AC3790A6E20860E4DF1E
-559AAD015A3FE8D6C826EB32307A623C8DFEDA68DA9A52AB88943B13C5F5795B
-0CFE3CB852BA8C7FAC395E4C66432DDA18247CFE6240C82AAF61A7D3FB6C4848
-7185D76522DACDAD6DA564240DBB494670FC1804D241E14CE8622ED8AC2ABC21
-3F81757FCDCA8EC6F0E9EA338B272A38B37541FBC7A2F92A74829C73672DA436
-B5E8D7CE3973366572192171C8E8BB426574719FF18F17FC7435152BDA9713CC
-9C8FCC9BE8728F705FE528FD94277202F0BF162CCC299E6D6FF277C3A9289E1A
-BE50FD72789E9411D821C4B75F89792405232EDF3B633E1BEBCE32260B80D45D
-2AF13A9157BAA6A0ED3E1145BF13B2F8CA0492CA1038FEA46B99D05AE5ED8E32
-08053529854766BF66F28BFC3E67E513B00486C1EBBD183F947E54E1CACF4C3F
-80BB9EFB9C69B19CA8D5557F32DB6D092077E0E0419E75E93D123597254F8F66
-F8DD0025057A23B0F71E954C6DBF09CF8D1D0BC65FD311CB16ABC77CCB448D3F
-583666AC978D586C609E1FDC07F84989A503B26EB9C0ED6E218C0D54B5802E04
-D763A3C5D499DB9FE842B91532A8DA2DDE3EEB17C167E15736CB60DB4FD58B0A
-368C12CE52B957DFAFC02A7D036BE5FF66E9757E162BA17B54546C4E76E6BD78
-5EB1F6068D893ED36FFE385A5B42B3175C1F3A277DD3C3D1D6C4204396480E58
-B478C5572733AC1261511CF2D06962FA0CFCBB3455885F7AF9E5642E830AFD31
-54D3D8C2FDAE4BE5A22B53C17CCBE057D5A8480EA115AC5D6B331AE0A0BACB5C
-28B6138958D6AA28859EE889A662A91D40905AC0065CF269CA6EE51554CE7073
-A367940BEBA1EC780236D3F8553BD7EB6A461D2B0E68349AA8E411133D31F71B
-46809E1B7CFC9BC2810764F4230B3D23F9E31AC128A99F84EA4124029707BCA4
-954CB1A964EDECCDBB23580ACD239C099E89938EBA177BDC3A45FC305589EADB
-357507AA1C1E075445A3F700BE51D8562F848409A53E319C8AE3DB9B8A033085
-7CB1174215465D955073BDA0486D73209FE7EA81EA39C8455FA9A60BADCC3DB1
-700E5BF16B6104F746E2E203076F9EBB343DBB14689805DBF2DAF51B2D250698
-07AFF021753CBD3D263C45CA5A8F5F795DCDB042CA429AFDF559ABE2888865BA
-2751ABC136551F3F91BF10FB606571C5A897E8FC30D113220787DA7BAADF8A7E
-0F828D38F984CFD58D6A6B542F55EC34A4165ED48646DADFAC5FC0FCE1FBCDD2
-AEA95ADDC46B3ADE198C0FBBFAD21DE6C8D641B80445F6AAE73C8B5A7680EA8B
-D95E292154148C3ACDBA2E431CFE35A01DEA614849A8B20BF6295C9667946FD6
-E10DBCBEE514B1B8C73B30231BAA6250B399CEE04BFC8068BEF83ECD8819F5F2
-7545ADCE52FFEA2BB03CADA8111B37583D5F9AB5334595C739F481299E7AA961
-D07AB021FD15DB0483212B7A915E9D445CE9D567029EACDB889D48DF6DA2971E
-2AFD1F06C56B96167F9BF5CCED9F119F41F1A6B093CA8F8A135895F9BB4D11BC
-228EE596E516A2FF15AC715FCB8B620024000F1B17A88D7CCDBEF63B111FA03D
-DA9462349398452BBB36E3716393959A94D990338D2BD6F4F7530A2424357C45
-A77F9FB3FAC883BAB44B6DBD641782DF72879D8FCC6A9396842A136D6CC062A0
-6D620780261CE4758946FC20B2881DFD7477524978A4FC8E629FC117ED41EA67
-6894065A2D8BD694396C386B8FB8AB3D834F4F570402603AF81AB4573D87B8BA
-E88E2A0B80ECBBF7F501135890EDA7E216D4D28A553D292076D35BBBAD82AD94
-FF90587E53AB0405E40FE762F684FE59F6CA16F0007F7746D1F5E9E2A3C1820A
-063683C490072B08D11000A1B642F0B85D87BD3AB330F5978B831D70D534EDEB
-A8C3E91274B60AE229CB49F767586CDA5172410FC115753E0C712E345C76B275
-E68E377954C47CC7EAB0DDA02AF7ED342BA891ED49506446BB713C6F7B06259C
-9A88B8BD7016DD468DFFDE7A837EE0BA643B1825DE87299E3781F1ED3EE43577
-83EED99FCD6984BEF918AA62A8A10D6F521F8B529ABCA574965A86102FD491DE
-E0893CD7E949CD74C1BB1F3E06592FA446E102E3763222450EB0CB32F98839D7
-5656D4BDBB89E84A127B2AA7296CD1914DF22B5179C1C3FD65A03C54D67D1274
-729194FBF3A2CC4A176B2CC50E4F2B4FAF0C225C7671D43FE29FA38A35496C73
-6CB81218A9125C194C5BAE06E0D27A7ED64D212B4F03A47DF571BF78233CE140
-46FA5F32C3FD7CE6E7B67676E4F5EF54F735ABD1014528DCC0951AA4B9122FE4
-D66FAAFC0F416A91C5CDA7130C89DF35D645B00617EA393B6D95B36F123AA210
-23AC1B65E13315DCF23CBB2DBF08FA567AD82BD9EC985BF2A8DC5F3A1F16107B
-F3B7029D89074BD5770CD5D73926C48A4BAB1ADA477733D5FBC3F31714DDCDFC
-64A1DB662BF889C60B563160F64828D5B66B9972735152752D97D71357D98F29
-73302FAC624A7A09877E2141F304181AFD560FEA78E1DD4F84B86A2F03B30E38
-3A78A327C9F21AC0BE15E21FF09CA629FD91ED7D1368312FE41E738C6A82C868
-F91EDFFC104EBF9A5909DB9B8D6A3D53039D23BA63F59DDE737C21137ADACC28
-E5426C29FB0FCA6D013197089FA80DE726615B1D85B0984E8CAFBEDCC2AE8794
-CADEAA666E6B0C6F236A3BA6251C73F203B529192534790F539A52A6A7A519B5
-0BF0C7FA04CE2D99FA10E4E5C51FC7796D24EA06AB9DB64B048CBC76371026C4
-F167EEFB2C6CE49EA8EA99124F24A65584034A19AF71D91EBAF4A1ADB32427F0
-77DD5CE61D8FBD69279F80B01194D6D81181E59F11F4223A5F524C5698C8DBB3
-D47AB7ECE14B5130F3086E169154D8FB7D4FFA027D0CC34231D89B49C46EA386
-E68506E48D56E89D7E0B3CB0867B267436A36276F16AC40E9820FE1C3565A5C1
-F7A27FEE56E7BE3329F09383A94D96EFF91176D87134875F43429F718FF208B3
-2423CD51B4916C0343D46CC68A35E076680C0CF24CFDF266AD429B766732278A
-42FC68450F6687D2E8E671C968E786C948E4DD431E8ED99CEB1CC411D76DEB83
-67FA3F5EA26402BBDE3624A90DA66CAF094E7592D78EC5432B2EE8FEFC6934E1
-703CCD2E5565680912B061B1A36EF4E7FDB7F7EBD6C76EB42564FB998CC3D482
-50964DB9BC9175718DC5F0D18068277E3EBD88216529B85FDF69B3DDA1C9138A
-D667CC61691B967CE4C43D930287D4CE206B70DFA1FACBD0965A55C3543BBA72
-2CCA277C6FE0896DFB60A9BA90B3A3AE070B74B77A5261F55F1FFB7587FE7FED
-2377D6608090792C9367BE7A31DA1B28BB1F8B81D0CBC30A173EB317F747CE9C
-747F5217C6DB0AD8EE4E25EFE882CE59CCE8C4CB3614892D01F5B0352D0C1AAD
-70360A91D800FF30145773232DE06CAF5E3D5FC3D09460410B34315BF5BBE76F
-5174125BC9B846BD4F40E1DC2C31DBA873E2457D36C7DAEA17C98CEB878AC814
-C550CBBE0FC6AD154DB1BD2F8139BD94DC9D6460B7D1421F74AAE08F277E07D6
-C90846370F680E1F99B2D348E73CDF4DB556A0AF4429AAAAA6DF01F6C25E595D
-C9ABB4DCBCE5D35171AB89DFC1D1DA1FBAFBC31149AFFC7B50CB3D62FFF9E130
-7EA1224BAFF93D54167188723530A32E6C4A1E68D13E2D57E54D94C1A08494B9
-A8F627ECC344ECD4CA9380A34CBFC33425F2510D2016AE2FC0447BFB835C8676
-44C92D2E72D6A6EF4319ED8DEA928DED1FC01A1081EC005ED6C782970162D518
-2992F1DCF00DC7516FA5C14546186F5C805BCCE828D0E6BA433D0D70200C9C72
-D83D216DC6ED070AF00EE998EFCF3B8071B963A49FD4FB4605069E38AFB3AE73
-B96E2FC8D1125BF88A2F5C5A69BBDA739B2A983738373E983A135CE745B49DF0
-D63BD08A9FD0361C3611F0E6BD8B2A044E89AF67AE403C703CFEC9A858B36F4A
-30E10300C0947CEC0CF092039CC6C8670E5A0DCBBB232A5560FF79ED567D79E2
-7E89018974B8FEE62D40B0BB00058AA31CD357BDCA88CAF61779987DC00BB3EC
-734AED3877BD655909D6B5563E90A266E4715EFAC731EB923FD3C32AADD90136
-6900B12EB769FAA04EC9DF227BD1F30A57EB18F88B37C1064BBE506BC53C77A9
-4A74787CCBB0EF69AB1AD1531D65B5341018517F9F8C431C7DF250A95E3778E9
-7C6C45AD65A0F223CB869BBE02DB7B3CDBE6A840FA8C631EEDBE9FA38D2234C7
-D8563D0F2956460B7EF0220BB6CE1121E9EBBB797A485C3A9028B6AA7F02D48B
-4F9ADDB2554EACCE76E9B6FC69246F496DDBB36A216C9B50A9B674416A0BAC18
-652739AB6D9F739289C8AA77B761A757EA9C2C68C42BC97C9CA9F3C8C8D5CC0A
-582529E2644E0A4944265B7BBD9F360B92582F960AC08F81CB3780F6C44C3358
-F4D204F2A924D9140BB0994B91A497853C7C0757BFDD630BD688B2D559A480BB
-F5BEF0D6574940632ED04FF68B98F3F238F7F8538D90B6B2365F1457850F48C3
-01D98C74427C8FABC33461E155B431CBE7974B5CB6051AC778AFC2796E63F015
-CF30EE7F51EA523924D5E9DCFE902648A4238182DE78B3A0388551939C150D6D
-EE4A70235B67E3BE6B69438F36B3A94488B41FF1AF3A5E9B6D30B22F78F93361
-425D2A98DC64DC2362C270E1F9D2ABB365F659985990BE83291F68D7B14454DA
-BAFC9EDD0A2B86FFF8C2C840871BEADE64B9B24D0936E75F8B4D9FE30F50F95E
-CA8829F0056630A41F00F7DCA9280D2DB896BD8C18BE0510E4770297920139A1
-05668D9058AD1D528484D8E8913BDE7B0BFA67CDD440C9A40EAEA09529C97DCA
-A18190E6A0D8AE719F90B7BEC1042EB5275B6694B36EC5A00030E219A99C24EE
-96BC53E53FD88A4942383EE30DCF5323938B75512C6FE07CFF968AFB3CB8CD57
-AF96A04F6DC8A694901E7C8DED822741986C0503AA0D9A027E59D19F899B95AE
-CD018CC540CF536334653B73AC61677A60A4BB4216FB3E648A2F857D32338796
-0EE8105491ED6D31323255D76A8B7D8BB5C1E07CE829C626B0B001D581D4BB9D
-E7DE1BB651E26FFA749B98CC11688B07A98C0F359CA9F08D3C3232C49A15A7AC
-EEB3F5B6923F68BDB3D6CF0E6AAF81671AE25EE6BBF07298C60E89E41298E971
-0B94CE4966B0BD5673EDDC8E2CB58143028994AF41CD67BB00355A0D1315E1C5
-1785CEF6138D5E4B985DD157D9BF7F9859202075D931A43426E9AF83D56E2209
-AEEC3384B6AF56475221E9C139BDFC42582E47E2323F1E96E7C8091AE03CBB58
-620CF8F00B338E2E679B6364A89C29354E67CF31B2CDB2FF739A560A81995AC1
-38803073989FDFF000A7F05804AE175A89DDF0B5769E15BB6CD449CBAFCB0B8D
-8708CC440A7C71AB86921F94B611F3A300F56973C165AE46A8D680ECACA77ED5
-7DA46333076B796B0E1249F7383D6A73C2C4110D942E62E1F3704321FD7F5957
-67E47B0A55FB32D92950C1F8863D39AE93BDBBE99807F0AC67E0C929D067778E
-E8418F73842EB2D225EB8DA6820FFD9AD1E24FEE1078729B78370B40
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 20 /guillemotright put
-dup 24 /perthousand put
-dup 25 /dotlessi put
-dup 26 /dotlessj put
-dup 27 /ff put
-dup 28 /fi put
-dup 30 /ffi put
-dup 52 /four put
-dup 69 /E put
-dup 71 /G put
-dup 79 /O put
-dup 80 /P put
-dup 81 /Q put
-dup 83 /S put
-dup 87 /W put
-dup 89 /Y put
-dup 90 /Z put
-dup 92 /backslash put
-dup 94 /asciicircum put
-dup 133 /Ecaron put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF85901056787F3023AF01A444AF55E0DD9E82E6DB0788D121504DACDD
-2323D70F6BC6993EB546469470EAE7F1D2673BDE0382273D5003A94C823296EA
-6236928FB3BCCB0271AD2603F08F8FE11E2757C07C0A5774AEC12CDA3F68A696
-FF2F0A42FD1EF9B8548AEF8130A0C3D31F0BFC5E6B36316390198B1611437BAB
-5AF15035A3C63FCAF2167401233C8E0693CC543BB123BAA5A113EC3078CDE708
-947BE13CC58915356B08D88CFBDF518BAEC1A15C596F4C6B7CDBF8EC66A74E98
-70818E82C8EC9DDC5171EB164C774720F4C03F90C5FD72180210E669C2B0B108
-24B2521551FA010EDF90F14A3906BFA20DB55690721A25A923EA9D473037AEF3
-78E00B16C5855039AF8C612584B961EBE61035F94D0BB5524E1569D61567A232
-23E8F22E9710B68F49DB65DB3AE129825DCA56BA04BB5D8EDF7AEFA75ACB693C
-42FB27CF9F034E6278C3DD38E3F7C653C7F5FC1389A0803E4165A1304300BD8E
-C4E629739DB03034825C5C409E89371A4CF5A7BBEC98CAAFB7993BA7638274C0
-953ACE386F85F0906A53049D129EB78F14D2834AA02A27E32FA147A9676AF82C
-407A046CA7F698FF1A27DCA2245AED0D061A043AC8EBAFC2F09343AD13D8F51E
-68705C94EC05741910083A0652CF0E2ED4185D2206659E57693CCC896DEECBEF
-1187283BEDA0E1E3786D726A9A018033A36B049CCA833F2A01FB565D0D49C65E
-83A824FE20349DADA8B514097C65DCA3C9083DC9CD3DFC7853E0C31CA51D1D12
-CE2F17FBC4D84A8A030F2C857FBD9A4BE4B5BEEF696B13FCC2C4162073B94023
-882B1FE802167D3D6DB5099D3F5590FAC3D5EE20B07A6E92AD81D7F5D31AB584
-0F673269CBE2340E07AA8D47019DFE0986B3EB448F7A1FDA7A0DA11014D83A71
-C7EF71C4309BC5FC2A6CAB42D64EADDC77892398E027EBA786DEA3D1CDD32D75
-A01B5187A12F3D007124CEF53033DA155651209517897ABF5647BEA95DB7FAC3
-25D7BCB6FDD8F85DD2D02AF87D9D053A72A1157BA045936B7DD35BD3142A1000
-0A5E7D1E4529B45F70C29AAD68B5070E6C7AA58BA13CF0F06B60F70EFC11B48C
-ACA4B74EC1CC0B9165A5C212562EF24CC4FB3E90EAB0F7EAD8FA99B199E5ABFE
-1418CB08173F0CD63D664AD1F7DDF3269611FA42968B420FB587C58C28A66C4C
-303E21C28C68D57C4A596FF2906DA2F5C1266024438F0F3532334FA383E6CCB6
-EC27564A3E4D7B47B69B5944EE5BB4D79A0CEF42063BA0E679FA3F44EA1B30B6
-D4DA7524683F86C4E771ED9EA9EF11D1D04E227AB6B68C337B57FB141A82FC31
-284FF11A57C04A9C7D9EBF47D5C3C87652CEFF5147F204701D20202F103E077C
-28EC52303CF3F7266ABC5D30793B12EEB52F6D6CC1284B2C2946F3148D5A9DA2
-B650AD8121AEEB59A91BDAA308569A2F478870614DB3DE4F2E212FF0B8F6A232
-C4C48323742B0DC53C0755DA6359F2EC80614DB63153FB7927B4BBE1DB840297
-9F5A57443A9CAD84BA0E7AC9560B25A1A6DA39D42C654F4834CB52FB497E0723
-1F5A0C22F4AAE5B42383765FE38930630F950E6585C4DEFC1C2C373F918C0F09
-46871B0903021F11DB80C6AB4A580D4E49E2A8700D612553C79B166376E2A743
-36B5EE2F88AAF2405A282E1B51C53480C7A27B37937A7D8B50F106874B83ADE7
-F710AD4E6EEA62F51B40993FD81490E3E1327912B0090F59408D31B63CF29C57
-4E1B6AD654B7003175E4FA21928192D58D72459FC655FD8273B35D7A827FD973
-879E00945AD1259B253915964573AA8E453EBBEAFDC5741853F9DA6727237F7D
-92C435F71CD749948B7E460F8A0F9854D123248BC40DA282E8E11EE57C91D490
-E5D31064A9441BFEDBB956A8165F91DA407AFE8312DEEDAE407262E9FCFBFE28
-B5A66FF1210467684765D27BDBBFDF6A52691DFB62DFD233DE00BCEE712B3498
-E82AD719E523A9FC614DB120578448816F70E96FFEAB402C0EF0E1452AF463E9
-FB9F420D8B1EB25ECF2473A777E38FC5230A2CCEC0639AB11D3383E92B2FC537
-45063E60F99A24613A7BEC29FEEB81111E3156C80B17809841AB55E394B7E253
-56F2FFFA2D7CDFA82020CD26C39859982E89195287CC667E59325B0100B47EE8
-92AF51E234C75286C2DF60ADE895DFE57C24FB7599DBFE18B23444E19D342951
-EB2108286DAE63F2A3842B1C54D9B828BFD7A9AE15FB3A6EEBD9FEF2084FE388
-38F77FC004E9929583325E99035FCD0EDC9A59BC3DF6EE422DECC14F77BF9CB9
-EFC8A8B16E6DF69FD460A60C2AD25B8B4C54AE7F8F34E0A1E8E8ECED41F0D9EF
-C13B5EA6F7BCEAD5E67B87BBF14C5EE74C892D90CD1D41BCC5099F9113A40D0E
-C4C79337670E8DF36A218A55CD6D4FC046161676546CA3CF1C510A85153CA613
-78549CD943225814CBD3F3D32143827FEE2F2B77509D6EAB88D614AA0A33E4B8
-C2D13E2737CE8BEEADC278F4C2ECE1C4064FFCFE66C0BD882C6981DE63D0489E
-02FF79E0611D02F34A8782E8463CEA85138E17E89C764DD3C4EEFCC0EBBCAA1F
-C84A2672C75BDDAC1255402EE59EE2CBE8483FF16886090560EF2A4E82FFCC5D
-8D042B67A9332F8099D58150674656AB13F9EA5488EC942B766BE325A8EA6BBE
-233E43480E7E38A0C7EDBC48BCE56DF3E83165D06A89BB30048B567A6F9752FE
-5D0D2B94C584C0BB707C27E31BA48A4F406515BDD828923D11B6D2780520F350
-D6D3BCDE4C1DF65292D33D086276B1944B8588E5F3D76CA9B6139B883E1D529C
-92349E0B054FBB20D752F6BAC651384C4DD8AE412F7F6AA18D627FBDF9C6E6D3
-7D829E469861DD2A8439B3C4C432AA6CBB39218426902913B84A0BB65FBDD7F4
-63EF26B856A9A1A94F64081876698553A177A7CEC7BE461C9636EF7FFFD01C91
-8F20344CCBB0E8757F4BE6BDA56E74803E93CD8E0C3801DAD9E6DF46B4494D36
-D844CD620C2170E68280F993D2C017EF0445DF13F845590262BE547DF77B7960
-FFED1A52EBD3F5961F23FC9E39F09698AE24DAE40C27DD0D3FE491F3FFF7CDC4
-042D2EAAF5F309A57D3796B7931E9EE5D446E256E2F83E6A41ACB6E744446CA9
-AC124BA9B09283AB72F59D2E8770FE8505745659FF5B3083845E02E4DFE57E2A
-1EF090E979839C6B9CCD6ACC823D89B96C395A9B3E828E340DFB1AEEF4F258D9
-7275C245D992A68F69D67884AABA37C041541F27A38BB40881D211E54235C2E6
-156A3DA85423ED93F532A45CDBFF02B5639955CA79302DDDD3F6CFB3FBA8EC57
-0EFA5B813D502CD63F88B96F8C64D0874439CDB560110C0029886F7DC4A58E9F
-CB438E475E80DB9DADBE9F69F4D509D9C3917237D77231F6F8B7C79A92366295
-21819B416C4DC152A89D95A8BBB8EC56C31EFA58246357829CBCF0828241486A
-0A40E2DAB47606659E7D620F4A36B78E73C40D390C75CE8C09278943EC98BB58
-6C348F087138DFB303DB8D0E4D265B70775E2E8A45FC6DBCA79CC3AA024073B5
-4E49B2CC4717EACDF3BAE032498378B6B27AB6B1E356CEFECD5E1377821A6FE3
-FA3C08D7296D965F869FBEE293C1AB7BC6E6B12CCDE1F06DC13DDBE17FC50867
-8650E5698D2FAA9108FF085C97524A41F68A196E57C8DCB59AD239AED76EC91A
-B4E6158D8E1B559284CC7FE9245F8AC48B412AB6E2FE6F5E5BE7BD72FBD2A1EB
-1A1AA9F673C9F9380AFF4EA4285C0742F0B645EF6A760EBE6C421F227E82E085
-4FEADF4036191CC47322CCC051D130874D7F556E9C5CB3C2EB354EF159AE3B38
-3EF479D1B1C5A5059D23A2E1F92BECA99A9686ECF7D23AADCF34C340EA150D8D
-7A2B267C875CE38D00DF216C059B6748FBF5A71F28543B3CBF10EFAC990E4560
-0C7638987732FC4C1DC422D9093B05B1EF083E9AA6938460A7F4E5831EDA91C3
-EF0C8FF6BC354A2DBEEA5F37CA1CC85F6A3D6F141BC122C39B57EB4D14858ABC
-19E18321223EF74DCF26A12FA1BD93F72B533FB0065C5DD170F560F4B2BF06F7
-B9015D2792FFB772F30372EB4FCEFDCC7A0E1E1024E58FC5C11614262772D837
-C484FF293451AE28EC7ACE6B5FADA32216FF42183EE1844895141FCF8D64411A
-41FB44D0E855ACB6C6AE31427AC4EF1F8227C140067622F9EE6B2D99AB675BCD
-6CDBB462882FD80B579211BF81E572D38DA916B0EE78E2C778F1F9CA56C2F5CA
-C8FCD44FCF3F7C6D4973426CDF24EC34232DFBB4503CAD6BC046FB1DB0DB3C8D
-B48ECB801EA9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (ornament.dvi)
-@start /Fa 169[0 86[{}1 106.268 /TeXMUSIX13-Regular rf
-/Fb 192[39 63[{}1 83.022 /CMR10 rf /Fc 102[33 145[0 7[{}2
-85.0146 /TeXMUSIX11-Regular rf /Fd 139[28 1[35 114[{}2
-83.022 /CMTI10 rf /Fe 203[56 56 56 50[{}3 99.6264 /CMBX12
-rf /Ff 216[55 39[{}1 172.188 /CMBX10 rf /Fg 253[65 2[{}1
-83.022 /CMSY10 rf /Fh 135[44 2[44 44 44 2[44 44 44 44
-5[44 44 44 44 44 44 3[44 9[44 20[44 44 3[44 8[44 44 1[44
-1[44 44 43[{}24 83.022 /CMTT10 rf /Fi 122[531 38[30 1[30
-1[30 0 1[0 3[66 1[0 0 0 7[106 1[40 16[40 21[0 1[0 0 0
-0 0 3[0 10[0 0 0 6[0{}24 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fi(G)-244 29 y(S)-84
-195 y Fh(o.)-64 13 y Fi(\030)p -64 104 4 92 v 1 w(\007)104
-179 y Fh(o)p 153 179 27 4 v 124 -20 a Fi(\032)p 124 95
-4 99 v 125 -4 a(\007)291 179 y Fh(o>)311 -20 y Fi(\036)p
-311 86 4 106 v 1 w(\007)479 179 y Fh(o^)499 -37 y Fi(\024)-64
-104 y(\205)-29 102 y(\205)p 499 77 4 113 v 500 -37 a(\007)667
-179 y Fh(ou)686 -54 y Fi(\030)p 686 38 4 92 v 1 w(\007)854
-179 y Fh(op)874 -70 y Fi(\034)p 864 -69 60 4 v 874 28
-4 99 v 1 w(\007)1042 179 y Fh(ox)1062 -120 y Fg(\002)p
-1052 -69 60 4 v 1062 19 4 106 v 1063 -87 a Fi(\007)1229
-179 y Fh(o+)p 1254 -149 30 6 v 1265 -137 6 30 v 686 38
-a Fi(\205)721 36 y(\205)p 1239 -69 60 4 v 1239 -102 V
-1249 10 4 113 v 1250 -103 a(\007)p 1437 98 4 135 v 1514
-179 a Fh(ot,oc)1667 96 y Fi(O)1534 -87 y(W)p 1534 62
-4 117 v 1535 -54 a(\007)1800 179 y Fh(om,)1800 245 y(ob)1932
--4 y Ff(')1800 -70 y Fi(Y)p 1838 62 V 132 x(\007)2045
-262 y Fh(of,ofd)2065 112 y Fi(Q)2065 -20 y(P)p 2065 129
-V 2066 13 a(\010)p 2441 98 4 135 v 2457 98 V 2502 28
-a Fe(3)2502 95 y(4)2709 -113 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (25.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 2709 -113 a 2666 179 a
-Fh(oT0)2686 -137 y Fd(tr)p 2676 -69 60 4 v 2686 38 4
-125 v 2687 -87 a Fi(\007\000)p 2906 -69 60 4 v 2916 38
-4 108 v 2917 -70 a(\007)3030 -87 y
- slur@Dict begin (2.0pt) GD S0hgt (22.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3030 -87 a 3030 -87
-a
- end
- 3030 -87 a 2917 -4 98 16 v 2917 21 V 2686 46 328 16
-v 3000 -69 60 4 v 3010 38 4 125 v -19 w Fi(\007)p 3094
--69 60 4 v 3094 -102 V 3104 29 4 133 v 3105 -103 a(\007)3349
-179 y Fh(oT)3369 -103 y Fd(tr)57 b Fi(E)o(EE)p 3359 -69
-60 4 v 3369 46 4 117 v 3370 -70 a(\007)p 3635 98 4 135
-v 3638 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 262 a -364 554 4002 4 v -364 587 V
--364 621 V -364 654 V -364 687 V -364 652 a Fi(G)-212
-562 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -212 562 a -204 536 4 86 v -227 536 a Fc(\007)-203
-467 y(\231)-195 465 y(\231)-203 451 y(\231)-195 449 y(\231)p
--194 521 39 4 v -163 519 4 79 v -186 519 a(\007)-158
-536 y
- slur@Dict begin (2.0pt) GD S0hgt (18.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- -158 536 a -158 536 a
- end
- -158 536 a -146 652 4 117
-v 13 w Fi(\007)81 768 y Fh(oTt)101 486 y Fi(EEEEE)o(E)p
-91 521 60 4 v 101 635 4 117 v 102 519 a(\007)331 768
-y Fh(oT1)351 519 y Fd(tr)f Fi(EEE)311 552 y(4)p 351 669
-V 1 w(\007)p 600 687 4 135 v 616 687 V 660 618 a Fe(4)660
-684 y(4)838 802 y Fh(o.)838 702 y Fi(\031)p 876 702 4
-117 v(\007)1087 785 y Fh(o)p 1136 785 27 4 v 1087 685
-a Fi(\033)p 1126 685 4 117 v 1 w(\007)1337 768 y Fh(o>)1337
-569 y Fi(\036)p 1375 669 V 100 x(\007)1630 768 y Fh(o^)1586
-552 y Fi(\024)p 1624 652 V 100 x(\007)p 1835 687 4 135
-v 1927 768 a Fh(oes)1939 469 y Fi(\\)p 1965 636 4 117
-v 1927 636 a(\007)2176 768 y Fh(oef)2188 503 y Fi(Z)p
-2214 652 V 2176 652 a(\007)2425 768 y Fh(oen)2437 503
-y Fi(^)p 2464 669 V 2426 669 a(\007)2675 785 y Fh(oes?)2667
-503 y Fi(\\)2697 524 y Fb(?)p 2713 685 V 2675 685 a Fi(\007)p
-2924 687 4 135 v 3016 802 a Fh(oe?)3024 536 y Fb(?)3016
-702 y Fi(\011)p 3514 687 V 3531 687 V 3548 618 a Fe(2)3548
-684 y(4)3638 851 y
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 851 a -364 1130 4002 4 v -364
-1164 V -364 1197 V -364 1230 V -364 1263 V -364 1228
-a Fi(G)-230 1194 y Fe(2)-230 1260 y(4)-66 1394 y Fh(o.)-47
-1178 y Fi(\030)p -47 1303 4 108 v -46 1195 a(\007)122
-1394 y Fh(o.)142 1178 y Fi(\030)p -46 1311 192 16 v 142
-1303 4 108 v 143 1195 a(\007)p 330 1263 4 135 v 407 1361
-a Fh(o.:)427 1178 y Fi(\030)p 427 1270 4 75 v 428 1195
-a(\007)615 1178 y(\030)p 615 1270 V 616 1195 a(\007)803
-1145 y(\030)p 803 1270 4 125 v 1 w(\007)187 b(\030)p
-427 1278 568 16 v 991 1270 4 125 v 1 w(\007)p 1179 1263
-4 135 v 285 w(\030)1237 1162 y(4)p 1277 1286 4 125 v
-1 w(\007)1465 1145 y(\030)p 1465 1286 V 1466 1162 a(\007)1653
-1178 y(\030)p 1653 1286 4 92 v 1654 1195 a(\007)1841
-1178 y(\030)p 1277 1294 568 16 v 1841 1286 4 92 v 1842
-1195 a(\007)p 2029 1263 4 135 v 2126 1178 a(\030)p 2126
-1270 4 75 v 2127 1195 a(\007)2314 1178 y(\030)p 2314
-1270 V 2315 1195 a(\007)2502 1112 y(\030)p 2502 1270
-4 158 v 1 w(\007)g(\030)p 2126 1278 568 16 v 2690 1270
-4 158 v 1 w(\007)p 2878 1263 4 135 v 2976 1129 a(\030)p
-2976 1237 4 108 v 1 w(\007)3144 1345 y Fh(o:)3164 1129
-y Fi(\030)p 2977 1245 192 16 v 3164 1237 4 108 v 1 w(\007)3443
-1112 y Fa(V)3332 1345 y Fh(og11)p 3352 1228 4 117 v 3353
-1112 a Fi(\007)p 3618 1263 4 135 v 3635 1263 V 3638 1428
-a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 1428 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/ornament.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: ornament.dvi
+%%CreationDate: Wed Jan 21 14:02:42 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 602 510 795
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMSY10 CMBX10 CMBX12 CMTI10
+%%+ TeXMUSIX11-Regular CMR10 TeXMUSIX13-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE ornament.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1402
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX13-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX13-Regular 001.000
+%%CreationDate: 01-08-17 at 19.17
+%%VMusage: 1024 36748
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 650 350 0
+%%EndComments
+FontDirectory/TeXMUSIX13-Regular known{/TeXMUSIX13-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX13-Regular) readonly def
+/FamilyName (TeXMUSIX13) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -200 def
+/UnderlineThickness 100 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 650 def
+/descent 350 def
+end readonly def
+/FontName /TeXMUSIX13-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 86 /V put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -2558 5000 2562}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7FC717A06282102BEAB6E
+5127DF2C08934CA5B107A96329A3A606D51499FBF8DA4597359DFE76E800416E
+B2914645830E08DDC61E82928AA715CB8C10280898C9DB13ADEB09D2B8FE9158
+A754DF312FB71C27801B70AF28522D7E11596D5B78DF15A9F6A09522B6BE4B04
+4F540291FC9612FFC4ABCBFD9892254575356D4C9D3DCEE5A9E5FF2A53F02BFD
+4386CBDED83C22BBDFBD9CFC8AE968CBCBFD4F6C590B239616FEB41B11E74447
+C230B229DB37EDB820D61B6965C1F1F8FF629395CCE17AF6C6131E4E1D5616B8
+0BAAEB474CF39C17453321C384CBEFD5536102A579B1E300C53E6BCE5A547AA0
+AF108824572078914C787E5CCEBFF8123E81CEA52DD625B0751AAF8FC38C0038
+750C173080A9FC117506370DE557AA0BCC9CD4A39C0DF5627EC27F515A0EBA6B
+1F56CD4282F5BAD4FAA93CECBDA6E238759AB9DCAF079168EBF0C2ECB1601E21
+BAA0A5F566F5FC147C314E30DDEE8187EBE54A5D3FD3AB69E247297E1D645966
+F3D70B758881042B9A9E06D1DBA6162C739BC4C5106C45275E412CC4334C3CF9
+4A981A4F8D622F6502FC22B7ABDC397ED07EBD10A495048439B2A9E2E524DC1B
+CC1BC10458CA6C4395659B0DB69C3467040FFE55D555F885B480671C113EBFA2
+4E1473CF5FAF07873D331875CD54E4BBD087C44C4B9A8D68CF019127BA77CEB1
+4FCB5E56AC9622A381808CDDFD8C284BD081BC950DA10A37FB3A8DC20F6C6B95
+C0CA83987D35E52EB77F350BF340FBE8D5E7E124A253398B04B36A1E048DB809
+AC804E08BE2ADD5E3A54C061C5674437B04926FF6C2B66C6BB9AF21EBB43B820
+D0AECA99F9CB17A703448C5B00FAE72CDD3719B88C2D8909ACF079471E30DA53
+68F23AAAEDC2A0B31481B4A874997441415577BE5C37D897AA994877EB8148BC
+6357E734564E6CF8BFE9F0094D3F19B0BDEA6ED61228B76E0EEB3AED169323A0
+0909FEA40D9A13C4DE69C9C62B139966D4CE56A0D0DC59605E6EB617525DB4EB
+FCF1D7A553C13B3A947F7AA9EB57E1F7309D8283514B614828C43BDE46D00EBF
+3943BE65FE99DBCE9F16AA603E0A5A6E0450E46271C71749560CEB6AFEAD2194
+DD167D7653565E75B98CBF83C6DAC38D0A83797F957E47EA1FD44A33EE760A8C
+80ABA4CB4AFDC235D786046F80B403D285372181C7C38538F661A2C86F063EED
+FE18D22F9639567BD05D41FE005F19A2D7C0C386B79D9A4DCE6213EFD9471502
+B260A33457DE2A890EB07142B5C2182C127B7FAA8E56651F54AA3F5CD89F5678
+CBBCF1246441
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%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 63 /question put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3A3A4AAE8B33E71E4D
+02DEC8C94BCEA6B88FCC6940D4700E371B76295C26C6B423098A3A57AD41F0DC
+A7EF476FAFAF30B36B2268B9055F55100F35A8925085317CCF8666F132417AAB
+A5FB3F070DF1CC8CAB13CC24B4FC62AA06FDCC588D847D0A4C232E3AD5677DE8
+593A4E99A03A35942CE0F211067D815E95F80F722072DE3D6F652FB0C9C9843D
+A6DD2482804FE10153467FC0AFC951B645E30ECCABC655E444F87B8B46C868D6
+D2FAEF826C12ED0AC7340059522DE65BA324640B70E9B902E9FB32F894C4CF49
+421240850599926BFB60AEC2B30D2A6340553EF7512A32BEBC5C892A004DFE16
+DD9CA9ADB963D51374A806711890C1AC5997F21A14E7523CEDB295474BF8C3A0
+5017A993D91DABC265A39EE4A494BCDEE0775982D2EB9D2112ECA3C2E597CBD7
+A9BBAAF9A808FBE68DB5E710CD843327B1F360133AB8050418585ED2A27ACB5E
+D28FA1E9FCB1CE83942637B2A6BD6CF81D0F04480805E17E05FB37A385D6433E
+59230884274319372B3F691D60B533FCDBE7BC65101A046A23D417365FAF18AC
+8EAEEB99B34D37764CCA28A466731CE6FC9FACCBA91B72D7440A7BE1390540A5
+E42BB2215FABBF72DB85657F4A3558D4585AD1918E86DAACB863E2343EA4EAB4
+D57D768391594AFF7153A7B5D44489DBDDDA7D2F0D5051B62B7D90A1E8F3B23E
+6E061E7BAAC70DEC0F84304AEEC154CE8954D28D42F41B1650337E53B855227E
+90E41188315E45160DC15AB480F4E2893D9DDAB2DFCBE800B92B6545FA09FA12
+AB08A1A7F38F9B2A749BA0EDABBCBF893EFCF2FE1AB8B32F2698FD72012414EF
+53FF85C3017FACEDACECD2C5A72867A8792E48C82E3C903835E6B2864798E1BE
+6E1BEB09B9080D31B36695CE1C7E8B4D0E2B9E98DBBF6C68D53CC922A58F65DF
+AFDABA383FA19ED3063475CD3A616C7FF692E6401B80ADF8E09D6DBFE974AE09
+1F7AC7442640757A7AAC9C55FE669782182A14EDE31D7F66E3053AF6648F5817
+82383342BF31E3986759CF58BB8767F31CD54FCA813817A80ED827D1E13EC021
+D2AB87E15CA4756A7AD9CF29959054CD826492AF65F4CBFA5770864B6B094805
+FC2C0C5BD7EE76EB9418C68A37313FAC8C61CEB31B2BFC971FF075B7651BDF76
+8ACBD8919998C4E31696E8E17213D549482C2E2BDBEC5BE1FA58899327DF5D28
+6937872841865988F950AE741DF73CA06F3F093A2B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX11-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
+%%CreationDate: 01-07-25 at 04.06
+%%VMusage: 1024 36750
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 700 300 0
+%%EndComments
+FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX11-Regular) readonly def
+/FamilyName (TeXMUSIX11) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -200 def
+/UnderlineThickness 100 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 700 def
+/descent 300 def
+end readonly def
+/FontName /TeXMUSIX11-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 153 /Zacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -3182 6250 3186}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
+46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
+4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
+BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
+66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
+021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
+15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
+4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
+3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
+FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
+99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
+BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
+1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
+9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
+698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
+33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
+423775531C98D6D16EA470D1CF6A101C2659527FA9145E008860E294728C62BB
+A2C6AD31A05A13180271FA4370F51BA493A3B744404BF5F65496B401DC928352
+2B9B436D65DAFDF80336D769F8B96FF771FEE77C020C7490051C88531EBE04D3
+92E44119D84F77DE0C154CCD01C2E69AE1F0619B4378D3FB07A811A9AFCDCF44
+483F2900BD4BEB91E1B8EB1B75F967140641FC060C41FF9C79DC6721AC2E3848
+2F9357BC89E40AE46B117FB5BE874175DEDEE81893FAA39EB5F7DC2DB62D4B9E
+D0970A31B42A9BDB790593EC273A0AF8D92F57F60F6A98C23BBD673672E36D55
+8B02AFE04248E7E7374DBFA08FB38E3BC2FB71908032
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 114 /r put
+dup 116 /t put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+592943209E846E55B4CB54F6658CBA3C0B29796D69D0435D5431ABECF3448C15
+98CA2F36F3659E29AEB79355EC2ADF835CF0886C21B766B9DEBC3950B5B3B496
+2E06D980A8C60305B273232D4604F12632FB4F1B2F9703952C823C098543AED1
+CFB4ECF259A11985F0C944A57B5AFD853374FCF12305601200C2A393E2FC77FD
+F78C2BEAF545FB34D38EED3579B16A9724302E591A3997C60552511C02B69726
+6FB1FC45E4D494372887DEFAFB1671DB490472686C3D7335F91F0CBABB19416B
+834CA65E59C51BCF0B1EA832833AC7867A412EEEF98C56370869BEC4213B4224
+697A9BD8D207994D1A67D4B5567B9BF7022D97F696654C257ECB331A20E22DA3
+031DD2B5E1279B1CEA257E6CC4FD149FDB9793B5A5ABAC33BE2886199308C794
+C660D52A1D574A5952A34478F1959A1F3906E9A8861ACC8C89C9E68A18CF0159
+135DBDD1C223DBBDFEE880DE6F3A2BD4AB98B39AE9AA6CED045437B8203A499E
+96228E1DF45138D07915097DEB8F74636474DD431A8931713A20DE865441E558
+354F8CD26C6EBBFC64AFB4AA3F6FA146C8CBF498DFE7A13D8EF4F008D2AD956D
+C40E7814D669E20CB9E4C955FD3791FDF1E5EDCF6FEEA76B815DEBF03B20C50C
+21B2AEC25C0D9EC87473219434AEDD93E55B7134F8FA07E6CDC9C1ADC9903BAC
+89444860966D5E1909DFE94C7327A04D31A3A7F179B722C6E0C3B4EBC5EE77F4
+1768D2D94C716B56C4DCCC6A19E24D79128FB9DAD4C6DE933C0D6BE57795828B
+17E18B298D4735F6FF6E32F4C1C615D148D53CBAD0E4CF18ADC51DD2D6F93B8D
+AA2338F84F7BB848EA19CD9DAE23B1A6E2397C2EE2ECD0C156E550058A08
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 50 /two put
+dup 51 /three put
+dup 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2E15E0A3
+32D9D2069E82BB9906811AD94C3D5B5B92FA9D223A8EF8385B379C82A530F343
+CE4B760073EF4735DC3BF1CB9C19D924D2814D02DF8C1A14B14496D577B86C9F
+3E23D18EC1904C2769C59D3F1C8CABCE91D06649DE62292B7C5C0FBD963799A5
+30F6BE49EF663E843BABFC83223BAE75AECD722623A1D0662988B02C5642066D
+A1BB913233756BD835B56BEE11A2982F07E29E9C110BD6099D621C3344E3029F
+317178D8EB16A3703D9A56B7A997876A167C9FC9834A8D96F46959BD5A5E9B53
+6454847AD0C81A3EDBFEEE56FF7F8022FC982309ED7E18017A3E7D450205ED2C
+D62EB924F7611790D189CC13CB5F25644C2492FF63710528311B25D4AFCFFC93
+8B0A0B9EB00D7EBF987EAFA639FB6C5381262D6DC7B1B404733A0629683693D3
+CDC7E9628DEFAF90605E2C819C05B7DCDA47A7C73C6FBA0162F1164A844956F3
+A5AFA8B70784AC5D1EDEBF6A9A7B4E8D7015FB00CD51CAC4EB9BFBF481628FAE
+BCE5979AE9316357F783610AA79E45F1D25A84CC7CB0FD98130A27D188014BCF
+9A936FC12DAA35F0D7D1FBB7BA8394AE97F27E3B2B4CFCEBBFDB14BD0AB0C4D3
+5A67848DB068BCC52E67668683FE22C7B8BAE76C3C1A97B41B2E6132BFD79FE9
+D8F64DE434CA73992C4F4E96E01FE17E5B5B4F0E7C7EB6991C4AF5AC8BDA29F9
+AE7478C2A4C23B57298E54B18FB612F18377E5A32FF58C8EF86784390654D2D7
+90570F0C2A4B3E4BA527EA76CCE289F65664CC7F52DF26305E5D629970389C85
+E989A092D64AC5F02C3C92B0B071E066168BCAFB93D4100A1E5D047237D1555F
+3037AE8564A82360DE17A142C4C7036BDC1DB85B6DDF60DC167ED2901728D59C
+85C1F3FC3E093BA9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX10
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:06
+% 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 (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 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 39 /quoteright put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA620E40822E15C2AB
+8BF88EF4FF68D9C81564F0AC5495C426E3ED091CF4AEAD7696C3B00A0D6FB6CE
+60547AD516EC9CC7B904D6617F81D2AC5086C30E40057B3C8854C4893D3B1D82
+2D61C4414046FFBFDCD7AD22EE19016B50905C92287F9946F2DBA4CB1B18E118
+FD01CB5EB39E77C77A4BE276258F7EF35269272729704F2A26BDE6159C77034B
+5492340010118D673DD5EA0631B6540522A418DC654382226CE228E335051B5C
+04100E40BCA0A9F35CF931C5556F99BD9D1829A19FE05121DA69E300668B02F2
+9858B2B3A2C14799A00EA840A745D42F4092CF7B7D350435BA0B5A1984BCDA3D
+0C80714603B84AC0E1240BE5D109A361026794A31FA4008589F4327052C6E6A1
+5F65857EC1AF86BA8955C05B590BFD7D42460A7B7A537444AB5432F044186F22
+A21EFD308BE31E98ACBD5985D32C186EED51490BFA8EA2E85C1C74E528668B1F
+EF1FD463FD30F4487BDE23F858BBC4ABC7EBA07820757B360D8978E841CD929B
+52144F2BEEC0F86899B64A401EB30389252F9242F69167187D4C
+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 2 /multiply put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+/UniqueID 5000820 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
+27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
+5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
+0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
+DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
+71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
+4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
+515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609
+C627A8B149D71F3155BFBF5A359E54EFE40EB6AAF7344F336BBDFA5241D39DFD
+19DFE4F1B56DCAAEA84D9290E81FFAD8472517CB517C9F8D04EAF8E87A58341D
+57386FF17BF29235356C3F85FE85CCB75DFBD407A6B76C198356415768FE0D58
+0F0E0665E6B2EFC269256FCE0146C415E35D900293555D8B6CB2AA451586E477
+93461FAF0803AE54B9FEE351771B08F9F7D564B5F50CB4E660298DECF4DC0F67
+0A4DA5738D89F708019CDFF9443964830B406748B60EF34EA35EDA7DF1C05A1E
+A385C5DE4B171FCD735AA0C41E54B09D133E48FCAA3A75F1B05C2AD4CD792534
+4160FCF0C48076AD3174E1A970FD9A285EB251E016B2739E373B43F17A1D50BC
+02FB2383DACFF35A5503EE8D0C8147908BFF5FA0D9D06F243AA8B4FFFCD8FF4E
+ED02BC
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%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 43 /plus put
+dup 44 /comma put
+dup 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 58 /colon put
+dup 62 /greater put
+dup 63 /question put
+dup 84 /T put
+dup 94 /asciicircum 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 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 120 /x put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+DA293B0C740987ACE9F2A8EC2DB98F85783C01623FD3612C7E4A84FA702EC190
+DA0F7C6D4C7BCFBC2C88F4FBEAA7248E35804AA88578AC3790A6E20860E4DF1E
+559AAD015A3FE8D6C826EB32307A623C8DFEDA68DA9A52AB88943B13C5F5795B
+0CFE3CB852BA8C7FAC395E4C66432DDA18247CFE6240C82AAF61A7D3FB6C4848
+7185D76522DACDAD6DA564240DBB494670FC1804D241E14CE8622ED8AC2ABC21
+3F81757FCDCA8EC6F0E9EA338B272A38B37541FBC7A2F92A74829C73672DA436
+B5E8D7CE3973366572192171C8E8BB426574719FF18F17FC7435152BDA9713CC
+9C8FCC9BE8728F705FE528FD94277202F0BF162CCC299E6D6FF277C3A9289E1A
+BE50FD72789E9411D821C4B75F89792405232EDF3B633E1BEBCE32260B80D45D
+2AF13A9157BAA6A0ED3E1145BF13B2F8CA0492CA1038FEA46B99D05AE5ED8E32
+08053529854766BF66F28BFC3E67E513B00486C1EBBD183F947E54E1CACF4C3F
+80BB9EFB9C69B19CA8D5557F32DB6D092077E0E0419E75E93D123597254F8F66
+F8DD0025057A23B0F71E954C6DBF09CF8D1D0BC65FD311CB16ABC77CCB448D3F
+583666AC978D586C609E1FDC07F84989A503B26EB9C0ED6E218C0D54B5802E04
+D763A3C5D499DB9FE842B91532A8DA2DDE3EEB17C167E15736CB60DB4FD58B0A
+368C12CE52B957DFAFC02A7D036BE5FF66E9757E162BA17B54546C4E76E6BD78
+5EB1F6068D893ED36FFE385A5B42B3175C1F3A277DD3C3D1D6C4204396480E58
+B478C5572733AC1261511CF2D06962FA0CFCBB3455885F7AF9E5642E830AFD31
+54D3D8C2FDAE4BE5A22B53C17CCBE057D5A8480EA115AC5D6B331AE0A0BACB5C
+28B6138958D6AA28859EE889A662A91D40905AC0065CF269CA6EE51554CE7073
+A367940BEBA1EC780236D3F8553BD7EB6A461D2B0E68349AA8E411133D31F71B
+46809E1B7CFC9BC2810764F4230B3D23F9E31AC128A99F84EA4124029707BCA4
+954CB1A964EDECCDBB23580ACD239C099E89938EBA177BDC3A45FC305589EADB
+357507AA1C1E075445A3F700BE51D8562F848409A53E319C8AE3DB9B8A033085
+7CB1174215465D955073BDA0486D73209FE7EA81EA39C8455FA9A60BADCC3DB1
+700E5BF16B6104F746E2E203076F9EBB343DBB14689805DBF2DAF51B2D250698
+07AFF021753CBD3D263C45CA5A8F5F795DCDB042CA429AFDF559ABE2888865BA
+2751ABC136551F3F91BF10FB606571C5A897E8FC30D113220787DA7BAADF8A7E
+0F828D38F984CFD58D6A6B542F55EC34A4165ED48646DADFAC5FC0FCE1FBCDD2
+AEA95ADDC46B3ADE198C0FBBFAD21DE6C8D641B80445F6AAE73C8B5A7680EA8B
+D95E292154148C3ACDBA2E431CFE35A01DEA614849A8B20BF6295C9667946FD6
+E10DBCBEE514B1B8C73B30231BAA6250B399CEE04BFC8068BEF83ECD8819F5F2
+7545ADCE52FFEA2BB03CADA8111B37583D5F9AB5334595C739F481299E7AA961
+D07AB021FD15DB0483212B7A915E9D445CE9D567029EACDB889D48DF6DA2971E
+2AFD1F06C56B96167F9BF5CCED9F119F41F1A6B093CA8F8A135895F9BB4D11BC
+228EE596E516A2FF15AC715FCB8B620024000F1B17A88D7CCDBEF63B111FA03D
+DA9462349398452BBB36E3716393959A94D990338D2BD6F4F7530A2424357C45
+A77F9FB3FAC883BAB44B6DBD641782DF72879D8FCC6A9396842A136D6CC062A0
+6D620780261CE4758946FC20B2881DFD7477524978A4FC8E629FC117ED41EA67
+6894065A2D8BD694396C386B8FB8AB3D834F4F570402603AF81AB4573D87B8BA
+E88E2A0B80ECBBF7F501135890EDA7E216D4D28A553D292076D35BBBAD82AD94
+FF90587E53AB0405E40FE762F684FE59F6CA16F0007F7746D1F5E9E2A3C1820A
+063683C490072B08D11000A1B642F0B85D87BD3AB330F5978B831D70D534EDEB
+A8C3E91274B60AE229CB49F767586CDA5172410FC115753E0C712E345C76B275
+E68E377954C47CC7EAB0DDA02AF7ED342BA891ED49506446BB713C6F7B06259C
+9A88B8BD7016DD468DFFDE7A837EE0BA643B1825DE87299E3781F1ED3EE43577
+83EED99FCD6984BEF918AA62A8A10D6F521F8B529ABCA574965A86102FD491DE
+E0893CD7E949CD74C1BB1F3E06592FA446E102E3763222450EB0CB32F98839D7
+5656D4BDBB89E84A127B2AA7296CD1914DF22B5179C1C3FD65A03C54D67D1274
+729194FBF3A2CC4A176B2CC50E4F2B4FAF0C225C7671D43FE29FA38A35496C73
+6CB81218A9125C194C5BAE06E0D27A7ED64D212B4F03A47DF571BF78233CE140
+46FA5F32C3FD7CE6E7B67676E4F5EF54F735ABD1014528DCC0951AA4B9122FE4
+D66FAAFC0F416A91C5CDA7130C89DF35D645B00617EA393B6D95B36F123AA210
+23AC1B65E13315DCF23CBB2DBF08FA567AD82BD9EC985BF2A8DC5F3A1F16107B
+F3B7029D89074BD5770CD5D73926C48A4BAB1ADA477733D5FBC3F31714DDCDFC
+64A1DB662BF889C60B563160F64828D5B66B9972735152752D97D71357D98F29
+73302FAC624A7A09877E2141F304181AFD560FEA78E1DD4F84B86A2F03B30E38
+3A78A327C9F21AC0BE15E21FF09CA629FD91ED7D1368312FE41E738C6A82C868
+F91EDFFC104EBF9A5909DB9B8D6A3D53039D23BA63F59DDE737C21137ADACC28
+E5426C29FB0FCA6D013197089FA80DE726615B1D85B0984E8CAFBEDCC2AE8794
+CADEAA666E6B0C6F236A3BA6251C73F203B529192534790F539A52A6A7A519B5
+0BF0C7FA04CE2D99FA10E4E5C51FC7796D24EA06AB9DB64B048CBC76371026C4
+F167EEFB2C6CE49EA8EA99124F24A65584034A19AF71D91EBAF4A1ADB32427F0
+77DD5CE61D8FBD69279F80B01194D6D81181E59F11F4223A5F524C5698C8DBB3
+D47AB7ECE14B5130F3086E169154D8FB7D4FFA027D0CC34231D89B49C46EA386
+E68506E48D56E89D7E0B3CB0867B267436A36276F16AC40E9820FE1C3565A5C1
+F7A27FEE56E7BE3329F09383A94D96EFF91176D87134875F43429F718FF208B3
+2423CD51B4916C0343D46CC68A35E076680C0CF24CFDF266AD429B766732278A
+42FC68450F6687D2E8E671C968E786C948E4DD431E8ED99CEB1CC411D76DEB83
+67FA3F5EA26402BBDE3624A90DA66CAF094E7592D78EC5432B2EE8FEFC6934E1
+703CCD2E5565680912B061B1A36EF4E7FDB7F7EBD6C76EB42564FB998CC3D482
+50964DB9BC9175718DC5F0D18068277E3EBD88216529B85FDF69B3DDA1C9138A
+D667CC61691B967CE4C43D930287D4CE206B70DFA1FACBD0965A55C3543BBA72
+2CCA277C6FE0896DFB60A9BA90B3A3AE070B74B77A5261F55F1FFB7587FE7FED
+2377D6608090792C9367BE7A31DA1B28BB1F8B81D0CBC30A173EB317F747CE9C
+747F5217C6DB0AD8EE4E25EFE882CE59CCE8C4CB3614892D01F5B0352D0C1AAD
+70360A91D800FF30145773232DE06CAF5E3D5FC3D09460410B34315BF5BBE76F
+5174125BC9B846BD4F40E1DC2C31DBA873E2457D36C7DAEA17C98CEB878AC814
+C550CBBE0FC6AD154DB1BD2F8139BD94DC9D6460B7D1421F74AAE08F277E07D6
+C90846370F680E1F99B2D348E73CDF4DB556A0AF4429AAAAA6DF01F6C25E595D
+C9ABB4DCBCE5D35171AB89DFC1D1DA1FBAFBC31149AFFC7B50CB3D62FFF9E130
+7EA1224BAFF93D54167188723530A32E6C4A1E68D13E2D57E54D94C1A08494B9
+A8F627ECC344ECD4CA9380A34CBFC33425F2510D2016AE2FC0447BFB835C8676
+44C92D2E72D6A6EF4319ED8DEA928DED1FC01A1081EC005ED6C782970162D518
+2992F1DCF00DC7516FA5C14546186F5C805BCCE828D0E6BA433D0D70200C9C72
+D83D216DC6ED070AF00EE998EFCF3B8071B963A49FD4FB4605069E38AFB3AE73
+B96E2FC8D1125BF88A2F5C5A69BBDA739B2A983738373E983A135CE745B49DF0
+D63BD08A9FD0361C3611F0E6BD8B2A044E89AF67AE403C703CFEC9A858B36F4A
+30E10300C0947CEC0CF092039CC6C8670E5A0DCBBB232A5560FF79ED567D79E2
+7E89018974B8FEE62D40B0BB00058AA31CD357BDCA88CAF61779987DC00BB3EC
+734AED3877BD655909D6B5563E90A266E4715EFAC731EB923FD3C32AADD90136
+6900B12EB769FAA04EC9DF227BD1F30A57EB18F88B37C1064BBE506BC53C77A9
+4A74787CCBB0EF69AB1AD1531D65B5341018517F9F8C431C7DF250A95E3778E9
+7C6C45AD65A0F223CB869BBE02DB7B3CDBE6A840FA8C631EEDBE9FA38D2234C7
+D8563D0F2956460B7EF0220BB6CE1121E9EBBB797A485C3A9028B6AA7F02D48B
+4F9ADDB2554EACCE76E9B6FC69246F496DDBB36A216C9B50A9B674416A0BAC18
+652739AB6D9F739289C8AA77B761A757EA9C2C68C42BC97C9CA9F3C8C8D5CC0A
+582529E2644E0A4944265B7BBD9F360B92582F960AC08F81CB3780F6C44C3358
+F4D204F2A924D9140BB0994B91A497853C7C0757BFDD630BD688B2D559A480BB
+F5BEF0D6574940632ED04FF68B98F3F238F7F8538D90B6B2365F1457850F48C3
+01D98C74427C8FABC33461E155B431CBE7974B5CB6051AC778AFC2796E63F015
+CF30EE7F51EA523924D5E9DCFE902648A4238182DE78B3A0388551939C150D6D
+EE4A70235B67E3BE6B69438F36B3A94488B41FF1AF3A5E9B6D30B22F78F93361
+425D2A98DC64DC2362C270E1F9D2ABB365F659985990BE83291F68D7B14454DA
+BAFC9EDD0A2B86FFF8C2C840871BEADE64B9B24D0936E75F8B4D9FE30F50F95E
+CA8829F0056630A41F00F7DCA9280D2DB896BD8C18BE0510E4770297920139A1
+05668D9058AD1D528484D8E8913BDE7B0BFA67CDD440C9A40EAEA09529C97DCA
+A18190E6A0D8AE719F90B7BEC1042EB5275B6694B36EC5A00030E219A99C24EE
+96BC53E53FD88A4942383EE30DCF5323938B75512C6FE07CFF968AFB3CB8CD57
+AF96A04F6DC8A694901E7C8DED822741986C0503AA0D9A027E59D19F899B95AE
+CD018CC540CF536334653B73AC61677A60A4BB4216FB3E648A2F857D32338796
+0EE8105491ED6D31323255D76A8B7D8BB5C1E07CE829C626B0B001D581D4BB9D
+E7DE1BB651E26FFA749B98CC11688B07A98C0F359CA9F08D3C3232C49A15A7AC
+EEB3F5B6923F68BDB3D6CF0E6AAF81671AE25EE6BBF07298C60E89E41298E971
+0B94CE4966B0BD5673EDDC8E2CB58143028994AF41CD67BB00355A0D1315E1C5
+1785CEF6138D5E4B985DD157D9BF7F9859202075D931A43426E9AF83D56E2209
+AEEC3384B6AF56475221E9C139BDFC42582E47E2323F1E96E7C8091AE03CBB58
+620CF8F00B338E2E679B6364A89C29354E67CF31B2CDB2FF739A560A81995AC1
+38803073989FDFF000A7F05804AE175A89DDF0B5769E15BB6CD449CBAFCB0B8D
+8708CC440A7C71AB86921F94B611F3A300F56973C165AE46A8D680ECACA77ED5
+7DA46333076B796B0E1249F7383D6A73C2C4110D942E62E1F3704321FD7F5957
+67E47B0A55FB32D92950C1F8863D39AE93BDBBE99807F0AC67E0C929D067778E
+E8418F73842EB2D225EB8DA6820FFD9AD1E24FEE1078729B78370B40
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 20 /guillemotright put
+dup 24 /perthousand put
+dup 25 /dotlessi put
+dup 26 /dotlessj put
+dup 27 /ff put
+dup 28 /fi put
+dup 30 /ffi put
+dup 52 /four put
+dup 69 /E put
+dup 71 /G put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 83 /S put
+dup 87 /W put
+dup 89 /Y put
+dup 90 /Z put
+dup 92 /backslash put
+dup 94 /asciicircum put
+dup 133 /Ecaron put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF85901056787F3023AF01A444AF55E0DD9E82E6DB0788D121504DACDD
+2323D70F6BC6993EB546469470EAE7F1D2673BDE0382273D5003A94C823296EA
+6236928FB3BCCB0271AD2603F08F8FE11E2757C07C0A5774AEC12CDA3F68A696
+FF2F0A42FD1EF9B8548AEF8130A0C3D31F0BFC5E6B36316390198B1611437BAB
+5AF15035A3C63FCAF2167401233C8E0693CC543BB123BAA5A113EC3078CDE708
+947BE13CC58915356B08D88CFBDF518BAEC1A15C596F4C6B7CDBF8EC66A74E98
+70818E82C8EC9DDC5171EB164C774720F4C03F90C5FD72180210E669C2B0B108
+24B2521551FA010EDF90F14A3906BFA20DB55690721A25A923EA9D473037AEF3
+78E00B16C5855039AF8C612584B961EBE61035F94D0BB5524E1569D61567A232
+23E8F22E9710B68F49DB65DB3AE129825DCA56BA04BB5D8EDF7AEFA75ACB693C
+42FB27CF9F034E6278C3DD38E3F7C653C7F5FC1389A0803E4165A1304300BD8E
+C4E629739DB03034825C5C409E89371A4CF5A7BBEC98CAAFB7993BA7638274C0
+953ACE386F85F0906A53049D129EB78F14D2834AA02A27E32FA147A9676AF82C
+407A046CA7F698FF1A27DCA2245AED0D061A043AC8EBAFC2F09343AD13D8F51E
+68705C94EC05741910083A0652CF0E2ED4185D2206659E57693CCC896DEECBEF
+1187283BEDA0E1E3786D726A9A018033A36B049CCA833F2A01FB565D0D49C65E
+83A824FE20349DADA8B514097C65DCA3C9083DC9CD3DFC7853E0C31CA51D1D12
+CE2F17FBC4D84A8A030F2C857FBD9A4BE4B5BEEF696B13FCC2C4162073B94023
+882B1FE802167D3D6DB5099D3F5590FAC3D5EE20B07A6E92AD81D7F5D31AB584
+0F673269CBE2340E07AA8D47019DFE0986B3EB448F7A1FDA7A0DA11014D83A71
+C7EF71C4309BC5FC2A6CAB42D64EADDC77892398E027EBA786DEA3D1CDD32D75
+A01B5187A12F3D007124CEF53033DA155651209517897ABF5647BEA95DB7FAC3
+25D7BCB6FDD8F85DD2D02AF87D9D053A72A1157BA045936B7DD35BD3142A1000
+0A5E7D1E4529B45F70C29AAD68B5070E6C7AA58BA13CF0F06B60F70EFC11B48C
+ACA4B74EC1CC0B9165A5C212562EF24CC4FB3E90EAB0F7EAD8FA99B199E5ABFE
+1418CB08173F0CD63D664AD1F7DDF3269611FA42968B420FB587C58C28A66C4C
+303E21C28C68D57C4A596FF2906DA2F5C1266024438F0F3532334FA383E6CCB6
+EC27564A3E4D7B47B69B5944EE5BB4D79A0CEF42063BA0E679FA3F44EA1B30B6
+D4DA7524683F86C4E771ED9EA9EF11D1D04E227AB6B68C337B57FB141A82FC31
+284FF11A57C04A9C7D9EBF47D5C3C87652CEFF5147F204701D20202F103E077C
+28EC52303CF3F7266ABC5D30793B12EEB52F6D6CC1284B2C2946F3148D5A9DA2
+B650AD8121AEEB59A91BDAA308569A2F478870614DB3DE4F2E212FF0B8F6A232
+C4C48323742B0DC53C0755DA6359F2EC80614DB63153FB7927B4BBE1DB840297
+9F5A57443A9CAD84BA0E7AC9560B25A1A6DA39D42C654F4834CB52FB497E0723
+1F5A0C22F4AAE5B42383765FE38930630F950E6585C4DEFC1C2C373F918C0F09
+46871B0903021F11DB80C6AB4A580D4E49E2A8700D612553C79B166376E2A743
+36B5EE2F88AAF2405A282E1B51C53480C7A27B37937A7D8B50F106874B83ADE7
+F710AD4E6EEA62F51B40993FD81490E3E1327912B0090F59408D31B63CF29C57
+4E1B6AD654B7003175E4FA21928192D58D72459FC655FD8273B35D7A827FD973
+879E00945AD1259B253915964573AA8E453EBBEAFDC5741853F9DA6727237F7D
+92C435F71CD749948B7E460F8A0F9854D123248BC40DA282E8E11EE57C91D490
+E5D31064A9441BFEDBB956A8165F91DA407AFE8312DEEDAE407262E9FCFBFE28
+B5A66FF1210467684765D27BDBBFDF6A52691DFB62DFD233DE00BCEE712B3498
+E82AD719E523A9FC614DB120578448816F70E96FFEAB402C0EF0E1452AF463E9
+FB9F420D8B1EB25ECF2473A777E38FC5230A2CCEC0639AB11D3383E92B2FC537
+45063E60F99A24613A7BEC29FEEB81111E3156C80B17809841AB55E394B7E253
+56F2FFFA2D7CDFA82020CD26C39859982E89195287CC667E59325B0100B47EE8
+92AF51E234C75286C2DF60ADE895DFE57C24FB7599DBFE18B23444E19D342951
+EB2108286DAE63F2A3842B1C54D9B828BFD7A9AE15FB3A6EEBD9FEF2084FE388
+38F77FC004E9929583325E99035FCD0EDC9A59BC3DF6EE422DECC14F77BF9CB9
+EFC8A8B16E6DF69FD460A60C2AD25B8B4C54AE7F8F34E0A1E8E8ECED41F0D9EF
+C13B5EA6F7BCEAD5E67B87BBF14C5EE74C892D90CD1D41BCC5099F9113A40D0E
+C4C79337670E8DF36A218A55CD6D4FC046161676546CA3CF1C510A85153CA613
+78549CD943225814CBD3F3D32143827FEE2F2B77509D6EAB88D614AA0A33E4B8
+C2D13E2737CE8BEEADC278F4C2ECE1C4064FFCFE66C0BD882C6981DE63D0489E
+02FF79E0611D02F34A8782E8463CEA85138E17E89C764DD3C4EEFCC0EBBCAA1F
+C84A2672C75BDDAC1255402EE59EE2CBE8483FF16886090560EF2A4E82FFCC5D
+8D042B67A9332F8099D58150674656AB13F9EA5488EC942B766BE325A8EA6BBE
+233E43480E7E38A0C7EDBC48BCE56DF3E83165D06A89BB30048B567A6F9752FE
+5D0D2B94C584C0BB707C27E31BA48A4F406515BDD828923D11B6D2780520F350
+D6D3BCDE4C1DF65292D33D086276B1944B8588E5F3D76CA9B6139B883E1D529C
+92349E0B054FBB20D752F6BAC651384C4DD8AE412F7F6AA18D627FBDF9C6E6D3
+7D829E469861DD2A8439B3C4C432AA6CBB39218426902913B84A0BB65FBDD7F4
+63EF26B856A9A1A94F64081876698553A177A7CEC7BE461C9636EF7FFFD01C91
+8F20344CCBB0E8757F4BE6BDA56E74803E93CD8E0C3801DAD9E6DF46B4494D36
+D844CD620C2170E68280F993D2C017EF0445DF13F845590262BE547DF77B7960
+FFED1A52EBD3F5961F23FC9E39F09698AE24DAE40C27DD0D3FE491F3FFF7CDC4
+042D2EAAF5F309A57D3796B7931E9EE5D446E256E2F83E6A41ACB6E744446CA9
+AC124BA9B09283AB72F59D2E8770FE8505745659FF5B3083845E02E4DFE57E2A
+1EF090E979839C6B9CCD6ACC823D89B96C395A9B3E828E340DFB1AEEF4F258D9
+7275C245D992A68F69D67884AABA37C041541F27A38BB40881D211E54235C2E6
+156A3DA85423ED93F532A45CDBFF02B5639955CA79302DDDD3F6CFB3FBA8EC57
+0EFA5B813D502CD63F88B96F8C64D0874439CDB560110C0029886F7DC4A58E9F
+CB438E475E80DB9DADBE9F69F4D509D9C3917237D77231F6F8B7C79A92366295
+21819B416C4DC152A89D95A8BBB8EC56C31EFA58246357829CBCF0828241486A
+0A40E2DAB47606659E7D620F4A36B78E73C40D390C75CE8C09278943EC98BB58
+6C348F087138DFB303DB8D0E4D265B70775E2E8A45FC6DBCA79CC3AA024073B5
+4E49B2CC4717EACDF3BAE032498378B6B27AB6B1E356CEFECD5E1377821A6FE3
+FA3C08D7296D965F869FBEE293C1AB7BC6E6B12CCDE1F06DC13DDBE17FC50867
+8650E5698D2FAA9108FF085C97524A41F68A196E57C8DCB59AD239AED76EC91A
+B4E6158D8E1B559284CC7FE9245F8AC48B412AB6E2FE6F5E5BE7BD72FBD2A1EB
+1A1AA9F673C9F9380AFF4EA4285C0742F0B645EF6A760EBE6C421F227E82E085
+4FEADF4036191CC47322CCC051D130874D7F556E9C5CB3C2EB354EF159AE3B38
+3EF479D1B1C5A5059D23A2E1F92BECA99A9686ECF7D23AADCF34C340EA150D8D
+7A2B267C875CE38D00DF216C059B6748FBF5A71F28543B3CBF10EFAC990E4560
+0C7638987732FC4C1DC422D9093B05B1EF083E9AA6938460A7F4E5831EDA91C3
+EF0C8FF6BC354A2DBEEA5F37CA1CC85F6A3D6F141BC122C39B57EB4D14858ABC
+19E18321223EF74DCF26A12FA1BD93F72B533FB0065C5DD170F560F4B2BF06F7
+B9015D2792FFB772F30372EB4FCEFDCC7A0E1E1024E58FC5C11614262772D837
+C484FF293451AE28EC7ACE6B5FADA32216FF42183EE1844895141FCF8D64411A
+41FB44D0E855ACB6C6AE31427AC4EF1F8227C140067622F9EE6B2D99AB675BCD
+6CDBB462882FD80B579211BF81E572D38DA916B0EE78E2C778F1F9CA56C2F5CA
+C8FCD44FCF3F7C6D4973426CDF24EC34232DFBB4503CAD6BC046FB1DB0DB3C8D
+B48ECB801EA9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (ornament.dvi)
+@start /Fa 169[0 86[{}1 106.268 /TeXMUSIX13-Regular rf
+/Fb 192[39 63[{}1 83.022 /CMR10 rf /Fc 102[33 145[0 7[{}2
+85.0146 /TeXMUSIX11-Regular rf /Fd 139[28 1[35 114[{}2
+83.022 /CMTI10 rf /Fe 203[56 56 56 50[{}3 99.6264 /CMBX12
+rf /Ff 216[55 39[{}1 172.188 /CMBX10 rf /Fg 253[65 2[{}1
+83.022 /CMSY10 rf /Fh 135[44 2[44 44 44 2[44 44 44 44
+5[44 44 44 44 44 44 3[44 9[44 20[44 44 3[44 8[44 44 1[44
+1[44 44 43[{}24 83.022 /CMTT10 rf /Fi 122[531 38[30 1[30
+1[30 0 1[0 3[66 1[0 0 0 7[106 1[40 16[40 21[0 1[0 0 0
+0 0 3[0 10[0 0 0 6[0{}24 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fi(G)-244 29 y(S)-84
+195 y Fh(o.)-64 13 y Fi(\030)p -64 104 4 92 v 1 w(\007)104
+179 y Fh(o)p 153 179 27 4 v 124 -20 a Fi(\032)p 124 95
+4 99 v 125 -4 a(\007)291 179 y Fh(o>)311 -20 y Fi(\036)p
+311 86 4 106 v 1 w(\007)479 179 y Fh(o^)499 -37 y Fi(\024)-64
+104 y(\205)-29 102 y(\205)p 499 77 4 113 v 500 -37 a(\007)667
+179 y Fh(ou)686 -54 y Fi(\030)p 686 38 4 92 v 1 w(\007)854
+179 y Fh(op)874 -70 y Fi(\034)p 864 -69 60 4 v 874 28
+4 99 v 1 w(\007)1042 179 y Fh(ox)1062 -120 y Fg(\002)p
+1052 -69 60 4 v 1062 19 4 106 v 1063 -87 a Fi(\007)1229
+179 y Fh(o+)p 1254 -149 30 6 v 1265 -137 6 30 v 686 38
+a Fi(\205)721 36 y(\205)p 1239 -69 60 4 v 1239 -102 V
+1249 10 4 113 v 1250 -103 a(\007)p 1437 98 4 135 v 1514
+179 a Fh(ot,oc)1667 96 y Fi(O)1534 -87 y(W)p 1534 62
+4 117 v 1535 -54 a(\007)1800 179 y Fh(om,)1800 245 y(ob)1932
+-4 y Ff(')1800 -70 y Fi(Y)p 1838 62 V 132 x(\007)2045
+262 y Fh(of,ofd)2065 112 y Fi(Q)2065 -20 y(P)p 2065 129
+V 2066 13 a(\010)p 2441 98 4 135 v 2457 98 V 2502 28
+a Fe(3)2502 95 y(4)2709 -113 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (25.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 2709 -113 a 2666 179 a
+Fh(oT0)2686 -137 y Fd(tr)p 2676 -69 60 4 v 2686 38 4
+125 v 2687 -87 a Fi(\007\000)p 2906 -69 60 4 v 2916 38
+4 108 v 2917 -70 a(\007)3030 -87 y
+ slur@Dict begin (2.0pt) GD S0hgt (22.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3030 -87 a 3030 -87
+a
+ end
+ 3030 -87 a 2917 -4 98 16 v 2917 21 V 2686 46 328 16
+v 3000 -69 60 4 v 3010 38 4 125 v -19 w Fi(\007)p 3094
+-69 60 4 v 3094 -102 V 3104 29 4 133 v 3105 -103 a(\007)3349
+179 y Fh(oT)3369 -103 y Fd(tr)57 b Fi(E)o(EE)p 3359 -69
+60 4 v 3369 46 4 117 v 3370 -70 a(\007)p 3635 98 4 135
+v 3638 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 262 a -364 554 4002 4 v -364 587 V
+-364 621 V -364 654 V -364 687 V -364 652 a Fi(G)-212
+562 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (14.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -212 562 a -204 536 4 86 v -227 536 a Fc(\007)-203
+467 y(\231)-195 465 y(\231)-203 451 y(\231)-195 449 y(\231)p
+-194 521 39 4 v -163 519 4 79 v -186 519 a(\007)-158
+536 y
+ slur@Dict begin (2.0pt) GD S0hgt (18.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ -158 536 a -158 536 a
+ end
+ -158 536 a -146 652 4 117
+v 13 w Fi(\007)81 768 y Fh(oTt)101 486 y Fi(EEEEE)o(E)p
+91 521 60 4 v 101 635 4 117 v 102 519 a(\007)331 768
+y Fh(oT1)351 519 y Fd(tr)f Fi(EEE)311 552 y(4)p 351 669
+V 1 w(\007)p 600 687 4 135 v 616 687 V 660 618 a Fe(4)660
+684 y(4)838 802 y Fh(o.)838 702 y Fi(\031)p 876 702 4
+117 v(\007)1087 785 y Fh(o)p 1136 785 27 4 v 1087 685
+a Fi(\033)p 1126 685 4 117 v 1 w(\007)1337 768 y Fh(o>)1337
+569 y Fi(\036)p 1375 669 V 100 x(\007)1630 768 y Fh(o^)1586
+552 y Fi(\024)p 1624 652 V 100 x(\007)p 1835 687 4 135
+v 1927 768 a Fh(oes)1939 469 y Fi(\\)p 1965 636 4 117
+v 1927 636 a(\007)2176 768 y Fh(oef)2188 503 y Fi(Z)p
+2214 652 V 2176 652 a(\007)2425 768 y Fh(oen)2437 503
+y Fi(^)p 2464 669 V 2426 669 a(\007)2675 785 y Fh(oes?)2667
+503 y Fi(\\)2697 524 y Fb(?)p 2713 685 V 2675 685 a Fi(\007)p
+2924 687 4 135 v 3016 802 a Fh(oe?)3024 536 y Fb(?)3016
+702 y Fi(\011)p 3514 687 V 3531 687 V 3548 618 a Fe(2)3548
+684 y(4)3638 851 y
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 851 a -364 1130 4002 4 v -364
+1164 V -364 1197 V -364 1230 V -364 1263 V -364 1228
+a Fi(G)-230 1194 y Fe(2)-230 1260 y(4)-66 1394 y Fh(o.)-47
+1178 y Fi(\030)p -47 1303 4 108 v -46 1195 a(\007)122
+1394 y Fh(o.)142 1178 y Fi(\030)p -46 1311 192 16 v 142
+1303 4 108 v 143 1195 a(\007)p 330 1263 4 135 v 407 1361
+a Fh(o.:)427 1178 y Fi(\030)p 427 1270 4 75 v 428 1195
+a(\007)615 1178 y(\030)p 615 1270 V 616 1195 a(\007)803
+1145 y(\030)p 803 1270 4 125 v 1 w(\007)187 b(\030)p
+427 1278 568 16 v 991 1270 4 125 v 1 w(\007)p 1179 1263
+4 135 v 285 w(\030)1237 1162 y(4)p 1277 1286 4 125 v
+1 w(\007)1465 1145 y(\030)p 1465 1286 V 1466 1162 a(\007)1653
+1178 y(\030)p 1653 1286 4 92 v 1654 1195 a(\007)1841
+1178 y(\030)p 1277 1294 568 16 v 1841 1286 4 92 v 1842
+1195 a(\007)p 2029 1263 4 135 v 2126 1178 a(\030)p 2126
+1270 4 75 v 2127 1195 a(\007)2314 1178 y(\030)p 2314
+1270 V 2315 1195 a(\007)2502 1112 y(\030)p 2502 1270
+4 158 v 1 w(\007)g(\030)p 2126 1278 568 16 v 2690 1270
+4 158 v 1 w(\007)p 2878 1263 4 135 v 2976 1129 a(\030)p
+2976 1237 4 108 v 1 w(\007)3144 1345 y Fh(o:)3164 1129
+y Fi(\030)p 2977 1245 192 16 v 3164 1237 4 108 v 1 w(\007)3443
+1112 y Fa(V)3332 1345 y Fh(og11)p 3352 1228 4 117 v 3353
+1112 a Fi(\007)p 3618 1263 4 135 v 3635 1263 V 3638 1428
+a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 1428 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pathetique.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pathetique.eps
index 54f77e223ab..91e8c2a1bb6 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pathetique.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pathetique.eps
@@ -1,941 +1,941 @@
-%% LaTeX2e file `eps/pathetique.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: pathetique.dvi
-%%CreationDate: Wed Jan 21 14:03:07 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 739 510 789
-%%DocumentFonts: TeXMUSIX16-Regular CMTI10 CMBXTI10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE pathetique.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1403
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 102 /f put
-dup 109 /m put
-dup 112 /p put
-dup 115 /s put
-dup 122 /z put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA785D1D07ABA0CF10D5EAA01DEC75A8E2AB707D04489E6A050296ECD005
-3F5215213F376D3F0760D348ADFF3475F5514172B93104A63C011F8EF47A0314
-7687A4EB7521E2AB97AAB8A7F1919F6BD0E511CF9ECE536E6FF9B425609F5B9E
-C7D96EE8A958F130E7D4ABD7B74F0E5CD011E60CBF66BD256E40D89D40E6CEE1
-52E2C386B70611ECE4CF9D8B24FF62AF02BC059FE1322FC14918FBF12CD4B1A1
-1E2A86B38D331A18FC58626235DEDA76F28E978E3D29B8F8576E1A13614F6D26
-7635F2659DBD60DDC7448CD1C1D4B6E706618E164D5A6D03977CFF811D8580D0
-8A531C975A2514942901A0AB1AA0FBAED6642A4D2396C781AEFC6FEB9AEAD615
-EE85384352CDF24B52450DFD5E373BE81B055F9CC352D0D17574A07CD57AAD81
-CC5D4C3F8795C10F82B16DFE66D5771483D8A0E2B06E23D919C33207C719B503
-6CCAA5962DBD7A3F25907A9D3A9CE0367AB9FBB6CE8F5DF61B910521B3754A2D
-4AB4A1854B8E3EA11D885A19934AF944663C09B17221C0196C3B46B5B3862594
-B8A12AF5AC24BE5E0C0FD22594B75F2C1C358399ECDE6724CA20B03E14FA03EB
-7947A22DBC559A9C09B2E422DF4FC5785A8FF4C82FE7132EF6FDD9CEA9F00540
-CBA2F9003672F8EFCC6BC2B4C27B1F8F6A03AA0911146E70EA9343C575F3B48A
-6145AA85E73B1649A77A58EEAE53C6B822364002DBD55E45C2E9D3379C4F7F3E
-61A9797C3127519EE02B2BCBE540A5327C8FDB2FD0CCDD4BB99C9DFADEBF1B91
-A7D9DFE1D6973FA98A68F34A60F4B5A653041AB8C49EC3245B75A5F1D7BBBFC6
-DCDFCE729EC2E551A10251CB9B6C3E06B703F4D2F60859DAB83EE374B67AAD8B
-04AF1F0FB093D64C654E680726C21CCEAD5DFA8941BFB73F4BC12CC5334B8CCA
-6C5CC7B6EA9DE27549B2A06B8197F9BEAFC313DA08D2DA6438F6ECC8E766A0A6
-07A83DA9333632BF705FDD1429A21DD15E62FEE2F8E92D38A8F6A076ABA3C89B
-09BBC88D02FC4646F073602C7C75E62A0C0D25E58E61011F94212E7EDC1C1A40
-73D8CF6B56D74393A420379F634182D8BEFD6AFEAFCA45130D338F73E9AB3E77
-189580ED1A010C36C98DE11C857B9842C43AE1B0B85EEE879331650B11F7CAB4
-0F709781A51AC3C34324069B3AF552A34E37D2F6DAB1726F6E1AECAAA28A9C93
-3D80A08BA708101E6EDBC3821E98481B999006690CBBBCC7D071D791DA4A182D
-41CD0F2D4B3135D7B757A11C6E4EC41AF68D6546A551A4C9662B8954A48BB402
-190AFD2187080B18AADDD3C115C426F6F8776706097659E2E316F5A4C2743734
-353B8D897C6A3F2559CDAB56C0F6652C2D9FC78B5F65036722BBE30455A8B561
-2479B115DF574C70AA564A243E3699D1EE68B318F23C9D97116CFCA24BD77E4D
-2C04D5E782F244CA6ABF0DE57AC82D08D685FA92AC52CC14AB6A19DBE306337C
-29D595E3F4FB4E6DA7ECCF92C93D6491C6A5D89AD0BB68ED4F4535021AE03FB5
-CD7EE2E35DCF31FDC50C2E2340DF41FEE190AA3809653D798F2CF259B61F2556
-EBEB2B692F3448C6DB12B4103B28711A75A8C3932FBA04C7326D70DB797CF03B
-2DF1616D4DC71D4A2F31D7309DD3E47C83225F0F983CF34B61B4033223BFE2D2
-46495B42D43E5AB096E5EB53E29450785649169556155FF0D1C4898B22107154
-0890C7B476E09083274B816EED40BC50C992268A25B81A5E77BF1B3D680307D3
-B9168663E63093267413229455F25B6ED1B19BA481418CA8B752C1482B5064A6
-5F55E1FDD4
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 65 /A put
-dup 97 /a put
-dup 100 /d put
-dup 103 /g put
-dup 105 /i put
-dup 111 /o put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
-E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F6BCC38A
-2A052EC4018AE3189DC1963BA39ACDED8F0C60C83F8873FBBF0302010956C520
-A7F3F8ECD0F177EDF5F4D5522C5984A3678FF32EEEB570B69C142AB89467641F
-917155D646DAF3352E27BF2AA0746E062E48532256AF364EFC0F0AAE3760D8BB
-DB82FCED86600CF0BA7308ABD951DEBD5C7B85A5647249881796ECE9F98E7C4B
-3DF234BC58FE4BD33CDC7D7B0C2F1337CC2A7A426DD52F5D9C59A4CD2283ABFD
-480A901F4F277D0C41D430693C7DE62F36A6C1D057A04D3BAA838D5345AB9A0C
-70D7EBB9777570B4071943D20692CCC5CBCDB0DA4BCA1B891930E4E1EAACC48F
-640D9A16F6714F86716F79247C950F4ED04828F7E650EB5F0F1AAA907AE4AB07
-67E3C5FA65A182AA847308CE9477DB887143678CAC83672A16A3729969B8EE9E
-70A04C5328C3B9FE70E8DBB98FB8904B71F350CE53BCF6BBB6C5B55DDACBAC38
-D51DA1D3B657153BD068874EC0FBA4DD96B16E07559775E101578FDA0232FD21
-B246B83E223D9AA92AE0C0BEEF2AB298CFB3B5F2A307D54D9834E29419D9B708
-9B9B5322196E5B230EC2A8068173B89D570B47FAAE2EB41927886CA35CCFD114
-46A85FE7AEB1DDDE3F97B80F0487F0726A4DC9620B25A5941B00EA27C0F16D3C
-7E312C0629A872304E8FE0F02EAAC1F0E958D916FA537775C929E9650E569D18
-8A8FEE8937939C7D807731B5CD4C6BAD6D33172C43A0491DEDEE59A7F2414264
-7D5F92B65F74497A5B9FE24FDF3ACEB0BC348CB9769BF1AB7C1F90523E57A467
-AD8B354C2ABA254BA0A05C85BE0994495B9BA76F6603E8BDF9A3A75BF672E05D
-75FE47A887452A2A8A3AEC82F08120C3991160D3ECF7804FF38F55F57BFD4F3C
-37BABF9B3BAE5A7940C1FEB3369DB273FDF1F67DCC1633D1442F020CE8B263A1
-5D022E9A25595B41B191FB378D07EBD3EDFB82981B985F98FEDC14C5C3C8E309
-843537C4B16154BD261C57FA923F98131E6492F325BB6B6F0A6CC215F42B3F02
-3378EDC4288A8BF8DB39C958C5E44863DD79E0893430A5959A5FC97D6857D1A4
-04B8B4035AFCD31A8A5A82BF539BF9C32787B173FA05C474EE453323B2635668
-8E6AE2992CC0BFD26BE49D5BC346D91A605982A1542E8B032F1E167A638662BE
-8D94AFD31927993984185E6E51DD8C7CB45F1DAEB0E288FFA1750744A9FDB135
-A063C8C319246A7E5A6E8E1C61DBB907B522B0E5C5B6E1C65D267325C5D72B28
-4380EE2A4682718D0BE0EF09DFBBE7E296F7F09B25B28F84995A4C4D95C9A963
-1EF464EC4A24A684F05303E8E8298155B39909FA37ED93F7008DFA6ACA6D80A0
-BBFF49A427A5B5B7F215D7E45DB6CE713D41AC87E04695553DA0E78D3BAE7D85
-B0FC94C45FD2ABB89A2DB65B9330A47B644384EC07E48589850D48C845041802
-4DE5699A09779FE13CCBACCCA4DFC50F4B018BE179CB7F8E7111FBA9209E94BD
-49BE1645480FCD47A3385F53653DA4E6234E76A796E357A3F20A8EF19F786B4D
-62B9A51F7383144EE203982F4F344BCA545480B3EE620DA711D3E41FDFA1BF89
-E0CB625F6EB1BD289DB83D0D570CECE42E0F038917D069C5BE043138E3216AF5
-FFBF9511231DAADFF8B239EA173AF5BDE041B829CC72FE98583ACE7E7AA63EEA
-012044F04B6A561D21B1AFE019712CF1A7DCE8DEA122BBC73971E8B0233F75AF
-B7C899EE49791BB4C90C5408E9792ED29EC6A5195BAEDEC42D1EDC1305EFED37
-7066ECC83C7A2B490CC612942A7C480446F7D2570FEB0B961C556AAEA2B56A73
-9978898E7C787B0FF2A4DDE9D239A4F580CC73DFC55A80416E34894AEFF431BB
-E3A6F64F53132DEBCB4B48B2F77CCD7042D932201B91C35C5D088E96B5BCEE17
-5FED418AC27822B536D5B9DAA83B0ABCA833A760B39590173D01BE1E8CB395E2
-DEFC3B18A7952EED9FA16CE896F7EB616F744F42A7E46E6614EB6475539DB975
-
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 40 /parenleft put
-dup 52 /four put
-dup 60 /less put
-dup 62 /greater put
-dup 63 /question put
-dup 73 /I put
-dup 83 /S put
-dup 130 /Cacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
-C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
-4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
-12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
-86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
-88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
-62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
-71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
-4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
-63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
-D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
-702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
-4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC25854E0CD9E96586206EA781C5DC9
-096EA7D5864215E61CE7E39D6D1FFA664D45A18B617BD42E0E42560FB567C6EB
-985E4189727AC46D909732A8C43A569EEA6AA8A32835FF9E8C8933503C7ECB01
-D582CFE194D12003B920F3F2F3C83107E5CFBEDBC143E786018DCC4A452D794D
-C546085DE635A408580E011B1EA0989993588F2C8BC6D6A7028337E81C739699
-D1249408E281AFD3AB7FF71E6162B20BA0D9635654E6C2A48C5ED98C4FC0CDDB
-018596367B02BE7C27B84157074F1E3C2824ED8747F9C9E3E70A9FF0786B628A
-8FD6866123BA88F20777B28E1DB4A59D59489804C6631EF9EECFAFE59460C435
-361B9E6228D408C50653ED16F1C7587CAC82A0A8FF487B11D2B90E641C77FF97
-EE0CD483491F9E8A184B798EE0EB746B23CB3581B6067DE028F04C97C08D057F
-353B195E84AC714A6397C0C549930F19372696B971B1CAF6679EF8BC8BA8C5DD
-DC0AA5E0B06EC839DE1E3C8D75F5F9023661C4B3934084D545FB8494BB01B831
-BD12872846F7ACFE93F82BBE633335A6A9E95ABC7ADD2F42BDDA250F40BDF601
-2DFCC6AB702DCFF681CE52FC02C177B28A3C260B8692DBB61D25E359FE210D0D
-3CC62725DE89C54814F5D4C8211E3A3000E71A43A92500AE12886A21F6C4C63C
-CFBDCD2BF074B206A233129DE0667E711E179843656EDD35AAEB12BD148BF579
-DAE252EBC47B1D7B1D8921133AA0A78024DB578699E8DD175FAE3D3BEAA6A7C0
-481E36F6406385E017246C821721A64FCB3F80A0DBF9DC364C127A36D9C0F449
-82E048ACB2E370B87059684FE70A0D8F97D82AED7466C69A4A55C00C2A2D8457
-8E8A414E669D29BBBFD0E6ECB8337F58F530454D8D06F5D397AA8632FF524E27
-C86D31E93FD31092F2186DA5EA517FD029AB811F409556F2BFA8E0B8199C08A5
-13152012A5B6D9208EC2E9181CE45AB3E79AED8237618128BA005B8F85CA4E53
-A6F18BC018C0C334C31B155B8437858B2E8467E5D0975F8199D5FC1E89704B31
-FD4CC9FE7F5820A74CAF1B44229051ED7F957917F61A748881EADA7A9C0E67EC
-B2E9C7C51357108021F88B4725317A8D8DDE345030F0AC5180EB2520358BFB90
-FB0064930BFCEC37F1F76FBF5EA09DB2909282CE13A0AAAA4D86711121DDA36D
-004DC675F1420072A932D5A65A5C61AAC22594A80910021328638F15EF951FB1
-7E1D10C1206F2D6C0CC418BB20C40F0331A30CAD4586FB944D5FCF6448120616
-97B14FCA8EBBB6E5E551B82F3D1A46E36C826C807FB89CE086DD0EE8D8552392
-DE49CF8267DC0F626020656D5E8E21B89CE4DF76433B2D8F9810C4BF1B4EF812
-0287DCC1F4E9386F532C249F6D5D67CD967F82A983B3E0B93C7FFF2F16174686
-06C5E302B91D03A55A2BD4546D394EF7E83052B32A7E93F30B241B42C060DB04
-0FC374255CFDA0188C005BB8711ACAB4A0BC3A98512838F0D63DBAA251E472FD
-E5E9A3634AB9E8041BAABFC5441F1C699C8F71BD76C9DEF522ED15DF92655377
-4F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (pathetique.dvi)
-@start /Fa 133[41 6[40 2[49 2[78 6[33 102[{}5 83.022
-/CMBXTI10 rf /Fb 144[42 5[25 1[38 2[42 2[42 31[62 65[{}6
-83.022 /CMTI10 rf /Fc 125[66 46[66 9[106 9[0 0 1[50 7[40
-11[0 30[0 0 0 6[0{}12 132.835 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 -4 a Fc(I)t(4)-221 46 y(4)-178
-29 y(S)-32 -87 y Fb(A)l(dagio)-32 29 y Fc(<)204 96 y(>)395
-156 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-7.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 395 156 a 333 229 a Fa(p)-6 b(p)440 195 y
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 0
-N end
- 440 195
-a 362 131 60 4 v 410 129 4 108 v 372 129 a Fc(\007)510
-112 y
- slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 510 112 a 510 112 a
- end
- 510 112 a 498 195 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 498 195
-a 522 195 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 2
-N end
- 522 195 a 411 21 a Fc(\202)463 18 y(\202)p
-528 112 4 98 v 490 112 a(\007)p 608 98 4 135 v 694 122
-a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 694 122 a 691 195 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 691 195 a 709 96 4 117 v 671 96
-a Fc(\007)858 112 y
- slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 858 112 a 858 112 a
- end
- 858 112 a 858
-195 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 0
-N end
- 858 195 a 876 112 4 117 v 838 112 a Fc(\010)1098
-139 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1098 139 a 1047 195 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 1047 195 a 1058 212 a Fa(p)p
-1113 112 4 108 v 1075 112 a Fc(\007)1213 96 y
- slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1213 96
-a 1213 96 a
- end
- 1213 96 a 1213 195 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 2
-N end
- 1213 195 a 1114 5 a
-Fc(\202)1167 2 y(\202)p 1231 96 4 98 v 1193 96 a(\007)p
-1311 98 4 135 v 1397 106 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1397 106 a 1382 195 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 1382
-195 a 1405 195 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 0
-N end
- 1405 195 a 1412 79 4 117 v 1374 79 a
-Fc(\007)1561 96 y
- slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1561 96 a 1561 96 a
- end
- 1561 96 a 1561
-195 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 1561 195 a 1579 96 4 117 v 1541 96 a Fc(\010)1801
-122 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 1801 122 a 1717 195 a Fa(m)g(p)1849 179 y
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (10.0pt) GD N /C1dir 0
-N end
- 1849
-179 a 1816 96 4 108 v 1778 96 a Fc(\007)1916 79 y
- slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 1916
-79 a 1916 79 a
- end
- 1916 79 a 1817 -12 a Fc(\202)1870 -15
-y(\202)p 1934 79 4 98 v 1896 79 a(\007)p 2014 98 4 135
-v 2085 179 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 2085 179 a 2109 162 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (12.0pt) GD N /C1dir 2
-N end
- 2109 162 a 2115 63
-4 117 v 2077 63 a Fc(\007)2253 162 y
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 2253 162 a 2276
-162 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (12.0pt) GD N /C1dir 0
-N end
- 2276 162 a 2205 79 a Fc(4)p 2283 79 4 117 v(\010\000)p
-2534 98 4 135 v 2640 84 a
- slur@Dict begin /S-1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
-(1.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
- 2640 84 a 2534 162 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 2534 162
-a 2553 179 a Fa(s)f(f)l(z)2665 162 y
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (12.0pt) GD N /C1dir 2
-N end
- 2665 162 a 2597
-63 a Fc(\011)p 2931 98 4 135 v 2999 96 a
- slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
-M 0.14 30 T0dash T0adj 40 DS end
- 2999 96 a 2966
-162 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 2966 162 a 2977 179 a Fa(p)p 3032 63 4 108 v 3033
-63 a Fc(\()-39 b(\007)3112 96 y(?)119 b(>)3398 29 y(<)p
-3635 98 4 135 v 3638 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/pathetique.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: pathetique.dvi
+%%CreationDate: Wed Jan 21 14:03:07 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 739 510 789
+%%DocumentFonts: TeXMUSIX16-Regular CMTI10 CMBXTI10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE pathetique.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1403
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 102 /f put
+dup 109 /m put
+dup 112 /p put
+dup 115 /s put
+dup 122 /z put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA785D1D07ABA0CF10D5EAA01DEC75A8E2AB707D04489E6A050296ECD005
+3F5215213F376D3F0760D348ADFF3475F5514172B93104A63C011F8EF47A0314
+7687A4EB7521E2AB97AAB8A7F1919F6BD0E511CF9ECE536E6FF9B425609F5B9E
+C7D96EE8A958F130E7D4ABD7B74F0E5CD011E60CBF66BD256E40D89D40E6CEE1
+52E2C386B70611ECE4CF9D8B24FF62AF02BC059FE1322FC14918FBF12CD4B1A1
+1E2A86B38D331A18FC58626235DEDA76F28E978E3D29B8F8576E1A13614F6D26
+7635F2659DBD60DDC7448CD1C1D4B6E706618E164D5A6D03977CFF811D8580D0
+8A531C975A2514942901A0AB1AA0FBAED6642A4D2396C781AEFC6FEB9AEAD615
+EE85384352CDF24B52450DFD5E373BE81B055F9CC352D0D17574A07CD57AAD81
+CC5D4C3F8795C10F82B16DFE66D5771483D8A0E2B06E23D919C33207C719B503
+6CCAA5962DBD7A3F25907A9D3A9CE0367AB9FBB6CE8F5DF61B910521B3754A2D
+4AB4A1854B8E3EA11D885A19934AF944663C09B17221C0196C3B46B5B3862594
+B8A12AF5AC24BE5E0C0FD22594B75F2C1C358399ECDE6724CA20B03E14FA03EB
+7947A22DBC559A9C09B2E422DF4FC5785A8FF4C82FE7132EF6FDD9CEA9F00540
+CBA2F9003672F8EFCC6BC2B4C27B1F8F6A03AA0911146E70EA9343C575F3B48A
+6145AA85E73B1649A77A58EEAE53C6B822364002DBD55E45C2E9D3379C4F7F3E
+61A9797C3127519EE02B2BCBE540A5327C8FDB2FD0CCDD4BB99C9DFADEBF1B91
+A7D9DFE1D6973FA98A68F34A60F4B5A653041AB8C49EC3245B75A5F1D7BBBFC6
+DCDFCE729EC2E551A10251CB9B6C3E06B703F4D2F60859DAB83EE374B67AAD8B
+04AF1F0FB093D64C654E680726C21CCEAD5DFA8941BFB73F4BC12CC5334B8CCA
+6C5CC7B6EA9DE27549B2A06B8197F9BEAFC313DA08D2DA6438F6ECC8E766A0A6
+07A83DA9333632BF705FDD1429A21DD15E62FEE2F8E92D38A8F6A076ABA3C89B
+09BBC88D02FC4646F073602C7C75E62A0C0D25E58E61011F94212E7EDC1C1A40
+73D8CF6B56D74393A420379F634182D8BEFD6AFEAFCA45130D338F73E9AB3E77
+189580ED1A010C36C98DE11C857B9842C43AE1B0B85EEE879331650B11F7CAB4
+0F709781A51AC3C34324069B3AF552A34E37D2F6DAB1726F6E1AECAAA28A9C93
+3D80A08BA708101E6EDBC3821E98481B999006690CBBBCC7D071D791DA4A182D
+41CD0F2D4B3135D7B757A11C6E4EC41AF68D6546A551A4C9662B8954A48BB402
+190AFD2187080B18AADDD3C115C426F6F8776706097659E2E316F5A4C2743734
+353B8D897C6A3F2559CDAB56C0F6652C2D9FC78B5F65036722BBE30455A8B561
+2479B115DF574C70AA564A243E3699D1EE68B318F23C9D97116CFCA24BD77E4D
+2C04D5E782F244CA6ABF0DE57AC82D08D685FA92AC52CC14AB6A19DBE306337C
+29D595E3F4FB4E6DA7ECCF92C93D6491C6A5D89AD0BB68ED4F4535021AE03FB5
+CD7EE2E35DCF31FDC50C2E2340DF41FEE190AA3809653D798F2CF259B61F2556
+EBEB2B692F3448C6DB12B4103B28711A75A8C3932FBA04C7326D70DB797CF03B
+2DF1616D4DC71D4A2F31D7309DD3E47C83225F0F983CF34B61B4033223BFE2D2
+46495B42D43E5AB096E5EB53E29450785649169556155FF0D1C4898B22107154
+0890C7B476E09083274B816EED40BC50C992268A25B81A5E77BF1B3D680307D3
+B9168663E63093267413229455F25B6ED1B19BA481418CA8B752C1482B5064A6
+5F55E1FDD4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 65 /A put
+dup 97 /a put
+dup 100 /d put
+dup 103 /g put
+dup 105 /i put
+dup 111 /o put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F6BCC38A
+2A052EC4018AE3189DC1963BA39ACDED8F0C60C83F8873FBBF0302010956C520
+A7F3F8ECD0F177EDF5F4D5522C5984A3678FF32EEEB570B69C142AB89467641F
+917155D646DAF3352E27BF2AA0746E062E48532256AF364EFC0F0AAE3760D8BB
+DB82FCED86600CF0BA7308ABD951DEBD5C7B85A5647249881796ECE9F98E7C4B
+3DF234BC58FE4BD33CDC7D7B0C2F1337CC2A7A426DD52F5D9C59A4CD2283ABFD
+480A901F4F277D0C41D430693C7DE62F36A6C1D057A04D3BAA838D5345AB9A0C
+70D7EBB9777570B4071943D20692CCC5CBCDB0DA4BCA1B891930E4E1EAACC48F
+640D9A16F6714F86716F79247C950F4ED04828F7E650EB5F0F1AAA907AE4AB07
+67E3C5FA65A182AA847308CE9477DB887143678CAC83672A16A3729969B8EE9E
+70A04C5328C3B9FE70E8DBB98FB8904B71F350CE53BCF6BBB6C5B55DDACBAC38
+D51DA1D3B657153BD068874EC0FBA4DD96B16E07559775E101578FDA0232FD21
+B246B83E223D9AA92AE0C0BEEF2AB298CFB3B5F2A307D54D9834E29419D9B708
+9B9B5322196E5B230EC2A8068173B89D570B47FAAE2EB41927886CA35CCFD114
+46A85FE7AEB1DDDE3F97B80F0487F0726A4DC9620B25A5941B00EA27C0F16D3C
+7E312C0629A872304E8FE0F02EAAC1F0E958D916FA537775C929E9650E569D18
+8A8FEE8937939C7D807731B5CD4C6BAD6D33172C43A0491DEDEE59A7F2414264
+7D5F92B65F74497A5B9FE24FDF3ACEB0BC348CB9769BF1AB7C1F90523E57A467
+AD8B354C2ABA254BA0A05C85BE0994495B9BA76F6603E8BDF9A3A75BF672E05D
+75FE47A887452A2A8A3AEC82F08120C3991160D3ECF7804FF38F55F57BFD4F3C
+37BABF9B3BAE5A7940C1FEB3369DB273FDF1F67DCC1633D1442F020CE8B263A1
+5D022E9A25595B41B191FB378D07EBD3EDFB82981B985F98FEDC14C5C3C8E309
+843537C4B16154BD261C57FA923F98131E6492F325BB6B6F0A6CC215F42B3F02
+3378EDC4288A8BF8DB39C958C5E44863DD79E0893430A5959A5FC97D6857D1A4
+04B8B4035AFCD31A8A5A82BF539BF9C32787B173FA05C474EE453323B2635668
+8E6AE2992CC0BFD26BE49D5BC346D91A605982A1542E8B032F1E167A638662BE
+8D94AFD31927993984185E6E51DD8C7CB45F1DAEB0E288FFA1750744A9FDB135
+A063C8C319246A7E5A6E8E1C61DBB907B522B0E5C5B6E1C65D267325C5D72B28
+4380EE2A4682718D0BE0EF09DFBBE7E296F7F09B25B28F84995A4C4D95C9A963
+1EF464EC4A24A684F05303E8E8298155B39909FA37ED93F7008DFA6ACA6D80A0
+BBFF49A427A5B5B7F215D7E45DB6CE713D41AC87E04695553DA0E78D3BAE7D85
+B0FC94C45FD2ABB89A2DB65B9330A47B644384EC07E48589850D48C845041802
+4DE5699A09779FE13CCBACCCA4DFC50F4B018BE179CB7F8E7111FBA9209E94BD
+49BE1645480FCD47A3385F53653DA4E6234E76A796E357A3F20A8EF19F786B4D
+62B9A51F7383144EE203982F4F344BCA545480B3EE620DA711D3E41FDFA1BF89
+E0CB625F6EB1BD289DB83D0D570CECE42E0F038917D069C5BE043138E3216AF5
+FFBF9511231DAADFF8B239EA173AF5BDE041B829CC72FE98583ACE7E7AA63EEA
+012044F04B6A561D21B1AFE019712CF1A7DCE8DEA122BBC73971E8B0233F75AF
+B7C899EE49791BB4C90C5408E9792ED29EC6A5195BAEDEC42D1EDC1305EFED37
+7066ECC83C7A2B490CC612942A7C480446F7D2570FEB0B961C556AAEA2B56A73
+9978898E7C787B0FF2A4DDE9D239A4F580CC73DFC55A80416E34894AEFF431BB
+E3A6F64F53132DEBCB4B48B2F77CCD7042D932201B91C35C5D088E96B5BCEE17
+5FED418AC27822B536D5B9DAA83B0ABCA833A760B39590173D01BE1E8CB395E2
+DEFC3B18A7952EED9FA16CE896F7EB616F744F42A7E46E6614EB6475539DB975
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 40 /parenleft put
+dup 52 /four put
+dup 60 /less put
+dup 62 /greater put
+dup 63 /question put
+dup 73 /I put
+dup 83 /S put
+dup 130 /Cacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
+C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
+4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
+12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
+86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
+88FA5E250E693DB155B691326DBF2F0C18A5FF427916D7E149FA176EE68686BC
+62B22017DB97D060D07B7B882AD485860719980FE62FC883E3199045EBC28C80
+71AC48480615C1DAF3C86F514DC55C460465977E1E67333C7EE9E3A52F175892
+4866913B17A5378FBC738BB1EA72E69F7599B57891422FB532BCC14B5CB4BC66
+63AFD4D3D802717410633DEDA23D4C8B86B6A05134D14D8A3F117ED3F153342D
+D372DE7719125F70C27360AFCE64FE49CC6D7B4A075E706D19C74AF5908B4DBE
+702E26CB9364B58DE2840AD92D34F524559B272B9B0591AD9F203A1CF4BB69BC
+4BEE3E71CB0EEB1284B4D91FE29F0AA2FEC25854E0CD9E96586206EA781C5DC9
+096EA7D5864215E61CE7E39D6D1FFA664D45A18B617BD42E0E42560FB567C6EB
+985E4189727AC46D909732A8C43A569EEA6AA8A32835FF9E8C8933503C7ECB01
+D582CFE194D12003B920F3F2F3C83107E5CFBEDBC143E786018DCC4A452D794D
+C546085DE635A408580E011B1EA0989993588F2C8BC6D6A7028337E81C739699
+D1249408E281AFD3AB7FF71E6162B20BA0D9635654E6C2A48C5ED98C4FC0CDDB
+018596367B02BE7C27B84157074F1E3C2824ED8747F9C9E3E70A9FF0786B628A
+8FD6866123BA88F20777B28E1DB4A59D59489804C6631EF9EECFAFE59460C435
+361B9E6228D408C50653ED16F1C7587CAC82A0A8FF487B11D2B90E641C77FF97
+EE0CD483491F9E8A184B798EE0EB746B23CB3581B6067DE028F04C97C08D057F
+353B195E84AC714A6397C0C549930F19372696B971B1CAF6679EF8BC8BA8C5DD
+DC0AA5E0B06EC839DE1E3C8D75F5F9023661C4B3934084D545FB8494BB01B831
+BD12872846F7ACFE93F82BBE633335A6A9E95ABC7ADD2F42BDDA250F40BDF601
+2DFCC6AB702DCFF681CE52FC02C177B28A3C260B8692DBB61D25E359FE210D0D
+3CC62725DE89C54814F5D4C8211E3A3000E71A43A92500AE12886A21F6C4C63C
+CFBDCD2BF074B206A233129DE0667E711E179843656EDD35AAEB12BD148BF579
+DAE252EBC47B1D7B1D8921133AA0A78024DB578699E8DD175FAE3D3BEAA6A7C0
+481E36F6406385E017246C821721A64FCB3F80A0DBF9DC364C127A36D9C0F449
+82E048ACB2E370B87059684FE70A0D8F97D82AED7466C69A4A55C00C2A2D8457
+8E8A414E669D29BBBFD0E6ECB8337F58F530454D8D06F5D397AA8632FF524E27
+C86D31E93FD31092F2186DA5EA517FD029AB811F409556F2BFA8E0B8199C08A5
+13152012A5B6D9208EC2E9181CE45AB3E79AED8237618128BA005B8F85CA4E53
+A6F18BC018C0C334C31B155B8437858B2E8467E5D0975F8199D5FC1E89704B31
+FD4CC9FE7F5820A74CAF1B44229051ED7F957917F61A748881EADA7A9C0E67EC
+B2E9C7C51357108021F88B4725317A8D8DDE345030F0AC5180EB2520358BFB90
+FB0064930BFCEC37F1F76FBF5EA09DB2909282CE13A0AAAA4D86711121DDA36D
+004DC675F1420072A932D5A65A5C61AAC22594A80910021328638F15EF951FB1
+7E1D10C1206F2D6C0CC418BB20C40F0331A30CAD4586FB944D5FCF6448120616
+97B14FCA8EBBB6E5E551B82F3D1A46E36C826C807FB89CE086DD0EE8D8552392
+DE49CF8267DC0F626020656D5E8E21B89CE4DF76433B2D8F9810C4BF1B4EF812
+0287DCC1F4E9386F532C249F6D5D67CD967F82A983B3E0B93C7FFF2F16174686
+06C5E302B91D03A55A2BD4546D394EF7E83052B32A7E93F30B241B42C060DB04
+0FC374255CFDA0188C005BB8711ACAB4A0BC3A98512838F0D63DBAA251E472FD
+E5E9A3634AB9E8041BAABFC5441F1C699C8F71BD76C9DEF522ED15DF92655377
+4F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (pathetique.dvi)
+@start /Fa 133[41 6[40 2[49 2[78 6[33 102[{}5 83.022
+/CMBXTI10 rf /Fb 144[42 5[25 1[38 2[42 2[42 31[62 65[{}6
+83.022 /CMTI10 rf /Fc 125[66 46[66 9[106 9[0 0 1[50 7[40
+11[0 30[0 0 0 6[0{}12 132.835 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 -4 a Fc(I)t(4)-221 46 y(4)-178
+29 y(S)-32 -87 y Fb(A)l(dagio)-32 29 y Fc(<)204 96 y(>)395
+156 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-7.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 395 156 a 333 229 a Fa(p)-6 b(p)440 195 y
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 0
+N end
+ 440 195
+a 362 131 60 4 v 410 129 4 108 v 372 129 a Fc(\007)510
+112 y
+ slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 510 112 a 510 112 a
+ end
+ 510 112 a 498 195 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 498 195
+a 522 195 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 2
+N end
+ 522 195 a 411 21 a Fc(\202)463 18 y(\202)p
+528 112 4 98 v 490 112 a(\007)p 608 98 4 135 v 694 122
+a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 694 122 a 691 195 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 691 195 a 709 96 4 117 v 671 96
+a Fc(\007)858 112 y
+ slur@Dict begin (2.0pt) GD S0hgt (-2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 858 112 a 858 112 a
+ end
+ 858 112 a 858
+195 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 0
+N end
+ 858 195 a 876 112 4 117 v 838 112 a Fc(\010)1098
+139 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1098 139 a 1047 195 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 1047 195 a 1058 212 a Fa(p)p
+1113 112 4 108 v 1075 112 a Fc(\007)1213 96 y
+ slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1213 96
+a 1213 96 a
+ end
+ 1213 96 a 1213 195 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 2
+N end
+ 1213 195 a 1114 5 a
+Fc(\202)1167 2 y(\202)p 1231 96 4 98 v 1193 96 a(\007)p
+1311 98 4 135 v 1397 106 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-1.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1397 106 a 1382 195 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 1382
+195 a 1405 195 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 0
+N end
+ 1405 195 a 1412 79 4 117 v 1374 79 a
+Fc(\007)1561 96 y
+ slur@Dict begin (2.0pt) GD S0hgt (0.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1561 96 a 1561 96 a
+ end
+ 1561 96 a 1561
+195 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 1561 195 a 1579 96 4 117 v 1541 96 a Fc(\010)1801
+122 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 1801 122 a 1717 195 a Fa(m)g(p)1849 179 y
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (10.0pt) GD N /C1dir 0
+N end
+ 1849
+179 a 1816 96 4 108 v 1778 96 a Fc(\007)1916 79 y
+ slur@Dict begin (2.0pt) GD S0hgt (2.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 1916
+79 a 1916 79 a
+ end
+ 1916 79 a 1817 -12 a Fc(\202)1870 -15
+y(\202)p 1934 79 4 98 v 1896 79 a(\007)p 2014 98 4 135
+v 2085 179 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 2085 179 a 2109 162 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (12.0pt) GD N /C1dir 2
+N end
+ 2109 162 a 2115 63
+4 117 v 2077 63 a Fc(\007)2253 162 y
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 2253 162 a 2276
+162 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (12.0pt) GD N /C1dir 0
+N end
+ 2276 162 a 2205 79 a Fc(4)p 2283 79 4 117 v(\010\000)p
+2534 98 4 135 v 2640 84 a
+ slur@Dict begin /S-1alt (20.0pt) GDAR N CP /T0y1 ED /T0x1 ED /T0hgt
+(1.4pt) GD N /T0dir -1 N /T0dash 0 N /T0adj 0 N end
+ 2640 84 a 2534 162 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 2534 162
+a 2553 179 a Fa(s)f(f)l(z)2665 162 y
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (12.0pt) GD N /C1dir 2
+N end
+ 2665 162 a 2597
+63 a Fc(\011)p 2931 98 4 135 v 2999 96 a
+ slur@Dict begin (2.0pt) GD T0hgt DP T0x1 T0y1 CP P T0y1 0.7 T0dir
+M 0.14 30 T0dash T0adj 40 DS end
+ 2999 96 a 2966
+162 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 2966 162 a 2977 179 a Fa(p)p 3032 63 4 108 v 3033
+63 a Fc(\()-39 b(\007)3112 96 y(?)119 b(>)3398 29 y(<)p
+3635 98 4 135 v 3638 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pickups.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pickups.eps
index 13cf2e301fc..613c1942b92 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pickups.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pickups.eps
@@ -1,804 +1,804 @@
-%% LaTeX2e file `eps/pickups.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: pickups.dvi
-%%CreationDate: Wed Jan 21 14:03:34 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 685 483 782
-%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE pickups.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1403
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 46 /period put
-dup 48 /zero put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 53 /five put
-dup 54 /six put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC25FC8986022F2BB099875EB2CE40F1976A6AED1DBBFB6
-822BDE32D53F9A99EED41FBE818BEDB82ABDE315589D887FF65836446E1B4E14
-355A2027885E63D6AD78F695DC2CB9E1E9BC6DFFD5C59AB89EBD919C45881246
-F7254CB4F3A18E4AC4B42F81EAA8D736E01E41D6E57F80881B3BDFE2A8770984
-24200150645B91EA3E7A09632E4022CD9BAEFB623FA546AF0FEA6F7664923CF9
-E8C2DAB8CFB4A81105C824FE075677C61515D91B86093F401F42165F0D52F957
-C636987F2ED81971E9FC729AFC1E778A3C0CD45DA43681281EC4FF2B7CFDC34E
-55508EA1EB3C79D54D71279478B679EBEB22E96CC5D185F4876D21A505ECC299
-F1DA2957128F2D035167AEABA3C38FF54FEA1518A8A2FB833E3CE505A453E685
-584B69077993FCC27F2E4005E5148327D75EED83AF48CE0A2723C62406E65A2A
-412712FE7B9965FCCC2AD7707B8F3850D48B08C90B7E521AAE4867C3EADAE7F0
-E720259F0184AF8EEAAC1F6437A9ACCC2CCA1C96DB2F2D44D3A7BE079EA51768
-0A36E21F271CF71EDF440E466A42AE34035A11C06FCB911BFD270F48C410E188
-E0CC018DDBA6E78C9B0353329F924C9E7A2329CFC79645FA675808DF074711F6
-45EBCD5F5F83ED5308B53A580905CF644D9B687775C47138FC02A948EF0B99D5
-A55C8204EBE4210840C1CF75ACB865DAC24E0243B35FF16B6F337348242E72DC
-AF44A880571FD74B35FB5C77E3E7AE772EC9F08ECB46DB727EFE99CFEFCB3B27
-6FE708FA7E9DF952D47F838B549A5D7F52EB7A15380E1367AFBC60A805AD4512
-54AE29B9B82CCD95C55BE7DB63613F8EC958E664D9BA2805F98F3BD786E72D5E
-E9A55B8BB6AD8655AE16F7982A0F929859F4948A0589C8AF22B15A61EF77AFF4
-0AF6F59D0D48F9BCB07A05FBA78610822C4DA38F9C82F72D3FD3E55F83301811
-C255843DC151E5A95DFA24784C2EF0019093E533C147760E85903371F4BA8387
-53537A59EBA4E01422701DF81E614C54D948F67FE6A083C2A4B8282A48C65D71
-64504D89AF7678B27F797145F91D4C89813C54ECE923B908674DCA8C1F709811
-4AF0D002BC88ED7311A98F6710BEB9F5368D556F1AD1AADAD946D3C8126E01C1
-A481C9C304CB1D7365D0CC0054E2EEEBB1D6C73B9AA5016EDCA67C6DFA686231
-64B9B5FB7955466649EF1F2024A56E3932E3C03B286A6A9600B7F4D41F2D3D4C
-BA7591A0218E8A5D8CB24B1ACE912F98078622D9DFEAAC647D09C49958BF1E7D
-8674E2725EC3BDFEB09F732E871DF1C9E3D0E1C53C79B9B125C527D4250C0FD0
-04EA12F317BB4615F8FB78028C518EAE86202A6FF7242C0301FC3A7C5244AE00
-6F9EB457D2C055D2F65857AD41C6539C9AB2DAC3490E2B44D94BECBDBB3D3BDC
-EB1DF1EAAC1C71051A6ED3DDD64AC22190B30E1378D8EC3869BCCBC277E0B257
-2996B34CE678D3516055CAF0698F4CA4C2B35D98277BCCF3C2387647F3D330A4
-2BCCF661820C87162B647BD960588715254738CA89C391E937522C54F9C88C78
-3BDD229BA2E07B871B8CA5A57C313CC6B2C113AD46746B653834C258115E2665
-0A3D0041262E4791E5968495C795435D1A00A884CDF60A3C2374C240F36A25D8
-CC1510E62035F6286C695B608770522727C49376BD5459C96AFE5BAA7B535F76
-66617DC6691A945FD62B6C616C12F3082E75F4F23B2E90425B58F584A0630E70
-99B8925C1B9F45418738C23578B0824DF59C8A0B67252559E4D9EB41A6D774A3
-4E0C8690044E18F8E7393F803C4FF5F4A7087317C30BD9005321EF221528C4BC
-B57845A82959A723B880C9A0D0DD89A48A91F67DA5DF0D2935CEEF95AE30F4E1
-6273B712481E08AFEF24EE64AFD30F3EE75FA3D0E40208A271D0A5E33CBD3D5B
-D94727FB92ADFBE802AE948BF86AD6E4788B6855A9DF7A54A0148A571701779A
-FBA04D6783255329BFDC10987FDEB4B78B69C03F26BC54D485BE748116E56EC9
-2E70FBB79C2B5771CD9418611A7111AE87017A9D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 52 /four put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE287EF5CB
-4AFBF055F1F20E242E54A1687053562E48284AA44FD71844BE368A19A186D68C
-2EF25174E1C39A8F6412B7634F31D08A693EE59FABA56B8C51A7BCE95F9E2211
-66F9D77A2EDDA79ED4E4E06DA0D31B7DD5D94288B281913A1D0896BE5D05DFB9
-EA8782194FB56DC85CE99FFE52158B222780F763C3EA599CF3B6B1C7BB8A9126
-A99FCE0DB02761773793827DA26C9E66FC5EBF64496813E2E2F0B3E31D30672B
-D77D8154C19F2CE0FB9CBA05167FB08D991B55296268659ED99C6DAE848B8E60
-415A46507A8A5968530F1C469E5CC29F0BAF6BF13CBF747757BB44D7F70326E4
-A2B863B0ACE913EDDF42E0A4BDA6F0D5C9ECCF062DD9FC2E39ACFC235F6BA531
-734F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 42 /asterisk put
-dup 43 /plus put
-dup 50 /two put
-dup 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE52AE8025231BF0871
-19B40830A39909BA0FB82198DCB107002E97AC234C117E7D6BACAC4DD167A463
-D74B70D2A7539AB0282B2B02D11A0C22520DE4E94A9D227A85D6480DA41A9D8B
-C1D2A76ADD55920D7218FD46A6A50177188894638DBD07A55118F499E83858D6
-9D0E4D03DAB3C6078ECEABAD163A24D0C775ABF4DFDC9D321C43C5E17EEBAE25
-E8E6EFAAB1CB04042E8F7C3A35EAD2B67B1DC49F12E6C16DBBED85A1312700CD
-55F0E8BA9D6280C5D0137EC6E38C4E37F02C1CBE59B9DE606A8442B48A5A1CFF
-9E428615BD673F377E262D09B69FA27D02DA7C574F9C4A394A9D07B0BB2B3DAC
-C6933F7C47BEA479C0F7755A2D28B573212B5DB237A4A7BD71BEB75AEAFAF990
-111B5B4BB987AE0FB7F9B9DD407DD7338F01EEC8C298DB43C9D0D17B1B290EDA
-7753E0EE10E9FE705D4501C35B124F06793BA1DA5EF11838C52CD1968702DC37
-9280301F626546F1A54246C06AF01FF1D478CA91579880C8CB5F9BA861BFAFDF
-BA20B7CA1346E043C968DA1065DD277FD6B8957156829AD84420ECD3CBF1C025
-5B07E3D32FECA8E49BD182B232DD4885D5ACDB1595D176C981A8D9911B563D13
-1974C40EDC21D32B70D3EBEB6E5D11741D0111CFE4368B472C6E6CE3FB4EB75C
-56211F8C21E72B7C0F4E90178256CF4987FF45165E55F75184375805945D68BC
-05398D4430822C7ACA1A6ABECB176192314B80242F52255D912253D0EFD435EB
-E8999F10CB15DE8B2F2031FC29B097A2DC22582D161155BB5BF8FF269DBA333B
-6DE12023AA02EFD7C2F6F17C7AD7C962801E2678B4E665D3968A161CE7F6DE06
-2277CE3605BA08DF46E815AA543245D20444F36696D690EBDF5D64151874E407
-C58108D0772732B5CD19A539B6282337FFE98297142188D0986D718C19C8C123
-A9406DCB8814EDAC716AC659AD20FE38CFF7B4A7197E0FE84EC6D90C417052DA
-93D0027D617FEBAC6D35CAEEC80C8542225FDDB6FC41F710F3AAA7CC2011C6C9
-0BD4717B6CFF4F56CFEC6ECF1F9C1BADE9EC371FF33E0B33D60A5C49E212F0D0
-7C8AA3E41DE5C0AABA6FC2D9D6439B30F0FC9553BF4EAAAB77CA1A6078790122
-D2687B1ACB1F5C88C7594EB009773C8AC93B92CF3E549EC709B940D3FB0714E8
-3F8F66549F58E43AD610596E2D2BFA3AEB4F0EB3AD0F389B7125E34CB580374B
-6CD59DFE070262785256398B51F3B14ACB6B64EC38C6C9256FDB57898447FB58
-4F97BE5CC2BF44D93C719D15E00973B97CC7C99130F068B43209044C424A8E03
-15C44DB02F5DE555EA089985E8112D7CAFD54F43DB93A4DAAEA7AC9305A36458
-D0AA6C9C5307F75E5E1F8530529704082A0E11C99EF881D80E1F57953FE79C91
-511FC64613D247F13F6DD360F6EF1ABE01DDBD9D19F3DA37639607629705C038
-64B69C394DA3EA222D1622DA6DC6726DF4FF1BDDAD2A561D5E68CF0DAB52C187
-8F506C7688C1517B74F70CBB4489E38DD4A5C2A50F2C5CCB10728E76B5B0E15E
-C84EB2305F229631514C2CCA4EB2A307971C2A7458A25981D3A8440E5C892CFA
-B146B078547551CF0DA061E4001E793DE93474302B88869D68084E9BEE003A85
-F9411B4D573B920F275423BD72545B4111C9B1C25BDA2E9DD5C66557CB415321
-07112F3D2A2C74CEE56F448EB3283ADE9EFAC9011B41A46CE23E5DA9E1FDC834
-DEDA99F278DFF499B38E73994585DBA41FC315BBF2B3D0231AA8A145D1593077
-4D43578AF0EA1C1E22B459D22D07CD9A3DB6EEE3AB2E8D4AEAB7614B9CB190EE
-97747CC93313A74C5413C3E620220A3CA2AFE05D394DB6B3966AE762766DDD7E
-AA495FDE8DBA35D553B6E982F21E21ABB60449332DA96B682D77E64AE547CD5E
-210821AEAAB93BE89D0A685A075BC8DACB4F05E0FAFA48996AF284F6018A654D
-77BA7973FCC1B2EEA9174DCB75A7750B6F0BA13640583645FF3A13EEA6157503
-AB540F2F1482C0C7B0328AC4543A38DF56F13B5A4954DA324456CFAC30061C66
-F530A387251FD2FCDB32C4301F219F113F8C919CEEDCA4A3A7501A00FD36481A
-31C5EDCAFF96F4C13499C295F7292768C4D36E9E121D1F8C65F3B297860B6135
-AD40469951CEC02C304C73E96C0E02B90EEE8C03CB295B9AE9C9216542D9EBA6
-F112F5D5BD8645F9878E68A67A3FC410E7B6A1A1D9A9467A8ED89BFCD00A90E1
-F82732318B021CFF5835922C5FBB5572007DEAEA4FC0A50EEF6D5932D0D79E2F
-28215E2E9B74F0F7DB059F044476237ADED37B2A62E15B4D678B32EEDD051B46
-1D8B667FA5
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (pickups.dvi)
-@start /Fa 201[44 44 1[44 44 44 44 1[44 46[{}7 83.022
-/CMTT10 rf /Fb 203[56 52[{}1 99.6264 /CMBX12 rf /Fc 184[106
-20[40 6[0 0 0 0 31[0 0 6[0{}9 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fc(G)-254 29 y(2)-197
-28 y Fb(4)-197 95 y(4)-65 179 y Fa(3.5)p -26 79 4 117
-v -64 79 a Fc(\010\000)p 183 79 4 108 v 248 w(\()-39
-b(\007)p 230 98 4 135 v 314 79 4 117 v 131 w(\007)p 435
-79 V 121 w(\007)p 556 79 V 121 w(\007)p 677 79 V 121
-w(\007)p 759 98 4 135 v 776 98 V 806 28 a Fb(4)806 95
-y(4)938 179 y Fa(3)p 977 79 4 117 v 939 79 a Fc(\010\000)p
-1148 98 4 135 v 1232 79 4 117 v 255 w(\007)p 1353 79
-V 121 w(\007)p 1473 79 V 120 w(\007)p 1594 79 V 121 w(\007)p
-1677 98 4 135 v 1694 98 V 1724 28 a Fb(4)1724 95 y(4)1856
-179 y Fa(2)p 1894 79 4 117 v 1856 79 a Fc(\010)p 2027
-98 4 135 v 2111 79 4 117 v 217 w(\007)p 2232 79 V 121
-w(\007)p 2353 79 V 121 w(\007)p 2474 79 V 121 w(\007)p
-2556 98 4 135 v 2573 98 V 2603 28 a Fb(4)2603 95 y(4)2735
-179 y Fa(1)p 2773 79 4 117 v 2735 79 a Fc(\007)p 2856
-98 4 135 v 2940 79 4 117 v 167 w(\007)p 3061 79 V 121
-w(\007)p 3182 79 V 121 w(\007)p 3303 79 V 121 w(\007)p
-3385 98 4 135 v 3402 98 V 3405 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262 a -364
-488 3770 4 v -364 521 V -364 554 V -364 587 V -364 621
-V -364 586 a Fc(G)-254 552 y(2)-197 551 y Fb(4)-197 618
-y(4)-57 702 y Fa(0.5)p -19 602 4 108 v -18 602 a Fc(\()g(\007)p
-56 621 4 135 v 148 602 4 117 v 167 w(\007)p 291 602 V
-143 w(\007)p 434 602 V 143 w(\007)p 576 602 V 142 w(\007)p
-681 621 4 135 v 697 621 V 730 551 a Fb(4)730 618 y(4)870
-702 y Fa(0.25)p 908 602 4 108 v 909 602 a Fc(\))g(\007)p
-959 621 4 135 v 1051 602 4 117 v 143 w(\007)p 1194 602
-V 143 w(\007)p 1337 602 V 143 w(\007)p 1479 602 V 142
-w(\007)p 1584 621 4 135 v 1601 621 V 1633 551 a Fb(4)1633
-618 y(4)1773 702 y Fa(0.125)p 1811 602 4 133 v 1812 602
-a Fc(*)g(\007)p 1861 621 4 135 v 1953 602 4 117 v 142
-w(\007)p 2096 602 V 143 w(\007)p 2238 602 V 142 w(\007)p
-2381 602 V 143 w(\007)p 2486 621 4 135 v 2502 621 V 2535
-551 a Fb(4)2535 618 y(4)2675 702 y Fa(0.0625)p 2713 602
-4 158 v 2714 602 a Fc(+)g(\007)p 2761 621 4 135 v 2853
-602 4 117 v 140 w(\007)p 2995 602 V 142 w(\007)p 3138
-602 V 143 w(\007)p 3281 602 V 143 w(\007)p 3385 621 4
-135 v 3402 621 V 3405 785 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 785 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/pickups.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: pickups.dvi
+%%CreationDate: Wed Jan 21 14:03:34 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 685 483 782
+%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE pickups.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1403
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 53 /five put
+dup 54 /six put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC25FC8986022F2BB099875EB2CE40F1976A6AED1DBBFB6
+822BDE32D53F9A99EED41FBE818BEDB82ABDE315589D887FF65836446E1B4E14
+355A2027885E63D6AD78F695DC2CB9E1E9BC6DFFD5C59AB89EBD919C45881246
+F7254CB4F3A18E4AC4B42F81EAA8D736E01E41D6E57F80881B3BDFE2A8770984
+24200150645B91EA3E7A09632E4022CD9BAEFB623FA546AF0FEA6F7664923CF9
+E8C2DAB8CFB4A81105C824FE075677C61515D91B86093F401F42165F0D52F957
+C636987F2ED81971E9FC729AFC1E778A3C0CD45DA43681281EC4FF2B7CFDC34E
+55508EA1EB3C79D54D71279478B679EBEB22E96CC5D185F4876D21A505ECC299
+F1DA2957128F2D035167AEABA3C38FF54FEA1518A8A2FB833E3CE505A453E685
+584B69077993FCC27F2E4005E5148327D75EED83AF48CE0A2723C62406E65A2A
+412712FE7B9965FCCC2AD7707B8F3850D48B08C90B7E521AAE4867C3EADAE7F0
+E720259F0184AF8EEAAC1F6437A9ACCC2CCA1C96DB2F2D44D3A7BE079EA51768
+0A36E21F271CF71EDF440E466A42AE34035A11C06FCB911BFD270F48C410E188
+E0CC018DDBA6E78C9B0353329F924C9E7A2329CFC79645FA675808DF074711F6
+45EBCD5F5F83ED5308B53A580905CF644D9B687775C47138FC02A948EF0B99D5
+A55C8204EBE4210840C1CF75ACB865DAC24E0243B35FF16B6F337348242E72DC
+AF44A880571FD74B35FB5C77E3E7AE772EC9F08ECB46DB727EFE99CFEFCB3B27
+6FE708FA7E9DF952D47F838B549A5D7F52EB7A15380E1367AFBC60A805AD4512
+54AE29B9B82CCD95C55BE7DB63613F8EC958E664D9BA2805F98F3BD786E72D5E
+E9A55B8BB6AD8655AE16F7982A0F929859F4948A0589C8AF22B15A61EF77AFF4
+0AF6F59D0D48F9BCB07A05FBA78610822C4DA38F9C82F72D3FD3E55F83301811
+C255843DC151E5A95DFA24784C2EF0019093E533C147760E85903371F4BA8387
+53537A59EBA4E01422701DF81E614C54D948F67FE6A083C2A4B8282A48C65D71
+64504D89AF7678B27F797145F91D4C89813C54ECE923B908674DCA8C1F709811
+4AF0D002BC88ED7311A98F6710BEB9F5368D556F1AD1AADAD946D3C8126E01C1
+A481C9C304CB1D7365D0CC0054E2EEEBB1D6C73B9AA5016EDCA67C6DFA686231
+64B9B5FB7955466649EF1F2024A56E3932E3C03B286A6A9600B7F4D41F2D3D4C
+BA7591A0218E8A5D8CB24B1ACE912F98078622D9DFEAAC647D09C49958BF1E7D
+8674E2725EC3BDFEB09F732E871DF1C9E3D0E1C53C79B9B125C527D4250C0FD0
+04EA12F317BB4615F8FB78028C518EAE86202A6FF7242C0301FC3A7C5244AE00
+6F9EB457D2C055D2F65857AD41C6539C9AB2DAC3490E2B44D94BECBDBB3D3BDC
+EB1DF1EAAC1C71051A6ED3DDD64AC22190B30E1378D8EC3869BCCBC277E0B257
+2996B34CE678D3516055CAF0698F4CA4C2B35D98277BCCF3C2387647F3D330A4
+2BCCF661820C87162B647BD960588715254738CA89C391E937522C54F9C88C78
+3BDD229BA2E07B871B8CA5A57C313CC6B2C113AD46746B653834C258115E2665
+0A3D0041262E4791E5968495C795435D1A00A884CDF60A3C2374C240F36A25D8
+CC1510E62035F6286C695B608770522727C49376BD5459C96AFE5BAA7B535F76
+66617DC6691A945FD62B6C616C12F3082E75F4F23B2E90425B58F584A0630E70
+99B8925C1B9F45418738C23578B0824DF59C8A0B67252559E4D9EB41A6D774A3
+4E0C8690044E18F8E7393F803C4FF5F4A7087317C30BD9005321EF221528C4BC
+B57845A82959A723B880C9A0D0DD89A48A91F67DA5DF0D2935CEEF95AE30F4E1
+6273B712481E08AFEF24EE64AFD30F3EE75FA3D0E40208A271D0A5E33CBD3D5B
+D94727FB92ADFBE802AE948BF86AD6E4788B6855A9DF7A54A0148A571701779A
+FBA04D6783255329BFDC10987FDEB4B78B69C03F26BC54D485BE748116E56EC9
+2E70FBB79C2B5771CD9418611A7111AE87017A9D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 52 /four put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE287EF5CB
+4AFBF055F1F20E242E54A1687053562E48284AA44FD71844BE368A19A186D68C
+2EF25174E1C39A8F6412B7634F31D08A693EE59FABA56B8C51A7BCE95F9E2211
+66F9D77A2EDDA79ED4E4E06DA0D31B7DD5D94288B281913A1D0896BE5D05DFB9
+EA8782194FB56DC85CE99FFE52158B222780F763C3EA599CF3B6B1C7BB8A9126
+A99FCE0DB02761773793827DA26C9E66FC5EBF64496813E2E2F0B3E31D30672B
+D77D8154C19F2CE0FB9CBA05167FB08D991B55296268659ED99C6DAE848B8E60
+415A46507A8A5968530F1C469E5CC29F0BAF6BF13CBF747757BB44D7F70326E4
+A2B863B0ACE913EDDF42E0A4BDA6F0D5C9ECCF062DD9FC2E39ACFC235F6BA531
+734F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 50 /two put
+dup 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE52AE8025231BF0871
+19B40830A39909BA0FB82198DCB107002E97AC234C117E7D6BACAC4DD167A463
+D74B70D2A7539AB0282B2B02D11A0C22520DE4E94A9D227A85D6480DA41A9D8B
+C1D2A76ADD55920D7218FD46A6A50177188894638DBD07A55118F499E83858D6
+9D0E4D03DAB3C6078ECEABAD163A24D0C775ABF4DFDC9D321C43C5E17EEBAE25
+E8E6EFAAB1CB04042E8F7C3A35EAD2B67B1DC49F12E6C16DBBED85A1312700CD
+55F0E8BA9D6280C5D0137EC6E38C4E37F02C1CBE59B9DE606A8442B48A5A1CFF
+9E428615BD673F377E262D09B69FA27D02DA7C574F9C4A394A9D07B0BB2B3DAC
+C6933F7C47BEA479C0F7755A2D28B573212B5DB237A4A7BD71BEB75AEAFAF990
+111B5B4BB987AE0FB7F9B9DD407DD7338F01EEC8C298DB43C9D0D17B1B290EDA
+7753E0EE10E9FE705D4501C35B124F06793BA1DA5EF11838C52CD1968702DC37
+9280301F626546F1A54246C06AF01FF1D478CA91579880C8CB5F9BA861BFAFDF
+BA20B7CA1346E043C968DA1065DD277FD6B8957156829AD84420ECD3CBF1C025
+5B07E3D32FECA8E49BD182B232DD4885D5ACDB1595D176C981A8D9911B563D13
+1974C40EDC21D32B70D3EBEB6E5D11741D0111CFE4368B472C6E6CE3FB4EB75C
+56211F8C21E72B7C0F4E90178256CF4987FF45165E55F75184375805945D68BC
+05398D4430822C7ACA1A6ABECB176192314B80242F52255D912253D0EFD435EB
+E8999F10CB15DE8B2F2031FC29B097A2DC22582D161155BB5BF8FF269DBA333B
+6DE12023AA02EFD7C2F6F17C7AD7C962801E2678B4E665D3968A161CE7F6DE06
+2277CE3605BA08DF46E815AA543245D20444F36696D690EBDF5D64151874E407
+C58108D0772732B5CD19A539B6282337FFE98297142188D0986D718C19C8C123
+A9406DCB8814EDAC716AC659AD20FE38CFF7B4A7197E0FE84EC6D90C417052DA
+93D0027D617FEBAC6D35CAEEC80C8542225FDDB6FC41F710F3AAA7CC2011C6C9
+0BD4717B6CFF4F56CFEC6ECF1F9C1BADE9EC371FF33E0B33D60A5C49E212F0D0
+7C8AA3E41DE5C0AABA6FC2D9D6439B30F0FC9553BF4EAAAB77CA1A6078790122
+D2687B1ACB1F5C88C7594EB009773C8AC93B92CF3E549EC709B940D3FB0714E8
+3F8F66549F58E43AD610596E2D2BFA3AEB4F0EB3AD0F389B7125E34CB580374B
+6CD59DFE070262785256398B51F3B14ACB6B64EC38C6C9256FDB57898447FB58
+4F97BE5CC2BF44D93C719D15E00973B97CC7C99130F068B43209044C424A8E03
+15C44DB02F5DE555EA089985E8112D7CAFD54F43DB93A4DAAEA7AC9305A36458
+D0AA6C9C5307F75E5E1F8530529704082A0E11C99EF881D80E1F57953FE79C91
+511FC64613D247F13F6DD360F6EF1ABE01DDBD9D19F3DA37639607629705C038
+64B69C394DA3EA222D1622DA6DC6726DF4FF1BDDAD2A561D5E68CF0DAB52C187
+8F506C7688C1517B74F70CBB4489E38DD4A5C2A50F2C5CCB10728E76B5B0E15E
+C84EB2305F229631514C2CCA4EB2A307971C2A7458A25981D3A8440E5C892CFA
+B146B078547551CF0DA061E4001E793DE93474302B88869D68084E9BEE003A85
+F9411B4D573B920F275423BD72545B4111C9B1C25BDA2E9DD5C66557CB415321
+07112F3D2A2C74CEE56F448EB3283ADE9EFAC9011B41A46CE23E5DA9E1FDC834
+DEDA99F278DFF499B38E73994585DBA41FC315BBF2B3D0231AA8A145D1593077
+4D43578AF0EA1C1E22B459D22D07CD9A3DB6EEE3AB2E8D4AEAB7614B9CB190EE
+97747CC93313A74C5413C3E620220A3CA2AFE05D394DB6B3966AE762766DDD7E
+AA495FDE8DBA35D553B6E982F21E21ABB60449332DA96B682D77E64AE547CD5E
+210821AEAAB93BE89D0A685A075BC8DACB4F05E0FAFA48996AF284F6018A654D
+77BA7973FCC1B2EEA9174DCB75A7750B6F0BA13640583645FF3A13EEA6157503
+AB540F2F1482C0C7B0328AC4543A38DF56F13B5A4954DA324456CFAC30061C66
+F530A387251FD2FCDB32C4301F219F113F8C919CEEDCA4A3A7501A00FD36481A
+31C5EDCAFF96F4C13499C295F7292768C4D36E9E121D1F8C65F3B297860B6135
+AD40469951CEC02C304C73E96C0E02B90EEE8C03CB295B9AE9C9216542D9EBA6
+F112F5D5BD8645F9878E68A67A3FC410E7B6A1A1D9A9467A8ED89BFCD00A90E1
+F82732318B021CFF5835922C5FBB5572007DEAEA4FC0A50EEF6D5932D0D79E2F
+28215E2E9B74F0F7DB059F044476237ADED37B2A62E15B4D678B32EEDD051B46
+1D8B667FA5
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (pickups.dvi)
+@start /Fa 201[44 44 1[44 44 44 44 1[44 46[{}7 83.022
+/CMTT10 rf /Fb 203[56 52[{}1 99.6264 /CMBX12 rf /Fc 184[106
+20[40 6[0 0 0 0 31[0 0 6[0{}9 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fc(G)-254 29 y(2)-197
+28 y Fb(4)-197 95 y(4)-65 179 y Fa(3.5)p -26 79 4 117
+v -64 79 a Fc(\010\000)p 183 79 4 108 v 248 w(\()-39
+b(\007)p 230 98 4 135 v 314 79 4 117 v 131 w(\007)p 435
+79 V 121 w(\007)p 556 79 V 121 w(\007)p 677 79 V 121
+w(\007)p 759 98 4 135 v 776 98 V 806 28 a Fb(4)806 95
+y(4)938 179 y Fa(3)p 977 79 4 117 v 939 79 a Fc(\010\000)p
+1148 98 4 135 v 1232 79 4 117 v 255 w(\007)p 1353 79
+V 121 w(\007)p 1473 79 V 120 w(\007)p 1594 79 V 121 w(\007)p
+1677 98 4 135 v 1694 98 V 1724 28 a Fb(4)1724 95 y(4)1856
+179 y Fa(2)p 1894 79 4 117 v 1856 79 a Fc(\010)p 2027
+98 4 135 v 2111 79 4 117 v 217 w(\007)p 2232 79 V 121
+w(\007)p 2353 79 V 121 w(\007)p 2474 79 V 121 w(\007)p
+2556 98 4 135 v 2573 98 V 2603 28 a Fb(4)2603 95 y(4)2735
+179 y Fa(1)p 2773 79 4 117 v 2735 79 a Fc(\007)p 2856
+98 4 135 v 2940 79 4 117 v 167 w(\007)p 3061 79 V 121
+w(\007)p 3182 79 V 121 w(\007)p 3303 79 V 121 w(\007)p
+3385 98 4 135 v 3402 98 V 3405 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 262 a -364
+488 3770 4 v -364 521 V -364 554 V -364 587 V -364 621
+V -364 586 a Fc(G)-254 552 y(2)-197 551 y Fb(4)-197 618
+y(4)-57 702 y Fa(0.5)p -19 602 4 108 v -18 602 a Fc(\()g(\007)p
+56 621 4 135 v 148 602 4 117 v 167 w(\007)p 291 602 V
+143 w(\007)p 434 602 V 143 w(\007)p 576 602 V 142 w(\007)p
+681 621 4 135 v 697 621 V 730 551 a Fb(4)730 618 y(4)870
+702 y Fa(0.25)p 908 602 4 108 v 909 602 a Fc(\))g(\007)p
+959 621 4 135 v 1051 602 4 117 v 143 w(\007)p 1194 602
+V 143 w(\007)p 1337 602 V 143 w(\007)p 1479 602 V 142
+w(\007)p 1584 621 4 135 v 1601 621 V 1633 551 a Fb(4)1633
+618 y(4)1773 702 y Fa(0.125)p 1811 602 4 133 v 1812 602
+a Fc(*)g(\007)p 1861 621 4 135 v 1953 602 4 117 v 142
+w(\007)p 2096 602 V 143 w(\007)p 2238 602 V 142 w(\007)p
+2381 602 V 143 w(\007)p 2486 621 4 135 v 2502 621 V 2535
+551 a Fb(4)2535 618 y(4)2675 702 y Fa(0.0625)p 2713 602
+4 158 v 2714 602 a Fc(+)g(\007)p 2761 621 4 135 v 2853
+602 4 117 v 140 w(\007)p 2995 602 V 142 w(\007)p 3138
+602 V 143 w(\007)p 3281 602 V 143 w(\007)p 3385 621 4
+135 v 3402 621 V 3405 785 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 785 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pitch.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pitch.eps
index 2ddbd03d481..028250482a4 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pitch.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/pitch.eps
@@ -1,708 +1,708 @@
-%% LaTeX2e file `eps/pitch.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: pitch.dvi
-%%CreationDate: Wed Jan 21 14:04:11 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 724 510 798
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE pitch.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1404
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 54 /six put
-dup 99 /c put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC25FC8986022F2BB099875EB2CE40F1976A6AED1DBBFB6
-822BDE32D53F9A99EED41FBE818BEDB82ABDE315589D887FF65836446E1B4E14
-355A2027885E63D6AD78F695DC2CB9E1E9BC6DFFD5C59AB89EBD919C45881246
-F7254CB4F3A18E4AC4B42F81EAA8D736E01E41D6E57F80881B3BDFE2A8770984
-24200150645B91EA3E7A09632E4022CD9BAEFB623FA546AF0FEA6F7664923CF9
-E8C2DAB8CFB4A81105C824FE075677C61515D91B86093F401F42165F0D52F957
-C636987F2ED81971E9FC729AFC1E778A3C0CD45DA43681281EC4FF2B7CFDC34E
-55508EA1EB3C79D54D71279478B679EBEB22E96CC5D185F4876D21A505ECC299
-F1DA2957128F2D035167AEABA3C38FF54FEA1518A8A2FB833E3CE505A453E685
-584B69077993FCC27F2E4005E5148327D75EED83AF48CE0A2723C62406E65A2A
-412712FE7B9965FCCC2AD7707B8F3850D48B08C90B7E521AAE4867C3EADAE7F0
-E720259F0184AF8EEAAC1F6437B62AA73B35056591EE56A03705DC7AC976E6B6
-BAB184FD4535E0DAA80AF725C6CF8361120D7AB0D037DBD23EF3DB7D6A00F0A4
-E391276EF6CA1D1AE1E1D0930B251F4C0A55CF771191EC0273D049BB3B26087F
-7AB3EF8028CC279251E6EB1F15B8FB73182B8EE2658AE54885F04142FBB5FE40
-F9675E1E0FF79B4E983D2536C87EDF002DE649E6F283A651163FC51ED3366656
-251FB5DC31FB041003FCB0DA82C05AB4CF1A674EA3DA8CBB074A8597CF21D09B
-07338286A8E5E1DD1E936D12700C8958BC8C79C8B8D5AE3B142C792B3E617B96
-E5222993E68A5FFAC212A9FB6E70D84C9E1C94160FD5CB6233E2F3BAA35C0CEE
-4DAF25BB7F76C4F886F12442645890ED2DD5E6D0869FF15A9A4FFB8A7804B79D
-33C3C9451F82A8151700460B344CB9F76E27899156834290D1041A76A2753AD4
-ED84327E2D8013D63EA93FCA1EC0516F44E551A18319626FE6084FD2E7D6F724
-4999B345C1A5236B0194CBB614FA0180FB6814291D5B48411CEB51C5A1A8E044
-9E655C1D9F2A7F5EAC533525F41D2C171C85E4FC853BC31721053713A7492090
-3F4B2097744BBFD933036A614D8A06D1A295600D61A38559E49AE96AF415323C
-2B0684F0E4D4CCF0DA70D56690F7FB2BD2BCDE213B0367B56F6AA3D733ED9526
-DD9323DB8E320553C63FB258137BF11985B9EC35B65B512C44D57546B6CC4430
-5B735C94B2B8F9B733963BB8B5331F9BD007A807B07C922ADC94A9B33E67E782
-8BF9437D604DE93A7872A7F78C122F8288EA7B86BFAD787AB9ADF06E4C3606E0
-25A75909B1E5C55C0D1B332477BD549E6F78C4BD94848923E66BF3964AAD7DE0
-DF1F9E00383DC686CDC3C2C369A39735A0D8ECF136509EDAA6AB46677E83FABA
-082A767AF7614C6F6AE454785749198358B7207029F3070F7FF4923700D4AD48
-5599329FDB61DBEF6720774B0FC3CA93191BC4214620998C05250846CD035EE5
-136682895153F2B7ED9AB5D971EDC98C7DEA386422908EF38E75C4148771CE6E
-39A21E3965E4EF3536689800D7F40D9CD53CDA59C9885E1066124188D68CE388
-B9F52FF9355BE075995FE88849E1F9D3A76D2D24E785F4D6FFA58135B2125CE7
-B077A9519E9B2D806C1D006A32978A11121A81CF2651FC9E175FB60B62B6CFBF
-B6A9A882D0048E908B3FC5C24AFE06761D7E471B84AFE967171FAECA78AB5D76
-50AE63916A36021A1F9F4427DCA57BC00DB266497665A331F2E913BF67FAA33B
-91BFD10F215575CF2A5ED98EBBB8DF6095DBEAE7F7630C81DC687E040952952F
-7731EBBC4426C097FE4FBD592A26783F5318EE8471A063EAE87A58F5BEAD5A33
-C253C64747D4AE453EED1152D9AFEB3B4F01110108B9D9F1A17C831744546C7A
-B7FAEB8FDAFE67C026F9025FBB04B9C00B6861406CCFDC81838AFFA19281C7CE
-E9441A5DAB5C758E4A05938A5285DECC3DB17D0FDCCCA9D46BAF49A6200CF44B
-1F837BFF770A09E52ED3A7A5089E57688D8FF3CC2FEB42244A73A2E815DA491C
-260740C211888D80FC4F8329ACB35AAC0E43999456BEDD73C343CEAB18ACEB7E
-176BE20328CFDF1D60436E9F5617605486E25D8A849EB0FF4A66EF9485A78833
-40824B5533A6179D0A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 72 /H put
-dup 73 /I put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF83287B2C762EFD151232F1E1B856941A07C76AD4A6030971385C9614
-AF82D00B6895EE8090AE00C2AABDB1D374E9C0317A2F09AC4177697BF63E3627
-D9EBBE30E9D146E27FC0ADC8AE7C3D7A1991AD1D0EABE5DEBB094848B0FBBC59
-2068EBD184144B0CD2EDA2BDC91AB86B33F39E490FB74BECBDEEE521DA7631C7
-AAF2B46903C5A98243E4248DD038B91A4B41B104F91A830F910CB588F90A1622
-FE324BF670E7CC8D3B74627F606AC90C6033C4F53E87152F283A5768F47DDB2E
-80916FBB88D76FEDF9AB27457452B9DB3C52699516D631439A029B2385D7512A
-B68B99B7D983FE673DD80A0E552FC92A3A309C653EBCDED9A25B0ACFD4ACB30A
-6920F93F8958C43CE37368DBC00CDB3D6F1941334170C8A549DF93A472AF5F65
-147E50BBBE8972539BA9FDA8830503C576F8D71796D1735090F80306D0051C38
-E4DF41022555A1DC8CF8F12E8C270673F489E257EB4DCE1C4D44B7439E7CF2AD
-B4FAADC43B87563ED86D2DBD85E6964FE7FE614EB7DEA462D47ED372819AA359
-335DBA6CD7F6182FD8C201DF4FA2021696CEE010D6E19561D1406B5611F071C3
-E51C7487F7C91DFDDC288A5E8B536D64CA0066DB3D078DBF24DD4B559DB2E9BF
-C3E95FE9469F3573B8901D32325808360DDA7D86B6E907E9EC9A5D35409696A2
-EDA1639CF5B944AFAECF7A5848110501988D6FFC7D875EB676DBA5E2C1E664E9
-D212AD50E5F544716E2AC2940282A763DA67A120E775F9C26D830DE20E3D67C2
-C4B06966C82F971C68B54BE0406CAAE3DFF29408575DB28F6A45227F9A34FDFA
-E721000A2B4F8EFD355618C37B51DF5A901295E2213A427FB556A4243AA86FCC
-C7D8D1DB5A7883EB852BFDBB338DDFF3E122FAC87FC2852073277AED3081F6E9
-E83C25118200FCE7B12A40C28B4D6E3308E75C4FBD5B90E4B3C1C38C42426F79
-E0ABE995289650EC4086A5F8E67214A8F8A3BFA6846A1F51498E0DF5045CDBE5
-6E84BD2545678F0FA473336241A6CF3589A13F6DBEAFAFE90953EC90043C0608
-DFBA5806D6E13A3DB84FF4F0E134B2EB2569D206AEF6E3EAA8FEEAD0DC2474B1
-D777BEBBC3747EC98BD680F236C7265E404AF27CA5E0860A666359EC0FE50031
-A0B70B04A961C6F9E52E6FE10759F7A4DD474111BCB25B4660
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (pitch.dvi)
-@start /Fa 156[44 44[44 44 44 44 44 44 49[{}7 83.022
-/CMTT10 rf /Fb 182[106 93 64[0 7[{}3 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 -4 a Fb(I)-214 378 y Fa(c41)p
--224 131 60 4 v -224 164 V -224 197 V -224 230 V -224
-264 V -176 279 4 250 v -214 279 a Fb(\007)p -138 131
-60 4 v -138 164 V -138 197 V -138 230 V -138 264 V -90
-262 4 233 v -128 262 a(\007)p -51 131 60 4 v -51 164
-V -51 197 V -51 230 V -3 245 4 216 v -41 245 a(\007)p
-35 131 60 4 v 35 164 V 35 197 V 35 230 V 83 228 4 200
-v 45 228 a(\007)p 121 131 60 4 v 121 164 V 121 197 V
-169 212 4 183 v 131 212 a(\007)p 207 131 60 4 v 207 164
-V 207 197 V 255 195 4 167 v 217 195 a(\007)p 293 131
-60 4 v 293 164 V 341 179 4 150 v 303 179 a(\007)p 389
-98 4 135 v 423 262 a Fa(c42)p 413 131 60 4 v 413 164
-V 461 162 4 133 v 423 162 a Fb(\007)p 499 131 60 4 v
-547 146 4 117 v 509 146 a(\007)p 585 131 60 4 v 633 129
-4 117 v 595 129 a(\007)p 720 112 V 682 112 a(\007)p 806
-96 V 768 96 a(\007)p 892 79 V 854 79 a(\007)p 978 63
-V 940 63 a(\007)p 1026 98 4 135 v 1060 179 a Fa(c43)p
-1098 46 4 117 v 1060 46 a Fb(\007)p 1184 29 V 1146 29
-a(\007)p 1232 129 V 1233 13 a(\007)p 1319 112 V 1320
--4 a(\007)p 1405 96 V 1406 -20 a(\007)p 1491 79 V 1492
--37 a(\007)p 1577 62 V 1578 -54 a(\007)1631 63 y(H)p
-1724 98 4 135 v 1758 229 a Fa(c44)p 1748 131 60 4 v 1796
-129 4 117 v 1758 129 a Fb(\007)p 1882 112 V 1844 112
-a(\007)p 1968 96 V 1930 96 a(\007)p 2054 79 V 2016 79
-a(\007)p 2140 63 V 2102 63 a(\007)p 2227 46 V 2189 46
-a(\007)p 2275 146 V 2276 29 a(\007)p 2361 98 4 135 v
-2375 212 a Fa(c45)p 2394 129 4 117 v 2395 13 a Fb(\007)p
-2481 112 V 2482 -4 a(\007)p 2567 96 V 2568 -20 a(\007)p
-2653 79 V 2654 -37 a(\007)p 2739 62 V 2740 -54 a(\007)p
-2815 -69 60 4 v 2825 46 4 117 v 2826 -70 a(\007)p 2902
--69 60 4 v 2912 29 4 117 v 2913 -87 a(\007)p 2998 98
-4 135 v 3011 179 a Fa(c46)p 3021 -69 60 4 v 3021 -102
-V 3031 29 4 133 v 3032 -103 a Fb(\007)p 3108 -69 60 4
-v 3108 -102 V 3118 29 4 150 v 3119 -120 a(\007)p 3194
--69 60 4 v 3194 -102 V 3194 -135 V 3204 29 4 167 v 3205
--137 a(\007)p 3280 -69 60 4 v 3280 -102 V 3280 -135 V
-3290 29 4 183 v 3291 -153 a(\007)p 3366 -69 60 4 v 3366
--102 V 3366 -135 V 3366 -168 V 3376 29 4 200 v 3377 -170
-a(\007)p 3452 -69 60 4 v 3452 -102 V 3452 -135 V 3452
--168 V 3462 29 4 216 v 3463 -186 a(\007)p 3538 -69 60
-4 v 3538 -102 V 3538 -135 V 3538 -168 V 3538 -201 V 3548
-29 4 233 v 3549 -203 a(\007)p 3635 98 4 135 v 3638 262
-a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/pitch.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: pitch.dvi
+%%CreationDate: Wed Jan 21 14:04:11 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 724 510 798
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE pitch.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1404
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 99 /c put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC25FC8986022F2BB099875EB2CE40F1976A6AED1DBBFB6
+822BDE32D53F9A99EED41FBE818BEDB82ABDE315589D887FF65836446E1B4E14
+355A2027885E63D6AD78F695DC2CB9E1E9BC6DFFD5C59AB89EBD919C45881246
+F7254CB4F3A18E4AC4B42F81EAA8D736E01E41D6E57F80881B3BDFE2A8770984
+24200150645B91EA3E7A09632E4022CD9BAEFB623FA546AF0FEA6F7664923CF9
+E8C2DAB8CFB4A81105C824FE075677C61515D91B86093F401F42165F0D52F957
+C636987F2ED81971E9FC729AFC1E778A3C0CD45DA43681281EC4FF2B7CFDC34E
+55508EA1EB3C79D54D71279478B679EBEB22E96CC5D185F4876D21A505ECC299
+F1DA2957128F2D035167AEABA3C38FF54FEA1518A8A2FB833E3CE505A453E685
+584B69077993FCC27F2E4005E5148327D75EED83AF48CE0A2723C62406E65A2A
+412712FE7B9965FCCC2AD7707B8F3850D48B08C90B7E521AAE4867C3EADAE7F0
+E720259F0184AF8EEAAC1F6437B62AA73B35056591EE56A03705DC7AC976E6B6
+BAB184FD4535E0DAA80AF725C6CF8361120D7AB0D037DBD23EF3DB7D6A00F0A4
+E391276EF6CA1D1AE1E1D0930B251F4C0A55CF771191EC0273D049BB3B26087F
+7AB3EF8028CC279251E6EB1F15B8FB73182B8EE2658AE54885F04142FBB5FE40
+F9675E1E0FF79B4E983D2536C87EDF002DE649E6F283A651163FC51ED3366656
+251FB5DC31FB041003FCB0DA82C05AB4CF1A674EA3DA8CBB074A8597CF21D09B
+07338286A8E5E1DD1E936D12700C8958BC8C79C8B8D5AE3B142C792B3E617B96
+E5222993E68A5FFAC212A9FB6E70D84C9E1C94160FD5CB6233E2F3BAA35C0CEE
+4DAF25BB7F76C4F886F12442645890ED2DD5E6D0869FF15A9A4FFB8A7804B79D
+33C3C9451F82A8151700460B344CB9F76E27899156834290D1041A76A2753AD4
+ED84327E2D8013D63EA93FCA1EC0516F44E551A18319626FE6084FD2E7D6F724
+4999B345C1A5236B0194CBB614FA0180FB6814291D5B48411CEB51C5A1A8E044
+9E655C1D9F2A7F5EAC533525F41D2C171C85E4FC853BC31721053713A7492090
+3F4B2097744BBFD933036A614D8A06D1A295600D61A38559E49AE96AF415323C
+2B0684F0E4D4CCF0DA70D56690F7FB2BD2BCDE213B0367B56F6AA3D733ED9526
+DD9323DB8E320553C63FB258137BF11985B9EC35B65B512C44D57546B6CC4430
+5B735C94B2B8F9B733963BB8B5331F9BD007A807B07C922ADC94A9B33E67E782
+8BF9437D604DE93A7872A7F78C122F8288EA7B86BFAD787AB9ADF06E4C3606E0
+25A75909B1E5C55C0D1B332477BD549E6F78C4BD94848923E66BF3964AAD7DE0
+DF1F9E00383DC686CDC3C2C369A39735A0D8ECF136509EDAA6AB46677E83FABA
+082A767AF7614C6F6AE454785749198358B7207029F3070F7FF4923700D4AD48
+5599329FDB61DBEF6720774B0FC3CA93191BC4214620998C05250846CD035EE5
+136682895153F2B7ED9AB5D971EDC98C7DEA386422908EF38E75C4148771CE6E
+39A21E3965E4EF3536689800D7F40D9CD53CDA59C9885E1066124188D68CE388
+B9F52FF9355BE075995FE88849E1F9D3A76D2D24E785F4D6FFA58135B2125CE7
+B077A9519E9B2D806C1D006A32978A11121A81CF2651FC9E175FB60B62B6CFBF
+B6A9A882D0048E908B3FC5C24AFE06761D7E471B84AFE967171FAECA78AB5D76
+50AE63916A36021A1F9F4427DCA57BC00DB266497665A331F2E913BF67FAA33B
+91BFD10F215575CF2A5ED98EBBB8DF6095DBEAE7F7630C81DC687E040952952F
+7731EBBC4426C097FE4FBD592A26783F5318EE8471A063EAE87A58F5BEAD5A33
+C253C64747D4AE453EED1152D9AFEB3B4F01110108B9D9F1A17C831744546C7A
+B7FAEB8FDAFE67C026F9025FBB04B9C00B6861406CCFDC81838AFFA19281C7CE
+E9441A5DAB5C758E4A05938A5285DECC3DB17D0FDCCCA9D46BAF49A6200CF44B
+1F837BFF770A09E52ED3A7A5089E57688D8FF3CC2FEB42244A73A2E815DA491C
+260740C211888D80FC4F8329ACB35AAC0E43999456BEDD73C343CEAB18ACEB7E
+176BE20328CFDF1D60436E9F5617605486E25D8A849EB0FF4A66EF9485A78833
+40824B5533A6179D0A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 72 /H put
+dup 73 /I put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF83287B2C762EFD151232F1E1B856941A07C76AD4A6030971385C9614
+AF82D00B6895EE8090AE00C2AABDB1D374E9C0317A2F09AC4177697BF63E3627
+D9EBBE30E9D146E27FC0ADC8AE7C3D7A1991AD1D0EABE5DEBB094848B0FBBC59
+2068EBD184144B0CD2EDA2BDC91AB86B33F39E490FB74BECBDEEE521DA7631C7
+AAF2B46903C5A98243E4248DD038B91A4B41B104F91A830F910CB588F90A1622
+FE324BF670E7CC8D3B74627F606AC90C6033C4F53E87152F283A5768F47DDB2E
+80916FBB88D76FEDF9AB27457452B9DB3C52699516D631439A029B2385D7512A
+B68B99B7D983FE673DD80A0E552FC92A3A309C653EBCDED9A25B0ACFD4ACB30A
+6920F93F8958C43CE37368DBC00CDB3D6F1941334170C8A549DF93A472AF5F65
+147E50BBBE8972539BA9FDA8830503C576F8D71796D1735090F80306D0051C38
+E4DF41022555A1DC8CF8F12E8C270673F489E257EB4DCE1C4D44B7439E7CF2AD
+B4FAADC43B87563ED86D2DBD85E6964FE7FE614EB7DEA462D47ED372819AA359
+335DBA6CD7F6182FD8C201DF4FA2021696CEE010D6E19561D1406B5611F071C3
+E51C7487F7C91DFDDC288A5E8B536D64CA0066DB3D078DBF24DD4B559DB2E9BF
+C3E95FE9469F3573B8901D32325808360DDA7D86B6E907E9EC9A5D35409696A2
+EDA1639CF5B944AFAECF7A5848110501988D6FFC7D875EB676DBA5E2C1E664E9
+D212AD50E5F544716E2AC2940282A763DA67A120E775F9C26D830DE20E3D67C2
+C4B06966C82F971C68B54BE0406CAAE3DFF29408575DB28F6A45227F9A34FDFA
+E721000A2B4F8EFD355618C37B51DF5A901295E2213A427FB556A4243AA86FCC
+C7D8D1DB5A7883EB852BFDBB338DDFF3E122FAC87FC2852073277AED3081F6E9
+E83C25118200FCE7B12A40C28B4D6E3308E75C4FBD5B90E4B3C1C38C42426F79
+E0ABE995289650EC4086A5F8E67214A8F8A3BFA6846A1F51498E0DF5045CDBE5
+6E84BD2545678F0FA473336241A6CF3589A13F6DBEAFAFE90953EC90043C0608
+DFBA5806D6E13A3DB84FF4F0E134B2EB2569D206AEF6E3EAA8FEEAD0DC2474B1
+D777BEBBC3747EC98BD680F236C7265E404AF27CA5E0860A666359EC0FE50031
+A0B70B04A961C6F9E52E6FE10759F7A4DD474111BCB25B4660
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (pitch.dvi)
+@start /Fa 156[44 44[44 44 44 44 44 44 49[{}7 83.022
+/CMTT10 rf /Fb 182[106 93 64[0 7[{}3 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 -4 a Fb(I)-214 378 y Fa(c41)p
+-224 131 60 4 v -224 164 V -224 197 V -224 230 V -224
+264 V -176 279 4 250 v -214 279 a Fb(\007)p -138 131
+60 4 v -138 164 V -138 197 V -138 230 V -138 264 V -90
+262 4 233 v -128 262 a(\007)p -51 131 60 4 v -51 164
+V -51 197 V -51 230 V -3 245 4 216 v -41 245 a(\007)p
+35 131 60 4 v 35 164 V 35 197 V 35 230 V 83 228 4 200
+v 45 228 a(\007)p 121 131 60 4 v 121 164 V 121 197 V
+169 212 4 183 v 131 212 a(\007)p 207 131 60 4 v 207 164
+V 207 197 V 255 195 4 167 v 217 195 a(\007)p 293 131
+60 4 v 293 164 V 341 179 4 150 v 303 179 a(\007)p 389
+98 4 135 v 423 262 a Fa(c42)p 413 131 60 4 v 413 164
+V 461 162 4 133 v 423 162 a Fb(\007)p 499 131 60 4 v
+547 146 4 117 v 509 146 a(\007)p 585 131 60 4 v 633 129
+4 117 v 595 129 a(\007)p 720 112 V 682 112 a(\007)p 806
+96 V 768 96 a(\007)p 892 79 V 854 79 a(\007)p 978 63
+V 940 63 a(\007)p 1026 98 4 135 v 1060 179 a Fa(c43)p
+1098 46 4 117 v 1060 46 a Fb(\007)p 1184 29 V 1146 29
+a(\007)p 1232 129 V 1233 13 a(\007)p 1319 112 V 1320
+-4 a(\007)p 1405 96 V 1406 -20 a(\007)p 1491 79 V 1492
+-37 a(\007)p 1577 62 V 1578 -54 a(\007)1631 63 y(H)p
+1724 98 4 135 v 1758 229 a Fa(c44)p 1748 131 60 4 v 1796
+129 4 117 v 1758 129 a Fb(\007)p 1882 112 V 1844 112
+a(\007)p 1968 96 V 1930 96 a(\007)p 2054 79 V 2016 79
+a(\007)p 2140 63 V 2102 63 a(\007)p 2227 46 V 2189 46
+a(\007)p 2275 146 V 2276 29 a(\007)p 2361 98 4 135 v
+2375 212 a Fa(c45)p 2394 129 4 117 v 2395 13 a Fb(\007)p
+2481 112 V 2482 -4 a(\007)p 2567 96 V 2568 -20 a(\007)p
+2653 79 V 2654 -37 a(\007)p 2739 62 V 2740 -54 a(\007)p
+2815 -69 60 4 v 2825 46 4 117 v 2826 -70 a(\007)p 2902
+-69 60 4 v 2912 29 4 117 v 2913 -87 a(\007)p 2998 98
+4 135 v 3011 179 a Fa(c46)p 3021 -69 60 4 v 3021 -102
+V 3031 29 4 133 v 3032 -103 a Fb(\007)p 3108 -69 60 4
+v 3108 -102 V 3118 29 4 150 v 3119 -120 a(\007)p 3194
+-69 60 4 v 3194 -102 V 3194 -135 V 3204 29 4 167 v 3205
+-137 a(\007)p 3280 -69 60 4 v 3280 -102 V 3280 -135 V
+3290 29 4 183 v 3291 -153 a(\007)p 3366 -69 60 4 v 3366
+-102 V 3366 -135 V 3366 -168 V 3376 29 4 200 v 3377 -170
+a(\007)p 3452 -69 60 4 v 3452 -102 V 3452 -135 V 3452
+-168 V 3462 29 4 216 v 3463 -186 a(\007)p 3538 -69 60
+4 v 3538 -102 V 3538 -135 V 3538 -168 V 3538 -201 V 3548
+29 4 233 v 3549 -203 a(\007)p 3635 98 4 135 v 3638 262
+a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/poppea.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/poppea.eps
index ad38de5cd48..cc88b028e92 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/poppea.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/poppea.eps
@@ -1,886 +1,886 @@
-%% LaTeX2e file `eps/poppea.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: poppea.dvi
-%%CreationDate: Wed Jan 21 14:04:38 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 501 496 782
-%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMR8 CMBX8
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE poppea.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1404
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX8
-%!PS-AdobeFont-1.1: CMBX8 1.0
-%%CreationDate: 1991 Aug 20 16:36:07
-% 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 (CMBX8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX8 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 49 /one put
-dup 51 /three put
-dup 53 /five put
-dup 57 /nine put
-readonly def
-/FontBBox{-59 -250 1235 750}readonly def
-/UniqueID 5000766 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
-7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
-EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
-7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
-AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
-E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
-4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
-5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
-611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
-D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
-EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
-35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
-ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
-7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
-C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
-B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
-53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
-E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
-3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
-9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C65E4575
-EC2E27F559F1BDD6305D043AE923C3A2E74AC01A182D115BD60844F6FF42CA03
-1E0DA79CEA8F04198459933B24368974EC2E90222E9180D2DC82DB80479B7E5F
-99A823E87B0E4486B21BBB3C10BC03F96FDBB04BEF4C6C3FF937F78D6DB0A938
-9A538D2148C13A41899F6051EF1947EA0428640A37E468F2FAF46C74B2E1F479
-07CCA4C3C1E8945C42B4A2F68C96399A6E9578D02C1E3E839D37B07AFAA00C36
-FE9D5BE68283954F9767C0592C741011D54EE2CA56D5B55F1BE2C007C1C890FE
-7119709556A2C27074C3ADD2B2323EF25134865FFC097363236F001B971EC8CA
-A9CEDEB63B6BD8BA5D3E320861E1591CA0F336D0B61A46D4C7099CE3FFA43357
-875E7F71FD9A104608156998568DFDF91FADFC047833EF374866E0F64C6F517E
-50DFFC0419206C311CAA85B4697D9697CC475778E97421C361D5F83D9BBD8453
-EED81386657E0F9C49C1BE1F0525F94987CC5FDEBBFFD99FA05A160C0D9995ED
-13E7880593C7495E07FBF7011691E7CF9DD8A74841F2D382F7E6BB420ADA4726
-31CD843DA62662286AD7D406FA4DA7BFDEA44F638B6D83218405F4A7EB268033
-AD9D869929431C98AAB685730E9F1E3257B13880DC2E099242A8FD787404BD4B
-44A867E31429140D1E9FCB7501352769E013FD87542A7D216531216F608D1F96
-C481F3F00EA40BA701123D0DBD5B32C42E1D1D1070136C808AD47F9259C0A07A
-60B7B5FE3B452A913B794AC6D7E516E1F8841F8797847E27B3724C4EA0C51133
-D3E2E5141D0C71FF4AA6BD3256C3C9F97C160FD1D1188AA14EB98960A1EE489C
-11FD90FC9FBDDE4266B4A0C11BB3796F87BDA99CE0CAD86F5078E1B2010BE340
-D3D4FE9BBC4AB0688DF51A5ED86182F47429B87AFB116E547C6BBAECF6EC2827
-5A946E9E342B6F5E750343645EABDEDB2679C742D69EDB5D800CA58C8BC80AA7
-4653ED556FFA24475C53DE646F5B1E16BE573B580A3B00CEFDB06C228253FD0A
-C4E3AE97962DB29B82A3944CCDB8EEA91DF3BCF77B3605BDBFF139477BC1ED68
-08BF9E2951BCEBE796C38DC7098A50038FB5C16ABBA18FBB2C37C064692DBDA3
-3797FF0B86D0308F037F6BAA5A7A981C934F90FA98E1FFDB2595F59C485BCE79
-EA5B767ECA0BB08D030388628BE1726D61248463B30EF147772490C326EE6A63
-39632CB5D649F4
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMR8
-%!PS-AdobeFont-1.1: CMR8 1.0
-%%CreationDate: 1991 Aug 20 16:39:40
-% 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 (CMR8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR8 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 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 54 /six put
-dup 55 /seven put
-readonly def
-/FontBBox{-36 -250 1070 750}readonly def
-/UniqueID 5000791 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
-68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
-3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
-48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
-9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
-0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
-8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
-EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
-FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
-9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
-D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
-9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
-ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
-10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
-83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
-2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30
-4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632
-BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B
-041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721
-3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762BD779B0C3709
-4DF9CB65F0648B72373A300B56C34975740D9C6A8C88F04C3B6F53A8D441258C
-661456689DF29B4DCDA2119D33AAD866D48CA112145A9DA9CF07839EF8B34FFC
-F6D266CDE11DD401021F30280473BE183F5C8F147A2EC50EC67B92C670B54950
-CA4CDF9C93851874D484487ACCDF2B6819E75D2EE8610B9D4511B8D71E09A73F
-EA21D9DCC56899051BA4738678ED0311526436041A535319C8316B22ECFCB304
-57E6668B9D5D1DCA8A1E5719A78ECDF657EDA4A2DEAC61674ADABB9C063ACA4F
-784263E782CC6D8ED149A2CA08F47B66617E5219600A5747C491AF5326B81E57
-EDB986694699B7E12455C724C4464BE242B1E631D66C98056844881E16B46625
-28E8FC38DED9A0BD2C0E6916BF9A236592442C41C351061CE277B458C85BC031
-4021FF4890C4C1DF172C5BCB4884ABC57D8B871212C683A9044A7C854AE7B8F9
-DD5787328A196B8BB6018D0B59D79D8348A6BCDD4D8C24345378F22CDEA56AFF
-5722983D53765784B8FAA7DC4405CC9CC9569DCA7A9D815DD49C60584B6BA7BF
-5E1318372CA488AF6158A3AB952BA4E347FF643711EA70CA80DF3D29AA910785
-7639DCE51042B790D10F422DA387866536E4791DE6C9EDC5015F7B62B89BD346
-3ADA704710A7423268B3BDA8F03334EDA351D3FC6F8F58240044EA7E561D8228
-DD0551F0989F4789CAA18571BEDA7FA1DA7203865EE318501E3097C260CC9E78
-54C4EBABCF63DEC2CC05F0CF92C489A88F143FFFE5D5C6CA844CEB85FFD3D2F9
-365EC5A8082D17363353CCEF14A227B96FF3E5A49A2F0344D2B7BB2C0923EDAA
-CAFD7EC64683AA653F8A69A351BE75BA3EFB270E32FA027520036C86F32AD297
-F85E39400D537931CDE8CB030C8727C87F5A78B5DA5129B02553F09BA7E0F756
-25EAFBEE4036F9A63C4496BB282B8BED4765415A23D220702775B84BB2484B09
-2110138BCE83345061017ECDEF34E192D778706403C132D02BE95E014F644306
-CA92404B8B5B7EEA8276592AB32D771AF928E6C21F48D5EDED2639A572968A38
-A1F41A77547C299488D3211F69704C57B00C5A00CAA35CBF616837C5AB0C68C9
-3031BB653C406E6FA88A8A370FC01BC068753CAF53B8BDEE3BC157B6734FC48B
-B5CB12DC9D0C3D478BEFB71CD6942EB88A23D463B6404D917E2E951014004B1E
-1FA6926052FCF0514380DBB1FE7ED978A62A7BEDF57D0BD2DF76ABEDCB143CF6
-BBA002EB12159323A71A48857288BE4422660610716C6F68BC2C1C8132F311D8
-7F423C46357CB52BEE4628386F9159C4F86011F729D2FC1B3196E649F8658F11
-9242110E2E8EC124C4DB400909524DD9828D316100AF217C3CCAE82141BC826F
-26074E315B2D46DA850762A212B08E29C00C96711333B11D521F8EEE01031017
-08B4BF626E9E37F74E94C26D6E33833D5819FED3
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 49 /one put
-dup 50 /two put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13DAD4B81E900D43D1331F872A1996363D275B
-38804AB95D9AEACC817F4423659CC114B95B62D3EE31E2065159136CDE7FDF38
-26FF8A7044D84EAE97D6F422027B3189FA05BBA11182AA119EE94EF5CFD936BB
-13C6E0545B5F240381B76340ACAB92DA5A50017BAA549D014791A3A69628B475
-8131EAF73885DC39793B57F74820DD53107863AF23D04657B34ADEE8C05CBA0A
-95D067C84CA1478A581CFA069B0310EC93473070236B7047DE6B4E130ECA75FA
-FE7D224ADF46D3F87ACE6AC5C2B44DB7B3135BEABCEAACF4B6C32BEF087B89A6
-DF09C4E6FF850DA67859404A87B07AE18316F1EC11D2709C70793D3F5689817E
-EE36FF170992914A9C2DDC503AE0F0C5D41C7ED9E174CEF7AC522F8D6CDC2195
-3C064A54416371D325819E7E827187BEC2DCF1A53181A332FB9D0E183C3EC17C
-BDE2C8D16A62D9BE43ADC8755F19861F1918A9E31612AD0FF45D2353E3741BBD
-76ADC1357E08CE8C9355E79A2400E0036DCF61748DDBD73D911956753BA9830C
-4829D61D4636E192971D2614
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 8 /breve put
-dup 52 /four put
-dup 73 /I put
-dup 92 /backslash put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C609FD71CD7D9875C048
-B6BC06A44D45A240E09361B9FDD3B62611C1D3F3ED90A4EB80A366F5239819D6
-D45AB930E7CDF84821190380FA3C8B83B4499237681A26E41351E349B616F2B3
-486C610EA51DA9248B9B84D416BD9C30E18DAC10387518A524BB8515D26939CD
-6527804C38BE630724F0BF7557907C0257477CAD7CF38EA02F60ABD56D8CF0F9
-554F27E598169EBFF6A557F5A1EB013C3418B4AA1302CF51DABBDC9C6BCFB54A
-958BB9D91870182493C8D50CD1724E04DDE7025D7BFB4BEE2DE97F686F569582
-4EF57DA2E208214437A17C12A6AF632D257152878AAFE455055E06FEFB2F4136
-54F70B49FCE880AB247B2466714CDB27922BDAC38336971A861467DD985487A5
-279A7DA1274D517656463F20ACB20F6E0D721E89672771F18AD6546725F2905D
-0D5A26B68627538724FD14873B69B052E14DF15DF6FE616F4371AB7B16D58E27
-0B018CE0A15EC6811043D1D79FB149C1395E1E66566F44EB16948BC5FBF715CF
-0B2BE41AD52B51E77ADA19F62AE4A05756FE1F5EB2A498E60E6181423EDD2DD1
-A2C3C165904F9D2961CE17006A5399D1C8A4D9F8F9F3D175C3F934F5838E7EA8
-ED593B240E86D632D01117F60E9BD6875DF86E1C93B35A878433D5E173D17E3E
-248A6D7DF031FE5FA44259FF6A3E7D41B0026C6485D3E77D5D257B221725F7E4
-12131B1E326F14B29021B7DB11757AE786F1219DBD6AAC976AFEEBDA3ADF2AF3
-44F46EC1FB246B3B744281B311BEA4612124F2CD388416D78758FE84669CDC54
-4FFB083060ADC8674C0D892B049D24325E9AA5A508F30FD537C1023101A5DEFF
-04FDC4FE2F15947D6713AD9DA9042A72D1F62B6124DE6A2E277B9DFEA944642F
-81FE16C5698BF9655B6FC1BD910840B571EAAE389774010B339FA879AB7A8C5D
-53F9D52D402858FD1FB69F999C14B12A2443079440FD5A712A7B5B31AE00333F
-F1F5C7164B99E773741BA0849D4662E6A55030B1855EBA6C3EE3AE34247753A2
-99B70F33A87177AFD7E4D8E161A772538CFD53912A58FB7066FF2E5E427260FA
-AE275EDFF1E2AEDD19D89E092884957B6FD271C30F91A64B3A0B185DC86217CA
-EE5E6E01CD96D1A7BAC851CF93A42A5015D733D37296CEE11103CB022681C2AC
-802B24BF56CC20361E2EBAB63E438AC50515EF11BD8EB8789FC6946761C3CD08
-CCB4B2E20032D5B7B4D4E5A18B4703D89412023ECA84A807D589831C5C46ABA2
-224B974E9132D0DE00D185E445792EB1F02ECC9CB4FB0FB89D69C2
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (poppea.dvi)
-@start /Fa 198[41 3[41 1[41 1[41 49[{}4 66.4176 /CMBX8
-rf /Fb 200[35 35 35 35 35 51[{}5 66.4176 /CMR8 rf /Fc
-205[56 56 49[{}2 99.6264 /CMBX12 rf /Fd 163[30 18[106
-20[40 43[0 7[0{}5 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3886 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 -4 a Fd(I)t(4)-197 28 y
-Fc(2)-197 95 y(1)p -24 96 4 117 v -23 -20 a Fd(\010\000)394
-179 y Fb(6)p 386 112 V 387 -4 a Fd(\010)387 -20 y(\000)p
-797 98 4 135 v 891 179 a Fb(5)p 884 129 4 117 v 885 13
-a Fd(\010\000)1166 179 y Fb(6)100 b(4)p 1332 29 V 1294
-29 a Fd(\010)1294 13 y(\000)1576 179 y Fb(3)p 1704 98
-4 135 v 1791 96 4 117 v 1792 -20 a Fd(\010\000)2208 179
-y Fb(6)p 2201 112 V 2202 -4 a Fd(\010)2202 -20 y(\000)p
-2611 98 4 135 v 2706 179 a Fb(6)p 2698 129 4 117 v 2699
-13 a Fd(\010\000)3116 179 y Fb(4)p 3146 29 V 3108 29
-a Fd(\010)3108 13 y(\000)3390 179 y Fb(3)p 3518 98 4
-135 v 3522 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 262 a -364 610 3886 4 v -364 643
-V -364 676 V -364 709 V -364 743 V -291 440 98 4 v -291
-532 4 93 v -263 507 a Fa(5)p -197 532 V -291 535 98 4
-v -364 641 a Fd(I)t(4)p -125 741 4 117 v -124 625 a(\010\000)304
-824 y Fb(6)p 297 757 V 298 641 a Fd(\010)298 625 y(\000)p
-719 743 4 135 v 816 824 a Fb(6)816 890 y(4)p 808 774
-4 117 v 809 658 a Fd(\010\000)1098 824 y Fb(3)p 1268
-675 V 1230 675 a Fd(\010)1230 658 y(\000)p 1652 743 4
-135 v 1741 741 4 117 v 1742 625 a(\010\000)2171 824 y
-Fb(6)p 2163 757 V 2164 641 a Fd(\010)2164 625 y(\000)p
-2585 743 4 135 v 2682 824 a Fb(6)2682 890 y(4)p 2675
-774 4 117 v 2676 658 a Fd(\010\000)2965 824 y Fb(3)p
-3135 675 V 3097 675 a Fd(\010)3097 658 y(\000)p 3518
-743 4 135 v 3522 907 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 907 a -364 1255 3886 4 v
--364 1288 V -364 1321 V -364 1355 V -364 1388 V -291
-1085 98 4 v -291 1177 4 93 v -263 1152 a Fa(9)p -197
-1177 V -291 1180 98 4 v -364 1286 a Fd(I)t(4)p -251 1469
-844 5 v -125 1386 4 117 v -124 1270 a(\010\000)p 297
-1403 V 298 1286 a(\010)298 1270 y(\000)p 719 1388 4 135
-v 816 1469 a Fb(6)p 808 1419 4 117 v 809 1303 a Fd(\010\000)1238
-1469 y Fb(7)p 1268 1320 V 1230 1320 a Fd(\010)1230 1303
-y(\000)p 1652 1388 4 135 v 1741 1386 4 117 v 1742 1270
-a(\010\000)2171 1469 y Fb(6)p 2163 1403 V 2164 1286 a
-Fd(\010)2164 1270 y(\000)p 2585 1388 4 135 v 2675 1386
-4 117 v 512 w(\010\000)3104 1469 y Fb(4)p 3096 1369 V
-3097 1253 a Fd(\010)3097 1237 y(\000)3387 1453 y(\\)p
-3518 1388 4 135 v 3522 1552 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 1552 a -364 1900 3886
-4 v -364 1933 V -364 1966 V -364 2000 V -364 2033 V -291
-1730 138 4 v -291 1822 4 93 v -263 1798 a Fa(13)p -157
-1822 V -291 1825 138 4 v -364 1932 a Fd(I)t(4)p -104
-1965 4 117 v -142 1965 a(\010)-142 1948 y(\000)p 193
-2031 V 194 1915 a(\010\000)p 529 2033 4 135 v 500 2147
-1008 5 v 601 2031 4 117 v 408 w(\010\000)p 936 2048 V
-937 1932 a(\010)937 1915 y(\000)p 1272 2033 4 135 v 1344
-2064 4 117 v 1345 1948 a(\010\000)1687 2147 y Fb(4)p
-1718 1965 V 1680 1965 a Fd(\010)1680 1948 y(\000)1912
-2131 y(\\)p 2015 2033 4 135 v 2077 2066 60 4 v 2077 2099
-V 2125 2097 4 133 v 2087 2097 a(\010)2087 2081 y(\000)2430
-2147 y Fb(6)2430 2214 y(4)p 2413 2066 60 4 v 2461 2081
-4 117 v 2423 2081 a Fd(\010\000)2541 2147 y Fb(5)p 2547
-2214 68 5 v 2655 2197 a Fd(\\)p 2759 2033 4 135 v 2869
-2031 4 117 v 2831 2031 a(\010)2831 2015 y(\000)p 3065
-2147 336 5 v 3204 2048 4 117 v 3166 2048 a(\010\000)p
-3502 2033 4 135 v 3518 2033 V 3522 2197 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 2197 a
-eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/poppea.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: poppea.dvi
+%%CreationDate: Wed Jan 21 14:04:38 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 501 496 782
+%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMR8 CMBX8
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE poppea.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1404
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX8
+%!PS-AdobeFont-1.1: CMBX8 1.0
+%%CreationDate: 1991 Aug 20 16:36:07
+% 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 (CMBX8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX8 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 49 /one put
+dup 51 /three put
+dup 53 /five put
+dup 57 /nine put
+readonly def
+/FontBBox{-59 -250 1235 750}readonly def
+/UniqueID 5000766 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB
+7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6D
+EEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C
+7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140E
+AAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30
+E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A77420
+4211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA04272
+5D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762
+611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025
+D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9
+EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD27923
+35ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606
+ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF404
+7365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178
+C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10
+B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F
+53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702
+E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF
+3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF1
+9F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C65E4575
+EC2E27F559F1BDD6305D043AE923C3A2E74AC01A182D115BD60844F6FF42CA03
+1E0DA79CEA8F04198459933B24368974EC2E90222E9180D2DC82DB80479B7E5F
+99A823E87B0E4486B21BBB3C10BC03F96FDBB04BEF4C6C3FF937F78D6DB0A938
+9A538D2148C13A41899F6051EF1947EA0428640A37E468F2FAF46C74B2E1F479
+07CCA4C3C1E8945C42B4A2F68C96399A6E9578D02C1E3E839D37B07AFAA00C36
+FE9D5BE68283954F9767C0592C741011D54EE2CA56D5B55F1BE2C007C1C890FE
+7119709556A2C27074C3ADD2B2323EF25134865FFC097363236F001B971EC8CA
+A9CEDEB63B6BD8BA5D3E320861E1591CA0F336D0B61A46D4C7099CE3FFA43357
+875E7F71FD9A104608156998568DFDF91FADFC047833EF374866E0F64C6F517E
+50DFFC0419206C311CAA85B4697D9697CC475778E97421C361D5F83D9BBD8453
+EED81386657E0F9C49C1BE1F0525F94987CC5FDEBBFFD99FA05A160C0D9995ED
+13E7880593C7495E07FBF7011691E7CF9DD8A74841F2D382F7E6BB420ADA4726
+31CD843DA62662286AD7D406FA4DA7BFDEA44F638B6D83218405F4A7EB268033
+AD9D869929431C98AAB685730E9F1E3257B13880DC2E099242A8FD787404BD4B
+44A867E31429140D1E9FCB7501352769E013FD87542A7D216531216F608D1F96
+C481F3F00EA40BA701123D0DBD5B32C42E1D1D1070136C808AD47F9259C0A07A
+60B7B5FE3B452A913B794AC6D7E516E1F8841F8797847E27B3724C4EA0C51133
+D3E2E5141D0C71FF4AA6BD3256C3C9F97C160FD1D1188AA14EB98960A1EE489C
+11FD90FC9FBDDE4266B4A0C11BB3796F87BDA99CE0CAD86F5078E1B2010BE340
+D3D4FE9BBC4AB0688DF51A5ED86182F47429B87AFB116E547C6BBAECF6EC2827
+5A946E9E342B6F5E750343645EABDEDB2679C742D69EDB5D800CA58C8BC80AA7
+4653ED556FFA24475C53DE646F5B1E16BE573B580A3B00CEFDB06C228253FD0A
+C4E3AE97962DB29B82A3944CCDB8EEA91DF3BCF77B3605BDBFF139477BC1ED68
+08BF9E2951BCEBE796C38DC7098A50038FB5C16ABBA18FBB2C37C064692DBDA3
+3797FF0B86D0308F037F6BAA5A7A981C934F90FA98E1FFDB2595F59C485BCE79
+EA5B767ECA0BB08D030388628BE1726D61248463B30EF147772490C326EE6A63
+39632CB5D649F4
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMR8
+%!PS-AdobeFont-1.1: CMR8 1.0
+%%CreationDate: 1991 Aug 20 16:39:40
+% 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 (CMR8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR8 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 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+readonly def
+/FontBBox{-36 -250 1070 750}readonly def
+/UniqueID 5000791 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
+48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
+9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
+0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
+8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
+EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
+FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
+9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
+D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
+9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
+ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
+10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
+83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
+2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30
+4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632
+BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B
+041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721
+3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762BD779B0C3709
+4DF9CB65F0648B72373A300B56C34975740D9C6A8C88F04C3B6F53A8D441258C
+661456689DF29B4DCDA2119D33AAD866D48CA112145A9DA9CF07839EF8B34FFC
+F6D266CDE11DD401021F30280473BE183F5C8F147A2EC50EC67B92C670B54950
+CA4CDF9C93851874D484487ACCDF2B6819E75D2EE8610B9D4511B8D71E09A73F
+EA21D9DCC56899051BA4738678ED0311526436041A535319C8316B22ECFCB304
+57E6668B9D5D1DCA8A1E5719A78ECDF657EDA4A2DEAC61674ADABB9C063ACA4F
+784263E782CC6D8ED149A2CA08F47B66617E5219600A5747C491AF5326B81E57
+EDB986694699B7E12455C724C4464BE242B1E631D66C98056844881E16B46625
+28E8FC38DED9A0BD2C0E6916BF9A236592442C41C351061CE277B458C85BC031
+4021FF4890C4C1DF172C5BCB4884ABC57D8B871212C683A9044A7C854AE7B8F9
+DD5787328A196B8BB6018D0B59D79D8348A6BCDD4D8C24345378F22CDEA56AFF
+5722983D53765784B8FAA7DC4405CC9CC9569DCA7A9D815DD49C60584B6BA7BF
+5E1318372CA488AF6158A3AB952BA4E347FF643711EA70CA80DF3D29AA910785
+7639DCE51042B790D10F422DA387866536E4791DE6C9EDC5015F7B62B89BD346
+3ADA704710A7423268B3BDA8F03334EDA351D3FC6F8F58240044EA7E561D8228
+DD0551F0989F4789CAA18571BEDA7FA1DA7203865EE318501E3097C260CC9E78
+54C4EBABCF63DEC2CC05F0CF92C489A88F143FFFE5D5C6CA844CEB85FFD3D2F9
+365EC5A8082D17363353CCEF14A227B96FF3E5A49A2F0344D2B7BB2C0923EDAA
+CAFD7EC64683AA653F8A69A351BE75BA3EFB270E32FA027520036C86F32AD297
+F85E39400D537931CDE8CB030C8727C87F5A78B5DA5129B02553F09BA7E0F756
+25EAFBEE4036F9A63C4496BB282B8BED4765415A23D220702775B84BB2484B09
+2110138BCE83345061017ECDEF34E192D778706403C132D02BE95E014F644306
+CA92404B8B5B7EEA8276592AB32D771AF928E6C21F48D5EDED2639A572968A38
+A1F41A77547C299488D3211F69704C57B00C5A00CAA35CBF616837C5AB0C68C9
+3031BB653C406E6FA88A8A370FC01BC068753CAF53B8BDEE3BC157B6734FC48B
+B5CB12DC9D0C3D478BEFB71CD6942EB88A23D463B6404D917E2E951014004B1E
+1FA6926052FCF0514380DBB1FE7ED978A62A7BEDF57D0BD2DF76ABEDCB143CF6
+BBA002EB12159323A71A48857288BE4422660610716C6F68BC2C1C8132F311D8
+7F423C46357CB52BEE4628386F9159C4F86011F729D2FC1B3196E649F8658F11
+9242110E2E8EC124C4DB400909524DD9828D316100AF217C3CCAE82141BC826F
+26074E315B2D46DA850762A212B08E29C00C96711333B11D521F8EEE01031017
+08B4BF626E9E37F74E94C26D6E33833D5819FED3
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 49 /one put
+dup 50 /two put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13DAD4B81E900D43D1331F872A1996363D275B
+38804AB95D9AEACC817F4423659CC114B95B62D3EE31E2065159136CDE7FDF38
+26FF8A7044D84EAE97D6F422027B3189FA05BBA11182AA119EE94EF5CFD936BB
+13C6E0545B5F240381B76340ACAB92DA5A50017BAA549D014791A3A69628B475
+8131EAF73885DC39793B57F74820DD53107863AF23D04657B34ADEE8C05CBA0A
+95D067C84CA1478A581CFA069B0310EC93473070236B7047DE6B4E130ECA75FA
+FE7D224ADF46D3F87ACE6AC5C2B44DB7B3135BEABCEAACF4B6C32BEF087B89A6
+DF09C4E6FF850DA67859404A87B07AE18316F1EC11D2709C70793D3F5689817E
+EE36FF170992914A9C2DDC503AE0F0C5D41C7ED9E174CEF7AC522F8D6CDC2195
+3C064A54416371D325819E7E827187BEC2DCF1A53181A332FB9D0E183C3EC17C
+BDE2C8D16A62D9BE43ADC8755F19861F1918A9E31612AD0FF45D2353E3741BBD
+76ADC1357E08CE8C9355E79A2400E0036DCF61748DDBD73D911956753BA9830C
+4829D61D4636E192971D2614
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 8 /breve put
+dup 52 /four put
+dup 73 /I put
+dup 92 /backslash put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C609FD71CD7D9875C048
+B6BC06A44D45A240E09361B9FDD3B62611C1D3F3ED90A4EB80A366F5239819D6
+D45AB930E7CDF84821190380FA3C8B83B4499237681A26E41351E349B616F2B3
+486C610EA51DA9248B9B84D416BD9C30E18DAC10387518A524BB8515D26939CD
+6527804C38BE630724F0BF7557907C0257477CAD7CF38EA02F60ABD56D8CF0F9
+554F27E598169EBFF6A557F5A1EB013C3418B4AA1302CF51DABBDC9C6BCFB54A
+958BB9D91870182493C8D50CD1724E04DDE7025D7BFB4BEE2DE97F686F569582
+4EF57DA2E208214437A17C12A6AF632D257152878AAFE455055E06FEFB2F4136
+54F70B49FCE880AB247B2466714CDB27922BDAC38336971A861467DD985487A5
+279A7DA1274D517656463F20ACB20F6E0D721E89672771F18AD6546725F2905D
+0D5A26B68627538724FD14873B69B052E14DF15DF6FE616F4371AB7B16D58E27
+0B018CE0A15EC6811043D1D79FB149C1395E1E66566F44EB16948BC5FBF715CF
+0B2BE41AD52B51E77ADA19F62AE4A05756FE1F5EB2A498E60E6181423EDD2DD1
+A2C3C165904F9D2961CE17006A5399D1C8A4D9F8F9F3D175C3F934F5838E7EA8
+ED593B240E86D632D01117F60E9BD6875DF86E1C93B35A878433D5E173D17E3E
+248A6D7DF031FE5FA44259FF6A3E7D41B0026C6485D3E77D5D257B221725F7E4
+12131B1E326F14B29021B7DB11757AE786F1219DBD6AAC976AFEEBDA3ADF2AF3
+44F46EC1FB246B3B744281B311BEA4612124F2CD388416D78758FE84669CDC54
+4FFB083060ADC8674C0D892B049D24325E9AA5A508F30FD537C1023101A5DEFF
+04FDC4FE2F15947D6713AD9DA9042A72D1F62B6124DE6A2E277B9DFEA944642F
+81FE16C5698BF9655B6FC1BD910840B571EAAE389774010B339FA879AB7A8C5D
+53F9D52D402858FD1FB69F999C14B12A2443079440FD5A712A7B5B31AE00333F
+F1F5C7164B99E773741BA0849D4662E6A55030B1855EBA6C3EE3AE34247753A2
+99B70F33A87177AFD7E4D8E161A772538CFD53912A58FB7066FF2E5E427260FA
+AE275EDFF1E2AEDD19D89E092884957B6FD271C30F91A64B3A0B185DC86217CA
+EE5E6E01CD96D1A7BAC851CF93A42A5015D733D37296CEE11103CB022681C2AC
+802B24BF56CC20361E2EBAB63E438AC50515EF11BD8EB8789FC6946761C3CD08
+CCB4B2E20032D5B7B4D4E5A18B4703D89412023ECA84A807D589831C5C46ABA2
+224B974E9132D0DE00D185E445792EB1F02ECC9CB4FB0FB89D69C2
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (poppea.dvi)
+@start /Fa 198[41 3[41 1[41 1[41 49[{}4 66.4176 /CMBX8
+rf /Fb 200[35 35 35 35 35 51[{}5 66.4176 /CMR8 rf /Fc
+205[56 56 49[{}2 99.6264 /CMBX12 rf /Fd 163[30 18[106
+20[40 43[0 7[0{}5 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3886 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 -4 a Fd(I)t(4)-197 28 y
+Fc(2)-197 95 y(1)p -24 96 4 117 v -23 -20 a Fd(\010\000)394
+179 y Fb(6)p 386 112 V 387 -4 a Fd(\010)387 -20 y(\000)p
+797 98 4 135 v 891 179 a Fb(5)p 884 129 4 117 v 885 13
+a Fd(\010\000)1166 179 y Fb(6)100 b(4)p 1332 29 V 1294
+29 a Fd(\010)1294 13 y(\000)1576 179 y Fb(3)p 1704 98
+4 135 v 1791 96 4 117 v 1792 -20 a Fd(\010\000)2208 179
+y Fb(6)p 2201 112 V 2202 -4 a Fd(\010)2202 -20 y(\000)p
+2611 98 4 135 v 2706 179 a Fb(6)p 2698 129 4 117 v 2699
+13 a Fd(\010\000)3116 179 y Fb(4)p 3146 29 V 3108 29
+a Fd(\010)3108 13 y(\000)3390 179 y Fb(3)p 3518 98 4
+135 v 3522 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 262 a -364 610 3886 4 v -364 643
+V -364 676 V -364 709 V -364 743 V -291 440 98 4 v -291
+532 4 93 v -263 507 a Fa(5)p -197 532 V -291 535 98 4
+v -364 641 a Fd(I)t(4)p -125 741 4 117 v -124 625 a(\010\000)304
+824 y Fb(6)p 297 757 V 298 641 a Fd(\010)298 625 y(\000)p
+719 743 4 135 v 816 824 a Fb(6)816 890 y(4)p 808 774
+4 117 v 809 658 a Fd(\010\000)1098 824 y Fb(3)p 1268
+675 V 1230 675 a Fd(\010)1230 658 y(\000)p 1652 743 4
+135 v 1741 741 4 117 v 1742 625 a(\010\000)2171 824 y
+Fb(6)p 2163 757 V 2164 641 a Fd(\010)2164 625 y(\000)p
+2585 743 4 135 v 2682 824 a Fb(6)2682 890 y(4)p 2675
+774 4 117 v 2676 658 a Fd(\010\000)2965 824 y Fb(3)p
+3135 675 V 3097 675 a Fd(\010)3097 658 y(\000)p 3518
+743 4 135 v 3522 907 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 907 a -364 1255 3886 4 v
+-364 1288 V -364 1321 V -364 1355 V -364 1388 V -291
+1085 98 4 v -291 1177 4 93 v -263 1152 a Fa(9)p -197
+1177 V -291 1180 98 4 v -364 1286 a Fd(I)t(4)p -251 1469
+844 5 v -125 1386 4 117 v -124 1270 a(\010\000)p 297
+1403 V 298 1286 a(\010)298 1270 y(\000)p 719 1388 4 135
+v 816 1469 a Fb(6)p 808 1419 4 117 v 809 1303 a Fd(\010\000)1238
+1469 y Fb(7)p 1268 1320 V 1230 1320 a Fd(\010)1230 1303
+y(\000)p 1652 1388 4 135 v 1741 1386 4 117 v 1742 1270
+a(\010\000)2171 1469 y Fb(6)p 2163 1403 V 2164 1286 a
+Fd(\010)2164 1270 y(\000)p 2585 1388 4 135 v 2675 1386
+4 117 v 512 w(\010\000)3104 1469 y Fb(4)p 3096 1369 V
+3097 1253 a Fd(\010)3097 1237 y(\000)3387 1453 y(\\)p
+3518 1388 4 135 v 3522 1552 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 1552 a -364 1900 3886
+4 v -364 1933 V -364 1966 V -364 2000 V -364 2033 V -291
+1730 138 4 v -291 1822 4 93 v -263 1798 a Fa(13)p -157
+1822 V -291 1825 138 4 v -364 1932 a Fd(I)t(4)p -104
+1965 4 117 v -142 1965 a(\010)-142 1948 y(\000)p 193
+2031 V 194 1915 a(\010\000)p 529 2033 4 135 v 500 2147
+1008 5 v 601 2031 4 117 v 408 w(\010\000)p 936 2048 V
+937 1932 a(\010)937 1915 y(\000)p 1272 2033 4 135 v 1344
+2064 4 117 v 1345 1948 a(\010\000)1687 2147 y Fb(4)p
+1718 1965 V 1680 1965 a Fd(\010)1680 1948 y(\000)1912
+2131 y(\\)p 2015 2033 4 135 v 2077 2066 60 4 v 2077 2099
+V 2125 2097 4 133 v 2087 2097 a(\010)2087 2081 y(\000)2430
+2147 y Fb(6)2430 2214 y(4)p 2413 2066 60 4 v 2461 2081
+4 117 v 2423 2081 a Fd(\010\000)2541 2147 y Fb(5)p 2547
+2214 68 5 v 2655 2197 a Fd(\\)p 2759 2033 4 135 v 2869
+2031 4 117 v 2831 2031 a(\010)2831 2015 y(\000)p 3065
+2147 336 5 v 3204 2048 4 117 v 3166 2048 a(\010\000)p
+3502 2033 4 135 v 3518 2033 V 3522 2197 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 2197 a
+eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/reloctav.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/reloctav.eps
index eca6ee6fdbf..3104dab9313 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/reloctav.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/reloctav.eps
@@ -1,725 +1,725 @@
-%% LaTeX2e file `eps/reloctav.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: reloctav.dvi
-%%CreationDate: Wed Jan 21 14:05:08 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 733 483 786
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE reloctav.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1405
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 43 /plus put
-dup 45 /hyphen put
-dup 48 /zero put
-dup 50 /two put
-dup 56 /eight put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 103 /g put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1AD1266885DA12BA38006E7ED0E47DEF57472F27B82D3
-926828F8B9A01F0067188845DD36C803FD0E67B1A0001202857AB029C6724BFF
-2227CEDEC4B45A1237C0183425317BDE7D37602FCBFE04B56E21D391C2496129
-0F30C0BC06DB1130F5D1E2FB25A8CA3809C6A33C1236880DC34A869E8C82FF19
-253BA966521ED1D0A8E816CDD298FA34E89ABAA75739C97535A6E4F812454833
-BEF05947F6414AFB850BDD9A6796BAB8A960D5CE6208150B07848BC8902CBA76
-22E2E44E7C653774029E709393A4F8DDC88B8689CF391A95DC4C962D8ECEA8E7
-53C2DEA7E421FFBE254FC47E726FFAAE2C2A15063C65B5636B65BDB9918C0626
-FBF8C4B10DFE83AF257544C70A57ABAC27CE089B582F75A7A36CE3164CC2C1F1
-4256B242A70D5BDC035D91141120EEE494880B8E01DEE8E9B0EF200E16BA13E4
-A36F92147E38CD271718777AE5250364FE5AC95D316535E1AA189B13BA39FE83
-58986413FCC65C406B8A7DA92EB22F6DEC316C58986F6311B0457287C7B27B9D
-CFBCE1DCB7A0211BAA8897F0BC806A41F7F1107728BF1E9A648CFF974273D18C
-F70E8120F8B239874FFE2072A731070FFB5095F90A6E7CFB7A9846CC092E79BF
-29E6267C0709A73BC7D62CD64ECA5620F5FC527DC8CCFABDDA40CDB4EF0BF08D
-40D6323843BB7284CE39DC5769A795E119BC4F7E304C7BD925BAFB17557F6C61
-D3B4B6B0FD6EB1FF20CE94C3A3BAED9E0E3A174D66197DAAF00F789382C7E863
-1DC33DA39D96E5720E9ED02B5AFDE6C389194D7B7F6113748E3D3D0BCF0D79C5
-9B0864E9A33F69B6E7EB74395FEB4D57335BBDDBEEB11F8B5CAF98F1FD288097
-B345005D6DED85B597D212F0F32FFC83591F8767A8534AC934C67A08B8B2D3C1
-87E2353E816AA575AA523083845E6ED1E38CCB3865857673E6AF9D1F7621559C
-0755EBABA13E9A3AF74433C47EB85BD9D617DDF333B3035B88DE317E700F7C93
-298025A7149C3C71925AD512D51A8A0982811EC953E0602889B3A356106EF6BA
-C134D9BBD2B08122D3221EBB323A2786B9847C509605CDA313CFFC7DD4E53EB7
-05F90F4D0EB97AE1DEC73B1721B06201252C0B6C05FE61FA39ED3CE7C78ECF39
-4D3E5E91374B3B3BAF8A50634CF2FDFBDDB29C3878E20EA7A174B64262A03955
-A9DFCE1907065FE78A5785BAB8C51C7BB1B7BAFB9204645252359C10628FBFB0
-54FC2F3279BFB3001F373367C2D462E7F99CFD776F64878759288484DD8DC3E2
-868456192535844CE0D1E22EFBC75876B2CE675D0F7E718CF700E761349B02A1
-EF000657D824383E0D7D22BFB6F982F5CC6807FD5F07DF21B1C012019D6E258C
-356DB77F506AA837987EC1E07143FDB58D620274BA2BDC8B1E2F6ECE9E68C229
-43458B003EB69352A4B04351C92A96447E1048FEC49972025679E76474A50427
-580028E3154546DB1D3AB369533923B4CC13839100A715EB131BD2599CE545A4
-2FA0F4D2060175EEAE50B69DFBE16F8505B52741888DB4860B2A712485BCD722
-F519424A5637BABD56B0693FF1AA747687F1CE28F715076EAAA5E079E74DBFC0
-D2E759361A43A95B8932C86C71AC6D86A89F2B3516787C251C71C65B45EE73D3
-0B673F15A359CE24AF587F860BA7DEA13368A28E3131ADAEB16774432FE860C9
-9BA876A0E3F2FB5F4ACB6CB9FA867A9D39718E2FC8E7C8B52D835485448114FE
-008A641AFAE5D9766F998AE6D1F47C0839048AAF27E2793D3ACD5DF567A0A0BA
-C433011064218DE87B583B2950173C080217EC876F79FC50E4D262E1F8A78263
-EF654E765FE797FB2ADB299E7AA5C5862EA9253764C28ACB4B146650354CD111
-B46616F9415A39F6CF40A8268CE5726D31FB19E5785189924FD0BC28666B8392
-935DB43817CD2847ACEC7252B3DF2E9B5AFBD4DE21D4CAD5FEC25FA8994ADBA1
-0D20BE6932511C69A4DD9ED72F19E7942C6608DE4CA5BD9E014925035F04E576
-7AD579BD69C4ABD1719290AE5E01DD3A2B81AAF6790E8D0352DFBCA0F02ACE0C
-1E616EBFF4A3E859A1169904082142D67D0D441402CD92B5C2076E9C8659A820
-43280DB93347E7B70F712104BA1FA1932EBA27F3D9C924C2DCB378CE632C470C
-8502A5E8CD9B01F395506909B8EE2F9BA93AA94034389DBB05986A84CDA90E50
-83A78F512B87DE242BFA340824FC3994E73EFC14592B4481955E7367E93A664E
-829A7549AA2E0D763048986A822F1B9649154E41C3BAE98C99A6E2CBB66AB52D
-B679C8379DE1DE671B15E06263F9F897D8E002665D70753D59E4BE79AF82F7F1
-5620243131AB6187D75F004BF806E62E60D12B623DA41A961DFCC7718CFA72E7
-E7B6100A1BA36638E27B770A4D71F70A2759DA85C7AF3FCC13A4184168C551B1
-E34C6764DD8E7C510D5F702594275CEE228883FBC4E059D216B25E04A6BD0B32
-18A3935926B262BFE429B8B8558A7C9D2CBD5C38C1F797AD8E90162E665FB9CE
-9173B134DBDC7EEC893FFBF081A36BE943A04A4A700B4F987EF8201F111B7EFE
-6AE8A25C4B553BAECD32375192D67E6CC82FCCE009B5CCEE47186EE0244712E3
-852EA567BAD57B82E0D468C8A1FA6B4900833D1C973FB73C6FF9AFFA8AADFD9E
-8284E23183566830BFDAE52CA4C745A45CBBE736272C133D6DB767CB756DA3BD
-7D9CA35506653E7059F52C8977BBA4364BBAB351AAF0A6CCCD1BBB2E419A849D
-21454CB737F3C38D802E5E84B8273073B382026C3947DD245D0D7B44380542DC
-801289BFF0FC06F35018F69B2C5D349978DDA3C3E1204EDEE24B1BC39B0D1F00
-9E40A13D3C8FF213D1B00D77B005534B1DE0911C6EDE05D5BBB6910D68530754
-B26E2299869853045DFA6304A998ADF70571A4A03EBA13C5B00E6884F0968EF6
-552DAF371E0F61E85EC93B5CC06047EE0F3BCAE690831B722F0008A1D3B680DA
-B43D42559A1AE169D84D5A6179D8B434B1008C4D53F6AFE04894CF8A94D01E51
-5C2C0A617CB31532215396F76C0B1AE60836537CD8BFEF8394C4AE46303E90F6
-A77D910833C58FB41CB29FC9EACFBBE3CA25AAE3F65A14964D709BF40A9DF50E
-EAE27329421F86C81B667BD08EA68B658919EBAF96626E17F58A8DD4D2666D6F
-54329569C8D8DF719A8D108E0A3F708F529A5B1FFECF3EBE7BB304769F75844E
-7FDA5FF39EBA3D7ADBC733B4A79E6B21849511BD087D192F4ED43F7900928C03
-D931DF04EBBED296AF1045AC2B727A931D4C293CBE0EE977B9243D3EC7E68A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 71 /G put
-dup 83 /S put
-dup 133 /Ecaron put
-dup 197 /Aring put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8F9524DFA303DA7EF108C04CD361477AFBD990BF9DED9BFC02247EB6
-DC26F3B9B5CE0C7B471D7266AA8ECD88076EE68FE7ED7A19E783E439AF44FED4
-B7A7D2E20A1F2CBBD1EB88F4110912C25E87865DCCB566DF1869DCD1902B83D1
-5EE853A551172AAA5B7C5C28D2BC16AD0C44396213943D17067850231A2CAF86
-FC228634E567582F14AA97A4905890A35B215880C1C2A90571EA06CF013FC396
-2774F3DABEA60BF51F3386E5351CED769D15DCE77EB6CFAF713A52D5D16B10EA
-B91C83A0C013BBADBD63DD237CAF04A847696EEC455521A7BD9E5C42B80BFD54
-FB0C0B70F50F7BB95FE3A3021B88101FBE4CCDDC3E40210DE44629FFDF098FE4
-C4FBEE4A32A4A33DCF57FED85D4E59A4F3BF6AD7C33C9A82057E9F1A915862FD
-60475472277E3D2DAAA0AFF371942B781C7A75A1F69DE5512A73C571CB245CD9
-7E014AE63192E3413DD00F17BE68313BB5B77F670E1D5C4C924E4EC023C833C3
-1A93273255EC66BA39D4DF02C0A59715CAF11CA2F2D03ED1535C34EA656BDCD7
-F46F830F794ACD56D35D3B754EC06F814B0C3ADB2D3874653B3209CF5AF527C8
-6756298623AE32796235F5C1D49085C6AA23914671223AF8FD5832F5CF298C9F
-5263EFBDB5872CCF23F82F8ACD12134F15F08E0F920BFF54CBA97DE3E644313D
-4A370909E09A778F6A9109B978CDCFFD2499D99E875F73A08A63731E149D0637
-FDBE5BC39CC042B4947BCF4E9463345997996C7060F376EE195E498DA67BBA64
-F1D12BDADD93991FF69F89D65C3A63A353652AD154FF5F3B473745F26CF18191
-E64BCE1D1E470AB33FD13DE3C98518444F3E6C5879CFE6B6E55A53D9DF597EA6
-BB121B64B7C2FFBAE19577FE58CF8AD5EAA8EB8A2FA877BF1314D0F6FA4521D6
-3B07CA64944761CF66138342E45DF3C87F9457C5DC9095094C7FF8BE81A6F9D0
-C98C5C81EEF97283FA693956807DFD53D74B1ED5FB82D809C84656E0A44CD8DB
-460DD6196829E96FC3ABBC07B97BC5818F4E6F7DD34FAA034817976F6538DE27
-5C8B827DD9D7F0FB53F9422D6968CDF4A453648556DCAAD480B82D221E387862
-4A015F1B427F61CDB498162E5B74BC65B7D22D48E7B8823C47F2159FCD1B6871
-72A4A9ED35DB006D89B86C62B1BA6E7D3591A70589AEFC54701E9B2BB6A14859
-156364FF7F7AAD8219DA61E648D68FEE489DC9E904CF5CD7BE48C101024A68EF
-6D2DD5DF3CF3B09DEF2A4482569F5420CEBCDDA8DC8DC4E3069F884706422152
-92CD79DB5BC580CA3AC5373E4696CC76B901907AFB0142AE5891F32651D26EA9
-8551522937FEA37F51C6BBA74FC1B705ABC17C680A7B313AA1400CA01F4B59EE
-26F6B673A17344D6D138A7485B964BB02231F85278042553423838BC509A4FC8
-A67BDDBD597BAA8D75B2DFEFA63834732087BD40F50764F13A4D942F111FD997
-BD3BB101FA838D2A92B6ED4C03DD09207CF573C0B40DED3EE6D8AF45AC240F9D
-ADC9F00137C6AF584002ED7B1C96F02D316956A4053947965D23737548F5A233
-D950D4FFCC122E84B3F398C5CE732428F7E37B09B1E9ED59C291ECFFD8C5F17E
-8644E34A94551DFD43D499ECD9166DAFBBABC589412F94D7870389C3615A46CC
-8B6315647AAB021F68F95C7A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (reloctav.dvi)
-@start /Fa 152[44 1[44 44 44 44 44 40[44 5[44 1[44 2[44
-1[44 43[{}11 83.022 /CMTT10 rf /Fb 58[531 63[531 49[66
-11[106 61[0 0 0 7[{}7 132.835 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)-49
-229 y Fa(c8)p -59 131 60 4 v -11 129 4 158 v -49 129
-a Fb(\007)169 212 y Fa(d)p 207 112 4 153 v 169 112 a
-Fb(\007)386 195 y Fa(e)p 424 96 4 147 v 386 96 a Fb(\007)604
-179 y Fa(c+)-11 -29 y Fb(\205)112 -35 y(\205)p 642 13
-4 75 v 604 13 a(\007)821 179 y Fa(b)p 859 29 V 821 29
-a Fb(\007)1039 179 y Fa(a)p 1077 46 4 81 v 1039 46 a
-Fb(\007)1256 179 y Fa(g)p 1295 63 4 87 v 1257 63 a Fb(\007)1474
-279 y Fa(g-)859 -45 y Fb(\305)983 -39 y(\305)p 1464 131
-60 4 v 1464 164 V 1512 179 4 192 v 1474 179 a(\007)p
-1692 98 4 135 v 310 w Fa(c2++)p 1794 -69 60 4 v 1794
--102 V 1804 29 4 133 v 1805 -103 a Fb(\010)2239 279 y
-Fa(g2--)p 2229 131 60 4 v 2229 164 V 2277 179 4 150 v
-2239 179 a Fb(\010)p 2674 98 4 135 v 2786 229 a Fa(c0)p
-2776 131 70 4 v 2786 129 a Fb(\011)p 3402 98 4 135 v
-3405 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/reloctav.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: reloctav.dvi
+%%CreationDate: Wed Jan 21 14:05:08 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 733 483 786
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE reloctav.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1405
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 43 /plus put
+dup 45 /hyphen put
+dup 48 /zero put
+dup 50 /two put
+dup 56 /eight put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 103 /g put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1AD1266885DA12BA38006E7ED0E47DEF57472F27B82D3
+926828F8B9A01F0067188845DD36C803FD0E67B1A0001202857AB029C6724BFF
+2227CEDEC4B45A1237C0183425317BDE7D37602FCBFE04B56E21D391C2496129
+0F30C0BC06DB1130F5D1E2FB25A8CA3809C6A33C1236880DC34A869E8C82FF19
+253BA966521ED1D0A8E816CDD298FA34E89ABAA75739C97535A6E4F812454833
+BEF05947F6414AFB850BDD9A6796BAB8A960D5CE6208150B07848BC8902CBA76
+22E2E44E7C653774029E709393A4F8DDC88B8689CF391A95DC4C962D8ECEA8E7
+53C2DEA7E421FFBE254FC47E726FFAAE2C2A15063C65B5636B65BDB9918C0626
+FBF8C4B10DFE83AF257544C70A57ABAC27CE089B582F75A7A36CE3164CC2C1F1
+4256B242A70D5BDC035D91141120EEE494880B8E01DEE8E9B0EF200E16BA13E4
+A36F92147E38CD271718777AE5250364FE5AC95D316535E1AA189B13BA39FE83
+58986413FCC65C406B8A7DA92EB22F6DEC316C58986F6311B0457287C7B27B9D
+CFBCE1DCB7A0211BAA8897F0BC806A41F7F1107728BF1E9A648CFF974273D18C
+F70E8120F8B239874FFE2072A731070FFB5095F90A6E7CFB7A9846CC092E79BF
+29E6267C0709A73BC7D62CD64ECA5620F5FC527DC8CCFABDDA40CDB4EF0BF08D
+40D6323843BB7284CE39DC5769A795E119BC4F7E304C7BD925BAFB17557F6C61
+D3B4B6B0FD6EB1FF20CE94C3A3BAED9E0E3A174D66197DAAF00F789382C7E863
+1DC33DA39D96E5720E9ED02B5AFDE6C389194D7B7F6113748E3D3D0BCF0D79C5
+9B0864E9A33F69B6E7EB74395FEB4D57335BBDDBEEB11F8B5CAF98F1FD288097
+B345005D6DED85B597D212F0F32FFC83591F8767A8534AC934C67A08B8B2D3C1
+87E2353E816AA575AA523083845E6ED1E38CCB3865857673E6AF9D1F7621559C
+0755EBABA13E9A3AF74433C47EB85BD9D617DDF333B3035B88DE317E700F7C93
+298025A7149C3C71925AD512D51A8A0982811EC953E0602889B3A356106EF6BA
+C134D9BBD2B08122D3221EBB323A2786B9847C509605CDA313CFFC7DD4E53EB7
+05F90F4D0EB97AE1DEC73B1721B06201252C0B6C05FE61FA39ED3CE7C78ECF39
+4D3E5E91374B3B3BAF8A50634CF2FDFBDDB29C3878E20EA7A174B64262A03955
+A9DFCE1907065FE78A5785BAB8C51C7BB1B7BAFB9204645252359C10628FBFB0
+54FC2F3279BFB3001F373367C2D462E7F99CFD776F64878759288484DD8DC3E2
+868456192535844CE0D1E22EFBC75876B2CE675D0F7E718CF700E761349B02A1
+EF000657D824383E0D7D22BFB6F982F5CC6807FD5F07DF21B1C012019D6E258C
+356DB77F506AA837987EC1E07143FDB58D620274BA2BDC8B1E2F6ECE9E68C229
+43458B003EB69352A4B04351C92A96447E1048FEC49972025679E76474A50427
+580028E3154546DB1D3AB369533923B4CC13839100A715EB131BD2599CE545A4
+2FA0F4D2060175EEAE50B69DFBE16F8505B52741888DB4860B2A712485BCD722
+F519424A5637BABD56B0693FF1AA747687F1CE28F715076EAAA5E079E74DBFC0
+D2E759361A43A95B8932C86C71AC6D86A89F2B3516787C251C71C65B45EE73D3
+0B673F15A359CE24AF587F860BA7DEA13368A28E3131ADAEB16774432FE860C9
+9BA876A0E3F2FB5F4ACB6CB9FA867A9D39718E2FC8E7C8B52D835485448114FE
+008A641AFAE5D9766F998AE6D1F47C0839048AAF27E2793D3ACD5DF567A0A0BA
+C433011064218DE87B583B2950173C080217EC876F79FC50E4D262E1F8A78263
+EF654E765FE797FB2ADB299E7AA5C5862EA9253764C28ACB4B146650354CD111
+B46616F9415A39F6CF40A8268CE5726D31FB19E5785189924FD0BC28666B8392
+935DB43817CD2847ACEC7252B3DF2E9B5AFBD4DE21D4CAD5FEC25FA8994ADBA1
+0D20BE6932511C69A4DD9ED72F19E7942C6608DE4CA5BD9E014925035F04E576
+7AD579BD69C4ABD1719290AE5E01DD3A2B81AAF6790E8D0352DFBCA0F02ACE0C
+1E616EBFF4A3E859A1169904082142D67D0D441402CD92B5C2076E9C8659A820
+43280DB93347E7B70F712104BA1FA1932EBA27F3D9C924C2DCB378CE632C470C
+8502A5E8CD9B01F395506909B8EE2F9BA93AA94034389DBB05986A84CDA90E50
+83A78F512B87DE242BFA340824FC3994E73EFC14592B4481955E7367E93A664E
+829A7549AA2E0D763048986A822F1B9649154E41C3BAE98C99A6E2CBB66AB52D
+B679C8379DE1DE671B15E06263F9F897D8E002665D70753D59E4BE79AF82F7F1
+5620243131AB6187D75F004BF806E62E60D12B623DA41A961DFCC7718CFA72E7
+E7B6100A1BA36638E27B770A4D71F70A2759DA85C7AF3FCC13A4184168C551B1
+E34C6764DD8E7C510D5F702594275CEE228883FBC4E059D216B25E04A6BD0B32
+18A3935926B262BFE429B8B8558A7C9D2CBD5C38C1F797AD8E90162E665FB9CE
+9173B134DBDC7EEC893FFBF081A36BE943A04A4A700B4F987EF8201F111B7EFE
+6AE8A25C4B553BAECD32375192D67E6CC82FCCE009B5CCEE47186EE0244712E3
+852EA567BAD57B82E0D468C8A1FA6B4900833D1C973FB73C6FF9AFFA8AADFD9E
+8284E23183566830BFDAE52CA4C745A45CBBE736272C133D6DB767CB756DA3BD
+7D9CA35506653E7059F52C8977BBA4364BBAB351AAF0A6CCCD1BBB2E419A849D
+21454CB737F3C38D802E5E84B8273073B382026C3947DD245D0D7B44380542DC
+801289BFF0FC06F35018F69B2C5D349978DDA3C3E1204EDEE24B1BC39B0D1F00
+9E40A13D3C8FF213D1B00D77B005534B1DE0911C6EDE05D5BBB6910D68530754
+B26E2299869853045DFA6304A998ADF70571A4A03EBA13C5B00E6884F0968EF6
+552DAF371E0F61E85EC93B5CC06047EE0F3BCAE690831B722F0008A1D3B680DA
+B43D42559A1AE169D84D5A6179D8B434B1008C4D53F6AFE04894CF8A94D01E51
+5C2C0A617CB31532215396F76C0B1AE60836537CD8BFEF8394C4AE46303E90F6
+A77D910833C58FB41CB29FC9EACFBBE3CA25AAE3F65A14964D709BF40A9DF50E
+EAE27329421F86C81B667BD08EA68B658919EBAF96626E17F58A8DD4D2666D6F
+54329569C8D8DF719A8D108E0A3F708F529A5B1FFECF3EBE7BB304769F75844E
+7FDA5FF39EBA3D7ADBC733B4A79E6B21849511BD087D192F4ED43F7900928C03
+D931DF04EBBED296AF1045AC2B727A931D4C293CBE0EE977B9243D3EC7E68A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 9 /macron put
+dup 71 /G put
+dup 83 /S put
+dup 133 /Ecaron put
+dup 197 /Aring put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8F9524DFA303DA7EF108C04CD361477AFBD990BF9DED9BFC02247EB6
+DC26F3B9B5CE0C7B471D7266AA8ECD88076EE68FE7ED7A19E783E439AF44FED4
+B7A7D2E20A1F2CBBD1EB88F4110912C25E87865DCCB566DF1869DCD1902B83D1
+5EE853A551172AAA5B7C5C28D2BC16AD0C44396213943D17067850231A2CAF86
+FC228634E567582F14AA97A4905890A35B215880C1C2A90571EA06CF013FC396
+2774F3DABEA60BF51F3386E5351CED769D15DCE77EB6CFAF713A52D5D16B10EA
+B91C83A0C013BBADBD63DD237CAF04A847696EEC455521A7BD9E5C42B80BFD54
+FB0C0B70F50F7BB95FE3A3021B88101FBE4CCDDC3E40210DE44629FFDF098FE4
+C4FBEE4A32A4A33DCF57FED85D4E59A4F3BF6AD7C33C9A82057E9F1A915862FD
+60475472277E3D2DAAA0AFF371942B781C7A75A1F69DE5512A73C571CB245CD9
+7E014AE63192E3413DD00F17BE68313BB5B77F670E1D5C4C924E4EC023C833C3
+1A93273255EC66BA39D4DF02C0A59715CAF11CA2F2D03ED1535C34EA656BDCD7
+F46F830F794ACD56D35D3B754EC06F814B0C3ADB2D3874653B3209CF5AF527C8
+6756298623AE32796235F5C1D49085C6AA23914671223AF8FD5832F5CF298C9F
+5263EFBDB5872CCF23F82F8ACD12134F15F08E0F920BFF54CBA97DE3E644313D
+4A370909E09A778F6A9109B978CDCFFD2499D99E875F73A08A63731E149D0637
+FDBE5BC39CC042B4947BCF4E9463345997996C7060F376EE195E498DA67BBA64
+F1D12BDADD93991FF69F89D65C3A63A353652AD154FF5F3B473745F26CF18191
+E64BCE1D1E470AB33FD13DE3C98518444F3E6C5879CFE6B6E55A53D9DF597EA6
+BB121B64B7C2FFBAE19577FE58CF8AD5EAA8EB8A2FA877BF1314D0F6FA4521D6
+3B07CA64944761CF66138342E45DF3C87F9457C5DC9095094C7FF8BE81A6F9D0
+C98C5C81EEF97283FA693956807DFD53D74B1ED5FB82D809C84656E0A44CD8DB
+460DD6196829E96FC3ABBC07B97BC5818F4E6F7DD34FAA034817976F6538DE27
+5C8B827DD9D7F0FB53F9422D6968CDF4A453648556DCAAD480B82D221E387862
+4A015F1B427F61CDB498162E5B74BC65B7D22D48E7B8823C47F2159FCD1B6871
+72A4A9ED35DB006D89B86C62B1BA6E7D3591A70589AEFC54701E9B2BB6A14859
+156364FF7F7AAD8219DA61E648D68FEE489DC9E904CF5CD7BE48C101024A68EF
+6D2DD5DF3CF3B09DEF2A4482569F5420CEBCDDA8DC8DC4E3069F884706422152
+92CD79DB5BC580CA3AC5373E4696CC76B901907AFB0142AE5891F32651D26EA9
+8551522937FEA37F51C6BBA74FC1B705ABC17C680A7B313AA1400CA01F4B59EE
+26F6B673A17344D6D138A7485B964BB02231F85278042553423838BC509A4FC8
+A67BDDBD597BAA8D75B2DFEFA63834732087BD40F50764F13A4D942F111FD997
+BD3BB101FA838D2A92B6ED4C03DD09207CF573C0B40DED3EE6D8AF45AC240F9D
+ADC9F00137C6AF584002ED7B1C96F02D316956A4053947965D23737548F5A233
+D950D4FFCC122E84B3F398C5CE732428F7E37B09B1E9ED59C291ECFFD8C5F17E
+8644E34A94551DFD43D499ECD9166DAFBBABC589412F94D7870389C3615A46CC
+8B6315647AAB021F68F95C7A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (reloctav.dvi)
+@start /Fa 152[44 1[44 44 44 44 44 40[44 5[44 1[44 2[44
+1[44 43[{}11 83.022 /CMTT10 rf /Fb 58[531 63[531 49[66
+11[106 61[0 0 0 7[{}7 132.835 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3770 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fb(G)-244 29 y(S)-49
+229 y Fa(c8)p -59 131 60 4 v -11 129 4 158 v -49 129
+a Fb(\007)169 212 y Fa(d)p 207 112 4 153 v 169 112 a
+Fb(\007)386 195 y Fa(e)p 424 96 4 147 v 386 96 a Fb(\007)604
+179 y Fa(c+)-11 -29 y Fb(\205)112 -35 y(\205)p 642 13
+4 75 v 604 13 a(\007)821 179 y Fa(b)p 859 29 V 821 29
+a Fb(\007)1039 179 y Fa(a)p 1077 46 4 81 v 1039 46 a
+Fb(\007)1256 179 y Fa(g)p 1295 63 4 87 v 1257 63 a Fb(\007)1474
+279 y Fa(g-)859 -45 y Fb(\305)983 -39 y(\305)p 1464 131
+60 4 v 1464 164 V 1512 179 4 192 v 1474 179 a(\007)p
+1692 98 4 135 v 310 w Fa(c2++)p 1794 -69 60 4 v 1794
+-102 V 1804 29 4 133 v 1805 -103 a Fb(\010)2239 279 y
+Fa(g2--)p 2229 131 60 4 v 2229 164 V 2277 179 4 150 v
+2239 179 a Fb(\010)p 2674 98 4 135 v 2786 229 a Fa(c0)p
+2776 131 70 4 v 2786 129 a Fb(\011)p 3402 98 4 135 v
+3405 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/rests.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/rests.eps
index e37e303171f..dadaf16f635 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/rests.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/rests.eps
@@ -1,873 +1,873 @@
-%% LaTeX2e file `eps/rests.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: rests.dvi
-%%CreationDate: Wed Jan 21 16:06:19 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 667 510 782
-%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE rests.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1606
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 49 /one put
-dup 53 /five put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13DAD4B81E900D43D1331F872A1996363D275B
-38804AB95D9AEACC817F4423659CC114B95B62D3EE31E2065159136CDE7FDF38
-26FF8A7044D84EAE97D6F422027B3189FA05BBA11182AA119EE94EF5CFD936BB
-13C6E0545B5F240381B76340ACAB92DA5A50017BB80494957966D50D3A4E2B8A
-772142415348AF07E9F3BE3193CC8753B713BCF00561CD541CC3D572AA7C9F7D
-7B3F6A6EEB68FD9A190F3AFEEA39EFFF8A23952539D638273924DC7D4AD99E61
-96232AB115416D2679D38FA7033AFCBEA40614B243ECEA558769CF50243A487E
-E3087448E688FF4C25C45DE8E4836521D72F9769CA2C6C8D39CC4772BB550302
-BB69AF5A5856BF5D235D0874C33E5A4E50F5F6089748FD71FDDCD03B79784E7F
-13289F2F5247EB96441821F97F4A6F0E24124E778A6EDB013BAC0862B0B06B06
-9594BFC950F14FE23D1E720D6C741D37E601329DEFE002746A0757C2FEACAB76
-466AF558E3A207D2D2A0A99305EA3082286381B517F5469DC9D19C716CCB268B
-D903DB33DCAAE5A370BC1C9DC729D9AE4F5F74F665023DE2A1595D32E8A9C2BB
-0BDC038BE4A62E673F17BEAF79FC308801A52032CD23D6375F657E
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%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 43 /plus put
-dup 45 /hyphen put
-dup 46 /period 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 56 /eight put
-dup 98 /b put
-dup 100 /d put
-dup 109 /m put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A77C8392948FE1B07931A19298FB60E443E198089A0A
-16D46095558E6DBAB7E03022F2A762470D545CE6B8D931FA66E63DDB04125D5E
-A2F86EC0944B0D160100C2DB33B92C400A8CCB715F68477177459BCD57C86D97
-449A25D63E9584EEF820A7AB919BC62D28434BFBA0EC53913CEB3BF4857057BB
-3FB43E95092D6DC0B7CE4E1D8C1FDD292F80E973E277C7FCC9878D2F97D0E3E9
-8DD466CCB4EEC3E16429C36FC9583A048A83F68049C707E5FC1473E7DF90125D
-BCC3489C04F227D170EA0C1E8E021294FBF894B6F5CF980657C66CFFB44CAAAA
-EB5356036A468B4DB989139986C126A0F569E656F19E724FCEAA92AE73CCFE92
-84900853451CBDB2268F2F07F4F684D905133780E9153FC79197E9EC90D4EB55
-E59FC69A5E5AF62AC7DE74AF04DD63CDBA0EF4DDEAA153D36C55229E76A43E87
-801F7A6CFE211D8D3C9EAA31607DED09B184B48623DA0FBF9615F93AD8DAF59D
-54AA23B941783EAFE4076DFF3EAE8F83E8307F56725A45128EE8ED27C7E7BA5E
-A1A04E90C07082B63F5F229B7C4F8BCEC0565D0BF938A75C79F71E35DFD843E6
-E80330277D1033B7235B9D9F26A50B27E743D60D4F71F6CEC22A583406AA0C6A
-FF44BB564F9694C976E71D9214BE0875849A350845815873E4D354FC4E9D052B
-5573FA91A2859010F2A9FEE4159E79FEE7BFE1DCD5BA2764536718B57418C07E
-23BB2FDB47FBC683DAB168AF5366EA65FD227F264458825ABA348C3492AE148E
-9B3F62199D5A36C9B6C152C2459204ACC3F5547BE58B769C8F9309FB5E6BE957
-5B1525143903A4FD1F1037074466CCDBEF21889CFF89405ABE997772CEC24558
-6F1B71D0BF879D16EAB0E9E4470A70F8491873BE43639CDB2FF3B1DC585E66C5
-0E41E94B66B5CE1ED0AD1ED3B185D5177C165DAD8F39980BD3D23C9117ED4F1C
-49858AF1C3913E297AF87BA816C9B5430C7B4E1ACEB5EC9B1E6400FEC0A6D601
-43CC3D55F1DF6AAF7C9D25D99E4453E1C9F904E335F3D68F09FD34B4AE0118A8
-72F265A6E5BE7839C0E85C73F416FEA662832F3B2707197B787831B054206979
-D428DF9A0974DA59CA6A800561A52E4DCC529F2A7C4A9C8B1835362EE9388EA3
-D8A6397E3A55877D2FD50D2C95D7FBE9EE8F239A449B3E8FF69C6884F5A853C0
-B20AC1C2C1937BCEA635588BA7DFE3DA73CA8C444670B92F61456B513A04B553
-471707F693ECDB8FBBB9A2FCCF22C59D3BE9F8B99B8DEAECC23938E70D80E413
-9E265E577B55EBCEA7E42BFED1F164D254D608BB53ADF54A04AD5F281DB885A2
-A115BF820AA3CB4D728C837E30331AF3B1DE62566DC23EE82A1F289FBF0BAABE
-B0C6C184664A7E25FD196AE41764CDB1A2000FD6A6BF3E3948906F9ED9F67EEE
-037951FC4B92F644971D8251D7E2F8CF998BB5520FF62B719B8B083411C584B7
-6274178494153B390FD9C13DA802E93BAFB7F5E48DA153EA49578AA7BDB00AF0
-58E0D24724844D52E8EDDA2D8DC8849EF5FB988363CBB7978E17D02E795AD2B1
-CEC9E4A8BD387C4089BDBAF009999273E73B84E4A1C21A3800A9051248C98EA4
-5263910D8EA1E31F5810FFCA20CBC4612D758E8280BB1D083B037795796CCE40
-A1C58D854056ADF7F33F4F5732F30EB9AFB71AE627884E530AD32A8EFB130EFA
-72AB96013504492A68B83EE25B26F03A143AB2F9F1718B00BA9DA464F1AF9AA5
-97AEC3649806D4D53CB133589978C773EA8A58DC2570F53381EC1F67EC7829A0
-1976AC43ED2F7F378EE4AED6BE9F90E4076CD0DBED804DC71D4AE87A23D985A6
-D8F4D7EFEF9EEF0609CCE6038D18394B3793C5D0783749E92012EC10D3E91D8C
-F0AA908BA6AC5DD2C4C93DB5DC493D1FDEC33CA19B0E8028CC59CA195D6256DE
-8E290AD79F0067D678B26B5557D8DF3F1AC2B735831FF23D1F0D209FD360BD28
-B23B2793009ADF3C43793ADE61143E2C615108295F9A0CD785956A249950C3A4
-95204EA304A30012DACD4D992CC01AE6E406709DE2B2A8A8290210B984AE70BF
-25908B9A79B7C2826725CD25B137F8A26640B5EF5EDC560B3A62726C8331149B
-0589F030B0AF63F4FD26F5668D2964DFABE43A7DF71960519764CB7A95414706
-F48137FF66470C423965CFF1ECF8E2116CC4A664375F5092E717B58F2B84B862
-E3DD310A0A5A868B99747EB096E86678C54C5823570C18F44CA733E05BA834DB
-496EBF7696385C9395AC1CDF0C67280CA91F2F4964018F849C1BC5BEEDA47A38
-490F060643C6D234C9D45A09CA585CD6E354CFB15F1873479BE3918D50863B3C
-5603939A769DCDA4A45708260AEA22AFDD5DEB61096F036BE77D55D81CDA4DF7
-6F3CC88796119C78DAB4019B6F433C592D828FFEF2520D9994F5FA02C0915877
-206B710CE183D0B27552C1FA3582BDB1832219C34532C74AB15D2C810CEA7316
-F5885693FCF5F4DE8F13B8039EAC7044896857F2B4699611945936ED01D8F110
-E74BEAD35ADD3412677DA8F12CD79D8D457CD38A59B0E39019E78649096CD59C
-8FC16FBF9E4CE6A6EDCAC6AD8AF4C9385FA8C0CFA20F99BD2B310E570E83EB15
-2E9DCB78B520EAD76A6E56D11CAE5AA50615E6174339DE827F4D8BD77F4867EE
-F70F9DFFB9A6A8F9AC7ACB955F08DFC38B9ACF9B4EFD78ABA6ED119AF3349EE5
-75F2FEF9DE682968915FFAE6F99C6CB421E16EE8437773305AED5CE31799DBEA
-7AE44116B6DAC23B27BBF871C4B6A0E60A6726F6B93A5004765A007DE388A52E
-1C5325E1961A355655CFF420CDA913DBF7DA0585417D7CB40263294A1385F622
-51B43C7DA21211E5D172929DACD76D8A16071BCF9860CC9E3079A204E85DC625
-BE9E5BDDD337E2C7C872D6E388583AEA9D6EEABF96A7011CAF9847AF2C708898
-AE719E39CA4803338ADE9DC85938632530F279D580C91697DED573AA2B8C4EC6
-45121D96778C17F6F492F8F545C447B9B2A7EDC7D348CAB34D4AB6496BF5336B
-D74DDB4EFE72D6D77E7AA89E130FBEB0839D304C6BF5431855D2EC0ACDAEAC82
-1F9D3AEFAAF62FEA036BCBD57F9BAA47A5C7F37AC02BCE4010D7012CCB59DE42
-F6794EF1822BFC021E6384E17AEA34770C81229B884E1A7D0BE0F2DD2F694F1B
-C3AACAAC255D19FB836A5ACA6115A9C81F0DC5E9BE9521854931786D9DE227E8
-81F9A069C0FF016FD09D81619C66989D7AA74E99F6227DC5EE0B2DD6A26C922A
-C2E35FCB760A069FA27165C70B9BB92EA21C0535DF000DD30F2E0A83BE691D97
-F3AD3570B5387E2024FFF0725B41A422AFE58962D7560E00B328303C8DA6264A
-E922CD7F517C606DAB1C2F3EEC330788F9A8A56FA5FEAC805F8E22BED325D15A
-F073A911CC52E1AD0F3A21330DB480B7CEF23B6DA8066B3CB418580E94EB95A1
-7A5630089560153B73E18B2AB2DD325E4E5DD356C5F484C46E8C4A9FA2F61FC9
-5D526414337ABF1D5A879D0109B46F842D8FF1C759005827CE5471644EC02D86
-CAC99F9E41EE098043D40545E9F245C50DEAA8A2CB055D1106ECBD0A8B05C814
-256DA06DE6EE6DEC54645E82BBF8D7F0F475AA298E8D52A4159FB34EDEDC3507
-9F84A3143DA69D7D4887CCBAD3EC75D5F9604B4B4AC25C2F3089E3CF494BEEFC
-3CD5154BF86F66EE880414BBF37495A6A0983E80F23189407E438069F98338DD
-471CE3B27C98331BC1FE4A7B6F5FDC759FD1BDCE6635922101729E99C55D46A7
-1A2D1B25CAEA5A076F0BDF92EBC974DE3B71483CB672DFFA1E4F4C9A76BFA90C
-2C191657772688A92CEC107BD5E06B732DAFB85A059DBB34817A7966E3EEF114
-728522E56A8B23219A2C3D9CD62EB5DC833DAFCFA4D59E06C4ED9677C8EE3ABC
-BF1AE4719F451D28369629D3565EC0D6920112630F88FF5589A22B17A4C84242
-CBB6F6E4E20A864C6B23AFA9DCDD7BC9329C9150D08A4CAAA4DA9F5F87CEA251
-9D7973BFEDD95BE6DF1D38D3883ED213DD33922974264CA3E5515C5C1D1C9644
-9F7E94419C1B05EEFF29C13D387BD58C08FF5BB61A347062DB792CF9075B6F82
-5FE79AD1D00126FBE3388183235F78F4997500C57D2D24CAECAE848A973E449B
-0D1A6BC8B9435C8E6E2769EC8D6BBB65EA2CFFD4C5C8099BAAF395B2B4F369A1
-E48421DFDE616F0B802D725FD49CC097B583EB40FFF1A5E2187B040BD324A78C
-3ED77E6FD2EC68A81FC1F18D820AD3EB7F2D20169DBB0A08B89BA707682AC4B5
-DED58D1A9DA4D7F7F99AA53F5D48DC2AA94CF7CE5913279716A0BAF0E2C034CC
-3196675E218FBFFD2314403CFF8A3F031AA9B2C2FCADC120ABE333D52BF48E13
-D7034131AA9BB5EC6C2E9BE724019F4DB54674A9FB3E7232F4795EDF8CD1D10F
-4975FE02F86E6DBCD480EC70AEE84017B9CB01521E765787DFA0B1FB5ABDAF43
-92CA634C40F3F24A96350CB0E1E29828101C10F1843B9BEACF8EE664643F8BB7
-D79054CB20EFEAB337C29B3B02A58BA0646A403E1F158F3008A0B60D8447B4EA
-33843FF0108FF78BFE74547AE119C59E9E935A18FCCBAB08881AFF4DCB54A430
-9DEBFCB7475823155054817AB283BF65
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 1 /acute put
-dup 8 /breve 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 71 /G put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86413608B35BCA07C3C33A3187536822A810ECCE2932BF5E977C2144
-654351CE8F69FF63B22A9CB0C53A912051785E07C6A0D1C516E31E1C2D53B399
-826B83B39E8C24A9B763A4284FF5CF7AF2B9206ACD9BEB3526878D37BE19923D
-2338AAB25AC0011D8531F21738BF612863E45D63112EC8ECADB8E1098DFA6FF8
-E609A20A3854C5F29765AA4A8991351A6B0DA356D1BFF99F67A1FF06A56C29A4
-94B10524F25676CB2796D6CC154DCB4F6B2E00FDF751CB11F81ED5D9CDC231EB
-2FE491F188E478776D304FBCE5B99B7A5C38BA757A6696995B3842AA8543A2D2
-CF40CBA0AFF8B3C151043C0716FD0E948626E417B039286D19D9D15A3C8C473B
-578F3DF0DEF351E8DECDEB7A1DC6A7028A0A5D66DD97B05D154254294CB5B369
-ECE02826173984865F9D224BFD2F49162A581A912BDA17A93CDA0960657C4213
-8F0FD9D451DCFDAF0680837F7AED440186E7313A44DF19651B893AEED26E79AD
-58159094088D17FE99477ADC3F692700B419FEB6E2EB35E4392AE8912BFBD4DB
-66E44F21274887DAC2E945DF10CF983C841766D8F889396D35F5C8944598E11C
-F8080BDF117A01C457420C6F46D804B3C3433B351B65990C557CFE0591077626
-2275B171512334A1FCCF56765CB3FD1EC0CE2AC11FEB15F52417A50498376027
-EE17D98825AB184BAEF254208366F7B864E773DB92D23FDBF7A096E7E7834235
-2532BC074C478D28F6AAE5843C9499520D6FC339D9FDC05D1BBB1A55871851EB
-BAFB87330A37677F8D4654B8888816D76AA872DC57ECF9019EBB8483FFE5ED23
-4FBAB84D952D1CC205928444354A84A5DC08A4D60A416A16E13742296345D74A
-8B7C1BF206E380BEEF1611CB5A3DF549E9FFA86FB7CF0E06AA6760F03DA20151
-04FDF8351119BEEEF9DACF5F604C1D06AAE3B6530D756C7A28D387C26C68D826
-2016AAA631AE83EAEADD344FE376C89B34F36CCAEE253C12B062FA927DEFF046
-161193903D471F0F26044983AD29A2903F2C20A030C73B70F883ADCFA914FC41
-810EF93F6381C5AD7E55E119AD6C7A9CDCD462953BC0F64494B7CFAD5C2C677D
-013C58143D8721DDB9ABF18142DE077A41761E893A644247E3415CAEBBAA6A01
-7BEA82EB84A0F50BAB95A50B8F71EA12F6BC650A2B6E212A4A13C1842F8BEB39
-2FC871C43491D72F926DE3D9E7092CAF32CA8FD8E673B705E57C3DF3F8BAFBC5
-953A7E2A9EA36B50A5B69A6A9F4D0E384B158890CCB9EA30DF1C2862ACA5DDA9
-98140E159A569403375B9801DE5602D7B5520A9656523F8981C350B0C1BAF64D
-B9233B231C41ACB56B27A4540DB067ABB63FF873ADA6582A5EB5420AB5A74259
-316C6392EBDDD167669C06BB6F7F31E7B70866DE90AA3983F4818A18BD033150
-8FCB296F9162031AFEA1BF8DB710FB23F31E83F8C85D237EE763E3979D72B465
-9CCB274AEBB8B5BCB50029D400DB0560446469BE40EF05FCC5CCE9E08770A09C
-59CC260490AC60C0AC71964EE88E4B97C228B49915153142D9771CA24CD7BD28
-85442E68A95F4FB8E97C25761C0E34627B7F0008CA14E5BF11C34812CFB843B4
-BF30C84481739EA498322338D6F7C199C419DAAC1E3E0D7D0FD31352EAF9EAB9
-D9E16BA4BD2A9D2115D5A245255A53FD9F15AD223E888C2A472CDAF4F9A9A296
-4758D60844032E780B2808D11492318C4776466771C3A8379664C0BCA55EAA99
-9751A6A32F6370AFEE38C3BA08BD3994CB75E57C6598387A08A4A0EBBCB58970
-1F088EEA975881EDAE90C41B678C80794909F0B7AB6CF3800236E5B74F6F9177
-B71A3FA7544447EA637914BFD10F889BD1113910FD656A8649DAA1C05D6A3C84
-0B65621E9FF1D8519AB4A1EF690DC8CC6DD95540A4ACD0684D27F7199A9FA6E7
-C76AB84EE99DD6DC734AE3AC5EEE66A4EF73A10F51BC3C1AE8E284493DA9E16A
-3016B9250798BE0703313569EA06ADF6FAFBD083FEDB93B43DB4C1F4CF205D83
-92244A6B4BA8AE5FD60871C19FD23163E3F7C67FC4CD4B95236927926922157A
-ACD8227305A51E67932769FE7B19C1413E9E2DFD7D59ADA9202D55793CB8DA66
-301224FB3394B1018823AA4E50516E27A48BA9E8DD541CD4A12AAD799A4E8FA5
-DF3453EF883668B3B87E34A1C6087DE2268B1C181BFAFBD76B26D21B155CA6BB
-3CCD1F5E6DA5CB1A25174F534AC32A334540D83A81403D904111D7FEEF741EC2
-D7AFA5DA0FCD3E967B51553A8499CB0EBAE4C2FA50CE8DAF5D2C8BBDA1228A07
-8A797F05E9CEC10B018E69C81D764F817D29E5EEDCEF413C025EC356334EDF03
-E96CB941A479F980CF0B40F6A92EA493F1616B419189E5326960CE90F10A15A5
-B0CCC86AC74EA21C169447612F7971CD7554D4647B4E6886B2C0A9A0573FE3F0
-54FD89007143E12171A957B1B72CAB3D56566FF5C73E5B0D9984D1AB5BDC0C48
-3A1BB612F30929896E481110C0F6146049A5CE8DFEFCFF6A8A953642420C096A
-5A706E2F009726204B2911865720DFB64328A710DC11EA2AA9007942DD967888
-C2C01E91A7BE719D95C77E140B1AAA51CF76F54AF8EE6C83AA9BC41826C94248
-EC1A4C1185DC6BE65ADD5803766592B12C6434E8C5C90F1B78C8511B518C55E4
-38665ECA673658598DB22A8D9EF5B18C76D87F2CB06504789C6B09181C943A69
-B8208F9A46E45592E8C26BE0F28CB6D78005E82534BCF46682BB6954A95B9AF6
-30
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (rests.dvi)
-@start /Fa 202[56 3[56 49[{}2 99.6264 /CMBX12 rf /Fb
-141[44 1[44 44 1[44 8[44 1[44 41[44 1[44 44 44 44 44
-44 44 1[44 44 1[44 43[{}17 83.022 /CMTT10 rf /Fc 184[106
-4[0 0 0 0 0 50 50 51[0 6[0 0{}11 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fc(G)-136 179 y Fb(r0)p
-479 98 4 135 v 117 -4 a Fc(=)591 179 y Fb(r2)591 29 y
-Fc(<)1025 179 y Fb(r4)1025 96 y Fc(>)1332 179 y Fb(r8)1332
-96 y Fc(?)1550 179 y Fb(r1)1550 96 y Fc(@)1703 179 y
-Fb(r3)1703 96 y Fc(A)1811 179 y Fb(r6)1811 96 y Fc(B)1888
-229 y Fb(rb)p 1966 98 V 2077 179 a(r4+3)2077 46 y Fc(>)2385
-262 y Fb(r8-6)2385 195 y Fc(?)2602 179 y Fb(r)2602 96
-y Fc(?)2819 179 y Fb(r)2819 13 y Fc(\000)2819 96 y(?)3085
-179 y Fb(.r)3085 96 y Fc(@)3238 179 y Fb(rdd)3238 13
-y Fc(\001)3238 96 y(?)3526 179 y Fb(r3)3526 96 y Fc(A)p
-3635 98 V 3638 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 262 a -364 519 4002 4 v -364
-552 V -364 585 V -364 618 V -364 652 V -364 617 a Fc(G)-141
-733 y Fb(rp)p 443 652 4 135 v 80 550 a Fc(=)550 733 y
-Fb(rpo)550 550 y Fc(=)p 1134 652 V 1241 733 a Fb(rm15)p
-1825 652 V 1231 608 5 50 v 1236 592 491 17 v 1425 500
-a Fa(15)p 1727 608 5 50 v 1932 720 4 104 v 1933 617 a
-Fc(\010)1933 600 y(\000)p 1970 567 4 110 v 1932 567 a(\010\000)2438
-766 y Fb(r4)2438 716 y Fc(>)2438 849 y Fb(r4)2438 617
-y Fc(>)p 2730 652 4 135 v 2836 720 4 104 v 399 w(\010)2837
-600 y(\000)p 2875 567 4 110 v -33 x(\010\000)3342 733
-y Fb(r4+0)3342 650 y Fc(>)3342 816 y Fb(r4b)p 3635 652
-4 135 v 3638 816 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3638 816 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/rests.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: rests.dvi
+%%CreationDate: Wed Jan 21 16:06:19 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 667 510 782
+%%DocumentFonts: TeXMUSIX16-Regular CMTT10 CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE rests.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1606
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 49 /one put
+dup 53 /five put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13DAD4B81E900D43D1331F872A1996363D275B
+38804AB95D9AEACC817F4423659CC114B95B62D3EE31E2065159136CDE7FDF38
+26FF8A7044D84EAE97D6F422027B3189FA05BBA11182AA119EE94EF5CFD936BB
+13C6E0545B5F240381B76340ACAB92DA5A50017BB80494957966D50D3A4E2B8A
+772142415348AF07E9F3BE3193CC8753B713BCF00561CD541CC3D572AA7C9F7D
+7B3F6A6EEB68FD9A190F3AFEEA39EFFF8A23952539D638273924DC7D4AD99E61
+96232AB115416D2679D38FA7033AFCBEA40614B243ECEA558769CF50243A487E
+E3087448E688FF4C25C45DE8E4836521D72F9769CA2C6C8D39CC4772BB550302
+BB69AF5A5856BF5D235D0874C33E5A4E50F5F6089748FD71FDDCD03B79784E7F
+13289F2F5247EB96441821F97F4A6F0E24124E778A6EDB013BAC0862B0B06B06
+9594BFC950F14FE23D1E720D6C741D37E601329DEFE002746A0757C2FEACAB76
+466AF558E3A207D2D2A0A99305EA3082286381B517F5469DC9D19C716CCB268B
+D903DB33DCAAE5A370BC1C9DC729D9AE4F5F74F665023DE2A1595D32E8A9C2BB
+0BDC038BE4A62E673F17BEAF79FC308801A52032CD23D6375F657E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%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 43 /plus put
+dup 45 /hyphen put
+dup 46 /period 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 56 /eight put
+dup 98 /b put
+dup 100 /d put
+dup 109 /m put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A77C8392948FE1B07931A19298FB60E443E198089A0A
+16D46095558E6DBAB7E03022F2A762470D545CE6B8D931FA66E63DDB04125D5E
+A2F86EC0944B0D160100C2DB33B92C400A8CCB715F68477177459BCD57C86D97
+449A25D63E9584EEF820A7AB919BC62D28434BFBA0EC53913CEB3BF4857057BB
+3FB43E95092D6DC0B7CE4E1D8C1FDD292F80E973E277C7FCC9878D2F97D0E3E9
+8DD466CCB4EEC3E16429C36FC9583A048A83F68049C707E5FC1473E7DF90125D
+BCC3489C04F227D170EA0C1E8E021294FBF894B6F5CF980657C66CFFB44CAAAA
+EB5356036A468B4DB989139986C126A0F569E656F19E724FCEAA92AE73CCFE92
+84900853451CBDB2268F2F07F4F684D905133780E9153FC79197E9EC90D4EB55
+E59FC69A5E5AF62AC7DE74AF04DD63CDBA0EF4DDEAA153D36C55229E76A43E87
+801F7A6CFE211D8D3C9EAA31607DED09B184B48623DA0FBF9615F93AD8DAF59D
+54AA23B941783EAFE4076DFF3EAE8F83E8307F56725A45128EE8ED27C7E7BA5E
+A1A04E90C07082B63F5F229B7C4F8BCEC0565D0BF938A75C79F71E35DFD843E6
+E80330277D1033B7235B9D9F26A50B27E743D60D4F71F6CEC22A583406AA0C6A
+FF44BB564F9694C976E71D9214BE0875849A350845815873E4D354FC4E9D052B
+5573FA91A2859010F2A9FEE4159E79FEE7BFE1DCD5BA2764536718B57418C07E
+23BB2FDB47FBC683DAB168AF5366EA65FD227F264458825ABA348C3492AE148E
+9B3F62199D5A36C9B6C152C2459204ACC3F5547BE58B769C8F9309FB5E6BE957
+5B1525143903A4FD1F1037074466CCDBEF21889CFF89405ABE997772CEC24558
+6F1B71D0BF879D16EAB0E9E4470A70F8491873BE43639CDB2FF3B1DC585E66C5
+0E41E94B66B5CE1ED0AD1ED3B185D5177C165DAD8F39980BD3D23C9117ED4F1C
+49858AF1C3913E297AF87BA816C9B5430C7B4E1ACEB5EC9B1E6400FEC0A6D601
+43CC3D55F1DF6AAF7C9D25D99E4453E1C9F904E335F3D68F09FD34B4AE0118A8
+72F265A6E5BE7839C0E85C73F416FEA662832F3B2707197B787831B054206979
+D428DF9A0974DA59CA6A800561A52E4DCC529F2A7C4A9C8B1835362EE9388EA3
+D8A6397E3A55877D2FD50D2C95D7FBE9EE8F239A449B3E8FF69C6884F5A853C0
+B20AC1C2C1937BCEA635588BA7DFE3DA73CA8C444670B92F61456B513A04B553
+471707F693ECDB8FBBB9A2FCCF22C59D3BE9F8B99B8DEAECC23938E70D80E413
+9E265E577B55EBCEA7E42BFED1F164D254D608BB53ADF54A04AD5F281DB885A2
+A115BF820AA3CB4D728C837E30331AF3B1DE62566DC23EE82A1F289FBF0BAABE
+B0C6C184664A7E25FD196AE41764CDB1A2000FD6A6BF3E3948906F9ED9F67EEE
+037951FC4B92F644971D8251D7E2F8CF998BB5520FF62B719B8B083411C584B7
+6274178494153B390FD9C13DA802E93BAFB7F5E48DA153EA49578AA7BDB00AF0
+58E0D24724844D52E8EDDA2D8DC8849EF5FB988363CBB7978E17D02E795AD2B1
+CEC9E4A8BD387C4089BDBAF009999273E73B84E4A1C21A3800A9051248C98EA4
+5263910D8EA1E31F5810FFCA20CBC4612D758E8280BB1D083B037795796CCE40
+A1C58D854056ADF7F33F4F5732F30EB9AFB71AE627884E530AD32A8EFB130EFA
+72AB96013504492A68B83EE25B26F03A143AB2F9F1718B00BA9DA464F1AF9AA5
+97AEC3649806D4D53CB133589978C773EA8A58DC2570F53381EC1F67EC7829A0
+1976AC43ED2F7F378EE4AED6BE9F90E4076CD0DBED804DC71D4AE87A23D985A6
+D8F4D7EFEF9EEF0609CCE6038D18394B3793C5D0783749E92012EC10D3E91D8C
+F0AA908BA6AC5DD2C4C93DB5DC493D1FDEC33CA19B0E8028CC59CA195D6256DE
+8E290AD79F0067D678B26B5557D8DF3F1AC2B735831FF23D1F0D209FD360BD28
+B23B2793009ADF3C43793ADE61143E2C615108295F9A0CD785956A249950C3A4
+95204EA304A30012DACD4D992CC01AE6E406709DE2B2A8A8290210B984AE70BF
+25908B9A79B7C2826725CD25B137F8A26640B5EF5EDC560B3A62726C8331149B
+0589F030B0AF63F4FD26F5668D2964DFABE43A7DF71960519764CB7A95414706
+F48137FF66470C423965CFF1ECF8E2116CC4A664375F5092E717B58F2B84B862
+E3DD310A0A5A868B99747EB096E86678C54C5823570C18F44CA733E05BA834DB
+496EBF7696385C9395AC1CDF0C67280CA91F2F4964018F849C1BC5BEEDA47A38
+490F060643C6D234C9D45A09CA585CD6E354CFB15F1873479BE3918D50863B3C
+5603939A769DCDA4A45708260AEA22AFDD5DEB61096F036BE77D55D81CDA4DF7
+6F3CC88796119C78DAB4019B6F433C592D828FFEF2520D9994F5FA02C0915877
+206B710CE183D0B27552C1FA3582BDB1832219C34532C74AB15D2C810CEA7316
+F5885693FCF5F4DE8F13B8039EAC7044896857F2B4699611945936ED01D8F110
+E74BEAD35ADD3412677DA8F12CD79D8D457CD38A59B0E39019E78649096CD59C
+8FC16FBF9E4CE6A6EDCAC6AD8AF4C9385FA8C0CFA20F99BD2B310E570E83EB15
+2E9DCB78B520EAD76A6E56D11CAE5AA50615E6174339DE827F4D8BD77F4867EE
+F70F9DFFB9A6A8F9AC7ACB955F08DFC38B9ACF9B4EFD78ABA6ED119AF3349EE5
+75F2FEF9DE682968915FFAE6F99C6CB421E16EE8437773305AED5CE31799DBEA
+7AE44116B6DAC23B27BBF871C4B6A0E60A6726F6B93A5004765A007DE388A52E
+1C5325E1961A355655CFF420CDA913DBF7DA0585417D7CB40263294A1385F622
+51B43C7DA21211E5D172929DACD76D8A16071BCF9860CC9E3079A204E85DC625
+BE9E5BDDD337E2C7C872D6E388583AEA9D6EEABF96A7011CAF9847AF2C708898
+AE719E39CA4803338ADE9DC85938632530F279D580C91697DED573AA2B8C4EC6
+45121D96778C17F6F492F8F545C447B9B2A7EDC7D348CAB34D4AB6496BF5336B
+D74DDB4EFE72D6D77E7AA89E130FBEB0839D304C6BF5431855D2EC0ACDAEAC82
+1F9D3AEFAAF62FEA036BCBD57F9BAA47A5C7F37AC02BCE4010D7012CCB59DE42
+F6794EF1822BFC021E6384E17AEA34770C81229B884E1A7D0BE0F2DD2F694F1B
+C3AACAAC255D19FB836A5ACA6115A9C81F0DC5E9BE9521854931786D9DE227E8
+81F9A069C0FF016FD09D81619C66989D7AA74E99F6227DC5EE0B2DD6A26C922A
+C2E35FCB760A069FA27165C70B9BB92EA21C0535DF000DD30F2E0A83BE691D97
+F3AD3570B5387E2024FFF0725B41A422AFE58962D7560E00B328303C8DA6264A
+E922CD7F517C606DAB1C2F3EEC330788F9A8A56FA5FEAC805F8E22BED325D15A
+F073A911CC52E1AD0F3A21330DB480B7CEF23B6DA8066B3CB418580E94EB95A1
+7A5630089560153B73E18B2AB2DD325E4E5DD356C5F484C46E8C4A9FA2F61FC9
+5D526414337ABF1D5A879D0109B46F842D8FF1C759005827CE5471644EC02D86
+CAC99F9E41EE098043D40545E9F245C50DEAA8A2CB055D1106ECBD0A8B05C814
+256DA06DE6EE6DEC54645E82BBF8D7F0F475AA298E8D52A4159FB34EDEDC3507
+9F84A3143DA69D7D4887CCBAD3EC75D5F9604B4B4AC25C2F3089E3CF494BEEFC
+3CD5154BF86F66EE880414BBF37495A6A0983E80F23189407E438069F98338DD
+471CE3B27C98331BC1FE4A7B6F5FDC759FD1BDCE6635922101729E99C55D46A7
+1A2D1B25CAEA5A076F0BDF92EBC974DE3B71483CB672DFFA1E4F4C9A76BFA90C
+2C191657772688A92CEC107BD5E06B732DAFB85A059DBB34817A7966E3EEF114
+728522E56A8B23219A2C3D9CD62EB5DC833DAFCFA4D59E06C4ED9677C8EE3ABC
+BF1AE4719F451D28369629D3565EC0D6920112630F88FF5589A22B17A4C84242
+CBB6F6E4E20A864C6B23AFA9DCDD7BC9329C9150D08A4CAAA4DA9F5F87CEA251
+9D7973BFEDD95BE6DF1D38D3883ED213DD33922974264CA3E5515C5C1D1C9644
+9F7E94419C1B05EEFF29C13D387BD58C08FF5BB61A347062DB792CF9075B6F82
+5FE79AD1D00126FBE3388183235F78F4997500C57D2D24CAECAE848A973E449B
+0D1A6BC8B9435C8E6E2769EC8D6BBB65EA2CFFD4C5C8099BAAF395B2B4F369A1
+E48421DFDE616F0B802D725FD49CC097B583EB40FFF1A5E2187B040BD324A78C
+3ED77E6FD2EC68A81FC1F18D820AD3EB7F2D20169DBB0A08B89BA707682AC4B5
+DED58D1A9DA4D7F7F99AA53F5D48DC2AA94CF7CE5913279716A0BAF0E2C034CC
+3196675E218FBFFD2314403CFF8A3F031AA9B2C2FCADC120ABE333D52BF48E13
+D7034131AA9BB5EC6C2E9BE724019F4DB54674A9FB3E7232F4795EDF8CD1D10F
+4975FE02F86E6DBCD480EC70AEE84017B9CB01521E765787DFA0B1FB5ABDAF43
+92CA634C40F3F24A96350CB0E1E29828101C10F1843B9BEACF8EE664643F8BB7
+D79054CB20EFEAB337C29B3B02A58BA0646A403E1F158F3008A0B60D8447B4EA
+33843FF0108FF78BFE74547AE119C59E9E935A18FCCBAB08881AFF4DCB54A430
+9DEBFCB7475823155054817AB283BF65
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 1 /acute put
+dup 8 /breve 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 71 /G put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86413608B35BCA07C3C33A3187536822A810ECCE2932BF5E977C2144
+654351CE8F69FF63B22A9CB0C53A912051785E07C6A0D1C516E31E1C2D53B399
+826B83B39E8C24A9B763A4284FF5CF7AF2B9206ACD9BEB3526878D37BE19923D
+2338AAB25AC0011D8531F21738BF612863E45D63112EC8ECADB8E1098DFA6FF8
+E609A20A3854C5F29765AA4A8991351A6B0DA356D1BFF99F67A1FF06A56C29A4
+94B10524F25676CB2796D6CC154DCB4F6B2E00FDF751CB11F81ED5D9CDC231EB
+2FE491F188E478776D304FBCE5B99B7A5C38BA757A6696995B3842AA8543A2D2
+CF40CBA0AFF8B3C151043C0716FD0E948626E417B039286D19D9D15A3C8C473B
+578F3DF0DEF351E8DECDEB7A1DC6A7028A0A5D66DD97B05D154254294CB5B369
+ECE02826173984865F9D224BFD2F49162A581A912BDA17A93CDA0960657C4213
+8F0FD9D451DCFDAF0680837F7AED440186E7313A44DF19651B893AEED26E79AD
+58159094088D17FE99477ADC3F692700B419FEB6E2EB35E4392AE8912BFBD4DB
+66E44F21274887DAC2E945DF10CF983C841766D8F889396D35F5C8944598E11C
+F8080BDF117A01C457420C6F46D804B3C3433B351B65990C557CFE0591077626
+2275B171512334A1FCCF56765CB3FD1EC0CE2AC11FEB15F52417A50498376027
+EE17D98825AB184BAEF254208366F7B864E773DB92D23FDBF7A096E7E7834235
+2532BC074C478D28F6AAE5843C9499520D6FC339D9FDC05D1BBB1A55871851EB
+BAFB87330A37677F8D4654B8888816D76AA872DC57ECF9019EBB8483FFE5ED23
+4FBAB84D952D1CC205928444354A84A5DC08A4D60A416A16E13742296345D74A
+8B7C1BF206E380BEEF1611CB5A3DF549E9FFA86FB7CF0E06AA6760F03DA20151
+04FDF8351119BEEEF9DACF5F604C1D06AAE3B6530D756C7A28D387C26C68D826
+2016AAA631AE83EAEADD344FE376C89B34F36CCAEE253C12B062FA927DEFF046
+161193903D471F0F26044983AD29A2903F2C20A030C73B70F883ADCFA914FC41
+810EF93F6381C5AD7E55E119AD6C7A9CDCD462953BC0F64494B7CFAD5C2C677D
+013C58143D8721DDB9ABF18142DE077A41761E893A644247E3415CAEBBAA6A01
+7BEA82EB84A0F50BAB95A50B8F71EA12F6BC650A2B6E212A4A13C1842F8BEB39
+2FC871C43491D72F926DE3D9E7092CAF32CA8FD8E673B705E57C3DF3F8BAFBC5
+953A7E2A9EA36B50A5B69A6A9F4D0E384B158890CCB9EA30DF1C2862ACA5DDA9
+98140E159A569403375B9801DE5602D7B5520A9656523F8981C350B0C1BAF64D
+B9233B231C41ACB56B27A4540DB067ABB63FF873ADA6582A5EB5420AB5A74259
+316C6392EBDDD167669C06BB6F7F31E7B70866DE90AA3983F4818A18BD033150
+8FCB296F9162031AFEA1BF8DB710FB23F31E83F8C85D237EE763E3979D72B465
+9CCB274AEBB8B5BCB50029D400DB0560446469BE40EF05FCC5CCE9E08770A09C
+59CC260490AC60C0AC71964EE88E4B97C228B49915153142D9771CA24CD7BD28
+85442E68A95F4FB8E97C25761C0E34627B7F0008CA14E5BF11C34812CFB843B4
+BF30C84481739EA498322338D6F7C199C419DAAC1E3E0D7D0FD31352EAF9EAB9
+D9E16BA4BD2A9D2115D5A245255A53FD9F15AD223E888C2A472CDAF4F9A9A296
+4758D60844032E780B2808D11492318C4776466771C3A8379664C0BCA55EAA99
+9751A6A32F6370AFEE38C3BA08BD3994CB75E57C6598387A08A4A0EBBCB58970
+1F088EEA975881EDAE90C41B678C80794909F0B7AB6CF3800236E5B74F6F9177
+B71A3FA7544447EA637914BFD10F889BD1113910FD656A8649DAA1C05D6A3C84
+0B65621E9FF1D8519AB4A1EF690DC8CC6DD95540A4ACD0684D27F7199A9FA6E7
+C76AB84EE99DD6DC734AE3AC5EEE66A4EF73A10F51BC3C1AE8E284493DA9E16A
+3016B9250798BE0703313569EA06ADF6FAFBD083FEDB93B43DB4C1F4CF205D83
+92244A6B4BA8AE5FD60871C19FD23163E3F7C67FC4CD4B95236927926922157A
+ACD8227305A51E67932769FE7B19C1413E9E2DFD7D59ADA9202D55793CB8DA66
+301224FB3394B1018823AA4E50516E27A48BA9E8DD541CD4A12AAD799A4E8FA5
+DF3453EF883668B3B87E34A1C6087DE2268B1C181BFAFBD76B26D21B155CA6BB
+3CCD1F5E6DA5CB1A25174F534AC32A334540D83A81403D904111D7FEEF741EC2
+D7AFA5DA0FCD3E967B51553A8499CB0EBAE4C2FA50CE8DAF5D2C8BBDA1228A07
+8A797F05E9CEC10B018E69C81D764F817D29E5EEDCEF413C025EC356334EDF03
+E96CB941A479F980CF0B40F6A92EA493F1616B419189E5326960CE90F10A15A5
+B0CCC86AC74EA21C169447612F7971CD7554D4647B4E6886B2C0A9A0573FE3F0
+54FD89007143E12171A957B1B72CAB3D56566FF5C73E5B0D9984D1AB5BDC0C48
+3A1BB612F30929896E481110C0F6146049A5CE8DFEFCFF6A8A953642420C096A
+5A706E2F009726204B2911865720DFB64328A710DC11EA2AA9007942DD967888
+C2C01E91A7BE719D95C77E140B1AAA51CF76F54AF8EE6C83AA9BC41826C94248
+EC1A4C1185DC6BE65ADD5803766592B12C6434E8C5C90F1B78C8511B518C55E4
+38665ECA673658598DB22A8D9EF5B18C76D87F2CB06504789C6B09181C943A69
+B8208F9A46E45592E8C26BE0F28CB6D78005E82534BCF46682BB6954A95B9AF6
+30
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (rests.dvi)
+@start /Fa 202[56 3[56 49[{}2 99.6264 /CMBX12 rf /Fb
+141[44 1[44 44 1[44 8[44 1[44 41[44 1[44 44 44 44 44
+44 44 1[44 44 1[44 43[{}17 83.022 /CMTT10 rf /Fc 184[106
+4[0 0 0 0 0 50 50 51[0 6[0 0{}11 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4002 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fc(G)-136 179 y Fb(r0)p
+479 98 4 135 v 117 -4 a Fc(=)591 179 y Fb(r2)591 29 y
+Fc(<)1025 179 y Fb(r4)1025 96 y Fc(>)1332 179 y Fb(r8)1332
+96 y Fc(?)1550 179 y Fb(r1)1550 96 y Fc(@)1703 179 y
+Fb(r3)1703 96 y Fc(A)1811 179 y Fb(r6)1811 96 y Fc(B)1888
+229 y Fb(rb)p 1966 98 V 2077 179 a(r4+3)2077 46 y Fc(>)2385
+262 y Fb(r8-6)2385 195 y Fc(?)2602 179 y Fb(r)2602 96
+y Fc(?)2819 179 y Fb(r)2819 13 y Fc(\000)2819 96 y(?)3085
+179 y Fb(.r)3085 96 y Fc(@)3238 179 y Fb(rdd)3238 13
+y Fc(\001)3238 96 y(?)3526 179 y Fb(r3)3526 96 y Fc(A)p
+3635 98 V 3638 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 262 a -364 519 4002 4 v -364
+552 V -364 585 V -364 618 V -364 652 V -364 617 a Fc(G)-141
+733 y Fb(rp)p 443 652 4 135 v 80 550 a Fc(=)550 733 y
+Fb(rpo)550 550 y Fc(=)p 1134 652 V 1241 733 a Fb(rm15)p
+1825 652 V 1231 608 5 50 v 1236 592 491 17 v 1425 500
+a Fa(15)p 1727 608 5 50 v 1932 720 4 104 v 1933 617 a
+Fc(\010)1933 600 y(\000)p 1970 567 4 110 v 1932 567 a(\010\000)2438
+766 y Fb(r4)2438 716 y Fc(>)2438 849 y Fb(r4)2438 617
+y Fc(>)p 2730 652 4 135 v 2836 720 4 104 v 399 w(\010)2837
+600 y(\000)p 2875 567 4 110 v -33 x(\010\000)3342 733
+y Fb(r4+0)3342 650 y Fc(>)3342 816 y Fb(r4b)p 3635 652
+4 135 v 3638 816 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3638 816 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps
index 6f1007568a6..77e730766f4 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs1.eps
@@ -1,621 +1,621 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: slurs1.dvi
-%%CreationDate: Sun Feb 16 23:12:52 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 732 312 782
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE slurs1
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.16:2312
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 71 /G put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
-46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
-4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
-27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
-66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
-24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
-451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
-544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
-6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
-d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
-e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
-4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
-68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
-06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
-a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
-42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
-fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
-198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
-6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
-e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
-503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/slurs1.dvi) @start
-%DVIPSBitmapFont: Fa cmtt10 10 5
-/Fa 5 105 df<13E01201EA0380EA0700120E5AA25AA25AA35AA91270A37EA27EA27E7E
-EA0380EA01E012000B217A9C16>40 D<12C07E12707E7E7EA27EA2EA0380A3EA01C0A9EA
-0380A3EA0700A2120EA25A5A5A5A5A0A217B9C16>I<387F07F038FF8FF8387F07F0381C
-01C0A7EA1FFFA3EA1C01A9387F07F038FF8FF8387F07F01519809816>72
-D<131E137F3801FF8013C7380383001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C5A11
-197F9816>102 D<12FCA3121CA41378EA1DFCEA1FFE130FEA1E07121CAA38FF8FE0139F
-138F13197F9816>104 D E
-%EndDVIPSBitmapFont
-/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fb(G)-77 61 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -77 61 a -89 148
-a Fa(\()22 b(\))p -70 48 2 59 v -89 48 a Fb(\007)15 31
-y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 15 31 a 15 31 a
- end
- 15 31 a 24 31 2 59 v -10 w Fb(\007)p
-99 49 2 68 v 146 61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 146 61 a 134 148 a Fa(\(f)f(\))p
-153 48 2 59 v 134 48 a Fb(\007)238 31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 238 31 a 238
-31 a
- end
- 238 31 a 247 31 2 59 v -10 w Fb(\007)p 322 49 2
-68 v 369 61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 369 61 a 357 148 a Fa(\(h)g(\))p 376 48
-2 59 v 357 48 a Fb(\007)461 31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 461 31 a 461 31 a
- end
- 461
-31 a 470 31 2 59 v -10 w Fb(\007)p 545 49 2 68 v 592
-61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 592 61 a 580 148 a Fa(\(hh)g(\))p 599 48 2 59 v
-580 48 a Fb(\007)684 31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 684 31 a 684 31 a
- end
- 684 31 a
-693 31 2 59 v -10 w Fb(\007)p 768 49 2 68 v 815 61 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
-
-815 61 a 803 148 a Fa(\(HH)g(\))p 822 48 2 59 v 803 48
-a Fb(\007)907 31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 907 31 a 907 31 a
- end
- 907 31 a 916 31
-2 59 v -10 w Fb(\007)p 991 49 2 68 v 993 131 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 993 131
-a eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: slurs1.dvi
+%%CreationDate: Sun Feb 16 23:12:52 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 732 312 782
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE slurs1
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.16:2312
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 71 /G put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
+46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
+4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
+27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
+66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
+24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
+451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
+544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
+6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
+d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
+e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
+4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
+68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
+06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
+a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
+42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
+fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
+198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
+6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
+e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
+503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/slurs1.dvi) @start
+%DVIPSBitmapFont: Fa cmtt10 10 5
+/Fa 5 105 df<13E01201EA0380EA0700120E5AA25AA25AA35AA91270A37EA27EA27E7E
+EA0380EA01E012000B217A9C16>40 D<12C07E12707E7E7EA27EA2EA0380A3EA01C0A9EA
+0380A3EA0700A2120EA25A5A5A5A5A0A217B9C16>I<387F07F038FF8FF8387F07F0381C
+01C0A7EA1FFFA3EA1C01A9387F07F038FF8FF8387F07F01519809816>72
+D<131E137F3801FF8013C7380383001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C5A11
+197F9816>102 D<12FCA3121CA41378EA1DFCEA1FFE130FEA1E07121CAA38FF8FE0139F
+138F13197F9816>104 D E
+%EndDVIPSBitmapFont
+/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fb(G)-77 61 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -77 61 a -89 148
+a Fa(\()22 b(\))p -70 48 2 59 v -89 48 a Fb(\007)15 31
+y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 15 31 a 15 31 a
+ end
+ 15 31 a 24 31 2 59 v -10 w Fb(\007)p
+99 49 2 68 v 146 61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 146 61 a 134 148 a Fa(\(f)f(\))p
+153 48 2 59 v 134 48 a Fb(\007)238 31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 238 31 a 238
+31 a
+ end
+ 238 31 a 247 31 2 59 v -10 w Fb(\007)p 322 49 2
+68 v 369 61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 369 61 a 357 148 a Fa(\(h)g(\))p 376 48
+2 59 v 357 48 a Fb(\007)461 31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 461 31 a 461 31 a
+ end
+ 461
+31 a 470 31 2 59 v -10 w Fb(\007)p 545 49 2 68 v 592
+61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 592 61 a 580 148 a Fa(\(hh)g(\))p 599 48 2 59 v
+580 48 a Fb(\007)684 31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 684 31 a 684 31 a
+ end
+ 684 31 a
+693 31 2 59 v -10 w Fb(\007)p 768 49 2 68 v 815 61 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (-3.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+
+815 61 a 803 148 a Fa(\(HH)g(\))p 822 48 2 59 v 803 48
+a Fb(\007)907 31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 907 31 a 907 31 a
+ end
+ 907 31 a 916 31
+2 59 v -10 w Fb(\007)p 991 49 2 68 v 993 131 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 993 131
+a eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs2.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs2.eps
index b653197bb78..fe0586300d4 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs2.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/slurs2.eps
@@ -1,619 +1,619 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
-%%Title: slurs2.dvi
-%%CreationDate: Sun Feb 16 23:10:06 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 736 312 782
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE slurs2
-%+ -pj:C:\temp\dv1.mfj
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2003.02.16:2310
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
-/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
- /version (001.000) readonly def
- /FullName (TeXMUSIX16-Regular) readonly def
- /FamilyName (TeXMUSIX16) readonly def
- /Weight (Regular) readonly def
- /ItalicAngle 0 def
- /isFixedPitch false def
- /UnderlinePosition -100 def
- /UnderlineThickness 50 def
- /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
- /em 1000 def
- /ascent 701 def
- /descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-dup 7 /caron put
-dup 71 /G put
- readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueXX 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
-456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
-5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
-c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
-3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
-a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
-fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
-f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
-8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
-131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
-09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
-0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
-bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
-0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
-7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
-92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
-1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
-af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
-1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
-3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
-34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
-6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
-8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
-ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
-1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
-d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
-46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
-4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
-27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
-66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
-24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
-451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
-544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
-6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
-d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
-e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
-4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
-68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
-06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
-a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
-42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
-fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
-198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
-6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
-e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
-503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 300 300
-(/MUSIC/PMX/DOC/CCN/PMX/slurs2.dvi) @start
-%DVIPSBitmapFont: Fa cmtt10 10 4
-/Fa 4 116 df<387F07F038FF8FF8387F07F0381C01C0A7EA1FFFA3EA1C01A9387F07F0
-38FF8FF8387F07F01519809816>72 D<131E137F3801FF8013C7380383001380A2EA7FFF
-B5FCA2EA0380ACEA7FFC487E6C5A11197F9816>102 D<12FCA3121CA41378EA1DFCEA1F
-FE130FEA1E07121CAA38FF8FE0139F138F13197F9816>104 D<EA0FECEA3FFC127FEAF0
-3CEAE01CA2EA7000EA7F80EA1FF0EA07F8EA003CEA600E12E012F0EAF81EEAFFFC13F8EA
-C7E00F127D9116>115 D E
-%EndDVIPSBitmapFont
-/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
-V -182 49 V -182 31 a Fb(G)-77 45 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- -77 45 a -89 139
-a Fa(s)22 b(s)p -70 31 2 59 v -89 31 a Fb(\007)15 31
-y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 15 31 a 15 31 a
- end
- 15 31 a 24 31 2 59 v -10 w Fb(\007)p
-99 49 2 68 v 146 45 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 146 45 a 134 139 a Fa(sf)f(s)p
-153 31 2 59 v 134 31 a Fb(\007)238 31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 238 31 a 238
-31 a
- end
- 238 31 a 247 31 2 59 v -10 w Fb(\007)p 322 49 2
-68 v 369 45 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 369 45 a 357 139 a Fa(sh)g(s)p 376 31 2
-59 v 357 31 a Fb(\007)461 31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 461 31 a 461 31 a
- end
- 461
-31 a 470 31 2 59 v -10 w Fb(\007)p 545 49 2 68 v 592
-45 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 592 45 a 580 139 a Fa(shh)g(s)p 599 31 2 59 v 580
-31 a Fb(\007)684 31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 684 31 a 684 31 a
- end
- 684 31 a 693
-31 2 59 v -10 w Fb(\007)p 768 49 2 68 v 815 45 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 815
-45 a 803 139 a Fa(sHH)g(s)p 822 31 2 59 v 803 31 a Fb(\007)907
-31 y
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 907 31 a 907 31 a
- end
- 907 31 a 916 31 2 59 v -10 w Fb(\007)p
-991 49 2 68 v 993 131 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 993 131 a eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips 5.83 Copyright 1998 Radical Eye Software
+%%Title: slurs2.dvi
+%%CreationDate: Sun Feb 16 23:10:06 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 736 312 782
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\$USER\EMTEX\EMTEX\BIN\dvips.EXE slurs2
+%+ -pj:C:\temp\dv1.mfj
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 2003.02.16:2310
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueXX known{dup
+/UniqueXX get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+ /version (001.000) readonly def
+ /FullName (TeXMUSIX16-Regular) readonly def
+ /FamilyName (TeXMUSIX16) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+ /Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+ /em 1000 def
+ /ascent 701 def
+ /descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+dup 7 /caron put
+dup 71 /G put
+ readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueXX 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab28edc112ee8ce6c67360000898a5d5b75da2055865c7bd38a
+456a69d3c9d0be0da363e5b26b9625d2fa4c0054133e3f94d3cdb90d0c37e7bc
+5fc93a392ace777e744194df778db50430ae4451a28dbf72d900cbc81238e101
+c25542ec649c1dcace718c0482cfbe3ffbf119df3527ccfdc1a783a99e3a919f
+3be0300feec74f907cfc3e807e93c4fa807d57eade777ae018d10489d0edc2e8
+a01355864e475e4abe67d3b38ddcb829bb7687fc971a8e4409cd384451f4a1b9
+fa26f07c4005d3b4adf0957531f84a9a63596d4a70b4b63b0c56ab62d87cebcc
+f6521c5e566cb27f53c0ddbc89d30a41bd3b894a4169bec2bbde7144eea86312
+8b515066e239b5c97a0c8310273525f019bc4fe7f82816867fffe9d445d87b73
+131a59b7ff1651691169d7875c499c56617e467a02471a829950ec0511e0f7aa
+09e0018e650a4843339de6082058baad4c09486be048a36bb6dc84751b316f74
+0d2478c22907a80cf78f436bbccb5d26b4dd54095b398e746434340c656b2234
+bd9bd17bae1731cc701f72e7a5dd454f545090aab871d517f31a7a4e8278c891
+0cb9dff44d2b231c978d9812a39fb85bd9355ccf92f0aaa3d7c5d614a137d4e0
+7b96bd585984a70b4257893c0dea2b192c0fcbd5960a8ad49df4027192f7055e
+92c923429185fc032f6f1f848cabd9199ee3688a4bf75da3a43f163c9970e175
+1320ef05a54b7e5932e608dff73985c9fdac55efa19561c81b936332ecfd64b2
+af92d7c624c00da5e499f57831309f3ccf2b89c8c92db8bc3bdb5029139bc473
+1ce27063d1f687a43fc4692e11a27f69e7eace52e21d4619a505fd38e8e2afd8
+3c400c49cfd12c8f5e8f5864fbc27194d4f872aa622928e930fad12a192e85bd
+34cac262a733bfe167c2f16fc3bd7953aac7fdd3f4837528a1e4f90ebe4a585b
+6f26627fb9fceeedeba8db425252c052698a7b3d2174b1a09188847b21a8be46
+8365580df3e5b7e6efda4f4ac548bef8ac77069d6422c3a70ea9c84394ae152e
+ed2468b5becce84f57deb5f09d18ec72724d43a7884d97d71cbb271c21695778
+1d7b097a7ccabd669198e8686c6b6ce254b80822bc06afb61ff9f7faac1ef7d5
+d957e0330ae8c2da20f92782a38035445d474093f766c24c5313c8269b552f59
+46defaa7cff5565d8d532c284799723d41ace1e6098ebde8bec237eb1e25b986
+4fefafbb9fd4f5945b94afa052c23b7e023d36e353cab0f5ae26f1603f207abb
+27b75db8d49cec9f91a24d2c9102be3125e5731d080117b87572ee5937499568
+66acb8003649e0506ad1c706bfcba57819046893f5a1853ae36a13e4e32a0cfb
+24a64cb984b29a4fa2b7a4318774bf15b184929e985df6096af5ecfe240ef1d1
+451641876fb92999d45254627de73c12eaa146815e7da76fac8a61c3ee1ee342
+544828a9fa391ac5eba0d8dc4b2f346d8546a6b7fae0348857f2b759d98f5be8
+6b0a6efe9d65a36bd3329a6ae97b87fffaf353698939b8ef2137381a06214522
+d512ce8060f157fe1ff39e0f206430988080053509262695a03e14a1a3c16548
+e481edae2b3cb313ce693acdcd7391fe8564d467193cc671f473d3d698f3b6c5
+4fa54ae29c4d5cdee894f10253001fa20eb28d04d484fb214fc98836008b96d4
+68fce98605e98e3484af1676af6892e7976ad47230cbc2ec1317a1a063e93a86
+06ed021ee92b2acb9dc66a3ed0d2c6931dbf803e99de4b6a5e5d5122fc9e3311
+a7d74c6022f1e9c3867b761be445f10c7e0e8bc53e741e4eed7dad89005bd20d
+42818f1f0c18738b47520b2bc23ee693516f4bddc8c00062219b0a65a9cae139
+fe89b92664803946ce736bdf8b2f4a52768f348fe415890537180f21ef048afb
+198aaeb28e7009c3a3ddbf27d0d2078a354536795f6783f803312a3202a59d4b
+6353634df3f36cb0b48282e5896d17ddf8d8495cd949e59c09bea3de4c4c5c2e
+e1fe80c10e798796bbcb3807e05828fff5bf5d05f8edfe942b2129c15a786cb1
+503158a69a36bcc2b5f5b4f5449490b245a0693550ec99a9c876357380e7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 300 300
+(/MUSIC/PMX/DOC/CCN/PMX/slurs2.dvi) @start
+%DVIPSBitmapFont: Fa cmtt10 10 4
+/Fa 4 116 df<387F07F038FF8FF8387F07F0381C01C0A7EA1FFFA3EA1C01A9387F07F0
+38FF8FF8387F07F01519809816>72 D<131E137F3801FF8013C7380383001380A2EA7FFF
+B5FCA2EA0380ACEA7FFC487E6C5A11197F9816>102 D<12FCA3121CA41378EA1DFCEA1F
+FE130FEA1E07121CAA38FF8FE0139F138F13197F9816>104 D<EA0FECEA3FFC127FEAF0
+3CEAE01CA2EA7000EA7F80EA1FF0EA07F8EA003CEA600E12E012F0EAF81EEAFFFC13F8EA
+C7E00F127D9116>115 D E
+%EndDVIPSBitmapFont
+/Fb 184[53 63[0 7[{}2 66.4176 /TeXMUSIX16-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop -182 -18 1175 2 v -182 -1 V -182 16 V -182 32
+V -182 49 V -182 31 a Fb(G)-77 45 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ -77 45 a -89 139
+a Fa(s)22 b(s)p -70 31 2 59 v -89 31 a Fb(\007)15 31
+y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 15 31 a 15 31 a
+ end
+ 15 31 a 24 31 2 59 v -10 w Fb(\007)p
+99 49 2 68 v 146 45 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 146 45 a 134 139 a Fa(sf)f(s)p
+153 31 2 59 v 134 31 a Fb(\007)238 31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 0.7 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 238 31 a 238
+31 a
+ end
+ 238 31 a 247 31 2 59 v -10 w Fb(\007)p 322 49 2
+68 v 369 45 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 369 45 a 357 139 a Fa(sh)g(s)p 376 31 2
+59 v 357 31 a Fb(\007)461 31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 461 31 a 461 31 a
+ end
+ 461
+31 a 470 31 2 59 v -10 w Fb(\007)p 545 49 2 68 v 592
+45 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 592 45 a 580 139 a Fa(shh)g(s)p 599 31 2 59 v 580
+31 a Fb(\007)684 31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1.6 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 684 31 a 684 31 a
+ end
+ 684 31 a 693
+31 2 59 v -10 w Fb(\007)p 768 49 2 68 v 815 45 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 815
+45 a 803 139 a Fa(sHH)g(s)p 822 31 2 59 v 803 31 a Fb(\007)907
+31 y
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.8 S0dir M 0.13 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 907 31 a 907 31 a
+ end
+ 907 31 a 916 31 2 59 v -10 w Fb(\007)p
+991 49 2 68 v 993 131 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 993 131 a eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose.eps
index a62b86eb439..02f707df2ec 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose.eps
@@ -1,596 +1,596 @@
-%% LaTeX2e file `eps/transpose.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: transpose.dvi
-%%CreationDate: Sun Sep 28 16:14:13 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 751 483 786
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1614
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 9 /macron put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8642C5325F595BB0FB83A41C15903513F9F4663BE10FCBD6A56F275C
-F0E38D7D0FCCB38E38C7FC7539FA80ACEF2B3338367B5CBC3016C81773A1C5FA
-41CA0674CC331F6F271DF53B80EAEA155F8E8C9194E5BD8A66DBE4DA1474B5E6
-84B3B6C374B061DF1EC849FC2A45C202590B20D177148A25A6069BAC7AAD6173
-63626E3D56AA8FB8241742E5CABE7D63ADA1C9B76F5E05B484D51A67DC9F945C
-17D11C58C18C4D84B7DD269BDC7F08929B06A339ECEE158BAC7E718612F1201C
-5FBF15DDFA81710B88D25C646D3DF292A0A1F921BAF0ED78D89FF8ACCD4DC277
-84500A4154697E9DC2A081D3A37D051A63342ED170CF8420CFB8E5CB011023F8
-50A880905195127A07566BD3000B584B8B23F39F8F13ABAC4CED7757185C9A03
-824185AEEC9E6392EF2F57AF56C980DC6DDBA829430B20B0C532662182AF7ACB
-605EDEB15159EE1139CD3E8CD0553CC25008CDC0A7F22A7145CC9906C2495E5E
-C127397FCE2A679744A52077CB000537EE1EEA4E83A053F5D737963BD39F5F2C
-CB5AF2649288EEAEF53E98B68E251C054BB929A148EAF048144D66F5AA7EDC1F
-D6FE4C6556452AD272C8B5970953F7BB522F6F3C3909EA1CA7EC249A1A95FFA7
-69EAEBC4897EB3F2034D4CBB4B61234C29EF38669ADBB6D41CE265787FDE4734
-88B965B3508A87E58CBEB28792952C2E8AEE9019A218BDD14666416CA96189C9
-883C11BACCD7082FD2AED5E0B57421B9B56E0B2E056B558A313AB9EB6E491145
-1B89E88FB3D5BCBFDB3A3EA78074E4BC31BB0268E8BC831AF28AE250B3D2C784
-3720A72F015936755E3ED635B54FDDF464211A8DB342D51617A0D3E26EA46AB5
-77A20E043F187A778643B1AA522C73BCF1EE642B4A0693D1C43C4C522BD0FEE0
-03135E00AE3438825157A23F25EC30CB164209D14F6C5046909160C3D51C2E27
-AEBB9FBCA1C17E9E05D1146F71CB51F7BFB3091466A0043F46D11F76A4D9AB4C
-BA7FB4F83D309D0BF6351CB453F2F5B6EE098766218D2BE6822CDD303017D751
-23BA44915B5D83EDFBEC7E145B51FB6A3B367BCE57EA8265A458D438D83A7CE5
-BEA124DA6016359B20656043AC6A1D7560E51E8485E6046E4DFF63804B7DA253
-4FAAB413CEDF35603FA20684F252B1F843B214B1544F8BCD0B11D3E94C9BEC1A
-84E366EE102A76F862B601F52DF138F8EC84EAAA78F156B4DBA0783123FB41B5
-98CDD9DDBA68371459A34726C31B088CDA1963CE64B95D267B43F2F3F729E3F1
-7CBD778249014D506C17B2D8B14FF15A16383002F353E213BEF61B1BCA3E09A8
-8200CC34358C1F4A52735A7C58114793C5CD0352229CDB391502B30F43A06058
-7A99731010CB4781BF921BC7464EE5ED83F9049508959E0388FB45E156F3700A
-70F79AFFD116D7F6AEE85CC7AA51D7AB13AB2516EDAE46C74D684EAAFBB5B478
-2350982B431330458A126159EB40C417FE11B74A36C118FB5DC4A7F13DC9FB09
-B2BD5607D86353BE4821BE1D64F8E425AC47FBA2DAC73E86E7F2CFD618BD7022
-44292B3DE63D1CD6A0EB3A7A2BBA967817993C173D78CA388F75475B568B6DC6
-CCD9AAF5A953BC3683F7F046EE2D2C34C69BC199924FCD6F809B9460E389CAAF
-95C08CC76DCDA1EEEAE3890F6E5858653C88682E701FD9404C18DC6DEA148690
-299A476308BDFAFC90CF100A8734D481B4903DA0E11B31B17B1D20DA016BE9CF
-A875843EEC7B5DA65F453070E350BEA0470BCD9C4906F01F6A8D8294B159854A
-9A483238A1E6B1255E3F4DD6D97F7000E174631274C9A4B9511EBD13E6A5D566
-FA6520BAA52E3A7156D607089C244B0DED3AA42BB94ADFA5517CDFFA2B1422E0
-B3E0F55542FACA15DB1155EC1128ED4E0C8DCCE4E9B9CDC1B4F27BDA528D2D2C
-BE076A20870C372ED22719B9A87A83FD47656BDA3E43901AF1AA52E5C504E141
-F000D19DF5CBFEA84CE9970505C0FD8342B815CEF109E591DDB12B8A30E95B7A
-062EDDE8791553EF31AE04F0505B89237716961FAC96D5668BD831F12571
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (transpose.dvi)
-@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 1[40
-40[0 1[0 7[{}10 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
-10 64 V 10 98 V 10 63 a Fa(G)119 29 y(2)p 314 112 4 108
-v 276 112 a(\007)p 540 96 4 103 v 502 96 a(\007)541 18
-y(\203)569 17 y(\203)314 5 y(\204)436 -2 y(\204)p 700
-79 4 95 v 662 79 a(\007)p 860 63 4 150 v 822 63 a(\007)p
-1019 46 4 141 v 981 46 a(\007)1101 29 y(4)p 1179 29 4
-133 v(\007)1261 13 y(4)860 -62 y(\204)1075 -73 y(\204)860
--87 y(\204)1075 -98 y(\204)p 1339 13 4 124 v 1301 13
-a(\007)p 1460 104 4 108 v 1461 -4 a(\007)1647 13 y(6)p
-1687 115 4 103 v 1 w(\007)1807 29 y(6)1688 91 y(\303)1717
-92 y(\303)1460 104 y(\304)1585 110 y(\304)p 1846 123
-4 95 v 1847 29 a(\007)p 2044 46 4 117 v 2006 46 a(\007)p
-2204 63 4 125 v 2166 63 a(\007)p 2364 79 4 134 v 2326
-79 a(\007)2044 -45 y(\304)2260 -35 y(\304)2044 -70 y(\304)2260
--59 y(\304)p 2523 96 4 143 v 2485 96 a(\007)p 2645 98
-4 135 v 2761 112 a(\011)p 3402 98 V 3405 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262
-a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/transpose.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: transpose.dvi
+%%CreationDate: Sun Sep 28 16:14:13 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 751 483 786
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1614
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 9 /macron put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8642C5325F595BB0FB83A41C15903513F9F4663BE10FCBD6A56F275C
+F0E38D7D0FCCB38E38C7FC7539FA80ACEF2B3338367B5CBC3016C81773A1C5FA
+41CA0674CC331F6F271DF53B80EAEA155F8E8C9194E5BD8A66DBE4DA1474B5E6
+84B3B6C374B061DF1EC849FC2A45C202590B20D177148A25A6069BAC7AAD6173
+63626E3D56AA8FB8241742E5CABE7D63ADA1C9B76F5E05B484D51A67DC9F945C
+17D11C58C18C4D84B7DD269BDC7F08929B06A339ECEE158BAC7E718612F1201C
+5FBF15DDFA81710B88D25C646D3DF292A0A1F921BAF0ED78D89FF8ACCD4DC277
+84500A4154697E9DC2A081D3A37D051A63342ED170CF8420CFB8E5CB011023F8
+50A880905195127A07566BD3000B584B8B23F39F8F13ABAC4CED7757185C9A03
+824185AEEC9E6392EF2F57AF56C980DC6DDBA829430B20B0C532662182AF7ACB
+605EDEB15159EE1139CD3E8CD0553CC25008CDC0A7F22A7145CC9906C2495E5E
+C127397FCE2A679744A52077CB000537EE1EEA4E83A053F5D737963BD39F5F2C
+CB5AF2649288EEAEF53E98B68E251C054BB929A148EAF048144D66F5AA7EDC1F
+D6FE4C6556452AD272C8B5970953F7BB522F6F3C3909EA1CA7EC249A1A95FFA7
+69EAEBC4897EB3F2034D4CBB4B61234C29EF38669ADBB6D41CE265787FDE4734
+88B965B3508A87E58CBEB28792952C2E8AEE9019A218BDD14666416CA96189C9
+883C11BACCD7082FD2AED5E0B57421B9B56E0B2E056B558A313AB9EB6E491145
+1B89E88FB3D5BCBFDB3A3EA78074E4BC31BB0268E8BC831AF28AE250B3D2C784
+3720A72F015936755E3ED635B54FDDF464211A8DB342D51617A0D3E26EA46AB5
+77A20E043F187A778643B1AA522C73BCF1EE642B4A0693D1C43C4C522BD0FEE0
+03135E00AE3438825157A23F25EC30CB164209D14F6C5046909160C3D51C2E27
+AEBB9FBCA1C17E9E05D1146F71CB51F7BFB3091466A0043F46D11F76A4D9AB4C
+BA7FB4F83D309D0BF6351CB453F2F5B6EE098766218D2BE6822CDD303017D751
+23BA44915B5D83EDFBEC7E145B51FB6A3B367BCE57EA8265A458D438D83A7CE5
+BEA124DA6016359B20656043AC6A1D7560E51E8485E6046E4DFF63804B7DA253
+4FAAB413CEDF35603FA20684F252B1F843B214B1544F8BCD0B11D3E94C9BEC1A
+84E366EE102A76F862B601F52DF138F8EC84EAAA78F156B4DBA0783123FB41B5
+98CDD9DDBA68371459A34726C31B088CDA1963CE64B95D267B43F2F3F729E3F1
+7CBD778249014D506C17B2D8B14FF15A16383002F353E213BEF61B1BCA3E09A8
+8200CC34358C1F4A52735A7C58114793C5CD0352229CDB391502B30F43A06058
+7A99731010CB4781BF921BC7464EE5ED83F9049508959E0388FB45E156F3700A
+70F79AFFD116D7F6AEE85CC7AA51D7AB13AB2516EDAE46C74D684EAAFBB5B478
+2350982B431330458A126159EB40C417FE11B74A36C118FB5DC4A7F13DC9FB09
+B2BD5607D86353BE4821BE1D64F8E425AC47FBA2DAC73E86E7F2CFD618BD7022
+44292B3DE63D1CD6A0EB3A7A2BBA967817993C173D78CA388F75475B568B6DC6
+CCD9AAF5A953BC3683F7F046EE2D2C34C69BC199924FCD6F809B9460E389CAAF
+95C08CC76DCDA1EEEAE3890F6E5858653C88682E701FD9404C18DC6DEA148690
+299A476308BDFAFC90CF100A8734D481B4903DA0E11B31B17B1D20DA016BE9CF
+A875843EEC7B5DA65F453070E350BEA0470BCD9C4906F01F6A8D8294B159854A
+9A483238A1E6B1255E3F4DD6D97F7000E174631274C9A4B9511EBD13E6A5D566
+FA6520BAA52E3A7156D607089C244B0DED3AA42BB94ADFA5517CDFFA2B1422E0
+B3E0F55542FACA15DB1155EC1128ED4E0C8DCCE4E9B9CDC1B4F27BDA528D2D2C
+BE076A20870C372ED22719B9A87A83FD47656BDA3E43901AF1AA52E5C504E141
+F000D19DF5CBFEA84CE9970505C0FD8342B815CEF109E591DDB12B8A30E95B7A
+062EDDE8791553EF31AE04F0505B89237716961FAC96D5668BD831F12571
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (transpose.dvi)
+@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 1[40
+40[0 1[0 7[{}10 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
+10 64 V 10 98 V 10 63 a Fa(G)119 29 y(2)p 314 112 4 108
+v 276 112 a(\007)p 540 96 4 103 v 502 96 a(\007)541 18
+y(\203)569 17 y(\203)314 5 y(\204)436 -2 y(\204)p 700
+79 4 95 v 662 79 a(\007)p 860 63 4 150 v 822 63 a(\007)p
+1019 46 4 141 v 981 46 a(\007)1101 29 y(4)p 1179 29 4
+133 v(\007)1261 13 y(4)860 -62 y(\204)1075 -73 y(\204)860
+-87 y(\204)1075 -98 y(\204)p 1339 13 4 124 v 1301 13
+a(\007)p 1460 104 4 108 v 1461 -4 a(\007)1647 13 y(6)p
+1687 115 4 103 v 1 w(\007)1807 29 y(6)1688 91 y(\303)1717
+92 y(\303)1460 104 y(\304)1585 110 y(\304)p 1846 123
+4 95 v 1847 29 a(\007)p 2044 46 4 117 v 2006 46 a(\007)p
+2204 63 4 125 v 2166 63 a(\007)p 2364 79 4 134 v 2326
+79 a(\007)2044 -45 y(\304)2260 -35 y(\304)2044 -70 y(\304)2260
+-59 y(\304)p 2523 96 4 143 v 2485 96 a(\007)p 2645 98
+4 135 v 2761 112 a(\011)p 3402 98 V 3405 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 262
+a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose1.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose1.eps
index 4eebea36107..9d7279e2e04 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose1.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose1.eps
@@ -1,592 +1,592 @@
-%% LaTeX2e file `eps/transpose1.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: transpose1.dvi
-%%CreationDate: Sun Sep 28 16:03:22 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 749 483 783
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose1.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1603
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 9 /macron put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
-D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
-470318F6BA4A95928FE7E588F2D807AACF0ABAB5E813271D0CE7D0E54804C34C
-A97C307FB762C772440658DA9925EA43F6909318664645EA524B9A3E57246E89
-8354B199397EB6B323D95CEE756CBD8DEB4222ED6E8B0A277EB6D6D00C2838C7
-ADD5315037274AF4F376DB3A5B6C756DC27DC5AD50E986ECFA461104DF5CEA97
-60327281E533C24693E0C044EC3B1F9F297AE861D3542AA43722748E3A06E515
-77AF46466E865F05E778262E1556A7ACD4F77AD129D5303699696B9A8FC21ACC
-2F1EF77D2BF58B1991EDC7FF4E073F3C56605504E99FD3F2C886A43C52BFEC46
-242B345F9A00EC93F78175DDA8C6A63E90F2CA8AE5270063AF26E5A653D50EC0
-282BFA9F93B29650DCEFC01FA61C7782DBFA33456375D87FF1A8E6C30E34C8EF
-D4C0446FC6DE929A3E1F1D6394179546F07B9EEF4AD02EDB9D6D41DD5EE3EB80
-67CF9E9C3F3729EDB3BD2EA25737BD012D4F38A82E1107AC464EF9AF4D5BEF73
-338564DA29013B35842A80F3903111CF12292A4EC4D34045DAD6394624B653D6
-B7843E77B8C1627618497DC0E2FAE7DC155BA119806809C9EA5C465A2452FE0C
-B454C33973FA61BD070B67B9406E685119D3987A0A9AFC3CC336D3EC3B07E5F2
-91025E114B22C82BE9E6F3F21EF626B093C9B5B50CC2D59F93458DD0CB97E342
-F78AFDC66DF6308DBFF6753815BBBF5D24400C8084704668D9FC68AFEB1A188D
-D9891DA29F0F339FE246E38708A22B71CB74D6B179D68A33B56F53CF38D373BF
-39887E354ED6E8CA6DB1BFF1F57FB1AAF04CC1DD218C505FA31E653EFF402DF0
-5638D7ABDD8000AD3FFEECF8B54CF607C7AC945540E4E9F08B63DCF955001189
-62219BBA86B934CC8FC2FD1D0C12772185525E863FAF191CC6DD1B193EB9A7F7
-511E8B44901386887E55686A8DC9218F694C0BAF6441A13FF32FE07F57F21642
-AFFA2888A2DA1F54E01A7AC50BE1447831A57614C7A6450B304A3F01FFFF33CF
-B5B440D30CEF8B91D24824A5C6724F94DB28359FB4B0D79B5C1F76E77AA15A9C
-269F40A58351920821FC597594812B321C6C7B4AE14E06FE76EC9F845B16D00C
-F63930A7F59CF10FE6DCD0632B0C3B3C32EF7DFCB27941CAE32227E470B36059
-E1E8DD3B591639ADE2710561A8E784661B1309F28FCC3DA591F8629F10C6C346
-62378840CE4E953B18BD7B93C1C0BEA1BB2BA4AA7B532D2881D7A22ADE30295A
-BD01FE117C648DB4C95742D2849545951194BD042811121F98F8F0D19CB84DA4
-3CF43457E041B6723CB44797624AB5BC1097B3ABD94D747D2971970AD547AEBF
-4826A3E7CBFE6F4128A5A251E5E4D9771C3B3FC87234CB5D06E38200E8CAA304
-FEE0DFB1D1C0E0950942A6CE8285808AEADA16BDD1595EB69B3D984FA9D53176
-B7E4D53472C70FC6A1EF306619A4A4D02E2A9F1EA0DD0C07DF124CF60A4034D6
-16C49A0B8A624029D398DF59189F238265ABE9C3AF61C13651C565D71FA30118
-566A9B9D40ED9B72963F22A183B93BFC13B3B4C60B5D6D6B2CB2C34E4A46F818
-75DCC0E18B224E2C23ED37EB5D9C41B9BDFA30ECA3A2B2AD548B7EEBD85ECC13
-07D2DA685D0BA7ABC4E04F3BA9FE04494DD9F9854922D0811DA702B5B6816A46
-681E16C1F22DB24CF64A143AB2BF39E7C2831BD005C7294B021F01E90046D441
-5089CDE2EE9AAAD38E4797C2C051649C1BFC743EDB5B679F2F9C993BBAFF4089
-AFBB7997BA4B1BB7139B3548897130C1848CC9BCA68F386250788B7930EEDAA2
-0B31250826EBD9531F8BF948DFDF61C3315892FB60996B4FFB85
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (transpose1.dvi)
-@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 42[0
-1[0 7[{}9 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
-10 64 V 10 98 V 10 63 a Fa(G)119 -37 y(4)p 314 96 4 108
-v 276 96 a(\007)p 540 79 4 103 v 502 79 a(\007)541 2
-y(\203)569 0 y(\203)314 -12 y(\204)436 -18 y(\204)p 700
-63 4 95 v 662 63 a(\007)p 822 162 4 117 v 823 46 a(\007)p
-981 154 4 125 v 982 29 a(\007)1101 13 y(4)p 1141 146
-4 134 v 1 w(\007)1261 -4 y(4)822 137 y(\204)1039 127
-y(\204)822 162 y(\204)1039 151 y(\204)p 1301 138 4 143
-v 1302 -4 a(\007)p 1460 88 4 108 v 1461 -20 a(\007)1647
--4 y(6)p 1687 99 4 103 v 1 w(\007)1807 13 y(6)1688 74
-y(\303)1717 75 y(\303)1460 88 y(\304)1585 94 y(\304)p
-1846 107 4 95 v 1847 13 a(\007)p 2044 29 4 117 v 2006
-29 a(\007)p 2204 46 4 125 v 2166 46 a(\007)p 2364 63
-4 134 v 2326 63 a(\007)2044 -62 y(\304)2260 -51 y(\304)2044
--87 y(\304)2260 -76 y(\304)p 2523 79 4 143 v 2485 79
-a(\007)p 2645 98 4 135 v 2761 96 a(\011)p 3402 98 V 3405
-262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/transpose1.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: transpose1.dvi
+%%CreationDate: Sun Sep 28 16:03:22 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 749 483 783
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose1.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1603
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 9 /macron put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
+D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
+470318F6BA4A95928FE7E588F2D807AACF0ABAB5E813271D0CE7D0E54804C34C
+A97C307FB762C772440658DA9925EA43F6909318664645EA524B9A3E57246E89
+8354B199397EB6B323D95CEE756CBD8DEB4222ED6E8B0A277EB6D6D00C2838C7
+ADD5315037274AF4F376DB3A5B6C756DC27DC5AD50E986ECFA461104DF5CEA97
+60327281E533C24693E0C044EC3B1F9F297AE861D3542AA43722748E3A06E515
+77AF46466E865F05E778262E1556A7ACD4F77AD129D5303699696B9A8FC21ACC
+2F1EF77D2BF58B1991EDC7FF4E073F3C56605504E99FD3F2C886A43C52BFEC46
+242B345F9A00EC93F78175DDA8C6A63E90F2CA8AE5270063AF26E5A653D50EC0
+282BFA9F93B29650DCEFC01FA61C7782DBFA33456375D87FF1A8E6C30E34C8EF
+D4C0446FC6DE929A3E1F1D6394179546F07B9EEF4AD02EDB9D6D41DD5EE3EB80
+67CF9E9C3F3729EDB3BD2EA25737BD012D4F38A82E1107AC464EF9AF4D5BEF73
+338564DA29013B35842A80F3903111CF12292A4EC4D34045DAD6394624B653D6
+B7843E77B8C1627618497DC0E2FAE7DC155BA119806809C9EA5C465A2452FE0C
+B454C33973FA61BD070B67B9406E685119D3987A0A9AFC3CC336D3EC3B07E5F2
+91025E114B22C82BE9E6F3F21EF626B093C9B5B50CC2D59F93458DD0CB97E342
+F78AFDC66DF6308DBFF6753815BBBF5D24400C8084704668D9FC68AFEB1A188D
+D9891DA29F0F339FE246E38708A22B71CB74D6B179D68A33B56F53CF38D373BF
+39887E354ED6E8CA6DB1BFF1F57FB1AAF04CC1DD218C505FA31E653EFF402DF0
+5638D7ABDD8000AD3FFEECF8B54CF607C7AC945540E4E9F08B63DCF955001189
+62219BBA86B934CC8FC2FD1D0C12772185525E863FAF191CC6DD1B193EB9A7F7
+511E8B44901386887E55686A8DC9218F694C0BAF6441A13FF32FE07F57F21642
+AFFA2888A2DA1F54E01A7AC50BE1447831A57614C7A6450B304A3F01FFFF33CF
+B5B440D30CEF8B91D24824A5C6724F94DB28359FB4B0D79B5C1F76E77AA15A9C
+269F40A58351920821FC597594812B321C6C7B4AE14E06FE76EC9F845B16D00C
+F63930A7F59CF10FE6DCD0632B0C3B3C32EF7DFCB27941CAE32227E470B36059
+E1E8DD3B591639ADE2710561A8E784661B1309F28FCC3DA591F8629F10C6C346
+62378840CE4E953B18BD7B93C1C0BEA1BB2BA4AA7B532D2881D7A22ADE30295A
+BD01FE117C648DB4C95742D2849545951194BD042811121F98F8F0D19CB84DA4
+3CF43457E041B6723CB44797624AB5BC1097B3ABD94D747D2971970AD547AEBF
+4826A3E7CBFE6F4128A5A251E5E4D9771C3B3FC87234CB5D06E38200E8CAA304
+FEE0DFB1D1C0E0950942A6CE8285808AEADA16BDD1595EB69B3D984FA9D53176
+B7E4D53472C70FC6A1EF306619A4A4D02E2A9F1EA0DD0C07DF124CF60A4034D6
+16C49A0B8A624029D398DF59189F238265ABE9C3AF61C13651C565D71FA30118
+566A9B9D40ED9B72963F22A183B93BFC13B3B4C60B5D6D6B2CB2C34E4A46F818
+75DCC0E18B224E2C23ED37EB5D9C41B9BDFA30ECA3A2B2AD548B7EEBD85ECC13
+07D2DA685D0BA7ABC4E04F3BA9FE04494DD9F9854922D0811DA702B5B6816A46
+681E16C1F22DB24CF64A143AB2BF39E7C2831BD005C7294B021F01E90046D441
+5089CDE2EE9AAAD38E4797C2C051649C1BFC743EDB5B679F2F9C993BBAFF4089
+AFBB7997BA4B1BB7139B3548897130C1848CC9BCA68F386250788B7930EEDAA2
+0B31250826EBD9531F8BF948DFDF61C3315892FB60996B4FFB85
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (transpose1.dvi)
+@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 42[0
+1[0 7[{}9 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
+10 64 V 10 98 V 10 63 a Fa(G)119 -37 y(4)p 314 96 4 108
+v 276 96 a(\007)p 540 79 4 103 v 502 79 a(\007)541 2
+y(\203)569 0 y(\203)314 -12 y(\204)436 -18 y(\204)p 700
+63 4 95 v 662 63 a(\007)p 822 162 4 117 v 823 46 a(\007)p
+981 154 4 125 v 982 29 a(\007)1101 13 y(4)p 1141 146
+4 134 v 1 w(\007)1261 -4 y(4)822 137 y(\204)1039 127
+y(\204)822 162 y(\204)1039 151 y(\204)p 1301 138 4 143
+v 1302 -4 a(\007)p 1460 88 4 108 v 1461 -20 a(\007)1647
+-4 y(6)p 1687 99 4 103 v 1 w(\007)1807 13 y(6)1688 74
+y(\303)1717 75 y(\303)1460 88 y(\304)1585 94 y(\304)p
+1846 107 4 95 v 1847 13 a(\007)p 2044 29 4 117 v 2006
+29 a(\007)p 2204 46 4 125 v 2166 46 a(\007)p 2364 63
+4 134 v 2326 63 a(\007)2044 -62 y(\304)2260 -51 y(\304)2044
+-87 y(\304)2260 -76 y(\304)p 2523 79 4 143 v 2485 79
+a(\007)p 2645 98 4 135 v 2761 96 a(\011)p 3402 98 V 3405
+262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 262 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose2.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose2.eps
index a87d4300e23..99f43a2820b 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose2.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose2.eps
@@ -1,593 +1,593 @@
-%% LaTeX2e file `eps/transpose2.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: transpose2.dvi
-%%CreationDate: Sun Sep 28 16:03:28 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 751 483 785
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose2.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1603
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 9 /macron put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
-D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
-470318F6BA4A95928FE7E588F2D807AACF0ABAB5E813271D0CE7D0E54804C34C
-A97C307FB762C772440658DA9925EA43F6909318664645EA524B9A3E57246E89
-8354B199397EB6B323D95CEE756CBD8DEB4222ED6E8B0A277EB6D6D00C2838C7
-ADD5315037274AF4F376DB3A5B6C756DC27DC5AD50E986ECFA461104DF5CEA97
-60327281E533C24693E0C044EC3B1F9F297AE861D3542AA43722748E3A06E515
-77AF46466E865F05E778262E1556A7ACD4F77AD129D5303699696B9A8FC21ACC
-2F1EF77D2BF58B1991EDC7FF4E073F3C56605504E99FD3F2C886A43C52BFEC46
-242B345F9A00EC93F78175DDA8C6A63E90F2CA8AE5270063AF26E5A653D50EC0
-282BFA9F93B29650DCEFC01FA61C7782DBFA33456375D87FF1A8E6C30E34C8EF
-D4C0446FC6DE929A3E1F1D6394179546F07B9EEF4AD02EDB9D6D41DD5EE3EB80
-67CF9E9C3F3729EDB3BD2EA25737BD012D4F38A82E1107AC464EF9AF4D5BEF73
-338564DA29013B35842A80F3903111CF12292A4EC4D34045DAD6394624B653D6
-B7843E77B8C1627618497DC0E2FAE7DC155BA119806809C9EA5C465A2452FE0C
-B454C33973FA61BD070B67B9406E685119D3987A0A9AFC3CC336D3EC3B07E5F2
-91025E114B22C82BE9E6F3F21EF626B093C9B5B50CC2D59F93458DD0CB97E342
-F78AFDC66DF6308DBFF6753815BBBF5D24400C8084704668D9FC68AFEB1A188D
-D9891DA29F0F339FE246E38708A22B71CB74D6B179D68A33B56F53CF38D373BF
-39887E354ED6E8CA6DB1BFF1F57FB1AAF04CC1DD218C505FA31E653EFF402DF0
-5638D7ABDD8000AD3FFEECF8B54CF607C7AC945540E4E9F08B63DCF955001189
-62219BBA86B934CC8FC2FD1D0C12772185525E863FAF191CC6DD1B193EB9A7F7
-511E8B44901386887E55686A8DC9218F694C0BAF6441A13FF32FE07F57F21642
-AFFA2888A2DA1F54E01A7AC50BE1447831A57614C7A6450B304A3F01FFFF33CF
-B5B440D30CEF8B91D24824A5C6724F94DB28359FB4B0D79B5C1F76E77AA15A9C
-269F40A58351920821FC597594812B321C6C7B4AE14E06FE76EC9F845B16D00C
-F63930A7F59CF10FE6DCD0632B0C3B3C32EF7DFCB27941CAE32227E470B36059
-E1E8DD3B591639ADE2710561A8E784661B1309F28FCC3DA591F8629F10C6C346
-62378840CE4E953B18BD7B93C1C0BEA1BB2BA4AA7B532D2881D7A22ADE30295A
-BD01FE117C648DB4C95742D2849545951194BD042811121F98F8F0D19CB84DA4
-3CF43457E041B6723CB44797624AB5BC1097B3ABD94D747D2971970AD547AEBF
-4826A3E7CBFE6F4128A5A251E5E4D9771C3B3FC87234CB5D06E38200E8CAA304
-FEE0DFB1D1C0E0950942A6CE8285808AEADA16BDD1595EB69B3D984FA9D53176
-B7E4D53472C70FC6A1EF306619A4A4D02E2A9F1EA0DD0C07DF124CF60A4034D6
-16C49A0B8A624029D398DF59189F238265ABE9C3AF61C13651C565D71FA30118
-566A9B9D40ED9B72963F22A183B93BFC13B3B4C60B5D6D6B2CB2C34E4A46F818
-75DCC0E18B224E2C23ED37EB5D9C41B9BDFA30ECA3A2B2AD548B7EEBD85ECC13
-07D2DA685D0BA7ABC4E04F3BA9FE04494DD9F9854922D0811DA702B5B6816A46
-681E16C1F22DB24CF64A143AB2BF39E7C2831BD005C7294B021F01E90046D441
-5089CDE2EE9AAAD38E4797C2C051649C1BFC743EDB5B679F2F9C993BBAFF4089
-AFBB7997BA4B1BB7139B3548897130C1848CC9BCA68F386250788B7930EEDAA2
-0B31250826EBD9531F8BF948DFDF61C3315892FB60996B4FFB85
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (transpose2.dvi)
-@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 42[0
-1[0 7[{}9 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
-10 64 V 10 98 V 10 63 a Fa(G)119 -37 y(4)153 13 y(4)186
--54 y(4)219 -4 y(4)252 46 y(4)285 -20 y(4)p 474 112 4
-108 v 436 112 a(\007)p 689 96 4 103 v 651 96 a(\007)690
-19 y(\203)710 18 y(\203)474 5 y(\204)577 -1 y(\204)p
-841 79 4 94 v 803 79 a(\007)p 992 63 4 150 v 954 63 a(\007)p
-1143 46 4 141 v 1105 46 a(\007)1217 29 y(4)p 1295 29
-4 132 v(\007)1368 13 y(4)992 -62 y(\204)1183 -71 y(\204)992
--87 y(\204)1183 -96 y(\204)p 1446 13 4 123 v 1408 13
-a(\007)p 1560 104 4 108 v 1561 -4 a(\007)1735 13 y(6)p
-1775 115 4 103 v 1 w(\007)1886 29 y(6)1776 90 y(\303)1798
-91 y(\303)1560 104 y(\304)1665 109 y(\304)p 1926 123
-4 94 v 1927 29 a(\007)p 2116 46 4 117 v 2078 46 a(\007)p
-2267 63 4 126 v 2229 63 a(\007)p 2419 79 4 135 v 2381
-79 a(\007)2116 -45 y(\304)2307 -36 y(\304)2116 -70 y(\304)2307
--61 y(\304)p 2570 96 4 144 v 2532 96 a(\007)p 2683 98
-4 135 v 2794 112 a(\011)p 3402 98 V 3405 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262
-a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/transpose2.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: transpose2.dvi
+%%CreationDate: Sun Sep 28 16:03:28 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 751 483 785
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose2.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1603
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 9 /macron put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
+D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
+470318F6BA4A95928FE7E588F2D807AACF0ABAB5E813271D0CE7D0E54804C34C
+A97C307FB762C772440658DA9925EA43F6909318664645EA524B9A3E57246E89
+8354B199397EB6B323D95CEE756CBD8DEB4222ED6E8B0A277EB6D6D00C2838C7
+ADD5315037274AF4F376DB3A5B6C756DC27DC5AD50E986ECFA461104DF5CEA97
+60327281E533C24693E0C044EC3B1F9F297AE861D3542AA43722748E3A06E515
+77AF46466E865F05E778262E1556A7ACD4F77AD129D5303699696B9A8FC21ACC
+2F1EF77D2BF58B1991EDC7FF4E073F3C56605504E99FD3F2C886A43C52BFEC46
+242B345F9A00EC93F78175DDA8C6A63E90F2CA8AE5270063AF26E5A653D50EC0
+282BFA9F93B29650DCEFC01FA61C7782DBFA33456375D87FF1A8E6C30E34C8EF
+D4C0446FC6DE929A3E1F1D6394179546F07B9EEF4AD02EDB9D6D41DD5EE3EB80
+67CF9E9C3F3729EDB3BD2EA25737BD012D4F38A82E1107AC464EF9AF4D5BEF73
+338564DA29013B35842A80F3903111CF12292A4EC4D34045DAD6394624B653D6
+B7843E77B8C1627618497DC0E2FAE7DC155BA119806809C9EA5C465A2452FE0C
+B454C33973FA61BD070B67B9406E685119D3987A0A9AFC3CC336D3EC3B07E5F2
+91025E114B22C82BE9E6F3F21EF626B093C9B5B50CC2D59F93458DD0CB97E342
+F78AFDC66DF6308DBFF6753815BBBF5D24400C8084704668D9FC68AFEB1A188D
+D9891DA29F0F339FE246E38708A22B71CB74D6B179D68A33B56F53CF38D373BF
+39887E354ED6E8CA6DB1BFF1F57FB1AAF04CC1DD218C505FA31E653EFF402DF0
+5638D7ABDD8000AD3FFEECF8B54CF607C7AC945540E4E9F08B63DCF955001189
+62219BBA86B934CC8FC2FD1D0C12772185525E863FAF191CC6DD1B193EB9A7F7
+511E8B44901386887E55686A8DC9218F694C0BAF6441A13FF32FE07F57F21642
+AFFA2888A2DA1F54E01A7AC50BE1447831A57614C7A6450B304A3F01FFFF33CF
+B5B440D30CEF8B91D24824A5C6724F94DB28359FB4B0D79B5C1F76E77AA15A9C
+269F40A58351920821FC597594812B321C6C7B4AE14E06FE76EC9F845B16D00C
+F63930A7F59CF10FE6DCD0632B0C3B3C32EF7DFCB27941CAE32227E470B36059
+E1E8DD3B591639ADE2710561A8E784661B1309F28FCC3DA591F8629F10C6C346
+62378840CE4E953B18BD7B93C1C0BEA1BB2BA4AA7B532D2881D7A22ADE30295A
+BD01FE117C648DB4C95742D2849545951194BD042811121F98F8F0D19CB84DA4
+3CF43457E041B6723CB44797624AB5BC1097B3ABD94D747D2971970AD547AEBF
+4826A3E7CBFE6F4128A5A251E5E4D9771C3B3FC87234CB5D06E38200E8CAA304
+FEE0DFB1D1C0E0950942A6CE8285808AEADA16BDD1595EB69B3D984FA9D53176
+B7E4D53472C70FC6A1EF306619A4A4D02E2A9F1EA0DD0C07DF124CF60A4034D6
+16C49A0B8A624029D398DF59189F238265ABE9C3AF61C13651C565D71FA30118
+566A9B9D40ED9B72963F22A183B93BFC13B3B4C60B5D6D6B2CB2C34E4A46F818
+75DCC0E18B224E2C23ED37EB5D9C41B9BDFA30ECA3A2B2AD548B7EEBD85ECC13
+07D2DA685D0BA7ABC4E04F3BA9FE04494DD9F9854922D0811DA702B5B6816A46
+681E16C1F22DB24CF64A143AB2BF39E7C2831BD005C7294B021F01E90046D441
+5089CDE2EE9AAAD38E4797C2C051649C1BFC743EDB5B679F2F9C993BBAFF4089
+AFBB7997BA4B1BB7139B3548897130C1848CC9BCA68F386250788B7930EEDAA2
+0B31250826EBD9531F8BF948DFDF61C3315892FB60996B4FFB85
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (transpose2.dvi)
+@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 42[0
+1[0 7[{}9 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
+10 64 V 10 98 V 10 63 a Fa(G)119 -37 y(4)153 13 y(4)186
+-54 y(4)219 -4 y(4)252 46 y(4)285 -20 y(4)p 474 112 4
+108 v 436 112 a(\007)p 689 96 4 103 v 651 96 a(\007)690
+19 y(\203)710 18 y(\203)474 5 y(\204)577 -1 y(\204)p
+841 79 4 94 v 803 79 a(\007)p 992 63 4 150 v 954 63 a(\007)p
+1143 46 4 141 v 1105 46 a(\007)1217 29 y(4)p 1295 29
+4 132 v(\007)1368 13 y(4)992 -62 y(\204)1183 -71 y(\204)992
+-87 y(\204)1183 -96 y(\204)p 1446 13 4 123 v 1408 13
+a(\007)p 1560 104 4 108 v 1561 -4 a(\007)1735 13 y(6)p
+1775 115 4 103 v 1 w(\007)1886 29 y(6)1776 90 y(\303)1798
+91 y(\303)1560 104 y(\304)1665 109 y(\304)p 1926 123
+4 94 v 1927 29 a(\007)p 2116 46 4 117 v 2078 46 a(\007)p
+2267 63 4 126 v 2229 63 a(\007)p 2419 79 4 135 v 2381
+79 a(\007)2116 -45 y(\304)2307 -36 y(\304)2116 -70 y(\304)2307
+-61 y(\304)p 2570 96 4 144 v 2532 96 a(\007)p 2683 98
+4 135 v 2794 112 a(\011)p 3402 98 V 3405 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 262
+a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose3.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose3.eps
index c077a04ee62..31a82e3deba 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose3.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/transpose3.eps
@@ -1,593 +1,593 @@
-%% LaTeX2e file `eps/transpose3.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: transpose3.dvi
-%%CreationDate: Sun Sep 28 16:03:34 2003
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 73 751 483 784
-%%DocumentFonts: TeXMUSIX16-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose3.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2003.09.28:1603
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 9 /macron put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
-D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
-470318F6BA4A95928FE7E588F2D807AACF0ABAB5E813271D0CE7D0E54804C34C
-A97C307FB762C772440658DA9925EA43F6909318664645EA524B9A3E57246E89
-8354B199397EB6B323D95CEE756CBD8DEB4222ED6E8B0A277EB6D6D00C2838C7
-ADD5315037274AF4F376DB3A5B6C756DC27DC5AD50E986ECFA461104DF5CEA97
-60327281E533C24693E0C044EC3B1F9F297AE861D3542AA43722748E3A06E515
-77AF46466E865F05E778262E1556A7ACD4F77AD129D5303699696B9A8FC21ACC
-2F1EF77D2BF58B1991EDC7FF4E073F3C56605504E99FD3F2C886A43C52BFEC46
-242B345F9A00EC93F78175DDA8C6A63E90F2CA8AE5270063AF26E5A653D50EC0
-282BFA9F93B29650DCEFC01FA61C7782DBFA33456375D87FF1A8E6C30E34C8EF
-D4C0446FC6DE929A3E1F1D6394179546F07B9EEF4AD02EDB9D6D41DD5EE3EB80
-67CF9E9C3F3729EDB3BD2EA25737BD012D4F38A82E1107AC464EF9AF4D5BEF73
-338564DA29013B35842A80F3903111CF12292A4EC4D34045DAD6394624B653D6
-B7843E77B8C1627618497DC0E2FAE7DC155BA119806809C9EA5C465A2452FE0C
-B454C33973FA61BD070B67B9406E685119D3987A0A9AFC3CC336D3EC3B07E5F2
-91025E114B22C82BE9E6F3F21EF626B093C9B5B50CC2D59F93458DD0CB97E342
-F78AFDC66DF6308DBFF6753815BBBF5D24400C8084704668D9FC68AFEB1A188D
-D9891DA29F0F339FE246E38708A22B71CB74D6B179D68A33B56F53CF38D373BF
-39887E354ED6E8CA6DB1BFF1F57FB1AAF04CC1DD218C505FA31E653EFF402DF0
-5638D7ABDD8000AD3FFEECF8B54CF607C7AC945540E4E9F08B63DCF955001189
-62219BBA86B934CC8FC2FD1D0C12772185525E863FAF191CC6DD1B193EB9A7F7
-511E8B44901386887E55686A8DC9218F694C0BAF6441A13FF32FE07F57F21642
-AFFA2888A2DA1F54E01A7AC50BE1447831A57614C7A6450B304A3F01FFFF33CF
-B5B440D30CEF8B91D24824A5C6724F94DB28359FB4B0D79B5C1F76E77AA15A9C
-269F40A58351920821FC597594812B321C6C7B4AE14E06FE76EC9F845B16D00C
-F63930A7F59CF10FE6DCD0632B0C3B3C32EF7DFCB27941CAE32227E470B36059
-E1E8DD3B591639ADE2710561A8E784661B1309F28FCC3DA591F8629F10C6C346
-62378840CE4E953B18BD7B93C1C0BEA1BB2BA4AA7B532D2881D7A22ADE30295A
-BD01FE117C648DB4C95742D2849545951194BD042811121F98F8F0D19CB84DA4
-3CF43457E041B6723CB44797624AB5BC1097B3ABD94D747D2971970AD547AEBF
-4826A3E7CBFE6F4128A5A251E5E4D9771C3B3FC87234CB5D06E38200E8CAA304
-FEE0DFB1D1C0E0950942A6CE8285808AEADA16BDD1595EB69B3D984FA9D53176
-B7E4D53472C70FC6A1EF306619A4A4D02E2A9F1EA0DD0C07DF124CF60A4034D6
-16C49A0B8A624029D398DF59189F238265ABE9C3AF61C13651C565D71FA30118
-566A9B9D40ED9B72963F22A183B93BFC13B3B4C60B5D6D6B2CB2C34E4A46F818
-75DCC0E18B224E2C23ED37EB5D9C41B9BDFA30ECA3A2B2AD548B7EEBD85ECC13
-07D2DA685D0BA7ABC4E04F3BA9FE04494DD9F9854922D0811DA702B5B6816A46
-681E16C1F22DB24CF64A143AB2BF39E7C2831BD005C7294B021F01E90046D441
-5089CDE2EE9AAAD38E4797C2C051649C1BFC743EDB5B679F2F9C993BBAFF4089
-AFBB7997BA4B1BB7139B3548897130C1848CC9BCA68F386250788B7930EEDAA2
-0B31250826EBD9531F8BF948DFDF61C3315892FB60996B4FFB85
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (transpose3.dvi)
-@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 42[0
-1[0 7[{}9 132.835 /TeXMUSIX16-Regular rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: a4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
-10 64 V 10 98 V 10 63 a Fa(G)119 -37 y(4)153 13 y(4)186
--54 y(4)219 -4 y(4)p 362 131 60 4 v 410 129 4 108 v 372
-129 a(\007)p 630 112 4 103 v 592 112 a(\007)631 35 y(\203)654
-34 y(\203)410 21 y(\204)521 16 y(\204)p 784 96 4 94 v
-746 96 a(\007)p 939 79 4 150 v 901 79 a(\007)p 1094 63
-4 141 v 1056 63 a(\007)1171 46 y(4)p 1249 46 4 132 v(\007)1325
-29 y(4)939 -45 y(\204)1140 -55 y(\204)939 -70 y(\204)1140
--80 y(\204)p 1403 29 4 123 v 1365 29 a(\007)p 1520 121
-4 108 v 1521 13 a(\007)1700 29 y(6)p 1739 132 4 103 v(\007)1854
-46 y(6)1740 107 y(\303)1765 108 y(\303)1520 121 y(\304)1632
-127 y(\304)p 1894 140 4 94 v 1895 46 a(\007)p 2087 63
-4 117 v 2049 63 a(\007)p 2242 79 4 126 v 2204 79 a(\007)p
-2397 96 4 134 v 2359 96 a(\007)2087 -29 y(\304)2288 -19
-y(\304)2087 -54 y(\304)2288 -44 y(\304)p 2551 112 4 143
-v 2513 112 a(\007)p 2668 98 4 135 v 2771 131 70 4 v 2781
-129 a(\011)p 3402 98 4 135 v 3405 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3405 262 a eop
-end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/transpose3.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: transpose3.dvi
+%%CreationDate: Sun Sep 28 16:03:34 2003
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 73 751 483 784
+%%DocumentFonts: TeXMUSIX16-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE transpose3.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2003.09.28:1603
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 9 /macron put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF864393FB340DEC53F22BBC9011D18C818CAC5CE17FDB25AA3D76B817
+D7C337833DD53BF891D64AC84C2D36CDFD11DE82728AFE21C6E7E6C2D8A2AB1E
+470318F6BA4A95928FE7E588F2D807AACF0ABAB5E813271D0CE7D0E54804C34C
+A97C307FB762C772440658DA9925EA43F6909318664645EA524B9A3E57246E89
+8354B199397EB6B323D95CEE756CBD8DEB4222ED6E8B0A277EB6D6D00C2838C7
+ADD5315037274AF4F376DB3A5B6C756DC27DC5AD50E986ECFA461104DF5CEA97
+60327281E533C24693E0C044EC3B1F9F297AE861D3542AA43722748E3A06E515
+77AF46466E865F05E778262E1556A7ACD4F77AD129D5303699696B9A8FC21ACC
+2F1EF77D2BF58B1991EDC7FF4E073F3C56605504E99FD3F2C886A43C52BFEC46
+242B345F9A00EC93F78175DDA8C6A63E90F2CA8AE5270063AF26E5A653D50EC0
+282BFA9F93B29650DCEFC01FA61C7782DBFA33456375D87FF1A8E6C30E34C8EF
+D4C0446FC6DE929A3E1F1D6394179546F07B9EEF4AD02EDB9D6D41DD5EE3EB80
+67CF9E9C3F3729EDB3BD2EA25737BD012D4F38A82E1107AC464EF9AF4D5BEF73
+338564DA29013B35842A80F3903111CF12292A4EC4D34045DAD6394624B653D6
+B7843E77B8C1627618497DC0E2FAE7DC155BA119806809C9EA5C465A2452FE0C
+B454C33973FA61BD070B67B9406E685119D3987A0A9AFC3CC336D3EC3B07E5F2
+91025E114B22C82BE9E6F3F21EF626B093C9B5B50CC2D59F93458DD0CB97E342
+F78AFDC66DF6308DBFF6753815BBBF5D24400C8084704668D9FC68AFEB1A188D
+D9891DA29F0F339FE246E38708A22B71CB74D6B179D68A33B56F53CF38D373BF
+39887E354ED6E8CA6DB1BFF1F57FB1AAF04CC1DD218C505FA31E653EFF402DF0
+5638D7ABDD8000AD3FFEECF8B54CF607C7AC945540E4E9F08B63DCF955001189
+62219BBA86B934CC8FC2FD1D0C12772185525E863FAF191CC6DD1B193EB9A7F7
+511E8B44901386887E55686A8DC9218F694C0BAF6441A13FF32FE07F57F21642
+AFFA2888A2DA1F54E01A7AC50BE1447831A57614C7A6450B304A3F01FFFF33CF
+B5B440D30CEF8B91D24824A5C6724F94DB28359FB4B0D79B5C1F76E77AA15A9C
+269F40A58351920821FC597594812B321C6C7B4AE14E06FE76EC9F845B16D00C
+F63930A7F59CF10FE6DCD0632B0C3B3C32EF7DFCB27941CAE32227E470B36059
+E1E8DD3B591639ADE2710561A8E784661B1309F28FCC3DA591F8629F10C6C346
+62378840CE4E953B18BD7B93C1C0BEA1BB2BA4AA7B532D2881D7A22ADE30295A
+BD01FE117C648DB4C95742D2849545951194BD042811121F98F8F0D19CB84DA4
+3CF43457E041B6723CB44797624AB5BC1097B3ABD94D747D2971970AD547AEBF
+4826A3E7CBFE6F4128A5A251E5E4D9771C3B3FC87234CB5D06E38200E8CAA304
+FEE0DFB1D1C0E0950942A6CE8285808AEADA16BDD1595EB69B3D984FA9D53176
+B7E4D53472C70FC6A1EF306619A4A4D02E2A9F1EA0DD0C07DF124CF60A4034D6
+16C49A0B8A624029D398DF59189F238265ABE9C3AF61C13651C565D71FA30118
+566A9B9D40ED9B72963F22A183B93BFC13B3B4C60B5D6D6B2CB2C34E4A46F818
+75DCC0E18B224E2C23ED37EB5D9C41B9BDFA30ECA3A2B2AD548B7EEBD85ECC13
+07D2DA685D0BA7ABC4E04F3BA9FE04494DD9F9854922D0811DA702B5B6816A46
+681E16C1F22DB24CF64A143AB2BF39E7C2831BD005C7294B021F01E90046D441
+5089CDE2EE9AAAD38E4797C2C051649C1BFC743EDB5B679F2F9C993BBAFF4089
+AFBB7997BA4B1BB7139B3548897130C1848CC9BCA68F386250788B7930EEDAA2
+0B31250826EBD9531F8BF948DFDF61C3315892FB60996B4FFB85
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (transpose3.dvi)
+@start /Fa 59[266 133 62[266 133 59[106 16[40 1[40 42[0
+1[0 7[{}9 132.835 /TeXMUSIX16-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: a4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 10 -35 3396 4 v 10 -2 V 10 31 V
+10 64 V 10 98 V 10 63 a Fa(G)119 -37 y(4)153 13 y(4)186
+-54 y(4)219 -4 y(4)p 362 131 60 4 v 410 129 4 108 v 372
+129 a(\007)p 630 112 4 103 v 592 112 a(\007)631 35 y(\203)654
+34 y(\203)410 21 y(\204)521 16 y(\204)p 784 96 4 94 v
+746 96 a(\007)p 939 79 4 150 v 901 79 a(\007)p 1094 63
+4 141 v 1056 63 a(\007)1171 46 y(4)p 1249 46 4 132 v(\007)1325
+29 y(4)939 -45 y(\204)1140 -55 y(\204)939 -70 y(\204)1140
+-80 y(\204)p 1403 29 4 123 v 1365 29 a(\007)p 1520 121
+4 108 v 1521 13 a(\007)1700 29 y(6)p 1739 132 4 103 v(\007)1854
+46 y(6)1740 107 y(\303)1765 108 y(\303)1520 121 y(\304)1632
+127 y(\304)p 1894 140 4 94 v 1895 46 a(\007)p 2087 63
+4 117 v 2049 63 a(\007)p 2242 79 4 126 v 2204 79 a(\007)p
+2397 96 4 134 v 2359 96 a(\007)2087 -29 y(\304)2288 -19
+y(\304)2087 -54 y(\304)2288 -44 y(\304)p 2551 112 4 143
+v 2513 112 a(\007)p 2668 98 4 135 v 2771 131 70 4 v 2781
+129 a(\011)p 3402 98 4 135 v 3405 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3405 262 a eop
+end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/triplerest.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/triplerest.eps
index 7093dd82899..4ffa2a81275 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/triplerest.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/triplerest.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96dev Copyright 2007 Radical Eye Software
%%Title: xtupletrest.dvi
%%CreationDate: Mon Dec 13 22:15:58 2010
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 61 685 312 777
+%%BoundingBox: 61 685 312 777
%%DocumentFonts: TeXMUSIX20-Regular CMTI8 TeXMUSIXSPX-Regular
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristano.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristano.eps
index 62b6b307385..7462e5cd175 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristano.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristano.eps
@@ -1,1211 +1,1211 @@
-%% LaTeX2e file `eps/tristano.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: tristano.dvi
-%%CreationDate: Wed Jan 21 14:05:49 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 79 735 539 801
-%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMBXTI10 CMTI10 CMTI8
-%%+ TeXMUSIX11-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE tristano.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1405
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX11-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
-%%CreationDate: 01-07-25 at 04.06
-%%VMusage: 1024 36750
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 700 300 0
-%%EndComments
-FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX11-Regular) readonly def
-/FamilyName (TeXMUSIX11) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -200 def
-/UnderlineThickness 100 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 700 def
-/descent 300 def
-end readonly def
-/FontName /TeXMUSIX11-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 12 /ogonek put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -3182 6250 3186}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
-46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
-4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
-BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
-66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
-021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
-15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
-4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
-3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
-FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
-99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
-BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
-1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
-9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
-698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
-33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
-423775531C98D6D16EA470D1CF6A101C2659527FA9145E008860E294728C62BB
-A2C6AD31A05A13180271FA4370F51BA493A3B744404BF5F65496B401DC928352
-2B9B436D65DAFDF80336D769F8B96FF771FED249F876337F7D485032EF1073BC
-902817ACD27F498A007F9855475A259550465AB98276EBB907E9D81035790B02
-7882083FA5417013846534C76F505678E832EF8E0913DB621E0819B1BE0450A8
-DB3164029BCDC0D09696069E9CA135EBCBE2C69623B7659E014E671747CBBA3C
-85FC68582CD84AC711DAEEB9A902FDC403349DB9D0759038FA9142956155C25B
-53A4C9ACC5971505EE7CFCB891B4C6D9D34DA6A90F87E0F97E38B928E23467BB
-2275D8AA11B3D623A202160D7809968375E0E27FFA11420CA2C15B05851427FC
-76A597369A21E1AF1E9B089F817B838A08C4CCD0E9E0868E72C23145B5812CB1
-AA30A813F643AB403F3538BA77F4BD847A6A5ACE0B2AB8BEDDB7E6078FCD99B1
-6920E56EEA409938
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 51 /three put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
-8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
-B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
-FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
-C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
-74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
-20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
-DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
-C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
-900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
-2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
-C9D16A50DEBBD3862698DD582667C8A8079FD1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 105 /i put
-dup 109 /m put
-dup 114 /r put
-dup 115 /s put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
-E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
-BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
-72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
-5EE89221BFD28AE8117B615D410CDAEB5320E61ABF819F329A7D5BF9515B3185
-0FF3013629B014C1534F7FBD9D52E08ADEBF16825B771C07875DD38BDD824031
-6F8028544EC27010E2E6FB4C703B6D98704F2F2907FD217F84E492FB80F3E49E
-3C4E6440A5C164D9B85E8800F323DCED9BE387F3943B66565AB6E58EA710A3A3
-43A13E35BA105BF2B677925E8F18BD595E14BD1AAE7D15B50DE8E663C0D24932
-A53373AFC8861B91B6C88E63862986C931E7F709D61CDFAEB53B8706E06E6D75
-5C8748F1B1DAB77E1C7D745B1311C5F8ED0F3761AF31241963FA91A8E9A788FF
-751496A4CFFDCF5DE4C70C4AE9069DEED820A9A178695236158E72E3C1854162
-61608B03A4CC8FB3B8FC11572D4689BADA31F96EFB3A30394EEB83B427A88F9B
-B5944CF928F71A6CAEFC1D2706526E20FC5B9631BFB7D4A02C7E4D01F6A9F69B
-AB061550421D443D3D05B960693F2CF9EED704D3959F416F0A38C35921A99174
-ABBDA9E6315ECDA014F5C5DCC357AF8FD1A201AE547E9E83754EF4F7304AC983
-B55825D2045B8303899ADCF674071B7B8D384F504DF1C1C57D1AC24A5909B96B
-94971AFDEDE1E04B92D99A99C19F2010FF24A53080C8A56BF3135C9A6D822FF1
-0E3462CAB8E50744E804144216A828D197E739CBA322728C99F6BE744F14B126
-D5FD150E6F1F486E8C0CABD57DE8112AA33A474323DB601D13C0156B394147F6
-B2DBE26AE6BBB1A4433033F47B2E25A895E456F0D8238EE0337126093260D8DC
-C95C2E3D93324F77234E16FC33B0711A7171783784444E66DE94557E0B45F468
-C8711C164E115CEF37EC78BD659306F09B98FD5F328CBC5C54AAF682DDE9A3F5
-36FC391F4D63D8260255843B9D34CBE341534CC146FA8DF63FEE11125966A480
-462BCB1D2C5022336AEF4049F3AF88318BDDBC2671306A662B679536D176B50F
-F43551B70A5754C1AE43D9C12F9987BC31E7B0A545588C68FBB4C0B8BC740C98
-5A682E1A1EF1ECB4A9CA6813DEA72ABF88C14009C6CCCEFAEFC9448792D22BA6
-9A88068D9C89EF7C123823A7454AAFF55C41130C8B984AA78D29264958CDFF86
-4E3CFA81F0A189E1C48F89E0CEE720764FA0B666A28C1DE5123D71DA6B547954
-6E37FD5F6040461A9E4640603366EFF360D567938FC38C1F41C6A668887AF6A1
-0FCFE167A67247368E76FAB48B32B252ED19F4247CD6473E4C3A93AE665E57F2
-EBC56F881FC93E11D43412DBAF31A53BA43C07B4DAEA3F6D523292083EE3CA04
-B9A98B51F9BEBE1CB2612F73E64D0DC56D132D32D77F14D7CD525A537F6A5189
-C9DC5D5A223B776F0D6435A32A46F72EED47C97A4E59FB9D21E47EC2CFA281A9
-6DD3BD631433BA11057B2471883F009CC7CE75F9BA8228D329FC2267403CE4EA
-E1A4D7C7F0594568F64E0E1DA5FC3141E4FB5C059CDE260BEF9AAB8A3CF69B18
-4E7D5774F9F9287D9393992E72E72900D21934004BD4955C18620E743AB24E1A
-052949B947C3B92A198548326334122F31B80758986658060A991079547D709E
-4E5C2D2E61168C4EE0DF9B705AD3429287F3CF568F3ED5531933A373820A558E
-6CA3D08B8BABBC7756D8993C24E53BB977EB91F68019EAF355A444B377F16B5D
-9FE495856AAED6B93B44D6474D7E8A5E03AAA7F561FF592DA31B0A26A4B0C0D7
-93D26336B3476B245DDA9C0313623092BA3F63985ED1757A9B90240F9D63D3E1
-9F7F37FBE940713F1C870709A2628C65470CB40CA0F75205B7DB2B72E28D4399
-B9052AC7C5F18FF62AA6372307A436A78B5D8F4BD62EE869A75EB816D699213D
-E9A79AC88E2DB38744794FDEE3B624BF4DD1E799518655A031E6606C1B5E17AC
-F43BCDEFCA155C51FCF63810462F4320A5521755DA3184E7119C9F1F6589A826
-CE675D42C62F41EAB7D15DADA13B45B2D67F4E4E0A443818A4158CEEF91FE522
-7159025F3C2E16A7F8A4C611F65CA968323EFC91A8B031B4527A04BE944F53B7
-5F5CE05BF8B5D70CDD476D63F2DD4F66186DB132477AE6316F9263121D7AC942
-F39A7AA06FE83831D67F2562DB22656DAB4674F3D7B434DA39A6ACD91FA54EB3
-4B856049C34CFF2BDE594EAE855A7400AA906BEFBC23BAE9F25A655824DE68D8
-287EAD555B6D8B866D59CA5D6A1995BCC9F53AC0736A258864B787C101EDEDCC
-FA04250658EDFEE5A8AEC281AAF01AE6F201D76C53415F97AF
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 102 /f put
-dup 112 /p put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA7DA5E8D21B862CFC42AD1B6B2F9FE5A3EDDC1BEDB5C7C060D7704644D7
-F6BA9695E1B63B5B18675BFA7572155A6B628438E13935DC35C1193C5CDD1DA9
-12F6958F42E0CAA5D1CAE65F9CA0B9872779355B06DEA1C333A549CFF06BDE04
-A3346BA9ADA334FF9159D9EC55D2200D9650CF3717EB2B6CCA4C01D49654FD94
-A4405E2CA061C6B5F6CCFB387665B2FD7A102D88F708F4FECC1B707EE9769072
-8A994C50D5826B6423B5252529F6BD41DD7C4E30DFE9718878BB6721CC254AF3
-68A474461466DB277DF2CEED2CBE3347CE104AEA1E7718F8566CF46727683A11
-EEA2A3493F79D8E40755DD58EDEFDE2A09165453C54F4DC192EFA32F0085CC5A
-B4611EEDAA296705E7078A54F9FDC8B22EBF377309D12320D6F139DEA7199A8E
-417618450B644187FF874FCE195CB0355A1BC3A0912C26FA72C4E12C09CE5EA4
-57DCC110DA12F51AEA171579D493106DFE68715591504D4CF308595FFD6771C0
-78C5A4B0AEC23C74B16EFB16682D5FF8ED59C3B03A549990B829A5893DBAD489
-397619405F4CC1407F52B179B1330BC0A8046BF7623BCF35758C5449411F9752
-05052973DB8816A4BA9D1A54042C35BE3BD69902E8D2233B192CC6437A111533
-AC5BE7BA248692A287F575186AFAC5B628E15084D505887EBF012F840AF2416F
-CACBAF741D025DED9EADB6EC4CDD71DB602A83337A643003568D510EB2F33D49
-0133B893DFBAA9639715BD2CF74E2298149D07C2AB9629D54FD3A7202CFCAF91
-9B3F34F5F25282A51F0B52D8AB80BFCB179674EFD969E2CCE7CC39D423663B
-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 44 /comma put
-dup 79 /O put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 103 /g put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 115 /s put
-dup 116 /t put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
-71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
-F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
-81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
-8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
-4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
-9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
-B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
-4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
-828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
-E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
-C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
-C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
-3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
-CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
-78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
-31E8F6E32F83D91F721ABD116A40698F26610853E7FD075478979BEF42166C1B
-312E8C20CB3F080B08A69416DA402D336C627BABC4737FC72F8F4F6BB7D73551
-EE33D3CEA901C3369B93301EEE2C3475A9F5B96239829EA2EE6A4945C2E785C0
-8F110513E6F8F12B231EF94B606851F36BB2523F3B3ECB5EAF8EDFDA92B5DF5D
-892813AF0BA074FBAC5FF5BEB656BB00709DF2829F6A33A059F3188644A10801
-A24CB262CA08C7A96DF332C5E4270C9FF0C4CDDE279178B9F1D9D4E0F7393326
-ED91A1E6735C179602C3CD9B8EFB67BD1E8ED4B742EA90517E18B78FAEBC28D7
-AC38CC295F1E5A3F9D3FBCAB51106B23D07B8F34AE6F86A9F720F37386A786E4
-82EC5ADC4BCAEA80A7C0D267C227E76C7A4EB134ED99E73DFF17EDEA93C0BAFC
-BF85D00F5DA548080D5E0E4AC3B8712D1CA44E0FFC78679BCFC1B3B342A5B656
-689AFDD90C8CEF6056EC65CE4A345F755D539329003F1B3E883E69438970CFA0
-1475B1605C08E5B2DFEDD96A1F0B8D39695D096825DDB6BC7E59ED22D13CFDF5
-99DD43370E6F28DB5DE10FC5A24F299EFE32DBF5035ABCB18BD682234879B242
-A1896369D59A6B8297CC9EFE00FCB9EFCA2D26256E32A6BFAA01005BFE6CAD1D
-AB51404E61F1C433D00FFD6A9B3884539ADC69317786D9D8BA8CAA99CB0586D2
-E302C320968C6464AF53B224217DD227ADB9F0D01F5780F7CD67B369538A7F72
-924CF6C07CD9DA0E44091329744F69E5F772478AA6AA0022D9A9FFB58E93A448
-764993E700403ED2699791941DF5B15428AECC3E8AB201D9481592169C1E3266
-7689E2AE83F8CDE6A150FBE63DA96B36C396EB3D6AE5A1B0363A2FFB60111A52
-399E147EED19DE22BAF32962676615D54487981BEB2778A705A4212C5195340F
-E6B0C3C49AE4764DF25E56A2B93B9C176FD9F34E2FF2304A0A97B272D17ECA9F
-D790BE0A348C760F81D2E7CD98BEB45A7FD142DBAFAC6E4CDD4506D240680504
-7725A6706943DE85046348809BE8495ADBD588E16D26C0D0FF415D07077D2CDB
-EF40F42B1C08B5257AEE7D7D07FCB0113AE2B7EB46C8184772DF3F2E26E44B8D
-9303172B32C99B5EF3CE760B733C4F62AC776D70E88829E26312679BC878DB64
-EC9B1486EEFDB2434A38C039C40E8D6F1F86C74A3C52B7A04107CB769A1DA101
-B6791470835A817159FCF13B30B6F496B2C471C89C15F9745FA8856D58EDAF01
-6E342DCF297049E027D63FB893C3C80678C0929CCB0FCB87BC6013448541948C
-F8629C8BFF680DA0C7330E1D845EA3D62881CA864CEEFEAC44D046FDA839413A
-B1BB86386A47F36FE5868DBD292E28303320F2C959559965D9AE33C202FA9ED5
-F465D3FAF9C3436B3BD66AEB4E3D74A7ECA62360FBFC9E87E40D78B4DAC861B4
-3959E8127955FED295EFC3172D61464401B2254564662402EAF691F8755C6F37
-4857BCBF0A2F18B185F3F3D4B52FC510E6452D7F61B7F6CEDE0BB80CDA7E0957
-9ED4E78A942282798F9606029E2B480CB25D70BC930BDC03CC46CC89A838241A
-BD632E15BD3B369CD8F05901ACD5BFB6AD3F20AB27A745BB5A96600541294631
-4C3E9AF5A21017F71DB5C9A5615E84F02A34659DEB44AF3133E806FD663508B1
-72B4F09CD85A13A5F3E3740F86A1746BD83471D7AEFF44E0AE963F0712D79D19
-3E5A1F52BE5C218909DE272A12E3BF396BF8069234A4A01465FFB79108B91625
-086491C93BFEA818AD29930754F179F2198C00756CF0301A93B84D64F4AE18AF
-C98B706E9399F3ACBC8F6E444A18AB2E94A6BCD71DFB60473BADB5A62DBA48BE
-E295FA5189B2730F6F78B6D18679C389450AB33510799C7CCE3053D8B28F2F94
-9DC328D04AF562EEC88561F94BE7273F533B76677914EF5056F398F8A615EB34
-1DC5434735A132270D047A5427AD475D71A5AD47F5B52C202426D58F6DE5C4E0
-6347280B37464FEC4A528E2F4B4DC9A45F59DD286DC51EBDB26CCF714731177D
-819094AC0F6F110E1067B56AB17BF2BF22741F67B27A1F620B9366EEE60CB053
-0667EFC82259B6E3DBDDE9014FCADEFC01EF64B70CDF5E2994F98F060AE195D8
-B674AB8151494CE85F156F96B3630EA2AF9EA4A86896B8B521E6FD4C7DA4DBD3
-A6A775F56D4FD8025306EEE7202B4B70E687A085F04CCCCD51F88F5167ABAA08
-B028E5F8CFA44E11B8C82ECED923DB14E7F9810921D2643557474DA6C9548FFB
-BE349C6AF7E58E6DC748F2C8B5F152D41947C3D7D889242DF01F456B84A485C4
-AB15EF5584985C02CA8A41D835DBD91BDA95C3EF8F50518178D26E66D39F8322
-F50359CDCD3B92693702C1C736F6A9719E14D476D1E65D4F2F4915CCC9186B4E
-95599E9778D8BF7FDBAEDF3F9C2133324E82FBCAC2FBE4E2BA03A69086612C95
-A1F29F8228B96EAA05A624126E7A8584E7D81CBD93A6F5E433917FFE72FBE64B
-4BAFACA17282236629978B417609E904F9EF0898230AAE86B35D988A7D82FC95
-79B71945B7419F8628D3DA5665EC974CB49F8F3F169C20075494ED722B7C4BCA
-11885E72D892951E2D21444958BE97F71E96AC27708ECA23DEAFE7C4F9133385
-88EE44D12373082BFCCFB913FF7E31DA350ED9300F4238A7207EBE8B5C9B0C15
-207DADF4A4BBF8EA281A00FE661C9CAD784526B1796DFEDB3B6BF4F38B051D75
-ADB06C10188014BF11A70FEAFAD34A8AA90FBD31A6B53CEC8F00FB6836E05E9C
-E18C5EE2D73373FA5FC7CED07DA3318CBCA4DD57AD9AF25A50702EA464B92AEF
-AE56079107A2614FD23E828A95B06480A9B174A8F4A17DFA2E988D23A691BF9E
-E2BBF5EF1937DC0D1F3E832C07C2314426BE315D2BA04740ED2760F252007A90
-9ECC8CD9840497F9E8251B5C1A67165544BF4298F3A95F94F6EE2579045524D8
-0D17D579466A10BC30B1875A245721E23DE71C59FEB7E85D5B15DA08DB6FA808
-C669ED3E91A3CF4076E90F1A93921BA54C4040CF8617D95ED265BA10D007F342
-40931FBFADEB0C67C62257FC4F8B34C071691833B44BC6F7254D211DCEC5DCFE
-65DE419945BE55F65474EE30EF685585DDFC9E77C5E0B0C23758C59C80BBCC45
-B4058515E4A740679DA604AF639705632535311C803FB1B3E234590C839C5ED6
-0832D6837DA0EE75FBD35E2F042320429D194B974596D1880BCD74E74C46CDA1
-C8165A276F1F4FDF3E76FA30D46614E3FA838070321E871232D7C42B7A1632C9
-7C3B101BDFC0277756D4C19B291E5485BA7C55029EF180C8CAC354B3D4C84FD1
-A421DD85230FB100661DCBCCF993BA702015BE6D06B51FB14D198FF42568A6A7
-705773C6B97C81BC7919920414320FD7C4041B70EAD5CFE4D59CF848D9790B38
-45CBC674309A1B5633053D4309D37563865F7C0C5E14260B7E9A6B9BA1C1D48C
-9640E23AE48903F2B15ECD4BB4C44A80DD0973415C9AD0D797CD62B350114AB2
-DC905C7EBFEC000271451C850CD77A530568B9E8EA670F7A0FE9866A9E1CBFCC
-5B5615A40EFBC3044E76A7148280E061C089E57EFB0A27A1AA159642797F42FE
-119A42C8EFFA9C50962B575BF4B8E0C2A47FFA686D443BD6BB8A17CEE9165420
-EB339E1CF74127CAAD11D7AFDEA4C07265FBD74B26C66BDE32411F6D0FB6A40B
-88C5A3040E2B6F95EEC8FF51C46E774298A8028B431A4EB8245C54CFA023613F
-FE9AD1BFE86E805F89CEF4375008708E5C14AFFA119723C8E673FE640C4CF5DC
-1684A12F3BE689FA85751A0FBDA29AE7C4755A530D6D9F4DF4F868CBFA6BFA2B
-DC7BB658107E15F4D6CA776A3192EB0683508241B7F5535B22B06F0E4DF27F5A
-2D0BABDB34F10809E27CF3C747D81DCEBFDD923F8553ADE595DB5802CC60DE76
-B8D3AD3DD54BB5E0CF0636B87B272D2B748EF0E7246328C4CC5A2D2E9B837B80
-F8A6163C3DEB2ECFFBBA894472E5FF6F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 24 /perthousand put
-dup 25 /dotlessi put
-dup 45 /hyphen put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 71 /G put
-dup 148 /Tcaron put
-dup 195 /Atilde put
-dup 201 /Eacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF8647CDA944FFAE6182F991CDF884A974262D31362D2CF0317CF97E29
-EEC652612CE1B987BF57B7A60BA840D2512039A8C81F229855008D6E58B76DA1
-D93486DDE86D173AD3B5AF2997FBA58A2FB615DEB2C802351A89F44B6CD6663B
-BCD73ABFD0DB844C34EDAE6C1F1D0498B158C9C0BBA09D05EAEC505A60623A12
-A6FB844DF87E1ED01AF28839F5D02008925F1E2C258C2D95E222EA6F45D45DE5
-3525FD8CDFC5E3F80E99160C65B216974F2D70967DD634310E466AE26FD842B8
-11E8C533D03D3468B4DDEBFD40A9A32963B749C797F9F2D880026615527D96DB
-8F297EA39D7AA22B532C044303655C27E170F9EC817D9C33975196CB7A4E5B5F
-D2744342C7D1B12D69DCE8B76AB61328E999260C639C069C4BD6111BE76BB8F0
-B46304B24CCD092A9BE4DEA587A963A4DDADDD946F316A11669B81EAA99EF9E9
-BB71F4B9723B4EB343B5506989F9F76D19F45691003C9EC070179F134CA3534C
-60483D0112F9E30F49E8B5CF93258332EC3A29504FB145CA3919C8AE71EA5068
-002B6673923B7120C09147F590C1FD073A3FC1361B6DF54F5921574591F772B9
-1D636D0A6CF452FD8F07A7B8399A2442164CC7E91404B853FCF2BBBCFA61F0DD
-E822821C2BBDC9BA136AC301C5535D02A9FD7F19F38C183A78F86CCF2D3D8892
-C5C5E7A7E3F23FB78E806109EA8378FEC04E2676CCBCD3546F94BD429A95C402
-1CF699C5DD2DCCEBA191B50899DC349215479CE0F122927D8312C7C58F85BA6A
-1577DDAC8FFAEFAC6C44AD54286776F1B2E2DF13C4B64C1B61393F991AC165BC
-CD144F3D13FA1E0F80BCCAC5AF5F14D089DDC85CC850929DC47C498DA96D2617
-F044C026492F6F57F742190C1B2E931B9FDC0B787888C8AC6496C8F0E066BF25
-127EC3F059E59FD0D8D437B41BD342100DEE78F6FE38B62BEF7E5091E27BD6F7
-4B37657C48E56B0B5DDAD9BE919CC40EFCF107512B2FAE3C758E43ED504452C5
-063FA8F76357572CB878BDE186309C42CDD369B93245BB46DCBA06028F59D7D0
-292BB3A31D3C795B383A0C2339EEB5A8D6B91418AC4275E69E122D0F7158FA6D
-E1E106365F7E94F8C41E6B85FD4F891D65AB0E87927BA8952C1D6D2C4CF1BB86
-C021BAF918D29D34AD92402DC5A16926A5D49A2DDABEF01BAB3D649EF833A462
-74371CAD10B9F590276F339B9BEEB237F0C679D5651C44EA0E8061635933BD24
-DFF7899756009F82CBD26998AC060F9B419C3A3318C542D03F8A82185F484CBD
-220EFD2C9B598B3762E611868693E340BEC1E63DE296CBC4C7FF54A6406AD170
-1424B9BF038936D0498DF4106F065A916CB5DA6B0720A6A0C730ED28F78CDCD7
-C2B6C537843CD64DE16F99B4EEA28B2FAF7D199ECEAAACCDA13B603C0195EADC
-225777EA1983C26641B5A5ADF6C4E63A50C30AAD5C07A8720BEC7617ED840288
-AC3FE6B372114D728E8683017D1066297159219CE6EF1B616EBF997B3BFE0E9E
-63600C5C4311B06738E94925A79A9385606AFF354AEAAB6DD95048B8BB96E8F8
-9413938BB36A529F361455382D292F6C27DD343D5C0084DB94F951F72DC15D14
-A910AEFCFC02C6E8C96660D3C8120725EB5B33626B7C1C46FA70C8B585238DDD
-778A090AF219B5AAB0F4199F773F81CFF6CCA5C5FFDD29911E3E7C795A8CBE46
-0F9498647CB7A5D1E9F47BAA79F4B6451EACE165BAB57A76A6441E5B60EE6172
-CF44BFF09E2512D85709E6AF493B4D83A1D443FEB7E817AB01D66AD419115F85
-36F2BE6050E595D4181926BB1F387F8C98FC147BEC1C53C21A747EF53AA5E419
-3AC8F47B778321607FC8CBDDD0BC4AA544E0A232BEAE0A053227350C82A47164
-1D14B125032A700C3ADF4D78C2C77020A6C5624D3FBF854D0298D16B9D98C424
-D839E2AC1C59C7BBF97AE7C6C44258033757B815E96ECE2CA9A85539F5B23346
-2B83A58CAC79DDBE6FA39D736B7FF4DDDDAB4B1D92F5EAF412398D1FA9D5FF8C
-3D037F565E726C1FE3ABE768F69035B71E136791010AB279D1AC7DC669BFE6F1
-CCDF0E8FDBD2765A2B75D4D59238A6ABB6DB63D4B62B89848A72FAC831E1A556
-F58FD934DD7160C4B2A9630F838C7FA04622DDFC46C09D30E083DE2DFFA3DAD2
-04076F8CCF2389B08F4A9398B7F6A497A0513BEDAE2692BE6F30193AE2B8F4EC
-06B6E5FB8A1FB2EB5ACFD9A20DDD23C8065684D774A3B2DEC8D09C07900DC148
-14C46816559562A431CA2FE1C07CE4EFDDB59D56E0E2743A57BE7F70BEBC6E35
-55D9D1CCD9F794B6
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (tristano.dvi)
-@start /Fa 243[0 4[0 7[{}2 85.0146 /TeXMUSIX11-Regular
-rf /Fb 204[36 51[{}1 66.4176 /CMTI8 rf /Fc 140[34 35
-4[68 3[25 3[38 42 38 52[25 46[{}8 83.022 /CMTI10 rf /Fd
-143[49 9[33 102[{}2 83.022 /CMBXTI10 rf /Fe 139[32 33
-3[42 46 1[23 2[23 1[42 1[37 46 37 46 42 17[65 34[23 44[{}14
-83.022 /CMR10 rf /Ff 54[133 5[133 46[66 76[106 16[40
-1[40 1[40 4[0 19[0 0 15[0 0 6[0{}13 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 60 39 3811 4 v 60 72 V 60 105 V
-60 139 V 60 172 V 60 137 a Ff(G)169 104 y(2)202 54 y(2)236
-120 y(2)71 -179 y Fe(Ob)r(o)r(e)28 b(da)f(caccia)g(solo,)f(on)h(stage)
-344 61 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 344 61 a 286 270 a Fd(p)349 253 y
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (10.0pt) GD N /C1dir 0
-N end
- 349 253 a
-321 203 4 117 v 322 87 a Ff(\010)530 -1 y
- slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(20.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
- 530 -1 a 487
-137 4 117 v 488 21 a Ff(\010)p 654 172 4 135 v 704 170
-a
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 704 170 a 659 253 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 659 253 a 672 237 a Fd(f)p 699
-129 4 108 v 700 21 a Ff(\007)700 129 y(\224)720 125 y(\224)p
-772 6 60 4 v 782 112 4 125 v 783 -13 a(\007)846 253 y
-Fc(dim.)p 856 6 60 4 v 866 120 4 117 v 867 4 a Ff(\007)867
--13 y(\000)p 1010 162 4 108 v 1011 162 a(-)1011 54 y(\007)1137
--18 y
- slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(22.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
- 1137 -18 a 1093 220 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (14.0pt) GD N /C1dir 2
-N end
- 1093 220 a 1083 6 60 4 v
-1093 120 4 117 v 1094 4 a Ff(\007)p 1211 172 4 135 v
-1261 170 a
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 1261 170 a 1246 6 60 4 v 1256 145 4 142 v
-1257 4 a Ff(\007)p 1340 149 4 79 v 1341 70 a(\007)p 1423
-153 4 133 v 1424 21 a(\007)1256 145 y(\303)1378 151 y(\303)p
-1507 157 4 71 v 1508 87 a(\007)p 1590 153 4 117 v 1591
-37 a(\007)1591 21 y(\000)p 1734 129 4 108 v 1735 129
-a(-)1735 21 y(\007)p 1818 172 4 135 v 1863 220 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 1863
-220 a 1863 153 4 117 v 1864 37 a Ff(\010)2049 54 y
- slur@Dict begin (2.0pt) GD S0hgt (14.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.2 S0dir M 0.15 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2049
-54 a 2049 54 a
- end
- 2049 54 a 2029 170 4 117 v -19 w Ff(\010)p
-2196 172 4 135 v 2309 21 a Fb(3)2207 270 y Fd(p)2241
-54 y Ff(\030)p 2241 195 4 125 v 2242 70 a(\007)2309 87
-y(\030)p 2309 202 4 115 v 1 w(\007)67 b(\030)2242 195
-y(\311)2248 196 y(\311)p 2377 209 4 105 v 2378 104 a(\007)2425
-253 y Fc(cr)l(esc.)p 2445 153 4 117 v 2446 37 a Ff(\010)p
-2612 187 V 2613 70 a(\007)p 2730 172 4 135 v 2775 120
-a(\031)p 2813 104 4 92 v -16 x(\007)2866 120 y(\031)-39
-b(4)p 2904 120 4 108 v -1 w(\007)91 b(\031)-39 b(6)p
-2813 20 185 16 v 2996 120 4 108 v(\007)p 3025 170 4 117
-v 3026 54 a(\010)p 3192 203 V 3193 87 a(\007)p 3310 172
-4 135 v 3338 253 a Fd(f)3355 120 y Ff(\031)p 3393 120
-4 92 v(\007)3423 154 y(\031)p 3461 137 4 102 v -17 x(\007)3514
-154 y(\031)g(4)3394 29 y(\311)3422 32 y(\311)p 3553 154
-4 109 v 3515 154 a(\007)p 3582 187 4 117 v 3583 70 a(\010)3702
-64 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (12.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 3702 64 a 3723 37 4 70 v 3724 37 a Fa(\014)-24 b(\007)3738
-54 y
- slur@Dict begin (2.0pt) GD S0hgt (14.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3738 54 a 3738 54 a
- end
- 3738 54 a 3730 253 a Fc(dim.)p
-3749 170 4 117 v 3750 54 a Ff(\007)p 3867 172 4 135 v
-3870 336 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3870 336 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/tristano.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: tristano.dvi
+%%CreationDate: Wed Jan 21 14:05:49 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 79 735 539 801
+%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMBXTI10 CMTI10 CMTI8
+%%+ TeXMUSIX11-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE tristano.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1405
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX11-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
+%%CreationDate: 01-07-25 at 04.06
+%%VMusage: 1024 36750
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 700 300 0
+%%EndComments
+FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX11-Regular) readonly def
+/FamilyName (TeXMUSIX11) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -200 def
+/UnderlineThickness 100 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 700 def
+/descent 300 def
+end readonly def
+/FontName /TeXMUSIX11-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 12 /ogonek put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -3182 6250 3186}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
+46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
+4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
+BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
+66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
+021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
+15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
+4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
+3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
+FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
+99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
+BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
+1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
+9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
+698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
+33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
+423775531C98D6D16EA470D1CF6A101C2659527FA9145E008860E294728C62BB
+A2C6AD31A05A13180271FA4370F51BA493A3B744404BF5F65496B401DC928352
+2B9B436D65DAFDF80336D769F8B96FF771FED249F876337F7D485032EF1073BC
+902817ACD27F498A007F9855475A259550465AB98276EBB907E9D81035790B02
+7882083FA5417013846534C76F505678E832EF8E0913DB621E0819B1BE0450A8
+DB3164029BCDC0D09696069E9CA135EBCBE2C69623B7659E014E671747CBBA3C
+85FC68582CD84AC711DAEEB9A902FDC403349DB9D0759038FA9142956155C25B
+53A4C9ACC5971505EE7CFCB891B4C6D9D34DA6A90F87E0F97E38B928E23467BB
+2275D8AA11B3D623A202160D7809968375E0E27FFA11420CA2C15B05851427FC
+76A597369A21E1AF1E9B089F817B838A08C4CCD0E9E0868E72C23145B5812CB1
+AA30A813F643AB403F3538BA77F4BD847A6A5ACE0B2AB8BEDDB7E6078FCD99B1
+6920E56EEA409938
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 51 /three put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
+8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
+B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
+FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
+C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
+74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
+20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
+DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
+C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
+900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
+2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
+C9D16A50DEBBD3862698DD582667C8A8079FD1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 105 /i put
+dup 109 /m put
+dup 114 /r put
+dup 115 /s put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
+BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
+72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
+5EE89221BFD28AE8117B615D410CDAEB5320E61ABF819F329A7D5BF9515B3185
+0FF3013629B014C1534F7FBD9D52E08ADEBF16825B771C07875DD38BDD824031
+6F8028544EC27010E2E6FB4C703B6D98704F2F2907FD217F84E492FB80F3E49E
+3C4E6440A5C164D9B85E8800F323DCED9BE387F3943B66565AB6E58EA710A3A3
+43A13E35BA105BF2B677925E8F18BD595E14BD1AAE7D15B50DE8E663C0D24932
+A53373AFC8861B91B6C88E63862986C931E7F709D61CDFAEB53B8706E06E6D75
+5C8748F1B1DAB77E1C7D745B1311C5F8ED0F3761AF31241963FA91A8E9A788FF
+751496A4CFFDCF5DE4C70C4AE9069DEED820A9A178695236158E72E3C1854162
+61608B03A4CC8FB3B8FC11572D4689BADA31F96EFB3A30394EEB83B427A88F9B
+B5944CF928F71A6CAEFC1D2706526E20FC5B9631BFB7D4A02C7E4D01F6A9F69B
+AB061550421D443D3D05B960693F2CF9EED704D3959F416F0A38C35921A99174
+ABBDA9E6315ECDA014F5C5DCC357AF8FD1A201AE547E9E83754EF4F7304AC983
+B55825D2045B8303899ADCF674071B7B8D384F504DF1C1C57D1AC24A5909B96B
+94971AFDEDE1E04B92D99A99C19F2010FF24A53080C8A56BF3135C9A6D822FF1
+0E3462CAB8E50744E804144216A828D197E739CBA322728C99F6BE744F14B126
+D5FD150E6F1F486E8C0CABD57DE8112AA33A474323DB601D13C0156B394147F6
+B2DBE26AE6BBB1A4433033F47B2E25A895E456F0D8238EE0337126093260D8DC
+C95C2E3D93324F77234E16FC33B0711A7171783784444E66DE94557E0B45F468
+C8711C164E115CEF37EC78BD659306F09B98FD5F328CBC5C54AAF682DDE9A3F5
+36FC391F4D63D8260255843B9D34CBE341534CC146FA8DF63FEE11125966A480
+462BCB1D2C5022336AEF4049F3AF88318BDDBC2671306A662B679536D176B50F
+F43551B70A5754C1AE43D9C12F9987BC31E7B0A545588C68FBB4C0B8BC740C98
+5A682E1A1EF1ECB4A9CA6813DEA72ABF88C14009C6CCCEFAEFC9448792D22BA6
+9A88068D9C89EF7C123823A7454AAFF55C41130C8B984AA78D29264958CDFF86
+4E3CFA81F0A189E1C48F89E0CEE720764FA0B666A28C1DE5123D71DA6B547954
+6E37FD5F6040461A9E4640603366EFF360D567938FC38C1F41C6A668887AF6A1
+0FCFE167A67247368E76FAB48B32B252ED19F4247CD6473E4C3A93AE665E57F2
+EBC56F881FC93E11D43412DBAF31A53BA43C07B4DAEA3F6D523292083EE3CA04
+B9A98B51F9BEBE1CB2612F73E64D0DC56D132D32D77F14D7CD525A537F6A5189
+C9DC5D5A223B776F0D6435A32A46F72EED47C97A4E59FB9D21E47EC2CFA281A9
+6DD3BD631433BA11057B2471883F009CC7CE75F9BA8228D329FC2267403CE4EA
+E1A4D7C7F0594568F64E0E1DA5FC3141E4FB5C059CDE260BEF9AAB8A3CF69B18
+4E7D5774F9F9287D9393992E72E72900D21934004BD4955C18620E743AB24E1A
+052949B947C3B92A198548326334122F31B80758986658060A991079547D709E
+4E5C2D2E61168C4EE0DF9B705AD3429287F3CF568F3ED5531933A373820A558E
+6CA3D08B8BABBC7756D8993C24E53BB977EB91F68019EAF355A444B377F16B5D
+9FE495856AAED6B93B44D6474D7E8A5E03AAA7F561FF592DA31B0A26A4B0C0D7
+93D26336B3476B245DDA9C0313623092BA3F63985ED1757A9B90240F9D63D3E1
+9F7F37FBE940713F1C870709A2628C65470CB40CA0F75205B7DB2B72E28D4399
+B9052AC7C5F18FF62AA6372307A436A78B5D8F4BD62EE869A75EB816D699213D
+E9A79AC88E2DB38744794FDEE3B624BF4DD1E799518655A031E6606C1B5E17AC
+F43BCDEFCA155C51FCF63810462F4320A5521755DA3184E7119C9F1F6589A826
+CE675D42C62F41EAB7D15DADA13B45B2D67F4E4E0A443818A4158CEEF91FE522
+7159025F3C2E16A7F8A4C611F65CA968323EFC91A8B031B4527A04BE944F53B7
+5F5CE05BF8B5D70CDD476D63F2DD4F66186DB132477AE6316F9263121D7AC942
+F39A7AA06FE83831D67F2562DB22656DAB4674F3D7B434DA39A6ACD91FA54EB3
+4B856049C34CFF2BDE594EAE855A7400AA906BEFBC23BAE9F25A655824DE68D8
+287EAD555B6D8B866D59CA5D6A1995BCC9F53AC0736A258864B787C101EDEDCC
+FA04250658EDFEE5A8AEC281AAF01AE6F201D76C53415F97AF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 102 /f put
+dup 112 /p put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7DA5E8D21B862CFC42AD1B6B2F9FE5A3EDDC1BEDB5C7C060D7704644D7
+F6BA9695E1B63B5B18675BFA7572155A6B628438E13935DC35C1193C5CDD1DA9
+12F6958F42E0CAA5D1CAE65F9CA0B9872779355B06DEA1C333A549CFF06BDE04
+A3346BA9ADA334FF9159D9EC55D2200D9650CF3717EB2B6CCA4C01D49654FD94
+A4405E2CA061C6B5F6CCFB387665B2FD7A102D88F708F4FECC1B707EE9769072
+8A994C50D5826B6423B5252529F6BD41DD7C4E30DFE9718878BB6721CC254AF3
+68A474461466DB277DF2CEED2CBE3347CE104AEA1E7718F8566CF46727683A11
+EEA2A3493F79D8E40755DD58EDEFDE2A09165453C54F4DC192EFA32F0085CC5A
+B4611EEDAA296705E7078A54F9FDC8B22EBF377309D12320D6F139DEA7199A8E
+417618450B644187FF874FCE195CB0355A1BC3A0912C26FA72C4E12C09CE5EA4
+57DCC110DA12F51AEA171579D493106DFE68715591504D4CF308595FFD6771C0
+78C5A4B0AEC23C74B16EFB16682D5FF8ED59C3B03A549990B829A5893DBAD489
+397619405F4CC1407F52B179B1330BC0A8046BF7623BCF35758C5449411F9752
+05052973DB8816A4BA9D1A54042C35BE3BD69902E8D2233B192CC6437A111533
+AC5BE7BA248692A287F575186AFAC5B628E15084D505887EBF012F840AF2416F
+CACBAF741D025DED9EADB6EC4CDD71DB602A83337A643003568D510EB2F33D49
+0133B893DFBAA9639715BD2CF74E2298149D07C2AB9629D54FD3A7202CFCAF91
+9B3F34F5F25282A51F0B52D8AB80BFCB179674EFD969E2CCE7CC39D423663B
+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 44 /comma put
+dup 79 /O put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 103 /g put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 115 /s put
+dup 116 /t put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
+71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
+F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
+81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
+8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
+4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
+9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
+B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
+4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
+828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
+E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
+C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
+C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
+3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
+CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
+78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
+31E8F6E32F83D91F721ABD116A40698F26610853E7FD075478979BEF42166C1B
+312E8C20CB3F080B08A69416DA402D336C627BABC4737FC72F8F4F6BB7D73551
+EE33D3CEA901C3369B93301EEE2C3475A9F5B96239829EA2EE6A4945C2E785C0
+8F110513E6F8F12B231EF94B606851F36BB2523F3B3ECB5EAF8EDFDA92B5DF5D
+892813AF0BA074FBAC5FF5BEB656BB00709DF2829F6A33A059F3188644A10801
+A24CB262CA08C7A96DF332C5E4270C9FF0C4CDDE279178B9F1D9D4E0F7393326
+ED91A1E6735C179602C3CD9B8EFB67BD1E8ED4B742EA90517E18B78FAEBC28D7
+AC38CC295F1E5A3F9D3FBCAB51106B23D07B8F34AE6F86A9F720F37386A786E4
+82EC5ADC4BCAEA80A7C0D267C227E76C7A4EB134ED99E73DFF17EDEA93C0BAFC
+BF85D00F5DA548080D5E0E4AC3B8712D1CA44E0FFC78679BCFC1B3B342A5B656
+689AFDD90C8CEF6056EC65CE4A345F755D539329003F1B3E883E69438970CFA0
+1475B1605C08E5B2DFEDD96A1F0B8D39695D096825DDB6BC7E59ED22D13CFDF5
+99DD43370E6F28DB5DE10FC5A24F299EFE32DBF5035ABCB18BD682234879B242
+A1896369D59A6B8297CC9EFE00FCB9EFCA2D26256E32A6BFAA01005BFE6CAD1D
+AB51404E61F1C433D00FFD6A9B3884539ADC69317786D9D8BA8CAA99CB0586D2
+E302C320968C6464AF53B224217DD227ADB9F0D01F5780F7CD67B369538A7F72
+924CF6C07CD9DA0E44091329744F69E5F772478AA6AA0022D9A9FFB58E93A448
+764993E700403ED2699791941DF5B15428AECC3E8AB201D9481592169C1E3266
+7689E2AE83F8CDE6A150FBE63DA96B36C396EB3D6AE5A1B0363A2FFB60111A52
+399E147EED19DE22BAF32962676615D54487981BEB2778A705A4212C5195340F
+E6B0C3C49AE4764DF25E56A2B93B9C176FD9F34E2FF2304A0A97B272D17ECA9F
+D790BE0A348C760F81D2E7CD98BEB45A7FD142DBAFAC6E4CDD4506D240680504
+7725A6706943DE85046348809BE8495ADBD588E16D26C0D0FF415D07077D2CDB
+EF40F42B1C08B5257AEE7D7D07FCB0113AE2B7EB46C8184772DF3F2E26E44B8D
+9303172B32C99B5EF3CE760B733C4F62AC776D70E88829E26312679BC878DB64
+EC9B1486EEFDB2434A38C039C40E8D6F1F86C74A3C52B7A04107CB769A1DA101
+B6791470835A817159FCF13B30B6F496B2C471C89C15F9745FA8856D58EDAF01
+6E342DCF297049E027D63FB893C3C80678C0929CCB0FCB87BC6013448541948C
+F8629C8BFF680DA0C7330E1D845EA3D62881CA864CEEFEAC44D046FDA839413A
+B1BB86386A47F36FE5868DBD292E28303320F2C959559965D9AE33C202FA9ED5
+F465D3FAF9C3436B3BD66AEB4E3D74A7ECA62360FBFC9E87E40D78B4DAC861B4
+3959E8127955FED295EFC3172D61464401B2254564662402EAF691F8755C6F37
+4857BCBF0A2F18B185F3F3D4B52FC510E6452D7F61B7F6CEDE0BB80CDA7E0957
+9ED4E78A942282798F9606029E2B480CB25D70BC930BDC03CC46CC89A838241A
+BD632E15BD3B369CD8F05901ACD5BFB6AD3F20AB27A745BB5A96600541294631
+4C3E9AF5A21017F71DB5C9A5615E84F02A34659DEB44AF3133E806FD663508B1
+72B4F09CD85A13A5F3E3740F86A1746BD83471D7AEFF44E0AE963F0712D79D19
+3E5A1F52BE5C218909DE272A12E3BF396BF8069234A4A01465FFB79108B91625
+086491C93BFEA818AD29930754F179F2198C00756CF0301A93B84D64F4AE18AF
+C98B706E9399F3ACBC8F6E444A18AB2E94A6BCD71DFB60473BADB5A62DBA48BE
+E295FA5189B2730F6F78B6D18679C389450AB33510799C7CCE3053D8B28F2F94
+9DC328D04AF562EEC88561F94BE7273F533B76677914EF5056F398F8A615EB34
+1DC5434735A132270D047A5427AD475D71A5AD47F5B52C202426D58F6DE5C4E0
+6347280B37464FEC4A528E2F4B4DC9A45F59DD286DC51EBDB26CCF714731177D
+819094AC0F6F110E1067B56AB17BF2BF22741F67B27A1F620B9366EEE60CB053
+0667EFC82259B6E3DBDDE9014FCADEFC01EF64B70CDF5E2994F98F060AE195D8
+B674AB8151494CE85F156F96B3630EA2AF9EA4A86896B8B521E6FD4C7DA4DBD3
+A6A775F56D4FD8025306EEE7202B4B70E687A085F04CCCCD51F88F5167ABAA08
+B028E5F8CFA44E11B8C82ECED923DB14E7F9810921D2643557474DA6C9548FFB
+BE349C6AF7E58E6DC748F2C8B5F152D41947C3D7D889242DF01F456B84A485C4
+AB15EF5584985C02CA8A41D835DBD91BDA95C3EF8F50518178D26E66D39F8322
+F50359CDCD3B92693702C1C736F6A9719E14D476D1E65D4F2F4915CCC9186B4E
+95599E9778D8BF7FDBAEDF3F9C2133324E82FBCAC2FBE4E2BA03A69086612C95
+A1F29F8228B96EAA05A624126E7A8584E7D81CBD93A6F5E433917FFE72FBE64B
+4BAFACA17282236629978B417609E904F9EF0898230AAE86B35D988A7D82FC95
+79B71945B7419F8628D3DA5665EC974CB49F8F3F169C20075494ED722B7C4BCA
+11885E72D892951E2D21444958BE97F71E96AC27708ECA23DEAFE7C4F9133385
+88EE44D12373082BFCCFB913FF7E31DA350ED9300F4238A7207EBE8B5C9B0C15
+207DADF4A4BBF8EA281A00FE661C9CAD784526B1796DFEDB3B6BF4F38B051D75
+ADB06C10188014BF11A70FEAFAD34A8AA90FBD31A6B53CEC8F00FB6836E05E9C
+E18C5EE2D73373FA5FC7CED07DA3318CBCA4DD57AD9AF25A50702EA464B92AEF
+AE56079107A2614FD23E828A95B06480A9B174A8F4A17DFA2E988D23A691BF9E
+E2BBF5EF1937DC0D1F3E832C07C2314426BE315D2BA04740ED2760F252007A90
+9ECC8CD9840497F9E8251B5C1A67165544BF4298F3A95F94F6EE2579045524D8
+0D17D579466A10BC30B1875A245721E23DE71C59FEB7E85D5B15DA08DB6FA808
+C669ED3E91A3CF4076E90F1A93921BA54C4040CF8617D95ED265BA10D007F342
+40931FBFADEB0C67C62257FC4F8B34C071691833B44BC6F7254D211DCEC5DCFE
+65DE419945BE55F65474EE30EF685585DDFC9E77C5E0B0C23758C59C80BBCC45
+B4058515E4A740679DA604AF639705632535311C803FB1B3E234590C839C5ED6
+0832D6837DA0EE75FBD35E2F042320429D194B974596D1880BCD74E74C46CDA1
+C8165A276F1F4FDF3E76FA30D46614E3FA838070321E871232D7C42B7A1632C9
+7C3B101BDFC0277756D4C19B291E5485BA7C55029EF180C8CAC354B3D4C84FD1
+A421DD85230FB100661DCBCCF993BA702015BE6D06B51FB14D198FF42568A6A7
+705773C6B97C81BC7919920414320FD7C4041B70EAD5CFE4D59CF848D9790B38
+45CBC674309A1B5633053D4309D37563865F7C0C5E14260B7E9A6B9BA1C1D48C
+9640E23AE48903F2B15ECD4BB4C44A80DD0973415C9AD0D797CD62B350114AB2
+DC905C7EBFEC000271451C850CD77A530568B9E8EA670F7A0FE9866A9E1CBFCC
+5B5615A40EFBC3044E76A7148280E061C089E57EFB0A27A1AA159642797F42FE
+119A42C8EFFA9C50962B575BF4B8E0C2A47FFA686D443BD6BB8A17CEE9165420
+EB339E1CF74127CAAD11D7AFDEA4C07265FBD74B26C66BDE32411F6D0FB6A40B
+88C5A3040E2B6F95EEC8FF51C46E774298A8028B431A4EB8245C54CFA023613F
+FE9AD1BFE86E805F89CEF4375008708E5C14AFFA119723C8E673FE640C4CF5DC
+1684A12F3BE689FA85751A0FBDA29AE7C4755A530D6D9F4DF4F868CBFA6BFA2B
+DC7BB658107E15F4D6CA776A3192EB0683508241B7F5535B22B06F0E4DF27F5A
+2D0BABDB34F10809E27CF3C747D81DCEBFDD923F8553ADE595DB5802CC60DE76
+B8D3AD3DD54BB5E0CF0636B87B272D2B748EF0E7246328C4CC5A2D2E9B837B80
+F8A6163C3DEB2ECFFBBA894472E5FF6F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 24 /perthousand put
+dup 25 /dotlessi put
+dup 45 /hyphen put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 71 /G put
+dup 148 /Tcaron put
+dup 195 /Atilde put
+dup 201 /Eacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF8647CDA944FFAE6182F991CDF884A974262D31362D2CF0317CF97E29
+EEC652612CE1B987BF57B7A60BA840D2512039A8C81F229855008D6E58B76DA1
+D93486DDE86D173AD3B5AF2997FBA58A2FB615DEB2C802351A89F44B6CD6663B
+BCD73ABFD0DB844C34EDAE6C1F1D0498B158C9C0BBA09D05EAEC505A60623A12
+A6FB844DF87E1ED01AF28839F5D02008925F1E2C258C2D95E222EA6F45D45DE5
+3525FD8CDFC5E3F80E99160C65B216974F2D70967DD634310E466AE26FD842B8
+11E8C533D03D3468B4DDEBFD40A9A32963B749C797F9F2D880026615527D96DB
+8F297EA39D7AA22B532C044303655C27E170F9EC817D9C33975196CB7A4E5B5F
+D2744342C7D1B12D69DCE8B76AB61328E999260C639C069C4BD6111BE76BB8F0
+B46304B24CCD092A9BE4DEA587A963A4DDADDD946F316A11669B81EAA99EF9E9
+BB71F4B9723B4EB343B5506989F9F76D19F45691003C9EC070179F134CA3534C
+60483D0112F9E30F49E8B5CF93258332EC3A29504FB145CA3919C8AE71EA5068
+002B6673923B7120C09147F590C1FD073A3FC1361B6DF54F5921574591F772B9
+1D636D0A6CF452FD8F07A7B8399A2442164CC7E91404B853FCF2BBBCFA61F0DD
+E822821C2BBDC9BA136AC301C5535D02A9FD7F19F38C183A78F86CCF2D3D8892
+C5C5E7A7E3F23FB78E806109EA8378FEC04E2676CCBCD3546F94BD429A95C402
+1CF699C5DD2DCCEBA191B50899DC349215479CE0F122927D8312C7C58F85BA6A
+1577DDAC8FFAEFAC6C44AD54286776F1B2E2DF13C4B64C1B61393F991AC165BC
+CD144F3D13FA1E0F80BCCAC5AF5F14D089DDC85CC850929DC47C498DA96D2617
+F044C026492F6F57F742190C1B2E931B9FDC0B787888C8AC6496C8F0E066BF25
+127EC3F059E59FD0D8D437B41BD342100DEE78F6FE38B62BEF7E5091E27BD6F7
+4B37657C48E56B0B5DDAD9BE919CC40EFCF107512B2FAE3C758E43ED504452C5
+063FA8F76357572CB878BDE186309C42CDD369B93245BB46DCBA06028F59D7D0
+292BB3A31D3C795B383A0C2339EEB5A8D6B91418AC4275E69E122D0F7158FA6D
+E1E106365F7E94F8C41E6B85FD4F891D65AB0E87927BA8952C1D6D2C4CF1BB86
+C021BAF918D29D34AD92402DC5A16926A5D49A2DDABEF01BAB3D649EF833A462
+74371CAD10B9F590276F339B9BEEB237F0C679D5651C44EA0E8061635933BD24
+DFF7899756009F82CBD26998AC060F9B419C3A3318C542D03F8A82185F484CBD
+220EFD2C9B598B3762E611868693E340BEC1E63DE296CBC4C7FF54A6406AD170
+1424B9BF038936D0498DF4106F065A916CB5DA6B0720A6A0C730ED28F78CDCD7
+C2B6C537843CD64DE16F99B4EEA28B2FAF7D199ECEAAACCDA13B603C0195EADC
+225777EA1983C26641B5A5ADF6C4E63A50C30AAD5C07A8720BEC7617ED840288
+AC3FE6B372114D728E8683017D1066297159219CE6EF1B616EBF997B3BFE0E9E
+63600C5C4311B06738E94925A79A9385606AFF354AEAAB6DD95048B8BB96E8F8
+9413938BB36A529F361455382D292F6C27DD343D5C0084DB94F951F72DC15D14
+A910AEFCFC02C6E8C96660D3C8120725EB5B33626B7C1C46FA70C8B585238DDD
+778A090AF219B5AAB0F4199F773F81CFF6CCA5C5FFDD29911E3E7C795A8CBE46
+0F9498647CB7A5D1E9F47BAA79F4B6451EACE165BAB57A76A6441E5B60EE6172
+CF44BFF09E2512D85709E6AF493B4D83A1D443FEB7E817AB01D66AD419115F85
+36F2BE6050E595D4181926BB1F387F8C98FC147BEC1C53C21A747EF53AA5E419
+3AC8F47B778321607FC8CBDDD0BC4AA544E0A232BEAE0A053227350C82A47164
+1D14B125032A700C3ADF4D78C2C77020A6C5624D3FBF854D0298D16B9D98C424
+D839E2AC1C59C7BBF97AE7C6C44258033757B815E96ECE2CA9A85539F5B23346
+2B83A58CAC79DDBE6FA39D736B7FF4DDDDAB4B1D92F5EAF412398D1FA9D5FF8C
+3D037F565E726C1FE3ABE768F69035B71E136791010AB279D1AC7DC669BFE6F1
+CCDF0E8FDBD2765A2B75D4D59238A6ABB6DB63D4B62B89848A72FAC831E1A556
+F58FD934DD7160C4B2A9630F838C7FA04622DDFC46C09D30E083DE2DFFA3DAD2
+04076F8CCF2389B08F4A9398B7F6A497A0513BEDAE2692BE6F30193AE2B8F4EC
+06B6E5FB8A1FB2EB5ACFD9A20DDD23C8065684D774A3B2DEC8D09C07900DC148
+14C46816559562A431CA2FE1C07CE4EFDDB59D56E0E2743A57BE7F70BEBC6E35
+55D9D1CCD9F794B6
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (tristano.dvi)
+@start /Fa 243[0 4[0 7[{}2 85.0146 /TeXMUSIX11-Regular
+rf /Fb 204[36 51[{}1 66.4176 /CMTI8 rf /Fc 140[34 35
+4[68 3[25 3[38 42 38 52[25 46[{}8 83.022 /CMTI10 rf /Fd
+143[49 9[33 102[{}2 83.022 /CMBXTI10 rf /Fe 139[32 33
+3[42 46 1[23 2[23 1[42 1[37 46 37 46 42 17[65 34[23 44[{}14
+83.022 /CMR10 rf /Ff 54[133 5[133 46[66 76[106 16[40
+1[40 1[40 4[0 19[0 0 15[0 0 6[0{}13 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 60 39 3811 4 v 60 72 V 60 105 V
+60 139 V 60 172 V 60 137 a Ff(G)169 104 y(2)202 54 y(2)236
+120 y(2)71 -179 y Fe(Ob)r(o)r(e)28 b(da)f(caccia)g(solo,)f(on)h(stage)
+344 61 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (13.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 344 61 a 286 270 a Fd(p)349 253 y
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (10.0pt) GD N /C1dir 0
+N end
+ 349 253 a
+321 203 4 117 v 322 87 a Ff(\010)530 -1 y
+ slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(20.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
+ 530 -1 a 487
+137 4 117 v 488 21 a Ff(\010)p 654 172 4 135 v 704 170
+a
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 704 170 a 659 253 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 659 253 a 672 237 a Fd(f)p 699
+129 4 108 v 700 21 a Ff(\007)700 129 y(\224)720 125 y(\224)p
+772 6 60 4 v 782 112 4 125 v 783 -13 a(\007)846 253 y
+Fc(dim.)p 856 6 60 4 v 866 120 4 117 v 867 4 a Ff(\007)867
+-13 y(\000)p 1010 162 4 108 v 1011 162 a(-)1011 54 y(\007)1137
+-18 y
+ slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(22.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
+ 1137 -18 a 1093 220 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (14.0pt) GD N /C1dir 2
+N end
+ 1093 220 a 1083 6 60 4 v
+1093 120 4 117 v 1094 4 a Ff(\007)p 1211 172 4 135 v
+1261 170 a
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 1261 170 a 1246 6 60 4 v 1256 145 4 142 v
+1257 4 a Ff(\007)p 1340 149 4 79 v 1341 70 a(\007)p 1423
+153 4 133 v 1424 21 a(\007)1256 145 y(\303)1378 151 y(\303)p
+1507 157 4 71 v 1508 87 a(\007)p 1590 153 4 117 v 1591
+37 a(\007)1591 21 y(\000)p 1734 129 4 108 v 1735 129
+a(-)1735 21 y(\007)p 1818 172 4 135 v 1863 220 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 1863
+220 a 1863 153 4 117 v 1864 37 a Ff(\010)2049 54 y
+ slur@Dict begin (2.0pt) GD S0hgt (14.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.2 S0dir M 0.15 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2049
+54 a 2049 54 a
+ end
+ 2049 54 a 2029 170 4 117 v -19 w Ff(\010)p
+2196 172 4 135 v 2309 21 a Fb(3)2207 270 y Fd(p)2241
+54 y Ff(\030)p 2241 195 4 125 v 2242 70 a(\007)2309 87
+y(\030)p 2309 202 4 115 v 1 w(\007)67 b(\030)2242 195
+y(\311)2248 196 y(\311)p 2377 209 4 105 v 2378 104 a(\007)2425
+253 y Fc(cr)l(esc.)p 2445 153 4 117 v 2446 37 a Ff(\010)p
+2612 187 V 2613 70 a(\007)p 2730 172 4 135 v 2775 120
+a(\031)p 2813 104 4 92 v -16 x(\007)2866 120 y(\031)-39
+b(4)p 2904 120 4 108 v -1 w(\007)91 b(\031)-39 b(6)p
+2813 20 185 16 v 2996 120 4 108 v(\007)p 3025 170 4 117
+v 3026 54 a(\010)p 3192 203 V 3193 87 a(\007)p 3310 172
+4 135 v 3338 253 a Fd(f)3355 120 y Ff(\031)p 3393 120
+4 92 v(\007)3423 154 y(\031)p 3461 137 4 102 v -17 x(\007)3514
+154 y(\031)g(4)3394 29 y(\311)3422 32 y(\311)p 3553 154
+4 109 v 3515 154 a(\007)p 3582 187 4 117 v 3583 70 a(\010)3702
+64 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (12.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 3702 64 a 3723 37 4 70 v 3724 37 a Fa(\014)-24 b(\007)3738
+54 y
+ slur@Dict begin (2.0pt) GD S0hgt (14.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3738 54 a 3738 54 a
+ end
+ 3738 54 a 3730 253 a Fc(dim.)p
+3749 170 4 117 v 3750 54 a Ff(\007)p 3867 172 4 135 v
+3870 336 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3870 336 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristans.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristans.eps
index c72c1b9ec74..938661dc09a 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristans.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristans.eps
@@ -1,1204 +1,1204 @@
-%% LaTeX2e file `eps/tristans.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: tristans.dvi
-%%CreationDate: Wed Jan 21 14:06:26 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 79 733 542 801
-%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMBXTI10 CMTI10 CMTI8
-%%+ TeXMUSIX11-Regular
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE tristans.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1406
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: TeXMUSIX11-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
-%%CreationDate: 01-07-25 at 04.06
-%%VMusage: 1024 36750
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 700 300 0
-%%EndComments
-FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX11-Regular) readonly def
-/FamilyName (TeXMUSIX11) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -200 def
-/UnderlineThickness 100 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 700 def
-/descent 300 def
-end readonly def
-/FontName /TeXMUSIX11-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 12 /ogonek put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -3182 6250 3186}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
-46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
-4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
-BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
-66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
-021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
-15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
-4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
-3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
-FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
-99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
-BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
-1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
-9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
-698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
-33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
-423775531C98D6D16EA470D1CF6A101C2659527FA9145E008860E294728C62BB
-A2C6AD31A05A13180271FA4370F51BA493A3B744404BF5F65496B401DC928352
-2B9B436D65DAFDF80336D769F8B96FF771FED249F876337F7D485032EF1073BC
-902817ACD27F498A007F9855475A259550465AB98276EBB907E9D81035790B02
-7882083FA5417013846534C76F505678E832EF8E0913DB621E0819B1BE0450A8
-DB3164029BCDC0D09696069E9CA135EBCBE2C69623B7659E014E671747CBBA3C
-85FC68582CD84AC711DAEEB9A902FDC403349DB9D0759038FA9142956155C25B
-53A4C9ACC5971505EE7CFCB891B4C6D9D34DA6A90F87E0F97E38B928E23467BB
-2275D8AA11B3D623A202160D7809968375E0E27FFA11420CA2C15B05851427FC
-76A597369A21E1AF1E9B089F817B838A08C4CCD0E9E0868E72C23145B5812CB1
-AA30A813F643AB403F3538BA77F4BD847A6A5ACE0B2AB8BEDDB7E6078FCD99B1
-6920E56EEA409938
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 51 /three put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
-8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
-B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
-FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
-C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
-74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
-20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
-DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
-C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
-900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
-2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
-C9D16A50DEBBD3862698DD582667C8A8079FD1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 105 /i put
-dup 109 /m put
-dup 114 /r put
-dup 115 /s put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
-E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
-BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
-72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
-5EE89221BFD28AE8117B615D410CDAEB5320E61ABF819F329A7D5BF9515B3185
-0FF3013629B014C1534F7FBD9D52E08ADEBF16825B771C07875DD38BDD824031
-6F8028544EC27010E2E6FB4C703B6D98704F2F2907FD217F84E492FB80F3E49E
-3C4E6440A5C164D9B85E8800F323DCED9BE387F3943B66565AB6E58EA710A3A3
-43A13E35BA105BF2B677925E8F18BD595E14BD1AAE7D15B50DE8E663C0D24932
-A53373AFC8861B91B6C88E63862986C931E7F709D61CDFAEB53B8706E06E6D75
-5C8748F1B1DAB77E1C7D745B1311C5F8ED0F3761AF31241963FA91A8E9A788FF
-751496A4CFFDCF5DE4C70C4AE9069DEED820A9A178695236158E72E3C1854162
-61608B03A4CC8FB3B8FC11572D4689BADA31F96EFB3A30394EEB83B427A88F9B
-B5944CF928F71A6CAEFC1D2706526E20FC5B9631BFB7D4A02C7E4D01F6A9F69B
-AB061550421D443D3D05B960693F2CF9EED704D3959F416F0A38C35921A99174
-ABBDA9E6315ECDA014F5C5DCC357AF8FD1A201AE547E9E83754EF4F7304AC983
-B55825D2045B8303899ADCF674071B7B8D384F504DF1C1C57D1AC24A5909B96B
-94971AFDEDE1E04B92D99A99C19F2010FF24A53080C8A56BF3135C9A6D822FF1
-0E3462CAB8E50744E804144216A828D197E739CBA322728C99F6BE744F14B126
-D5FD150E6F1F486E8C0CABD57DE8112AA33A474323DB601D13C0156B394147F6
-B2DBE26AE6BBB1A4433033F47B2E25A895E456F0D8238EE0337126093260D8DC
-C95C2E3D93324F77234E16FC33B0711A7171783784444E66DE94557E0B45F468
-C8711C164E115CEF37EC78BD659306F09B98FD5F328CBC5C54AAF682DDE9A3F5
-36FC391F4D63D8260255843B9D34CBE341534CC146FA8DF63FEE11125966A480
-462BCB1D2C5022336AEF4049F3AF88318BDDBC2671306A662B679536D176B50F
-F43551B70A5754C1AE43D9C12F9987BC31E7B0A545588C68FBB4C0B8BC740C98
-5A682E1A1EF1ECB4A9CA6813DEA72ABF88C14009C6CCCEFAEFC9448792D22BA6
-9A88068D9C89EF7C123823A7454AAFF55C41130C8B984AA78D29264958CDFF86
-4E3CFA81F0A189E1C48F89E0CEE720764FA0B666A28C1DE5123D71DA6B547954
-6E37FD5F6040461A9E4640603366EFF360D567938FC38C1F41C6A668887AF6A1
-0FCFE167A67247368E76FAB48B32B252ED19F4247CD6473E4C3A93AE665E57F2
-EBC56F881FC93E11D43412DBAF31A53BA43C07B4DAEA3F6D523292083EE3CA04
-B9A98B51F9BEBE1CB2612F73E64D0DC56D132D32D77F14D7CD525A537F6A5189
-C9DC5D5A223B776F0D6435A32A46F72EED47C97A4E59FB9D21E47EC2CFA281A9
-6DD3BD631433BA11057B2471883F009CC7CE75F9BA8228D329FC2267403CE4EA
-E1A4D7C7F0594568F64E0E1DA5FC3141E4FB5C059CDE260BEF9AAB8A3CF69B18
-4E7D5774F9F9287D9393992E72E72900D21934004BD4955C18620E743AB24E1A
-052949B947C3B92A198548326334122F31B80758986658060A991079547D709E
-4E5C2D2E61168C4EE0DF9B705AD3429287F3CF568F3ED5531933A373820A558E
-6CA3D08B8BABBC7756D8993C24E53BB977EB91F68019EAF355A444B377F16B5D
-9FE495856AAED6B93B44D6474D7E8A5E03AAA7F561FF592DA31B0A26A4B0C0D7
-93D26336B3476B245DDA9C0313623092BA3F63985ED1757A9B90240F9D63D3E1
-9F7F37FBE940713F1C870709A2628C65470CB40CA0F75205B7DB2B72E28D4399
-B9052AC7C5F18FF62AA6372307A436A78B5D8F4BD62EE869A75EB816D699213D
-E9A79AC88E2DB38744794FDEE3B624BF4DD1E799518655A031E6606C1B5E17AC
-F43BCDEFCA155C51FCF63810462F4320A5521755DA3184E7119C9F1F6589A826
-CE675D42C62F41EAB7D15DADA13B45B2D67F4E4E0A443818A4158CEEF91FE522
-7159025F3C2E16A7F8A4C611F65CA968323EFC91A8B031B4527A04BE944F53B7
-5F5CE05BF8B5D70CDD476D63F2DD4F66186DB132477AE6316F9263121D7AC942
-F39A7AA06FE83831D67F2562DB22656DAB4674F3D7B434DA39A6ACD91FA54EB3
-4B856049C34CFF2BDE594EAE855A7400AA906BEFBC23BAE9F25A655824DE68D8
-287EAD555B6D8B866D59CA5D6A1995BCC9F53AC0736A258864B787C101EDEDCC
-FA04250658EDFEE5A8AEC281AAF01AE6F201D76C53415F97AF
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMBXTI10
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-%%CreationDate: 1991 Aug 18 17:46:30
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 102 /f put
-dup 112 /p put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA7DA5E8D21B862CFC42AD1B6B2F9FE5A3EDDC1BEDB5C7C060D7704644D7
-F6BA9695E1B63B5B18675BFA7572155A6B628438E13935DC35C1193C5CDD1DA9
-12F6958F42E0CAA5D1CAE65F9CA0B9872779355B06DEA1C333A549CFF06BDE04
-A3346BA9ADA334FF9159D9EC55D2200D9650CF3717EB2B6CCA4C01D49654FD94
-A4405E2CA061C6B5F6CCFB387665B2FD7A102D88F708F4FECC1B707EE9769072
-8A994C50D5826B6423B5252529F6BD41DD7C4E30DFE9718878BB6721CC254AF3
-68A474461466DB277DF2CEED2CBE3347CE104AEA1E7718F8566CF46727683A11
-EEA2A3493F79D8E40755DD58EDEFDE2A09165453C54F4DC192EFA32F0085CC5A
-B4611EEDAA296705E7078A54F9FDC8B22EBF377309D12320D6F139DEA7199A8E
-417618450B644187FF874FCE195CB0355A1BC3A0912C26FA72C4E12C09CE5EA4
-57DCC110DA12F51AEA171579D493106DFE68715591504D4CF308595FFD6771C0
-78C5A4B0AEC23C74B16EFB16682D5FF8ED59C3B03A549990B829A5893DBAD489
-397619405F4CC1407F52B179B1330BC0A8046BF7623BCF35758C5449411F9752
-05052973DB8816A4BA9D1A54042C35BE3BD69902E8D2233B192CC6437A111533
-AC5BE7BA248692A287F575186AFAC5B628E15084D505887EBF012F840AF2416F
-CACBAF741D025DED9EADB6EC4CDD71DB602A83337A643003568D510EB2F33D49
-0133B893DFBAA9639715BD2CF74E2298149D07C2AB9629D54FD3A7202CFCAF91
-9B3F34F5F25282A51F0B52D8AB80BFCB179674EFD969E2CCE7CC39D423663B
-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 44 /comma put
-dup 79 /O put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 103 /g put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 115 /s put
-dup 116 /t put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
-71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
-F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
-81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
-8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
-4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
-9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
-B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
-4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
-828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
-E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
-C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
-C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
-3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
-CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
-78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
-31E8F6E32F83D91F721ABD116A40698F26610853E7FD075478979BEF42166C1B
-312E8C20CB3F080B08A69416DA402D336C627BABC4737FC72F8F4F6BB7D73551
-EE33D3CEA901C3369B93301EEE2C3475A9F5B96239829EA2EE6A4945C2E785C0
-8F110513E6F8F12B231EF94B606851F36BB2523F3B3ECB5EAF8EDFDA92B5DF5D
-892813AF0BA074FBAC5FF5BEB656BB00709DF2829F6A33A059F3188644A10801
-A24CB262CA08C7A96DF332C5E4270C9FF0C4CDDE279178B9F1D9D4E0F7393326
-ED91A1E6735C179602C3CD9B8EFB67BD1E8ED4B742EA90517E18B78FAEBC28D7
-AC38CC295F1E5A3F9D3FBCAB51106B23D07B8F34AE6F86A9F720F37386A786E4
-82EC5ADC4BCAEA80A7C0D267C227E76C7A4EB134ED99E73DFF17EDEA93C0BAFC
-BF85D00F5DA548080D5E0E4AC3B8712D1CA44E0FFC78679BCFC1B3B342A5B656
-689AFDD90C8CEF6056EC65CE4A345F755D539329003F1B3E883E69438970CFA0
-1475B1605C08E5B2DFEDD96A1F0B8D39695D096825DDB6BC7E59ED22D13CFDF5
-99DD43370E6F28DB5DE10FC5A24F299EFE32DBF5035ABCB18BD682234879B242
-A1896369D59A6B8297CC9EFE00FCB9EFCA2D26256E32A6BFAA01005BFE6CAD1D
-AB51404E61F1C433D00FFD6A9B3884539ADC69317786D9D8BA8CAA99CB0586D2
-E302C320968C6464AF53B224217DD227ADB9F0D01F5780F7CD67B369538A7F72
-924CF6C07CD9DA0E44091329744F69E5F772478AA6AA0022D9A9FFB58E93A448
-764993E700403ED2699791941DF5B15428AECC3E8AB201D9481592169C1E3266
-7689E2AE83F8CDE6A150FBE63DA96B36C396EB3D6AE5A1B0363A2FFB60111A52
-399E147EED19DE22BAF32962676615D54487981BEB2778A705A4212C5195340F
-E6B0C3C49AE4764DF25E56A2B93B9C176FD9F34E2FF2304A0A97B272D17ECA9F
-D790BE0A348C760F81D2E7CD98BEB45A7FD142DBAFAC6E4CDD4506D240680504
-7725A6706943DE85046348809BE8495ADBD588E16D26C0D0FF415D07077D2CDB
-EF40F42B1C08B5257AEE7D7D07FCB0113AE2B7EB46C8184772DF3F2E26E44B8D
-9303172B32C99B5EF3CE760B733C4F62AC776D70E88829E26312679BC878DB64
-EC9B1486EEFDB2434A38C039C40E8D6F1F86C74A3C52B7A04107CB769A1DA101
-B6791470835A817159FCF13B30B6F496B2C471C89C15F9745FA8856D58EDAF01
-6E342DCF297049E027D63FB893C3C80678C0929CCB0FCB87BC6013448541948C
-F8629C8BFF680DA0C7330E1D845EA3D62881CA864CEEFEAC44D046FDA839413A
-B1BB86386A47F36FE5868DBD292E28303320F2C959559965D9AE33C202FA9ED5
-F465D3FAF9C3436B3BD66AEB4E3D74A7ECA62360FBFC9E87E40D78B4DAC861B4
-3959E8127955FED295EFC3172D61464401B2254564662402EAF691F8755C6F37
-4857BCBF0A2F18B185F3F3D4B52FC510E6452D7F61B7F6CEDE0BB80CDA7E0957
-9ED4E78A942282798F9606029E2B480CB25D70BC930BDC03CC46CC89A838241A
-BD632E15BD3B369CD8F05901ACD5BFB6AD3F20AB27A745BB5A96600541294631
-4C3E9AF5A21017F71DB5C9A5615E84F02A34659DEB44AF3133E806FD663508B1
-72B4F09CD85A13A5F3E3740F86A1746BD83471D7AEFF44E0AE963F0712D79D19
-3E5A1F52BE5C218909DE272A12E3BF396BF8069234A4A01465FFB79108B91625
-086491C93BFEA818AD29930754F179F2198C00756CF0301A93B84D64F4AE18AF
-C98B706E9399F3ACBC8F6E444A18AB2E94A6BCD71DFB60473BADB5A62DBA48BE
-E295FA5189B2730F6F78B6D18679C389450AB33510799C7CCE3053D8B28F2F94
-9DC328D04AF562EEC88561F94BE7273F533B76677914EF5056F398F8A615EB34
-1DC5434735A132270D047A5427AD475D71A5AD47F5B52C202426D58F6DE5C4E0
-6347280B37464FEC4A528E2F4B4DC9A45F59DD286DC51EBDB26CCF714731177D
-819094AC0F6F110E1067B56AB17BF2BF22741F67B27A1F620B9366EEE60CB053
-0667EFC82259B6E3DBDDE9014FCADEFC01EF64B70CDF5E2994F98F060AE195D8
-B674AB8151494CE85F156F96B3630EA2AF9EA4A86896B8B521E6FD4C7DA4DBD3
-A6A775F56D4FD8025306EEE7202B4B70E687A085F04CCCCD51F88F5167ABAA08
-B028E5F8CFA44E11B8C82ECED923DB14E7F9810921D2643557474DA6C9548FFB
-BE349C6AF7E58E6DC748F2C8B5F152D41947C3D7D889242DF01F456B84A485C4
-AB15EF5584985C02CA8A41D835DBD91BDA95C3EF8F50518178D26E66D39F8322
-F50359CDCD3B92693702C1C736F6A9719E14D476D1E65D4F2F4915CCC9186B4E
-95599E9778D8BF7FDBAEDF3F9C2133324E82FBCAC2FBE4E2BA03A69086612C95
-A1F29F8228B96EAA05A624126E7A8584E7D81CBD93A6F5E433917FFE72FBE64B
-4BAFACA17282236629978B417609E904F9EF0898230AAE86B35D988A7D82FC95
-79B71945B7419F8628D3DA5665EC974CB49F8F3F169C20075494ED722B7C4BCA
-11885E72D892951E2D21444958BE97F71E96AC27708ECA23DEAFE7C4F9133385
-88EE44D12373082BFCCFB913FF7E31DA350ED9300F4238A7207EBE8B5C9B0C15
-207DADF4A4BBF8EA281A00FE661C9CAD784526B1796DFEDB3B6BF4F38B051D75
-ADB06C10188014BF11A70FEAFAD34A8AA90FBD31A6B53CEC8F00FB6836E05E9C
-E18C5EE2D73373FA5FC7CED07DA3318CBCA4DD57AD9AF25A50702EA464B92AEF
-AE56079107A2614FD23E828A95B06480A9B174A8F4A17DFA2E988D23A691BF9E
-E2BBF5EF1937DC0D1F3E832C07C2314426BE315D2BA04740ED2760F252007A90
-9ECC8CD9840497F9E8251B5C1A67165544BF4298F3A95F94F6EE2579045524D8
-0D17D579466A10BC30B1875A245721E23DE71C59FEB7E85D5B15DA08DB6FA808
-C669ED3E91A3CF4076E90F1A93921BA54C4040CF8617D95ED265BA10D007F342
-40931FBFADEB0C67C62257FC4F8B34C071691833B44BC6F7254D211DCEC5DCFE
-65DE419945BE55F65474EE30EF685585DDFC9E77C5E0B0C23758C59C80BBCC45
-B4058515E4A740679DA604AF639705632535311C803FB1B3E234590C839C5ED6
-0832D6837DA0EE75FBD35E2F042320429D194B974596D1880BCD74E74C46CDA1
-C8165A276F1F4FDF3E76FA30D46614E3FA838070321E871232D7C42B7A1632C9
-7C3B101BDFC0277756D4C19B291E5485BA7C55029EF180C8CAC354B3D4C84FD1
-A421DD85230FB100661DCBCCF993BA702015BE6D06B51FB14D198FF42568A6A7
-705773C6B97C81BC7919920414320FD7C4041B70EAD5CFE4D59CF848D9790B38
-45CBC674309A1B5633053D4309D37563865F7C0C5E14260B7E9A6B9BA1C1D48C
-9640E23AE48903F2B15ECD4BB4C44A80DD0973415C9AD0D797CD62B350114AB2
-DC905C7EBFEC000271451C850CD77A530568B9E8EA670F7A0FE9866A9E1CBFCC
-5B5615A40EFBC3044E76A7148280E061C089E57EFB0A27A1AA159642797F42FE
-119A42C8EFFA9C50962B575BF4B8E0C2A47FFA686D443BD6BB8A17CEE9165420
-EB339E1CF74127CAAD11D7AFDEA4C07265FBD74B26C66BDE32411F6D0FB6A40B
-88C5A3040E2B6F95EEC8FF51C46E774298A8028B431A4EB8245C54CFA023613F
-FE9AD1BFE86E805F89CEF4375008708E5C14AFFA119723C8E673FE640C4CF5DC
-1684A12F3BE689FA85751A0FBDA29AE7C4755A530D6D9F4DF4F868CBFA6BFA2B
-DC7BB658107E15F4D6CA776A3192EB0683508241B7F5535B22B06F0E4DF27F5A
-2D0BABDB34F10809E27CF3C747D81DCEBFDD923F8553ADE595DB5802CC60DE76
-B8D3AD3DD54BB5E0CF0636B87B272D2B748EF0E7246328C4CC5A2D2E9B837B80
-F8A6163C3DEB2ECFFBBA894472E5FF6F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 8 /breve put
-dup 25 /dotlessi put
-dup 40 /parenleft put
-dup 45 /hyphen put
-dup 50 /two put
-dup 54 /six put
-dup 71 /G put
-dup 148 /Tcaron put
-dup 195 /Atilde put
-dup 201 /Eacute put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
-A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
-FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
-C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
-4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
-12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
-86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
-88FA5E250E693DB155B6913264F3B85D228A9F989EA5A188DF3F3BE1452F23F1
-7015B830BCFB5DF729EE4E17F835FADF76689BBAF9E3A2227377047A0B638F12
-4B97BEC7660A31457CB9D0D91FD64FE1588CAE62727C3DAC45E4D8F3BB1F96B6
-8666A39647D1BD047DDA019E2A83D1E81A4D82A5595908219E8B9A8481FF8469
-1B7F39B5C21C81F6306C52A5D20C3EB78C00B16118B39FDC18A7C841435E6BD8
-D1937FC737D68D954E4B86AFE276FA551113F6A63D7F3E4AB202888FF12C1A05
-606702528C286AE8F24BCCCA88CB4884123F7323253276C9B098AAC9294068E0
-5A130D08D579F3BC85053066C62DEF7BF3FC92BA06D9B2EF110D3346A6437091
-2F96E090F2169D3F9CC63F39FDCFDEFA3AA6C9EF49866AED1E2B694582DBC021
-CF2A76AF094C79FA955BEECECBC87435CB720C00CCB3E9FCB021FF8AADDCCF1A
-0979CA707FFFB2CAFB007F9C5F998C50930E1AE5D478109A9376C7E137EB34D2
-348D63890248720C0D60BDFDE9179AABA61EA8EF72AEC10D48FF8506EDA4F454
-633B52B4454734A8C2026D8CD52859CAFB59214D32A1C5B654AB58A86B24DD57
-8237E0FEFDC67626A2D40F8064A3C68C2A9E715711784A2F7AD48D8DDC970AD6
-0AD176D8ED09C42E8E0FAE4CB01C0D3531A70225062D4C2507D8C22772557CCD
-CC6171D9F10E6F907F841D095F09F7867B3C7337FDAC66DFE852A1EEAEBE6319
-EF99244CC5A55E6F4CDEABE3697DD2EA438B6A5381B25278CD0892A9752BF1AE
-11189909F8A7A12085E01A74A74CAB5335E2CAC11F3792EC5D4EF3F9C32084EB
-9163CE8C624FF972E51559072C31587EE85665F9215F7EC57702D4F01587461D
-23D0DBFA30ED939881486EEC4B005986C40082B868EF0A8544B8CECF2E72A60E
-582C2D1EF5E36E98D40C9305BA2B6C729D93296D9DB7AAA7CB8B67367E888D9B
-010E6083BD0B789D014BF592D6D2877106A95091C6DCFD18C664F1A87AD3C836
-DDEB845B1763DBE3501399AEC7785EDAB91A7CF76AE0FE7C2F9F97FDA9C00765
-486F928FA1DC63B6968E61BF66CFF5785BC796A96A3D0E9BBBFE0FA3C47EF8C6
-53C30CDE63B5E08A00D9B4ACD570BD5A7608ED8608702AEB79BF1DFE67224835
-E7E7136BB8DE303717D94E263A3C7D0E72B36126F85E687A41DB07A0B35701BF
-6467E503A506BB0576E734529AF39DF3087A778D63248E6554D6DB8EDADD1CF8
-01A364D7DE98DC337AC960A0CACD1645DCF50A007800D8FBDBFA82336CCB7BD2
-B0AE2145F191B67FCB728DA7B49A2445D41C62B1430AED8F359D78FDEF137C37
-0DF8201F39F0F49467134B91FAEF904030A3EC5242A58E2FC03785050C54C9E5
-46AB34A2145B74F2CD07E4C7F25B55A2524AB3057BA15D78CF798B83B68E4FD0
-9D8DE06022C69C164C369C237DD28F44AD45551FAB4B847039934EEACA88F5DA
-1D6A3AC4F9082E8136A06AFB2A81C85E8EB5DADDEBFC07CBDD49206B13B702DC
-4E7627DB6AB2854B9FCD341FFB2EF92612EDE4E989EA6EEF44C67AE4211F346E
-53C105A3C5A97DD64A3BF04A3DE213BCD4A2FC290A3082D461C65924EC77818E
-CF5DFB3ECF424CEA121BE0A07849D4CE366FF3265B3DA278F716A6DE40520246
-85F248560F4483DA961D3D5732C69FFD8869FBB062D90772A217B2B69FFF77FE
-D15DF4678D06F8AE230391A2E73EF93051052154DA6312
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (tristans.dvi)
-@start /Fa 243[0 4[0 7[{}2 85.0146 /TeXMUSIX11-Regular
-rf /Fb 204[36 51[{}1 66.4176 /CMTI8 rf /Fc 140[34 35
-4[68 3[25 3[38 42 38 52[25 46[{}8 83.022 /CMTI10 rf /Fd
-143[49 9[33 102[{}2 83.022 /CMBXTI10 rf /Fe 139[32 33
-3[42 46 1[23 2[23 1[42 1[37 46 37 46 42 17[65 34[23 44[{}14
-83.022 /CMR10 rf /Ff 54[133 5[133 46[66 76[106 16[40
-3[40 4[0 4[0 14[0 16[0 0 6[0{}12 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 60 39 3811 4 v 60 72 V 60 105 V
-60 139 V 60 172 V 60 137 a Ff(G)169 104 y(2)202 54 y(2)236
-120 y(2)269 70 y(2)104 -179 y Fe(Ob)r(o)r(e)28 b(da)f(caccia)f(solo,)h
-(on)g(stage)408 127 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 408 127 a 337 237 a Fd(p)401 253
-y
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (10.0pt) GD N /C1dir 0
-N end
- 401 253 a 391 154 4 117 v 353 154 a Ff(\010)561 66
-y
- slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(12.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
- 561 66 a 518 203 4 117 v 519 87 a Ff(\010)p 683 172
-4 135 v 733 170 a
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 733 170 a 688 253 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 688 253 a 701 270
-a Fd(f)p 728 195 4 108 v 729 87 a Ff(\007)729 195 y(\224)748
-191 y(\224)p 810 179 4 125 v 811 54 a(\007)873 270 y
-Fc(dim.)p 893 187 4 117 v 894 70 a Ff(\007)894 54 y(\000)p
-1074 120 4 108 v 1075 120 a(\()-39 b(\007)1161 49 y
- slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
-(14.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
- 1161
-49 a 1118 270 a
- slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 2
-N end
- 1118 270 a 1118 187 4 117 v 1119 70 a
-Ff(\007)p 1235 172 4 135 v 1285 170 a
- slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
-M 0.14 30 T1dash T1adj 40 DS end
- 1285 170 a 1318
-70 4 75 v 1280 70 a Ff(\007)p 1400 137 4 138 v 1362 137
-a(\007)p 1483 87 4 84 v 1445 87 a(\007)1318 -4 y(\303)1435
-2 y(\303)p 1565 154 4 146 v 1527 154 a(\007)p 1610 220
-4 117 v 1611 104 a(\007)1611 87 y(\000)p 1752 195 4 108
-v 1753 195 a(-)1753 87 y(\007)p 1835 172 4 135 v 1880
-270 a
- slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
- 1880 270 a 1880 220 4 117 v 1881 104 a Ff(\010)2064
-120 y
- slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.2 S0dir M 0.15 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 2064 120 a 2064 120 a
- end
- 2064 120 a 2083 120 4 117
-v -19 w Ff(\010)p 2210 172 4 135 v 2342 -13 a Fb(3)2238
-237 y Fd(p)2254 154 y Ff(\031)p 2292 137 4 92 v -17 x(\007)2321
-154 y(\031)p 2360 154 4 102 v 1 w(\007)2389 170 y(\031)2293
-46 y(\311)-129 b(\311)p 2427 170 4 112 v 2389 170 a(\007)2436
-303 y Fc(cr)l(esc.)p 2456 220 4 117 v 2457 104 a Ff(\010)p
-2659 137 V 2621 137 a(\007)p 2738 172 4 135 v 2782 170
-a(\031)p 2820 170 4 92 v(\007)2874 187 y(\031)-40 b(6)p
-2912 187 4 108 v(\007)91 b(\031)-39 b(2)p 2821 87 185
-16 v 3004 187 4 108 v(\007)p 3071 120 4 117 v 3033 120
-a(\010)p 3236 154 V 3198 154 a(\007)p 3315 172 4 135
-v 3343 286 a Fd(f)3359 187 y Ff(\031)p 3397 187 4 92
-v(\007)3426 203 y(\031)p 3417 205 60 4 v 3466 203 4 102
-v 2 w(\007)3518 220 y(\031)h(6)3399 95 y(\311)3427 98
-y(\311)p 3508 205 60 4 v 3557 220 4 109 v 3519 220 a(\007)p
-3623 137 4 117 v 3585 137 a(\010)3716 130 y
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (4.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 3716 130
-a 3724 104 4 70 v 3725 104 a Fa(\014)-24 b(\007)3770
-120 y
- slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 3770 120 a 3770 120 a
- end
- 3770 120 a 3750 253 a Fc(dim.)p
-3788 120 4 117 v 3750 120 a Ff(\007)p 3867 172 4 135
-v 3870 336 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3870 336 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/tristans.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: tristans.dvi
+%%CreationDate: Wed Jan 21 14:06:26 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 79 733 542 801
+%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMBXTI10 CMTI10 CMTI8
+%%+ TeXMUSIX11-Regular
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE tristans.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1406
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: TeXMUSIX11-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX11-Regular 001.000
+%%CreationDate: 01-07-25 at 04.06
+%%VMusage: 1024 36750
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 700 300 0
+%%EndComments
+FontDirectory/TeXMUSIX11-Regular known{/TeXMUSIX11-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX11-Regular) readonly def
+/FamilyName (TeXMUSIX11) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -200 def
+/UnderlineThickness 100 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 700 def
+/descent 300 def
+end readonly def
+/FontName /TeXMUSIX11-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 12 /ogonek put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -3182 6250 3186}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE45183C178D3847B0FB289
+46B756FBC5FAD23CE6463328E99E2A80937200E6A3461FBF2DBB214EE1579600
+4A9B470D8843786B597FF0848602F82EF268B24C48444C4B9A0B5FB351F301DC
+BE6BC9E931F91BA646527E757EA5F26869A7D18D6CE67AAF77C5E2E1E9D800D6
+66DE6AC95C5DBD6168F315B796C216572D0646B5699EE61DE9D8E376A9919A8C
+021117E920B3CF5F22FCE2F0C0135521CD2918E2CC1724397A5DA2F4FA4FC6EB
+15FB0F97C550ECAB9072B42C64624FFBAF1DAB916980B717D891ACA289A4C82C
+4B79717BCFB00CD29942100A6AE6E789E756155CA096F9852CBAC92D3B54F58A
+3182CDA889F1DA0BC862298925493E267D7582D3A6008DE4305748A533EEC626
+FF26D134BE2BA1C4E08EAABDE2F44BABE996BA2A9EFE7CF18BDB5E6A83187324
+99A35C0D7564EDAAD95C6DCC8EA4F24A2949E598EF7A873E92B7538116F8E1B2
+BF1C237B923C9E86E570C91B876A4FEC2BB1FD8647270B7E6AB6C342212E388B
+1F1A376CCDC09148529FBA57A392030BCC14BCD0533218432405C73DB5BF4C51
+9AE659559E928C6E06E88D274DD8EEEDA3DF54ACB30DEEF8E09DBE901FF13765
+698AC821BE0D84FF77122EE2A78D05A41ACB175D7D4DA1DE8CC0FFCFD493EB72
+33EE82115905B77CC0C91AFFC83BE6A2B1CF083C718A7B1B36913B032095ECC0
+423775531C98D6D16EA470D1CF6A101C2659527FA9145E008860E294728C62BB
+A2C6AD31A05A13180271FA4370F51BA493A3B744404BF5F65496B401DC928352
+2B9B436D65DAFDF80336D769F8B96FF771FED249F876337F7D485032EF1073BC
+902817ACD27F498A007F9855475A259550465AB98276EBB907E9D81035790B02
+7882083FA5417013846534C76F505678E832EF8E0913DB621E0819B1BE0450A8
+DB3164029BCDC0D09696069E9CA135EBCBE2C69623B7659E014E671747CBBA3C
+85FC68582CD84AC711DAEEB9A902FDC403349DB9D0759038FA9142956155C25B
+53A4C9ACC5971505EE7CFCB891B4C6D9D34DA6A90F87E0F97E38B928E23467BB
+2275D8AA11B3D623A202160D7809968375E0E27FFA11420CA2C15B05851427FC
+76A597369A21E1AF1E9B089F817B838A08C4CCD0E9E0868E72C23145B5812CB1
+AA30A813F643AB403F3538BA77F4BD847A6A5ACE0B2AB8BEDDB7E6078FCD99B1
+6920E56EEA409938
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 51 /three put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4803AA3E45F388F65179AA988898B7B7A8253769D17D3D2C58F96719AE
+8FD75C13E9BD87BB294726ED108EB7326C293B1578E5FE562DABF15039961378
+B92A3EBEDFC321707C2A7E6EFBA9B35BD36584D9CFA080AF28D33385E724F856
+FD3AB24F1418E47FEB310BAC91C48D3667EA39D6259E109FBA1BFA994AEEACFE
+C23D06DFA2B930927A086EEA28C78AFBB48405A264440A8312CE1993A07256A0
+74AD005A6E08D914A3242B1FD81769CDAC514C01574620F751AC4EEFDC23D160
+20927DB23DE7E738BB6E3D3F1E6DCFF6731FDD3199435DA3DB2CF53329A286B9
+DAF1C4ABBB871205C9E54BD930FCCF901D84208C8DE3DED474F4C45137F1F691
+C144B920A73846EFC5EC590A46193061392A1EEF03E74863EE38B11CFCDA42C5
+900930AA11527C3ADC75663F99D0D36FF86A133314CB5EC9F6EB62BDBF82D9AB
+2C9A98682B83BF6A80F613E6E30737866B6971FDDDDF00C031AB1021512A018E
+C9D16A50DEBBD3862698DD582667C8A8079FD1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI10
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+%%CreationDate: 1992 Feb 19 19:56:16
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 105 /i put
+dup 109 /m put
+dup 114 /r put
+dup 115 /s put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
+E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F1A7A225
+BF26E2AEA0F352B9C950B47ADF650E1B2AE31E883EDD884EC90F94761C470EB1
+72F27B74049C2A13EC522271032939B656020D617F4E58DCA88D138F4C84979D
+5EE89221BFD28AE8117B615D410CDAEB5320E61ABF819F329A7D5BF9515B3185
+0FF3013629B014C1534F7FBD9D52E08ADEBF16825B771C07875DD38BDD824031
+6F8028544EC27010E2E6FB4C703B6D98704F2F2907FD217F84E492FB80F3E49E
+3C4E6440A5C164D9B85E8800F323DCED9BE387F3943B66565AB6E58EA710A3A3
+43A13E35BA105BF2B677925E8F18BD595E14BD1AAE7D15B50DE8E663C0D24932
+A53373AFC8861B91B6C88E63862986C931E7F709D61CDFAEB53B8706E06E6D75
+5C8748F1B1DAB77E1C7D745B1311C5F8ED0F3761AF31241963FA91A8E9A788FF
+751496A4CFFDCF5DE4C70C4AE9069DEED820A9A178695236158E72E3C1854162
+61608B03A4CC8FB3B8FC11572D4689BADA31F96EFB3A30394EEB83B427A88F9B
+B5944CF928F71A6CAEFC1D2706526E20FC5B9631BFB7D4A02C7E4D01F6A9F69B
+AB061550421D443D3D05B960693F2CF9EED704D3959F416F0A38C35921A99174
+ABBDA9E6315ECDA014F5C5DCC357AF8FD1A201AE547E9E83754EF4F7304AC983
+B55825D2045B8303899ADCF674071B7B8D384F504DF1C1C57D1AC24A5909B96B
+94971AFDEDE1E04B92D99A99C19F2010FF24A53080C8A56BF3135C9A6D822FF1
+0E3462CAB8E50744E804144216A828D197E739CBA322728C99F6BE744F14B126
+D5FD150E6F1F486E8C0CABD57DE8112AA33A474323DB601D13C0156B394147F6
+B2DBE26AE6BBB1A4433033F47B2E25A895E456F0D8238EE0337126093260D8DC
+C95C2E3D93324F77234E16FC33B0711A7171783784444E66DE94557E0B45F468
+C8711C164E115CEF37EC78BD659306F09B98FD5F328CBC5C54AAF682DDE9A3F5
+36FC391F4D63D8260255843B9D34CBE341534CC146FA8DF63FEE11125966A480
+462BCB1D2C5022336AEF4049F3AF88318BDDBC2671306A662B679536D176B50F
+F43551B70A5754C1AE43D9C12F9987BC31E7B0A545588C68FBB4C0B8BC740C98
+5A682E1A1EF1ECB4A9CA6813DEA72ABF88C14009C6CCCEFAEFC9448792D22BA6
+9A88068D9C89EF7C123823A7454AAFF55C41130C8B984AA78D29264958CDFF86
+4E3CFA81F0A189E1C48F89E0CEE720764FA0B666A28C1DE5123D71DA6B547954
+6E37FD5F6040461A9E4640603366EFF360D567938FC38C1F41C6A668887AF6A1
+0FCFE167A67247368E76FAB48B32B252ED19F4247CD6473E4C3A93AE665E57F2
+EBC56F881FC93E11D43412DBAF31A53BA43C07B4DAEA3F6D523292083EE3CA04
+B9A98B51F9BEBE1CB2612F73E64D0DC56D132D32D77F14D7CD525A537F6A5189
+C9DC5D5A223B776F0D6435A32A46F72EED47C97A4E59FB9D21E47EC2CFA281A9
+6DD3BD631433BA11057B2471883F009CC7CE75F9BA8228D329FC2267403CE4EA
+E1A4D7C7F0594568F64E0E1DA5FC3141E4FB5C059CDE260BEF9AAB8A3CF69B18
+4E7D5774F9F9287D9393992E72E72900D21934004BD4955C18620E743AB24E1A
+052949B947C3B92A198548326334122F31B80758986658060A991079547D709E
+4E5C2D2E61168C4EE0DF9B705AD3429287F3CF568F3ED5531933A373820A558E
+6CA3D08B8BABBC7756D8993C24E53BB977EB91F68019EAF355A444B377F16B5D
+9FE495856AAED6B93B44D6474D7E8A5E03AAA7F561FF592DA31B0A26A4B0C0D7
+93D26336B3476B245DDA9C0313623092BA3F63985ED1757A9B90240F9D63D3E1
+9F7F37FBE940713F1C870709A2628C65470CB40CA0F75205B7DB2B72E28D4399
+B9052AC7C5F18FF62AA6372307A436A78B5D8F4BD62EE869A75EB816D699213D
+E9A79AC88E2DB38744794FDEE3B624BF4DD1E799518655A031E6606C1B5E17AC
+F43BCDEFCA155C51FCF63810462F4320A5521755DA3184E7119C9F1F6589A826
+CE675D42C62F41EAB7D15DADA13B45B2D67F4E4E0A443818A4158CEEF91FE522
+7159025F3C2E16A7F8A4C611F65CA968323EFC91A8B031B4527A04BE944F53B7
+5F5CE05BF8B5D70CDD476D63F2DD4F66186DB132477AE6316F9263121D7AC942
+F39A7AA06FE83831D67F2562DB22656DAB4674F3D7B434DA39A6ACD91FA54EB3
+4B856049C34CFF2BDE594EAE855A7400AA906BEFBC23BAE9F25A655824DE68D8
+287EAD555B6D8B866D59CA5D6A1995BCC9F53AC0736A258864B787C101EDEDCC
+FA04250658EDFEE5A8AEC281AAF01AE6F201D76C53415F97AF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMBXTI10
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+%%CreationDate: 1991 Aug 18 17:46:30
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 102 /f put
+dup 112 /p put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA7DA5E8D21B862CFC42AD1B6B2F9FE5A3EDDC1BEDB5C7C060D7704644D7
+F6BA9695E1B63B5B18675BFA7572155A6B628438E13935DC35C1193C5CDD1DA9
+12F6958F42E0CAA5D1CAE65F9CA0B9872779355B06DEA1C333A549CFF06BDE04
+A3346BA9ADA334FF9159D9EC55D2200D9650CF3717EB2B6CCA4C01D49654FD94
+A4405E2CA061C6B5F6CCFB387665B2FD7A102D88F708F4FECC1B707EE9769072
+8A994C50D5826B6423B5252529F6BD41DD7C4E30DFE9718878BB6721CC254AF3
+68A474461466DB277DF2CEED2CBE3347CE104AEA1E7718F8566CF46727683A11
+EEA2A3493F79D8E40755DD58EDEFDE2A09165453C54F4DC192EFA32F0085CC5A
+B4611EEDAA296705E7078A54F9FDC8B22EBF377309D12320D6F139DEA7199A8E
+417618450B644187FF874FCE195CB0355A1BC3A0912C26FA72C4E12C09CE5EA4
+57DCC110DA12F51AEA171579D493106DFE68715591504D4CF308595FFD6771C0
+78C5A4B0AEC23C74B16EFB16682D5FF8ED59C3B03A549990B829A5893DBAD489
+397619405F4CC1407F52B179B1330BC0A8046BF7623BCF35758C5449411F9752
+05052973DB8816A4BA9D1A54042C35BE3BD69902E8D2233B192CC6437A111533
+AC5BE7BA248692A287F575186AFAC5B628E15084D505887EBF012F840AF2416F
+CACBAF741D025DED9EADB6EC4CDD71DB602A83337A643003568D510EB2F33D49
+0133B893DFBAA9639715BD2CF74E2298149D07C2AB9629D54FD3A7202CFCAF91
+9B3F34F5F25282A51F0B52D8AB80BFCB179674EFD969E2CCE7CC39D423663B
+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 44 /comma put
+dup 79 /O put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 103 /g put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 115 /s put
+dup 116 /t put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEE09555C11E6E295
+71B219B380EE9E5BB17AD84B4E8AED35880BD88E5AC7D9FE25C46889CD093396
+F0E34A62F93E64C8E7975CFD617121244AB09FF9A4F73F8166197D0CDE2EEBB3
+81AB9BD8329579C2122368F56DEB89BA6E42C5D9E20F2789CC4A89E4AD9B877F
+8A0ACB84936F109D86211169257C19756A97E682601F4D1E7ED950A351C14DAC
+4BEA7FB0E58FB5AEB55BC09B1253748B61B4E00C448F263458BF958D3986BF18
+9636037E95FB425AAC96FCED5B4C766F93041FAA0DBB196B0A220B8E3A9FCA6E
+B4F5C0C775C25AFF4F5099CD3A2FA59ACA735718F8E90B351B015320794A89E8
+4C34F32B465E201008CCC0A15C2DEE572BDA14D8BDDFCF2743A15F8A93386861
+828F6251F206B9131C951D1ED4364A9CCE507E2959A1DA04A777B592888D38ED
+E68FFB3EFE83870BA8E04B88C9EEEB2DB80D4D07B52CE914D9DADF825A5301AC
+C64063909D6C1DC84C274C90004F41A1FAFD450805C5DD2A8E4F4C23E114246F
+C103EB63B58F33E44DD04F6367E04C3CBB3400BA3C1943B874CFB7DBF6A3EB5A
+3F665C5A98F578A03948821E40D1608FB70C5915CA0DE369A0D7112BFF6CAE56
+CB9BF699DAF3859F2B46DF97AE05915E791F1CE849154C53C4403EFD6F1A44EF
+78C167190F3326BA35B2A0F95CD03492DBA2903489ABB6B2EB9F977F3F4D690B
+31E8F6E32F83D91F721ABD116A40698F26610853E7FD075478979BEF42166C1B
+312E8C20CB3F080B08A69416DA402D336C627BABC4737FC72F8F4F6BB7D73551
+EE33D3CEA901C3369B93301EEE2C3475A9F5B96239829EA2EE6A4945C2E785C0
+8F110513E6F8F12B231EF94B606851F36BB2523F3B3ECB5EAF8EDFDA92B5DF5D
+892813AF0BA074FBAC5FF5BEB656BB00709DF2829F6A33A059F3188644A10801
+A24CB262CA08C7A96DF332C5E4270C9FF0C4CDDE279178B9F1D9D4E0F7393326
+ED91A1E6735C179602C3CD9B8EFB67BD1E8ED4B742EA90517E18B78FAEBC28D7
+AC38CC295F1E5A3F9D3FBCAB51106B23D07B8F34AE6F86A9F720F37386A786E4
+82EC5ADC4BCAEA80A7C0D267C227E76C7A4EB134ED99E73DFF17EDEA93C0BAFC
+BF85D00F5DA548080D5E0E4AC3B8712D1CA44E0FFC78679BCFC1B3B342A5B656
+689AFDD90C8CEF6056EC65CE4A345F755D539329003F1B3E883E69438970CFA0
+1475B1605C08E5B2DFEDD96A1F0B8D39695D096825DDB6BC7E59ED22D13CFDF5
+99DD43370E6F28DB5DE10FC5A24F299EFE32DBF5035ABCB18BD682234879B242
+A1896369D59A6B8297CC9EFE00FCB9EFCA2D26256E32A6BFAA01005BFE6CAD1D
+AB51404E61F1C433D00FFD6A9B3884539ADC69317786D9D8BA8CAA99CB0586D2
+E302C320968C6464AF53B224217DD227ADB9F0D01F5780F7CD67B369538A7F72
+924CF6C07CD9DA0E44091329744F69E5F772478AA6AA0022D9A9FFB58E93A448
+764993E700403ED2699791941DF5B15428AECC3E8AB201D9481592169C1E3266
+7689E2AE83F8CDE6A150FBE63DA96B36C396EB3D6AE5A1B0363A2FFB60111A52
+399E147EED19DE22BAF32962676615D54487981BEB2778A705A4212C5195340F
+E6B0C3C49AE4764DF25E56A2B93B9C176FD9F34E2FF2304A0A97B272D17ECA9F
+D790BE0A348C760F81D2E7CD98BEB45A7FD142DBAFAC6E4CDD4506D240680504
+7725A6706943DE85046348809BE8495ADBD588E16D26C0D0FF415D07077D2CDB
+EF40F42B1C08B5257AEE7D7D07FCB0113AE2B7EB46C8184772DF3F2E26E44B8D
+9303172B32C99B5EF3CE760B733C4F62AC776D70E88829E26312679BC878DB64
+EC9B1486EEFDB2434A38C039C40E8D6F1F86C74A3C52B7A04107CB769A1DA101
+B6791470835A817159FCF13B30B6F496B2C471C89C15F9745FA8856D58EDAF01
+6E342DCF297049E027D63FB893C3C80678C0929CCB0FCB87BC6013448541948C
+F8629C8BFF680DA0C7330E1D845EA3D62881CA864CEEFEAC44D046FDA839413A
+B1BB86386A47F36FE5868DBD292E28303320F2C959559965D9AE33C202FA9ED5
+F465D3FAF9C3436B3BD66AEB4E3D74A7ECA62360FBFC9E87E40D78B4DAC861B4
+3959E8127955FED295EFC3172D61464401B2254564662402EAF691F8755C6F37
+4857BCBF0A2F18B185F3F3D4B52FC510E6452D7F61B7F6CEDE0BB80CDA7E0957
+9ED4E78A942282798F9606029E2B480CB25D70BC930BDC03CC46CC89A838241A
+BD632E15BD3B369CD8F05901ACD5BFB6AD3F20AB27A745BB5A96600541294631
+4C3E9AF5A21017F71DB5C9A5615E84F02A34659DEB44AF3133E806FD663508B1
+72B4F09CD85A13A5F3E3740F86A1746BD83471D7AEFF44E0AE963F0712D79D19
+3E5A1F52BE5C218909DE272A12E3BF396BF8069234A4A01465FFB79108B91625
+086491C93BFEA818AD29930754F179F2198C00756CF0301A93B84D64F4AE18AF
+C98B706E9399F3ACBC8F6E444A18AB2E94A6BCD71DFB60473BADB5A62DBA48BE
+E295FA5189B2730F6F78B6D18679C389450AB33510799C7CCE3053D8B28F2F94
+9DC328D04AF562EEC88561F94BE7273F533B76677914EF5056F398F8A615EB34
+1DC5434735A132270D047A5427AD475D71A5AD47F5B52C202426D58F6DE5C4E0
+6347280B37464FEC4A528E2F4B4DC9A45F59DD286DC51EBDB26CCF714731177D
+819094AC0F6F110E1067B56AB17BF2BF22741F67B27A1F620B9366EEE60CB053
+0667EFC82259B6E3DBDDE9014FCADEFC01EF64B70CDF5E2994F98F060AE195D8
+B674AB8151494CE85F156F96B3630EA2AF9EA4A86896B8B521E6FD4C7DA4DBD3
+A6A775F56D4FD8025306EEE7202B4B70E687A085F04CCCCD51F88F5167ABAA08
+B028E5F8CFA44E11B8C82ECED923DB14E7F9810921D2643557474DA6C9548FFB
+BE349C6AF7E58E6DC748F2C8B5F152D41947C3D7D889242DF01F456B84A485C4
+AB15EF5584985C02CA8A41D835DBD91BDA95C3EF8F50518178D26E66D39F8322
+F50359CDCD3B92693702C1C736F6A9719E14D476D1E65D4F2F4915CCC9186B4E
+95599E9778D8BF7FDBAEDF3F9C2133324E82FBCAC2FBE4E2BA03A69086612C95
+A1F29F8228B96EAA05A624126E7A8584E7D81CBD93A6F5E433917FFE72FBE64B
+4BAFACA17282236629978B417609E904F9EF0898230AAE86B35D988A7D82FC95
+79B71945B7419F8628D3DA5665EC974CB49F8F3F169C20075494ED722B7C4BCA
+11885E72D892951E2D21444958BE97F71E96AC27708ECA23DEAFE7C4F9133385
+88EE44D12373082BFCCFB913FF7E31DA350ED9300F4238A7207EBE8B5C9B0C15
+207DADF4A4BBF8EA281A00FE661C9CAD784526B1796DFEDB3B6BF4F38B051D75
+ADB06C10188014BF11A70FEAFAD34A8AA90FBD31A6B53CEC8F00FB6836E05E9C
+E18C5EE2D73373FA5FC7CED07DA3318CBCA4DD57AD9AF25A50702EA464B92AEF
+AE56079107A2614FD23E828A95B06480A9B174A8F4A17DFA2E988D23A691BF9E
+E2BBF5EF1937DC0D1F3E832C07C2314426BE315D2BA04740ED2760F252007A90
+9ECC8CD9840497F9E8251B5C1A67165544BF4298F3A95F94F6EE2579045524D8
+0D17D579466A10BC30B1875A245721E23DE71C59FEB7E85D5B15DA08DB6FA808
+C669ED3E91A3CF4076E90F1A93921BA54C4040CF8617D95ED265BA10D007F342
+40931FBFADEB0C67C62257FC4F8B34C071691833B44BC6F7254D211DCEC5DCFE
+65DE419945BE55F65474EE30EF685585DDFC9E77C5E0B0C23758C59C80BBCC45
+B4058515E4A740679DA604AF639705632535311C803FB1B3E234590C839C5ED6
+0832D6837DA0EE75FBD35E2F042320429D194B974596D1880BCD74E74C46CDA1
+C8165A276F1F4FDF3E76FA30D46614E3FA838070321E871232D7C42B7A1632C9
+7C3B101BDFC0277756D4C19B291E5485BA7C55029EF180C8CAC354B3D4C84FD1
+A421DD85230FB100661DCBCCF993BA702015BE6D06B51FB14D198FF42568A6A7
+705773C6B97C81BC7919920414320FD7C4041B70EAD5CFE4D59CF848D9790B38
+45CBC674309A1B5633053D4309D37563865F7C0C5E14260B7E9A6B9BA1C1D48C
+9640E23AE48903F2B15ECD4BB4C44A80DD0973415C9AD0D797CD62B350114AB2
+DC905C7EBFEC000271451C850CD77A530568B9E8EA670F7A0FE9866A9E1CBFCC
+5B5615A40EFBC3044E76A7148280E061C089E57EFB0A27A1AA159642797F42FE
+119A42C8EFFA9C50962B575BF4B8E0C2A47FFA686D443BD6BB8A17CEE9165420
+EB339E1CF74127CAAD11D7AFDEA4C07265FBD74B26C66BDE32411F6D0FB6A40B
+88C5A3040E2B6F95EEC8FF51C46E774298A8028B431A4EB8245C54CFA023613F
+FE9AD1BFE86E805F89CEF4375008708E5C14AFFA119723C8E673FE640C4CF5DC
+1684A12F3BE689FA85751A0FBDA29AE7C4755A530D6D9F4DF4F868CBFA6BFA2B
+DC7BB658107E15F4D6CA776A3192EB0683508241B7F5535B22B06F0E4DF27F5A
+2D0BABDB34F10809E27CF3C747D81DCEBFDD923F8553ADE595DB5802CC60DE76
+B8D3AD3DD54BB5E0CF0636B87B272D2B748EF0E7246328C4CC5A2D2E9B837B80
+F8A6163C3DEB2ECFFBBA894472E5FF6F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 25 /dotlessi put
+dup 40 /parenleft put
+dup 45 /hyphen put
+dup 50 /two put
+dup 54 /six put
+dup 71 /G put
+dup 148 /Tcaron put
+dup 195 /Atilde put
+dup 201 /Eacute put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86406847FAB69F1D8D85500BE6911AD86986F4C2473B79D1EA97ADC4
+A297E4782B90376CA61BFBD4C9AAD24086E689B6D841D88D18F19B0444A64247
+FE7A944576A88FF2B06579F2C7D190E9CCF09BE0DC6E163DE6523F9E660D2C4B
+C4799A1C6196B8CD679333E7B039E0D71915AF9A089D41A374119B478713BB40
+4226CD5767409C950CA6359948E0819884F72B3C028524CB12BC34CD344DC676
+12E0A8240A1D0AD18D581FA0D1081D8D8D99A7A300672AA33E075E29CADCB8A4
+86F67419E0AFECD4D6F8FDC18E883029AC922CA49D3D1AF76A00E9949956A4E7
+88FA5E250E693DB155B6913264F3B85D228A9F989EA5A188DF3F3BE1452F23F1
+7015B830BCFB5DF729EE4E17F835FADF76689BBAF9E3A2227377047A0B638F12
+4B97BEC7660A31457CB9D0D91FD64FE1588CAE62727C3DAC45E4D8F3BB1F96B6
+8666A39647D1BD047DDA019E2A83D1E81A4D82A5595908219E8B9A8481FF8469
+1B7F39B5C21C81F6306C52A5D20C3EB78C00B16118B39FDC18A7C841435E6BD8
+D1937FC737D68D954E4B86AFE276FA551113F6A63D7F3E4AB202888FF12C1A05
+606702528C286AE8F24BCCCA88CB4884123F7323253276C9B098AAC9294068E0
+5A130D08D579F3BC85053066C62DEF7BF3FC92BA06D9B2EF110D3346A6437091
+2F96E090F2169D3F9CC63F39FDCFDEFA3AA6C9EF49866AED1E2B694582DBC021
+CF2A76AF094C79FA955BEECECBC87435CB720C00CCB3E9FCB021FF8AADDCCF1A
+0979CA707FFFB2CAFB007F9C5F998C50930E1AE5D478109A9376C7E137EB34D2
+348D63890248720C0D60BDFDE9179AABA61EA8EF72AEC10D48FF8506EDA4F454
+633B52B4454734A8C2026D8CD52859CAFB59214D32A1C5B654AB58A86B24DD57
+8237E0FEFDC67626A2D40F8064A3C68C2A9E715711784A2F7AD48D8DDC970AD6
+0AD176D8ED09C42E8E0FAE4CB01C0D3531A70225062D4C2507D8C22772557CCD
+CC6171D9F10E6F907F841D095F09F7867B3C7337FDAC66DFE852A1EEAEBE6319
+EF99244CC5A55E6F4CDEABE3697DD2EA438B6A5381B25278CD0892A9752BF1AE
+11189909F8A7A12085E01A74A74CAB5335E2CAC11F3792EC5D4EF3F9C32084EB
+9163CE8C624FF972E51559072C31587EE85665F9215F7EC57702D4F01587461D
+23D0DBFA30ED939881486EEC4B005986C40082B868EF0A8544B8CECF2E72A60E
+582C2D1EF5E36E98D40C9305BA2B6C729D93296D9DB7AAA7CB8B67367E888D9B
+010E6083BD0B789D014BF592D6D2877106A95091C6DCFD18C664F1A87AD3C836
+DDEB845B1763DBE3501399AEC7785EDAB91A7CF76AE0FE7C2F9F97FDA9C00765
+486F928FA1DC63B6968E61BF66CFF5785BC796A96A3D0E9BBBFE0FA3C47EF8C6
+53C30CDE63B5E08A00D9B4ACD570BD5A7608ED8608702AEB79BF1DFE67224835
+E7E7136BB8DE303717D94E263A3C7D0E72B36126F85E687A41DB07A0B35701BF
+6467E503A506BB0576E734529AF39DF3087A778D63248E6554D6DB8EDADD1CF8
+01A364D7DE98DC337AC960A0CACD1645DCF50A007800D8FBDBFA82336CCB7BD2
+B0AE2145F191B67FCB728DA7B49A2445D41C62B1430AED8F359D78FDEF137C37
+0DF8201F39F0F49467134B91FAEF904030A3EC5242A58E2FC03785050C54C9E5
+46AB34A2145B74F2CD07E4C7F25B55A2524AB3057BA15D78CF798B83B68E4FD0
+9D8DE06022C69C164C369C237DD28F44AD45551FAB4B847039934EEACA88F5DA
+1D6A3AC4F9082E8136A06AFB2A81C85E8EB5DADDEBFC07CBDD49206B13B702DC
+4E7627DB6AB2854B9FCD341FFB2EF92612EDE4E989EA6EEF44C67AE4211F346E
+53C105A3C5A97DD64A3BF04A3DE213BCD4A2FC290A3082D461C65924EC77818E
+CF5DFB3ECF424CEA121BE0A07849D4CE366FF3265B3DA278F716A6DE40520246
+85F248560F4483DA961D3D5732C69FFD8869FBB062D90772A217B2B69FFF77FE
+D15DF4678D06F8AE230391A2E73EF93051052154DA6312
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (tristans.dvi)
+@start /Fa 243[0 4[0 7[{}2 85.0146 /TeXMUSIX11-Regular
+rf /Fb 204[36 51[{}1 66.4176 /CMTI8 rf /Fc 140[34 35
+4[68 3[25 3[38 42 38 52[25 46[{}8 83.022 /CMTI10 rf /Fd
+143[49 9[33 102[{}2 83.022 /CMBXTI10 rf /Fe 139[32 33
+3[42 46 1[23 2[23 1[42 1[37 46 37 46 42 17[65 34[23 44[{}14
+83.022 /CMR10 rf /Ff 54[133 5[133 46[66 76[106 16[40
+3[40 4[0 4[0 14[0 16[0 0 6[0{}12 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 60 39 3811 4 v 60 72 V 60 105 V
+60 139 V 60 172 V 60 137 a Ff(G)169 104 y(2)202 54 y(2)236
+120 y(2)269 70 y(2)104 -179 y Fe(Ob)r(o)r(e)28 b(da)f(caccia)f(solo,)h
+(on)g(stage)408 127 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (5.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 408 127 a 337 237 a Fd(p)401 253
+y
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (10.0pt) GD N /C1dir 0
+N end
+ 401 253 a 391 154 4 117 v 353 154 a Ff(\010)561 66
+y
+ slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(12.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
+ 561 66 a 518 203 4 117 v 519 87 a Ff(\010)p 683 172
+4 135 v 733 170 a
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 733 170 a 688 253 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 688 253 a 701 270
+a Fd(f)p 728 195 4 108 v 729 87 a Ff(\007)729 195 y(\224)748
+191 y(\224)p 810 179 4 125 v 811 54 a(\007)873 270 y
+Fc(dim.)p 893 187 4 117 v 894 70 a Ff(\007)894 54 y(\000)p
+1074 120 4 108 v 1075 120 a(\()-39 b(\007)1161 49 y
+ slur@Dict begin /S1alt (20.0pt) GDAR N CP /T1y1 ED /T1x1 ED /T1hgt
+(14.6pt) GD N /T1dir 1 N /T1dash 0 N /T1adj 0 N end
+ 1161
+49 a 1118 270 a
+ slur@Dict begin CP /C1y1 ED /C1x1 ED /C1alt (8.0pt) GD N /C1dir 2
+N end
+ 1118 270 a 1118 187 4 117 v 1119 70 a
+Ff(\007)p 1235 172 4 135 v 1285 170 a
+ slur@Dict begin (2.0pt) GD T1hgt DP T1x1 T1y1 CP P T1y1 0.7 T1dir
+M 0.14 30 T1dash T1adj 40 DS end
+ 1285 170 a 1318
+70 4 75 v 1280 70 a Ff(\007)p 1400 137 4 138 v 1362 137
+a(\007)p 1483 87 4 84 v 1445 87 a(\007)1318 -4 y(\303)1435
+2 y(\303)p 1565 154 4 146 v 1527 154 a(\007)p 1610 220
+4 117 v 1611 104 a(\007)1611 87 y(\000)p 1752 195 4 108
+v 1753 195 a(-)1753 87 y(\007)p 1835 172 4 135 v 1880
+270 a
+ slur@Dict begin C1x1 C1y1 CP 4 C1dir R DC end
+ 1880 270 a 1880 220 4 117 v 1881 104 a Ff(\010)2064
+120 y
+ slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 2.2 S0dir M 0.15 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 2064 120 a 2064 120 a
+ end
+ 2064 120 a 2083 120 4 117
+v -19 w Ff(\010)p 2210 172 4 135 v 2342 -13 a Fb(3)2238
+237 y Fd(p)2254 154 y Ff(\031)p 2292 137 4 92 v -17 x(\007)2321
+154 y(\031)p 2360 154 4 102 v 1 w(\007)2389 170 y(\031)2293
+46 y(\311)-129 b(\311)p 2427 170 4 112 v 2389 170 a(\007)2436
+303 y Fc(cr)l(esc.)p 2456 220 4 117 v 2457 104 a Ff(\010)p
+2659 137 V 2621 137 a(\007)p 2738 172 4 135 v 2782 170
+a(\031)p 2820 170 4 92 v(\007)2874 187 y(\031)-40 b(6)p
+2912 187 4 108 v(\007)91 b(\031)-39 b(2)p 2821 87 185
+16 v 3004 187 4 108 v(\007)p 3071 120 4 117 v 3033 120
+a(\010)p 3236 154 V 3198 154 a(\007)p 3315 172 4 135
+v 3343 286 a Fd(f)3359 187 y Ff(\031)p 3397 187 4 92
+v(\007)3426 203 y(\031)p 3417 205 60 4 v 3466 203 4 102
+v 2 w(\007)3518 220 y(\031)h(6)3399 95 y(\311)3427 98
+y(\311)p 3508 205 60 4 v 3557 220 4 109 v 3519 220 a(\007)p
+3623 137 4 117 v 3585 137 a(\010)3716 130 y
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (4.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (20.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 3716 130
+a 3724 104 4 70 v 3725 104 a Fa(\014)-24 b(\007)3770
+120 y
+ slur@Dict begin (2.0pt) GD S0hgt (6.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 3770 120 a 3770 120 a
+ end
+ 3770 120 a 3750 253 a Fc(dim.)p
+3788 120 4 117 v 3750 120 a Ff(\007)p 3867 172 4 135
+v 3870 336 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3870 336 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristn.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristn.eps
index 94a7b9d4215..63d8912d67f 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristn.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/tristn.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96dev Copyright 2007 Radical Eye Software
%%Title: tristan_notes.dvi
%%CreationDate: Wed Jun 29 22:37:38 2011
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 79 735 540 800
+%%BoundingBox: 79 735 540 800
%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMBXTI10 CMTI10 CMTI8
%%+ TeXMUSIX11-Regular
%%DocumentPaperSizes: a4
@@ -15,61 +15,61 @@
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2011.06.29:2237
%%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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro 0 0
@@ -358,77 +358,77 @@ 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]/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[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
+%!
+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]/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[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/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/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
+%!
+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/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/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: TeXMUSIX11-Regular
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/trists.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/trists.eps
index e8342a5345b..1e2f7a892f1 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/trists.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/trists.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96dev Copyright 2007 Radical Eye Software
%%Title: tristan_sound.dvi
%%CreationDate: Wed Jun 29 22:50:24 2011
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 79 733 542 800
+%%BoundingBox: 79 733 542 800
%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMBXTI10 CMTI10 CMTI8
%%+ TeXMUSIX11-Regular
%%DocumentPaperSizes: a4
@@ -15,61 +15,61 @@
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2011.06.29:2250
%%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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro 0 0
@@ -358,77 +358,77 @@ 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]/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[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
+%!
+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]/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[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/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/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
+%!
+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/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/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: TeXMUSIX11-Regular
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi1.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi1.eps
index 1cd0619c05f..81f8f54ebd8 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi1.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi1.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
%%Title: vivaldi1.dvi
%%CreationDate: Sat Dec 13 15:03:18 2003
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 28 657 465 792
+%%BoundingBox: 28 657 465 792
%%DocumentFonts: TeXMUSIX16-Regular CMBX12 CMBX10
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
@@ -12,61 +12,61 @@
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2003.12.13:1503
%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
@@ -355,77 +355,77 @@ end
%%EndProcSet
%%BeginProcSet: texps.pro
-%!
-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]/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[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
+%!
+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]/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[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
-%!
-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/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/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
+%!
+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/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/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: CMBX12
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi2.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi2.eps
index 24726687038..face1cce542 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi2.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/vivaldi2.eps
@@ -1,2590 +1,2590 @@
-%% LaTeX2e file `eps/vivaldi2.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 24 93 550 779
-% EPSF created by ps2eps 1.39
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: jud24c.dvi
-%%CreationDate: Fri Sep 13 14:45:36 2002
-%%PageOrder: Ascend
-%%DocumentFonts: TeXMUSIX20-Regular TeXMUSIX16-Regular CMTI8 CMBX12
-%%+ CMBX10 CMTI12 CMR12 CMR9 CMBXTI10 CMMI10 CMTI10
-%%DocumentPaperSizes: a4
-%%EndComments
-%%BeginProlog
-save
-countdictstack
-mark
-newpath
-/showpage {} def
-/setpagedevice {pop} def%%EndProlog
-%%Page 1 1
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\dvips.exe -Ptype1 jud24c
-%DVIPSParameters: dpi=2540, compressed
-%DVIPSSource: TeX output 2002.09.13:1445
-%!
-/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
-/p{show}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
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-/slur@Dict 200 dict def
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-% align the slur to the staff lines
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
- aa 0 gt { /shift shift neg def } if
- ifadjust 0 eq {
- /shift 0 def
- } if
-% and finally draw it...
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
- grestore
- % now some \slurtext code...
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-% differenced line
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-% sloped line
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-% free line (init & terminate)
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-end
-%!
-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]/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[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
-%!
-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/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/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
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-% 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 (CMTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI10 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 44 /comma put
-dup 46 /period put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 70 /F put
-dup 72 /H put
-dup 73 /I put
-dup 74 /J put
-dup 77 /M put
-dup 80 /P put
-dup 81 /Q put
-dup 82 /R put
-dup 83 /S put
-dup 86 /V put
-dup 97 /a 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 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 120 /x put
-readonly def
-/FontBBox{-163 -250 1146 969}readonly def
-/UniqueID 5000828 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE34500182EAB8A05F5426A2F9AE8B5
-F49023C4EB52D58BC449B85998ED156A0881303EB6FE91A21F78FB92A8D777E7
-C9F4E3DF67AD861E0F58D417F49CDB9215C5A7306B6D86834FA116640359081A
-40B44AB3ED422706B229E7DC780B4CE471A37963ACC67A05D0AA0FC5EF576B1D
-E985A8C151B0D9CE308852FE82C58C258551931A917D4A84F6654C29A6FF53B9
-077DC381786781EA164A68BA1DACFA9F8DF59F16683B0BBF6DE5115E7709745D
-FBF17A178D989A18C85C4EFDDB0D04DAEE26A293BF75E2AB7804DA8A7C87E8CF
-350F020A1CA1D87E9099BC50B5FF8800EC3475697B9FC556AD119076A115FB12
-0F072955C90648B106B3B6F34C4191E6DF2BFF6A378DE23D280A5DB09A73E4EB
-4093D86218E047A47C194892C2B450135D937AE353C72AC722CEB29C7BEB871F
-FFC64D5ABE51E76E9A9C6F48BF4AFA009F8B39B4B4313491DE263B3D804158D1
-82E0F13C53B4AB110BFCC9F4F0679CC15BEABAD0740A8A26321A17090A2575EE
-9F2A080701E2D527F8A89AC9F3E3FF94BE377ACF9B074A53851566EE7EEF9340
-89D9F21C3D2F750181B4124AEFB5F9E5A590295407EB64F706B2173D79E5A6D0
-EE3957F1F8A90A205FF2F8440DA70F86071FC642FDD09BC539FD7A38387BBE7D
-2616A922B9325756BD9D93EFA1BBD05B9315480E0E70A13C8BACAEE09232E218
-F1561E4EBC6EA6B275A36CDCC6266AAA3796126B7D931EC72749800233EF2A56
-B56C186896A23CF8F0B5042DAD9A28258AB1D8025B61BE9D6298A3791CE96AA2
-2E27D6AF45D1B93A29AE334BCDF93500E6FFD5A2608745D63734FFC7C55CE42B
-ED6F9D3CC451617BFBBFDC9B30A15A8B227D2FD578ABD857591E02CF8704E241
-13F815DA1DBA23BE550B4667C3FD74C679643F14A3FAF6C46F8369FB69A10849
-C8A8858CAB311159F60C7BBFF9C62D219D23DEE987AB124E1B77BC78FEE92F51
-615B65C49D166304ADA1A438B01BC1DC3EF829016E1813FFF95181C699942DB7
-818686F9684500AB55826D96E2F9CBA4040AD7ACE20A5CE90EBFD8A167579F50
-0FD73B93B95EF858A737AAA421191F2D5550F7353E8CE57C97F659B6AD69ADEE
-ACCD6ABF7EF992455C241AD79BF0DBA647E7506C932B730A2C62AFA49D0AB853
-31CAD55DAEDD1B420C18AA2FCBF682CC1B450CF1B240176577395339D0F248F1
-37A0865298A2CE41675C9CB0C8884D0D12C851212E4B9C56F68779DAE4811FE2
-843FC5DAAB34A288E3A1FBF715A70CEDFDB309EDAC9E6D98AFE713777E62D942
-471E70A163F8E51F060A0D29ED2AA3A8E2ABA23F93D528774E4B47B3D21A729C
-7B2BF212C1DBAEE7DE4EEC4E15B506BC1CDE6D377279219C74C45FF8FB0BE6C3
-7950E6FB5337BE4D300B8FB9BFA1A05626EA78BECB433512AADFDB91C5639982
-759BCA18AFB08886079161ABFC09EEBAB759DD9504E17EEC10BC43DF63422A56
-BF3BA80B54A0E36FEB3C46C5868D6C63D1EBAAFC9C41D48E4D63453E112DAF22
-6A9A1AA3C2C289256EA0BE447F18A7D101F6FBC05FF0767068F3082407207BF8
-ADDFBCC671F45D1B9282F928C73D80FDCC8290986A68CA592249FF769EA180AE
-AE7632F2EFD4E9905FCA49F195868AA9FEC423EC3945552F984BCAC2BD5B6A86
-B481A3AE65A62421418DEDB06B8599C9BD0FDBD3E034339CF7F31147491252A5
-635A67636CF1060896FE19D28151B675068ED1E90BA7593F19C592A650D03092
-ADDD9DAC022AB5433B784E995E8CBE6F6843E5B38CC22743B65206D1B4D3500F
-2A88AE2B3A5257A2A6B61BE74520EFE5B62A80B5F7C10DE75A27314BDE72B9C3
-9E5B97A2140FBF5A2ACA929ACDE64F721FA5D59C755BB9EEAEEBB97332556C47
-97537248304D00AEC1C34E17846F770CB5C5106E3DB1C1D473E8ECBD7EE5BB1F
-0E9E19FACFFD2031DE1D8440709188B209B6A119CC7B5FBC484A8D2716C0983F
-9543F1BAF23E536B107BAF037DA5408A3FCECBED3FAB58A8718B254D660AAAC0
-D22E5A72D9F719F626186221AD655B4BE48F0920C794DA9605D393F924CAF403
-35E754547C751028DEBADDA3A461E91D348F51204FB3B53D4463C421625CCA87
-ABC6DAB7B181D66A154D866776C882B09B4C87E9F36ED4D7979150200C4C2FEA
-71F13673F92FCB7B18C4D65BE965662AADA0B19A23899DB4AC11A0E80C168DCB
-03D006A654BAF944A2007A698B5DB1E43F35281341050B662F42A2D7378755FB
-21943D8AF98446A41655B9A4910432205B9D73BAAE9A726B16094E18BE5E5434
-2DEAF91DF7A47B499F9C9A65F21FC9FCAA36AD9AF577C60525A3C6A769B258C6
-0EEF9B0A1B01051DDD35FE9DF1F8F3A01D4E469A6191DA6EF1C47D580BEADF3D
-B4C2DA40947117EFEDA81E265F61318112DBFFA74E3A7ECB44DC36ABE8967BB9
-EF6D65EB4C184AD0F2872E1B6FA036F62F3852D78F72652C87BABB0970B12F0A
-7E04C96FE4B025201327C8FEF8824E5FDD9E2CEACB7489DBD45EC5F684E401EC
-8F101A213152573D4C354E54BCC5897EDB2828FED03BE7D5EB4DB05460817A9D
-DBF42C5E0E0058425D206603F6307FFAC8E7DD443222CA9298F7617DF35A3F7A
-67B50AA164C235C9B2EA56D32AB54BDD158BF4731C5990C2D386F5C5F1D6540D
-27D12C5E61FBA22C7E1AD88D72D1AD82CE55B7C617BC7DD63721B00D9CF930DE
-6D4EB33225303E73151E0C1AEEA0A64F35B406AF1CE453A7D4E3D9A476748A97
-3965F07CDB77DF594854E2EC77379FDD6517320DC706A2158E89991F1D3B5A5B
-CA81D82C31DAF3D78E8588A95A09EED998A0DF220E9B06B15CF6E1A6E540F8E3
-D50ACD3C6EADE1F8F80FA83A9A26E413EA35441C933FE4A423D7C991D1CCA4CD
-85B495ECB518B4312EB8110A0A5ECAF48F479C61AB4447C6FE9C22D1CD9DA8FF
-04A54A8BB6A681101A913D615918F182934CD933C113384E6C9D350AA4FC7CD6
-6105A76E082A4B4086195369A13E4F1A05B1A89BD1FF3A329DBAB040EBDAF720
-559AE3D0BDC1330DEC19B5C44A11DB502A340920BD92A6518F4906F4639659F5
-43E807EB6561A248FAEE0EA02135F46275D61C195A78DB9F4508949BCB0572AB
-2E3AD7BEF696B2619E64F5898B011A8D4F5C3EBF723D1FC77EFEFE93734DA489
-C71A98F3AB9EDA0AE7C9046701CAFED6C93096FBCB56696BCDF45E41827CEBE1
-9F2514EA97CE39820E7764123C1C7DCD6B29B78C9D6AF2551B366FEB6C4E1BC9
-BD9329ADDD2E3D7882FEF335FE80084513E97A453D2C6A3A3E4260787512F621
-E59FED196AE1CD7F18D8019748FE1F61FB9F63C3A661C46233D2E05F4CD81F5A
-FCF16AF72C2DF3817EBC8FBDF470C0E6FA72624B7E8711778D4F0A6EE64A5E22
-ECC0A9825F786BAA2B1A4DD0F6C216098DCEEBACB1F704667B4657A9BE6E4D71
-87F603F6F573E206AFC6D0D5A705CE41247776831DD6A6D4A23469E19D82B801
-35F9E060DFD316D3FF55F1550648141D0E405D16C3065CC7C9B42DD0BBE0C15B
-966C11A0B5A1F02B2FBB67A3E458938A19D9F9397BA1DDFEE9B8BAE63923FE5F
-7A641523D96B1C475C2EE8FF68E6F7B34F709C5F249B0F0E0CA490A4167E9B45
-83FA6EB3BD15AD7A7FACD5065E1C28C86C298CB98BCC17BF8B1703D8AB815BCE
-C7058895727DF51E4B5F8EC9BC3E1E8ED9627413A0E32F62EEDB4D25D8EE78D7
-7CE7229052E0E76026ACB8B735C24D47A966C468E7D7B127CEB4D01796F9E776
-7C6FACC21FA5BB3AE7FB715DF7C3D832D47D824F522DAE12DFB5829E3CDEE278
-DB26498FADF2B3013396293B6CEE8DF1EAA7BFC68DF8C340C4A98A4EA370482B
-A8D0B7A6119C8EAF7A1A4C4CAB99FD9C15D97BA8D11FF0F728D09F18EC8881ED
-A64ED3E91F69C0B6975251AB688A9DF9A9D59B01C2A47BB449782E3070A309C7
-35095C7342F1CB65422B7C01A39363E822BA7B279EBE209AF1E542EB084746B2
-13910D371F4BFB63E62F4C7258AF4BC7008836E50468D2ABC83ECFA961F2A6EE
-360AE8B129E3DD5A72BF9CD53A4A1FCAA3A07640B459BCFC1BB9D63253357284
-38C3AE67616226736186B4A02706E83E7D332129D2196CF0AD240C096EAB21E0
-ED7D639D09587B1ADD78C17FC0DF2C57FAE62BAEED189B4005C935D320F04D9F
-B410235B7E57A114894B90D36D346227EFFDF0C7729EAEDD07CEC5D66643CE69
-79F1180B9C7CFDA8EE88DE589D97A3387D6D181AA1C37E226D830113F76A9C03
-E615FBD4E2C0CDB45E988A8D16DF40E2C9847253B71C6AA3FC1131D3ECD44BBB
-DB933134F1D9A393088E13C105D8CA4FACC2D8DFDC0259791827E91D624EE8F6
-7CAA4AA7C16A00C53DD8DEB5F7FA43865CEBBBB24F495D30FFD36D9D39DE3248
-F89B1534E5639D5023FA2BAC9F98507E07847E031501D44416AC29E89188540E
-45D92C178D1EAFC30B304CEA1E4B6C9B29041E652C6D3FF570DB08CE103DADC9
-61CA545EC5B8B70BD2E0981998ABF3B456C28E67D01A417AFCBD64D6698225D5
-BD711242746C80B348918DB219CD4017D8D41560AB585647A42F39DDB9A9C34C
-BD8DF4BC165522A09E56F4EF922A9AD55CDD9834F5CD799790CB1F9BD68B19D7
-089006FF5FECE957D6A2312B0FB85ED07F0DA0065C3B0D51E038B2633B4E5660
-2F15B31ECE6CC7DE2233294126E89E1E0AFD4757B317C2C753A6306EDF81D41A
-AAA05A794FF661D2126B266FC88D5D70AF32460DCC719B5DFB8EBA45B4EE05DF
-3D6C7B7254F1ED857422E92E19E3C9DC07FBEDDF395E7197CF355C2B5A34C3C6
-C799599E27645A6331C8815482CE0C261B31596D79236FBC1ED7E2166C696219
-495163D003D677EF206CC6CB42A84152CEDBA0E9C3C8AB493E6AF047487055E0
-D5B6162669A5873FE65DA43025E88A40B1AB6DECC81D051B5A035622162120E7
-C71DBC570E9153EB0EDA73D1EBC616EABF5B234E4D03D9B902A8EFF9F2BDF241
-AB6D001638A03BC9128995BDCAA96610D933C958D3F1B215E25CF48F9E87E690
-8C93335D52BBCAFD3798105498E1DC40A354837C9E2E44DFD7981FB9145F4126
-5F2F62253A38EB740730F8653DFA59811BB125A0E78B1EB9C3DE838C209AE7E9
-2B125BC35ABF849FCF1F378D652376F8786D2B9A696BD70A8DF9AF0BC1A37DFD
-8F6836CFDD7DAFF14ECD77B43602705EBAC8CCB7BA23026B2782D3A331ABE917
-44343194F4801315B267DFB8FDC9DD05DBDD2CA89DB739D7D976B19B70C61FE3
-7720D8DC914CDE993DCE15000F3934C8F8E8C87A6C93238EBC6EF11A67D7D464
-D519C3E00FC96D8B2FE259B363F976F4BCCD89ED4B5236A56E97D40D6473AE76
-95F6B34E468798FD1AA279404345D9C82550F72B082DAB930BEC0949BD682C7E
-2ECE4244816CA57CC7E51B174B0A820582AB04D036F4E2DF1859B8943FC035EA
-26B7D71BA318496C7A2A875D52AF12C73CE423DF6F4F8A6A2D70EB51C233EAA2
-24BC959879D54F20FF847197F0951E2472F9C06F5F8E8C29CAF8533148C812BD
-49FF7D1DBF37FB5CA408FE0C06BCDED66A956A90769865D64FB961CE9E7BC5AC
-01778FFDAB0157DA2D1D366BA8D83948F6E59F884346BDF2A33E085142C87BEB
-7A2D9B37A08E2B637E778842FC8D684ECF8308D419036C0A88C6BB8F9187BDC0
-54DBEFA40E00FB39206E8C05D6F10A445F1A4E7CD95D0A172E3586DC7EBBF0A8
-C93F6B4A4FBB4019505809084BEA2CE69F831CA7EBABE4F3A26FB256A2ACE3A8
-42B02821BAA2304CEC5797F4BE0902FE7C7B33B769D7A4299762FBDE8D89F0AD
-BB71E0F0131344D531D8F23D04A4B9A0D9972F7C2C7C52FD47EBD45AB7F08B28
-90C076E34A835E6E5849E83479551707F244B16001C977FE310AA69EC76EFDB5
-FB30984E9A9EB47166ECF5EB9BB06C9657EA526203D53F455295142B8E392816
-504E0B792B7511E9DDEF3F9F6FD0479A9B03054976BBFB377AD18AFA3A230275
-57EA040930E9ED0D15ABDD24EB7D3F8A24669718DE1060FF193D1576638AB7BD
-384565304A862E15C0FB0D09719253DF70984529C14C1F057BDE67D306874A8C
-415F49A264E7D28276B72993A2FFCA3826C6E336C199A61994730F0BFDC1E677
-7B1236BB9727134FAEECA4B0ECE76A39BBE739D7326462B7546B9CF8DCCD6EAE
-6C6EABBA4CE2520855858583671CEAC394502B23E98F16CC73138C598356C08C
-361A9630BD2704B66C5031D23AC8FA42F487A26AB984C083B50030D088671B67
-76873EE49D69C738CC1D23DCC29800B524A3A448B18A64CC7FF78895D6810A52
-CBD521960B73387A36037FC4A69F97FA607D7093BCD8572830D8AE40B7C471BC
-454258EAB307C8053B9AD5EBEDDD772F0A390983BF2B83827E6D1836D4BB6BE7
-2BD3FC9E57505C7846FC9277F2F9EE894BBC49808FECAEC8A4A6B76B4F55A6C9
-E4D1CE882C88B3D8B5D0E36D72E9703AA05F6E33154504DB0E256EA6290F0277
-38D27B7290AF58491EF8638F5185A0F2CC71221D0E07517E3192FBD1979CB1F3
-BCD01124DA270C5EA5BC9D6BDDBAAADD126D0FFCEB4D4D4BE4BEFB18CD307F95
-DCE95DCED737F610626A345D231BE4FE5D7DACA2D5BCC18DA16F9872CDCF7E25
-3C651DCD102FA1BD2BF9D6968A6D7370B6A7D5679B3F8AB2BD23DF415898E565
-11857103A91D857EADAF7DEEC3083C8149044D58B5B0D1D5534B164444D49AA4
-FB9A6187D6D4CC02E7DA200693B7A165E0A3FFB8C43519A3058AB3146F9B4393
-EAA54CD0810BC680B1FBDF3B500542CE706B26FF2CC0F041BF46DFFFD454EADB
-84D27BE71C12F2A8A29B615E5E7186778DC4BCE417EA6D98C71B3CF284190357
-4B8E30FA145F82A1FE7EFE30DC806794F57DD1C8727DA6C5B2E5202D19BA287E
-C3151F61F9DBA3BACEFF3DE5C3D0A7E41A235F9ADCAB4193237C200BE171BAEC
-974D3932E54F404F9912B9726DE692359AD996264331DDD7F9D85E1ECFC7DBB9
-3CF5D624BACDDA1B193916C4A8B4AF83E45F3736F5A5A7E5DBBCF29F8F08286A
-EDF684948B794F80194152EF807C421AC9EABF15702B3231B593FF87C4625313
-1BAE2A17716708BDF16BA615682ACF6661CE2705E6B63199BB754069BD5B50ED
-36FA962ADB516AA1AE0EF481BCE062199396E5DC39FCC42A32AB1CCB888BB656
-7CD72C60F376ABAF191F60C75A6081AE9C19D5181B19C4ABC28401EED3BBC63C
-60484CE2E4B8934F8A983BCB54405F30A4D1D1E934D54F90F2D8D182B10FDD5F
-CD1FCFC2EAE6DBA0AE0FBD0D938FA1893FD8EE67F6FCFBD308C588D63BC41FBB
-148E6D4D6AB841F3767CF457B44B4710C894015630F44435EBD56D4B5DBAF67B
-22CAE46459DC129E19FA02DC0C151B111C8D6BD6860CDB90EB6613C40D5E615C
-68E878313AC9EBD0C7A873D840A85338EC9CD24ECC6E5AE988AB3A0E94B71257
-1CF9693F2903C0C241AE3D76B9B04860F447ED58F72FA15A19D7E4D5EA8420D0
-125C20A162DD1C34F2A8087285B3E5A3BAD93585EAAE498EF2EA4AF1CA177AF1
-0ABD5173EAD1D6A9D2F14290037398D367DA0B4BFD68AEF239B51A9C9DE63BC6
-1E2786D5876D1EE283050FFE24A5A4814E446F5761DBEBF27FF2CFA8F6775E48
-FA9AF77995B914D8117615F439E321A0CD70A150758AF00C6920A78057D56B7C
-B3967E6F083F03D57D9592050D5A15DEC4A2D4B6FFA76B2C82DCE5E391A3391C
-EBF2FA64BDBA1D7EBC1362E608D4C0A0B6127614B4DDC899F4D943B7D84AD9E4
-8C724F822AA3EBBCF4020F32D4E990D830234204781C8908F557CA92C8361D07
-C4830D1D290DF3084E71B6463ACB18162CA686C981DFE87A3D8C4F6F5896FCE6
-8E47A465405DADB3D3CF2F98932F82E1A8DF4F0E92D76BF8DAEE0D10B8456F03
-948223DF176A88332A796D4AF902E2E8DBF7AC72E61BDF2C1D69D1BA2E069056
-DB28ECFCDB75DC5F2FD7B353BF44EEBD131B1446385002809421D0DAADB53BC7
-4D17DA3A8E6D775004C46D25331482E2403EA108434DD583B4A14D64E76BFCD1
-A7951FEC1957BD6C9B90F80A3D1CEC11672F734DA6FE02C6AAE8F74E043BEAAE
-AD06FA7749578540C7CF230B1F0E9E98BB699DCA51D6A8E524F1CEF650C85C2B
-15175889BA490A731884931ADC066C00FD22DB6996D2D94C1E7FBF0980D58700
-DB508A59C3EDD82A42FDDDEF0AA28E55E327C769756D9F8D237EC63047EC0E3E
-037B0357386E7AA0BDB955C9E2B13FD91022E614F9919BF94923A6F931FA5851
-EFF291A0CCA913A4AA8B58582728CA1CCF5035D5D00C5CD4AA3AB17EE0234D71
-05296EC3E8627BAC78A260DCB36820B0C66559F64B83F3B61079AC5FDB4633F9
-077DEAC9BE53FDD41BD1ECD9C959A59D930E403D30246172D39073634760015D
-432E2A8FB132D548368B68D74D7D6613E6E7D0DD2DBA5228F08CF3156BC552A4
-E2CBB2E58A2D5737FD71442447AE0C65C117036DEE3154EB7D137AE935F652D2
-9E93CE9FD2EE3CEF0846087FDB52EB797F44C2F0198A3F414F9AD13F8A0D6CD2
-6ED421628B52892097D5E3694C91E1C859ECDE9373A84EDABE1B4AD7D5CB0348
-3D0ECA51227933E26E6E7B31760DAADACB22A057C11CE072C7DCD0800B42A560
-6A4E3533CE41CB0D543BDF8DC48E60A6B730ECCA83A04B70253EAFA0D4BE8F1A
-41EADB97C1127B4B4E4740344DB53F73161FFA8B06B5AFB6FEA809235A49A263
-E18266EE8B937D69A2D32A447CB8852945FE40DE18FC19FD8DBC053D350EF8CA
-8611186A12F4808A9D63EEF68BFFCD40C841EC7489A9601484F7FCB97F04AE81
-B458541CA6633E433E2980A56F36D59E75BA721BB434C333D833F32DF100F63E
-38031A030F08AF9321D691521EF4B4B800484BAA40E0A043C3A298529B7F7607
-9C757E27CC006AFBD856F3F8C1421B20630A3705C1F635A6214C6D3B31B7F906
-24A30AF074B91D26BB3040E42CC4C377AE6FD6F9DE01529803941302E0F61BAD
-791AC4919FC5FB28218BE0AF525284C95114F7A034A357200AFF7DFDF638DCFE
-1EF9F7ACB492ABEB013E0296508AE278745C0319BA38D8F4F7CCD561FC7B42D7
-61B876474C41D5BF906486B296B7FD2D8913F1CF9930910C2C27E789E4017786
-6266A313012E6701CE1B08FBCA997B42D1F79C16781F025D9F3193A51D3BCED3
-54461003053651B92C8F3674D82063A16F01F6201E5AF070C22A83563C9648ED
-DE168BE56E3C7D7F2ADA8994CF17061BD8CBD822952759DAC0C099B1671DF00C
-BEC8936A092628911C35C2062A9EC789B1561D4C9C68D0CF2AAE00D0876E1A71
-962E4EBCB24424ACCB594F80C78F4FDEFC23D1F9CB7333D2602DF2A91E7CEAFA
-FC30AB99D6D431F5B33812E37F5BDFE93A40797FF0A1DBBB2F0B58B783D3884A
-BD08940F25D00DFF491A008040B9F7B9C9015696CED03120D081F8F066D167DF
-95AB35FE30EE211894941A4D5FB69F483F58CFFE73B6F03BDEF7D0B06FD0F520
-E09BC841D687A121E29B8A5249F98F1866D152E7F5DDCC03F544063F0BEE5BA5
-27313EA46C6684836F685ED6B0A86FBEB03FC4B886F76B905E31434F14BA3D8F
-DB2A74BFAC16967BE7EF6A70917EE2FA6390D4F9F329B17E6A6FC03E65EC9ADD
-E6B5B6CBC3E830DF900FB4FD5CE6E7BAFC7BEA1DCBDC112E65A9F1632D2AC08C
-35FC5AAB6608677820CA22EB321E8476717264DE74502DC98E8042CCB194F154
-9C88C3A8E89CA66B78C294C9566F9FD6F8E6A71385218F898F1A3AE012656DB7
-A571B3FD7C2B66AE759EBBEA793E0CDC43388E6ED250444355ACCE412472ECFA
-D189C48767C5411C75D15E7909AC9E12CBDD127C0C2059039E5895D412D3FC66
-DF6C519B516E79D709D5AF663F67C77CB714B1069DD5E17437B7AF76F39EF521
-DF264BC6CC1CBEA6194CB45E9CA327D5E668E127892D91E6F7E4D4EF40E7D76F
-89A379F33F0CB75AB0037FE312D61DC2C7E71F0ACDEF1C7BAE0BFBC8C5B55402
-8A8E328C3B36E667E23B653C8AD256E023E087443DD9B9C4B62640AB06F496AA
-84F9E9D19AA6FA67F5BE6FA5DF71A5A9CFA1733969053E297CCF88EDB34D0CE8
-88B8DD41AB933B8BA14A6AE69CC7B6E8F261621F53AF4A8E3EB695E4539E0C34
-84BA
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMMI10 1.100
-% 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 49 /oneoldstyle put
-dup 51 /threeoldstyle put
-dup 94 /slurbelow put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-/UniqueID 5087385 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
-956017667094CD8DC214A666D7D12CB23EC030318B42D47F222CFD38C36143D7
-DF4BE5137224BBB8E63ACB528062FA208E79839A4C6360201AF2638DD3E415EC
-6600A3BFF0EC19746A700BCC3D34FFF5BEE6B3E9DF243187C04A6FC52343151E
-3C8437C1FFB10C5CA90EF4B2079FD746D7015FA83D0124451CB153A7BAEA49C7
-057B37F3E5B5AF547DCA63666AA26274CBD4F2BF59ED55DD71A0D0434EEB2240
-E1631119E597A50F35695AD8D971A38433464868393F430EB9ED9E6C1CCA5639
-692977F8F64E947027C369FFF29B9321E9F918EBC73376F3814955D59206656D
-B42C3AD7B0DD5D82DAEF40968300621C1EEDE94DAC5FAB456BDF7D2263362B39
-864FC74361C47C036577DABDABE9B977175B62F7B28143BC325635EF393AEC71
-E70D9FE911937DB4464F6ED2306CD98688B3235F7ABC3D2491DBB377290A7BB0
-FA1F281583A40C11E60FC7E581CDB3BBADD201BD53605A226B496123E15AD810
-9681DB6E279F459F8F9C5419A40A220332962E0AC25B2253E9BF2BE5693D3C31
-56193133D8DFE26BEBC26A4266F8B4FDFCA195B1A99B8BEBBDF6B3B486504F22
-E83F8CD78907136A723DCA654EA83FF52137FF3E0CEA373696025AFE47F273EB
-7D4434837C8997F6529CA4131A0D9735E533362ED7A749DC231DDD68014F1BA7
-8CCDC3E7B931D22464CA81219854BB3F42264392D3B2FFEADBA91FC6F8213806
-1C4C3B8FB9DF794074657279D625013D67D883403AFDF2AA2F47BBB5BB1096D5
-62F1E76361A5E63655834FF48E72B94DFF363AAF486EE31B26A6FD4851E5C96A
-1A7C50B261AD2F69B290BFD6E1362CA7771816CF61077382418F068AC461D7FD
-E3FF
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMBXTI10 1.0
-% 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 (CMBXTI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBXTI10 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 65 /A put
-dup 101 /e put
-dup 103 /g put
-dup 108 /l put
-dup 111 /o put
-dup 114 /r put
-readonly def
-/FontBBox{-29 -250 1274 754}readonly def
-/UniqueID 5000771 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
-E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
-BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
-3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
-F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
-C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
-BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
-2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
-879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
-141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
-63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
-4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
-FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
-395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
-82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
-763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
-165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
-57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
-E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
-178DAA796C480A536E8BD662D1A8C639EC2F20147CF9D7D47D6A70C1B6E7DDF9
-104C7C23DA507AE6E60308418069D899DA6D825ED058E7A00D1DAABA2747732D
-BA04CC5124740D4B7D159216DC4C58D2C66D7082A560A6BF282FB33F213DE749
-B98DB7EED477040CFE22CB8FFD55CB33D53519C6D79AF1984412E7914AD9A49A
-8C1DD147BF84744159F4151A6212BFA297AE32152AE5C76BA08298D0055DEEB5
-2CC0DBE2A8F6863EDDAF8C50B634CF9378B85F00502BDBE97BCCD7F66419C54E
-09059108486A1808CE67E81293B6C5FA8944AAC7AC6668BE91090844FBA0351F
-A4D5778BDD45319106D886E4328C4C87B57349662AF33892FB0B9DA1FF4D5D73
-2D8BC86EF8CE627FB15F011110ADF9923BF491B3687A35EE924DB227C1105E8D
-90EEFD7053CA7FDFA1F2BB443A68EDD6DB85370D3BE53260699B28E3E1BE7F34
-3CADE6C3ED70BD307E55C2BD34AE1D61F7628AA7FAD9F9D07930505A4D68CB51
-E1897B682293AAC4380823A38D0942B40F1A59C3DDFF28EE267C58BE99299C2F
-1D8196C7D5CC182F81813E602324CE892E5C185C0B547B657081E029EFEAB786
-F0C25DF4E882FFB65212A44538F944A8E4E23245E809D8E16CB28A34EF6BF307
-7BF694FEC12E3651A3AA4C71CE81DB07D1FBECD86DF8178CE360775600544D7A
-AF24771B81C9C4C6CB058A35DB953D14861A28C7A97F211F6F04592DAC573697
-D42449EE6EA2360C79BB8CCA4120A3D48759482F2B5DE58CF270534FA6ED093B
-8349C585BD6BEB87B722AA6935AA88D533DC0EE928D50E9932804B22E92CBA07
-4AA6F009EFFE060F2F6261FEE5DD7A2B660471835A78E8C61F8DD5A836497E2A
-1B62F84A64B753E8B5DAF6FB332C22CF871A9FF39BA71C31D846A3B4C0566BC6
-72EC7B64ABB44BCD07B8E7DFCB055A256BC3A9C17CC97E0D33B1CD4A04F11538
-330F79673A93F8A4805216E4F865FB5F09791F8717C31491AFC80353B2B72FF8
-8C8C80EAEB8D9290A261809F85FD36821053E52C9757BA86A6357FEA51D3A29B
-689C622271A872E0906974D84E091E5108B8BF02320B66B31211674996A53754
-E01AEB59B3DEAB5E548F0F4D58130A51D2DA876B923EA1A8F14B4DEA84C798A3
-773C7B46B28AE3CADECF4A2E11FC9D8E7185CC4533CDB1CF214306718CB0B554
-308C216E4C3461E61D91B206A38FCC05A8A394B33FA2FD24B359DA9A02CB0884
-EA2779518CD5E11E4D987A4F42F482F0CB5F05D8C078658003779E112D378235
-C7780874190EEE9361D1695154565117D482911186FA9612AE7C9BF06BD163BF
-8A8251A2A2BC3A58AA883A6CCF81E452D2567B52186B0176C07B09C24BD6E39E
-49DE3B81B64CA7624B1AB4BF8DC441B8D413C07B685EBACF16991DD13514A268
-69D325B82296EE74D1578B9A943C1AAFABA821D09D33AE46B6AEC61F1E920186
-ACD01274FA1952802357967C220A1CB4D9B0B1EBF833D9AE35DC71F5C2155331
-F2C7E8DD970AC39E16198270F7BEC2B4F38850C1C3EF923FA20092A32BE03BDD
-73043A90B52E572B79A19422E50A56E3A56919942C34A42AD42E007724B3B908
-DEF2A9C0
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR9 1.0
-% 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 (CMR9) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR9 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 13 /fl put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 46 /period put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 70 /F put
-dup 72 /H put
-dup 73 /I put
-dup 74 /J put
-dup 77 /M put
-dup 80 /P put
-dup 81 /Q put
-dup 82 /R put
-dup 83 /S put
-dup 86 /V put
-dup 97 /a 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 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 120 /x put
-readonly def
-/FontBBox{-39 -250 1036 750}readonly def
-/UniqueID 5000792 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
-3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
-046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
-C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
-A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
-A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
-731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
-09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
-49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
-5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
-54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
-C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
-11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4
-48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F
-25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52
-24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259
-21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D
-2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815
-2612BB6FE97EB3FC535F7B3D066CB8D1CBE03C909812171B1F252908CA311BAE
-4C25F6B56B90325B417AA7FAF78D2EDF278C007E005458FDB5D494DAB3D2A848
-A2327CBC08F835159E8A02E9A57606F28CEDC0BC8316C15FA2A2E0975DC32500
-16BABEDCDDFF6F87D17CF6C7629C71816D609BD4782F9045101CB339A3527983
-C645DA4A6C6625496C15E5D65EFC8931674F0A784FDF5147B3BD84D9A90BE406
-24EA1CCEAC5B1C902E5BAA35F56D6FD14BB0645A319DC63C430F2DA27BC151A3
-B2332538CFBF07F8749AD29F8FFD680A953A84538EFC4F2A7F07D27FBCBE2C4F
-289079F56CC79E31BBF1703224B20D865A8FCB6604C0A4C14E3F0E9B1A1B6124
-730B49117E921EC994F49DB5DB5DC64D77F7FE0D47474319ECD4B95968420D93
-8C38BA8FF37B9F2C6D196E85E1023852E11A6A5786A6B815298ED1A03FCEE8EB
-84BAEDD4BFF6C686C7FE4CBB567DF5EE42486001CEDFB168D29375D77BBB9A2B
-4305AB40C6337ACD98402A851C000497CC3C44B50102B9D4F5BB812BD256E77B
-CCD381154385766BE9999E340B85F6E67174DE0B4ADC4BC0EECA87AD07A465EE
-E163F03B600FDD9E428692CA0861B13FEFEEC0E96BB5F140E322D5CF46D0E034
-870EF748757563B15D2098E79B491ED75AB0E54A41F4CB30E1B1A2FDDA0B8D5C
-D2ED42798951726DF9D3A08AA18FB45D492B6887E93802154086B6BC6856803D
-87B08902D7A7054886F113EEFADDFEC6591DDD1654FC5D8EC5B9C1E102F8C6FC
-73759DC641FE80FC07272C4393905E4E94AFBCB9490FD0CCC8E823BEF01287A0
-2A03EC79491984621CEFAA7A4025FF06C94E77E9E58ABEC2E6CF11766889B65F
-C22C95D529D796AD5A18A9624331CA11C183341F1B6AC617B7F8676FA9E3B890
-62CF3A51C5D5146FB03A890A41704BE8B2A5BEC2E40D24D3D07F885A5E72534E
-B7121357D67C536932294A23D5852E01E96186A53E00B8E716C0BC3C1478605D
-0200F04E18C3E3CB16443BCA4C1A27FEB8288337C14539809158C7C8F4275804
-5A36CD2916707915B64493E1EC091969065506F51315574BC9DF6BED10360A9B
-6D974C6503808837858FB1169958557D6DDBB0A87DBD140DC41313CEC1F62CCA
-B0FD5C7903D21FEC65A2D1A8C2BF02E325F72814540074753007F023D35B8851
-4DB1C3E84284EFDE17318BD88C9B26F01731BCA5244D41A42202426136A16595
-FEB8A4EB8117C0CAC9FA7BA01328F297AC0454F3084DD4CB567DBD69B6E34280
-0D876D1F6421399812667159433EF74AF80784E735FFD6A2E1053AA3961F1642
-8C02F03B072F5FD9BF7048CEAF5C1279F1A2D02433A6BB10EA5F6A8D55D31C26
-D79B4E8ED2395213DD8172175EF78BF17D0B485C8B1A3A9325266FD0BE3DF56A
-87E185CC489B71D1B663A4F0703EB39EA3C35B1FA0DD87D458439A021DFD6A44
-D85B6A1EFE74C3DA84C736EC6D856B9DFDAAD273FBB0D260E8896AA22CC0090C
-512F9F288B0A6E48860E206997C0FA2ADF75496668C928D115E8CFF0E1AD0987
-94D7D39F70B3F8AA3CB385736B0CC43F5BC94EA722FCBFB023BFDD193094AF7D
-DF86582BD7BE6E28641A51C3B0839AD51E67CAEF56A2BC4F416EAB0BAAC1BD45
-0B0B129C0923C94BCDBF25225C8DC8DD606651010C553954943CFB77DE8CCEB5
-582C22B1481E454E54DC9B09B6CA1DEB4DB509CEF422181052359CA7C3C7F730
-3CEF7279DA8A60A0C94FEAC68015B49D11C8D40E5FB4A51A47A66410FD09D0BE
-D1C7E6E56B21A1B2EB1B6196FBE90565AD61783EC94350DED2943747E3E9B06F
-3182784AB475D68B0209A26C0AD2CF2212A16C67D8F1A1D86FC4B498951E832B
-DEA24F31FA12A223EB79EF92FDC970F6748AA9E013D4DC7201D8F88BFB77B0F9
-753CA90CB1B2B4BCB14A8BBB973F3CFDFEAE052CC10854D6E3B313D1BFE4BB84
-9FB46EFC8B1B495BF310C71FE70161F8FC2764F50D4F3B40E46CA8C611D92EE8
-1C8537D05B7D26C152444A9ABEC2584EEC53A6B9756C1E4A7FA039A95D630B3A
-08AF5422FC5467FDC19815C85192D25E312BA8C8F199558C3FC6CEAC58A93111
-971BD05B479CECE5E6BBA3F1D091A4D90D9726AE442B8B9A247752E7BD275BA2
-688BB258BBCAE3FA068BF1A6AB2A3F77CCD0F74D2D2E065000D76A035473F3A0
-2FB641AEFD66B47224FD627F6D71B52FA128C265D2EF2F4CB906F858A6649480
-4408C08A280B60299F47A2864181F8175975B3C4104E76DD56F421B8BA46F65E
-0529976E547492D6003CA4FAE83CC49A974680272C56DF3EF330EF36CB1EC6F1
-1AF5B3DC179614C03BFC4D2D371B8C9B164BD657FE1654B23DDE0C5891C9B526
-3337A73C627424E26777ADFC1A057F0A3F1CD3A302CAAA775DCF86A5C6694709
-EEE972477DBBA4B355C8F74583137D90713826BF2FC2033278BA08CC29F56E01
-797BC9268469C02C25E3DB4040B3CB3A3C039C7CF866F99E79828568274740A2
-E420B2AB5253DABD1DB7FECB45918DD3198FFECC2324A167C70B50A3840FEE25
-CF2D31A9E51B7AA2A565D70DB15A886D69C98168A0ECC3206DF14C9D57725F76
-38DEB4A408EBAB266063CAE2C553B7204EAFA4BE9CD648B695E53BFBA7D7959E
-5808313613DB8E69A77419C4F3D232D83950FE4B9C9B6F7C6DF21AC2E06951F3
-DBCEE07E169F0A27CF0A8CFC9451AC82DFDF784AF8626B8C270A2E9C68DC1E65
-67998201CAF26FAFBB5F3FC338712AFD8E405DC259053A608393E9BD62843EF2
-7E755E804011C826E29FDD23D18FFE2679F2B86B96158C49368EABE227F81AA8
-2CD5330B8E0ECAFCAA95CD6FCDEC5187B1CD12048BE52E6E5B14CD4EF6E2C3AD
-68D94EDA110EA820BCB16D64078972DC0AF8428F2E11047999A2FC703A43E037
-7B75D090B19C673FBA1172596A9923364E981782461FA2A343BB7AD7D0BF4006
-EDB7754460E35ADE4A36107257DD67D7CFB47E3CA40E443E69FD0A01D23442AE
-1FD1E01B5E1D694E02039F8ACC09AB0953149B5277F7558BC0DA29D055C13ABF
-C95BB48DE3D37516DAC718E600356F6E8DB52D34F8C61B5F1054B09A9BC6DCE3
-19A6E5BE438BFE77DF6F10AE64426A0466F3021F1C8D8587AE6EA179E313A4D3
-33D3C7B27D7363589059C9D4E2ADF48D4BE3E3596E3BB976F404DBE848557C99
-241B5622D6C5A82D5AB2F14A1E45CCBD4D9CE76E71DC60C48B380E3C6CBD43E6
-17E6CB3E7F9FD7D351CB923F31D2F2E62465D4E6F52ED4A92E790836FDCA3E15
-B2ECA5C6E299C7953B52BDAD34F83BD906EEDAEF75EE1B0E7D04F34830E355C8
-A33AF2FFA997842269FE27C371B67DE245BE752846A3D464A482A8A826AE3BE7
-90A581D6F3869C932364F05F725B3AF900C84F624FBCA39A6A4C33705187B78E
-B1679C1212C7F76F848BA0AD698CF09C16CE59BBC6F2E88E4B5266B9F085EF68
-23B8575669A1CF1C1EC78CCA692BD0F8DE5FA8E78CCBE9E2C354165CF3D94CEA
-B9DCD3D3385C7DA5BC5181A8B2D21D99793B5813C6CD5D70B059BEB6A74AEB22
-2AD3DF009F4A6AC7387118B076B215A5775DF813DC3A8E2CCEEEEC78842026F2
-CC23D7FF0BABACB858AC1602D1EB4288CF072099933DF8218652D5CD8CB90E49
-D28BF2D863E6B18E0546AAAEF792D11378A2EEEE1CBC48991F863BD4D0131780
-9D60A2E48365AB9531EDA5AB782AFCF63600FB182FEE32E44F793B911E57AF21
-F3EB9903AE6B1C99B6AD9CD9C35CC6D37A855B257A67277B584A2279AF960E12
-BC9D91DAA0AC2BED465F05FB8395EBACA8E12058CB212CB5297B427E7F0DDBF5
-B36C94AC8146FE11E04F7C76DDCBF5D60DBC5B7505B7AF9E752195233A181E3C
-709F30C876DB248E994AC297E749E7967165EEB2E8C22CBA7095AF6F0D1C69A3
-DDCDDAFCCCE5E6881477B17DBD11D122713C8AB3625BA04DBE82C2100095754B
-0D54706F073EC2B36ED0A3C20B385FD18D54BA3DA68CF55912583950413A7829
-EF03961D9CDA08FE17E35EBE6AEFDE838939625C6DE3F05F9EB7CD712AD98AC6
-876502F8F5A9AC56B022C62F035CDA2D9E21B66B36D275CB8B10EDB611D5A451
-4591A77E3E0550690B9CBBF92751AC7C293EF7F6546FC2B9AC98F98BF90783CF
-37059B75A97F4C04F5EE6341ACCD3D735C8412003EB0FCD5B5CD9C29E3F80942
-3D57A5B248CF0C77D77B657CF020EDA6D544D7174118D78867F9B7EAB63D6E9E
-589AFFFB78BBD24C27391A7512B213D06C3C29F498FF9637DD68B8F41946FD81
-0D3085E03538CF640A216757E606911374F00E20FC985DCFD4F3A96C018285A3
-E1F813C18B0CD09AC297491B975C8EA72C41AAF9BFC4B5ED99B7544F64C5EB0E
-6E1793322A8F9F10EE32D615B28536022D722B752DD2056B98DFC8059766D9E8
-9A2D53F7D2AC65BAF202696B48310D15A0A1A28A4A5A915DCFA5BD0347DC7BFD
-EAFF1CAD1742253D45AE5B0EDB35883DFD61BEA785568793BAE3FDE01371DE9E
-2E48D7DCADF50CEBDD552B7D5579636464A412F9FBD1DB101A4DE1852DE51598
-2CC4A71D227163FE5E819813B574E75A7C222DD7743F63B1C13659FA90B8EF31
-E08B431C2A81EA9140A62309CBA881D40F4248B281A9850159A85658126918EB
-2CB60EC41083A46F1EE96735319E7A351FE562AB430E92032732EF822C4D4A08
-D08ECA567108EC02F55F509EB0FD04EF59197C25D427AF8A62CF4D32685E85B3
-B89107DE94DF057DC09623F4794EC82E89B262D56956D72AD00961CF3088BA74
-D7B8BA0591A938821B6AE10AD83F773C859238959B0D129BF1B38346016E1C00
-60C616131BD52C24DE6D54A65F9ABDD1F46CB10DB97F369E9EE5C5314A228DD2
-EBFB4B543816AB8E6151EFFFBE5B3216B7521EDBC41585CD44ABC8031DD7731E
-524D1F2FC05A6F3AB90CE2A31617A1EA32759814DC9569FDED2A21D4AAB2A70A
-C56C54737703F9CFE6F208B6F983615935408692BE6828EF591C334CE44848C7
-DF14814D23648D6B64B06BA028E78E76CC820E95DC3F438B20AF3C29881A5CFD
-F0DD65608D0BB6E293E5CF7A5883C78DA674316D2E25B19A0BFE0AD330446C8D
-E97C4B480F0752D6C9E149074F5770769C4A2D184A93BB9896A9E49BEC7B409E
-FE893D25C00BC520CFB7854C78ABACC69CDF7BBCAB772C07CAE00B35586CAA34
-283E47AB114CD8A7E73A9C533A2D439C3C81AB235315992D361F1B700F37ADC0
-987B237326005160156EA50FE51E85CB923D599C7530EC7017501EBEF0836146
-9BE78FE7662E22B33393E12A185F0B444FE21FF475D4C1815C81BDE22169A7AC
-A230F97C1891DF0C47B67476817435A23BFC08173E4AF7BC070978CBC56F3DDA
-1819E27D55DDBDE06353C1967D19DE3B0D520EF3DDB3EDFB77C8F9A2B4CC84C3
-4B2F59F66C7F53BAF54D59889F93B12E280A4B3999E0B8E82DB37DB5823A0BD5
-DB8F7A2FFC1EF707FA033C2F812E6112105C7C863C5756A96ECB6C975E8A92F1
-AFCFF32780BD2412EC862EF35CC3741C7BFB75E81261B2127E2544238219AD19
-18F58B2D1AAC9F80EB09BAC13DD49DCCD05ACCF7E52B224245734EB121EAAD44
-7340FBAE214C00752919E18AAAC08F6AAC7BE864C1C45B1C94D559AC77FD4A23
-2958D6C0226BDE87233E08407A012C28A49CF1E73D9229AD507FA80CA7083B04
-FFE860279F95EFA4AE717D8B455F9860DDD1A06650F90ABB0D24ACC4E7F473CA
-2A07364A5F5153457E15AE2B632C8C572C1CBABF3E22FAB66B57707629041AAB
-86DF4E49B7FE63F81DA47DDE578F89819F5F239CFEED2CFBDB1E7776B0A888E5
-8ACFA63577CED2FA8FA555971D7DCF216C65A5F1639525C47EFBE7485838F3A9
-4D8C010DA35D0A2DCA16FD4F1A6A6CC5E093829DFB7845836DFA5E09FFC7CE18
-04D122F7763CCFB1962ABD85F920358FA407277DF1549DB1036FEC7B6A0B51BC
-04BBD124CCC7432CC9343B810708D0CA4283747949AE675BF98FB653F919FAF4
-FC921A6C2D08CE39A0C7F7BEC6F02A8A8624272A63E4EC1BC34A630C133EB557
-FB29E6408EEBE0A1B92855C9807EAB6159044E9D21957828573624C95B87B46C
-4EE9C54BA968DA967FB1A6D8DD448C1266EB11A2D10FE4CDBB2C9BD56E55B220
-625EA903DE7C516F650158341CF3EFBF3DC8B057B198ACE3A8D51609F2C18405
-7877CD55B071C310AED758E83BD75FCF58110CCFAE5A9AEB8B0C504369B44FE7
-4657F4B56ED3EC2A405BD1057C675F5D15F129DEF766311C8D8413037A10AFCB
-119C50CB15C5AED588484FA10A4374F9D583D797E8751E75C506F13FCC180F9F
-1F53BC34916FA89EF30C8A061751385647EEB59C9DDA8DAB8D065DE1FBD91235
-2ADF968DA21F05395EB4B0974289F9E317C63FB43D3CD6D5B23CBA3E0E851579
-668EC8A36052338532E2A7AB5371DC7CB62E949F31D5009CB12A2FE07C3C9CD3
-969A1002C8E2EC70B60488BF07509F42D865CCC60EEF1E4E550CC9EE4B923278
-31F80423BFAD0DC2662DF2411DB4C09D04AAF096E8B93ECB9509A00BB65D5FF9
-7FE01D9626A813CF5EF033D33A8DD07B72B08877B61B6E6CB1F190CA41C25667
-C5EF6191F8F4C5DB6C5316189356899CD5D404EBC95D672AD6B0A71AE190BE8F
-98F3703DE9D9929748B4EBE4BB5D0B5D45467C5EF3AD14646F58A26F92047E83
-3666A92DA282C84432EA34A636BF9F86A5200521095AE99B8535A421E1855FB5
-4758FCD4CFF06C320460C587F2CFC25628BE28A9364D098B19206A1B1F138C66
-8B6D27C8DEB4FBBB7A71304BA32FE203EE6D9FC2FA74DDC8CC71EC6012B34172
-E2679BA9DA0BF117B7C5E654EFA67F4CA610D25EDE93E65783F7CB54932F0709
-EBBF749E72339671348F394B21CD1D02039AFE9AEDA238F492D525F32F45A689
-C0FBA9EB124F5D5B805A1D04739A383F144F3C1682F541C3F12EBD8256F58640
-CC735DD05AAF3B3640713EC3D75DC6ECC5B0BCB0B4A918B1E2F7C062C71729F3
-81BCA57AD5DA07EBA5D3066D0126809A7AB9CAC1F8E2BA7F30325B93509A1141
-3E27B678DDC532A8C2D9B446C2E53787A4A1528C5AEB548F7E90618C16186A02
-50CD51E0413C0CBB8CFE0E1C34F4ECBC4D09065394BC0C497178FE730CAC5B8A
-92B6EAAB8885899381656D3ECA9B68B82CB9AF7F7DF4D194E360A7E71C756B4A
-0F1F50324DDD97A835DFA650998BAF5F6536F70A7EE32C3A4290E58D077AC73A
-C6B4B14E6B76967F8998DAEF731C3077EEAEF2057C61FB696AE73809A43AF91C
-2FFF81EBAEAB5D26672AC1C0DF9D06B7E4AFFDD122BE02BC03B085026F4BF3CD
-EF5FE56DEC0A53A384F8267CED47DA569AD32B9C496B4624D8FBD35C2854AF0A
-952C0681726B04B5E8313EC9905FE9935552C5144E8724247D99AC40309FEABF
-062CB9DBB8B16A161CBF566A26948E335179D1985EA6D0474D6A0C7F27CC0AE1
-5AB7D4A416A90CF4E70AF62919EFAECAC4A58EEEB39A7F899FEA55B66A3FCF92
-CF997F4A56036DC1B1D5DEFE6BBB77B28AC1AA18EAE16BCE425A259E50413D7C
-080C4F8C610DBC1860B142C743DB386877208B30A56A95A1D8C8CCA92E134EA7
-2D9976A51B637EB76DE1C970507E8F92B387352294020E7372A8A2270A313625
-10B600DBB1EE025D74E74E081C86734CB0C943FB756A1A42FC70A2479A730C77
-31AAD98AD145E40D747FA4A4F0AB20F43FBFA012DE047864979254C6F35F0B5F
-4CD87DBA07776E72819686A1E03A65DE62663F79BBF4CB927059D2D5FB0713AE
-DE6363EBCE4783FDE377911D5025DE4DFCD2915BF14909FE3E56EFA04D891D50
-29EF3AD5C0BD5D8F8D89646DB3C2A5048A4C0A959619166001BC0F55D3664B9A
-4601360BABD3770696BAC11A0C0C8CA6FE86BCB49B076F14FD620DA63FA391D4
-B35232B7C8ABDA6590D9FA74181E33233131921EC21FC697C2CBF35F2A6BC43A
-C353E8EE8F765193EAA84D771382F4527B6BF63E5C8250EB1662963554AE57EA
-DECAFA340119D60D1CC708F173F44D93725D4399C0A07D4BEEE0FFBA24176DF9
-04C779D5F979F74F9DCD09BD593A7DDC3F60E42624CCAE1BE13061BBFA74E986
-054CE72420CD1A431287F27D72D65F686C08E5BE62F102994C17483C70BC694E
-BF65402AAEC3AED5F53B4805EA6292E71CC72F507C653A77920EB79BF54F62A6
-BA707B37898C7CFF9D81159CF59A0D3A19E31E84BEAF749BDB7D405A547BCAD8
-6956DFCD3DCB292E97C40897337789B2D0DF8BC3496244F055D072F4C15463E3
-473E361CE8FA00820298910A83867E869F9762D7AFE7DDEAAABBB6BEC1E4EC90
-A95963863757B10022F388CA4D93546A46C6D686161D752E04143036B03A6C57
-51704DC1F4EA41FAD153FD167955B518FFD66DD9E033F1D03BA3BBACB986B3CD
-468A850F82FF7508262449714E080395E1FCDFE3D3E02E25F25FB10CD9D07451
-E75258142AD8FDAEFC93DE1F9A56C2950070D40F74876555A1E796F983029FDF
-1ACFB74ABD
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMR12 1.0
-% 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 (CMR12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR12 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 40 /parenleft put
-dup 41 /parenright put
-dup 44 /comma put
-dup 49 /one put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 55 /seven put
-dup 56 /eight put
-dup 65 /A put
-dup 73 /I put
-dup 86 /V put
-dup 97 /a put
-dup 100 /d put
-dup 105 /i put
-dup 108 /l put
-dup 110 /n put
-dup 111 /o put
-dup 116 /t put
-dup 118 /v put
-dup 123 /endash put
-readonly def
-/FontBBox{-34 -251 988 750}readonly def
-/UniqueID 5000794 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
-68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
-3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
-59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
-51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
-DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
-AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
-45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
-821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
-96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
-9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
-26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
-140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
-1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
-1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
-377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
-0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
-5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
-ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
-FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CD89EA365D66
-6597888FBEE7697D11D08748494CCD9F111E5380973555699C14B4E29777686E
-976B16ABEA08B97ECC12F6E1841F26944CFCD8C3D460C13D29150887BB5EAF74
-06C28084CB0466269BE53FB228427365343D9FAF826069F6BC5D11552B4A7C2D
-57034DFAE3B14808008302E8A819A7785281FDC52EB0726D1661A9B7CCC20012
-AA8109ED9B3B35ADDF13323D3667E55231EBCD108FD91159E650AAF58BBC60B5
-FB01B79DE87AD31BC24E39307F159050655314F8BB2D13816D9FF5E6F68A5943
-5DF61A695E0B864E8D28B2E44B50A87457E8C022914A93D4AFD4CBCD987ED9AD
-8C2FF9C9D0B22C5809B505C6FD4A814411FF5F03EC9B4D07BDE618D0D71EF525
-41B8FA15E8CFF6320BE8F21C607C1872B5E23AE5D93C0903DD5A3CB38F39876C
-A574C36425CDC51A0E8517641DB5A1C31E47BE3A437475EF47E1468415134C35
-489224CFD8EC048F5501AF4290CC7CA1D6B7CBB69C3D009680201C88A1388E4C
-5772113218F82C0653C9E293ADA8640ADC0B24CB3EB394B5F19563D68D2C6B10
-65BB5AD868C8F60679FDF13DF8DCF6EA9F14B17B69D5679D033B679AAC1BD791
-706138C8AC24FD88740B3A36CD29EEA357AC8F451E89D61CBCEC20A674A99F6D
-E5FFDBA07919BE9F8A4646F04375D2F4125EC632CF6B9964E40F9BDB540AA802
-6DCD2340FBF8C61E0EAE9D27F143132D20E137FAFB154FA762F21485BDCC6A79
-7EE4CFE50F40EE4B33869FF19731C323149AEE7118368B9804742DDC95FF4E07
-8A7F46792AD451DA149066DE18E9C52FA5DDFD04551092FA9BC903D706DECDA4
-64CC00F3BC0BF1720CFAEC842EC091789D25F77A39A7D0A18D62AB435449DBFD
-4C2279F7D12533E6BCB16220C904312307120122951A49FB48C901F63FD43598
-6366415194E2FAEE2BA15DC54B2B4BA12D5AC58D2EB93BDC198E99DB0C922C02
-1697AE7026DF7A5581D2093C58F17AC62143C8176F643CCD7D3B02A789156354
-BE8EE03594EE3129C3C267B63FC9464376069392A5C257F71FA81B2044519EE9
-F2B545CEC68367AA414E8DCFEC27AD4D3FAF1E33ACF0BEE4367D35B05AF25AB9
-4E1F5B134C94319A24AB9157BBC2F30CF104AB7BF637757DECC573F86D9F4B94
-5036E57D1175DAF07B22A0334F941D2E4AE4D6650A779DD93FC7158CAAA8D78B
-D24AE1239548342CBBEE8BE88C7C01CBE79325F5FD56000AF2C863B4F2F350DF
-6049D82CE7DFD629D6A1214D9756B82139925DEB9F09717216F920B2AA5E3E3D
-0B5D1E6CC74AF908F320B2796BFC10A8757A09C856AF8ED7AAF33DEBD372F479
-E0B7AA1D93C7A5285766E9F5B433086B10D05574EB0C6CB34B47C966511A5412
-67F340CD7010258D5577935EDBF449367DD037B2B720A43B86E50BCB74ED754C
-233654D6F6B54E7169E3502133A57A1B86A5DE4F4A602F51C456D87D0296CEF7
-11ACA957CD5BA537C31E5F9C76704444176ECD9672FB822A1476DA053CA349F1
-FDEBAC9938BE92DC6B74D7EDB6DF0FB26B4C780CE8FC72653B3CD36F210B3728
-8CA0ED1ED963CD38FE7172E867D6D0B5714C25545144CB8D5A47C7730E2A6626
-3C4CF34C3207093633FB241D1358A155F4CBCECD5293927E741316344BFD7C18
-B8A2F219381E0409D5B8145CA7DE78870E0DB4B730E6362E7430E0B59C9903C7
-B795672573CD416D8E8D0135D12B096132C20F2041C665E6CE206FC085B91144
-8A66E760876D7C4047A8177031C446C2AE7776B57286FA797502EC7E988C529F
-97AB9F75701DE4EF62F7F78014A4130F8FB7220C0D781CB1DC7D028B5CCFEBBB
-7655292E21C64427354452EE77513492B0D239084E049A8C41F4178B26D0E43F
-0059328EECB38CB250852EA6796EA62F0D47FDA68AE1E2D8688D11BEB20E2802
-4D4F31BBEBA0020675E7E870A4D0DA60A2EBA743F2304D18C8690AC7A5AF8C30
-BDB31A646C101FFFD11396F05F066A99AA3F68E5F6DF3D1F88025632374C650D
-888D516697E13F1B5DAA9CF1BF0126FC3454EFD8060DD080EBCA1F0DCB597C8A
-4E28268AF906836C6C35AFCAD59733CD6874F39829AB750B17DD4EDB54F51542
-E7AC752E9E77DF08C5692258F81D8035DBE785309E86A28BEC85B0CAC1088C5A
-5911E04B045E757DA8BFA4A25A19F63A3C5A52F2CF59D073AE8DE0A447E66B81
-78EDB5FEC38828E1628907FA60543A2A8440E47144E4D0D557A808202FA610F1
-6ACC6B70D12E4F727BBEBBAF5E80CBA6DFC5ADE66BFEABECED6D1CEF6350B8A0
-27F9E4D4F72E2B399030443D9BF26A2A7E390AD362334AF83F69828E0CDE0CC5
-FBE9571E564881ECFF084FB698A868711C57946CEDF1A41AC2B30951A3E3DA0C
-61A0CCD63A1F9384FB91D22CE26D5C0DF094D74A4F160C9C9F97C0740D564B3B
-ADF5ADD62C66B246EBFF64BDD7BB98830D84A05C215C2E6576261869B77AF0B6
-ADD5AE88F67B98A09DD158A33024797A7B81A07ACB2BB469FDD500667AE52324
-9EA6CC14007CC40364F22CA9916154ADA66758CBF7C9223076E0B1AD4264A255
-07233FF63D9FB0FE6D9826B67EE999FDC01FB407D7F8360D6A772EAB70135D8A
-F95EE713CCD60FD25B6FA7411AD7D4E020AE92F6F37D6233B165961FAF788956
-3AF21AD5956DA59E72C1E0C48BCE7CC6A91FED1A48731775CCEDEDABF4FDA62D
-B6434842EC525265DFBDA9CEC97F4D9ADD66439247F8C02983D848197D068D86
-BF1DFB709DACD35C11F9F46EC448DF806F1A5DC1BE2F63E5A1C43364248F519C
-345D8FD20F147517D94CD5EBD1971E01DC89D0255F0A9ED334B3BF9ED55BD7AE
-8D68D874104FA1FEB1E38CA037E1DF6777DA5E18793A9307973007E1D744D528
-CD01AE886DF67B10BDC34F34B56A2967FCCDE97D4F59062430B9300CCACE5168
-7B263EA619A433379D360057FCA0B77B47DF1C214C0717770FA74784286812A9
-7F49B2A5B1D0E7D9F9843B65A53B2410DB07D87DAE79DF986BA8C793A4E78DB2
-8CFB38432C69E0AB9F36F1E92A7AD1831E939A6060089A0DA72A07CCA5E70951
-2A8A01E9C42EA2BCC37EBFE9B51E45BAD5D0915C16554ED974F502869758E2AA
-7019EEA1F1D3C6A797CE54CA16CFED98B7BF66983B2E748E4D0A6C6BB836D247
-2884AF2BEF50D6476F6012888C2063A8E29757FA35064AAE5C9B0E19A518A88D
-5C3E71086E71F08C595EE381B32F47C40E956C4E430C08186A24E55DE624EA57
-58814813D5DF9F6D6DEC34FBE9A8BA95FB8263225E99E9EE242A2B7388EBCD36
-D4BFF8FD4D3A0097ECC725EC14D656EC2D4BBFF9B5EABAEAB9EF8D2F141AF642
-F57AD2A651855F093990027175C4C830472689E412348716F96FD43E1F7FD4AB
-BA61DF81B8357A604E2024A12A71472AB2D058520FFB6243558E278CD362E4F0
-C892D398750673CF2008A0B7484F26721F2936FE4B8E7CFCB5A6E5BE0CF87123
-440D727379988FCB3538AFE6FEFFCD45F8BE097CB4D35B9F77E2E3DCED78EC86
-3EE6F6E5E1EA578F58D84FA366694C39D9D4B65CBFD2215558D1FC91B413EEE4
-BC2FBB41A194F207F4A2B574B98482E1D51A3647A51CADE6BFE9274B3A8FCBE2
-0DEC7813ACEC9676E39A4BF684ACED156FEDE5AEC1E285AC82DB238724DC74B8
-C541A65A1F39405CD4F07761A15117B7BBC3332D0012BCF8FAC232B4742D042B
-1340CD41DBAF0C13E5AC324B72D2E61B6245ECDAEBF7375C2E5E76F3D0BE93E5
-743201077A1E8A60358B0E9ECE2EBE807AB7A74472FD9CC9AB053404FA545E48
-06EB141C43A00AB036A02B2931D0EEC160A3981E2A1E7175EE01A88AE28B852D
-6EB9371092EAFE3C9780EF6C39342A3F87424454D9EEF0B01B437D6905CFA707
-9289BCF656A5596DEC4212101E566265C9DBB68A1C3680E8C26123375B0FFFA3
-9C87CA77A4D5B3D83923C6BFC68C4EF937913B70AA05F7D19A9B7DDDB37F5240
-2C6AC125B9025564C20DC6BE183F38AAFE2110AA28302676ED3FDFBE0208407B
-A8F618712BC1612E49E76CD6FECD29E19ED244D3FE2BA42FE803C17E5B0BADDC
-9567CC459A584A73ED123BA921AFF720B4AE5231D465C1DC0D79099CC06F6F63
-FBD5D0C26E399FA45A18812290EDF874EE5382B2D44ACAE6A39DDEEF8A522577
-80F157B13886E88F9B21ACEBB6B5FA954CB8D170DB9A0039D8115C7472395FC3
-200BF39367FDB4E6B4B016B54138BD84AD848A
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMTI12 1.0
-% 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 (CMTI12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI12 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 74 /J put
-dup 84 /T put
-dup 97 /a put
-dup 100 /d put
-dup 104 /h put
-dup 105 /i put
-dup 109 /m put
-dup 110 /n put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-36 -251 1103 750}readonly def
-/UniqueID 5000829 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DBE5BF07B2E83E66B7F97DDD7CE0EEB75A78BD9227BF359D002B6ADB
-8AC57A33FED4EF021A7085B1E2B933DE602F0FF71467ECD501744AE338AF29A0
-26F7D368AC6F25CCB882DB7B7343566192BD687E1349225982823027D3B66703
-3B0DB7A7E680A682B98023D39C7FAE81A5D5B867A0A66C8AA0DBC83B1596A84F
-0436AC6A7900B767BDCCE0060A4811003C79FDCC71D73F7F2D0A6675E93AD21A
-56B4CD8EF75EED3DE8C0A18BEBF7B9D1BE72504872D56EDB272F1E97FC726CB6
-68C85C713059DA19F6C2E0F3E12710A59B6FC4699AE883DE8C8615B7292AC25C
-D5714B6CFB14EF0EF11EB13009BEBA4F345A5D3D6D9926ABC2BAD7DB1328651E
-437BFB3C46DA7B62219660FC368CF3D3704DAD3AB461C28F711665BF484BF61C
-052093D231CA65618EA463D63E406ECE858D180A6C0589B2FEDC321371C28E77
-DE974D655DF5FF7D41ED01FE717D928A885F6FA6CFE4D2C0807F8E7F937916E0
-96EDD1A3BA67802B1F4A49100E75613BA0356D9DCBBAD4DAB3C59E70A47058F5
-2163D1730F0EE4D1F87C3A4AE723A23CFD7986FC4FBD399347E9F5946354E013
-D860FC446AFF0B0744F5DA27CC777C96ADB388D1E835DDCBE123FB517679B9B7
-EF696E091A9D51510BE264701A41C04FA8125A48F306ACA7A83E35D5BA0C296A
-BC594ECA2CB27E92FED95B595C21E5BF0DA724D40761CB377BDE5FB98C9D152D
-6C0DC98C4083E9656321BFC445CD6FCC142DEF16E27DD6FAD0B3185223B1A7D6
-779F39C70793184F2C3B721FD0AE6D8E063BD47804785DAEA74AF8C75483B713
-650616505371687460E2D9038B305DB2BC67F4862AF6C7129FF0501771532717
-4C3256B4EE1BB0DBA3EF30ECB88674BC82BFE5977520292F5EFBE7E9D4936FAB
-8F6C13CF280C672AD2B1337BF8CB2599CE823F8E6CD5BFB6254F0A4702A1678A
-802DA6683619A54A61CC12C90EC800E0A0BA6D25C5EFACCCBE33FCBA714A2D4F
-EF3C059D73126693616D84739B43CD8BA961EAB47FAA7554F2BE4F68CA36C444
-46719F88E4CE4766732DD875D9FE25A7D78E22D5715F81CABB0532C180A46E55
-D174175DC3E7930FDE3BFA627DD126C23FDC769A556639C372BEFD5D0ACAA13B
-D42F1AD041097FF8E9640213B56DFFBC8622316025967BD9E1BBD377F055D87D
-3C1B26EF3D1D5E841E4773883C10B883956BAC37027310A73A4DADFB4D1D00C4
-85240918C979AB1814666491C6A51A228FBEC2CDD8E506337D57C50AE84E8E8C
-BEE28B994CF899169F59D78BBF9F8D3CD949D9DEB99C67C1D877E8FF3ABBBB87
-C6B3DD3F403A791EC8120C7280F321B7C30427C708BA5116D07E7FB8E50FE3BD
-A4BB7A9C3C3E4E8C3F775EF9FEFE48193B5C6D68FA3BF610EFA4C610D17FA485
-2E91A35C2E5AB2B89BD92354FCE46504E85464D9D00C48BB46BCF0B97FCD05A9
-6C9F238CAA9A6809E0C21C8BD69AA8AE4933DEFF3DF8FFD475916EB757DD27C6
-E37BD51AB3618EBBDAE01DFFAA55CDFCC8302C80737D8D9BA410B091D7DA112D
-01379A45889C345EDE79A38807211F9DEC3AB689B0804440E5409C502697960E
-5830A83EDB55014E5EB38D07EEEE82B638C5AF5F943C6033B8379A238D8DC680
-7126CBD5F9FF7F4FFB66983CD78861E0D67A4303639EBA2F3A487E7CA51E6B68
-07785089394EF16AFC91FADC36B9275B7A979C445FE3654BE3BEC459DBAEFF97
-264E35C9A262CABF33A1FCAF5AC9F00AF9495E8BBF1FA3F98B77A1845B2F128C
-BFD7F1EA9068E8D5F27B9EA90A747A250599698E6A15346FC75F7238554355E9
-B3343485A8FAD7F956F499365696E9B291659C574A6B73B4DBD390475D152805
-BCB63C568C36148E8F103FA5D33D60166A349E28E6A080CB28637B16C69CE068
-54818818132F81DC628CDCAAF7AE197DF86792F93C129438875D930A87F92E0C
-A2AA2A1679A3A5636CC012D76AF7396CCFBC4A8DADADD125053F100CE10F20AC
-48C4FDA6CAA1BF2BC5815F301FC7C070CEC5E43560D1F5429C06DDF1AD745DE6
-4F63FC646D58A859C043FE921874EC4C8E673D088199622AA5D98CD4456E313A
-09DB6244BF5B33D2BC564158226A3685FD348E02B01C41CF2EB33C53BE4008CF
-9A40F39884288B6C4028E07B2388F1DCFA8BADFA66B2E93774A2C87D28D9724D
-92083F77EA0B0C5D3D12A02F4E9CCA36970416C6EA3AA12A4933B297120530FF
-3C21717E28E2DF7B743D350175594181BBE2E6282B5C63F9D498F430DCD0067E
-CD3C1510AFBB9D365EB86B49501AB3365518C133CF003AB225CFCB4C69BB9BA3
-0909C950370578640CC4626CF62D19CC7CB8E2EBD765FCAD7B027E6267171E1A
-90C0CA38D8A602B0D4F5AFF17436B2E0EE4BC5AFD16A2BD0824C4C4BD62EC037
-1A19BDB45D3397511C80E0CED68585EF33A1EB365E3725052B3D22C13C69B9A9
-9EE4D4405187F0D735F83EBB497899A9314A9C0E2DA39479693A46E9544CBBD0
-5EAB050F2BE936CDC7839D81848AFBBDB33A04E36F9EF5786D5B218469B60EEB
-DFDB516F4B143FA062BBBC79F400E167B8EF1FEC982335BC613033ADAB33FA9C
-9BA87A75A9425765B8A083A17C8410DB65A28AD05BDAA43819A41E36219F7CFA
-E4677E12094FEEA8FBE477B933F8774AF123B56522285316C1BB4E186A245DF7
-33D3CFF604CEB363004A57C83582BC6C49ED22C3871A5214BC8871F4301932D4
-B14D0AA0FD29F4648D8B693D02FCF52A450AC59186779E886186770773FC17B7
-EA2D197D7DD27D99A050C3BCD41FE11BBAE3CF0B390EA8342AECC92B4196D349
-E9CB433ABD8194603AE9E57251AB773248CA678FE2E17E8482DC56D4A260224C
-74772A3C15232E49E6970BF91E72DB6EB33C8A67BBF61C381E4D40D51810D874
-6CFACC9ACDEC4AC27A66ED54EE57DA2659F4615CEA9D3F0C49129297841FBC6A
-6BCDC293F5146897782FA6368DE3A68750B03078320CA76829E6458C054A7EC1
-3A4B1CA098A224F6CE93BD8CA2086FC297AACB379D9B76BDA2D8BA455BFA729C
-16ED87B72C836D6B5FEFEB448E70C18EFE8CD3B1BF46D4DE58D54CB432954D15
-413B74819518E0043A6A10B62290D7BFDE27369702CF8ECB6D479C0C0C0BC34C
-E6342C3852F5A43FB54B5441805EA41AA28AAF4074E8A23F3583D5119479AB84
-FF3A3873E89DEB4034FA57DCDE2D4CEFFC8977F618E78EEB96A61A3F571061C1
-108DAC335BEAF3A4E0EBA8108C07F59ED5B667AEC7E974CDD8A129D582BA25BA
-6B7996CCCDFCBE9700627A8AD992E62F3E74CB3B80123F7B305B260075DE14C4
-DF2EFDDCA50F1151ED4DF1DC516862E5C2F387CF0CDD4981252A97C332747416
-C156681936E00160F90D18FD33A5CB097609E92A6A7FF3B234E935B937DDBC3E
-5324DF479A21A3E6642B106E1C7E8FB2DE8F06392B00A69718EF5A0017F08F7E
-9D41123B5C7C93AB8D47EE14F0EC352A4305B24C955C326CC6010D56E7A9C8F7
-99B638AC5779FA59C1962A4EE54BDE12E961AA2BF2F5DE964129632FC0DCC138
-B35E269C143AF298E1ACB63330511D22FC2830E00CF9AF14F98B1B02ECF920B0
-2AA912524E271155A95488C5397CEE349CFA937B61D64D24A6C04F576904CA58
-E44E10F66E87796BDCF0C5F96FBE2EEC08720824CF4F2FD0B6EC87BAC86A425E
-7E40BC5731F11A992927E13EB558071C2E88E0CC479BDE5299A63C70E5C61A29
-4AD4CA5F3D51D5271AFFC99BCA2BB97E23ACB09EE27067F32ACA6878F9DEB72A
-B4859BD0DB405CFB2E7C76B23FD1F9FA8392C1532C3A3BFE2BC435626C75A385
-5EA6F20FEB8EB8761217E83EAB713E2CF6B8C932F474118DF0CCE1CEFA3392DF
-8BD2E69C44BAC025B409D22BA52BB01F80D538FC4941670311BE662D8C830D66
-96707EB67B37AE6D016C63A4A603F1EDC05E9B6BF68414F6B3321E8980A4279A
-564B7621AC54EB62B83E441CDB10FF57E25F995D5F39787D4C6AB1323B8D98F7
-A9E8CF96BA2F95B7E74D51B481427A494534C4C659E6399011F04385334C9437
-F1C3125CEDFAE80FA632C1189EF6E3169F7C2CA36DCDFF19442582E1BCF022CA
-3C849114B158DA6CE131B7313E21CC53F9330B5D0BF2394745189B45B6752E2D
-90BF8459E377F14F45365AC45B2DA938ADBDAD1CB9544312D0A8921CBAF8EDBA
-B29D8C8F36F6660D65C6DEF924EE0566136E1D5224DDEEF67712E09F04E220D6
-CE4C78314A83C744B0A7503E1BA509B48BB1824C96A353AE74204E2EB4EA295D
-416F60A53B073A9CE0554A7FE5F4E0D92AFE73D697C6FC0F23ADB1A50520F2ED
-FE6364CD68F408FB06E4CCCABDD31040CB78CC3009D367CB11EB6CE37CE7F1D4
-79BD7344F9328379BFE0E66E5308ECADC4C68A6CDAB839B7A0DE0974DB40D0F0
-D70AA00785C8FA10CBCDFC54CC041402C659625BD7E8B139EE5652A1D165ADBC
-0C2E7168E66C7859BD059645F9568DF80EF69DF281FBF83966FD2A26A11F65EB
-DA0357DAAFD6F059E604A20DB1372B1F8BE94D7D8864853515FDCDB4AC3F6C87
-8ADC11925D4FA60BCD8CEDA711DD032046E0A67EB5D67D8D504CB6F2AAED9A4F
-2C43EDA258E08DD34819E0DC5D9122365C8D3699A08AA2C30261B5A7086E2C46
-A11678684EE68DD9540C5863F57D17074B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMBX10 1.00B
-% 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 (CMBX10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX10 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 77 /M put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 105 /i put
-dup 110 /n put
-dup 111 /o put
-dup 114 /r put
-dup 116 /t put
-dup 117 /u put
-readonly def
-/FontBBox{-301 -250 1164 946}readonly def
-/UniqueID 5000768 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
-7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
-77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
-2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
-FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
-DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
-7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
-9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
-CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
-6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
-E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
-8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
-3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
-EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
-0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
-4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
-1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
-757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
-0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
-6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
-E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636
-6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B
-DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663
-12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C
-46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08
-F6DD0BC6A79A2DB1FF539454E8F5D1A42D40CCFBC093AFD3E57973A009095CEA
-B91FAFD236C47F453B38DB0067907A28EB5E9ADE87A2181F1D6DE4E183631716
-C21F0F952E0666AC74371F8B5C888DC44FBA5607435A619684F502CF625663C7
-94B0DAA79BE8E129E7F5C5AD1B7495C1BC9B1C759FD67200DFF251DB7C95C09E
-89EA1F66EADC3439C72468503347EA1A45344A43E0DC78100DFE972638580C16
-F60E1CE273350076DA9B152901A965A8131B3E4859826310476781777382D05A
-089F2CEE01CF9E6CAB50A0E70CD5AD69A8E0A853C02606DCF3DCC9B45855AD42
-F3498EACF1BEF09BB4C2F62A61BB5B2FEB3A9CA1A4FD2C9CF6C898EE6510A2EC
-593B475F95543E0F853369B8AD8F8C198DD8BDF6E9B74745A5969D23D12C7EB4
-3CB5A4F069017F6F1309B1DA0F7074B7C0EF3570BCAA8F5BC021A509F222730C
-C663CD98B7460A7C92094F00C582E77F6E21A71D0C319A4669BC08318A12C2C0
-9A0F32C2954C689BB04A12A787BEAA03BB5B7C733B68ADDFB9D29590883C5DDF
-E84FA45316BC651D8791FBE9A538A15DE3F85B814C6A3D61AB9D446CF0D54C7E
-7AEC55224601E8C86FB1E7C1BC47AE55F1F237F036AC8E222089AAEED6F1825D
-AE24F8B63DB23A8D041AF820430E7DBD90AE6110C698B4EAC04469F3A19A8D39
-C0292A07C213AD813E59A651D5FBE1DA428E5FD6FD34403351FA666A3ED9C1AE
-CFBC3AD200383477D05545B04A54F9ADEB6A24588446552C30CAB001D5F9DA84
-FA530ADCD308429D1C54EEB0440C8089D9798640DF5335E1509C2F08032ECEE7
-5F1BDBE806E51B2943726E36EA3E0AE6D94408A45E5F6B12921B80696C58E82A
-6C833368D785959CEA4DD1C7FC20A138A01A3E6819B3142D1AD6B70413F8C7BA
-E252023E10A1BDAAF346C58B4793C95B9B3A5C4B690185D98D674642BEE73AF5
-F3AB39BF629B75B2364644179FF896C41FA4A58172E13CCE1066D62C283C7E29
-5FC2B2FE1B47DB39CCBB856AA8C32FF229317D163D1762A9310DC328787B618A
-F5129C3D4D75C6E9E04A4F7C45D9D0CEEEE0E084A8486B7A762E6F7318221795
-E54E9C817542114994D3061EFEB1563688B6E5F4E13FA39ED6608329028928E5
-A05785210D68CE37932210191B2CF1A8E86125E1D6F74FDAFC23DC075627E8DF
-08BBB5848DCF95714F5E3D342D714BC5D6571FB79AD261D88FC34E5171038C35
-228B700206E9ED2BFBD07D12F27B24B4278EEF4734FDE8E8807EC408C41548F0
-C54BE88003D9DFD2E14CF405E7BF94A21EC32967039EDBECB51D2673688707A2
-11BA4FA6DF12D3EA96010A9E82195223E10C613E5991875542D2A9522B4E72A8
-82ACA4ACE4D5867E1DACC4C9E6B32DFB5005523D422B6C37EA0893A51FF35B5E
-B07DC8D18EF0D564258EDCE00B038BA77C8D88C882E504A6B520A77A6E5764DC
-C9E07F02AFC1094BCDAD0ECAEA5C204BE7635F443FDFCA10230D639DDE47AE7A
-00798EB6EE05777DCF07135649820B434D67961D345BE698CB72106AB232C57D
-DBF37A80860CB93552546DC81540F09C7D3C1EA94EBABCE4F0DFDBE362941BBB
-EF7807BCB099BDD37A8C57DCF9CABA441B765DD1ACBE369D3AF97934D212DBFB
-9986EE6FBAB399028C1246C053FB216483F4F969F720774E6A704E86252D0288
-56CB882315C599D2FD23F3811DE53927056C452FCD5F8AD8BCB4E683AA5C2442
-33FD09862AA7AF3A755E4A06E219A24E4FE3EC39CC0727CED5DA6DD6FAA6814C
-0DAD0F66B8DF604DDA8CB9FC1FA343DBCCAC302D73112FC0B2AB7322F1E609EE
-673510659039475B03513A0851C55B39C1B54795AD6917E1BC4176DD0118A18B
-3E5E40EDAB971311830CEE1EAE515F68E382787C799777B64880CC3870487CFD
-76F8EFA746153647D4AE240E3F0814C7B5224A8BA606EF2FFDC0BAB88AF2C09A
-EE08980E3BD63D21D5E5E8F566AFAC1E23BA8D0C62579D8F697B0183E84A0479
-E8F44586655A84CDAFCEB3176DE376657A645E911ADD414379C4273429270AE5
-909C07B0896DEC9F403B3E8EBEA9EB22A6D937D387ADD9BCD2BC997F90E1772A
-842E98EAAB010E2BF9FFD57F6AD655D337132C6FC9C596B53B6290C12C531EEA
-C83A6B41B062A5E0EF4595BA5B68F5399B21ED762A2F683A969C2574332C9A30
-2EDE8F493E17F388458C01EC0F4816021DE3553B262639337ADEBA674D74F97E
-8985278E42563E8FCC02620403595E1E1C5F22C939294462E22587F1364C93C2
-88C9AD9C838C2CC5B214BDC610102B4B553483AD160F285E54FFDACF8A9AA8B2
-8FC934D6F937685C04BBA9E7215AFDFA518602FC9BFB49BF780446D01B23D1A9
-EE6DB071167660E103627DC6729846CA741DADC803A35064C0340578B9008DFA
-6ACA76C2067652B352D6EC1FFEE0A0083AE97FE48EA7515109A3919222FC025F
-D37010AE5A27F7A5E75C2E056ABE2B651C7BA8F5EC3AD4CF841029C9D1F390E8
-7C3B9086798243384D4BB234CE380F096A52989E7DD1418412C20D39E3EFB8DF
-3700482F3260E59D01D775B063615CC77D15C7D6A817C2D2A2CF398BB02F7580
-B1792E2313D1E68371204AAAC9B13177D5F5FBCADB21636903AB441B3F60CF22
-F6CA5BA527E02E362C878E261C5C0D9C52215A0839C03F7D60B113450D45C0DD
-6E63F710D21B373EF9ADF6AFADE857F7016C08FE884C30631E853A7B88E5D2F4
-2AE2BF41D101810A2BEE77B06E4EA8B6FDE9740485967320E2D504EFFF8068BB
-5A74F55C18385A3A2A80A1D0D2F72616262B5D1CA600A509B1D07674BB2745F8
-4E0A1F782A2CC37D7E92E7AD03B03970B7D87A5AC6003E251F685C7AE96CC532
-155376F20CD2770489B8EFCFB60EFBDBA064E991E188D8056482D7FA545B84ED
-E9B457089EB04DC6BCA5F7B770744D41925A459BC9E1D815F009DEBEF0573C9B
-DAA0AE5678AB27647CCA49E7723F08BF8E9B31ABD0FD4911B4614C8C5ECA0BA4
-D6FEBDBE92F7B013E7D60DD03BC02F543D9DB98D9645D429EB9BAD689038205E
-7FD69A6C9C105F0B9622C8DBEFA5865E1C59209D95CDC65D2AA69C5A3C8B39F5
-88EEF83B652B8D8CE7745D
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMBX12 1.0
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 51 /three put
-dup 56 /eight put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
-E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
-32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
-27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
-2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
-CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
-2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A7278BFD6FBAC798
-26892D97DA40495AB66E4117A4D7D41FC56DDEA6361E8481B531329C76C5BD98
-DE8BEC8F502722395B3E379EC4CE14F450DBC073678B656A38DC10C9A3E3D953
-5DC9DA2FCA556B50F7C014466B9043460BEE198F6BCF6F8C58E0B9D26C44889F
-39AC3826EE590DE761C53D93951559FBA1ADB21213EB75C8CBD579446986F52F
-239754935CAA46CBB211C23C451FC617F82DC195518912B4929FFEE242D11E56
-83880FDA54D4751817870482F85867864476FB3B555E68C758FE3D06BEEDCF0C
-1D83964DB47CC0C965535C29CFF6F840894FF754F4C1AA077A67180503E107F9
-EE2640E28870170110B180F0C0B19A4AA23FEF9B805397C5AB1680C94A04613F
-FE2D5D4ABE9EDF69E0DD3824787C989AB4B2E585D5713981695DA1DFF8D2A9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.1: CMTI8 1.0
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 56 /eight put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4803AA3E45F388F65179AA988898B7B7A8252625EA5D7BBE65642F35DE
-6926648975C26BB71EC4AAA2C6B061F34705BB1D6366B0410E461F4A4573E422
-A6DBBED212134EA12D0A744EFD8B5A8043C4C98E70FB61AB44AD65396F903CE6
-C75567EA638DCB1AE5C7FDC2535439C4A948A94DC17DB26CAF391EE972891DA5
-AFBEEF4A5893EABB4976611AE3579228B0B980F3A9608C8B9912B166886EF6A9
-467B1DB9349470B8C001FE43AC234638ABA572238D147B23955C053CBFDEA682
-3C8492AC68F7DA2A03201B749878C0A4F08C1CF33E27EDB13F1145CCE6406642
-E72E7D84E0E5BBC7CC381FC635621540FA735619E502DFEC0146AD485114AB3F
-40944FEFE1562249944C410AC526A17ACB00319ECC675E6570FEEEC37CE863DE
-DDB1280C7A23A512C6D12294203C728393E6DBEB55B976C3D5E1B9AFDF240658
-9F3F6B1DF2301CD5975A054A844C0F9A0672B0ED
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 14 /guilsinglleft put
-dup 15 /guilsinglright put
-dup 40 /parenleft put
-dup 45 /hyphen put
-dup 50 /two put
-dup 52 /four put
-dup 54 /six put
-dup 55 /seven put
-dup 63 /question put
-dup 71 /G put
-dup 73 /I put
-dup 80 /P put
-dup 138 /Lslash put
-dup 200 /Egrave put
-dup 212 /Ocircumflex put
-dup 218 /Uacute put
-dup 236 /igrave put
-dup 242 /ograve put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF859449F6003874D095258B6F64ADC77D4830EB4B8B608DB3CB840D82
-75E4C819DAFEBB1BCE8B1518EEA99F8A79809C3BC0C39A9F36ED4968675C4278
-B5448E87397B9994127B6C41A6450F86A24ED491563370B43776BF34BBC2FCDD
-C44967CFB28B04E7A4A6968FC888607BA04952BA6FF345A44EABA4CA626F5CBD
-A262ED5029009388AE8E603F205ABBAFFAE47C993E1D68AA8B7CBB309344E916
-2A946DFAAD152341313EF518AA3EA88951ACE580A548E2F3A01E05B4ACE65C83
-493C311E7F81F24B92BB5320B45DEB821F415D063480BBF087F84C347E647720
-B4939EF84A72B16979079CD49519B7B4EC98CAAFB7993BA74CC8EC1BA6B5584E
-FBFD523FCC217456E3DBE6AA16F8C3B669587F831B999011E3056756762F40E6
-CFA056177C6A158CF50ED68F931E5CC4F57434CAE794604DA11E7E852E66A12F
-35E45673FB129FD6A412ED3E16898FA086647CD7C6259056C334D2A678278F87
-89D5AAE0B82B6296DAC6DEDAC0984E38C277ED6C5FC18277D5585F8BF9775A6B
-30348198C6D4C02CAE55AE0F175E961812F6258ECF77201A1F2CBB96978492B2
-23CD144DF123748595781EA30118566A9B9D40EDEADC25D02259477B443D0A3C
-828B4FF0E501A3C36BF2A36D21BCC6F4A7E01D82B247E0B65D328AB38344E24B
-0A7E34D977D253DF0D8255BE9F623D2877B48CAB0A953F4CD121D873DB550EF6
-2A248AB8F2BA32A214DC9DEBD43657A422F95FA5C7446EAEF3A802405E25E9A1
-943DA4C03EAE875E18898AAF666B2D50F8681C5B9550471557D8574128C5B41A
-75295D3611367B55F9F3FAC974C15D5410DA571CE7D5CBD23BE631D79A6F0536
-520737ABE8E0C0927A05F120B9638E9D49486C400392023F8DCB3FFC5CE8537F
-0DF4BCF606ECD3E192C738489F47A688F8BEF70D340DB4E3321785284721E68D
-0DA041315EBB203588CCEA598A133D68094B2BFB6BBCB0092C8190BB4484879A
-6FDD3B33787489FDB3D35726D06A6FCDE53FFA230CF4BA8746D77B34F2317361
-7ACFA1965676795E0EDF96C08AA4ADF04E970E97FF5977D993E86C58CD3F0DCB
-FA3EE7721E412560C7E4E387745C04598201622C37FFB94B258F7E59A19263BF
-F7AC73F228529B726606721F81FD42FE2CDBEF5A95D5E5C89D7ED164E0F1FF89
-F106EAD5E887933544019CC2AB7C9FAB69F10683E6F1A097B222F54F8C40189C
-1CC44CA441315F2CCBC64D6B04463EA8E2B5340FF1812810A0D0CFD8261BBFE8
-DF888F85B98AC9E03F1467EF029621C8D0AA1053DCB21BCDDE2925334450502E
-CEB7215906448E42AFEE6BF90EE48007E7DA43E29228C49C5BA65E7B02158E5A
-09FA31CC8B83E3B67CDB4C8D7CD20F99F37505EB2C9C713B170AD878CBD5031A
-70E3F16156AEB28DD287B9FDBC9AC1D59B1EF011AD3E37B39BEE6018F62BC8E4
-360F8AD4C8A39CAE9DCECC1E0D30CCA1C6F2D3B0911A1C5FCFF29067D3B2280C
-7938068433DFD0A778386D5FC9C721443FDBF4623CEF445C2AD7D5DE8AB7F2C1
-075C981D38EBACEF39722A0DD428D97508D307CEFF5E49E31C20B5304179B479
-DCEDF0AB45D17707A85E60480C5BF7F34EABB3326953B3FCA0B109EBF491FE64
-9B8D6CB46AAE368C95735248E060862C8CFE4C9F6ECC03CD973D6C4CDB8D56D0
-7E1BC6C373F0315C3A84CC4E6CBB6EEFD857FD617BD4248292295D56165E9ED2
-B44DB75280A56005DBBACAB16EB4AAAB5E253E1AB3E02D1838B222A7E3AD3A03
-15C1EDED943B5B9CBD3F0BC9ABC8D455FFF629E9B7790C2C85F60A05C465B44C
-98524B7AAAB71261F3BED34439712D73C21A29FA983449BFAB5C819383CF812B
-05D539392F31BAE5A74169130B5044FC489E5C44009B2EFBC9818C97D222DD9C
-99B737EE86467229B17B89F00F134AB9D0EA379446D4CF4E0BE32F6BA1FC74C6
-EDAB284D26E4A89482925A84CC31C1F2E07203E2CDA8DC2FBF5123B02FA4AC7E
-3B0B7B7289C49FF5D85DFEC5279D52462DEC6656025F2AF2E093A47F2FE8BAF0
-C3C67D026D152FCCE6C4C5A85A2D5BB1109BF3A425EFC9645EBB92370C8D4472
-366E6E228293D67B9DBF0156E1427371177EE8F8AFC66782A3BC38C3695F2BF8
-B4E77E9FCF8554E0C08F30D042F7080D247A70BB158D2CCC266239B7573A1113
-3B1857238A5FF562F81E1A726DBBF37A1ACF7834BC8B0E9B848A6DBD46CF8CCD
-6D615A4E8C1DD41EB735D593E584EBE94086F2BDAE13461684ECFE3A0A9389D2
-DF2E854E01EEA577A3347D53A502E5CB65523EB5901221B1DC306646AFFD1D44
-6E3A5ACAE01AA6269CD816C3C86F92E81505D7583DD456789458E4197091C14C
-4D9366DB8AE3AE23E542C5614C2D4FEC1DA4D9351D3F32B7BCD56C91069FED52
-29B06C58C596016F9615E0C21D67D2DD5827EA944980A919E132E8326E087E1A
-2E2005860F2368AE1A349203BFE5E0E9D196DA887E4298719DC9BD906EE34932
-71D19794E3188B3C4E4EA80548EA6BA72D043816E90879483B2091A7E83F94DD
-95EAF169610B7DBBAA5CC0F955DC2650DF1CF67E2C3E6DC3350047FB20E3888F
-952BAB98B4D8C5E906F2FBDD2185BB4190F189CD16FAC466E17E8CB60D4EE1C3
-3F2AACF0E2088E6BB76E1BCCCE230A1E053B3E20767ACF42A43A6EDCEEB7EE9E
-7DA1C27F612EB6632E06572C1FAF51E6EC7775EB10693D649E1E51B3073EA077
-6F258657EBB26105DF3B555C0D712E617802976F0F0441D7C27C3CC8F8B67311
-D157607A272061CEC1B352C2482AF32C4CC553789CD067AC6FD4BCA77FFB4EA1
-3A8E82B7A70095F9D59AF4A677AA4C9C186671A5385DC764E0E67E4C81A63280
-21DA62FF511B9523AAFD44AFB764B5B7E12D57B516DCC7FA0D8C574520AA7F21
-EB99D63F8E7AAF0EA12FDD4CDE59A1B58C50523A3038610E14497E7BB099FDD4
-EB1BE305FA39489253B7BFF5DF377BD09A6EA515221827D743E89BB609836C69
-6EACEB8AC7B3991096D53B9482D80F6F768ABED29C4984DF2AB847B1B1D07C93
-0723AF5FD61BE5BF68B1F7184AF7DFD542D146A164E01F163796FF4B9D675647
-2131F763A0A79AFA4C8F1BA513813ABFBD8E8BE466E7B8859BFBCB223E717287
-B7A80F59142D4D10735A44F6756D5CA61A7EA5600BC0154F46089671BA350313
-BE670912E2DFDE6C21C2BDCF57D70C67E3A0827D09E6D96A7B0CB0CA95F125F1
-5615A35253D968BE41DB8F3E10D4C814CF8A46B616E079A87FC8A138EF6F9720
-1537FD0C603230A0C284764A0FFC2DC41F6DB37CA3D3B52CCEBE5C5CCE3FD424
-77B3927B08A4AC3FE0565A085B6B34B9F23943071525A0AE8F042C783CD4B624
-0A85FE1A363990A731CF
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX20-Regular) readonly def
-/FamilyName (TeXMUSIX20) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX20-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 14 /guilsinglleft put
-dup 15 /guilsinglright put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-619 -1659 3200 1660}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
-27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
-BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
-26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
-E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
-73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
-C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
-25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
-B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
-AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
-E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
-1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
-96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
-C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
-920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
-EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
-0DAFBB97A2075592DB74A1A04E90939C9E9C4A8F438BEFC93D5AC7CB71AF1026
-AF32540C0FC74F3E14C9239E2F222D5A9C4E8F92C7B91830080EAE6FC0A9450D
-8EBC5FA8F7416B2E490B12C00F9C9EC927282D9F0729E4CD3D8880E3E04E1FAE
-3B9227357235D96D627E3ACA3446F802571351CC6B1E21E2AC3DBD4F5A7BDBDA
-C371E05E4AE97BBAE69A4A1CBF84790B20E882C3A13092D14B1AFD217F6C6714
-C9F383DCC8BBF7224653928010D9C297C61993388CE6F247F438F597F62178D8
-7854EC9FA698B4855DCBF3BDE7660099E5411F1C45DC780E1147750E6811B0B8
-94A902F1E0E35278812A5D58EED4242B54BCF63A8347443849FFF1388EEADAA3
-07232C6978897511DE1DABC18874AD2E075004B780CCC943753D16BA91A8403C
-09059249DAC2F51AAA8B7234C8
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-TeXDict begin 39158280 55380996 1000 2540 2540 (jud24c.dvi)
-@start /Fa 135[163 1[162 189 117 144 148 1[180 180 198
-287 90 2[108 180 162 108 162 180 162 1[180 10[261 2[198
-256 269 238 2[315 2[185 136 261 1[229 1[265 251 247 261
-18[108 1[108 44[{}35 351.46 /CMTI10 rf /Fb 161[351 42[176
-1[176 49[{}3 351.46 /CMMI10 rf /Fc 141[176 2[208 2[104
-4[187 1[187 35[304 65[{}6 351.46 /CMBXTI10 rf /Fd 135[172
-1[172 181 126 128 127 1[181 163 181 271 90 2[90 181 163
-99 145 181 144 1[163 10[244 2[181 239 253 221 2[298 2[167
-117 244 1[212 1[248 235 230 244 18[90 108 90 30[181 13[{}37
-316.314 /CMR9 rf /Fe 132[206 4[218 1[161 4[206 229 1[115
-2[115 4[229 2[206 10[310 12[149 7[310 8[206 206 206 1[206
-1[206 206 4[115 2[161 161 40[{}21 421.752 /CMR12 rf /Ff
-138[221 137 169 174 1[211 1[232 337 3[127 211 3[211 2[211
-12[295 9[217 74[{}13 421.752 /CMTI12 rf /Fg 138[466 326
-1[345 2[419 466 4[233 3[384 466 373 21[796 77[{}10 728.927
-/CMBX10 rf /Fh 199[237 4[237 51[{}2 421.752 /CMBX12 rf
-/Fi 199[154 56[{}1 281.168 /CMTI8 rf /Fj 13[281 5[281
-17[281 5[281 11[281 61[1125 57[0 6[450 1[450 7[0 7[0
-169 1[169 1[169 4[0 4[0 24[0 0 6[0 6[0{}20 562.336 /TeXMUSIX16-Regular
-rf /Fk 240[0 0 14[{}2 702.92 /TeXMUSIX20-Regular rf end
-TeXDict begin
-a4
- end
-TeXDict begin 1 0 bop -1540 9413 18417 15 v -1540 9553
-V -1540 9694 V -1540 9834 V -1540 9975 V -1540 7163 V
--1540 7304 V -1540 7445 V -1540 7585 V -1540 7726 V -1540
-4914 V -1540 5055 V -1540 5195 V -1540 5336 V -1540 5476
-V -1540 2665 V -1540 2805 V -1540 2946 V -1540 3086 V
--1540 3227 V -1540 9975 15 7318 v -1681 2587 a Fk(\016)p
--1681 10038 71 7451 v 7451 x(\017)-1540 9546 y Fj(I)-1540
-7578 y(G)-1413 8070 y Fi(8)-1540 5329 y Fj(G)-1540 3079
-y(G)-1076 9827 y(2)-935 9617 y(2)-1076 7437 y(2)-935
-7227 y(2)-1076 5188 y(2)-935 4977 y(2)-1076 2939 y(2)-935
-2728 y(2)-699 9682 y Fh(3)-699 9963 y(8)-699 7433 y(3)-699
-7714 y(8)-699 5183 y(3)-699 5465 y(8)-699 2934 y(3)-699
-3215 y(8)5220 174 y Fg(Mundi)278 b(rector)5316 596 y
-Ff(Juditha)147 b(T)-32 b(riumphans)p Fe(,)137 b(I,)h(27)14009
-1287 y(An)-11 b(tonio)138 b(Viv)-23 b(aldi)14697 1709
-y(\(1678{1741\))-122 9968 y Fj(?)35 10480 y Fd(Mun)216
-10828 y(In)173 11176 y(Re)p 280 9933 15 457 v 281 9933
-a Fj(-)281 9476 y(\007)694 10480 y Fd(di)619 10828 y(Ju)556
-11176 y(di,)p 682 9933 V 683 9933 a Fj(-)683 9476 y(\007)-122
-7719 y(?)35 8301 y Fd(Mun)216 8649 y(In)173 8997 y(Re)p
-280 7894 V 281 7894 a Fj(-)281 7437 y(\007)694 8301 y
-Fd(di)619 8649 y(Ju)556 8997 y(di,)p 682 7824 V 683 7824
-a Fj(-)683 7367 y(\007)-122 5469 y(?)35 6052 y Fd(Mun)216
-6400 y(In)173 6748 y(Re)p 442 5329 V 443 5329 a Fj(\()-162
-b(\007)694 6052 y Fd(di)619 6400 y(Ju)556 6748 y(di,)p
-844 5329 V 845 5329 a Fj(\()g(\007)-739 2376 y Fc(A)-10
-b(l)21 b(le)-21 b(gr)g(o)-122 3220 y Fj(?)35 3803 y Fd(Mun)216
-4150 y(In)173 4498 y(Re)p 280 3255 V 281 3255 a Fj(-)281
-2798 y(\007)694 3803 y Fd(di)619 4150 y(Ju)556 4498 y(di,)p
-682 3185 V 683 3185 a Fj(-)683 2728 y(\007)p 1084 9975
-15 570 v 1084 7726 V 1084 5476 V 1084 3227 V 1119 10480
-a Fd(Rec)1053 10828 y(-)87 b(di)1248 11176 y(re)p 1299
-9933 15 457 v 1300 9933 a Fj(-)1300 9476 y(\007)1648
-10480 y Fd(tor)1526 10828 y(-)7 b(ta)1530 11176 y(-)12
-b(di)p 1701 9933 V 1702 9933 a Fj(-)1702 9476 y(\007)2169
-10480 y Fd(de)2035 10828 y(tuae)2026 11176 y(iam)p 2103
-9933 V 2104 9933 a Fj(-)2104 9476 y(\007)1119 8301 y
-Fd(Rec)1053 8649 y(-)87 b(di)1248 8997 y(re)p 1299 7824
-V 1300 7824 a Fj(-)1300 7367 y(\007)1648 8301 y Fd(tor)1526
-8649 y(-)7 b(ta)1530 8997 y(-)12 b(di)p 1701 7894 V 1702
-7894 a Fj(-)1702 7437 y(\007)2169 8301 y Fd(de)2035 8649
-y(tuae)2026 8997 y(iam)p 2103 7894 V 2104 7894 a Fj(-)2104
-7437 y(\007)1119 6052 y Fd(Rec)1053 6400 y(-)87 b(di)1248
-6748 y(re)p 1461 5329 V 1462 5329 a Fj(\()-162 b(\007)1648
-6052 y Fd(tor)1527 6400 y(-)6 b(ta)1530 6748 y(-)12 b(di)p
-1863 5329 V 1864 5329 a Fj(\()-162 b(\007)2169 6052 y
-Fd(de)2035 6400 y(tuae)2026 6748 y(iam)p 2265 5329 V
-2266 5329 a Fj(\()g(\007)1119 3803 y Fd(Rec)1053 4150
-y(-)87 b(di)1248 4498 y(re)p 1299 3185 V 1300 3185 a
-Fj(-)1300 2728 y(\007)1648 3803 y Fd(tor)1526 4150 y(-)7
-b(ta)1530 4498 y(-)12 b(di)p 1701 3255 V 1702 3255 a
-Fj(-)1702 2798 y(\007)2169 3803 y Fd(de)2035 4150 y(tuae)2026
-4498 y(iam)p 2103 3255 V 2104 3255 a Fj(-)2104 2798 y(\007)p
-2505 9975 15 570 v 2505 7726 V 2505 5476 V 2505 3227
-V 2600 10480 a Fd(Cae)2755 10828 y(le)2655 11176 y(Vic)p
-2720 9863 15 457 v 2721 9863 a Fj(-)2721 9406 y(\007)2600
-8301 y Fd(Cae)2755 8649 y(le)2655 8997 y(Vic)p 2882 7508
-V 2883 7508 a Fj(\()-162 b(\007)2551 5399 y(4)2600 6052
-y Fd(Cae)2755 6400 y(le)2655 6748 y(Vic)p 2882 5399 V
-2883 5399 a Fj(\()g(\007)2720 3803 y Fd(Cae)2755 4150
-y(le)2720 4498 y(Vic)p 2720 3431 15 563 v 2721 2868 a
-Fj(\007)2721 3325 y(\310)2737 3327 y(\310)2721 3431 y(\310)2737
-3433 y(\310)p 3003 3459 15 521 v 3004 2939 a(\007)3142
-10480 y Fd(lo)3063 10828 y(-)74 b(gi)3134 11176 y(trix)p
-3287 10144 15 457 v 3288 10144 a Fj(-)3288 9687 y(\007)3592
-10480 y Fd(mi)3638 10828 y(di)3755 11176 y(pu)p 3689
-10144 V 3690 10144 a Fj(-)3690 9687 y(\007)3142 8301
-y Fd(lo)3063 8649 y(-)g(gi)3134 8997 y(trix)p 3448 7508
-V 3449 7508 a Fj(\()-162 b(\007)3592 8301 y Fd(mi)3638
-8649 y(di)3755 8997 y(pu)p 3689 7824 V 3690 7824 a Fj(-)3690
-7367 y(\007)3142 6052 y Fd(lo)3063 6400 y(-)74 b(gi)3134
-6748 y(trix)p 3448 5399 V 3449 5399 a Fj(\()-162 b(\007)3592
-6052 y Fd(mi)3638 6400 y(di)3755 6748 y(pu)p 3850 5399
-V 3851 5399 a Fj(\()g(\007)3262 3803 y Fd(lo)3063 4150
-y(-)74 b(gi)3199 4498 y(trix)p 3287 3325 V 3288 3325
-a Fj(-)3288 2868 y(\007)3620 3803 y Fd(mi)3638 4150 y(di)3819
-4498 y(pu)p 3850 3009 V 3851 3009 a Fj(\()-162 b(\007)p
-4091 9975 15 570 v 4091 7726 V 4091 5476 V 4091 3227
-V 3996 10480 a Fd(-)42 b(can)4018 10828 y(-)111 b(ca)4116
-11176 y(gnan)p 4306 9933 15 457 v 4307 9933 a Fj(-)4307
-9476 y(\007)3996 8301 y Fd(-)42 b(can)4018 8649 y(-)111
-b(ca)4116 8997 y(gnan)p 4306 7894 V 4307 7894 a Fj(-)4307
-7437 y(\007)3996 6052 y Fd(-)42 b(can)4018 6400 y(-)111
-b(ca)4116 6748 y(gnan)p 4467 5540 V 4468 5540 a Fj(\()-162
-b(\007)4010 3803 y Fd(-)28 b(can)4018 4150 y(-)111 b(ca)4181
-4498 y(gnan)p 4306 3396 V 4307 3396 a Fj(-)4307 2939
-y(\007)4634 10480 y Fd(ti)4544 10828 y(ta)4803 11176
-y(do)p 4708 9967 15 492 v 4709 9476 a Fj(\007)4634 8301
-y Fd(ti)4544 8649 y(ta)4803 8997 y(do)p 4708 7929 V 4709
-7437 a Fj(\007)4634 6052 y Fd(ti)4544 6400 y(ta)4803
-6748 y(do)p 4869 5540 V 4708 5540 a Fj(\007)4634 3803
-y Fd(ti)4544 4150 y(ta)4867 4498 y(do)p 4869 3079 V 4708
-3079 a Fj(\007)p 5276 9975 15 570 v 5276 7726 V 5276
-5476 V 5276 3227 V 5491 9968 a(?)5766 10480 y Fd(Au)5610
-10828 y(Flam)5829 11176 y(In)p 5893 10144 15 457 v 5894
-10144 a Fj(-)5894 9687 y(\007)6190 10480 y Fd(di)6346
-10828 y(mas)6262 11176 y(ci)p 6295 10144 V 6296 10144
-a Fj(-)6296 9687 y(\007)5491 7719 y(?)5766 8301 y Fd(Au)5610
-8649 y(Flam)5829 8997 y(In)p 5893 7754 V 5894 7754 a
-Fj(-)5894 7297 y(\007)6190 8301 y Fd(di)6346 8649 y(mas)6262
-8997 y(ci)p 6295 7754 V 6296 7754 a Fj(-)6296 7297 y(\007)5491
-5469 y(?)5766 6052 y Fd(Au)5610 6400 y(Flam)5829 6748
-y(In)p 6055 5399 V 6056 5399 a Fj(\()-162 b(\007)6190
-6052 y Fd(di)6346 6400 y(mas)6262 6748 y(ci)p 6457 5399
-V 6458 5399 a Fj(\()g(\007)5491 3220 y(?)5766 3803 y
-Fd(Au)5610 4150 y(Flam)5829 4498 y(In)p 5893 3396 V 5894
-3396 a Fj(-)5894 2939 y(\007)6190 3803 y Fd(di)6346 4150
-y(mas)6262 4498 y(ci)p 6295 3396 V 6296 3396 a Fj(-)6296
-2939 y(\007)p 6697 9975 15 570 v 6697 7726 V 6697 5476
-V 6697 3227 V 6770 10480 a Fd(pre)7013 10828 y(dul)6648
-11176 y(-)150 b(li)p 6912 10073 15 457 v 6913 10073 a
-Fj(-)6913 9617 y(\007)6770 8301 y Fd(pre)7013 8649 y(dul)6648
-8997 y(-)g(li)p 6912 7894 V 6913 7894 a Fj(-)6913 7437
-y(\007)6912 6052 y Fd(pre)7013 6400 y(dul)6651 6748 y(-)j(li)p
-7074 5329 15 563 v 6913 5329 a Fj(\007)7075 4872 y(\310)7084
-4873 y(\310)7075 4766 y(\310)7084 4767 y(\310)p 7357
-5399 15 605 v 7196 5399 a(\007)6912 3803 y Fd(pre)7013
-4150 y(dul)6651 4498 y(-)g(li)p 7074 2939 15 563 v 6913
-2939 a Fj(\007)7075 2482 y(\310)7084 2483 y(\310)7075
-2376 y(\310)7084 2377 y(\310)p 7357 3009 15 605 v 7196
-3009 a(\007)7223 10480 y Fd(ces,)7464 10828 y(cis,)7149
-11176 y(-)63 b(cio,)p 7479 10108 15 492 v 7480 9617 a
-Fj(\007)7223 8301 y Fd(ces,)7464 8649 y(cis,)7149 8997
-y(-)g(cio,)p 7479 7929 V 7480 7437 a Fj(\007)7365 6052
-y Fd(ces,)7464 6400 y(cis,)7152 6748 y(-)d(cio,)p 7641
-5329 V 7480 5329 a Fj(\007)7365 3803 y Fd(ces,)7464 4150
-y(cis,)7152 4498 y(-)g(cio,)p 7479 3430 V 7480 2939 a
-Fj(\007)p 8048 9975 15 570 v 8048 7726 V 8048 5476 V
-8048 3227 V 8263 9968 a(?)8496 9617 y(6)8578 10480 y
-Fd(au)8442 10828 y(\015am)8614 11176 y(in)p 8665 10073
-15 457 v 8666 10073 a Fj(-)8666 9617 y(\007)8921 10480
-y Fd(di)9056 10828 y(mas)9034 11176 y(ci)p 9067 10073
-V 9068 10073 a Fj(-)9068 9617 y(\007)8263 7719 y(?)8578
-8301 y Fd(au)8442 8649 y(\015am)8614 8997 y(in)p 8826
-7578 V 8827 7578 a Fj(\()-162 b(\007)8921 8301 y Fd(di)9056
-8649 y(mas)9034 8997 y(ci)p 9228 7578 V 9229 7578 a Fj(\()g(\007)8263
-5469 y(?)8578 6052 y Fd(au)8442 6400 y(\015am)8614 6748
-y(in)p 8826 5329 V 8827 5329 a Fj(\()g(\007)8921 6052
-y Fd(di)9056 6400 y(mas)9034 6748 y(ci)p 9228 5329 V
-9229 5329 a Fj(\()g(\007)8263 3220 y(?)8578 3803 y Fd(au)8442
-4150 y(\015am)8614 4498 y(in)p 8665 3325 V 8666 3325
-a Fj(-)8666 2868 y(\007)8921 3803 y Fd(di)9056 4150 y(mas)9034
-4498 y(ci)p 9067 3325 V 9068 3325 a Fj(-)9068 2868 y(\007)p
-9469 9975 15 570 v 9469 7726 V 9469 5476 V 9469 3227
-V 9542 10480 a Fd(pre)9723 10828 y(dul)9419 11176 y(-)151
-b(li)p 9684 10003 15 457 v 9685 10003 a Fj(-)9685 9546
-y(\007)9542 8301 y Fd(pre)9723 8649 y(dul)9419 8997 y(-)g(li)p
-9684 7824 V 9685 7824 a Fj(-)9685 7367 y(\007)9684 6052
-y Fd(pre)9723 6400 y(dul)9422 6748 y(-)j(li)p 9845 5258
-15 563 v 9684 5258 a Fj(\007)9846 4802 y(\310)-272 b(\310)9846
-4696 y(\310)9855 4697 y(\310)p 10129 5329 15 605 v 9968
-5329 a(\007)9684 3803 y Fd(pre)9723 4150 y(dul)9422 4498
-y(-)154 b(li)p 9684 3431 15 563 v 9685 2868 a Fj(\007)9685
-3325 y(\310)9701 3327 y(\310)9685 3431 y(\310)9701 3433
-y(\310)p 9967 3459 15 521 v 9968 2939 a(\007)9994 10480
-y Fd(ces,)10175 10828 y(cis,)9943 11176 y(-)85 b(cio)p
-10251 10003 15 457 v 10252 10003 a Fj(-)10252 9546 y(\007)10607
-10480 y Fd(et)10734 10828 y(tui)11009 10989 y Fb(^)11239
-10828 y Fd(a)10639 11176 y(in)p 10652 10003 V 10653 10003
-a Fj(-)10653 9546 y(\007)9994 8301 y Fd(ces,)10175 8649
-y(cis,)9943 8997 y(-)g(cio)p 10251 7824 V 10252 7824
-a Fj(-)10252 7367 y(\007)10607 8301 y Fd(et)10734 8649
-y(tui)11009 8810 y Fb(^)11239 8649 y Fd(a)10639 8997
-y(in)p 10652 7683 V 10653 7683 a Fj(-)10653 7227 y(\007)10136
-6052 y Fd(ces,)10175 6400 y(cis,)9946 6748 y(-)d(cio)p
-10412 5258 V 10413 5258 a Fj(\()-162 b(\007)10749 6052
-y Fd(et)10734 6400 y(tui)11009 6561 y Fb(^)11239 6400
-y Fd(a)10639 6748 y(in)p 10652 5575 V 10653 5575 a Fj(-)10653
-5118 y(\007)10136 3803 y Fd(ces,)10175 4150 y(cis,)9946
-4498 y(-)82 b(cio)p 10251 3325 V 10252 3325 a Fj(-)10252
-2868 y(\007)10749 3803 y Fd(et)10734 4150 y(tui)11009
-4311 y Fb(^)11239 4150 y Fd(a)10639 4498 y(in)p 10652
-3185 V 10653 3185 a Fj(-)10653 2728 y(\007)p 11054 9975
-15 570 v 11054 7726 V 11054 5476 V 11054 3227 V 11199
-10480 a Fd(su)11402 10828 y(mo)11128 11176 y(pre)p 11269
-9792 15 457 v 11270 9792 a Fj(-)11270 9335 y(\007)11508
-10480 y Fd(sci)11835 10828 y(ris)11580 11176 y(ce)p 11671
-10073 V 11672 10073 a Fj(-)11672 9617 y(\007)11877 10480
-y Fd(-)6 b(p)j(e)12181 10828 y(ac)12049 11176 y(ri)p
-12073 10003 V 12074 10003 a Fj(-)12074 9546 y(\007)11199
-8301 y Fd(su)11402 8649 y(mo)11128 8997 y(pre)p 11269
-7613 V 11270 7613 a Fj(-)11270 7156 y(\007)11508 8301
-y Fd(sci)11835 8649 y(ris)11580 8997 y(ce)p 11671 7543
-V 11672 7543 a Fj(-)11672 7086 y(\007)11877 8301 y Fd(-)d(p)j(e)12181
-8649 y(ac)12049 8997 y(ri)p 12073 7613 V 12074 7613 a
-Fj(-)12074 7156 y(\007)11199 6052 y Fd(su)11402 6400
-y(mo)11128 6748 y(pre)p 11269 5645 V 11270 5645 a Fj(-)11270
-5188 y(\007)11508 6052 y Fd(sci)11835 6400 y(ris)11580
-6748 y(ce)p 11671 5575 V 11672 5575 a Fj(-)11672 5118
-y(\007)11877 6052 y Fd(-)d(p)j(e)12181 6400 y(ac)12049
-6748 y(ri)p 12235 5258 V 12236 5258 a Fj(\()-162 b(\007)11199
-3803 y Fd(su)11402 4150 y(mo)11128 4498 y(pre)p 11269
-3255 V 11270 3255 a Fj(-)11270 2798 y(\007)11508 3803
-y Fd(sci)11835 4150 y(ris)11580 4498 y(ce)p 11671 3185
-V 11672 3185 a Fj(-)11672 2728 y(\007)11877 3803 y Fd(-)6
-b(p)j(e)12181 4150 y(ac)12049 4498 y(ri)p 12073 3325
-V 12074 3325 a Fj(-)12074 2868 y(\007)p 12475 9975 15
-570 v 12475 7726 V 12475 5476 V 12475 3227 V 12789 9940
-a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (48.0pt) GDAR N /S0dir
--1 N /S0dash 0 N /S0adj 0 N end
- 12789 9940 a 12690 10480 a Fd(v)-9 b(o)12535 10828
-y(-)47 b(cen)12424 11176 y(-)158 b(vi)p 12852 9827 15
-492 v 12691 9827 a Fj(\007)12691 9757 y(\000)12789 7044
-y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (19.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (112.0pt) GDAR N /S1dir
-1 N /S1dash 0 N /S1adj 0 N end
- 12789 7044 a 12690 8301 a Fd(v)-9 b(o)12535 8649 y(-)47
-b(cen)12424 8997 y(-)158 b(vi)p 12690 7648 15 492 v 12691
-7156 a Fj(\007)12691 7086 y(\000)12690 6052 y Fd(v)-9
-b(o)12535 6400 y(-)47 b(cen)12424 6748 y(-)158 b(vi)p
-12690 5645 15 457 v 12691 5188 a Fj(\007)12691 5118 y(\000)p
-13540 5645 15 387 v 13541 5258 a(\007)p 13824 5645 15
-457 v 13825 5188 a(\007)p 13542 5573 581 68 v 12690 5679
-1431 68 v 14107 5645 15 528 v 14108 5118 a(\007)12690
-3803 y Fd(v)-9 b(o)12535 4150 y(-)47 b(cen)12424 4498
-y(-)158 b(vi)p 12690 3501 15 563 v 12691 2939 a Fj(\007)p
-12974 3473 15 464 v 12975 3009 a(\007)p 13257 3445 15
-506 v 13258 2939 a(\007)p 13540 3417 15 548 v 13541 2868
-a(\007)p 13824 3389 15 590 v 13825 2798 a(\007)12690
-3397 y(\212)12997 3366 y(\212)12690 3501 y(\212)12997
-3470 y(\212)p 14107 3361 15 632 v 14108 2728 a(\007)p
-14391 9975 15 570 v 14391 7726 V 14391 5476 V 14391 3227
-V 14690 9827 a
- slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 14690 9827 a 14690 9827 a
- end
- 14690 9827 a
-14767 9827 15 457 v 78 w Fj(\()-162 b(\007)14690 7156
-y
- slur@Dict begin (2.0pt) GD S1hgt (16.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 14690 7156 a 14690 7156 a
- end
- 14690 7156 a 14606 7648 15
-492 v -83 w Fj(\007)14607 7086 y(\000)p 14606 5610 15
-563 v -2038 x(\007)14607 5504 y(\332)14623 5508 y(\332)14607
-5610 y(\332)14623 5614 y(\332)p 14889 5681 15 493 v 14890
-5188 a(\007)p 14606 3290 15 633 v 14607 2658 a(\007)14607
-3185 y(\362)14623 3192 y(\362)14607 3290 y(\362)14623
-3297 y(\362)p 14889 3418 15 479 v 14890 2939 a(\007)p
-15172 10038 15 492 v 15173 9546 a(\007)15172 4696 y Fa(tr)p
-15334 5258 V 15173 5258 a Fj(\007)15172 2587 y Fa(tr)p
-15172 3360 V 15173 2868 a Fj(\007)p 15741 9975 15 570
-v 15741 7726 V 15741 5476 V 15741 3227 V 13681 10480
-a Fd(-)1333 b(-)666 b(ta)13785 10828 y(-)1251 b(-)626
-b(de)13632 11176 y(-)1359 b(-)680 b(v)-9 b(e)p 16118
-9827 15 492 v 15957 9827 a Fj(\007)15957 9757 y(\000)13681
-8301 y Fd(-)1333 b(-)666 b(ta)13785 8649 y(-)1251 b(-)626
-b(de)13632 8997 y(-)1359 b(-)680 b(v)-9 b(e)p 15956 7648
-V 15957 7156 a Fj(\007)15957 7086 y(\000)13681 6052 y
-Fd(-)1333 b(-)666 b(ta)13785 6400 y(-)1251 b(-)626 b(de)13632
-6748 y(-)1359 b(-)680 b(v)-9 b(e)p 15956 5679 V 15957
-5188 a Fj(\007)15957 5118 y(\000)13681 3803 y Fd(-)1333
-b(-)666 b(ta)13785 4150 y(-)1251 b(-)626 b(de)13632 4498
-y(-)1359 b(-)680 b(v)-9 b(e)p 15956 3430 V 15957 2939
-a Fj(\007)15957 2868 y(\000)16652 9687 y(7)16652 7437
-y(7)16652 5188 y(7)16652 2939 y(7)p 16736 9975 15 570
-v 16736 7726 V 16736 5476 V 16736 3227 V 16792 9975 85
-570 v 16792 7726 V 16792 5476 V 16792 3227 V 16876 11655
-a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 16876 11655 a -1540 18904 18417 15 v -1540 19045 V
--1540 19185 V -1540 19326 V -1540 19466 V -1540 16655
-V -1540 16795 V -1540 16936 V -1540 17076 V -1540 17217
-V -1540 14405 V -1540 14546 V -1540 14687 V -1540 14827
-V -1540 14968 V -1540 12156 V -1540 12297 V -1540 12437
-V -1540 12578 V -1540 12718 V -1540 19466 15 7318 v -1681
-12079 a Fj(\016)p -1681 19530 71 7451 v 7451 x(\017)-1716
-11841 y Fb(13)-1540 19038 y Fj(I)-1540 17069 y(G)-1413
-17561 y Fi(8)-1540 14820 y Fj(G)-1540 12571 y(G)-1076
-19319 y(2)-935 19108 y(2)-1076 16929 y(2)-935 16718 y(2)-1076
-14679 y(2)-935 14469 y(2)-1076 12430 y(2)-935 12219 y(2)p
--509 19466 85 570 v -509 17217 V -509 14968 V -509 12718
-V -383 19466 15 570 v -383 17217 V -383 14968 V -383
-12718 V -284 19178 a(7)-284 16929 y(7)-284 14679 y(7)-284
-12430 y(7)-41 19459 y(?)160 19972 y Fd(Quae)365 20320
-y(F)-27 b(e)333 20667 y(De)p 446 19424 15 457 v 447 19424
-a Fj(-)447 18967 y(\007)1006 19972 y Fd(de)747 20320
-y(-)53 b(ri)832 20667 y(Ho)p 932 19424 V 933 19424 a
-Fj(-)933 18967 y(\007)-41 17210 y(?)160 17793 y Fd(Quae)365
-18140 y(F)-27 b(e)333 18488 y(De)p 446 17245 V 447 17245
-a Fj(-)447 16788 y(\007)1006 17793 y Fd(de)747 18140
-y(-)53 b(ri)832 18488 y(Ho)p 932 17245 V 933 17245 a
-Fj(-)933 16788 y(\007)-41 14961 y(?)160 15543 y Fd(Quae)365
-15891 y(F)-27 b(e)333 16239 y(De)p 607 14820 V 608 14820
-a Fj(\()-162 b(\007)1006 15543 y Fd(de)747 15891 y(-)53
-b(ri)832 16239 y(Ho)p 1094 14820 V 1095 14820 a Fj(\()-162
-b(\007)-41 12711 y(?)277 12430 y(6)160 13294 y Fd(Quae)365
-13642 y(F)-27 b(e)333 13990 y(De)p 446 12887 V 447 12887
-a Fj(-)447 12430 y(\007)1006 13294 y Fd(de)747 13642
-y(-)53 b(ri)832 13990 y(Ho)p 932 12887 V 933 12887 a
-Fj(-)933 12430 y(\007)p 1419 19466 15 570 v 1419 17217
-V 1419 14968 V 1419 12718 V 1544 19972 a Fd(cor)1317
-20320 y(-)191 b(ta)1382 20667 y(-)144 b(lo)p 1838 19248
-15 457 v 1839 19248 a Fj(\()-162 b(\007)1544 17793 y
-Fd(cor)1317 18140 y(-)191 b(ta)1382 18488 y(-)144 b(lo)p
-1676 17175 V 1677 17175 a Fj(-)1677 16718 y(\007)1544
-15543 y Fd(cor)1317 15891 y(-)191 b(ta)1382 16239 y(-)144
-b(lo)p 1838 14820 V 1839 14820 a Fj(\()-162 b(\007)1676
-13294 y Fd(cor)1347 13642 y(-)221 b(ta)1403 13990 y(-)165
-b(lo)p 1676 12922 15 563 v 1677 12360 a Fj(\007)1868
-12430 y(6)1677 12817 y(\310)1770 12826 y(\310)1677 12922
-y(\310)1770 12931 y(\310)p 2036 12958 15 529 v 2037 12430
-a(\007)2085 19972 y Fd(-)108 b(de)2044 20320 y(-)139
-b(tis)2028 20667 y(-)j(fer)p 2541 19248 15 457 v 2542
-19248 a Fj(\()-162 b(\007)2732 19972 y Fd(pro)2769 20320
-y(sic)2664 20667 y(-)16 b(ne)p 3028 19248 V 3029 19248
-a Fj(\()-162 b(\007)2085 17793 y Fd(-)108 b(de)2044 18140
-y(-)139 b(tis)2028 18488 y(-)j(fer)p 2380 17175 V 2381
-17175 a Fj(-)2381 16718 y(\007)2732 17793 y Fd(pro)2769
-18140 y(sic)2664 18488 y(-)16 b(ne)p 2866 17175 V 2867
-17175 a Fj(-)2867 16718 y(\007)2085 15543 y Fd(-)108
-b(de)2044 15891 y(-)139 b(tis)2028 16239 y(-)j(fer)p
-2541 14820 V 2542 14820 a Fj(\()-162 b(\007)2732 15543
-y Fd(pro)2769 15891 y(sic)2664 16239 y(-)16 b(ne)p 3028
-14820 V 3029 14820 a Fj(\()-162 b(\007)2152 13294 y Fd(-)41
-b(de)2074 13642 y(-)109 b(tis)2050 13990 y(-)120 b(fer)p
-2380 12817 V 2381 12817 a Fj(-)2381 12360 y(\007)2732
-13294 y Fd(pro)2769 13642 y(sic)2664 13990 y(-)16 b(ne)p
-3028 12571 V 3029 12571 a Fj(\()-162 b(\007)p 3353 19466
-15 570 v 3353 17217 V 3353 14968 V 3353 12718 V 3442
-19319 a(6)3559 19972 y Fd(te)3459 20320 y(hos)3513 20667
-y(sic)p 3772 19319 15 457 v 3773 19319 a Fj(\()g(\007)4046
-19972 y Fd(di)3930 20320 y(tis)4010 20667 y(ho)p 4259
-19319 V 4260 19319 a Fj(\()g(\007)4349 19972 y Fd(-)30
-b(mi)4496 20320 y(do)4353 20667 y(die)p 4745 19319 V
-4746 19319 a Fj(\()-162 b(\007)3559 17793 y Fd(te)3459
-18140 y(hos)3513 18488 y(sic)p 3610 17245 V 3611 17245
-a Fj(-)3611 16788 y(\007)4046 17793 y Fd(di)3930 18140
-y(tis)4010 18488 y(ho)p 4097 17245 V 4098 17245 a Fj(-)4098
-16788 y(\007)4348 17793 y Fd(-)31 b(mi)4496 18140 y(do)4353
-18488 y(die)p 4584 17245 V 4585 17245 a Fj(-)4585 16788
-y(\007)3559 15543 y Fd(te)3459 15891 y(hos)3513 16239
-y(sic)p 3772 14820 V 3773 14820 a Fj(\()-162 b(\007)4046
-15543 y Fd(di)3930 15891 y(tis)4010 16239 y(ho)p 4259
-14820 V 4260 14820 a Fj(\()g(\007)4349 15543 y Fd(-)30
-b(mi)4496 15891 y(do)4353 16239 y(die)p 4745 14820 V
-4746 14820 a Fj(\()-162 b(\007)3559 13294 y Fd(te)3459
-13642 y(hos)3513 13990 y(sic)p 3610 12746 V 3611 12746
-a Fj(-)3611 12290 y(\007)4046 13294 y Fd(di)3930 13642
-y(tis)4010 13990 y(ho)p 4097 12746 V 4098 12746 a Fj(-)4098
-12290 y(\007)4348 13294 y Fd(-)31 b(mi)4496 13642 y(do)4353
-13990 y(die)p 4584 12746 V 4585 12746 a Fj(-)4585 12290
-y(\007)p 5070 19466 15 570 v 5070 17217 V 5070 14968
-V 5070 12718 V 4954 19972 a Fd(-)106 b(can)4963 20320
-y(-)124 b(ma)5014 20667 y(trium)p 5489 19248 15 457 v
-5490 19248 a Fj(\()-162 b(\007)4954 17793 y Fd(-)106
-b(can)4963 18140 y(-)124 b(ma)5014 18488 y(trium)p 5328
-17315 V 5329 17315 a Fj(-)5329 16859 y(\007)4954 15543
-y Fd(-)106 b(can)4963 15891 y(-)124 b(ma)5014 16239 y(trium)p
-5489 14820 V 5490 14820 a Fj(\()-162 b(\007)5034 13294
-y Fd(-)186 b(can)5029 13642 y(-)191 b(ma)5328 13990 y(trium)p
-5328 12782 15 563 v 5329 12219 a Fj(\007)5329 12676 y(\310)5405
-12684 y(\310)5329 12782 y(\310)5405 12790 y(\310)p 5671
-12816 15 527 v 5672 12290 a(\007)5769 19972 y Fd(-)113
-b(ti)5737 20320 y(-)c(ta)5810 20667 y(phan)p 6014 19599
-15 492 v 6015 19108 a Fj(\007)5769 17793 y Fd(-)k(ti)5737
-18140 y(-)c(ta)5810 18488 y(phan)p 6014 17350 V 6015
-16859 a Fj(\007)5769 15543 y Fd(-)k(ti)5737 15891 y(-)c(ta)5810
-16239 y(phan)p 6175 14820 V 6014 14820 a Fj(\007)5848
-13294 y Fd(-)34 b(ti)5803 13642 y(-)43 b(ta)6123 13990
-y(phan)p 6014 12851 V 6015 12360 a Fj(\007)p 6702 19466
-15 570 v 6702 17217 V 6702 14968 V 6702 12718 V 6715
-19972 a Fd(Sun)-9 b(t)6895 20320 y(In)6639 20667 y(-)126
-b(do)p 6960 19635 15 457 v 6961 19635 a Fj(-)6961 19178
-y(\007)6791 16648 y(4)6715 17793 y Fd(Sun)-9 b(t)6895
-18140 y(In)6639 18488 y(-)126 b(do)p 6960 17105 V 6961
-17105 a Fj(-)6961 16648 y(\007)6715 15543 y Fd(Sun)-9
-b(t)6895 15891 y(In)6639 16239 y(-)126 b(do)p 7122 14750
-V 7123 14750 a Fj(\()-162 b(\007)6715 13294 y Fd(Sun)-9
-b(t)6895 13642 y(In)6827 13990 y(do)p 6960 12817 V 6961
-12817 a Fj(-)6961 12360 y(\007)7479 19972 y Fd(pie)7343
-20320 y(Be)7321 20667 y(Pia)7673 20828 y Fb(^)7904 20667
-y Fd(Ju)p 7447 19670 15 492 v 7448 19178 a Fj(\007)7479
-17793 y Fd(pie)7343 18140 y(Be)7321 18488 y(Pia)7673
-18649 y Fb(^)7904 18488 y Fd(Ju)p 7447 17280 V 7448 16788
-a Fj(\007)7479 15543 y Fd(pie)7343 15891 y(Be)7321 16239
-y(Pia)7673 16400 y Fb(^)7904 16239 y Fd(Ju)p 7608 14820
-V 7447 14820 a Fj(\007)7479 13294 y Fd(pie)7343 13642
-y(Be)7276 13990 y(Pia)7628 14151 y Fb(^)7858 13990 y
-Fd(Ju)p 7447 12921 V 7448 12430 a Fj(\007)p 8135 19466
-15 570 v 8135 17217 V 8135 14968 V 8135 12718 V 8224
-19248 a(4)8059 19972 y Fd(-)165 b(ta)7924 20320 y(-)206
-b(th)-9 b(u)8251 20667 y(di)p 8554 19248 15 457 v 8555
-19248 a Fj(\()-162 b(\007)8653 19972 y Fd(-)30 b(tis)8716
-20320 y(liae)8572 20667 y(-)49 b(tha)p 8879 19635 V 8880
-19635 a Fj(-)8880 19178 y(\007)9315 19972 y Fd(in)9309
-20320 y(sp)9 b(em)9304 20667 y(p)g(er)p 9366 19635 V
-9367 19635 a Fj(-)9367 19178 y(\007)8224 16718 y(6)8059
-17793 y Fd(-)165 b(ta)7924 18140 y(-)206 b(th)-9 b(u)8251
-18488 y(di)p 8393 17175 V 8394 17175 a Fj(-)8394 16718
-y(\007)8711 16648 y(4)8652 17793 y Fd(-)31 b(tis)8716
-18140 y(liae)8571 18488 y(-)50 b(tha)p 8879 17105 V 8880
-17105 a Fj(-)8880 16648 y(\007)9315 17793 y Fd(in)9309
-18140 y(sp)9 b(em)9304 18488 y(p)g(er)p 9366 17105 V
-9367 17105 a Fj(-)9367 16648 y(\007)8059 15543 y Fd(-)165
-b(ta)7924 15891 y(-)206 b(th)-9 b(u)8251 16239 y(di)p
-8554 14820 V 8555 14820 a Fj(\()-162 b(\007)8711 14890
-y(4)8653 15543 y Fd(-)30 b(tis)8716 15891 y(liae)8572
-16239 y(-)49 b(tha)p 9041 14890 V 9042 14890 a Fj(\()-162
-b(\007)9315 15543 y Fd(in)9309 15891 y(sp)9 b(em)9304
-16239 y(p)g(er)p 9528 14750 V 9529 14750 a Fj(\()-162
-b(\007)8059 13294 y Fd(-)165 b(ta)7924 13642 y(-)206
-b(th)-9 b(u)8220 13990 y(-)13 b(di)p 8393 12887 V 8394
-12887 a Fj(-)8394 12430 y(\007)8652 13294 y Fd(-)31 b(tis)8716
-13642 y(liae)8616 13990 y(-)5 b(tha)p 9041 12500 V 9042
-12500 a Fj(\()-162 b(\007)9315 13294 y Fd(in)9309 13642
-y(sp)9 b(em)9304 13990 y(p)g(er)p 9366 12817 V 9367 12817
-a Fj(-)9367 12360 y(\007)p 9853 19466 15 570 v 9853 17217
-V 9853 14968 V 9853 12718 V 10085 19972 a Fd(si)10148
-20320 y(pa)9977 20667 y(sae)p 10110 19424 15 457 v 10111
-19424 a Fj(-)10111 18967 y(\007)10350 19972 y Fd(-)47
-b(n)-9 b(u)10491 20320 y(cis)10412 20667 y(cu)p 10758
-19248 V 10759 19248 a Fj(\()-162 b(\007)11005 19972 y
-Fd(de)11032 20320 y(in)10835 20667 y(-)98 b(la)p 11083
-19635 V 11084 19635 a Fj(-)11084 19178 y(\007)10085 17793
-y Fd(si)10148 18140 y(pa)9977 18488 y(sae)p 10110 17245
-V 10111 17245 a Fj(-)10111 16788 y(\007)10428 16718 y(2)10350
-17793 y Fd(-)47 b(n)-9 b(u)10491 18140 y(cis)10412 18488
-y(cu)p 10597 17175 V 10598 17175 a Fj(-)10598 16718 y(\007)11005
-17793 y Fd(de)11032 18140 y(in)10835 18488 y(-)98 b(la)p
-11083 17245 V 11084 17245 a Fj(-)11084 16788 y(\007)10085
-15543 y Fd(si)10148 15891 y(pa)9977 16239 y(sae)p 10272
-14820 V 10273 14820 a Fj(\()-162 b(\007)10351 15543 y
-Fd(-)46 b(n)-9 b(u)10491 15891 y(cis)10412 16239 y(cu)p
-10758 14750 V 10759 14750 a Fj(\()-162 b(\007)10915 14890
-y(4)11005 15543 y Fd(de)11032 15891 y(in)10835 16239
-y(-)98 b(la)p 11245 14890 V 11246 14890 a Fj(\()-162
-b(\007)10085 13294 y Fd(si)10148 13642 y(pa)9977 13990
-y(sae)p 10110 12887 V 10111 12887 a Fj(-)10111 12430
-y(\007)10350 13294 y Fd(-)47 b(n)-9 b(u)10491 13642 y(cis)10412
-13990 y(cu)p 10597 12817 V 10598 12817 a Fj(-)10598 12360
-y(\007)11005 13294 y Fd(de)11032 13642 y(in)10835 13990
-y(-)98 b(la)p 11245 12500 V 11246 12500 a Fj(\()-162
-b(\007)p 11570 19466 15 570 v 11570 17217 V 11570 14968
-V 11570 12718 V 11926 18855 a
- slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
-S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (48.0pt) GDAR N /S0dir
-1 N /S0dash 0 N /S0adj 0 N end
- 11926 18855 a 11525 19972
-a Fd(-)194 b(v)-9 b(o)11511 20320 y(-)208 b(ten)11827
-20667 y(vi)p 11827 19459 15 492 v 11828 18967 a Fj(\007\000)11926
-16676 y
- slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (15.20001pt) GD N /S1brk
-S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (112.0pt) GDAR N /S1dir
-1 N /S1dash 0 N /S1adj 0 N end
- 11926 16676 a 11525 17793 a Fd(-)194 b(v)-9 b(o)11511
-18140 y(-)208 b(ten)11827 18488 y(vi)p 11827 17280 15
-492 v 11828 16788 a Fj(\007)11828 16718 y(\000)11525
-15543 y Fd(-)194 b(v)-9 b(o)11511 15891 y(-)208 b(ten)11827
-16239 y(vi)p 11989 14820 15 457 v 11828 14820 a Fj(\007)11828
-14750 y(\000)12705 14890 y(4)p 13035 14890 15 528 v(\007)p
-13378 14820 15 457 v 13217 14820 a(\007)p 13036 14502
-694 68 v 11989 14397 1740 68 v 13722 14750 15 387 v 13561
-14750 a(\007)11525 13294 y Fd(-)194 b(v)-9 b(o)11511
-13642 y(-)208 b(ten)11827 13990 y(vi)p 11989 12571 15
-563 v 11828 12571 a Fj(\007)12020 12641 y(4)p 12349 12641
-15 669 v -1 w(\007)p 12692 12571 15 633 v 12531 12571
-a(\007)p 13035 12500 15 597 v 12874 12500 a(\007)p 13378
-12430 15 561 v 13217 12430 a(\007)11989 12114 y(\212)12604
-12052 y(\212)11989 12008 y(\212)12604 11947 y(\212)p
-13722 12360 15 525 v 13561 12360 a(\007)p 13903 19466
-15 570 v 13903 17217 V 13903 14968 V 13903 12718 V 14245
-18967 a
- slur@Dict begin (2.0pt) GD S0hgt (14.0pt) GD 1.6 (2.0pt) GD M S0dir
-M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
-S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 14245 18967 a 14245 18967 a
- end
- 14245 18967 a 14160
-19424 15 457 v 14161 19424 a Fj(-)14161 18967 y(\007)14245
-16788 y
- slur@Dict begin (2.0pt) GD S1hgt (12.0pt) GD 1.6 (2.0pt) GD M S1dir
-M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
-S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
- 14245 16788 a 14245 16788 a
- end
- 14245 16788 a 14160
-17280 15 492 v -84 w Fj(\007)14161 16718 y(\000)p 14322
-14679 15 563 v -2039 x(\007)14323 14223 y(\324)14392
-14236 y(\324)14323 14117 y(\324)14392 14131 y(\324)p
-14665 14820 15 635 v 14504 14820 a(\007)p 14160 12922
-15 633 v 14161 12290 a(\007)14161 12817 y(\354)14237
-12847 y(\354)14161 12922 y(\354)14237 12952 y(\354)p
-14503 13059 15 489 v 14504 12571 a(\007)p 14864 19670
-15 492 v 14865 19178 a(\007)14864 14328 y Fa(tr)14695
-14890 y Fj(4)p 15025 14890 V(\007)14864 11938 y Fa(tr)p
-15025 12500 V 14864 12500 a Fj(\007)p 15552 19466 15
-570 v 15552 17217 V 15552 14968 V 15552 12718 V 15810
-18967 a(P)12690 19972 y Fd(-)1076 b(-)g(-)538 b(ta.)12793
-20320 y(-)1027 b(-)h(-)514 b(de.)12636 20667 y(-)1094
-b(-)g(-)547 b(v)-9 b(e.)p 15971 19459 15 492 v 15810
-19459 a Fj(\007)15810 19389 y(\000)15810 16718 y(P)12690
-17793 y Fd(-)1076 b(-)g(-)538 b(ta.)12793 18140 y(-)1027
-b(-)h(-)514 b(de.)12636 18488 y(-)1094 b(-)g(-)547 b(v)-9
-b(e.)p 15810 17280 V 15811 16788 a Fj(\007)15811 16718
-y(\000)15810 14398 y(P)12690 15543 y Fd(-)1076 b(-)g(-)538
-b(ta.)12793 15891 y(-)1027 b(-)h(-)514 b(de.)12636 16239
-y(-)1094 b(-)g(-)547 b(v)-9 b(e.)p 15971 14820 V 15810
-14820 a Fj(\007)15810 14750 y(\000)15810 12149 y(P)12690
-13294 y Fd(-)1076 b(-)g(-)538 b(ta.)12793 13642 y(-)1027
-b(-)h(-)514 b(de.)12636 13990 y(-)1094 b(-)g(-)547 b(v)-9
-b(e.)p 15971 12571 V 15810 12571 a Fj(\007)15810 12500
-y(\000)16652 19178 y(7)16652 16929 y(7)16652 14679 y(7)16652
-12430 y(7)p 16736 19466 15 570 v 16736 17217 V 16736
-14968 V 16736 12718 V 16792 19466 85 570 v 16792 17217
-V 16792 14968 V 16792 12718 V 16876 21146 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 16876 21146
-a -340 22568 a Fa(Mundi)125 b(R)-18 b(e)g(ctor)125 b(de)g(Caelo)g(mic)
--18 b(anti)250 b(In)125 b(Judita)e(tuae)i(le)-18 b(gi)124
-b(dic)-18 b(ata)1799 b(R)-18 b(e)g(di,)125 b(r)-18 b(e)g(di)125
-b(iam)g(Victrix)h(pugnando)-340 22990 y(A)-9 b(udi)125
-b(pr)-18 b(e)g(c)g(es)124 b(et)i(suscip)-18 b(e)123 b(vota)956
-b(Flammas)126 b(dulcis)e(tui)g(amoris)i(ac)-18 b(c)g(ende)249
-b(In)125 b(cilicio)e(in)j(pr)-18 b(e)g(c)g(e)124 b(rivive)-340
-23412 y(Quae)h(de)g(c)-18 b(or)g(de)125 b(pr)-18 b(o)125
-b(te)g(dimic)-18 b(anti)314 b(F)-27 b(eritatis)124 b(sic)h(hostis)f
-(domata)1580 b(De)125 b(Holoferne)f(sic)h(ho)-18 b(die)124
-b(triumphando)-340 23833 y(Sunt)g(pietatis)g(in)h(sinu)f(devota.)727
-b(In)125 b(Bethuliae)e(sp)-18 b(em)126 b(p)-18 b(acis)124
-b(intende.)639 b(Pia)125 b(Juditha)f(p)-18 b(er)125 b(sae)-18
-b(cula)123 b(vive.)p eop end
-userdict /end-hook known{end-hook}if
-%%Trailer
-cleartomark
-countdictstack
-exch sub { end } repeat
-restore
-%%EOF
+%% LaTeX2e file `eps/vivaldi2.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 24 93 550 779
+% EPSF created by ps2eps 1.39
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: jud24c.dvi
+%%CreationDate: Fri Sep 13 14:45:36 2002
+%%PageOrder: Ascend
+%%DocumentFonts: TeXMUSIX20-Regular TeXMUSIX16-Regular CMTI8 CMBX12
+%%+ CMBX10 CMTI12 CMR12 CMR9 CMBXTI10 CMMI10 CMTI10
+%%DocumentPaperSizes: a4
+%%EndComments
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def%%EndProlog
+%%Page 1 1
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\TEXMF\MIKTEX\BIN\dvips.exe -Ptype1 jud24c
+%DVIPSParameters: dpi=2540, compressed
+%DVIPSSource: TeX output 2002.09.13:1445
+%!
+/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
+/p{show}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
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+/slur@Dict 200 dict def
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+% align the slur to the staff lines
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+ aa 0 gt { /shift shift neg def } if
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+% and finally draw it...
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+ grestore
+ % now some \slurtext code...
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+% differenced line
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+% sloped line
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+% free line (init & terminate)
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+end
+%!
+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]/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[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
+%!
+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/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/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
+%!PS-AdobeFont-1.1: CMTI10 1.00B
+% 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 (CMTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI10 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 44 /comma put
+dup 46 /period put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 70 /F put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 77 /M put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 86 /V put
+dup 97 /a 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 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 120 /x put
+readonly def
+/FontBBox{-163 -250 1146 969}readonly def
+/UniqueID 5000828 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
+21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
+06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
+55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
+B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
+0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
+1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
+7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
+7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
+356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
+19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
+C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
+244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
+AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
+5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
+C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
+EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
+998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
+B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
+CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
+C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
+6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
+8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
+6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE34500182EAB8A05F5426A2F9AE8B5
+F49023C4EB52D58BC449B85998ED156A0881303EB6FE91A21F78FB92A8D777E7
+C9F4E3DF67AD861E0F58D417F49CDB9215C5A7306B6D86834FA116640359081A
+40B44AB3ED422706B229E7DC780B4CE471A37963ACC67A05D0AA0FC5EF576B1D
+E985A8C151B0D9CE308852FE82C58C258551931A917D4A84F6654C29A6FF53B9
+077DC381786781EA164A68BA1DACFA9F8DF59F16683B0BBF6DE5115E7709745D
+FBF17A178D989A18C85C4EFDDB0D04DAEE26A293BF75E2AB7804DA8A7C87E8CF
+350F020A1CA1D87E9099BC50B5FF8800EC3475697B9FC556AD119076A115FB12
+0F072955C90648B106B3B6F34C4191E6DF2BFF6A378DE23D280A5DB09A73E4EB
+4093D86218E047A47C194892C2B450135D937AE353C72AC722CEB29C7BEB871F
+FFC64D5ABE51E76E9A9C6F48BF4AFA009F8B39B4B4313491DE263B3D804158D1
+82E0F13C53B4AB110BFCC9F4F0679CC15BEABAD0740A8A26321A17090A2575EE
+9F2A080701E2D527F8A89AC9F3E3FF94BE377ACF9B074A53851566EE7EEF9340
+89D9F21C3D2F750181B4124AEFB5F9E5A590295407EB64F706B2173D79E5A6D0
+EE3957F1F8A90A205FF2F8440DA70F86071FC642FDD09BC539FD7A38387BBE7D
+2616A922B9325756BD9D93EFA1BBD05B9315480E0E70A13C8BACAEE09232E218
+F1561E4EBC6EA6B275A36CDCC6266AAA3796126B7D931EC72749800233EF2A56
+B56C186896A23CF8F0B5042DAD9A28258AB1D8025B61BE9D6298A3791CE96AA2
+2E27D6AF45D1B93A29AE334BCDF93500E6FFD5A2608745D63734FFC7C55CE42B
+ED6F9D3CC451617BFBBFDC9B30A15A8B227D2FD578ABD857591E02CF8704E241
+13F815DA1DBA23BE550B4667C3FD74C679643F14A3FAF6C46F8369FB69A10849
+C8A8858CAB311159F60C7BBFF9C62D219D23DEE987AB124E1B77BC78FEE92F51
+615B65C49D166304ADA1A438B01BC1DC3EF829016E1813FFF95181C699942DB7
+818686F9684500AB55826D96E2F9CBA4040AD7ACE20A5CE90EBFD8A167579F50
+0FD73B93B95EF858A737AAA421191F2D5550F7353E8CE57C97F659B6AD69ADEE
+ACCD6ABF7EF992455C241AD79BF0DBA647E7506C932B730A2C62AFA49D0AB853
+31CAD55DAEDD1B420C18AA2FCBF682CC1B450CF1B240176577395339D0F248F1
+37A0865298A2CE41675C9CB0C8884D0D12C851212E4B9C56F68779DAE4811FE2
+843FC5DAAB34A288E3A1FBF715A70CEDFDB309EDAC9E6D98AFE713777E62D942
+471E70A163F8E51F060A0D29ED2AA3A8E2ABA23F93D528774E4B47B3D21A729C
+7B2BF212C1DBAEE7DE4EEC4E15B506BC1CDE6D377279219C74C45FF8FB0BE6C3
+7950E6FB5337BE4D300B8FB9BFA1A05626EA78BECB433512AADFDB91C5639982
+759BCA18AFB08886079161ABFC09EEBAB759DD9504E17EEC10BC43DF63422A56
+BF3BA80B54A0E36FEB3C46C5868D6C63D1EBAAFC9C41D48E4D63453E112DAF22
+6A9A1AA3C2C289256EA0BE447F18A7D101F6FBC05FF0767068F3082407207BF8
+ADDFBCC671F45D1B9282F928C73D80FDCC8290986A68CA592249FF769EA180AE
+AE7632F2EFD4E9905FCA49F195868AA9FEC423EC3945552F984BCAC2BD5B6A86
+B481A3AE65A62421418DEDB06B8599C9BD0FDBD3E034339CF7F31147491252A5
+635A67636CF1060896FE19D28151B675068ED1E90BA7593F19C592A650D03092
+ADDD9DAC022AB5433B784E995E8CBE6F6843E5B38CC22743B65206D1B4D3500F
+2A88AE2B3A5257A2A6B61BE74520EFE5B62A80B5F7C10DE75A27314BDE72B9C3
+9E5B97A2140FBF5A2ACA929ACDE64F721FA5D59C755BB9EEAEEBB97332556C47
+97537248304D00AEC1C34E17846F770CB5C5106E3DB1C1D473E8ECBD7EE5BB1F
+0E9E19FACFFD2031DE1D8440709188B209B6A119CC7B5FBC484A8D2716C0983F
+9543F1BAF23E536B107BAF037DA5408A3FCECBED3FAB58A8718B254D660AAAC0
+D22E5A72D9F719F626186221AD655B4BE48F0920C794DA9605D393F924CAF403
+35E754547C751028DEBADDA3A461E91D348F51204FB3B53D4463C421625CCA87
+ABC6DAB7B181D66A154D866776C882B09B4C87E9F36ED4D7979150200C4C2FEA
+71F13673F92FCB7B18C4D65BE965662AADA0B19A23899DB4AC11A0E80C168DCB
+03D006A654BAF944A2007A698B5DB1E43F35281341050B662F42A2D7378755FB
+21943D8AF98446A41655B9A4910432205B9D73BAAE9A726B16094E18BE5E5434
+2DEAF91DF7A47B499F9C9A65F21FC9FCAA36AD9AF577C60525A3C6A769B258C6
+0EEF9B0A1B01051DDD35FE9DF1F8F3A01D4E469A6191DA6EF1C47D580BEADF3D
+B4C2DA40947117EFEDA81E265F61318112DBFFA74E3A7ECB44DC36ABE8967BB9
+EF6D65EB4C184AD0F2872E1B6FA036F62F3852D78F72652C87BABB0970B12F0A
+7E04C96FE4B025201327C8FEF8824E5FDD9E2CEACB7489DBD45EC5F684E401EC
+8F101A213152573D4C354E54BCC5897EDB2828FED03BE7D5EB4DB05460817A9D
+DBF42C5E0E0058425D206603F6307FFAC8E7DD443222CA9298F7617DF35A3F7A
+67B50AA164C235C9B2EA56D32AB54BDD158BF4731C5990C2D386F5C5F1D6540D
+27D12C5E61FBA22C7E1AD88D72D1AD82CE55B7C617BC7DD63721B00D9CF930DE
+6D4EB33225303E73151E0C1AEEA0A64F35B406AF1CE453A7D4E3D9A476748A97
+3965F07CDB77DF594854E2EC77379FDD6517320DC706A2158E89991F1D3B5A5B
+CA81D82C31DAF3D78E8588A95A09EED998A0DF220E9B06B15CF6E1A6E540F8E3
+D50ACD3C6EADE1F8F80FA83A9A26E413EA35441C933FE4A423D7C991D1CCA4CD
+85B495ECB518B4312EB8110A0A5ECAF48F479C61AB4447C6FE9C22D1CD9DA8FF
+04A54A8BB6A681101A913D615918F182934CD933C113384E6C9D350AA4FC7CD6
+6105A76E082A4B4086195369A13E4F1A05B1A89BD1FF3A329DBAB040EBDAF720
+559AE3D0BDC1330DEC19B5C44A11DB502A340920BD92A6518F4906F4639659F5
+43E807EB6561A248FAEE0EA02135F46275D61C195A78DB9F4508949BCB0572AB
+2E3AD7BEF696B2619E64F5898B011A8D4F5C3EBF723D1FC77EFEFE93734DA489
+C71A98F3AB9EDA0AE7C9046701CAFED6C93096FBCB56696BCDF45E41827CEBE1
+9F2514EA97CE39820E7764123C1C7DCD6B29B78C9D6AF2551B366FEB6C4E1BC9
+BD9329ADDD2E3D7882FEF335FE80084513E97A453D2C6A3A3E4260787512F621
+E59FED196AE1CD7F18D8019748FE1F61FB9F63C3A661C46233D2E05F4CD81F5A
+FCF16AF72C2DF3817EBC8FBDF470C0E6FA72624B7E8711778D4F0A6EE64A5E22
+ECC0A9825F786BAA2B1A4DD0F6C216098DCEEBACB1F704667B4657A9BE6E4D71
+87F603F6F573E206AFC6D0D5A705CE41247776831DD6A6D4A23469E19D82B801
+35F9E060DFD316D3FF55F1550648141D0E405D16C3065CC7C9B42DD0BBE0C15B
+966C11A0B5A1F02B2FBB67A3E458938A19D9F9397BA1DDFEE9B8BAE63923FE5F
+7A641523D96B1C475C2EE8FF68E6F7B34F709C5F249B0F0E0CA490A4167E9B45
+83FA6EB3BD15AD7A7FACD5065E1C28C86C298CB98BCC17BF8B1703D8AB815BCE
+C7058895727DF51E4B5F8EC9BC3E1E8ED9627413A0E32F62EEDB4D25D8EE78D7
+7CE7229052E0E76026ACB8B735C24D47A966C468E7D7B127CEB4D01796F9E776
+7C6FACC21FA5BB3AE7FB715DF7C3D832D47D824F522DAE12DFB5829E3CDEE278
+DB26498FADF2B3013396293B6CEE8DF1EAA7BFC68DF8C340C4A98A4EA370482B
+A8D0B7A6119C8EAF7A1A4C4CAB99FD9C15D97BA8D11FF0F728D09F18EC8881ED
+A64ED3E91F69C0B6975251AB688A9DF9A9D59B01C2A47BB449782E3070A309C7
+35095C7342F1CB65422B7C01A39363E822BA7B279EBE209AF1E542EB084746B2
+13910D371F4BFB63E62F4C7258AF4BC7008836E50468D2ABC83ECFA961F2A6EE
+360AE8B129E3DD5A72BF9CD53A4A1FCAA3A07640B459BCFC1BB9D63253357284
+38C3AE67616226736186B4A02706E83E7D332129D2196CF0AD240C096EAB21E0
+ED7D639D09587B1ADD78C17FC0DF2C57FAE62BAEED189B4005C935D320F04D9F
+B410235B7E57A114894B90D36D346227EFFDF0C7729EAEDD07CEC5D66643CE69
+79F1180B9C7CFDA8EE88DE589D97A3387D6D181AA1C37E226D830113F76A9C03
+E615FBD4E2C0CDB45E988A8D16DF40E2C9847253B71C6AA3FC1131D3ECD44BBB
+DB933134F1D9A393088E13C105D8CA4FACC2D8DFDC0259791827E91D624EE8F6
+7CAA4AA7C16A00C53DD8DEB5F7FA43865CEBBBB24F495D30FFD36D9D39DE3248
+F89B1534E5639D5023FA2BAC9F98507E07847E031501D44416AC29E89188540E
+45D92C178D1EAFC30B304CEA1E4B6C9B29041E652C6D3FF570DB08CE103DADC9
+61CA545EC5B8B70BD2E0981998ABF3B456C28E67D01A417AFCBD64D6698225D5
+BD711242746C80B348918DB219CD4017D8D41560AB585647A42F39DDB9A9C34C
+BD8DF4BC165522A09E56F4EF922A9AD55CDD9834F5CD799790CB1F9BD68B19D7
+089006FF5FECE957D6A2312B0FB85ED07F0DA0065C3B0D51E038B2633B4E5660
+2F15B31ECE6CC7DE2233294126E89E1E0AFD4757B317C2C753A6306EDF81D41A
+AAA05A794FF661D2126B266FC88D5D70AF32460DCC719B5DFB8EBA45B4EE05DF
+3D6C7B7254F1ED857422E92E19E3C9DC07FBEDDF395E7197CF355C2B5A34C3C6
+C799599E27645A6331C8815482CE0C261B31596D79236FBC1ED7E2166C696219
+495163D003D677EF206CC6CB42A84152CEDBA0E9C3C8AB493E6AF047487055E0
+D5B6162669A5873FE65DA43025E88A40B1AB6DECC81D051B5A035622162120E7
+C71DBC570E9153EB0EDA73D1EBC616EABF5B234E4D03D9B902A8EFF9F2BDF241
+AB6D001638A03BC9128995BDCAA96610D933C958D3F1B215E25CF48F9E87E690
+8C93335D52BBCAFD3798105498E1DC40A354837C9E2E44DFD7981FB9145F4126
+5F2F62253A38EB740730F8653DFA59811BB125A0E78B1EB9C3DE838C209AE7E9
+2B125BC35ABF849FCF1F378D652376F8786D2B9A696BD70A8DF9AF0BC1A37DFD
+8F6836CFDD7DAFF14ECD77B43602705EBAC8CCB7BA23026B2782D3A331ABE917
+44343194F4801315B267DFB8FDC9DD05DBDD2CA89DB739D7D976B19B70C61FE3
+7720D8DC914CDE993DCE15000F3934C8F8E8C87A6C93238EBC6EF11A67D7D464
+D519C3E00FC96D8B2FE259B363F976F4BCCD89ED4B5236A56E97D40D6473AE76
+95F6B34E468798FD1AA279404345D9C82550F72B082DAB930BEC0949BD682C7E
+2ECE4244816CA57CC7E51B174B0A820582AB04D036F4E2DF1859B8943FC035EA
+26B7D71BA318496C7A2A875D52AF12C73CE423DF6F4F8A6A2D70EB51C233EAA2
+24BC959879D54F20FF847197F0951E2472F9C06F5F8E8C29CAF8533148C812BD
+49FF7D1DBF37FB5CA408FE0C06BCDED66A956A90769865D64FB961CE9E7BC5AC
+01778FFDAB0157DA2D1D366BA8D83948F6E59F884346BDF2A33E085142C87BEB
+7A2D9B37A08E2B637E778842FC8D684ECF8308D419036C0A88C6BB8F9187BDC0
+54DBEFA40E00FB39206E8C05D6F10A445F1A4E7CD95D0A172E3586DC7EBBF0A8
+C93F6B4A4FBB4019505809084BEA2CE69F831CA7EBABE4F3A26FB256A2ACE3A8
+42B02821BAA2304CEC5797F4BE0902FE7C7B33B769D7A4299762FBDE8D89F0AD
+BB71E0F0131344D531D8F23D04A4B9A0D9972F7C2C7C52FD47EBD45AB7F08B28
+90C076E34A835E6E5849E83479551707F244B16001C977FE310AA69EC76EFDB5
+FB30984E9A9EB47166ECF5EB9BB06C9657EA526203D53F455295142B8E392816
+504E0B792B7511E9DDEF3F9F6FD0479A9B03054976BBFB377AD18AFA3A230275
+57EA040930E9ED0D15ABDD24EB7D3F8A24669718DE1060FF193D1576638AB7BD
+384565304A862E15C0FB0D09719253DF70984529C14C1F057BDE67D306874A8C
+415F49A264E7D28276B72993A2FFCA3826C6E336C199A61994730F0BFDC1E677
+7B1236BB9727134FAEECA4B0ECE76A39BBE739D7326462B7546B9CF8DCCD6EAE
+6C6EABBA4CE2520855858583671CEAC394502B23E98F16CC73138C598356C08C
+361A9630BD2704B66C5031D23AC8FA42F487A26AB984C083B50030D088671B67
+76873EE49D69C738CC1D23DCC29800B524A3A448B18A64CC7FF78895D6810A52
+CBD521960B73387A36037FC4A69F97FA607D7093BCD8572830D8AE40B7C471BC
+454258EAB307C8053B9AD5EBEDDD772F0A390983BF2B83827E6D1836D4BB6BE7
+2BD3FC9E57505C7846FC9277F2F9EE894BBC49808FECAEC8A4A6B76B4F55A6C9
+E4D1CE882C88B3D8B5D0E36D72E9703AA05F6E33154504DB0E256EA6290F0277
+38D27B7290AF58491EF8638F5185A0F2CC71221D0E07517E3192FBD1979CB1F3
+BCD01124DA270C5EA5BC9D6BDDBAAADD126D0FFCEB4D4D4BE4BEFB18CD307F95
+DCE95DCED737F610626A345D231BE4FE5D7DACA2D5BCC18DA16F9872CDCF7E25
+3C651DCD102FA1BD2BF9D6968A6D7370B6A7D5679B3F8AB2BD23DF415898E565
+11857103A91D857EADAF7DEEC3083C8149044D58B5B0D1D5534B164444D49AA4
+FB9A6187D6D4CC02E7DA200693B7A165E0A3FFB8C43519A3058AB3146F9B4393
+EAA54CD0810BC680B1FBDF3B500542CE706B26FF2CC0F041BF46DFFFD454EADB
+84D27BE71C12F2A8A29B615E5E7186778DC4BCE417EA6D98C71B3CF284190357
+4B8E30FA145F82A1FE7EFE30DC806794F57DD1C8727DA6C5B2E5202D19BA287E
+C3151F61F9DBA3BACEFF3DE5C3D0A7E41A235F9ADCAB4193237C200BE171BAEC
+974D3932E54F404F9912B9726DE692359AD996264331DDD7F9D85E1ECFC7DBB9
+3CF5D624BACDDA1B193916C4A8B4AF83E45F3736F5A5A7E5DBBCF29F8F08286A
+EDF684948B794F80194152EF807C421AC9EABF15702B3231B593FF87C4625313
+1BAE2A17716708BDF16BA615682ACF6661CE2705E6B63199BB754069BD5B50ED
+36FA962ADB516AA1AE0EF481BCE062199396E5DC39FCC42A32AB1CCB888BB656
+7CD72C60F376ABAF191F60C75A6081AE9C19D5181B19C4ABC28401EED3BBC63C
+60484CE2E4B8934F8A983BCB54405F30A4D1D1E934D54F90F2D8D182B10FDD5F
+CD1FCFC2EAE6DBA0AE0FBD0D938FA1893FD8EE67F6FCFBD308C588D63BC41FBB
+148E6D4D6AB841F3767CF457B44B4710C894015630F44435EBD56D4B5DBAF67B
+22CAE46459DC129E19FA02DC0C151B111C8D6BD6860CDB90EB6613C40D5E615C
+68E878313AC9EBD0C7A873D840A85338EC9CD24ECC6E5AE988AB3A0E94B71257
+1CF9693F2903C0C241AE3D76B9B04860F447ED58F72FA15A19D7E4D5EA8420D0
+125C20A162DD1C34F2A8087285B3E5A3BAD93585EAAE498EF2EA4AF1CA177AF1
+0ABD5173EAD1D6A9D2F14290037398D367DA0B4BFD68AEF239B51A9C9DE63BC6
+1E2786D5876D1EE283050FFE24A5A4814E446F5761DBEBF27FF2CFA8F6775E48
+FA9AF77995B914D8117615F439E321A0CD70A150758AF00C6920A78057D56B7C
+B3967E6F083F03D57D9592050D5A15DEC4A2D4B6FFA76B2C82DCE5E391A3391C
+EBF2FA64BDBA1D7EBC1362E608D4C0A0B6127614B4DDC899F4D943B7D84AD9E4
+8C724F822AA3EBBCF4020F32D4E990D830234204781C8908F557CA92C8361D07
+C4830D1D290DF3084E71B6463ACB18162CA686C981DFE87A3D8C4F6F5896FCE6
+8E47A465405DADB3D3CF2F98932F82E1A8DF4F0E92D76BF8DAEE0D10B8456F03
+948223DF176A88332A796D4AF902E2E8DBF7AC72E61BDF2C1D69D1BA2E069056
+DB28ECFCDB75DC5F2FD7B353BF44EEBD131B1446385002809421D0DAADB53BC7
+4D17DA3A8E6D775004C46D25331482E2403EA108434DD583B4A14D64E76BFCD1
+A7951FEC1957BD6C9B90F80A3D1CEC11672F734DA6FE02C6AAE8F74E043BEAAE
+AD06FA7749578540C7CF230B1F0E9E98BB699DCA51D6A8E524F1CEF650C85C2B
+15175889BA490A731884931ADC066C00FD22DB6996D2D94C1E7FBF0980D58700
+DB508A59C3EDD82A42FDDDEF0AA28E55E327C769756D9F8D237EC63047EC0E3E
+037B0357386E7AA0BDB955C9E2B13FD91022E614F9919BF94923A6F931FA5851
+EFF291A0CCA913A4AA8B58582728CA1CCF5035D5D00C5CD4AA3AB17EE0234D71
+05296EC3E8627BAC78A260DCB36820B0C66559F64B83F3B61079AC5FDB4633F9
+077DEAC9BE53FDD41BD1ECD9C959A59D930E403D30246172D39073634760015D
+432E2A8FB132D548368B68D74D7D6613E6E7D0DD2DBA5228F08CF3156BC552A4
+E2CBB2E58A2D5737FD71442447AE0C65C117036DEE3154EB7D137AE935F652D2
+9E93CE9FD2EE3CEF0846087FDB52EB797F44C2F0198A3F414F9AD13F8A0D6CD2
+6ED421628B52892097D5E3694C91E1C859ECDE9373A84EDABE1B4AD7D5CB0348
+3D0ECA51227933E26E6E7B31760DAADACB22A057C11CE072C7DCD0800B42A560
+6A4E3533CE41CB0D543BDF8DC48E60A6B730ECCA83A04B70253EAFA0D4BE8F1A
+41EADB97C1127B4B4E4740344DB53F73161FFA8B06B5AFB6FEA809235A49A263
+E18266EE8B937D69A2D32A447CB8852945FE40DE18FC19FD8DBC053D350EF8CA
+8611186A12F4808A9D63EEF68BFFCD40C841EC7489A9601484F7FCB97F04AE81
+B458541CA6633E433E2980A56F36D59E75BA721BB434C333D833F32DF100F63E
+38031A030F08AF9321D691521EF4B4B800484BAA40E0A043C3A298529B7F7607
+9C757E27CC006AFBD856F3F8C1421B20630A3705C1F635A6214C6D3B31B7F906
+24A30AF074B91D26BB3040E42CC4C377AE6FD6F9DE01529803941302E0F61BAD
+791AC4919FC5FB28218BE0AF525284C95114F7A034A357200AFF7DFDF638DCFE
+1EF9F7ACB492ABEB013E0296508AE278745C0319BA38D8F4F7CCD561FC7B42D7
+61B876474C41D5BF906486B296B7FD2D8913F1CF9930910C2C27E789E4017786
+6266A313012E6701CE1B08FBCA997B42D1F79C16781F025D9F3193A51D3BCED3
+54461003053651B92C8F3674D82063A16F01F6201E5AF070C22A83563C9648ED
+DE168BE56E3C7D7F2ADA8994CF17061BD8CBD822952759DAC0C099B1671DF00C
+BEC8936A092628911C35C2062A9EC789B1561D4C9C68D0CF2AAE00D0876E1A71
+962E4EBCB24424ACCB594F80C78F4FDEFC23D1F9CB7333D2602DF2A91E7CEAFA
+FC30AB99D6D431F5B33812E37F5BDFE93A40797FF0A1DBBB2F0B58B783D3884A
+BD08940F25D00DFF491A008040B9F7B9C9015696CED03120D081F8F066D167DF
+95AB35FE30EE211894941A4D5FB69F483F58CFFE73B6F03BDEF7D0B06FD0F520
+E09BC841D687A121E29B8A5249F98F1866D152E7F5DDCC03F544063F0BEE5BA5
+27313EA46C6684836F685ED6B0A86FBEB03FC4B886F76B905E31434F14BA3D8F
+DB2A74BFAC16967BE7EF6A70917EE2FA6390D4F9F329B17E6A6FC03E65EC9ADD
+E6B5B6CBC3E830DF900FB4FD5CE6E7BAFC7BEA1DCBDC112E65A9F1632D2AC08C
+35FC5AAB6608677820CA22EB321E8476717264DE74502DC98E8042CCB194F154
+9C88C3A8E89CA66B78C294C9566F9FD6F8E6A71385218F898F1A3AE012656DB7
+A571B3FD7C2B66AE759EBBEA793E0CDC43388E6ED250444355ACCE412472ECFA
+D189C48767C5411C75D15E7909AC9E12CBDD127C0C2059039E5895D412D3FC66
+DF6C519B516E79D709D5AF663F67C77CB714B1069DD5E17437B7AF76F39EF521
+DF264BC6CC1CBEA6194CB45E9CA327D5E668E127892D91E6F7E4D4EF40E7D76F
+89A379F33F0CB75AB0037FE312D61DC2C7E71F0ACDEF1C7BAE0BFBC8C5B55402
+8A8E328C3B36E667E23B653C8AD256E023E087443DD9B9C4B62640AB06F496AA
+84F9E9D19AA6FA67F5BE6FA5DF71A5A9CFA1733969053E297CCF88EDB34D0CE8
+88B8DD41AB933B8BA14A6AE69CC7B6E8F261621F53AF4A8E3EB695E4539E0C34
+84BA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMMI10 1.100
+% 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 49 /oneoldstyle put
+dup 51 /threeoldstyle put
+dup 94 /slurbelow put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 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
+956017667094CD8DC214A666D7D12CB23EC030318B42D47F222CFD38C36143D7
+DF4BE5137224BBB8E63ACB528062FA208E79839A4C6360201AF2638DD3E415EC
+6600A3BFF0EC19746A700BCC3D34FFF5BEE6B3E9DF243187C04A6FC52343151E
+3C8437C1FFB10C5CA90EF4B2079FD746D7015FA83D0124451CB153A7BAEA49C7
+057B37F3E5B5AF547DCA63666AA26274CBD4F2BF59ED55DD71A0D0434EEB2240
+E1631119E597A50F35695AD8D971A38433464868393F430EB9ED9E6C1CCA5639
+692977F8F64E947027C369FFF29B9321E9F918EBC73376F3814955D59206656D
+B42C3AD7B0DD5D82DAEF40968300621C1EEDE94DAC5FAB456BDF7D2263362B39
+864FC74361C47C036577DABDABE9B977175B62F7B28143BC325635EF393AEC71
+E70D9FE911937DB4464F6ED2306CD98688B3235F7ABC3D2491DBB377290A7BB0
+FA1F281583A40C11E60FC7E581CDB3BBADD201BD53605A226B496123E15AD810
+9681DB6E279F459F8F9C5419A40A220332962E0AC25B2253E9BF2BE5693D3C31
+56193133D8DFE26BEBC26A4266F8B4FDFCA195B1A99B8BEBBDF6B3B486504F22
+E83F8CD78907136A723DCA654EA83FF52137FF3E0CEA373696025AFE47F273EB
+7D4434837C8997F6529CA4131A0D9735E533362ED7A749DC231DDD68014F1BA7
+8CCDC3E7B931D22464CA81219854BB3F42264392D3B2FFEADBA91FC6F8213806
+1C4C3B8FB9DF794074657279D625013D67D883403AFDF2AA2F47BBB5BB1096D5
+62F1E76361A5E63655834FF48E72B94DFF363AAF486EE31B26A6FD4851E5C96A
+1A7C50B261AD2F69B290BFD6E1362CA7771816CF61077382418F068AC461D7FD
+E3FF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMBXTI10 1.0
+% 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 (CMBXTI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBXTI10 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 65 /A put
+dup 101 /e put
+dup 103 /g put
+dup 108 /l put
+dup 111 /o put
+dup 114 /r put
+readonly def
+/FontBBox{-29 -250 1274 754}readonly def
+/UniqueID 5000771 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
+E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
+BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
+3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
+F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
+C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
+BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
+2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
+879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
+141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
+63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
+4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
+FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
+395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
+82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
+763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
+165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
+57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
+E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
+178DAA796C480A536E8BD662D1A8C639EC2F20147CF9D7D47D6A70C1B6E7DDF9
+104C7C23DA507AE6E60308418069D899DA6D825ED058E7A00D1DAABA2747732D
+BA04CC5124740D4B7D159216DC4C58D2C66D7082A560A6BF282FB33F213DE749
+B98DB7EED477040CFE22CB8FFD55CB33D53519C6D79AF1984412E7914AD9A49A
+8C1DD147BF84744159F4151A6212BFA297AE32152AE5C76BA08298D0055DEEB5
+2CC0DBE2A8F6863EDDAF8C50B634CF9378B85F00502BDBE97BCCD7F66419C54E
+09059108486A1808CE67E81293B6C5FA8944AAC7AC6668BE91090844FBA0351F
+A4D5778BDD45319106D886E4328C4C87B57349662AF33892FB0B9DA1FF4D5D73
+2D8BC86EF8CE627FB15F011110ADF9923BF491B3687A35EE924DB227C1105E8D
+90EEFD7053CA7FDFA1F2BB443A68EDD6DB85370D3BE53260699B28E3E1BE7F34
+3CADE6C3ED70BD307E55C2BD34AE1D61F7628AA7FAD9F9D07930505A4D68CB51
+E1897B682293AAC4380823A38D0942B40F1A59C3DDFF28EE267C58BE99299C2F
+1D8196C7D5CC182F81813E602324CE892E5C185C0B547B657081E029EFEAB786
+F0C25DF4E882FFB65212A44538F944A8E4E23245E809D8E16CB28A34EF6BF307
+7BF694FEC12E3651A3AA4C71CE81DB07D1FBECD86DF8178CE360775600544D7A
+AF24771B81C9C4C6CB058A35DB953D14861A28C7A97F211F6F04592DAC573697
+D42449EE6EA2360C79BB8CCA4120A3D48759482F2B5DE58CF270534FA6ED093B
+8349C585BD6BEB87B722AA6935AA88D533DC0EE928D50E9932804B22E92CBA07
+4AA6F009EFFE060F2F6261FEE5DD7A2B660471835A78E8C61F8DD5A836497E2A
+1B62F84A64B753E8B5DAF6FB332C22CF871A9FF39BA71C31D846A3B4C0566BC6
+72EC7B64ABB44BCD07B8E7DFCB055A256BC3A9C17CC97E0D33B1CD4A04F11538
+330F79673A93F8A4805216E4F865FB5F09791F8717C31491AFC80353B2B72FF8
+8C8C80EAEB8D9290A261809F85FD36821053E52C9757BA86A6357FEA51D3A29B
+689C622271A872E0906974D84E091E5108B8BF02320B66B31211674996A53754
+E01AEB59B3DEAB5E548F0F4D58130A51D2DA876B923EA1A8F14B4DEA84C798A3
+773C7B46B28AE3CADECF4A2E11FC9D8E7185CC4533CDB1CF214306718CB0B554
+308C216E4C3461E61D91B206A38FCC05A8A394B33FA2FD24B359DA9A02CB0884
+EA2779518CD5E11E4D987A4F42F482F0CB5F05D8C078658003779E112D378235
+C7780874190EEE9361D1695154565117D482911186FA9612AE7C9BF06BD163BF
+8A8251A2A2BC3A58AA883A6CCF81E452D2567B52186B0176C07B09C24BD6E39E
+49DE3B81B64CA7624B1AB4BF8DC441B8D413C07B685EBACF16991DD13514A268
+69D325B82296EE74D1578B9A943C1AAFABA821D09D33AE46B6AEC61F1E920186
+ACD01274FA1952802357967C220A1CB4D9B0B1EBF833D9AE35DC71F5C2155331
+F2C7E8DD970AC39E16198270F7BEC2B4F38850C1C3EF923FA20092A32BE03BDD
+73043A90B52E572B79A19422E50A56E3A56919942C34A42AD42E007724B3B908
+DEF2A9C0
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR9 1.0
+% 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 (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR9 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 13 /fl put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 70 /F put
+dup 72 /H put
+dup 73 /I put
+dup 74 /J put
+dup 77 /M put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 86 /V put
+dup 97 /a 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 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 120 /x put
+readonly def
+/FontBBox{-39 -250 1036 750}readonly def
+/UniqueID 5000792 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
+3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
+046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
+C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
+A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
+A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
+731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
+09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
+49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
+5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
+54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
+C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
+11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4
+48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F
+25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52
+24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259
+21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D
+2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815
+2612BB6FE97EB3FC535F7B3D066CB8D1CBE03C909812171B1F252908CA311BAE
+4C25F6B56B90325B417AA7FAF78D2EDF278C007E005458FDB5D494DAB3D2A848
+A2327CBC08F835159E8A02E9A57606F28CEDC0BC8316C15FA2A2E0975DC32500
+16BABEDCDDFF6F87D17CF6C7629C71816D609BD4782F9045101CB339A3527983
+C645DA4A6C6625496C15E5D65EFC8931674F0A784FDF5147B3BD84D9A90BE406
+24EA1CCEAC5B1C902E5BAA35F56D6FD14BB0645A319DC63C430F2DA27BC151A3
+B2332538CFBF07F8749AD29F8FFD680A953A84538EFC4F2A7F07D27FBCBE2C4F
+289079F56CC79E31BBF1703224B20D865A8FCB6604C0A4C14E3F0E9B1A1B6124
+730B49117E921EC994F49DB5DB5DC64D77F7FE0D47474319ECD4B95968420D93
+8C38BA8FF37B9F2C6D196E85E1023852E11A6A5786A6B815298ED1A03FCEE8EB
+84BAEDD4BFF6C686C7FE4CBB567DF5EE42486001CEDFB168D29375D77BBB9A2B
+4305AB40C6337ACD98402A851C000497CC3C44B50102B9D4F5BB812BD256E77B
+CCD381154385766BE9999E340B85F6E67174DE0B4ADC4BC0EECA87AD07A465EE
+E163F03B600FDD9E428692CA0861B13FEFEEC0E96BB5F140E322D5CF46D0E034
+870EF748757563B15D2098E79B491ED75AB0E54A41F4CB30E1B1A2FDDA0B8D5C
+D2ED42798951726DF9D3A08AA18FB45D492B6887E93802154086B6BC6856803D
+87B08902D7A7054886F113EEFADDFEC6591DDD1654FC5D8EC5B9C1E102F8C6FC
+73759DC641FE80FC07272C4393905E4E94AFBCB9490FD0CCC8E823BEF01287A0
+2A03EC79491984621CEFAA7A4025FF06C94E77E9E58ABEC2E6CF11766889B65F
+C22C95D529D796AD5A18A9624331CA11C183341F1B6AC617B7F8676FA9E3B890
+62CF3A51C5D5146FB03A890A41704BE8B2A5BEC2E40D24D3D07F885A5E72534E
+B7121357D67C536932294A23D5852E01E96186A53E00B8E716C0BC3C1478605D
+0200F04E18C3E3CB16443BCA4C1A27FEB8288337C14539809158C7C8F4275804
+5A36CD2916707915B64493E1EC091969065506F51315574BC9DF6BED10360A9B
+6D974C6503808837858FB1169958557D6DDBB0A87DBD140DC41313CEC1F62CCA
+B0FD5C7903D21FEC65A2D1A8C2BF02E325F72814540074753007F023D35B8851
+4DB1C3E84284EFDE17318BD88C9B26F01731BCA5244D41A42202426136A16595
+FEB8A4EB8117C0CAC9FA7BA01328F297AC0454F3084DD4CB567DBD69B6E34280
+0D876D1F6421399812667159433EF74AF80784E735FFD6A2E1053AA3961F1642
+8C02F03B072F5FD9BF7048CEAF5C1279F1A2D02433A6BB10EA5F6A8D55D31C26
+D79B4E8ED2395213DD8172175EF78BF17D0B485C8B1A3A9325266FD0BE3DF56A
+87E185CC489B71D1B663A4F0703EB39EA3C35B1FA0DD87D458439A021DFD6A44
+D85B6A1EFE74C3DA84C736EC6D856B9DFDAAD273FBB0D260E8896AA22CC0090C
+512F9F288B0A6E48860E206997C0FA2ADF75496668C928D115E8CFF0E1AD0987
+94D7D39F70B3F8AA3CB385736B0CC43F5BC94EA722FCBFB023BFDD193094AF7D
+DF86582BD7BE6E28641A51C3B0839AD51E67CAEF56A2BC4F416EAB0BAAC1BD45
+0B0B129C0923C94BCDBF25225C8DC8DD606651010C553954943CFB77DE8CCEB5
+582C22B1481E454E54DC9B09B6CA1DEB4DB509CEF422181052359CA7C3C7F730
+3CEF7279DA8A60A0C94FEAC68015B49D11C8D40E5FB4A51A47A66410FD09D0BE
+D1C7E6E56B21A1B2EB1B6196FBE90565AD61783EC94350DED2943747E3E9B06F
+3182784AB475D68B0209A26C0AD2CF2212A16C67D8F1A1D86FC4B498951E832B
+DEA24F31FA12A223EB79EF92FDC970F6748AA9E013D4DC7201D8F88BFB77B0F9
+753CA90CB1B2B4BCB14A8BBB973F3CFDFEAE052CC10854D6E3B313D1BFE4BB84
+9FB46EFC8B1B495BF310C71FE70161F8FC2764F50D4F3B40E46CA8C611D92EE8
+1C8537D05B7D26C152444A9ABEC2584EEC53A6B9756C1E4A7FA039A95D630B3A
+08AF5422FC5467FDC19815C85192D25E312BA8C8F199558C3FC6CEAC58A93111
+971BD05B479CECE5E6BBA3F1D091A4D90D9726AE442B8B9A247752E7BD275BA2
+688BB258BBCAE3FA068BF1A6AB2A3F77CCD0F74D2D2E065000D76A035473F3A0
+2FB641AEFD66B47224FD627F6D71B52FA128C265D2EF2F4CB906F858A6649480
+4408C08A280B60299F47A2864181F8175975B3C4104E76DD56F421B8BA46F65E
+0529976E547492D6003CA4FAE83CC49A974680272C56DF3EF330EF36CB1EC6F1
+1AF5B3DC179614C03BFC4D2D371B8C9B164BD657FE1654B23DDE0C5891C9B526
+3337A73C627424E26777ADFC1A057F0A3F1CD3A302CAAA775DCF86A5C6694709
+EEE972477DBBA4B355C8F74583137D90713826BF2FC2033278BA08CC29F56E01
+797BC9268469C02C25E3DB4040B3CB3A3C039C7CF866F99E79828568274740A2
+E420B2AB5253DABD1DB7FECB45918DD3198FFECC2324A167C70B50A3840FEE25
+CF2D31A9E51B7AA2A565D70DB15A886D69C98168A0ECC3206DF14C9D57725F76
+38DEB4A408EBAB266063CAE2C553B7204EAFA4BE9CD648B695E53BFBA7D7959E
+5808313613DB8E69A77419C4F3D232D83950FE4B9C9B6F7C6DF21AC2E06951F3
+DBCEE07E169F0A27CF0A8CFC9451AC82DFDF784AF8626B8C270A2E9C68DC1E65
+67998201CAF26FAFBB5F3FC338712AFD8E405DC259053A608393E9BD62843EF2
+7E755E804011C826E29FDD23D18FFE2679F2B86B96158C49368EABE227F81AA8
+2CD5330B8E0ECAFCAA95CD6FCDEC5187B1CD12048BE52E6E5B14CD4EF6E2C3AD
+68D94EDA110EA820BCB16D64078972DC0AF8428F2E11047999A2FC703A43E037
+7B75D090B19C673FBA1172596A9923364E981782461FA2A343BB7AD7D0BF4006
+EDB7754460E35ADE4A36107257DD67D7CFB47E3CA40E443E69FD0A01D23442AE
+1FD1E01B5E1D694E02039F8ACC09AB0953149B5277F7558BC0DA29D055C13ABF
+C95BB48DE3D37516DAC718E600356F6E8DB52D34F8C61B5F1054B09A9BC6DCE3
+19A6E5BE438BFE77DF6F10AE64426A0466F3021F1C8D8587AE6EA179E313A4D3
+33D3C7B27D7363589059C9D4E2ADF48D4BE3E3596E3BB976F404DBE848557C99
+241B5622D6C5A82D5AB2F14A1E45CCBD4D9CE76E71DC60C48B380E3C6CBD43E6
+17E6CB3E7F9FD7D351CB923F31D2F2E62465D4E6F52ED4A92E790836FDCA3E15
+B2ECA5C6E299C7953B52BDAD34F83BD906EEDAEF75EE1B0E7D04F34830E355C8
+A33AF2FFA997842269FE27C371B67DE245BE752846A3D464A482A8A826AE3BE7
+90A581D6F3869C932364F05F725B3AF900C84F624FBCA39A6A4C33705187B78E
+B1679C1212C7F76F848BA0AD698CF09C16CE59BBC6F2E88E4B5266B9F085EF68
+23B8575669A1CF1C1EC78CCA692BD0F8DE5FA8E78CCBE9E2C354165CF3D94CEA
+B9DCD3D3385C7DA5BC5181A8B2D21D99793B5813C6CD5D70B059BEB6A74AEB22
+2AD3DF009F4A6AC7387118B076B215A5775DF813DC3A8E2CCEEEEC78842026F2
+CC23D7FF0BABACB858AC1602D1EB4288CF072099933DF8218652D5CD8CB90E49
+D28BF2D863E6B18E0546AAAEF792D11378A2EEEE1CBC48991F863BD4D0131780
+9D60A2E48365AB9531EDA5AB782AFCF63600FB182FEE32E44F793B911E57AF21
+F3EB9903AE6B1C99B6AD9CD9C35CC6D37A855B257A67277B584A2279AF960E12
+BC9D91DAA0AC2BED465F05FB8395EBACA8E12058CB212CB5297B427E7F0DDBF5
+B36C94AC8146FE11E04F7C76DDCBF5D60DBC5B7505B7AF9E752195233A181E3C
+709F30C876DB248E994AC297E749E7967165EEB2E8C22CBA7095AF6F0D1C69A3
+DDCDDAFCCCE5E6881477B17DBD11D122713C8AB3625BA04DBE82C2100095754B
+0D54706F073EC2B36ED0A3C20B385FD18D54BA3DA68CF55912583950413A7829
+EF03961D9CDA08FE17E35EBE6AEFDE838939625C6DE3F05F9EB7CD712AD98AC6
+876502F8F5A9AC56B022C62F035CDA2D9E21B66B36D275CB8B10EDB611D5A451
+4591A77E3E0550690B9CBBF92751AC7C293EF7F6546FC2B9AC98F98BF90783CF
+37059B75A97F4C04F5EE6341ACCD3D735C8412003EB0FCD5B5CD9C29E3F80942
+3D57A5B248CF0C77D77B657CF020EDA6D544D7174118D78867F9B7EAB63D6E9E
+589AFFFB78BBD24C27391A7512B213D06C3C29F498FF9637DD68B8F41946FD81
+0D3085E03538CF640A216757E606911374F00E20FC985DCFD4F3A96C018285A3
+E1F813C18B0CD09AC297491B975C8EA72C41AAF9BFC4B5ED99B7544F64C5EB0E
+6E1793322A8F9F10EE32D615B28536022D722B752DD2056B98DFC8059766D9E8
+9A2D53F7D2AC65BAF202696B48310D15A0A1A28A4A5A915DCFA5BD0347DC7BFD
+EAFF1CAD1742253D45AE5B0EDB35883DFD61BEA785568793BAE3FDE01371DE9E
+2E48D7DCADF50CEBDD552B7D5579636464A412F9FBD1DB101A4DE1852DE51598
+2CC4A71D227163FE5E819813B574E75A7C222DD7743F63B1C13659FA90B8EF31
+E08B431C2A81EA9140A62309CBA881D40F4248B281A9850159A85658126918EB
+2CB60EC41083A46F1EE96735319E7A351FE562AB430E92032732EF822C4D4A08
+D08ECA567108EC02F55F509EB0FD04EF59197C25D427AF8A62CF4D32685E85B3
+B89107DE94DF057DC09623F4794EC82E89B262D56956D72AD00961CF3088BA74
+D7B8BA0591A938821B6AE10AD83F773C859238959B0D129BF1B38346016E1C00
+60C616131BD52C24DE6D54A65F9ABDD1F46CB10DB97F369E9EE5C5314A228DD2
+EBFB4B543816AB8E6151EFFFBE5B3216B7521EDBC41585CD44ABC8031DD7731E
+524D1F2FC05A6F3AB90CE2A31617A1EA32759814DC9569FDED2A21D4AAB2A70A
+C56C54737703F9CFE6F208B6F983615935408692BE6828EF591C334CE44848C7
+DF14814D23648D6B64B06BA028E78E76CC820E95DC3F438B20AF3C29881A5CFD
+F0DD65608D0BB6E293E5CF7A5883C78DA674316D2E25B19A0BFE0AD330446C8D
+E97C4B480F0752D6C9E149074F5770769C4A2D184A93BB9896A9E49BEC7B409E
+FE893D25C00BC520CFB7854C78ABACC69CDF7BBCAB772C07CAE00B35586CAA34
+283E47AB114CD8A7E73A9C533A2D439C3C81AB235315992D361F1B700F37ADC0
+987B237326005160156EA50FE51E85CB923D599C7530EC7017501EBEF0836146
+9BE78FE7662E22B33393E12A185F0B444FE21FF475D4C1815C81BDE22169A7AC
+A230F97C1891DF0C47B67476817435A23BFC08173E4AF7BC070978CBC56F3DDA
+1819E27D55DDBDE06353C1967D19DE3B0D520EF3DDB3EDFB77C8F9A2B4CC84C3
+4B2F59F66C7F53BAF54D59889F93B12E280A4B3999E0B8E82DB37DB5823A0BD5
+DB8F7A2FFC1EF707FA033C2F812E6112105C7C863C5756A96ECB6C975E8A92F1
+AFCFF32780BD2412EC862EF35CC3741C7BFB75E81261B2127E2544238219AD19
+18F58B2D1AAC9F80EB09BAC13DD49DCCD05ACCF7E52B224245734EB121EAAD44
+7340FBAE214C00752919E18AAAC08F6AAC7BE864C1C45B1C94D559AC77FD4A23
+2958D6C0226BDE87233E08407A012C28A49CF1E73D9229AD507FA80CA7083B04
+FFE860279F95EFA4AE717D8B455F9860DDD1A06650F90ABB0D24ACC4E7F473CA
+2A07364A5F5153457E15AE2B632C8C572C1CBABF3E22FAB66B57707629041AAB
+86DF4E49B7FE63F81DA47DDE578F89819F5F239CFEED2CFBDB1E7776B0A888E5
+8ACFA63577CED2FA8FA555971D7DCF216C65A5F1639525C47EFBE7485838F3A9
+4D8C010DA35D0A2DCA16FD4F1A6A6CC5E093829DFB7845836DFA5E09FFC7CE18
+04D122F7763CCFB1962ABD85F920358FA407277DF1549DB1036FEC7B6A0B51BC
+04BBD124CCC7432CC9343B810708D0CA4283747949AE675BF98FB653F919FAF4
+FC921A6C2D08CE39A0C7F7BEC6F02A8A8624272A63E4EC1BC34A630C133EB557
+FB29E6408EEBE0A1B92855C9807EAB6159044E9D21957828573624C95B87B46C
+4EE9C54BA968DA967FB1A6D8DD448C1266EB11A2D10FE4CDBB2C9BD56E55B220
+625EA903DE7C516F650158341CF3EFBF3DC8B057B198ACE3A8D51609F2C18405
+7877CD55B071C310AED758E83BD75FCF58110CCFAE5A9AEB8B0C504369B44FE7
+4657F4B56ED3EC2A405BD1057C675F5D15F129DEF766311C8D8413037A10AFCB
+119C50CB15C5AED588484FA10A4374F9D583D797E8751E75C506F13FCC180F9F
+1F53BC34916FA89EF30C8A061751385647EEB59C9DDA8DAB8D065DE1FBD91235
+2ADF968DA21F05395EB4B0974289F9E317C63FB43D3CD6D5B23CBA3E0E851579
+668EC8A36052338532E2A7AB5371DC7CB62E949F31D5009CB12A2FE07C3C9CD3
+969A1002C8E2EC70B60488BF07509F42D865CCC60EEF1E4E550CC9EE4B923278
+31F80423BFAD0DC2662DF2411DB4C09D04AAF096E8B93ECB9509A00BB65D5FF9
+7FE01D9626A813CF5EF033D33A8DD07B72B08877B61B6E6CB1F190CA41C25667
+C5EF6191F8F4C5DB6C5316189356899CD5D404EBC95D672AD6B0A71AE190BE8F
+98F3703DE9D9929748B4EBE4BB5D0B5D45467C5EF3AD14646F58A26F92047E83
+3666A92DA282C84432EA34A636BF9F86A5200521095AE99B8535A421E1855FB5
+4758FCD4CFF06C320460C587F2CFC25628BE28A9364D098B19206A1B1F138C66
+8B6D27C8DEB4FBBB7A71304BA32FE203EE6D9FC2FA74DDC8CC71EC6012B34172
+E2679BA9DA0BF117B7C5E654EFA67F4CA610D25EDE93E65783F7CB54932F0709
+EBBF749E72339671348F394B21CD1D02039AFE9AEDA238F492D525F32F45A689
+C0FBA9EB124F5D5B805A1D04739A383F144F3C1682F541C3F12EBD8256F58640
+CC735DD05AAF3B3640713EC3D75DC6ECC5B0BCB0B4A918B1E2F7C062C71729F3
+81BCA57AD5DA07EBA5D3066D0126809A7AB9CAC1F8E2BA7F30325B93509A1141
+3E27B678DDC532A8C2D9B446C2E53787A4A1528C5AEB548F7E90618C16186A02
+50CD51E0413C0CBB8CFE0E1C34F4ECBC4D09065394BC0C497178FE730CAC5B8A
+92B6EAAB8885899381656D3ECA9B68B82CB9AF7F7DF4D194E360A7E71C756B4A
+0F1F50324DDD97A835DFA650998BAF5F6536F70A7EE32C3A4290E58D077AC73A
+C6B4B14E6B76967F8998DAEF731C3077EEAEF2057C61FB696AE73809A43AF91C
+2FFF81EBAEAB5D26672AC1C0DF9D06B7E4AFFDD122BE02BC03B085026F4BF3CD
+EF5FE56DEC0A53A384F8267CED47DA569AD32B9C496B4624D8FBD35C2854AF0A
+952C0681726B04B5E8313EC9905FE9935552C5144E8724247D99AC40309FEABF
+062CB9DBB8B16A161CBF566A26948E335179D1985EA6D0474D6A0C7F27CC0AE1
+5AB7D4A416A90CF4E70AF62919EFAECAC4A58EEEB39A7F899FEA55B66A3FCF92
+CF997F4A56036DC1B1D5DEFE6BBB77B28AC1AA18EAE16BCE425A259E50413D7C
+080C4F8C610DBC1860B142C743DB386877208B30A56A95A1D8C8CCA92E134EA7
+2D9976A51B637EB76DE1C970507E8F92B387352294020E7372A8A2270A313625
+10B600DBB1EE025D74E74E081C86734CB0C943FB756A1A42FC70A2479A730C77
+31AAD98AD145E40D747FA4A4F0AB20F43FBFA012DE047864979254C6F35F0B5F
+4CD87DBA07776E72819686A1E03A65DE62663F79BBF4CB927059D2D5FB0713AE
+DE6363EBCE4783FDE377911D5025DE4DFCD2915BF14909FE3E56EFA04D891D50
+29EF3AD5C0BD5D8F8D89646DB3C2A5048A4C0A959619166001BC0F55D3664B9A
+4601360BABD3770696BAC11A0C0C8CA6FE86BCB49B076F14FD620DA63FA391D4
+B35232B7C8ABDA6590D9FA74181E33233131921EC21FC697C2CBF35F2A6BC43A
+C353E8EE8F765193EAA84D771382F4527B6BF63E5C8250EB1662963554AE57EA
+DECAFA340119D60D1CC708F173F44D93725D4399C0A07D4BEEE0FFBA24176DF9
+04C779D5F979F74F9DCD09BD593A7DDC3F60E42624CCAE1BE13061BBFA74E986
+054CE72420CD1A431287F27D72D65F686C08E5BE62F102994C17483C70BC694E
+BF65402AAEC3AED5F53B4805EA6292E71CC72F507C653A77920EB79BF54F62A6
+BA707B37898C7CFF9D81159CF59A0D3A19E31E84BEAF749BDB7D405A547BCAD8
+6956DFCD3DCB292E97C40897337789B2D0DF8BC3496244F055D072F4C15463E3
+473E361CE8FA00820298910A83867E869F9762D7AFE7DDEAAABBB6BEC1E4EC90
+A95963863757B10022F388CA4D93546A46C6D686161D752E04143036B03A6C57
+51704DC1F4EA41FAD153FD167955B518FFD66DD9E033F1D03BA3BBACB986B3CD
+468A850F82FF7508262449714E080395E1FCDFE3D3E02E25F25FB10CD9D07451
+E75258142AD8FDAEFC93DE1F9A56C2950070D40F74876555A1E796F983029FDF
+1ACFB74ABD
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMR12 1.0
+% 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 (CMR12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR12 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 40 /parenleft put
+dup 41 /parenright put
+dup 44 /comma put
+dup 49 /one put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 55 /seven put
+dup 56 /eight put
+dup 65 /A put
+dup 73 /I put
+dup 86 /V put
+dup 97 /a put
+dup 100 /d put
+dup 105 /i put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 116 /t put
+dup 118 /v put
+dup 123 /endash put
+readonly def
+/FontBBox{-34 -251 988 750}readonly def
+/UniqueID 5000794 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
+68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
+3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
+59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
+51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
+DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
+AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
+45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
+821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
+96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
+9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
+26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
+140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
+1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
+1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
+377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
+0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
+5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
+ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
+FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CD89EA365D66
+6597888FBEE7697D11D08748494CCD9F111E5380973555699C14B4E29777686E
+976B16ABEA08B97ECC12F6E1841F26944CFCD8C3D460C13D29150887BB5EAF74
+06C28084CB0466269BE53FB228427365343D9FAF826069F6BC5D11552B4A7C2D
+57034DFAE3B14808008302E8A819A7785281FDC52EB0726D1661A9B7CCC20012
+AA8109ED9B3B35ADDF13323D3667E55231EBCD108FD91159E650AAF58BBC60B5
+FB01B79DE87AD31BC24E39307F159050655314F8BB2D13816D9FF5E6F68A5943
+5DF61A695E0B864E8D28B2E44B50A87457E8C022914A93D4AFD4CBCD987ED9AD
+8C2FF9C9D0B22C5809B505C6FD4A814411FF5F03EC9B4D07BDE618D0D71EF525
+41B8FA15E8CFF6320BE8F21C607C1872B5E23AE5D93C0903DD5A3CB38F39876C
+A574C36425CDC51A0E8517641DB5A1C31E47BE3A437475EF47E1468415134C35
+489224CFD8EC048F5501AF4290CC7CA1D6B7CBB69C3D009680201C88A1388E4C
+5772113218F82C0653C9E293ADA8640ADC0B24CB3EB394B5F19563D68D2C6B10
+65BB5AD868C8F60679FDF13DF8DCF6EA9F14B17B69D5679D033B679AAC1BD791
+706138C8AC24FD88740B3A36CD29EEA357AC8F451E89D61CBCEC20A674A99F6D
+E5FFDBA07919BE9F8A4646F04375D2F4125EC632CF6B9964E40F9BDB540AA802
+6DCD2340FBF8C61E0EAE9D27F143132D20E137FAFB154FA762F21485BDCC6A79
+7EE4CFE50F40EE4B33869FF19731C323149AEE7118368B9804742DDC95FF4E07
+8A7F46792AD451DA149066DE18E9C52FA5DDFD04551092FA9BC903D706DECDA4
+64CC00F3BC0BF1720CFAEC842EC091789D25F77A39A7D0A18D62AB435449DBFD
+4C2279F7D12533E6BCB16220C904312307120122951A49FB48C901F63FD43598
+6366415194E2FAEE2BA15DC54B2B4BA12D5AC58D2EB93BDC198E99DB0C922C02
+1697AE7026DF7A5581D2093C58F17AC62143C8176F643CCD7D3B02A789156354
+BE8EE03594EE3129C3C267B63FC9464376069392A5C257F71FA81B2044519EE9
+F2B545CEC68367AA414E8DCFEC27AD4D3FAF1E33ACF0BEE4367D35B05AF25AB9
+4E1F5B134C94319A24AB9157BBC2F30CF104AB7BF637757DECC573F86D9F4B94
+5036E57D1175DAF07B22A0334F941D2E4AE4D6650A779DD93FC7158CAAA8D78B
+D24AE1239548342CBBEE8BE88C7C01CBE79325F5FD56000AF2C863B4F2F350DF
+6049D82CE7DFD629D6A1214D9756B82139925DEB9F09717216F920B2AA5E3E3D
+0B5D1E6CC74AF908F320B2796BFC10A8757A09C856AF8ED7AAF33DEBD372F479
+E0B7AA1D93C7A5285766E9F5B433086B10D05574EB0C6CB34B47C966511A5412
+67F340CD7010258D5577935EDBF449367DD037B2B720A43B86E50BCB74ED754C
+233654D6F6B54E7169E3502133A57A1B86A5DE4F4A602F51C456D87D0296CEF7
+11ACA957CD5BA537C31E5F9C76704444176ECD9672FB822A1476DA053CA349F1
+FDEBAC9938BE92DC6B74D7EDB6DF0FB26B4C780CE8FC72653B3CD36F210B3728
+8CA0ED1ED963CD38FE7172E867D6D0B5714C25545144CB8D5A47C7730E2A6626
+3C4CF34C3207093633FB241D1358A155F4CBCECD5293927E741316344BFD7C18
+B8A2F219381E0409D5B8145CA7DE78870E0DB4B730E6362E7430E0B59C9903C7
+B795672573CD416D8E8D0135D12B096132C20F2041C665E6CE206FC085B91144
+8A66E760876D7C4047A8177031C446C2AE7776B57286FA797502EC7E988C529F
+97AB9F75701DE4EF62F7F78014A4130F8FB7220C0D781CB1DC7D028B5CCFEBBB
+7655292E21C64427354452EE77513492B0D239084E049A8C41F4178B26D0E43F
+0059328EECB38CB250852EA6796EA62F0D47FDA68AE1E2D8688D11BEB20E2802
+4D4F31BBEBA0020675E7E870A4D0DA60A2EBA743F2304D18C8690AC7A5AF8C30
+BDB31A646C101FFFD11396F05F066A99AA3F68E5F6DF3D1F88025632374C650D
+888D516697E13F1B5DAA9CF1BF0126FC3454EFD8060DD080EBCA1F0DCB597C8A
+4E28268AF906836C6C35AFCAD59733CD6874F39829AB750B17DD4EDB54F51542
+E7AC752E9E77DF08C5692258F81D8035DBE785309E86A28BEC85B0CAC1088C5A
+5911E04B045E757DA8BFA4A25A19F63A3C5A52F2CF59D073AE8DE0A447E66B81
+78EDB5FEC38828E1628907FA60543A2A8440E47144E4D0D557A808202FA610F1
+6ACC6B70D12E4F727BBEBBAF5E80CBA6DFC5ADE66BFEABECED6D1CEF6350B8A0
+27F9E4D4F72E2B399030443D9BF26A2A7E390AD362334AF83F69828E0CDE0CC5
+FBE9571E564881ECFF084FB698A868711C57946CEDF1A41AC2B30951A3E3DA0C
+61A0CCD63A1F9384FB91D22CE26D5C0DF094D74A4F160C9C9F97C0740D564B3B
+ADF5ADD62C66B246EBFF64BDD7BB98830D84A05C215C2E6576261869B77AF0B6
+ADD5AE88F67B98A09DD158A33024797A7B81A07ACB2BB469FDD500667AE52324
+9EA6CC14007CC40364F22CA9916154ADA66758CBF7C9223076E0B1AD4264A255
+07233FF63D9FB0FE6D9826B67EE999FDC01FB407D7F8360D6A772EAB70135D8A
+F95EE713CCD60FD25B6FA7411AD7D4E020AE92F6F37D6233B165961FAF788956
+3AF21AD5956DA59E72C1E0C48BCE7CC6A91FED1A48731775CCEDEDABF4FDA62D
+B6434842EC525265DFBDA9CEC97F4D9ADD66439247F8C02983D848197D068D86
+BF1DFB709DACD35C11F9F46EC448DF806F1A5DC1BE2F63E5A1C43364248F519C
+345D8FD20F147517D94CD5EBD1971E01DC89D0255F0A9ED334B3BF9ED55BD7AE
+8D68D874104FA1FEB1E38CA037E1DF6777DA5E18793A9307973007E1D744D528
+CD01AE886DF67B10BDC34F34B56A2967FCCDE97D4F59062430B9300CCACE5168
+7B263EA619A433379D360057FCA0B77B47DF1C214C0717770FA74784286812A9
+7F49B2A5B1D0E7D9F9843B65A53B2410DB07D87DAE79DF986BA8C793A4E78DB2
+8CFB38432C69E0AB9F36F1E92A7AD1831E939A6060089A0DA72A07CCA5E70951
+2A8A01E9C42EA2BCC37EBFE9B51E45BAD5D0915C16554ED974F502869758E2AA
+7019EEA1F1D3C6A797CE54CA16CFED98B7BF66983B2E748E4D0A6C6BB836D247
+2884AF2BEF50D6476F6012888C2063A8E29757FA35064AAE5C9B0E19A518A88D
+5C3E71086E71F08C595EE381B32F47C40E956C4E430C08186A24E55DE624EA57
+58814813D5DF9F6D6DEC34FBE9A8BA95FB8263225E99E9EE242A2B7388EBCD36
+D4BFF8FD4D3A0097ECC725EC14D656EC2D4BBFF9B5EABAEAB9EF8D2F141AF642
+F57AD2A651855F093990027175C4C830472689E412348716F96FD43E1F7FD4AB
+BA61DF81B8357A604E2024A12A71472AB2D058520FFB6243558E278CD362E4F0
+C892D398750673CF2008A0B7484F26721F2936FE4B8E7CFCB5A6E5BE0CF87123
+440D727379988FCB3538AFE6FEFFCD45F8BE097CB4D35B9F77E2E3DCED78EC86
+3EE6F6E5E1EA578F58D84FA366694C39D9D4B65CBFD2215558D1FC91B413EEE4
+BC2FBB41A194F207F4A2B574B98482E1D51A3647A51CADE6BFE9274B3A8FCBE2
+0DEC7813ACEC9676E39A4BF684ACED156FEDE5AEC1E285AC82DB238724DC74B8
+C541A65A1F39405CD4F07761A15117B7BBC3332D0012BCF8FAC232B4742D042B
+1340CD41DBAF0C13E5AC324B72D2E61B6245ECDAEBF7375C2E5E76F3D0BE93E5
+743201077A1E8A60358B0E9ECE2EBE807AB7A74472FD9CC9AB053404FA545E48
+06EB141C43A00AB036A02B2931D0EEC160A3981E2A1E7175EE01A88AE28B852D
+6EB9371092EAFE3C9780EF6C39342A3F87424454D9EEF0B01B437D6905CFA707
+9289BCF656A5596DEC4212101E566265C9DBB68A1C3680E8C26123375B0FFFA3
+9C87CA77A4D5B3D83923C6BFC68C4EF937913B70AA05F7D19A9B7DDDB37F5240
+2C6AC125B9025564C20DC6BE183F38AAFE2110AA28302676ED3FDFBE0208407B
+A8F618712BC1612E49E76CD6FECD29E19ED244D3FE2BA42FE803C17E5B0BADDC
+9567CC459A584A73ED123BA921AFF720B4AE5231D465C1DC0D79099CC06F6F63
+FBD5D0C26E399FA45A18812290EDF874EE5382B2D44ACAE6A39DDEEF8A522577
+80F157B13886E88F9B21ACEBB6B5FA954CB8D170DB9A0039D8115C7472395FC3
+200BF39367FDB4E6B4B016B54138BD84AD848A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMTI12 1.0
+% 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 (CMTI12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI12 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 74 /J put
+dup 84 /T put
+dup 97 /a put
+dup 100 /d put
+dup 104 /h put
+dup 105 /i put
+dup 109 /m put
+dup 110 /n put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-36 -251 1103 750}readonly def
+/UniqueID 5000829 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DBE5BF07B2E83E66B7F97DDD7CE0EEB75A78BD9227BF359D002B6ADB
+8AC57A33FED4EF021A7085B1E2B933DE602F0FF71467ECD501744AE338AF29A0
+26F7D368AC6F25CCB882DB7B7343566192BD687E1349225982823027D3B66703
+3B0DB7A7E680A682B98023D39C7FAE81A5D5B867A0A66C8AA0DBC83B1596A84F
+0436AC6A7900B767BDCCE0060A4811003C79FDCC71D73F7F2D0A6675E93AD21A
+56B4CD8EF75EED3DE8C0A18BEBF7B9D1BE72504872D56EDB272F1E97FC726CB6
+68C85C713059DA19F6C2E0F3E12710A59B6FC4699AE883DE8C8615B7292AC25C
+D5714B6CFB14EF0EF11EB13009BEBA4F345A5D3D6D9926ABC2BAD7DB1328651E
+437BFB3C46DA7B62219660FC368CF3D3704DAD3AB461C28F711665BF484BF61C
+052093D231CA65618EA463D63E406ECE858D180A6C0589B2FEDC321371C28E77
+DE974D655DF5FF7D41ED01FE717D928A885F6FA6CFE4D2C0807F8E7F937916E0
+96EDD1A3BA67802B1F4A49100E75613BA0356D9DCBBAD4DAB3C59E70A47058F5
+2163D1730F0EE4D1F87C3A4AE723A23CFD7986FC4FBD399347E9F5946354E013
+D860FC446AFF0B0744F5DA27CC777C96ADB388D1E835DDCBE123FB517679B9B7
+EF696E091A9D51510BE264701A41C04FA8125A48F306ACA7A83E35D5BA0C296A
+BC594ECA2CB27E92FED95B595C21E5BF0DA724D40761CB377BDE5FB98C9D152D
+6C0DC98C4083E9656321BFC445CD6FCC142DEF16E27DD6FAD0B3185223B1A7D6
+779F39C70793184F2C3B721FD0AE6D8E063BD47804785DAEA74AF8C75483B713
+650616505371687460E2D9038B305DB2BC67F4862AF6C7129FF0501771532717
+4C3256B4EE1BB0DBA3EF30ECB88674BC82BFE5977520292F5EFBE7E9D4936FAB
+8F6C13CF280C672AD2B1337BF8CB2599CE823F8E6CD5BFB6254F0A4702A1678A
+802DA6683619A54A61CC12C90EC800E0A0BA6D25C5EFACCCBE33FCBA714A2D4F
+EF3C059D73126693616D84739B43CD8BA961EAB47FAA7554F2BE4F68CA36C444
+46719F88E4CE4766732DD875D9FE25A7D78E22D5715F81CABB0532C180A46E55
+D174175DC3E7930FDE3BFA627DD126C23FDC769A556639C372BEFD5D0ACAA13B
+D42F1AD041097FF8E9640213B56DFFBC8622316025967BD9E1BBD377F055D87D
+3C1B26EF3D1D5E841E4773883C10B883956BAC37027310A73A4DADFB4D1D00C4
+85240918C979AB1814666491C6A51A228FBEC2CDD8E506337D57C50AE84E8E8C
+BEE28B994CF899169F59D78BBF9F8D3CD949D9DEB99C67C1D877E8FF3ABBBB87
+C6B3DD3F403A791EC8120C7280F321B7C30427C708BA5116D07E7FB8E50FE3BD
+A4BB7A9C3C3E4E8C3F775EF9FEFE48193B5C6D68FA3BF610EFA4C610D17FA485
+2E91A35C2E5AB2B89BD92354FCE46504E85464D9D00C48BB46BCF0B97FCD05A9
+6C9F238CAA9A6809E0C21C8BD69AA8AE4933DEFF3DF8FFD475916EB757DD27C6
+E37BD51AB3618EBBDAE01DFFAA55CDFCC8302C80737D8D9BA410B091D7DA112D
+01379A45889C345EDE79A38807211F9DEC3AB689B0804440E5409C502697960E
+5830A83EDB55014E5EB38D07EEEE82B638C5AF5F943C6033B8379A238D8DC680
+7126CBD5F9FF7F4FFB66983CD78861E0D67A4303639EBA2F3A487E7CA51E6B68
+07785089394EF16AFC91FADC36B9275B7A979C445FE3654BE3BEC459DBAEFF97
+264E35C9A262CABF33A1FCAF5AC9F00AF9495E8BBF1FA3F98B77A1845B2F128C
+BFD7F1EA9068E8D5F27B9EA90A747A250599698E6A15346FC75F7238554355E9
+B3343485A8FAD7F956F499365696E9B291659C574A6B73B4DBD390475D152805
+BCB63C568C36148E8F103FA5D33D60166A349E28E6A080CB28637B16C69CE068
+54818818132F81DC628CDCAAF7AE197DF86792F93C129438875D930A87F92E0C
+A2AA2A1679A3A5636CC012D76AF7396CCFBC4A8DADADD125053F100CE10F20AC
+48C4FDA6CAA1BF2BC5815F301FC7C070CEC5E43560D1F5429C06DDF1AD745DE6
+4F63FC646D58A859C043FE921874EC4C8E673D088199622AA5D98CD4456E313A
+09DB6244BF5B33D2BC564158226A3685FD348E02B01C41CF2EB33C53BE4008CF
+9A40F39884288B6C4028E07B2388F1DCFA8BADFA66B2E93774A2C87D28D9724D
+92083F77EA0B0C5D3D12A02F4E9CCA36970416C6EA3AA12A4933B297120530FF
+3C21717E28E2DF7B743D350175594181BBE2E6282B5C63F9D498F430DCD0067E
+CD3C1510AFBB9D365EB86B49501AB3365518C133CF003AB225CFCB4C69BB9BA3
+0909C950370578640CC4626CF62D19CC7CB8E2EBD765FCAD7B027E6267171E1A
+90C0CA38D8A602B0D4F5AFF17436B2E0EE4BC5AFD16A2BD0824C4C4BD62EC037
+1A19BDB45D3397511C80E0CED68585EF33A1EB365E3725052B3D22C13C69B9A9
+9EE4D4405187F0D735F83EBB497899A9314A9C0E2DA39479693A46E9544CBBD0
+5EAB050F2BE936CDC7839D81848AFBBDB33A04E36F9EF5786D5B218469B60EEB
+DFDB516F4B143FA062BBBC79F400E167B8EF1FEC982335BC613033ADAB33FA9C
+9BA87A75A9425765B8A083A17C8410DB65A28AD05BDAA43819A41E36219F7CFA
+E4677E12094FEEA8FBE477B933F8774AF123B56522285316C1BB4E186A245DF7
+33D3CFF604CEB363004A57C83582BC6C49ED22C3871A5214BC8871F4301932D4
+B14D0AA0FD29F4648D8B693D02FCF52A450AC59186779E886186770773FC17B7
+EA2D197D7DD27D99A050C3BCD41FE11BBAE3CF0B390EA8342AECC92B4196D349
+E9CB433ABD8194603AE9E57251AB773248CA678FE2E17E8482DC56D4A260224C
+74772A3C15232E49E6970BF91E72DB6EB33C8A67BBF61C381E4D40D51810D874
+6CFACC9ACDEC4AC27A66ED54EE57DA2659F4615CEA9D3F0C49129297841FBC6A
+6BCDC293F5146897782FA6368DE3A68750B03078320CA76829E6458C054A7EC1
+3A4B1CA098A224F6CE93BD8CA2086FC297AACB379D9B76BDA2D8BA455BFA729C
+16ED87B72C836D6B5FEFEB448E70C18EFE8CD3B1BF46D4DE58D54CB432954D15
+413B74819518E0043A6A10B62290D7BFDE27369702CF8ECB6D479C0C0C0BC34C
+E6342C3852F5A43FB54B5441805EA41AA28AAF4074E8A23F3583D5119479AB84
+FF3A3873E89DEB4034FA57DCDE2D4CEFFC8977F618E78EEB96A61A3F571061C1
+108DAC335BEAF3A4E0EBA8108C07F59ED5B667AEC7E974CDD8A129D582BA25BA
+6B7996CCCDFCBE9700627A8AD992E62F3E74CB3B80123F7B305B260075DE14C4
+DF2EFDDCA50F1151ED4DF1DC516862E5C2F387CF0CDD4981252A97C332747416
+C156681936E00160F90D18FD33A5CB097609E92A6A7FF3B234E935B937DDBC3E
+5324DF479A21A3E6642B106E1C7E8FB2DE8F06392B00A69718EF5A0017F08F7E
+9D41123B5C7C93AB8D47EE14F0EC352A4305B24C955C326CC6010D56E7A9C8F7
+99B638AC5779FA59C1962A4EE54BDE12E961AA2BF2F5DE964129632FC0DCC138
+B35E269C143AF298E1ACB63330511D22FC2830E00CF9AF14F98B1B02ECF920B0
+2AA912524E271155A95488C5397CEE349CFA937B61D64D24A6C04F576904CA58
+E44E10F66E87796BDCF0C5F96FBE2EEC08720824CF4F2FD0B6EC87BAC86A425E
+7E40BC5731F11A992927E13EB558071C2E88E0CC479BDE5299A63C70E5C61A29
+4AD4CA5F3D51D5271AFFC99BCA2BB97E23ACB09EE27067F32ACA6878F9DEB72A
+B4859BD0DB405CFB2E7C76B23FD1F9FA8392C1532C3A3BFE2BC435626C75A385
+5EA6F20FEB8EB8761217E83EAB713E2CF6B8C932F474118DF0CCE1CEFA3392DF
+8BD2E69C44BAC025B409D22BA52BB01F80D538FC4941670311BE662D8C830D66
+96707EB67B37AE6D016C63A4A603F1EDC05E9B6BF68414F6B3321E8980A4279A
+564B7621AC54EB62B83E441CDB10FF57E25F995D5F39787D4C6AB1323B8D98F7
+A9E8CF96BA2F95B7E74D51B481427A494534C4C659E6399011F04385334C9437
+F1C3125CEDFAE80FA632C1189EF6E3169F7C2CA36DCDFF19442582E1BCF022CA
+3C849114B158DA6CE131B7313E21CC53F9330B5D0BF2394745189B45B6752E2D
+90BF8459E377F14F45365AC45B2DA938ADBDAD1CB9544312D0A8921CBAF8EDBA
+B29D8C8F36F6660D65C6DEF924EE0566136E1D5224DDEEF67712E09F04E220D6
+CE4C78314A83C744B0A7503E1BA509B48BB1824C96A353AE74204E2EB4EA295D
+416F60A53B073A9CE0554A7FE5F4E0D92AFE73D697C6FC0F23ADB1A50520F2ED
+FE6364CD68F408FB06E4CCCABDD31040CB78CC3009D367CB11EB6CE37CE7F1D4
+79BD7344F9328379BFE0E66E5308ECADC4C68A6CDAB839B7A0DE0974DB40D0F0
+D70AA00785C8FA10CBCDFC54CC041402C659625BD7E8B139EE5652A1D165ADBC
+0C2E7168E66C7859BD059645F9568DF80EF69DF281FBF83966FD2A26A11F65EB
+DA0357DAAFD6F059E604A20DB1372B1F8BE94D7D8864853515FDCDB4AC3F6C87
+8ADC11925D4FA60BCD8CEDA711DD032046E0A67EB5D67D8D504CB6F2AAED9A4F
+2C43EDA258E08DD34819E0DC5D9122365C8D3699A08AA2C30261B5A7086E2C46
+A11678684EE68DD9540C5863F57D17074B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMBX10 1.00B
+% 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 (CMBX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX10 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 77 /M put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 105 /i put
+dup 110 /n put
+dup 111 /o put
+dup 114 /r put
+dup 116 /t put
+dup 117 /u put
+readonly def
+/FontBBox{-301 -250 1164 946}readonly def
+/UniqueID 5000768 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
+7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
+77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
+2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
+FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
+DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
+7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
+9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
+CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
+6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
+E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
+8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
+3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
+EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
+0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
+4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF
+1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910
+757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E
+0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665
+6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED
+E067598E1B8B781EB59569E3D0D54D8EFAE0F3EDE26279776ABA15341E42E636
+6E02817082BE6FE0B04249A4840C11F95F8ADEFF72173E9A5F2AB2F62C427E5B
+DC010E18641EAC906A5EF0F9BC2108062134A7F10956219C5847C0D82F0E8663
+12D963E012DF0DD899911EC5D8096F80B49CA3444CF1294FBFAB57DFACC9D01C
+46F3BA2F3D1C14EC30CBF83E5729F1C074D4F1665405CF54722827FBC24AEF08
+F6DD0BC6A79A2DB1FF539454E8F5D1A42D40CCFBC093AFD3E57973A009095CEA
+B91FAFD236C47F453B38DB0067907A28EB5E9ADE87A2181F1D6DE4E183631716
+C21F0F952E0666AC74371F8B5C888DC44FBA5607435A619684F502CF625663C7
+94B0DAA79BE8E129E7F5C5AD1B7495C1BC9B1C759FD67200DFF251DB7C95C09E
+89EA1F66EADC3439C72468503347EA1A45344A43E0DC78100DFE972638580C16
+F60E1CE273350076DA9B152901A965A8131B3E4859826310476781777382D05A
+089F2CEE01CF9E6CAB50A0E70CD5AD69A8E0A853C02606DCF3DCC9B45855AD42
+F3498EACF1BEF09BB4C2F62A61BB5B2FEB3A9CA1A4FD2C9CF6C898EE6510A2EC
+593B475F95543E0F853369B8AD8F8C198DD8BDF6E9B74745A5969D23D12C7EB4
+3CB5A4F069017F6F1309B1DA0F7074B7C0EF3570BCAA8F5BC021A509F222730C
+C663CD98B7460A7C92094F00C582E77F6E21A71D0C319A4669BC08318A12C2C0
+9A0F32C2954C689BB04A12A787BEAA03BB5B7C733B68ADDFB9D29590883C5DDF
+E84FA45316BC651D8791FBE9A538A15DE3F85B814C6A3D61AB9D446CF0D54C7E
+7AEC55224601E8C86FB1E7C1BC47AE55F1F237F036AC8E222089AAEED6F1825D
+AE24F8B63DB23A8D041AF820430E7DBD90AE6110C698B4EAC04469F3A19A8D39
+C0292A07C213AD813E59A651D5FBE1DA428E5FD6FD34403351FA666A3ED9C1AE
+CFBC3AD200383477D05545B04A54F9ADEB6A24588446552C30CAB001D5F9DA84
+FA530ADCD308429D1C54EEB0440C8089D9798640DF5335E1509C2F08032ECEE7
+5F1BDBE806E51B2943726E36EA3E0AE6D94408A45E5F6B12921B80696C58E82A
+6C833368D785959CEA4DD1C7FC20A138A01A3E6819B3142D1AD6B70413F8C7BA
+E252023E10A1BDAAF346C58B4793C95B9B3A5C4B690185D98D674642BEE73AF5
+F3AB39BF629B75B2364644179FF896C41FA4A58172E13CCE1066D62C283C7E29
+5FC2B2FE1B47DB39CCBB856AA8C32FF229317D163D1762A9310DC328787B618A
+F5129C3D4D75C6E9E04A4F7C45D9D0CEEEE0E084A8486B7A762E6F7318221795
+E54E9C817542114994D3061EFEB1563688B6E5F4E13FA39ED6608329028928E5
+A05785210D68CE37932210191B2CF1A8E86125E1D6F74FDAFC23DC075627E8DF
+08BBB5848DCF95714F5E3D342D714BC5D6571FB79AD261D88FC34E5171038C35
+228B700206E9ED2BFBD07D12F27B24B4278EEF4734FDE8E8807EC408C41548F0
+C54BE88003D9DFD2E14CF405E7BF94A21EC32967039EDBECB51D2673688707A2
+11BA4FA6DF12D3EA96010A9E82195223E10C613E5991875542D2A9522B4E72A8
+82ACA4ACE4D5867E1DACC4C9E6B32DFB5005523D422B6C37EA0893A51FF35B5E
+B07DC8D18EF0D564258EDCE00B038BA77C8D88C882E504A6B520A77A6E5764DC
+C9E07F02AFC1094BCDAD0ECAEA5C204BE7635F443FDFCA10230D639DDE47AE7A
+00798EB6EE05777DCF07135649820B434D67961D345BE698CB72106AB232C57D
+DBF37A80860CB93552546DC81540F09C7D3C1EA94EBABCE4F0DFDBE362941BBB
+EF7807BCB099BDD37A8C57DCF9CABA441B765DD1ACBE369D3AF97934D212DBFB
+9986EE6FBAB399028C1246C053FB216483F4F969F720774E6A704E86252D0288
+56CB882315C599D2FD23F3811DE53927056C452FCD5F8AD8BCB4E683AA5C2442
+33FD09862AA7AF3A755E4A06E219A24E4FE3EC39CC0727CED5DA6DD6FAA6814C
+0DAD0F66B8DF604DDA8CB9FC1FA343DBCCAC302D73112FC0B2AB7322F1E609EE
+673510659039475B03513A0851C55B39C1B54795AD6917E1BC4176DD0118A18B
+3E5E40EDAB971311830CEE1EAE515F68E382787C799777B64880CC3870487CFD
+76F8EFA746153647D4AE240E3F0814C7B5224A8BA606EF2FFDC0BAB88AF2C09A
+EE08980E3BD63D21D5E5E8F566AFAC1E23BA8D0C62579D8F697B0183E84A0479
+E8F44586655A84CDAFCEB3176DE376657A645E911ADD414379C4273429270AE5
+909C07B0896DEC9F403B3E8EBEA9EB22A6D937D387ADD9BCD2BC997F90E1772A
+842E98EAAB010E2BF9FFD57F6AD655D337132C6FC9C596B53B6290C12C531EEA
+C83A6B41B062A5E0EF4595BA5B68F5399B21ED762A2F683A969C2574332C9A30
+2EDE8F493E17F388458C01EC0F4816021DE3553B262639337ADEBA674D74F97E
+8985278E42563E8FCC02620403595E1E1C5F22C939294462E22587F1364C93C2
+88C9AD9C838C2CC5B214BDC610102B4B553483AD160F285E54FFDACF8A9AA8B2
+8FC934D6F937685C04BBA9E7215AFDFA518602FC9BFB49BF780446D01B23D1A9
+EE6DB071167660E103627DC6729846CA741DADC803A35064C0340578B9008DFA
+6ACA76C2067652B352D6EC1FFEE0A0083AE97FE48EA7515109A3919222FC025F
+D37010AE5A27F7A5E75C2E056ABE2B651C7BA8F5EC3AD4CF841029C9D1F390E8
+7C3B9086798243384D4BB234CE380F096A52989E7DD1418412C20D39E3EFB8DF
+3700482F3260E59D01D775B063615CC77D15C7D6A817C2D2A2CF398BB02F7580
+B1792E2313D1E68371204AAAC9B13177D5F5FBCADB21636903AB441B3F60CF22
+F6CA5BA527E02E362C878E261C5C0D9C52215A0839C03F7D60B113450D45C0DD
+6E63F710D21B373EF9ADF6AFADE857F7016C08FE884C30631E853A7B88E5D2F4
+2AE2BF41D101810A2BEE77B06E4EA8B6FDE9740485967320E2D504EFFF8068BB
+5A74F55C18385A3A2A80A1D0D2F72616262B5D1CA600A509B1D07674BB2745F8
+4E0A1F782A2CC37D7E92E7AD03B03970B7D87A5AC6003E251F685C7AE96CC532
+155376F20CD2770489B8EFCFB60EFBDBA064E991E188D8056482D7FA545B84ED
+E9B457089EB04DC6BCA5F7B770744D41925A459BC9E1D815F009DEBEF0573C9B
+DAA0AE5678AB27647CCA49E7723F08BF8E9B31ABD0FD4911B4614C8C5ECA0BA4
+D6FEBDBE92F7B013E7D60DD03BC02F543D9DB98D9645D429EB9BAD689038205E
+7FD69A6C9C105F0B9622C8DBEFA5865E1C59209D95CDC65D2AA69C5A3C8B39F5
+88EEF83B652B8D8CE7745D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMBX12 1.0
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 51 /three put
+dup 56 /eight put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13C1F9ED3B0523E3F30C411CDA75CE31E5A820
+E14B9B5D38A8C28183DF0A031F0630849F90BBB32F27F9493EB4C387F177DD84
+32ED6BDC93B40722AD0D407156A8FA0AD08DC3466DD8B70C2005A5367DC8DF07
+27BCCEFA73F56BA70D13A937205A389F4799674CB84D1DFC3581FCEFB6869C1B
+2EE1BC8AEF1BBD5237A695D9D1DCC31B8D1255B6D6123075D9EAEC37344C7D2A
+CD1A5524A45C6805D003EACB28A75740C45A06B0DC58AE5097C87944632C7AAA
+2C0C2388BD7996E7D035DB5890183311071464212AAD28F9A7278BFD6FBAC798
+26892D97DA40495AB66E4117A4D7D41FC56DDEA6361E8481B531329C76C5BD98
+DE8BEC8F502722395B3E379EC4CE14F450DBC073678B656A38DC10C9A3E3D953
+5DC9DA2FCA556B50F7C014466B9043460BEE198F6BCF6F8C58E0B9D26C44889F
+39AC3826EE590DE761C53D93951559FBA1ADB21213EB75C8CBD579446986F52F
+239754935CAA46CBB211C23C451FC617F82DC195518912B4929FFEE242D11E56
+83880FDA54D4751817870482F85867864476FB3B555E68C758FE3D06BEEDCF0C
+1D83964DB47CC0C965535C29CFF6F840894FF754F4C1AA077A67180503E107F9
+EE2640E28870170110B180F0C0B19A4AA23FEF9B805397C5AB1680C94A04613F
+FE2D5D4ABE9EDF69E0DD3824787C989AB4B2E585D5713981695DA1DFF8D2A9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.1: CMTI8 1.0
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 56 /eight put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4803AA3E45F388F65179AA988898B7B7A8252625EA5D7BBE65642F35DE
+6926648975C26BB71EC4AAA2C6B061F34705BB1D6366B0410E461F4A4573E422
+A6DBBED212134EA12D0A744EFD8B5A8043C4C98E70FB61AB44AD65396F903CE6
+C75567EA638DCB1AE5C7FDC2535439C4A948A94DC17DB26CAF391EE972891DA5
+AFBEEF4A5893EABB4976611AE3579228B0B980F3A9608C8B9912B166886EF6A9
+467B1DB9349470B8C001FE43AC234638ABA572238D147B23955C053CBFDEA682
+3C8492AC68F7DA2A03201B749878C0A4F08C1CF33E27EDB13F1145CCE6406642
+E72E7D84E0E5BBC7CC381FC635621540FA735619E502DFEC0146AD485114AB3F
+40944FEFE1562249944C410AC526A17ACB00319ECC675E6570FEEEC37CE863DE
+DDB1280C7A23A512C6D12294203C728393E6DBEB55B976C3D5E1B9AFDF240658
+9F3F6B1DF2301CD5975A054A844C0F9A0672B0ED
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 14 /guilsinglleft put
+dup 15 /guilsinglright put
+dup 40 /parenleft put
+dup 45 /hyphen put
+dup 50 /two put
+dup 52 /four put
+dup 54 /six put
+dup 55 /seven put
+dup 63 /question put
+dup 71 /G put
+dup 73 /I put
+dup 80 /P put
+dup 138 /Lslash put
+dup 200 /Egrave put
+dup 212 /Ocircumflex put
+dup 218 /Uacute put
+dup 236 /igrave put
+dup 242 /ograve put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF859449F6003874D095258B6F64ADC77D4830EB4B8B608DB3CB840D82
+75E4C819DAFEBB1BCE8B1518EEA99F8A79809C3BC0C39A9F36ED4968675C4278
+B5448E87397B9994127B6C41A6450F86A24ED491563370B43776BF34BBC2FCDD
+C44967CFB28B04E7A4A6968FC888607BA04952BA6FF345A44EABA4CA626F5CBD
+A262ED5029009388AE8E603F205ABBAFFAE47C993E1D68AA8B7CBB309344E916
+2A946DFAAD152341313EF518AA3EA88951ACE580A548E2F3A01E05B4ACE65C83
+493C311E7F81F24B92BB5320B45DEB821F415D063480BBF087F84C347E647720
+B4939EF84A72B16979079CD49519B7B4EC98CAAFB7993BA74CC8EC1BA6B5584E
+FBFD523FCC217456E3DBE6AA16F8C3B669587F831B999011E3056756762F40E6
+CFA056177C6A158CF50ED68F931E5CC4F57434CAE794604DA11E7E852E66A12F
+35E45673FB129FD6A412ED3E16898FA086647CD7C6259056C334D2A678278F87
+89D5AAE0B82B6296DAC6DEDAC0984E38C277ED6C5FC18277D5585F8BF9775A6B
+30348198C6D4C02CAE55AE0F175E961812F6258ECF77201A1F2CBB96978492B2
+23CD144DF123748595781EA30118566A9B9D40EDEADC25D02259477B443D0A3C
+828B4FF0E501A3C36BF2A36D21BCC6F4A7E01D82B247E0B65D328AB38344E24B
+0A7E34D977D253DF0D8255BE9F623D2877B48CAB0A953F4CD121D873DB550EF6
+2A248AB8F2BA32A214DC9DEBD43657A422F95FA5C7446EAEF3A802405E25E9A1
+943DA4C03EAE875E18898AAF666B2D50F8681C5B9550471557D8574128C5B41A
+75295D3611367B55F9F3FAC974C15D5410DA571CE7D5CBD23BE631D79A6F0536
+520737ABE8E0C0927A05F120B9638E9D49486C400392023F8DCB3FFC5CE8537F
+0DF4BCF606ECD3E192C738489F47A688F8BEF70D340DB4E3321785284721E68D
+0DA041315EBB203588CCEA598A133D68094B2BFB6BBCB0092C8190BB4484879A
+6FDD3B33787489FDB3D35726D06A6FCDE53FFA230CF4BA8746D77B34F2317361
+7ACFA1965676795E0EDF96C08AA4ADF04E970E97FF5977D993E86C58CD3F0DCB
+FA3EE7721E412560C7E4E387745C04598201622C37FFB94B258F7E59A19263BF
+F7AC73F228529B726606721F81FD42FE2CDBEF5A95D5E5C89D7ED164E0F1FF89
+F106EAD5E887933544019CC2AB7C9FAB69F10683E6F1A097B222F54F8C40189C
+1CC44CA441315F2CCBC64D6B04463EA8E2B5340FF1812810A0D0CFD8261BBFE8
+DF888F85B98AC9E03F1467EF029621C8D0AA1053DCB21BCDDE2925334450502E
+CEB7215906448E42AFEE6BF90EE48007E7DA43E29228C49C5BA65E7B02158E5A
+09FA31CC8B83E3B67CDB4C8D7CD20F99F37505EB2C9C713B170AD878CBD5031A
+70E3F16156AEB28DD287B9FDBC9AC1D59B1EF011AD3E37B39BEE6018F62BC8E4
+360F8AD4C8A39CAE9DCECC1E0D30CCA1C6F2D3B0911A1C5FCFF29067D3B2280C
+7938068433DFD0A778386D5FC9C721443FDBF4623CEF445C2AD7D5DE8AB7F2C1
+075C981D38EBACEF39722A0DD428D97508D307CEFF5E49E31C20B5304179B479
+DCEDF0AB45D17707A85E60480C5BF7F34EABB3326953B3FCA0B109EBF491FE64
+9B8D6CB46AAE368C95735248E060862C8CFE4C9F6ECC03CD973D6C4CDB8D56D0
+7E1BC6C373F0315C3A84CC4E6CBB6EEFD857FD617BD4248292295D56165E9ED2
+B44DB75280A56005DBBACAB16EB4AAAB5E253E1AB3E02D1838B222A7E3AD3A03
+15C1EDED943B5B9CBD3F0BC9ABC8D455FFF629E9B7790C2C85F60A05C465B44C
+98524B7AAAB71261F3BED34439712D73C21A29FA983449BFAB5C819383CF812B
+05D539392F31BAE5A74169130B5044FC489E5C44009B2EFBC9818C97D222DD9C
+99B737EE86467229B17B89F00F134AB9D0EA379446D4CF4E0BE32F6BA1FC74C6
+EDAB284D26E4A89482925A84CC31C1F2E07203E2CDA8DC2FBF5123B02FA4AC7E
+3B0B7B7289C49FF5D85DFEC5279D52462DEC6656025F2AF2E093A47F2FE8BAF0
+C3C67D026D152FCCE6C4C5A85A2D5BB1109BF3A425EFC9645EBB92370C8D4472
+366E6E228293D67B9DBF0156E1427371177EE8F8AFC66782A3BC38C3695F2BF8
+B4E77E9FCF8554E0C08F30D042F7080D247A70BB158D2CCC266239B7573A1113
+3B1857238A5FF562F81E1A726DBBF37A1ACF7834BC8B0E9B848A6DBD46CF8CCD
+6D615A4E8C1DD41EB735D593E584EBE94086F2BDAE13461684ECFE3A0A9389D2
+DF2E854E01EEA577A3347D53A502E5CB65523EB5901221B1DC306646AFFD1D44
+6E3A5ACAE01AA6269CD816C3C86F92E81505D7583DD456789458E4197091C14C
+4D9366DB8AE3AE23E542C5614C2D4FEC1DA4D9351D3F32B7BCD56C91069FED52
+29B06C58C596016F9615E0C21D67D2DD5827EA944980A919E132E8326E087E1A
+2E2005860F2368AE1A349203BFE5E0E9D196DA887E4298719DC9BD906EE34932
+71D19794E3188B3C4E4EA80548EA6BA72D043816E90879483B2091A7E83F94DD
+95EAF169610B7DBBAA5CC0F955DC2650DF1CF67E2C3E6DC3350047FB20E3888F
+952BAB98B4D8C5E906F2FBDD2185BB4190F189CD16FAC466E17E8CB60D4EE1C3
+3F2AACF0E2088E6BB76E1BCCCE230A1E053B3E20767ACF42A43A6EDCEEB7EE9E
+7DA1C27F612EB6632E06572C1FAF51E6EC7775EB10693D649E1E51B3073EA077
+6F258657EBB26105DF3B555C0D712E617802976F0F0441D7C27C3CC8F8B67311
+D157607A272061CEC1B352C2482AF32C4CC553789CD067AC6FD4BCA77FFB4EA1
+3A8E82B7A70095F9D59AF4A677AA4C9C186671A5385DC764E0E67E4C81A63280
+21DA62FF511B9523AAFD44AFB764B5B7E12D57B516DCC7FA0D8C574520AA7F21
+EB99D63F8E7AAF0EA12FDD4CDE59A1B58C50523A3038610E14497E7BB099FDD4
+EB1BE305FA39489253B7BFF5DF377BD09A6EA515221827D743E89BB609836C69
+6EACEB8AC7B3991096D53B9482D80F6F768ABED29C4984DF2AB847B1B1D07C93
+0723AF5FD61BE5BF68B1F7184AF7DFD542D146A164E01F163796FF4B9D675647
+2131F763A0A79AFA4C8F1BA513813ABFBD8E8BE466E7B8859BFBCB223E717287
+B7A80F59142D4D10735A44F6756D5CA61A7EA5600BC0154F46089671BA350313
+BE670912E2DFDE6C21C2BDCF57D70C67E3A0827D09E6D96A7B0CB0CA95F125F1
+5615A35253D968BE41DB8F3E10D4C814CF8A46B616E079A87FC8A138EF6F9720
+1537FD0C603230A0C284764A0FFC2DC41F6DB37CA3D3B52CCEBE5C5CCE3FD424
+77B3927B08A4AC3FE0565A085B6B34B9F23943071525A0AE8F042C783CD4B624
+0A85FE1A363990A731CF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 14 /guilsinglleft put
+dup 15 /guilsinglright put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB97A2075592DB74A1A04E90939C9E9C4A8F438BEFC93D5AC7CB71AF1026
+AF32540C0FC74F3E14C9239E2F222D5A9C4E8F92C7B91830080EAE6FC0A9450D
+8EBC5FA8F7416B2E490B12C00F9C9EC927282D9F0729E4CD3D8880E3E04E1FAE
+3B9227357235D96D627E3ACA3446F802571351CC6B1E21E2AC3DBD4F5A7BDBDA
+C371E05E4AE97BBAE69A4A1CBF84790B20E882C3A13092D14B1AFD217F6C6714
+C9F383DCC8BBF7224653928010D9C297C61993388CE6F247F438F597F62178D8
+7854EC9FA698B4855DCBF3BDE7660099E5411F1C45DC780E1147750E6811B0B8
+94A902F1E0E35278812A5D58EED4242B54BCF63A8347443849FFF1388EEADAA3
+07232C6978897511DE1DABC18874AD2E075004B780CCC943753D16BA91A8403C
+09059249DAC2F51AAA8B7234C8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+TeXDict begin 39158280 55380996 1000 2540 2540 (jud24c.dvi)
+@start /Fa 135[163 1[162 189 117 144 148 1[180 180 198
+287 90 2[108 180 162 108 162 180 162 1[180 10[261 2[198
+256 269 238 2[315 2[185 136 261 1[229 1[265 251 247 261
+18[108 1[108 44[{}35 351.46 /CMTI10 rf /Fb 161[351 42[176
+1[176 49[{}3 351.46 /CMMI10 rf /Fc 141[176 2[208 2[104
+4[187 1[187 35[304 65[{}6 351.46 /CMBXTI10 rf /Fd 135[172
+1[172 181 126 128 127 1[181 163 181 271 90 2[90 181 163
+99 145 181 144 1[163 10[244 2[181 239 253 221 2[298 2[167
+117 244 1[212 1[248 235 230 244 18[90 108 90 30[181 13[{}37
+316.314 /CMR9 rf /Fe 132[206 4[218 1[161 4[206 229 1[115
+2[115 4[229 2[206 10[310 12[149 7[310 8[206 206 206 1[206
+1[206 206 4[115 2[161 161 40[{}21 421.752 /CMR12 rf /Ff
+138[221 137 169 174 1[211 1[232 337 3[127 211 3[211 2[211
+12[295 9[217 74[{}13 421.752 /CMTI12 rf /Fg 138[466 326
+1[345 2[419 466 4[233 3[384 466 373 21[796 77[{}10 728.927
+/CMBX10 rf /Fh 199[237 4[237 51[{}2 421.752 /CMBX12 rf
+/Fi 199[154 56[{}1 281.168 /CMTI8 rf /Fj 13[281 5[281
+17[281 5[281 11[281 61[1125 57[0 6[450 1[450 7[0 7[0
+169 1[169 1[169 4[0 4[0 24[0 0 6[0 6[0{}20 562.336 /TeXMUSIX16-Regular
+rf /Fk 240[0 0 14[{}2 702.92 /TeXMUSIX20-Regular rf end
+TeXDict begin
+a4
+ end
+TeXDict begin 1 0 bop -1540 9413 18417 15 v -1540 9553
+V -1540 9694 V -1540 9834 V -1540 9975 V -1540 7163 V
+-1540 7304 V -1540 7445 V -1540 7585 V -1540 7726 V -1540
+4914 V -1540 5055 V -1540 5195 V -1540 5336 V -1540 5476
+V -1540 2665 V -1540 2805 V -1540 2946 V -1540 3086 V
+-1540 3227 V -1540 9975 15 7318 v -1681 2587 a Fk(\016)p
+-1681 10038 71 7451 v 7451 x(\017)-1540 9546 y Fj(I)-1540
+7578 y(G)-1413 8070 y Fi(8)-1540 5329 y Fj(G)-1540 3079
+y(G)-1076 9827 y(2)-935 9617 y(2)-1076 7437 y(2)-935
+7227 y(2)-1076 5188 y(2)-935 4977 y(2)-1076 2939 y(2)-935
+2728 y(2)-699 9682 y Fh(3)-699 9963 y(8)-699 7433 y(3)-699
+7714 y(8)-699 5183 y(3)-699 5465 y(8)-699 2934 y(3)-699
+3215 y(8)5220 174 y Fg(Mundi)278 b(rector)5316 596 y
+Ff(Juditha)147 b(T)-32 b(riumphans)p Fe(,)137 b(I,)h(27)14009
+1287 y(An)-11 b(tonio)138 b(Viv)-23 b(aldi)14697 1709
+y(\(1678{1741\))-122 9968 y Fj(?)35 10480 y Fd(Mun)216
+10828 y(In)173 11176 y(Re)p 280 9933 15 457 v 281 9933
+a Fj(-)281 9476 y(\007)694 10480 y Fd(di)619 10828 y(Ju)556
+11176 y(di,)p 682 9933 V 683 9933 a Fj(-)683 9476 y(\007)-122
+7719 y(?)35 8301 y Fd(Mun)216 8649 y(In)173 8997 y(Re)p
+280 7894 V 281 7894 a Fj(-)281 7437 y(\007)694 8301 y
+Fd(di)619 8649 y(Ju)556 8997 y(di,)p 682 7824 V 683 7824
+a Fj(-)683 7367 y(\007)-122 5469 y(?)35 6052 y Fd(Mun)216
+6400 y(In)173 6748 y(Re)p 442 5329 V 443 5329 a Fj(\()-162
+b(\007)694 6052 y Fd(di)619 6400 y(Ju)556 6748 y(di,)p
+844 5329 V 845 5329 a Fj(\()g(\007)-739 2376 y Fc(A)-10
+b(l)21 b(le)-21 b(gr)g(o)-122 3220 y Fj(?)35 3803 y Fd(Mun)216
+4150 y(In)173 4498 y(Re)p 280 3255 V 281 3255 a Fj(-)281
+2798 y(\007)694 3803 y Fd(di)619 4150 y(Ju)556 4498 y(di,)p
+682 3185 V 683 3185 a Fj(-)683 2728 y(\007)p 1084 9975
+15 570 v 1084 7726 V 1084 5476 V 1084 3227 V 1119 10480
+a Fd(Rec)1053 10828 y(-)87 b(di)1248 11176 y(re)p 1299
+9933 15 457 v 1300 9933 a Fj(-)1300 9476 y(\007)1648
+10480 y Fd(tor)1526 10828 y(-)7 b(ta)1530 11176 y(-)12
+b(di)p 1701 9933 V 1702 9933 a Fj(-)1702 9476 y(\007)2169
+10480 y Fd(de)2035 10828 y(tuae)2026 11176 y(iam)p 2103
+9933 V 2104 9933 a Fj(-)2104 9476 y(\007)1119 8301 y
+Fd(Rec)1053 8649 y(-)87 b(di)1248 8997 y(re)p 1299 7824
+V 1300 7824 a Fj(-)1300 7367 y(\007)1648 8301 y Fd(tor)1526
+8649 y(-)7 b(ta)1530 8997 y(-)12 b(di)p 1701 7894 V 1702
+7894 a Fj(-)1702 7437 y(\007)2169 8301 y Fd(de)2035 8649
+y(tuae)2026 8997 y(iam)p 2103 7894 V 2104 7894 a Fj(-)2104
+7437 y(\007)1119 6052 y Fd(Rec)1053 6400 y(-)87 b(di)1248
+6748 y(re)p 1461 5329 V 1462 5329 a Fj(\()-162 b(\007)1648
+6052 y Fd(tor)1527 6400 y(-)6 b(ta)1530 6748 y(-)12 b(di)p
+1863 5329 V 1864 5329 a Fj(\()-162 b(\007)2169 6052 y
+Fd(de)2035 6400 y(tuae)2026 6748 y(iam)p 2265 5329 V
+2266 5329 a Fj(\()g(\007)1119 3803 y Fd(Rec)1053 4150
+y(-)87 b(di)1248 4498 y(re)p 1299 3185 V 1300 3185 a
+Fj(-)1300 2728 y(\007)1648 3803 y Fd(tor)1526 4150 y(-)7
+b(ta)1530 4498 y(-)12 b(di)p 1701 3255 V 1702 3255 a
+Fj(-)1702 2798 y(\007)2169 3803 y Fd(de)2035 4150 y(tuae)2026
+4498 y(iam)p 2103 3255 V 2104 3255 a Fj(-)2104 2798 y(\007)p
+2505 9975 15 570 v 2505 7726 V 2505 5476 V 2505 3227
+V 2600 10480 a Fd(Cae)2755 10828 y(le)2655 11176 y(Vic)p
+2720 9863 15 457 v 2721 9863 a Fj(-)2721 9406 y(\007)2600
+8301 y Fd(Cae)2755 8649 y(le)2655 8997 y(Vic)p 2882 7508
+V 2883 7508 a Fj(\()-162 b(\007)2551 5399 y(4)2600 6052
+y Fd(Cae)2755 6400 y(le)2655 6748 y(Vic)p 2882 5399 V
+2883 5399 a Fj(\()g(\007)2720 3803 y Fd(Cae)2755 4150
+y(le)2720 4498 y(Vic)p 2720 3431 15 563 v 2721 2868 a
+Fj(\007)2721 3325 y(\310)2737 3327 y(\310)2721 3431 y(\310)2737
+3433 y(\310)p 3003 3459 15 521 v 3004 2939 a(\007)3142
+10480 y Fd(lo)3063 10828 y(-)74 b(gi)3134 11176 y(trix)p
+3287 10144 15 457 v 3288 10144 a Fj(-)3288 9687 y(\007)3592
+10480 y Fd(mi)3638 10828 y(di)3755 11176 y(pu)p 3689
+10144 V 3690 10144 a Fj(-)3690 9687 y(\007)3142 8301
+y Fd(lo)3063 8649 y(-)g(gi)3134 8997 y(trix)p 3448 7508
+V 3449 7508 a Fj(\()-162 b(\007)3592 8301 y Fd(mi)3638
+8649 y(di)3755 8997 y(pu)p 3689 7824 V 3690 7824 a Fj(-)3690
+7367 y(\007)3142 6052 y Fd(lo)3063 6400 y(-)74 b(gi)3134
+6748 y(trix)p 3448 5399 V 3449 5399 a Fj(\()-162 b(\007)3592
+6052 y Fd(mi)3638 6400 y(di)3755 6748 y(pu)p 3850 5399
+V 3851 5399 a Fj(\()g(\007)3262 3803 y Fd(lo)3063 4150
+y(-)74 b(gi)3199 4498 y(trix)p 3287 3325 V 3288 3325
+a Fj(-)3288 2868 y(\007)3620 3803 y Fd(mi)3638 4150 y(di)3819
+4498 y(pu)p 3850 3009 V 3851 3009 a Fj(\()-162 b(\007)p
+4091 9975 15 570 v 4091 7726 V 4091 5476 V 4091 3227
+V 3996 10480 a Fd(-)42 b(can)4018 10828 y(-)111 b(ca)4116
+11176 y(gnan)p 4306 9933 15 457 v 4307 9933 a Fj(-)4307
+9476 y(\007)3996 8301 y Fd(-)42 b(can)4018 8649 y(-)111
+b(ca)4116 8997 y(gnan)p 4306 7894 V 4307 7894 a Fj(-)4307
+7437 y(\007)3996 6052 y Fd(-)42 b(can)4018 6400 y(-)111
+b(ca)4116 6748 y(gnan)p 4467 5540 V 4468 5540 a Fj(\()-162
+b(\007)4010 3803 y Fd(-)28 b(can)4018 4150 y(-)111 b(ca)4181
+4498 y(gnan)p 4306 3396 V 4307 3396 a Fj(-)4307 2939
+y(\007)4634 10480 y Fd(ti)4544 10828 y(ta)4803 11176
+y(do)p 4708 9967 15 492 v 4709 9476 a Fj(\007)4634 8301
+y Fd(ti)4544 8649 y(ta)4803 8997 y(do)p 4708 7929 V 4709
+7437 a Fj(\007)4634 6052 y Fd(ti)4544 6400 y(ta)4803
+6748 y(do)p 4869 5540 V 4708 5540 a Fj(\007)4634 3803
+y Fd(ti)4544 4150 y(ta)4867 4498 y(do)p 4869 3079 V 4708
+3079 a Fj(\007)p 5276 9975 15 570 v 5276 7726 V 5276
+5476 V 5276 3227 V 5491 9968 a(?)5766 10480 y Fd(Au)5610
+10828 y(Flam)5829 11176 y(In)p 5893 10144 15 457 v 5894
+10144 a Fj(-)5894 9687 y(\007)6190 10480 y Fd(di)6346
+10828 y(mas)6262 11176 y(ci)p 6295 10144 V 6296 10144
+a Fj(-)6296 9687 y(\007)5491 7719 y(?)5766 8301 y Fd(Au)5610
+8649 y(Flam)5829 8997 y(In)p 5893 7754 V 5894 7754 a
+Fj(-)5894 7297 y(\007)6190 8301 y Fd(di)6346 8649 y(mas)6262
+8997 y(ci)p 6295 7754 V 6296 7754 a Fj(-)6296 7297 y(\007)5491
+5469 y(?)5766 6052 y Fd(Au)5610 6400 y(Flam)5829 6748
+y(In)p 6055 5399 V 6056 5399 a Fj(\()-162 b(\007)6190
+6052 y Fd(di)6346 6400 y(mas)6262 6748 y(ci)p 6457 5399
+V 6458 5399 a Fj(\()g(\007)5491 3220 y(?)5766 3803 y
+Fd(Au)5610 4150 y(Flam)5829 4498 y(In)p 5893 3396 V 5894
+3396 a Fj(-)5894 2939 y(\007)6190 3803 y Fd(di)6346 4150
+y(mas)6262 4498 y(ci)p 6295 3396 V 6296 3396 a Fj(-)6296
+2939 y(\007)p 6697 9975 15 570 v 6697 7726 V 6697 5476
+V 6697 3227 V 6770 10480 a Fd(pre)7013 10828 y(dul)6648
+11176 y(-)150 b(li)p 6912 10073 15 457 v 6913 10073 a
+Fj(-)6913 9617 y(\007)6770 8301 y Fd(pre)7013 8649 y(dul)6648
+8997 y(-)g(li)p 6912 7894 V 6913 7894 a Fj(-)6913 7437
+y(\007)6912 6052 y Fd(pre)7013 6400 y(dul)6651 6748 y(-)j(li)p
+7074 5329 15 563 v 6913 5329 a Fj(\007)7075 4872 y(\310)7084
+4873 y(\310)7075 4766 y(\310)7084 4767 y(\310)p 7357
+5399 15 605 v 7196 5399 a(\007)6912 3803 y Fd(pre)7013
+4150 y(dul)6651 4498 y(-)g(li)p 7074 2939 15 563 v 6913
+2939 a Fj(\007)7075 2482 y(\310)7084 2483 y(\310)7075
+2376 y(\310)7084 2377 y(\310)p 7357 3009 15 605 v 7196
+3009 a(\007)7223 10480 y Fd(ces,)7464 10828 y(cis,)7149
+11176 y(-)63 b(cio,)p 7479 10108 15 492 v 7480 9617 a
+Fj(\007)7223 8301 y Fd(ces,)7464 8649 y(cis,)7149 8997
+y(-)g(cio,)p 7479 7929 V 7480 7437 a Fj(\007)7365 6052
+y Fd(ces,)7464 6400 y(cis,)7152 6748 y(-)d(cio,)p 7641
+5329 V 7480 5329 a Fj(\007)7365 3803 y Fd(ces,)7464 4150
+y(cis,)7152 4498 y(-)g(cio,)p 7479 3430 V 7480 2939 a
+Fj(\007)p 8048 9975 15 570 v 8048 7726 V 8048 5476 V
+8048 3227 V 8263 9968 a(?)8496 9617 y(6)8578 10480 y
+Fd(au)8442 10828 y(\015am)8614 11176 y(in)p 8665 10073
+15 457 v 8666 10073 a Fj(-)8666 9617 y(\007)8921 10480
+y Fd(di)9056 10828 y(mas)9034 11176 y(ci)p 9067 10073
+V 9068 10073 a Fj(-)9068 9617 y(\007)8263 7719 y(?)8578
+8301 y Fd(au)8442 8649 y(\015am)8614 8997 y(in)p 8826
+7578 V 8827 7578 a Fj(\()-162 b(\007)8921 8301 y Fd(di)9056
+8649 y(mas)9034 8997 y(ci)p 9228 7578 V 9229 7578 a Fj(\()g(\007)8263
+5469 y(?)8578 6052 y Fd(au)8442 6400 y(\015am)8614 6748
+y(in)p 8826 5329 V 8827 5329 a Fj(\()g(\007)8921 6052
+y Fd(di)9056 6400 y(mas)9034 6748 y(ci)p 9228 5329 V
+9229 5329 a Fj(\()g(\007)8263 3220 y(?)8578 3803 y Fd(au)8442
+4150 y(\015am)8614 4498 y(in)p 8665 3325 V 8666 3325
+a Fj(-)8666 2868 y(\007)8921 3803 y Fd(di)9056 4150 y(mas)9034
+4498 y(ci)p 9067 3325 V 9068 3325 a Fj(-)9068 2868 y(\007)p
+9469 9975 15 570 v 9469 7726 V 9469 5476 V 9469 3227
+V 9542 10480 a Fd(pre)9723 10828 y(dul)9419 11176 y(-)151
+b(li)p 9684 10003 15 457 v 9685 10003 a Fj(-)9685 9546
+y(\007)9542 8301 y Fd(pre)9723 8649 y(dul)9419 8997 y(-)g(li)p
+9684 7824 V 9685 7824 a Fj(-)9685 7367 y(\007)9684 6052
+y Fd(pre)9723 6400 y(dul)9422 6748 y(-)j(li)p 9845 5258
+15 563 v 9684 5258 a Fj(\007)9846 4802 y(\310)-272 b(\310)9846
+4696 y(\310)9855 4697 y(\310)p 10129 5329 15 605 v 9968
+5329 a(\007)9684 3803 y Fd(pre)9723 4150 y(dul)9422 4498
+y(-)154 b(li)p 9684 3431 15 563 v 9685 2868 a Fj(\007)9685
+3325 y(\310)9701 3327 y(\310)9685 3431 y(\310)9701 3433
+y(\310)p 9967 3459 15 521 v 9968 2939 a(\007)9994 10480
+y Fd(ces,)10175 10828 y(cis,)9943 11176 y(-)85 b(cio)p
+10251 10003 15 457 v 10252 10003 a Fj(-)10252 9546 y(\007)10607
+10480 y Fd(et)10734 10828 y(tui)11009 10989 y Fb(^)11239
+10828 y Fd(a)10639 11176 y(in)p 10652 10003 V 10653 10003
+a Fj(-)10653 9546 y(\007)9994 8301 y Fd(ces,)10175 8649
+y(cis,)9943 8997 y(-)g(cio)p 10251 7824 V 10252 7824
+a Fj(-)10252 7367 y(\007)10607 8301 y Fd(et)10734 8649
+y(tui)11009 8810 y Fb(^)11239 8649 y Fd(a)10639 8997
+y(in)p 10652 7683 V 10653 7683 a Fj(-)10653 7227 y(\007)10136
+6052 y Fd(ces,)10175 6400 y(cis,)9946 6748 y(-)d(cio)p
+10412 5258 V 10413 5258 a Fj(\()-162 b(\007)10749 6052
+y Fd(et)10734 6400 y(tui)11009 6561 y Fb(^)11239 6400
+y Fd(a)10639 6748 y(in)p 10652 5575 V 10653 5575 a Fj(-)10653
+5118 y(\007)10136 3803 y Fd(ces,)10175 4150 y(cis,)9946
+4498 y(-)82 b(cio)p 10251 3325 V 10252 3325 a Fj(-)10252
+2868 y(\007)10749 3803 y Fd(et)10734 4150 y(tui)11009
+4311 y Fb(^)11239 4150 y Fd(a)10639 4498 y(in)p 10652
+3185 V 10653 3185 a Fj(-)10653 2728 y(\007)p 11054 9975
+15 570 v 11054 7726 V 11054 5476 V 11054 3227 V 11199
+10480 a Fd(su)11402 10828 y(mo)11128 11176 y(pre)p 11269
+9792 15 457 v 11270 9792 a Fj(-)11270 9335 y(\007)11508
+10480 y Fd(sci)11835 10828 y(ris)11580 11176 y(ce)p 11671
+10073 V 11672 10073 a Fj(-)11672 9617 y(\007)11877 10480
+y Fd(-)6 b(p)j(e)12181 10828 y(ac)12049 11176 y(ri)p
+12073 10003 V 12074 10003 a Fj(-)12074 9546 y(\007)11199
+8301 y Fd(su)11402 8649 y(mo)11128 8997 y(pre)p 11269
+7613 V 11270 7613 a Fj(-)11270 7156 y(\007)11508 8301
+y Fd(sci)11835 8649 y(ris)11580 8997 y(ce)p 11671 7543
+V 11672 7543 a Fj(-)11672 7086 y(\007)11877 8301 y Fd(-)d(p)j(e)12181
+8649 y(ac)12049 8997 y(ri)p 12073 7613 V 12074 7613 a
+Fj(-)12074 7156 y(\007)11199 6052 y Fd(su)11402 6400
+y(mo)11128 6748 y(pre)p 11269 5645 V 11270 5645 a Fj(-)11270
+5188 y(\007)11508 6052 y Fd(sci)11835 6400 y(ris)11580
+6748 y(ce)p 11671 5575 V 11672 5575 a Fj(-)11672 5118
+y(\007)11877 6052 y Fd(-)d(p)j(e)12181 6400 y(ac)12049
+6748 y(ri)p 12235 5258 V 12236 5258 a Fj(\()-162 b(\007)11199
+3803 y Fd(su)11402 4150 y(mo)11128 4498 y(pre)p 11269
+3255 V 11270 3255 a Fj(-)11270 2798 y(\007)11508 3803
+y Fd(sci)11835 4150 y(ris)11580 4498 y(ce)p 11671 3185
+V 11672 3185 a Fj(-)11672 2728 y(\007)11877 3803 y Fd(-)6
+b(p)j(e)12181 4150 y(ac)12049 4498 y(ri)p 12073 3325
+V 12074 3325 a Fj(-)12074 2868 y(\007)p 12475 9975 15
+570 v 12475 7726 V 12475 5476 V 12475 3227 V 12789 9940
+a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (0.79999pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 -1 M M A N /S0lift 0 N /S0alt (48.0pt) GDAR N /S0dir
+-1 N /S0dash 0 N /S0adj 0 N end
+ 12789 9940 a 12690 10480 a Fd(v)-9 b(o)12535 10828
+y(-)47 b(cen)12424 11176 y(-)158 b(vi)p 12852 9827 15
+492 v 12691 9827 a Fj(\007)12691 9757 y(\000)12789 7044
+y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (19.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (112.0pt) GDAR N /S1dir
+1 N /S1dash 0 N /S1adj 0 N end
+ 12789 7044 a 12690 8301 a Fd(v)-9 b(o)12535 8649 y(-)47
+b(cen)12424 8997 y(-)158 b(vi)p 12690 7648 15 492 v 12691
+7156 a Fj(\007)12691 7086 y(\000)12690 6052 y Fd(v)-9
+b(o)12535 6400 y(-)47 b(cen)12424 6748 y(-)158 b(vi)p
+12690 5645 15 457 v 12691 5188 a Fj(\007)12691 5118 y(\000)p
+13540 5645 15 387 v 13541 5258 a(\007)p 13824 5645 15
+457 v 13825 5188 a(\007)p 13542 5573 581 68 v 12690 5679
+1431 68 v 14107 5645 15 528 v 14108 5118 a(\007)12690
+3803 y Fd(v)-9 b(o)12535 4150 y(-)47 b(cen)12424 4498
+y(-)158 b(vi)p 12690 3501 15 563 v 12691 2939 a Fj(\007)p
+12974 3473 15 464 v 12975 3009 a(\007)p 13257 3445 15
+506 v 13258 2939 a(\007)p 13540 3417 15 548 v 13541 2868
+a(\007)p 13824 3389 15 590 v 13825 2798 a(\007)12690
+3397 y(\212)12997 3366 y(\212)12690 3501 y(\212)12997
+3470 y(\212)p 14107 3361 15 632 v 14108 2728 a(\007)p
+14391 9975 15 570 v 14391 7726 V 14391 5476 V 14391 3227
+V 14690 9827 a
+ slur@Dict begin (2.0pt) GD S0hgt (4.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 14690 9827 a 14690 9827 a
+ end
+ 14690 9827 a
+14767 9827 15 457 v 78 w Fj(\()-162 b(\007)14690 7156
+y
+ slur@Dict begin (2.0pt) GD S1hgt (16.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 14690 7156 a 14690 7156 a
+ end
+ 14690 7156 a 14606 7648 15
+492 v -83 w Fj(\007)14607 7086 y(\000)p 14606 5610 15
+563 v -2038 x(\007)14607 5504 y(\332)14623 5508 y(\332)14607
+5610 y(\332)14623 5614 y(\332)p 14889 5681 15 493 v 14890
+5188 a(\007)p 14606 3290 15 633 v 14607 2658 a(\007)14607
+3185 y(\362)14623 3192 y(\362)14607 3290 y(\362)14623
+3297 y(\362)p 14889 3418 15 479 v 14890 2939 a(\007)p
+15172 10038 15 492 v 15173 9546 a(\007)15172 4696 y Fa(tr)p
+15334 5258 V 15173 5258 a Fj(\007)15172 2587 y Fa(tr)p
+15172 3360 V 15173 2868 a Fj(\007)p 15741 9975 15 570
+v 15741 7726 V 15741 5476 V 15741 3227 V 13681 10480
+a Fd(-)1333 b(-)666 b(ta)13785 10828 y(-)1251 b(-)626
+b(de)13632 11176 y(-)1359 b(-)680 b(v)-9 b(e)p 16118
+9827 15 492 v 15957 9827 a Fj(\007)15957 9757 y(\000)13681
+8301 y Fd(-)1333 b(-)666 b(ta)13785 8649 y(-)1251 b(-)626
+b(de)13632 8997 y(-)1359 b(-)680 b(v)-9 b(e)p 15956 7648
+V 15957 7156 a Fj(\007)15957 7086 y(\000)13681 6052 y
+Fd(-)1333 b(-)666 b(ta)13785 6400 y(-)1251 b(-)626 b(de)13632
+6748 y(-)1359 b(-)680 b(v)-9 b(e)p 15956 5679 V 15957
+5188 a Fj(\007)15957 5118 y(\000)13681 3803 y Fd(-)1333
+b(-)666 b(ta)13785 4150 y(-)1251 b(-)626 b(de)13632 4498
+y(-)1359 b(-)680 b(v)-9 b(e)p 15956 3430 V 15957 2939
+a Fj(\007)15957 2868 y(\000)16652 9687 y(7)16652 7437
+y(7)16652 5188 y(7)16652 2939 y(7)p 16736 9975 15 570
+v 16736 7726 V 16736 5476 V 16736 3227 V 16792 9975 85
+570 v 16792 7726 V 16792 5476 V 16792 3227 V 16876 11655
+a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 16876 11655 a -1540 18904 18417 15 v -1540 19045 V
+-1540 19185 V -1540 19326 V -1540 19466 V -1540 16655
+V -1540 16795 V -1540 16936 V -1540 17076 V -1540 17217
+V -1540 14405 V -1540 14546 V -1540 14687 V -1540 14827
+V -1540 14968 V -1540 12156 V -1540 12297 V -1540 12437
+V -1540 12578 V -1540 12718 V -1540 19466 15 7318 v -1681
+12079 a Fj(\016)p -1681 19530 71 7451 v 7451 x(\017)-1716
+11841 y Fb(13)-1540 19038 y Fj(I)-1540 17069 y(G)-1413
+17561 y Fi(8)-1540 14820 y Fj(G)-1540 12571 y(G)-1076
+19319 y(2)-935 19108 y(2)-1076 16929 y(2)-935 16718 y(2)-1076
+14679 y(2)-935 14469 y(2)-1076 12430 y(2)-935 12219 y(2)p
+-509 19466 85 570 v -509 17217 V -509 14968 V -509 12718
+V -383 19466 15 570 v -383 17217 V -383 14968 V -383
+12718 V -284 19178 a(7)-284 16929 y(7)-284 14679 y(7)-284
+12430 y(7)-41 19459 y(?)160 19972 y Fd(Quae)365 20320
+y(F)-27 b(e)333 20667 y(De)p 446 19424 15 457 v 447 19424
+a Fj(-)447 18967 y(\007)1006 19972 y Fd(de)747 20320
+y(-)53 b(ri)832 20667 y(Ho)p 932 19424 V 933 19424 a
+Fj(-)933 18967 y(\007)-41 17210 y(?)160 17793 y Fd(Quae)365
+18140 y(F)-27 b(e)333 18488 y(De)p 446 17245 V 447 17245
+a Fj(-)447 16788 y(\007)1006 17793 y Fd(de)747 18140
+y(-)53 b(ri)832 18488 y(Ho)p 932 17245 V 933 17245 a
+Fj(-)933 16788 y(\007)-41 14961 y(?)160 15543 y Fd(Quae)365
+15891 y(F)-27 b(e)333 16239 y(De)p 607 14820 V 608 14820
+a Fj(\()-162 b(\007)1006 15543 y Fd(de)747 15891 y(-)53
+b(ri)832 16239 y(Ho)p 1094 14820 V 1095 14820 a Fj(\()-162
+b(\007)-41 12711 y(?)277 12430 y(6)160 13294 y Fd(Quae)365
+13642 y(F)-27 b(e)333 13990 y(De)p 446 12887 V 447 12887
+a Fj(-)447 12430 y(\007)1006 13294 y Fd(de)747 13642
+y(-)53 b(ri)832 13990 y(Ho)p 932 12887 V 933 12887 a
+Fj(-)933 12430 y(\007)p 1419 19466 15 570 v 1419 17217
+V 1419 14968 V 1419 12718 V 1544 19972 a Fd(cor)1317
+20320 y(-)191 b(ta)1382 20667 y(-)144 b(lo)p 1838 19248
+15 457 v 1839 19248 a Fj(\()-162 b(\007)1544 17793 y
+Fd(cor)1317 18140 y(-)191 b(ta)1382 18488 y(-)144 b(lo)p
+1676 17175 V 1677 17175 a Fj(-)1677 16718 y(\007)1544
+15543 y Fd(cor)1317 15891 y(-)191 b(ta)1382 16239 y(-)144
+b(lo)p 1838 14820 V 1839 14820 a Fj(\()-162 b(\007)1676
+13294 y Fd(cor)1347 13642 y(-)221 b(ta)1403 13990 y(-)165
+b(lo)p 1676 12922 15 563 v 1677 12360 a Fj(\007)1868
+12430 y(6)1677 12817 y(\310)1770 12826 y(\310)1677 12922
+y(\310)1770 12931 y(\310)p 2036 12958 15 529 v 2037 12430
+a(\007)2085 19972 y Fd(-)108 b(de)2044 20320 y(-)139
+b(tis)2028 20667 y(-)j(fer)p 2541 19248 15 457 v 2542
+19248 a Fj(\()-162 b(\007)2732 19972 y Fd(pro)2769 20320
+y(sic)2664 20667 y(-)16 b(ne)p 3028 19248 V 3029 19248
+a Fj(\()-162 b(\007)2085 17793 y Fd(-)108 b(de)2044 18140
+y(-)139 b(tis)2028 18488 y(-)j(fer)p 2380 17175 V 2381
+17175 a Fj(-)2381 16718 y(\007)2732 17793 y Fd(pro)2769
+18140 y(sic)2664 18488 y(-)16 b(ne)p 2866 17175 V 2867
+17175 a Fj(-)2867 16718 y(\007)2085 15543 y Fd(-)108
+b(de)2044 15891 y(-)139 b(tis)2028 16239 y(-)j(fer)p
+2541 14820 V 2542 14820 a Fj(\()-162 b(\007)2732 15543
+y Fd(pro)2769 15891 y(sic)2664 16239 y(-)16 b(ne)p 3028
+14820 V 3029 14820 a Fj(\()-162 b(\007)2152 13294 y Fd(-)41
+b(de)2074 13642 y(-)109 b(tis)2050 13990 y(-)120 b(fer)p
+2380 12817 V 2381 12817 a Fj(-)2381 12360 y(\007)2732
+13294 y Fd(pro)2769 13642 y(sic)2664 13990 y(-)16 b(ne)p
+3028 12571 V 3029 12571 a Fj(\()-162 b(\007)p 3353 19466
+15 570 v 3353 17217 V 3353 14968 V 3353 12718 V 3442
+19319 a(6)3559 19972 y Fd(te)3459 20320 y(hos)3513 20667
+y(sic)p 3772 19319 15 457 v 3773 19319 a Fj(\()g(\007)4046
+19972 y Fd(di)3930 20320 y(tis)4010 20667 y(ho)p 4259
+19319 V 4260 19319 a Fj(\()g(\007)4349 19972 y Fd(-)30
+b(mi)4496 20320 y(do)4353 20667 y(die)p 4745 19319 V
+4746 19319 a Fj(\()-162 b(\007)3559 17793 y Fd(te)3459
+18140 y(hos)3513 18488 y(sic)p 3610 17245 V 3611 17245
+a Fj(-)3611 16788 y(\007)4046 17793 y Fd(di)3930 18140
+y(tis)4010 18488 y(ho)p 4097 17245 V 4098 17245 a Fj(-)4098
+16788 y(\007)4348 17793 y Fd(-)31 b(mi)4496 18140 y(do)4353
+18488 y(die)p 4584 17245 V 4585 17245 a Fj(-)4585 16788
+y(\007)3559 15543 y Fd(te)3459 15891 y(hos)3513 16239
+y(sic)p 3772 14820 V 3773 14820 a Fj(\()-162 b(\007)4046
+15543 y Fd(di)3930 15891 y(tis)4010 16239 y(ho)p 4259
+14820 V 4260 14820 a Fj(\()g(\007)4349 15543 y Fd(-)30
+b(mi)4496 15891 y(do)4353 16239 y(die)p 4745 14820 V
+4746 14820 a Fj(\()-162 b(\007)3559 13294 y Fd(te)3459
+13642 y(hos)3513 13990 y(sic)p 3610 12746 V 3611 12746
+a Fj(-)3611 12290 y(\007)4046 13294 y Fd(di)3930 13642
+y(tis)4010 13990 y(ho)p 4097 12746 V 4098 12746 a Fj(-)4098
+12290 y(\007)4348 13294 y Fd(-)31 b(mi)4496 13642 y(do)4353
+13990 y(die)p 4584 12746 V 4585 12746 a Fj(-)4585 12290
+y(\007)p 5070 19466 15 570 v 5070 17217 V 5070 14968
+V 5070 12718 V 4954 19972 a Fd(-)106 b(can)4963 20320
+y(-)124 b(ma)5014 20667 y(trium)p 5489 19248 15 457 v
+5490 19248 a Fj(\()-162 b(\007)4954 17793 y Fd(-)106
+b(can)4963 18140 y(-)124 b(ma)5014 18488 y(trium)p 5328
+17315 V 5329 17315 a Fj(-)5329 16859 y(\007)4954 15543
+y Fd(-)106 b(can)4963 15891 y(-)124 b(ma)5014 16239 y(trium)p
+5489 14820 V 5490 14820 a Fj(\()-162 b(\007)5034 13294
+y Fd(-)186 b(can)5029 13642 y(-)191 b(ma)5328 13990 y(trium)p
+5328 12782 15 563 v 5329 12219 a Fj(\007)5329 12676 y(\310)5405
+12684 y(\310)5329 12782 y(\310)5405 12790 y(\310)p 5671
+12816 15 527 v 5672 12290 a(\007)5769 19972 y Fd(-)113
+b(ti)5737 20320 y(-)c(ta)5810 20667 y(phan)p 6014 19599
+15 492 v 6015 19108 a Fj(\007)5769 17793 y Fd(-)k(ti)5737
+18140 y(-)c(ta)5810 18488 y(phan)p 6014 17350 V 6015
+16859 a Fj(\007)5769 15543 y Fd(-)k(ti)5737 15891 y(-)c(ta)5810
+16239 y(phan)p 6175 14820 V 6014 14820 a Fj(\007)5848
+13294 y Fd(-)34 b(ti)5803 13642 y(-)43 b(ta)6123 13990
+y(phan)p 6014 12851 V 6015 12360 a Fj(\007)p 6702 19466
+15 570 v 6702 17217 V 6702 14968 V 6702 12718 V 6715
+19972 a Fd(Sun)-9 b(t)6895 20320 y(In)6639 20667 y(-)126
+b(do)p 6960 19635 15 457 v 6961 19635 a Fj(-)6961 19178
+y(\007)6791 16648 y(4)6715 17793 y Fd(Sun)-9 b(t)6895
+18140 y(In)6639 18488 y(-)126 b(do)p 6960 17105 V 6961
+17105 a Fj(-)6961 16648 y(\007)6715 15543 y Fd(Sun)-9
+b(t)6895 15891 y(In)6639 16239 y(-)126 b(do)p 7122 14750
+V 7123 14750 a Fj(\()-162 b(\007)6715 13294 y Fd(Sun)-9
+b(t)6895 13642 y(In)6827 13990 y(do)p 6960 12817 V 6961
+12817 a Fj(-)6961 12360 y(\007)7479 19972 y Fd(pie)7343
+20320 y(Be)7321 20667 y(Pia)7673 20828 y Fb(^)7904 20667
+y Fd(Ju)p 7447 19670 15 492 v 7448 19178 a Fj(\007)7479
+17793 y Fd(pie)7343 18140 y(Be)7321 18488 y(Pia)7673
+18649 y Fb(^)7904 18488 y Fd(Ju)p 7447 17280 V 7448 16788
+a Fj(\007)7479 15543 y Fd(pie)7343 15891 y(Be)7321 16239
+y(Pia)7673 16400 y Fb(^)7904 16239 y Fd(Ju)p 7608 14820
+V 7447 14820 a Fj(\007)7479 13294 y Fd(pie)7343 13642
+y(Be)7276 13990 y(Pia)7628 14151 y Fb(^)7858 13990 y
+Fd(Ju)p 7447 12921 V 7448 12430 a Fj(\007)p 8135 19466
+15 570 v 8135 17217 V 8135 14968 V 8135 12718 V 8224
+19248 a(4)8059 19972 y Fd(-)165 b(ta)7924 20320 y(-)206
+b(th)-9 b(u)8251 20667 y(di)p 8554 19248 15 457 v 8555
+19248 a Fj(\()-162 b(\007)8653 19972 y Fd(-)30 b(tis)8716
+20320 y(liae)8572 20667 y(-)49 b(tha)p 8879 19635 V 8880
+19635 a Fj(-)8880 19178 y(\007)9315 19972 y Fd(in)9309
+20320 y(sp)9 b(em)9304 20667 y(p)g(er)p 9366 19635 V
+9367 19635 a Fj(-)9367 19178 y(\007)8224 16718 y(6)8059
+17793 y Fd(-)165 b(ta)7924 18140 y(-)206 b(th)-9 b(u)8251
+18488 y(di)p 8393 17175 V 8394 17175 a Fj(-)8394 16718
+y(\007)8711 16648 y(4)8652 17793 y Fd(-)31 b(tis)8716
+18140 y(liae)8571 18488 y(-)50 b(tha)p 8879 17105 V 8880
+17105 a Fj(-)8880 16648 y(\007)9315 17793 y Fd(in)9309
+18140 y(sp)9 b(em)9304 18488 y(p)g(er)p 9366 17105 V
+9367 17105 a Fj(-)9367 16648 y(\007)8059 15543 y Fd(-)165
+b(ta)7924 15891 y(-)206 b(th)-9 b(u)8251 16239 y(di)p
+8554 14820 V 8555 14820 a Fj(\()-162 b(\007)8711 14890
+y(4)8653 15543 y Fd(-)30 b(tis)8716 15891 y(liae)8572
+16239 y(-)49 b(tha)p 9041 14890 V 9042 14890 a Fj(\()-162
+b(\007)9315 15543 y Fd(in)9309 15891 y(sp)9 b(em)9304
+16239 y(p)g(er)p 9528 14750 V 9529 14750 a Fj(\()-162
+b(\007)8059 13294 y Fd(-)165 b(ta)7924 13642 y(-)206
+b(th)-9 b(u)8220 13990 y(-)13 b(di)p 8393 12887 V 8394
+12887 a Fj(-)8394 12430 y(\007)8652 13294 y Fd(-)31 b(tis)8716
+13642 y(liae)8616 13990 y(-)5 b(tha)p 9041 12500 V 9042
+12500 a Fj(\()-162 b(\007)9315 13294 y Fd(in)9309 13642
+y(sp)9 b(em)9304 13990 y(p)g(er)p 9366 12817 V 9367 12817
+a Fj(-)9367 12360 y(\007)p 9853 19466 15 570 v 9853 17217
+V 9853 14968 V 9853 12718 V 10085 19972 a Fd(si)10148
+20320 y(pa)9977 20667 y(sae)p 10110 19424 15 457 v 10111
+19424 a Fj(-)10111 18967 y(\007)10350 19972 y Fd(-)47
+b(n)-9 b(u)10491 20320 y(cis)10412 20667 y(cu)p 10758
+19248 V 10759 19248 a Fj(\()-162 b(\007)11005 19972 y
+Fd(de)11032 20320 y(in)10835 20667 y(-)98 b(la)p 11083
+19635 V 11084 19635 a Fj(-)11084 19178 y(\007)10085 17793
+y Fd(si)10148 18140 y(pa)9977 18488 y(sae)p 10110 17245
+V 10111 17245 a Fj(-)10111 16788 y(\007)10428 16718 y(2)10350
+17793 y Fd(-)47 b(n)-9 b(u)10491 18140 y(cis)10412 18488
+y(cu)p 10597 17175 V 10598 17175 a Fj(-)10598 16718 y(\007)11005
+17793 y Fd(de)11032 18140 y(in)10835 18488 y(-)98 b(la)p
+11083 17245 V 11084 17245 a Fj(-)11084 16788 y(\007)10085
+15543 y Fd(si)10148 15891 y(pa)9977 16239 y(sae)p 10272
+14820 V 10273 14820 a Fj(\()-162 b(\007)10351 15543 y
+Fd(-)46 b(n)-9 b(u)10491 15891 y(cis)10412 16239 y(cu)p
+10758 14750 V 10759 14750 a Fj(\()-162 b(\007)10915 14890
+y(4)11005 15543 y Fd(de)11032 15891 y(in)10835 16239
+y(-)98 b(la)p 11245 14890 V 11246 14890 a Fj(\()-162
+b(\007)10085 13294 y Fd(si)10148 13642 y(pa)9977 13990
+y(sae)p 10110 12887 V 10111 12887 a Fj(-)10111 12430
+y(\007)10350 13294 y Fd(-)47 b(n)-9 b(u)10491 13642 y(cis)10412
+13990 y(cu)p 10597 12817 V 10598 12817 a Fj(-)10598 12360
+y(\007)11005 13294 y Fd(de)11032 13642 y(in)10835 13990
+y(-)98 b(la)p 11245 12500 V 11246 12500 a Fj(\()-162
+b(\007)p 11570 19466 15 570 v 11570 17217 V 11570 14968
+V 11570 12718 V 11926 18855 a
+ slur@Dict begin CP /S0y1 ED /S0x1 ED /S0hgt (17.20001pt) GD N /S0brk
+S0hgt (2.0pt) GD 1 1 M M A N /S0lift 0 N /S0alt (48.0pt) GDAR N /S0dir
+1 N /S0dash 0 N /S0adj 0 N end
+ 11926 18855 a 11525 19972
+a Fd(-)194 b(v)-9 b(o)11511 20320 y(-)208 b(ten)11827
+20667 y(vi)p 11827 19459 15 492 v 11828 18967 a Fj(\007\000)11926
+16676 y
+ slur@Dict begin CP /S1y1 ED /S1x1 ED /S1hgt (15.20001pt) GD N /S1brk
+S1hgt (2.0pt) GD 1 1 M M A N /S1lift 0 N /S1alt (112.0pt) GDAR N /S1dir
+1 N /S1dash 0 N /S1adj 0 N end
+ 11926 16676 a 11525 17793 a Fd(-)194 b(v)-9 b(o)11511
+18140 y(-)208 b(ten)11827 18488 y(vi)p 11827 17280 15
+492 v 11828 16788 a Fj(\007)11828 16718 y(\000)11525
+15543 y Fd(-)194 b(v)-9 b(o)11511 15891 y(-)208 b(ten)11827
+16239 y(vi)p 11989 14820 15 457 v 11828 14820 a Fj(\007)11828
+14750 y(\000)12705 14890 y(4)p 13035 14890 15 528 v(\007)p
+13378 14820 15 457 v 13217 14820 a(\007)p 13036 14502
+694 68 v 11989 14397 1740 68 v 13722 14750 15 387 v 13561
+14750 a(\007)11525 13294 y Fd(-)194 b(v)-9 b(o)11511
+13642 y(-)208 b(ten)11827 13990 y(vi)p 11989 12571 15
+563 v 11828 12571 a Fj(\007)12020 12641 y(4)p 12349 12641
+15 669 v -1 w(\007)p 12692 12571 15 633 v 12531 12571
+a(\007)p 13035 12500 15 597 v 12874 12500 a(\007)p 13378
+12430 15 561 v 13217 12430 a(\007)11989 12114 y(\212)12604
+12052 y(\212)11989 12008 y(\212)12604 11947 y(\212)p
+13722 12360 15 525 v 13561 12360 a(\007)p 13903 19466
+15 570 v 13903 17217 V 13903 14968 V 13903 12718 V 14245
+18967 a
+ slur@Dict begin (2.0pt) GD S0hgt (14.0pt) GD 1.6 (2.0pt) GD M S0dir
+M A S0x1 S0y1 CP (3.20001pt) GDAR S0dir M SB 1 S0dir M 0.17 40 S0dash
+S0adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 14245 18967 a 14245 18967 a
+ end
+ 14245 18967 a 14160
+19424 15 457 v 14161 19424 a Fj(-)14161 18967 y(\007)14245
+16788 y
+ slur@Dict begin (2.0pt) GD S1hgt (12.0pt) GD 1.6 (2.0pt) GD M S1dir
+M A S1x1 S1y1 CP (3.20001pt) GDAR S1dir M SB 1 S1dir M 0.17 40 S1dash
+S1adj 90 DS /ay1 ay1 (0.0pt) GDAR -10 AR add dir mul add def
+ 14245 16788 a 14245 16788 a
+ end
+ 14245 16788 a 14160
+17280 15 492 v -84 w Fj(\007)14161 16718 y(\000)p 14322
+14679 15 563 v -2039 x(\007)14323 14223 y(\324)14392
+14236 y(\324)14323 14117 y(\324)14392 14131 y(\324)p
+14665 14820 15 635 v 14504 14820 a(\007)p 14160 12922
+15 633 v 14161 12290 a(\007)14161 12817 y(\354)14237
+12847 y(\354)14161 12922 y(\354)14237 12952 y(\354)p
+14503 13059 15 489 v 14504 12571 a(\007)p 14864 19670
+15 492 v 14865 19178 a(\007)14864 14328 y Fa(tr)14695
+14890 y Fj(4)p 15025 14890 V(\007)14864 11938 y Fa(tr)p
+15025 12500 V 14864 12500 a Fj(\007)p 15552 19466 15
+570 v 15552 17217 V 15552 14968 V 15552 12718 V 15810
+18967 a(P)12690 19972 y Fd(-)1076 b(-)g(-)538 b(ta.)12793
+20320 y(-)1027 b(-)h(-)514 b(de.)12636 20667 y(-)1094
+b(-)g(-)547 b(v)-9 b(e.)p 15971 19459 15 492 v 15810
+19459 a Fj(\007)15810 19389 y(\000)15810 16718 y(P)12690
+17793 y Fd(-)1076 b(-)g(-)538 b(ta.)12793 18140 y(-)1027
+b(-)h(-)514 b(de.)12636 18488 y(-)1094 b(-)g(-)547 b(v)-9
+b(e.)p 15810 17280 V 15811 16788 a Fj(\007)15811 16718
+y(\000)15810 14398 y(P)12690 15543 y Fd(-)1076 b(-)g(-)538
+b(ta.)12793 15891 y(-)1027 b(-)h(-)514 b(de.)12636 16239
+y(-)1094 b(-)g(-)547 b(v)-9 b(e.)p 15971 14820 V 15810
+14820 a Fj(\007)15810 14750 y(\000)15810 12149 y(P)12690
+13294 y Fd(-)1076 b(-)g(-)538 b(ta.)12793 13642 y(-)1027
+b(-)h(-)514 b(de.)12636 13990 y(-)1094 b(-)g(-)547 b(v)-9
+b(e.)p 15971 12571 V 15810 12571 a Fj(\007)15810 12500
+y(\000)16652 19178 y(7)16652 16929 y(7)16652 14679 y(7)16652
+12430 y(7)p 16736 19466 15 570 v 16736 17217 V 16736
+14968 V 16736 12718 V 16792 19466 85 570 v 16792 17217
+V 16792 14968 V 16792 12718 V 16876 21146 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 16876 21146
+a -340 22568 a Fa(Mundi)125 b(R)-18 b(e)g(ctor)125 b(de)g(Caelo)g(mic)
+-18 b(anti)250 b(In)125 b(Judita)e(tuae)i(le)-18 b(gi)124
+b(dic)-18 b(ata)1799 b(R)-18 b(e)g(di,)125 b(r)-18 b(e)g(di)125
+b(iam)g(Victrix)h(pugnando)-340 22990 y(A)-9 b(udi)125
+b(pr)-18 b(e)g(c)g(es)124 b(et)i(suscip)-18 b(e)123 b(vota)956
+b(Flammas)126 b(dulcis)e(tui)g(amoris)i(ac)-18 b(c)g(ende)249
+b(In)125 b(cilicio)e(in)j(pr)-18 b(e)g(c)g(e)124 b(rivive)-340
+23412 y(Quae)h(de)g(c)-18 b(or)g(de)125 b(pr)-18 b(o)125
+b(te)g(dimic)-18 b(anti)314 b(F)-27 b(eritatis)124 b(sic)h(hostis)f
+(domata)1580 b(De)125 b(Holoferne)f(sic)h(ho)-18 b(die)124
+b(triumphando)-340 23833 y(Sunt)g(pietatis)g(in)h(sinu)f(devota.)727
+b(In)125 b(Bethuliae)e(sp)-18 b(em)126 b(p)-18 b(acis)124
+b(intende.)639 b(Pia)125 b(Juditha)f(p)-18 b(er)125 b(sae)-18
+b(cula)123 b(vive.)p eop end
+userdict /end-hook known{end-hook}if
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/volta.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/volta.eps
index 464fd402fe5..9afcf7aad12 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/volta.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/volta.eps
@@ -1,862 +1,862 @@
-%% LaTeX2e file `eps/volta.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: volta.dvi
-%%CreationDate: Wed Jan 21 14:07:02 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 599 496 792
-%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMTT10
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE volta.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.01.21:1407
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: 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 46 /period put
-dup 49 /one put
-dup 50 /two put
-dup 86 /V put
-dup 97 /a put
-dup 98 /b put
-dup 108 /l put
-dup 111 /o put
-dup 116 /t put
-dup 118 /v put
-dup 120 /x put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1AFEF11440E42343766A24140060278A5E8EA1D4843D2
-9FA6EC18D967F1F68DCDE1579CAF3B27E36352F8DC9AE602F6FE140A4A54C4B3
-37AA0B95A63FA898F0FA2804E0BBDB7BC03C1100F8EE53410988A964D61F0728
-FB73B1C2DF53E5321E5EF0ECFAA4B3C2422CCC0F270A69DC6F09C960494F70FE
-A9F8377118CAEE801BE86CBC9A97E8227A0BD7526BC83CD09F534B07AB599671
-1300B4E28756F69F8B674524503DB75CFA310263EDD27D32D83A216241DF0810
-3E9C54875B2146E9F849F9E4AC043A1A15A28320061D0D899EE1D159EC5B7845
-762DFE0037B237A41767EDF87245ADDCD1E94D2FEE120C7BA60C24619117DC6A
-F37242576C4E9A56BFF2D3E717DFA759A2C6CDA1A2B095AFDF0D7EE69B65E018
-1D69369AFCDDD758D466939A23D7A779E813657B78B7EED0FE6365FAFBE78109
-CAB35AC2730A761CAAED96AFDADB83467990C8FADD97AA854076AD6C685EB8A7
-7528D9E8250462972EF06EEB9BCD3B1076ABCC3DE786B58925BE64BCD5B52075
-41D34D08480F1A1CA16F2E2F888A3794787779F7699443E56F512E3CE8C856BC
-D30453517E576B499942C5EA6503D5BEB7344FB1FFD666A88F35AFE37FB81F06
-5B6930D071A679EDCE7A3FD54AA5D762201869B2A54A3D1711FFA03CE8A11AE5
-7D8930AE0CC53ED7BCA346117DCFBA277985EA6510C3F8F223DC49DF7F9069CC
-D4AE642D17175EAF9620EAC17BB5A9923E0120E266AD77C420205E1ABD97EF02
-549DA22A5AED240E29BE06159AF66F32E95C55E2AAAE59A0C0FEA52489426A45
-53BB3C1FE0DBA6BF82F653BDF7DB45077F9B20CFD5B4E43AA7275B04B228BA3A
-600CB6F5FB79027C7915F6DB98CF657133AFDBBC7AF5B172F51A19C17E9EB31E
-1AC99D9286C7C214559FF453597E50C71F5EFF98FD185F0987EFC3D9A7F327D2
-6CB3844A7EE6973AD53DD0B4E53E1B662E1FE92115DD472BC7B25945620125CD
-DD53ACBDE61E4579D906ECC9B6B481D05C1D7C28B0F541A58EC1A633E8116E05
-AEABBA8131AA8CEE3BDD701AF729E30E57DE59FD6886127E802000F940CD86EE
-C90FACB91E5DEC3D64B2092401168A544009999A70B22BD5788F04F3B9584568
-B47E4964AC3929A71D434E188AEC70B86FD6C1387BA92E2116DBBC7E2FAFFA9F
-72F04DD67BFDB55114DDE244C69152042D81749F48EDD6F1744D01491CDE8C50
-870277E3E8935BD53EC2A2ACF84AB91C08F960336A57CB100B8EB0D231B6C1C8
-EA79C89CAED0E6802E565CBD83F1C3397D2B52A684A795DA87B926587C0C0E3D
-BF5155EC84B569FC62753432E54851E556EF5AC5BF70F5FD0280455DBBE1992C
-4B2EEFABAC5EA8EA23971D0685A2F810DB0FDDF6B5992075AC8BD1DD09994E5E
-77365FCFB8B60574D6808B67B6871B0FFA185BD51B346CC39D9D90B71307B3C9
-0B7792E968E451AB2EA98FB292AE1D2C1D51BEAE7242E39F6FF16E35193B6775
-3DC440F3F8213B6235915CE0A95E66F9C7B156F00923BC751E55CD258E9169E4
-8D00DDFC1ECB3303E2BBA7BD8298B90800F03C4E5DFE35C3416B20648551BD5F
-06E627C79703AF67D82E6F7E808BEC53C3F4D8584CC450520D2AC98BBF61D252
-0C798CB7D46578E8D0B2C2BDCDB0530A84448636B9A4ACAE49653A3A23721204
-EDB3958F22870A780C6070FF5AACC05932ADBBAAF8B3FDE38C79D877C923A816
-6AE4151DD1AF18732406E9C2A3E6A31F52B958C9FBFA2A208F6C4E0C38C5C9C3
-932FE1F22EAE1509128BC9C82A1AE87D6A3BD3A28B6B03FD1D2E5B134D2E442D
-464E6BC0FCAC5169EEA9E84DB1A2FB7C69F6EA95BD3EEED2639ED94E6EEA164E
-14EC0B4ADCF8CDDFF3F40665C47FCCB34EA53C8028A7EEBF68F54A34CE83DCA0
-F1C4149FF6D7B78B916B9B2C81129F0063F5C2841A68BA8120FF3FCD335284A6
-120823E9373C4E9B3E806C96526D3D2E28803F9E2F83E0BFDF4967C23F6B8F75
-1180F8F2EDA1E22949DD7F5AF1C0E14154A61E455ABA30520CE4927DEC63B938
-30E0E6410ADD21A255E3E9C11314ABE90744D2654C57474A94B562A1064BA2C8
-1223B02CDF1B8FD7D280EB925DFE1DCDE64BF3C49FE63F1C64B7E1AE9F397C9E
-BD8463A5BFA07179BECA5863E9925DE6961EBCCE3056CF614CC5702B306D5E30
-BCA479DE6B3D3C608482F3355C47A3A58028948F6E0EB3DB071CA859FED88086
-97ADDD886E1628CBCA3D156CEC29EDC13CF4BF432F85E92D2AF9FC9DEA1084DF
-EF27CA5E4899B59794323CF76589CAC0DD967A3167CBF3A97E3CCECAF3C7ED21
-FBD92EC16252E14DE054728300F84EDA90A263E2F9A614834CAC8F83763C556E
-BD8CFCFBB7BE8E190705F4CBC23966E24203DDCD96B7E3A9095B6D03254DE821
-2236888B2880A7CD241A37B8B6BDAD017162E3EFA3254110B16EF0BE180C52F8
-9CBEE7E29BB880EFA9E94CF3A1E75449E96E597F5AE45076D541064CD62BAA19
-DF82DDA801C0B0F48DB7518752401CD8A82CC4CDC391B750B1243B52FD99DE3C
-6D3C2D775C8E29173D8CC1D4954BAAC11CFBCF7E47906FB84508F012C7D7A0A5
-86B931612D4F8792DACD88E3A2163ED95DCD6AD6393822888E6E4C9DC838CB45
-46D57815C436FD5E3DB1B88C6B2615A68452A89E43A49DD39E373FE48ADB4A2A
-1504E23B85DB9323CF7D98F809464D9B968203511082DF40AC95E0C647BB327F
-5FD5CEC0BCF7B64EECAB1360FA45BB447AA22CFE43100B2EB1DD092EE4AB94FA
-D29244818EA103FE840914040AB6666DA7CFB6281558EE74779575ED72984CEE
-422CB3C9B83CB16A54DEA0D50C58C9FDAEF11536A9D186FDF242BA88C56EDBB3
-594C3B33
-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 46 /period put
-dup 49 /one put
-dup 50 /two put
-dup 97 /a put
-dup 108 /l put
-dup 111 /o put
-dup 116 /t put
-dup 118 /v put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-/UniqueID 5000793 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
-0F44B5510AA5DCCF129D5478DCDDE23D488CECE5733E90D1CCDA927DDDCE0F2B
-3D90F878198E799ABD12F2227DE8E5510B6A3A4467D05E979D83FDE2E2C134BB
-B9BC4DA1FFDB9FED41EEA54E0358348909A74E087666C02DB303C74D7AEA8C80
-9BACB5C09F2FC81A6C36B044135705BE23C885EB85B19BDE626AE44B27C0E9C7
-FAC5078C95F84E5D4F1CB497CC5D4799ED277CDE92557929C2378C3BAB9F4E3A
-5368AD1F4F2FA25BDBD608EDF586856060E14414A765BEE54F966B66C414E735
-215BFE5E8891181C0021507266D2DD0D28EEAEC7530FF27FDAEA587D4620A0F9
-7D6CDC2D61461C30404B49B531BE7BA161C40E3760055818EB6330909B35F651
-C158DA04B2C6E9407D2626DD1ADBA88F4F7723495CAD7447EBCCFA4D3B6141DF
-79F9EB346C3C161B1C5883F1CCCC89BEB8BFBF9636454A82D538A647BD7D0140
-FFBC7AC5C1F7ED9E707862FE9BCFAF34A1B186DC39BA6F61241436563BEADFB2
-CFA7F0A514A9D55E57746289B8F3966CEDBA09DF20737A1EBDB64EBEB4CD4E54
-56364939C840F897321A3E69511C1ACE58F161F5AF4209F672AD82798FE12635
-0813A8B2B81F0A6200F25F18D14D3553929DD7EA789A78DDB557BF50D8434ECB
-4B5B182BCD3C558918590540F47A7203C108CB19F2D1B2FE7F894A364FD3011C
-7ADF9099EF6CABCCA3D28DF84E0F85F637601E4EF266F17E0A002E925191171B
-12A8D7214E58F7E3CCBC8315B12D7DB600C7C23F1443E4FB458B0A1AC26AFA17
-BD6F5637AC7234955BC90E911B1A2E37D4A4217F333DB6BF8508A150EFB0DF79
-FC1B7FFA9FE75E98452F33F7AB09F0818A77F82977356E872B195D1D10F77122
-068756B3DD2F751EB18BD779576A4B242412DD079B15C9FE213DD69A25F3BD72
-C6B37A8CC1805C30C80FEF386B836C0D67D520824E4C217209B0201E96865510
-DE4E58962B440FADE44A7ED0F6DFA54C38BB3C6F43562E1545E2F484A783C6E6
-862AA68A777D8000C69FA803D41B9980F18AB3F37FF0CC97C5592EB9B1C07D8F
-6964E1322E354856BFF56EDA835648A7504225ADA8FAD2C96951B66AA6537985
-A8831BC7207B05289B60A719650FEA441FF97C1A23303539E0CA134EE4709D7B
-A8199A6120E9E14E8550E8317D62982C294395F535265F9BAAA41DAC79802C8A
-D679D9422ADE7EE8A2750FC097EA11E434203FF045070DD199C94AA980E12DB4
-F7C8EE7F6E1F6ACF14ADE31305C5AA07601B4258B2A9E78BFF0012EA13041644
-D2168158E4FA6BB6134D95816C397E3D67E55B055FA497686A8774C1F4C155DA
-B6C0CEBD7F6C929748F2928D60B859E0B063AF228A41FC013672938F2391EE16
-CCA99170F266DD8B1B058C231BF1FCED476A7BDBE6103A1BCA233E7651CFA869
-3CC38CE80377BBD839EF11B8324A64188C9994BCB9C4A07C750563FD210E4553
-984FB926A37EA705AE71E27C1BC470A32C98E47141562865202301B98F2AB93F
-E1D17875A0CD84AE092F5F0B76B6FB48BFD4D29AD3D78A2A0F4E5F252A18B2E3
-6012889A2A6C936BDA7FED52E328991AC3BFD012D24DE8CFA3182F13A4C33BDB
-9B22787524BF81732FA12C958356B72B63BA57F552ECA96E0284ACA65EF3A21D
-D66AB5
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 7 /caron put
-dup 8 /breve put
-dup 55 /seven put
-dup 71 /G put
-dup 195 /Atilde put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C220CC1ECAAC6AD874D3
-948549355B2CEBA27FC7AFAC507098CAC9DD91E34690FC4A1B2D0D9842C74229
-2211E48F88FE8DDFA41CF4AFA7B074462E8516FDA8020B22ED5E653A4636F2E5
-DB8CF80BEBC9E285DD5068AC96A4A7A48A1576634E8127149625577C6E731566
-1972FA7FD06E79ECBD9B339A09CC5232ACFB27DD65A6F5CA9FD7CD00333AE027
-DC29F9D371C82793A3C7BB27A6A3371E4D7B9587484D47F29334851D7979A521
-74C2BEB04704BD46B06B8B2F7A2950E4B4D47CE89C05CEB148A2E31516E1833B
-44412BDA104785E90D640EE4955F97EA8EE84B7B9A5E07AAC3DC8DF6C44EAE0C
-CB144C9E19B35021978488B6D250F03F7C7BAED22E3AE781135EC5021BE13731
-9138447A6E4A1795A263341939C48054169C609450480B1B1E8389DFE4DE9771
-1C6CA25AB2AA36641A403ED3DCE607D95DB000B125B998E43FB1E2D8E560B97B
-45FA39D9753E30FB4B813183FBC9DD496E00D1FF1E6ECF78C55EB5B0E8719849
-0DA9624256B4698876308F94F3EA4CE9F5441C0FAB860F3960545D29D04F1227
-C702F02928227163BB5729181DBC51849A6FA943FA637E59288E06564D8DAC2F
-6D60E0898C63C0926659573F6375465648FD95610D0F55DDA9C980F6B2A8E8ED
-25EB574B85607216EC9DFDB92AAC569CB612CD0C3331079B526CB737642E5F7B
-F6EF1EA8F51D5AFA668DD076E5D1AC67C9989DC9A143735B334C7963CA3210DE
-0B2D9B690A8F8FF27225B6ADD479FDC8B408AB04E99B5EF163D9B84357092EFB
-A1B3EFAE7EA98899B9BEAE81E14E2EAE59169445F76151D8152C5E779C3B69BE
-A3D36B4B75BD7AFB09A90B73955BB9C51D9AC52BE67BEF945AF8FC2ACF6D501B
-3400FB24C566EB59C3992116AB1F7147257DBB88F51E7C6975D2DD09D38E374E
-A879C471D00AF50D96A38CF53C6B974CA956A7E3F913456C7978C5FD1F18A21C
-E9A5B1CDB15D4D5AC5DFF73BA7E1E8DFF0ABEDBE6B963D291437B95CDA4D95BF
-116C42EE50A2ABB2FF2ECC517F7B4094FE98491691271C0A8D1BE39005C47A3E
-15CDD9E9488588C396CC882376ABFA9E6331D554E68292C2CF2F956561A08595
-ADEF84599466BF18F8E9E69A61F4317FCADD2FF98AB6F2C2CFA49B90DB0892E1
-B165C20EF3F27146C04DCC8257D011C222404D6C3DD3A1262B23A312A642CD73
-5FA09EBDE461E9ADBFCD94A8BAB71D8261286F7B374418E7FF
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (volta.dvi)
-@start /Fa 135[44 1[44 1[44 4[44 2[44 9[44 44 10[44 35[44
-44 2[44 46[{}11 83.022 /CMTT10 rf /Fb 137[44 1[32 4[42
-2[23 10[42 46[42 42 2[23 46[{}8 83.022 /CMR10 rf /Fc
-60[133 123[106 15[0 46[0 0 7[{}5 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 3886 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fc(G)p -137 98 20
-135 v -107 98 4 135 v -84 29 a(7)p 13 131 60 4 v 61 129
-4 117 v 23 129 a(\007)p 316 131 60 4 v 364 129 4 117
-v 303 w(\007)p 628 98 4 135 v 632 -74 4 100 v 663 -103
-a Fb(1.)659 195 y Fa(V1)p 777 96 4 117 v 739 96 a Fc(\007)p
-1079 63 V 1041 63 a(\007)1344 29 y(7)p 1364 98 4 135
-v 1377 98 20 135 v 632 -171 746 4 v 1397 -74 4 100 v
-1428 -103 a Fb(2.)1424 195 y Fa(Vx2)p 1542 96 4 108 v
-1504 96 a Fc(\007)1543 -12 y(\303)1625 -8 y(\303)p 1756
-112 4 114 v 1718 112 a(\007)p 1922 131 60 4 v 1970 129
-4 117 v 1932 129 a(\007)p 2235 98 4 135 v 1397 -171 828
-4 v 2383 63 4 117 v 2345 63 a(\007)p 2638 131 60 4 v
-2638 164 V 2686 179 4 150 v 2648 179 a(\007)p 2950 98
-4 135 v 1397 -171 1544 4 v 2981 229 a Fa(Vx)p 3051 131
-60 4 v 3099 129 4 117 v 3061 129 a Fc(\010)p 3488 98
-4 135 v 3502 98 20 135 v 3522 262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 262 a -364 575
-3886 4 v -364 608 V -364 641 V -364 675 V -364 708 V
--364 673 a Fc(G)p -105 708 20 135 v -75 708 4 135 v -52
-640 a(7)p 78 741 60 4 v 126 739 4 117 v 88 739 a(\007)p
-472 741 60 4 v 520 739 4 117 v 394 w(\007)p 876 708 4
-135 v 879 536 4 100 v 910 507 a Fb(1.)939 806 y Fa(V1)p
-1057 706 4 117 v 1019 706 a Fc(\007)p 1451 673 V 1413
-673 a(\007)1807 640 y(7)p 1827 708 4 135 v 1841 708 20
-135 v 879 440 962 4 v 1920 789 a Fa(Vx)p 2038 673 4 117
-v 2000 673 a Fc(\007)p 2384 741 60 4 v 2384 774 V 2432
-789 4 150 v 2394 789 a(\007)p 2788 708 4 135 v 2921 741
-60 4 v 2969 739 4 117 v 2931 739 a(\010)p 3488 708 4
-135 v 3502 708 20 135 v 3522 872 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 872 a -364 1185
-3886 4 v -364 1218 V -364 1252 V -364 1285 V -364 1318
-V -364 1283 a Fc(G)p -137 1318 20 135 v -107 1318 4 135
-v -84 1250 a(7)p 13 1351 60 4 v 61 1349 4 117 v 23 1349
-a(\007)p 316 1351 60 4 v 364 1349 4 117 v 303 w(\007)p
-628 1318 4 135 v 632 1146 4 100 v 663 1117 a Fb(1.)27
-b(v)n(olta.)659 1416 y Fa(V1.)42 b(volta)p 777 1316 4
-117 v 739 1316 a Fc(\007)p 1079 1283 V 1041 1283 a(\007)1344
-1250 y(7)p 1364 1318 4 135 v 1377 1318 20 135 v 632 1050
-746 4 v 1397 1146 4 100 v 1428 1117 a Fb(v)n(olta.)1424
-1416 y Fa(Vvolxta)p 1542 1316 4 108 v 1504 1316 a Fc(\007)1543
-1208 y(\303)1625 1213 y(\303)p 1756 1333 4 114 v 1718
-1333 a(\007)p 1922 1351 60 4 v 1970 1349 4 117 v 1932
-1349 a(\007)p 2235 1318 4 135 v 1397 1050 828 4 v 2221
-1146 4 100 v 2265 1399 a Fa(Vxb)p 2383 1283 4 117 v 2345
-1283 a Fc(\007)p 2638 1351 60 4 v 2638 1384 V 2686 1399
-4 150 v 2648 1399 a(\007)p 2950 1318 4 135 v 3051 1351
-60 4 v 3099 1349 4 117 v 3061 1349 a(\010)p 3488 1318
-4 135 v 3502 1318 20 135 v 3522 1482 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 3522 1482 a eop
-end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/volta.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: volta.dvi
+%%CreationDate: Wed Jan 21 14:07:02 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 599 496 792
+%%DocumentFonts: TeXMUSIX16-Regular CMR10 CMTT10
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: C:\MIKTEX\TEXMF\MIKTEX\BIN\DVIPS.EXE volta.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.01.21:1407
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: 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 46 /period put
+dup 49 /one put
+dup 50 /two put
+dup 86 /V put
+dup 97 /a put
+dup 98 /b put
+dup 108 /l put
+dup 111 /o put
+dup 116 /t put
+dup 118 /v put
+dup 120 /x put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1AFEF11440E42343766A24140060278A5E8EA1D4843D2
+9FA6EC18D967F1F68DCDE1579CAF3B27E36352F8DC9AE602F6FE140A4A54C4B3
+37AA0B95A63FA898F0FA2804E0BBDB7BC03C1100F8EE53410988A964D61F0728
+FB73B1C2DF53E5321E5EF0ECFAA4B3C2422CCC0F270A69DC6F09C960494F70FE
+A9F8377118CAEE801BE86CBC9A97E8227A0BD7526BC83CD09F534B07AB599671
+1300B4E28756F69F8B674524503DB75CFA310263EDD27D32D83A216241DF0810
+3E9C54875B2146E9F849F9E4AC043A1A15A28320061D0D899EE1D159EC5B7845
+762DFE0037B237A41767EDF87245ADDCD1E94D2FEE120C7BA60C24619117DC6A
+F37242576C4E9A56BFF2D3E717DFA759A2C6CDA1A2B095AFDF0D7EE69B65E018
+1D69369AFCDDD758D466939A23D7A779E813657B78B7EED0FE6365FAFBE78109
+CAB35AC2730A761CAAED96AFDADB83467990C8FADD97AA854076AD6C685EB8A7
+7528D9E8250462972EF06EEB9BCD3B1076ABCC3DE786B58925BE64BCD5B52075
+41D34D08480F1A1CA16F2E2F888A3794787779F7699443E56F512E3CE8C856BC
+D30453517E576B499942C5EA6503D5BEB7344FB1FFD666A88F35AFE37FB81F06
+5B6930D071A679EDCE7A3FD54AA5D762201869B2A54A3D1711FFA03CE8A11AE5
+7D8930AE0CC53ED7BCA346117DCFBA277985EA6510C3F8F223DC49DF7F9069CC
+D4AE642D17175EAF9620EAC17BB5A9923E0120E266AD77C420205E1ABD97EF02
+549DA22A5AED240E29BE06159AF66F32E95C55E2AAAE59A0C0FEA52489426A45
+53BB3C1FE0DBA6BF82F653BDF7DB45077F9B20CFD5B4E43AA7275B04B228BA3A
+600CB6F5FB79027C7915F6DB98CF657133AFDBBC7AF5B172F51A19C17E9EB31E
+1AC99D9286C7C214559FF453597E50C71F5EFF98FD185F0987EFC3D9A7F327D2
+6CB3844A7EE6973AD53DD0B4E53E1B662E1FE92115DD472BC7B25945620125CD
+DD53ACBDE61E4579D906ECC9B6B481D05C1D7C28B0F541A58EC1A633E8116E05
+AEABBA8131AA8CEE3BDD701AF729E30E57DE59FD6886127E802000F940CD86EE
+C90FACB91E5DEC3D64B2092401168A544009999A70B22BD5788F04F3B9584568
+B47E4964AC3929A71D434E188AEC70B86FD6C1387BA92E2116DBBC7E2FAFFA9F
+72F04DD67BFDB55114DDE244C69152042D81749F48EDD6F1744D01491CDE8C50
+870277E3E8935BD53EC2A2ACF84AB91C08F960336A57CB100B8EB0D231B6C1C8
+EA79C89CAED0E6802E565CBD83F1C3397D2B52A684A795DA87B926587C0C0E3D
+BF5155EC84B569FC62753432E54851E556EF5AC5BF70F5FD0280455DBBE1992C
+4B2EEFABAC5EA8EA23971D0685A2F810DB0FDDF6B5992075AC8BD1DD09994E5E
+77365FCFB8B60574D6808B67B6871B0FFA185BD51B346CC39D9D90B71307B3C9
+0B7792E968E451AB2EA98FB292AE1D2C1D51BEAE7242E39F6FF16E35193B6775
+3DC440F3F8213B6235915CE0A95E66F9C7B156F00923BC751E55CD258E9169E4
+8D00DDFC1ECB3303E2BBA7BD8298B90800F03C4E5DFE35C3416B20648551BD5F
+06E627C79703AF67D82E6F7E808BEC53C3F4D8584CC450520D2AC98BBF61D252
+0C798CB7D46578E8D0B2C2BDCDB0530A84448636B9A4ACAE49653A3A23721204
+EDB3958F22870A780C6070FF5AACC05932ADBBAAF8B3FDE38C79D877C923A816
+6AE4151DD1AF18732406E9C2A3E6A31F52B958C9FBFA2A208F6C4E0C38C5C9C3
+932FE1F22EAE1509128BC9C82A1AE87D6A3BD3A28B6B03FD1D2E5B134D2E442D
+464E6BC0FCAC5169EEA9E84DB1A2FB7C69F6EA95BD3EEED2639ED94E6EEA164E
+14EC0B4ADCF8CDDFF3F40665C47FCCB34EA53C8028A7EEBF68F54A34CE83DCA0
+F1C4149FF6D7B78B916B9B2C81129F0063F5C2841A68BA8120FF3FCD335284A6
+120823E9373C4E9B3E806C96526D3D2E28803F9E2F83E0BFDF4967C23F6B8F75
+1180F8F2EDA1E22949DD7F5AF1C0E14154A61E455ABA30520CE4927DEC63B938
+30E0E6410ADD21A255E3E9C11314ABE90744D2654C57474A94B562A1064BA2C8
+1223B02CDF1B8FD7D280EB925DFE1DCDE64BF3C49FE63F1C64B7E1AE9F397C9E
+BD8463A5BFA07179BECA5863E9925DE6961EBCCE3056CF614CC5702B306D5E30
+BCA479DE6B3D3C608482F3355C47A3A58028948F6E0EB3DB071CA859FED88086
+97ADDD886E1628CBCA3D156CEC29EDC13CF4BF432F85E92D2AF9FC9DEA1084DF
+EF27CA5E4899B59794323CF76589CAC0DD967A3167CBF3A97E3CCECAF3C7ED21
+FBD92EC16252E14DE054728300F84EDA90A263E2F9A614834CAC8F83763C556E
+BD8CFCFBB7BE8E190705F4CBC23966E24203DDCD96B7E3A9095B6D03254DE821
+2236888B2880A7CD241A37B8B6BDAD017162E3EFA3254110B16EF0BE180C52F8
+9CBEE7E29BB880EFA9E94CF3A1E75449E96E597F5AE45076D541064CD62BAA19
+DF82DDA801C0B0F48DB7518752401CD8A82CC4CDC391B750B1243B52FD99DE3C
+6D3C2D775C8E29173D8CC1D4954BAAC11CFBCF7E47906FB84508F012C7D7A0A5
+86B931612D4F8792DACD88E3A2163ED95DCD6AD6393822888E6E4C9DC838CB45
+46D57815C436FD5E3DB1B88C6B2615A68452A89E43A49DD39E373FE48ADB4A2A
+1504E23B85DB9323CF7D98F809464D9B968203511082DF40AC95E0C647BB327F
+5FD5CEC0BCF7B64EECAB1360FA45BB447AA22CFE43100B2EB1DD092EE4AB94FA
+D29244818EA103FE840914040AB6666DA7CFB6281558EE74779575ED72984CEE
+422CB3C9B83CB16A54DEA0D50C58C9FDAEF11536A9D186FDF242BA88C56EDBB3
+594C3B33
+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 46 /period put
+dup 49 /one put
+dup 50 /two put
+dup 97 /a put
+dup 108 /l put
+dup 111 /o put
+dup 116 /t put
+dup 118 /v put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 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
+0F44B5510AA5DCCF129D5478DCDDE23D488CECE5733E90D1CCDA927DDDCE0F2B
+3D90F878198E799ABD12F2227DE8E5510B6A3A4467D05E979D83FDE2E2C134BB
+B9BC4DA1FFDB9FED41EEA54E0358348909A74E087666C02DB303C74D7AEA8C80
+9BACB5C09F2FC81A6C36B044135705BE23C885EB85B19BDE626AE44B27C0E9C7
+FAC5078C95F84E5D4F1CB497CC5D4799ED277CDE92557929C2378C3BAB9F4E3A
+5368AD1F4F2FA25BDBD608EDF586856060E14414A765BEE54F966B66C414E735
+215BFE5E8891181C0021507266D2DD0D28EEAEC7530FF27FDAEA587D4620A0F9
+7D6CDC2D61461C30404B49B531BE7BA161C40E3760055818EB6330909B35F651
+C158DA04B2C6E9407D2626DD1ADBA88F4F7723495CAD7447EBCCFA4D3B6141DF
+79F9EB346C3C161B1C5883F1CCCC89BEB8BFBF9636454A82D538A647BD7D0140
+FFBC7AC5C1F7ED9E707862FE9BCFAF34A1B186DC39BA6F61241436563BEADFB2
+CFA7F0A514A9D55E57746289B8F3966CEDBA09DF20737A1EBDB64EBEB4CD4E54
+56364939C840F897321A3E69511C1ACE58F161F5AF4209F672AD82798FE12635
+0813A8B2B81F0A6200F25F18D14D3553929DD7EA789A78DDB557BF50D8434ECB
+4B5B182BCD3C558918590540F47A7203C108CB19F2D1B2FE7F894A364FD3011C
+7ADF9099EF6CABCCA3D28DF84E0F85F637601E4EF266F17E0A002E925191171B
+12A8D7214E58F7E3CCBC8315B12D7DB600C7C23F1443E4FB458B0A1AC26AFA17
+BD6F5637AC7234955BC90E911B1A2E37D4A4217F333DB6BF8508A150EFB0DF79
+FC1B7FFA9FE75E98452F33F7AB09F0818A77F82977356E872B195D1D10F77122
+068756B3DD2F751EB18BD779576A4B242412DD079B15C9FE213DD69A25F3BD72
+C6B37A8CC1805C30C80FEF386B836C0D67D520824E4C217209B0201E96865510
+DE4E58962B440FADE44A7ED0F6DFA54C38BB3C6F43562E1545E2F484A783C6E6
+862AA68A777D8000C69FA803D41B9980F18AB3F37FF0CC97C5592EB9B1C07D8F
+6964E1322E354856BFF56EDA835648A7504225ADA8FAD2C96951B66AA6537985
+A8831BC7207B05289B60A719650FEA441FF97C1A23303539E0CA134EE4709D7B
+A8199A6120E9E14E8550E8317D62982C294395F535265F9BAAA41DAC79802C8A
+D679D9422ADE7EE8A2750FC097EA11E434203FF045070DD199C94AA980E12DB4
+F7C8EE7F6E1F6ACF14ADE31305C5AA07601B4258B2A9E78BFF0012EA13041644
+D2168158E4FA6BB6134D95816C397E3D67E55B055FA497686A8774C1F4C155DA
+B6C0CEBD7F6C929748F2928D60B859E0B063AF228A41FC013672938F2391EE16
+CCA99170F266DD8B1B058C231BF1FCED476A7BDBE6103A1BCA233E7651CFA869
+3CC38CE80377BBD839EF11B8324A64188C9994BCB9C4A07C750563FD210E4553
+984FB926A37EA705AE71E27C1BC470A32C98E47141562865202301B98F2AB93F
+E1D17875A0CD84AE092F5F0B76B6FB48BFD4D29AD3D78A2A0F4E5F252A18B2E3
+6012889A2A6C936BDA7FED52E328991AC3BFD012D24DE8CFA3182F13A4C33BDB
+9B22787524BF81732FA12C958356B72B63BA57F552ECA96E0284ACA65EF3A21D
+D66AB5
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 8 /breve put
+dup 55 /seven put
+dup 71 /G put
+dup 195 /Atilde put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF814B479377B71DE1E6A5A3BEDF09B94CDF51C220CC1ECAAC6AD874D3
+948549355B2CEBA27FC7AFAC507098CAC9DD91E34690FC4A1B2D0D9842C74229
+2211E48F88FE8DDFA41CF4AFA7B074462E8516FDA8020B22ED5E653A4636F2E5
+DB8CF80BEBC9E285DD5068AC96A4A7A48A1576634E8127149625577C6E731566
+1972FA7FD06E79ECBD9B339A09CC5232ACFB27DD65A6F5CA9FD7CD00333AE027
+DC29F9D371C82793A3C7BB27A6A3371E4D7B9587484D47F29334851D7979A521
+74C2BEB04704BD46B06B8B2F7A2950E4B4D47CE89C05CEB148A2E31516E1833B
+44412BDA104785E90D640EE4955F97EA8EE84B7B9A5E07AAC3DC8DF6C44EAE0C
+CB144C9E19B35021978488B6D250F03F7C7BAED22E3AE781135EC5021BE13731
+9138447A6E4A1795A263341939C48054169C609450480B1B1E8389DFE4DE9771
+1C6CA25AB2AA36641A403ED3DCE607D95DB000B125B998E43FB1E2D8E560B97B
+45FA39D9753E30FB4B813183FBC9DD496E00D1FF1E6ECF78C55EB5B0E8719849
+0DA9624256B4698876308F94F3EA4CE9F5441C0FAB860F3960545D29D04F1227
+C702F02928227163BB5729181DBC51849A6FA943FA637E59288E06564D8DAC2F
+6D60E0898C63C0926659573F6375465648FD95610D0F55DDA9C980F6B2A8E8ED
+25EB574B85607216EC9DFDB92AAC569CB612CD0C3331079B526CB737642E5F7B
+F6EF1EA8F51D5AFA668DD076E5D1AC67C9989DC9A143735B334C7963CA3210DE
+0B2D9B690A8F8FF27225B6ADD479FDC8B408AB04E99B5EF163D9B84357092EFB
+A1B3EFAE7EA98899B9BEAE81E14E2EAE59169445F76151D8152C5E779C3B69BE
+A3D36B4B75BD7AFB09A90B73955BB9C51D9AC52BE67BEF945AF8FC2ACF6D501B
+3400FB24C566EB59C3992116AB1F7147257DBB88F51E7C6975D2DD09D38E374E
+A879C471D00AF50D96A38CF53C6B974CA956A7E3F913456C7978C5FD1F18A21C
+E9A5B1CDB15D4D5AC5DFF73BA7E1E8DFF0ABEDBE6B963D291437B95CDA4D95BF
+116C42EE50A2ABB2FF2ECC517F7B4094FE98491691271C0A8D1BE39005C47A3E
+15CDD9E9488588C396CC882376ABFA9E6331D554E68292C2CF2F956561A08595
+ADEF84599466BF18F8E9E69A61F4317FCADD2FF98AB6F2C2CFA49B90DB0892E1
+B165C20EF3F27146C04DCC8257D011C222404D6C3DD3A1262B23A312A642CD73
+5FA09EBDE461E9ADBFCD94A8BAB71D8261286F7B374418E7FF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (volta.dvi)
+@start /Fa 135[44 1[44 1[44 4[44 2[44 9[44 44 10[44 35[44
+44 2[44 46[{}11 83.022 /CMTT10 rf /Fb 137[44 1[32 4[42
+2[23 10[42 46[42 42 2[23 46[{}8 83.022 /CMR10 rf /Fc
+60[133 123[106 15[0 46[0 0 7[{}5 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 3886 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fc(G)p -137 98 20
+135 v -107 98 4 135 v -84 29 a(7)p 13 131 60 4 v 61 129
+4 117 v 23 129 a(\007)p 316 131 60 4 v 364 129 4 117
+v 303 w(\007)p 628 98 4 135 v 632 -74 4 100 v 663 -103
+a Fb(1.)659 195 y Fa(V1)p 777 96 4 117 v 739 96 a Fc(\007)p
+1079 63 V 1041 63 a(\007)1344 29 y(7)p 1364 98 4 135
+v 1377 98 20 135 v 632 -171 746 4 v 1397 -74 4 100 v
+1428 -103 a Fb(2.)1424 195 y Fa(Vx2)p 1542 96 4 108 v
+1504 96 a Fc(\007)1543 -12 y(\303)1625 -8 y(\303)p 1756
+112 4 114 v 1718 112 a(\007)p 1922 131 60 4 v 1970 129
+4 117 v 1932 129 a(\007)p 2235 98 4 135 v 1397 -171 828
+4 v 2383 63 4 117 v 2345 63 a(\007)p 2638 131 60 4 v
+2638 164 V 2686 179 4 150 v 2648 179 a(\007)p 2950 98
+4 135 v 1397 -171 1544 4 v 2981 229 a Fa(Vx)p 3051 131
+60 4 v 3099 129 4 117 v 3061 129 a Fc(\010)p 3488 98
+4 135 v 3502 98 20 135 v 3522 262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 262 a -364 575
+3886 4 v -364 608 V -364 641 V -364 675 V -364 708 V
+-364 673 a Fc(G)p -105 708 20 135 v -75 708 4 135 v -52
+640 a(7)p 78 741 60 4 v 126 739 4 117 v 88 739 a(\007)p
+472 741 60 4 v 520 739 4 117 v 394 w(\007)p 876 708 4
+135 v 879 536 4 100 v 910 507 a Fb(1.)939 806 y Fa(V1)p
+1057 706 4 117 v 1019 706 a Fc(\007)p 1451 673 V 1413
+673 a(\007)1807 640 y(7)p 1827 708 4 135 v 1841 708 20
+135 v 879 440 962 4 v 1920 789 a Fa(Vx)p 2038 673 4 117
+v 2000 673 a Fc(\007)p 2384 741 60 4 v 2384 774 V 2432
+789 4 150 v 2394 789 a(\007)p 2788 708 4 135 v 2921 741
+60 4 v 2969 739 4 117 v 2931 739 a(\010)p 3488 708 4
+135 v 3502 708 20 135 v 3522 872 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 872 a -364 1185
+3886 4 v -364 1218 V -364 1252 V -364 1285 V -364 1318
+V -364 1283 a Fc(G)p -137 1318 20 135 v -107 1318 4 135
+v -84 1250 a(7)p 13 1351 60 4 v 61 1349 4 117 v 23 1349
+a(\007)p 316 1351 60 4 v 364 1349 4 117 v 303 w(\007)p
+628 1318 4 135 v 632 1146 4 100 v 663 1117 a Fb(1.)27
+b(v)n(olta.)659 1416 y Fa(V1.)42 b(volta)p 777 1316 4
+117 v 739 1316 a Fc(\007)p 1079 1283 V 1041 1283 a(\007)1344
+1250 y(7)p 1364 1318 4 135 v 1377 1318 20 135 v 632 1050
+746 4 v 1397 1146 4 100 v 1428 1117 a Fb(v)n(olta.)1424
+1416 y Fa(Vvolxta)p 1542 1316 4 108 v 1504 1316 a Fc(\007)1543
+1208 y(\303)1625 1213 y(\303)p 1756 1333 4 114 v 1718
+1333 a(\007)p 1922 1351 60 4 v 1970 1349 4 117 v 1932
+1349 a(\007)p 2235 1318 4 135 v 1397 1050 828 4 v 2221
+1146 4 100 v 2265 1399 a Fa(Vxb)p 2383 1283 4 117 v 2345
+1283 a Fc(\007)p 2638 1351 60 4 v 2638 1384 V 2686 1399
+4 150 v 2648 1399 a(\007)p 2950 1318 4 135 v 3051 1351
+60 4 v 3099 1349 4 117 v 3061 1349 a(\010)p 3488 1318
+4 135 v 3502 1318 20 135 v 3522 1482 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3522 1482 a eop
+end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletrest.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletrest.eps
index 7093dd82899..4ffa2a81275 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletrest.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletrest.eps
@@ -1,10 +1,10 @@
-%!PS-Adobe-3.0 EPSF-3.0
+%!PS-Adobe-3.0 EPSF-3.0
%%Creator: dvips(k) 5.96dev Copyright 2007 Radical Eye Software
%%Title: xtupletrest.dvi
%%CreationDate: Mon Dec 13 22:15:58 2010
%%Pages: 1
%%PageOrder: Ascend
-%%BoundingBox: 61 685 312 777
+%%BoundingBox: 61 685 312 777
%%DocumentFonts: TeXMUSIX20-Regular CMTI8 TeXMUSIXSPX-Regular
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtuplets.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtuplets.eps
index 7be7bb7d1f7..358a28af2c9 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtuplets.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtuplets.eps
@@ -1,1142 +1,1142 @@
-%% LaTeX2e file `eps/xtuplets.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: xtuplets.dvi
-%%CreationDate: Fri Apr 30 23:03:32 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 658 567 798
-%%DocumentFonts: TeXMUSIX16-Regular CMTI8 CMTT10 TeXMUSIXSPX-Regular
-%%+ CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: D:\MikTeX\texmf\miktex\bin\dvips.exe xtuplets.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.04.30:2303
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 54 /six put
-dup 56 /eight put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13C6F0190EA03208C1624923CD23F6BA9B722C
-E2316C051790AE71DA6260D5496E8A0B6E3C14171224EDD11B92E199DAE5F8FD
-B9822F9A31D63E2E9F980EA0E6117A84EB1C2AF38ABB15DB646BCC63CCA6F94E
-F3F523ACDB05070DAE2468BD5D162D54CA0D805BA67873AF78C5FD9B0FC5E688
-020926F5AC03D295120E2ABB5656B485E8A15928D1C853E4453A66FCFC6208D6
-1A4B011437B9E720AA5742FDA983E3D8DD6E7D7E95ED886A3F81B579757EC087
-71A6BFA6D42CBE0DA850E82D85EC8C10135A3EE811E9B62CA656D16E3026CC1D
-532A8CDD835A516D3C64F982E9727751E327DE2A025F6B5F5CA552E4A7308571
-BE65796766832380F814DBD17E939AE2B64C1E9B446647DB2862167B2983895D
-1EA9B7CB7DDED044B67B09539D4195C5BB6A8423237EBC12B9BEEAD89D263A4E
-76BBA075736BF5A88FF8281A702525C826ED203FC8659CDA18D7AB5E26876B24
-CDA860EEF75F0E4E4B1F30AD3E9F13AE4A56DA1CC8FFB7C765A442A873DB342B
-16DB4A1CD4D1D798ED77CACB812E4BD55354422F106D282CF3FADE79DB8DB515
-B374B5A2CA873D5F2DDC6A85FD765FDE7D0312B6FAAFEF40FA6B269A63D83F47
-6A510D39CC4A64D9DD59CDB4BCDE6E5D04220D213AF83058DA3F494C94C3C903
-76F5E1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 21 /endash put
-dup 22 /emdash put
-dup 32 /space put
-dup 33 /exclam put
-dup 57 /nine put
-dup 68 /D put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1ABCB01CF70AD5C0709D6C68E309A8912EB1866D31B3ADDEEF4FE6
-DEA92FD943B1D0E2B2A72B4E6F6198DB8850E8F62BEC05F5895A35D2EBEC151D
-D1F32E6A91F3719974935FE2F7E7BD75B5208BAB55BF1D3BC9603FB03611C700
-07442890C85240D57C7C3968C89EA69B3D75AD68A7BD0127C80B321EDC7189C1
-B2F8282767E7CBDE116FD7763C699719AC5F132F0FBE324EA8F5FF1C9C3ADB93
-17FDB35FB51692846C67A02136EE2827BF4FB52399C889B4B017D1BA678E6DAE
-545D73CB60BC08ED5ED2D2C0B9E27D256D0EEE179B49CC78AD01030806FBCDD4
-76AFD0729F3AA3E94701B348E7FADAC750003205ABC6B8D1BBAB27DABDCF56A0
-B900DDDC30EA9DFC518C382DF842A4BD14A85402915322774A26CDF9553EBC34
-29E945E4087A26412F91C26EBF5A75BEC8F6DDDC18F8FE1F80829F0823A7383E
-1D1CD5A4745BA8E4B0A7690438BB9BAC08893C49946E68D93663952004384A09
-FD476236B3555178371FCE5E2F9C8093DD39D86FBFF328DA9A6F4A7D865C5A87
-6768D312A57DDBE44EB34F3759564F6B23743372D5693D4BDC44EB52206FF796
-FE61B10F3B35AA26A02398B5D72E31CF7E468B12D1D6CBBED4EEFC09B025D75D
-5C22BB169236C6F0FF88F0FBC2D85D553624155E0A956399391D16F0174657F2
-7B864B32A3DB5CBCD0393320C01BC3E9F163EFE84E8CB09AA84E09813D1D9718
-FC594EC1FFA27C68FF95D4A5DC1B95E2B2D7CE6A6F134F7D97696DB5A5239066
-2F86D1331486749340336853BCC4AB747A772A6CD80E947979C3E3373A91B93A
-5C28668E67E4AD474E144D26E532E815CFFC2E11567B28F434A6D6903CAA69AB
-BDE28466AF647A37007A5F91734870E5671DF837F7B084E11C2F266CF732229E
-C192F8CEEB631E1D901D174DD13407F718378DDB798F980AEA21659B32CA5777
-2F372893AC0C2514996406B6E986C8128D0534EAE7C3F59A074A20F5F0B6EB1D
-D9E5AE27
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%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 43 /plus put
-dup 45 /hyphen put
-dup 46 /period 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 56 /eight put
-dup 68 /D put
-dup 70 /F 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 110 /n put
-dup 120 /x put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A9D9755522FF50BFFF61E504C1AC474646B0910BEB2B
-950E33B9AB30D0786CF7F5F5DD218EBDF7B90241CFD6EE56AD3ED6BA5F18855D
-7E430575CF31761423CF91A9275915A099A5D0C289E5CA71844EA3179A2E917C
-8ED53F194AC2E42AF88FA2A7843F392E71F66DEA6D6D320CC018C055ED3FD2E3
-D896CB52C58907EC253A6EE4C0F0142C0D2BA97AAB203D626433EABDD890E1D8
-85B46B1D6801E39931F402F8825A21D0D4869F02FA1C99FEE1A786CE64B76750
-63A2B3BD3FA2B3E0E04ED9832582F5515AFEA4AE33D316ED13D544947BCA38CA
-9248812BFB89A91453458C0A2D49D46F971EC9C5875A3B85BA7736F7EB48AC80
-91C25D42C302F6963AEC093D804013AF4326D75D838C039DD7B637802D663A87
-55EAE9A270823267DCAF70D85D56D17D89DCCBAB7DACD1DE23FC6FE892966602
-4C5D3B211F325B99ACAED97EF275CF917A6A67B5C04C700FBB29DF2FB1823215
-202A3062F218582C59B4973E4E9FB1DCAC3D1DC5D8096F80B49CA3444CF1294F
-BFAB57DFACC9D019DB28335BBB3DEFDB921C86FBEEB0F238F7A3840D783A439C
-62E3102054068412621214D6CC59FB6CD9CF4BBB73A61F7C685A3A9A518734F9
-E4D7E801AC7E97C83F76ECD2882B91FCF7E694BBEA02488CBF10A57A60AE69F1
-44832469CE1088DA535DC05FF15EE71F5CC8A8518304F71C5B85635B18FB8FAE
-C00078161AD00F471ECAEB7B45F97532457998548EC65BF7A2000507D3016CB7
-7C91C309BD37F8007ECE3138BEE05B308A23D6D7E588EC80176CDACA3BC49CAC
-3B233D73E639BFD60A073B2BE61CC0F26DDF48CADF96F9413FBF1C2DE273850A
-CDEDF89CBBB08E9C1BA99FCFC7C1AA053199F341D019829AFE863747C1FDC7B3
-8BECE8BB0B2F06C89697DC6FF5E875146F413F4C42D8470CF5CE4CC04ED9FC46
-A680DE6AD3D0BBF5EF644A3A2A34D2EAAF5E7F3811FE1F6FD96500A95ED7962A
-FE0EADD850A680972F144CBF078B8E82FA23063899AC1339A5CDAD7170D37A30
-13FAFEC3EECCF53C4A1AAFAD3B24F6E20BAC9E38AA13AEEC039D92CF9C6D1D83
-76A96ACE03FEC46EA52EA93EAC45949C9A7AD1E7948CB5C57B41750FFAA4B048
-3E7DD290F56578EB721E1449BACFE3F598BAB04122236A5A65E5C38C3EABB781
-9B6CD5FBAE3918F6324401B67EC934903C32EB3CCD7B449B61540D4B4AC18AF1
-AFCC130903EDB1CE4D33065DBD29741201F96F9225443BC77B4E6D7C70295FB5
-D84D6889645D0C43D0525F6B018231F8CFF293D29AE4C7BE59196F7F45CDB934
-1C123C2E16D5374ED310B03DC5FC67719A22771734F6F3C25288FF5CEAA250D6
-D4941B8EE911F856DDD0277E040CD78A79AACA38A637B17489C6D91A307803A3
-A9FCDA03B1ED9FDF33A54CB3FB14E33AC6D0C4C17659385181323B199D4F029C
-11676A74DFF18DA2325C0687DD3232A72F27884BB3FA09C9FA131FDFC449AF7E
-ABE350F46B54AB693591295037665DC4CF84867732F41C7D4EFD0BFC7A91D72B
-842A69CA7479ADF7731FB189B0F06E5004EC5A7AC2A05B4D4896A4C5BDC5007C
-C957D89ADF6043BF25304E03FF619B78859286087601AE6501F5166965B9E3C0
-2B3EFBE636240BE9517CA4CF14EE1C9A42AB00E67E280DE00341C7F78FC1BDD7
-037984FC80CADE34F6B0E2906BE03E6D11DD9EB3FF0944108A36CAC1DACA014C
-1BFB784B5F5A8449DAB2C633F73B9C514ECD698D0A32FB01393A1317579CD8D0
-10CD54531B0CD4E1DED0AE9495BEAFDEB4E60877C8D8F6C0BB28175558481662
-00D07F7C836CBCF186953D0B8422C24A80560A24D2667AC2D8FCBDE65448FFD2
-C7AF19C1B9AE8764BF598A23E43A872DC497768A2DE6EBF0D48CADA1BD24FD68
-5A665446804AB37E73FAD239DE3E57DBB58F644F6EC63ADCFC21DE75C07620A4
-771E026871B377B77C8D07DA22F85E745B012B5EFEB8BD22CEA0F741D21069A0
-3F1329FFC3826BEF34BD95FCE5E55E27385894E6FDF1701F47937D1F59F542AD
-7F153CC8055AA83065A40F3879CB9836D17A455597E18FABA35057C67DF63D25
-4C875D5ED8DB9DBEE546D522BFC3A06172D302E341B9E8E2CEEAA42EC46C5FC9
-79B51C0F87714E62688A2F18816B9713D5C3C0D980B48CBEC204EEA5B381EEEB
-DEDAFDD59411600020FF082EBBB197606E571D9D89A31C115E4822DEADA0352F
-CDC2FBF3D37E3CC1E46370B60B2C42E483A056D3E5ADE954E6D6FC489A9AECB3
-60D521741C24E8345BF9906364F3D3FA5CC3E7B1DBD49C2EF6A5EF3E71E1C34D
-92240CA5F30F53CB3C3D3EF920317BD154EADE277AB900577D43838174174CB5
-574FEA4B091C6CB8D1DF0C18C7047F7E22A09968A0AFE40860430D80A34AEB49
-4C66CB89E57BCA0CFF295E56400F8B660143A9073DFCD1EA0D46E2EE17377C43
-EEC9EFA0F807B49B8508D01CD95FE5818440C241C792D3598B356BFC9E54BB3E
-390F9A69D05C4197BCF4352155764164B48759F42DBCB89A5A91FC121FC88EC5
-B6C31F1194973ED5657569A4E3812F10EEBCB2D42D1C39A689C59BB0843081BE
-5D79672EB3E3D276D46B2BAED6C361DC0CE90AA065EA4F16C15490298F9CFC07
-94B7D0DC7C6D50F73516FEB2E7E2B33F2ED3132C66D75D950884FE842151E4DD
-C54C6B0CE6C70AB84E2F1FECB1FDCAA41668609F6B37400715F22B088D5AA363
-C28D260E7E398E9838065B8ACDDE14A40718566534ED27E6C2B4964899B18A3D
-CD84E1731E3087F1AE95E49A28BB08A26B683F652BDCC4B1496027305AF45D41
-ABCCD3ABEF70667198436E200BC42E6D431660B3C91279063FFE0F5F77844E2B
-D5502576C1D1ACB667227042B835C0AC54170186F162CE76BFE7B39E326A20E2
-AD922E0C02F7E95E2AFC60ACB872DB6BB6AF2C26A3B54E27F2725073110D814E
-AD7136F399F04E044FE28D5E979EF181B25070223616A6CDE17853C5A57C5E75
-CCF036B36D5A5B6D12265F890E6EC651A0BCA986B23B2E41ED976E12BA91F9CE
-67EFFFEEB31C55F9989E762AEE5A12D882AFD983F1615BC431388063A7E9FFD8
-23F9B36319371CF72EDF0583AD2FC609E2E47FC3D5DF720937A85CF2352834B2
-AABBD82A6A613256104C23DA53EF76254BFA56679E14124141BF11EC4F625FB6
-84BE7AAA8997CED05CEAC2996BBB29D4A9CFF6EB0D07838E0D61FB2D9DB93771
-DB15E9281C116630AC257BA1B3182901F6BC07DF975BD42B77F24074447F8E6C
-B4E43F716F4EB4FF36DFD41C29BCAE6AE95073CA4217103E9E5D4228478A7564
-8E847651FCD262D75AFEA49B72BC640A6EFA1A5D7B6018979F4A7FBCE417B574
-3F7F87984EF35EEDA1B09426AF7CE15BB1191F01CA7628EF67DC302EC35DCC85
-EB85B1DE534003B9DD795DA5581907D9EFEA2B5E9E1E023EF6EAC8A88B30AD72
-116DE3497AC713698258E098CC1215ADC523257C33302FC010CAA779069E4F0D
-78723370581B9522B26841FA9AC1A56B3A5459C23887433145E71EEF02786386
-4F903C1D2A33F0B1A5DE6D955A2D887FA8BD622AD737D61D5E380C75C97E8F7E
-BFB1ED7A60D5ECBEFF966D9F4E98EF4F5BE5FF06BFA642978A03C411C9A9E4ED
-8CB6598B5F449CFCDBAAC0A30572E6DCE9A9F9D9F250C7D9A101D5C8E109F3E0
-C21F63D6A092F76276384B82E58D165A5FB25CCB7CD9BF042B0C10081E7129D4
-9583CD99556C7EC1FF40603A0049ADC1F1A4CEE143A11E20A95BCF27DD29952C
-E5603998A6559BAC069BF00BDD749CB3BCCAEA9ADB93AFD5AE6F1E75134F563F
-4F9381FC154FD8BDFCEF08BFB1EF903C887B2ACCC239FE6E71E37D346D9FB4EA
-F3DF0D1367F3A7EA495D88DB0D2056A06D0600201E40BC9DFF8DAB4577AA11B5
-025C94CDC34E65A0530BF7F0B9BD61978CE00E5790C95E6ED56D767E2EB3D5B3
-C8013826547E250AE9265D0ACA19AB9F6D91B301E7C46C7F931B4F904060E23B
-08387F44C5F906FD87B7E84924FE66F9FED1E929427888B28E5AC9083D0A6BC3
-2657346548A10866183E67E8FFD17CBD11ED5A3DC3CC3D08A042AC44660CE0A1
-FD0EB14FB653F1825C6CE1AB06ECEB4F8C88672AF86DE203427DE127FF9AB317
-ABABCDE611839C16D2F59CB2ECEA25914DF1F54C4823B21276FBAFA01B384559
-5ED9142528976700BC90004ED1BD97B30F47A500106A2F07672CD9055253A580
-530A2BC58818B3C5594BFAA8B9B49C2C8CFD70519A863FEA470158EE3E261BD8
-A1877E382013ADAC5B882B480D1220A7D14B589254C0201368990B27E55F3947
-461BB073A987113F9770399EFCA8A989FF962E7648F79603F12F22480E490F50
-3772227B6E784151D819066994304DAD5A65D3779843582C0D5257F2342217C7
-2950CA39A7B9FD39ACBA8C589F79AD6D5BD48F985BA887941BA04FDD70682885
-ECC632D5394FF038553C4EB069E2570FE8D37652D20405A1D7A18C5405063033
-7BA7CC90174520C3EA92D31408059C9DA77875CCA1FFA8EA2DCDE5E126C42D24
-94BAF2AE4A9DD330A386099BEF31A06FC68A373E797780F448C86539686C804A
-1D4AE3BECF9F614A08A4B7E2DC0BEC19B5E7E9428EEB5FE3FB26B97CBA469D89
-C83FEF12EB9D4A469CC0764AF9CD5298D1FDEE2C6C6EE0EBBDD7902A9B6D98B4
-9A5434A8034FDA63ADB8E79CDDB395D29A28793D64AA1B16418E320FC7F7826D
-F9DD1DBF82930CEED48FBB6E930423DAEE3BC7D49232D49A1746C486420423EE
-ECC98498532E3D563760222100876BCDBAF299F6FF154B649D1D132053AB2C53
-7AF3991FC315F8828AD4AF735A07E29B5BBE2278BAC3FC66A99C07CE909C4A43
-8479FE3DB8335666DAA11BD71927553B0907924724C460BCF11BA55DD9012945
-1EB51DF1EAA452F671505B97A0BA3E66942C0BB528B218B1FB209885E381D79D
-AAE3E8497CB3AD1F53CC00CABE7D33DBBEAB02BE0E5250077DAAE411DEA2292D
-8897BDC14598B1557E9CC05ECFC5C86E8BA51F2135FA8E04C7F753967B38FE56
-61B1ADE26C20B545D1CFD74F3656E2FBA60A4D0678C8A0BF33D38FC04FD56A1B
-D8E2450AED6ED089C23ECB43CD25087EA8303DA7124D256930374A2BDD5F1330
-48355003DD7A13E5DBA9
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4C7DFC961F6C1FE53CEFC199A95B8DBAAA3FC986A88F6684ABE1585E33
-712826DBA16971B8AD5B7CBC4CE67900097C69C2245E9EE458A31355733EE7CC
-90C4FFC71A7EDE118B4D71D7FE3EB35DA64B5C654FDFAFA258B0EFDA461E41ED
-58CD17B771CFC0CB6A1F12FA728105408A8959AF1931D2921B46D57937099761
-85559F27E71584C7BAEF5158C12FB0FA3B64ABA8F414C1FC923C5F3E6077C8D2
-EC8CFA4A8A5906F7B3B2C1EFCBA6DEED3AE32E488FA57018E852A59AE4C0DD0A
-D27AFCEF2880B065DC3EA87CF81D14CE6007BCF1E4554B3628D6F2821B4A2DAF
-85C0D4D431577FFC6EC199D049D4146B9D30D266ABF71BAABE6866B6E6D742DB
-2FB6B50079A980248896B05427B5D4106C6AC33B5BDFA72AC622CFC8CF42061C
-4144264EE1551A34F0ED7706DEF91DCABE4609430ED341F01270F860E9974CBB
-FB25A4171B721F966905220B344C71BA217C09C4757A492BAA79172E9B92C91F
-0147E4472F1A61D165B4485202D7BAA2059A2A60EFD10332F521D3B1AADA931C
-0B1D4CCFCD5D45C79304B86DAF526B36773FFEE65AEEC9DEE5CBD4796637A115
-F33F783268B743AA3A2B49CE472BD1DD86CE8C30FA9027FE267023A8CD6CF010
-027D9F20CEBA71AC20BBF58E04995C167072B42DA89C201730C32D706CBD6E55
-68D63802EEF006D645172DA6D002D19BDC85EFD7117AF75FF252D5E8F8B7BBA0
-E00580E97738675E717BE22B210040AA0DC3BAA6218D73B3036808530316F26B
-99CC5D8EBF41A1081F4057095C860CBF611D4A00EB773FF349DBEC0F86E66703
-D9D3BDF4DDF79DB606A08E274E9D9E1B6C70F6E2D91F7D6C9A22962C9FCFE01E
-D19E3638BE8AEF8790E01C7A24740F85378D14B2D2C6FC75D906CFDC215E3832
-CA6FD64C9F3D0BB78FDCDC38363B1E7906EDE5C5AC965A4FB15DB12C8D499C48
-92774A33111A8E2B674DAA3C1487DF7FD6699C6B3CB1339A13CC8F2BA996E606
-11AE6C0C987FE6F50778E86664137CAEA3CED2461B3E1C40EDB5CDA387D98C95
-B0202C59AEDD203BBFA90026149268FCE8ADC3BE5DAE7131DC9027805B5CBE78
-A532452BAD079043E4987A25AB0E9F393FCF4536E265AF4B24F4646ED98A97B7
-64A78A3E5235E61F0BA0F3626057A683B074C1860A838D89ABA954D2587FBE30
-9E643EAA66D2268E8204158BBF85C01F84445BF052CEDB557F681DB34CAABB42
-E5BE540C9DEAC27A4782FD75D7D3A8066B5D36F31AED0462481A981EFEF3BFD4
-1615AA0AFFF5CFDC800A753677387B1FFB64D4A73FC4E77EA216DDF3189BC13D
-99BE60AFD9B511FBEA809DD8D236F70DDB60FB4ED0F18F3558831C411C1C8CFB
-16AB745E5464D4F50543EA6CE70DAE402E5CAD5B041AFB33E32EEB100B03290B
-B01DCE175E529FF83CBB0CCF2B7F8D6D05150DACE1ED817542CFF59960A43586
-A53113F644DA9C24BCF39CB1BA6B0E4AD9B89BE46EB38ED776807ECCB0649C01
-CA0C8A7AD72615C52FDAD0C3875E0CE463D95C15DFC7A0C4D30E0E1FF1A7A971
-614F328957FAC286774C5641D74924B0373856DEDE5E05AA3D75F1EFFB631F66
-3E3629BB3ECD0DD16CE4F0BCA9A7BA402A45CD548D65F12EBCBFD8191D6AD55E
-3EBC360315BC30BFDEE5969A21DCEEDA063629132D92231B97BC4091ECBD98F1
-CE9667E3511961D4689D55B90B432110218CC99801CD59621BED3E5AE4208198
-67B13A90E0B2C1EA2A84D0F0F91C982D6497
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 45 /hyphen put
-dup 71 /G put
-dup 83 /S put
-dup 129 /Aogonek put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 138 /Lslash put
-dup 139 /Nacute put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-dup 205 /Iacute put
-dup 208 /Eth put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86463FD6FA342DC0139168F5BEE46B8EAB1D78359B25636C93B11DE0
-21B27915CB45437C3868DD1BD693E84A08CB6F47529E7F7B227DA3FDB376C15C
-BFC84F721111FC89C718BF7C77F311852668B0E67E69440690CEC6D8F7061605
-A4A68126B09455D6256EFF5F6E5EB47D159E29106461A63F663F745E5C9745EB
-7A2B80270D9F2800DD6D5B746F18201C0E6E90020BEB948B805403A784DE11C6
-FE923BF21011A43CCD01B4F5962E65EBC2AA89EB045796E85AA10E505EB7E76A
-EE0ED8D23BA4BC15EF2E19AD7D444138EB2C7E6CD793492DEA87154676C0A522
-B5029A833E15FF8C0BF47700B3BC5F55E235A902FD133C3BBE45009FED06D87D
-8E03D051DAD0B4812762F5B04829C0F607E743B709A5BC08E6574ED590CB0CB2
-8DA54E563F3CE7CDAA3F1E5C178D991388C73A98CC30D3493F25F23FF04EBFD5
-0C71C2309411EC72DDED0FDB935454E03BAACDC4921547A074D5586C7283B373
-A1B383786FA10E1299E5E05927B712113F5916D09286C9C0327DEEFD2ABA2489
-0D9A622E773A4919A928F16B055DCE8BDEB5AFAC49CA2D5A27501862A569192A
-FD92167DCC957A0176D50221A03153F2CEBA1E8FA3C3E209A6AAA0067975B084
-C9E2CC4B0C86A927AE638EBEF35C5BB85E3630B91038A5EC189F0316A7674A2B
-55FD8BC89BBCF617140B3B0FDD017FDFD3341D0A9DD8B416D6AEFCC1B3E69315
-4673144851C00F0E66266E2E9A82A8547F7F0BFA1234F8811EAD17400018E816
-0D1E953D795FBEB1416E0ACDD2665844D010FAF7DC3D6BD679103769614870E4
-226C4E8E37E5C02B38234B30EE1055B706EEF79BD6FC215C248635D6D8186912
-CAB48E8C27877CDCD6DBE64540F2AFFB0D26AF1E64F36C3BC519FAEA507FDAAD
-77B66B28F89F50565B8F557E8CAC300AE1FC6720DAE0AE9EB61A18BC5ABAB046
-DFFFBAF841FE5DCE1EFA4716807AE96878B084CEEDDC6989E0062A6E77F33EB4
-759B858966A559C080573A8C3CC8BAC05D667DABE6AA5EAB34768A06DFC2122E
-B15AECC457E8C5847DBB6A656A679C82608E349FAC896224BAB3ACBDA1206D45
-B4D63C385D129D5D1C2560076F7B196C6AECAEA5F5DDD117BA25BE40DB3C2638
-8DA1C03B4699C327B7BB19557C7C6C1D72DBD8ACB0FC646554963B1738048C3C
-F8180D025897F12EAAA5FA66912A4D57F0589778863E3AC6FD3192FC2217F3BF
-5C0049EC5B9537DC78656B8CA049B328EF2AA3EBDE65C1030A05AF50EF850722
-EE6D9601F0EE31E786B24EFFB7993D89E0D8327B4389254CFB18C8DFB994AC8A
-2C3099B2668630AD2D60740F81759B455FB1233509EA2D3BD1BF974692770856
-D2C1E3FA1E0FCFC70C05DAFE295632C961967771BA5258057A7E6BE46B6CEC46
-6A7F38F6818F77321074B02FF2DA607EDDDE9D8CD61F93F498F4E720FC18CC86
-6D6C953CC07194AA046A250BC34C947549A4E4AD011EA7B264F2A8958279CA6A
-99F85176CC0EAC988D603CC55535300FD80CF60456C6FA92367F539689024AFE
-43AA65EFDE25719A118104170B2DE78CA2C1B76B79E96AA83A6369D7CB5D0E73
-4BA8D40A599D6365B50D68F95D5B6CE2F9545D63CA72EC43881D0AA6BE7ABAEA
-FC1D8A601CDA591DB9E96950E3C0B4F987FCE023DC160AB6505898329A6AC699
-33731B4C1FD26E6DA3FBFC65D4012BBFCED2BF1B5E5C70CDBAAE157FD6026CF2
-C85F60E7F6D4BE7745A00BFBC90594E3066D2CF975BDDE3BB1365E21C9253193
-BF2FD24D57CB948EFC9C9BDCFC10CB97BE79EF4DA809C16CE0509FA41C943AF4
-8E626D85FD02F323B0068C29B0D6401146C8A1EEEAE3890F6E5858653C88682E
-701FD9404C5735B81B56E9EF763427EDE763EE928B324C2C48749E1038D0E52B
-7E55EE7E0C80A5E5E867AE74B79D8AAAFA8FA13E04D067B5DF1C648E0D483312
-92B2F830163B2DD357C29C5EF3D7C7670ED1F7A6CB50D87E255A4D417E920936
-1AF4989DC55BEB225A01CA497766360A40E1966A284721A09469EBFF8AB8C382
-D3BB19B581746168B54D843BB3E3C8D83610193DF757DA18320C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (xtuplets.dvi)
-@start /Fa 199[56 1[56 54[{}2 99.6264 /CMBX12 rf /Fb
-187[83 10[83 23[83 83 9[0 0 21[{}6 166.044 /TeXMUSIXSPX-Regular
-rf /Fc 135[44 9[44 6[44 44 44 44 44 44 27[44 1[44 11[44
-2[44 44 44 44 44 44 1[44 44 1[44 43[{}20 83.022 /CMTT10
-rf /Fd 202[36 36 36 36 36 49[{}5 66.4176 /CMTI8 rf /Fe
-47[266 2[33 8[266 133 55[531 266 5[266 133 1[33 45[66
-11[106 25[0 37[0 6[0{}14 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4475 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fe(G)-244 29 y(S)179
--120 y Fd(5)-68 195 y Fc(e4x5)p -30 96 4 150 v -68 96
-a Fe(\007)p 83 79 4 145 v 45 79 a(\007)p 196 63 4 139
-v 158 63 a(\007)p 309 46 4 134 v 271 46 a(\007)-30 -29
-y(\212)158 -47 y(\212)-30 -54 y(\212)158 -72 y(\212)p
-422 29 4 129 v 384 29 a(\007)624 162 y Fd(3)493 179 y
-Fb(\025!)576 171 y(!)659 162 y(!)742 154 y(!)752 153
-y(!)835 145 y(\025)477 279 y Fc(c4x3n-1)p 497 121 4 108
-v 498 121 a Fe(-)498 13 y(\007)p 643 104 V 644 104 a(-)644
--4 y(\007)p 790 88 V 791 88 a(-)791 -20 y(\007)1519 -170
-y Fd(14)916 212 y Fc(c2x14n+2-1)p 936 137 4 125 v 937
-13 a Fe(\007)p 1032 127 4 132 v 1033 -4 a(\007)p 1128
-117 4 139 v 1129 -20 a(\007)p 1224 107 4 146 v 1225 -37
-a(\007)p 1320 97 4 153 v 1321 -54 a(\007)p 1406 -69 60
-4 v 1416 89 4 160 v 1417 -70 a(\007)p 1502 -69 60 4 v
-1512 80 4 167 v 1513 -87 a(\007)p 1598 -69 60 4 v 1598
--102 V 1608 70 4 174 v 1609 -103 a(\007)p 1694 -69 60
-4 v 1694 -102 V 1704 61 4 181 v 1705 -120 a(\007)p 1790
--69 60 4 v 1790 -102 V 1790 -135 V 1800 51 4 188 v 1801
--137 a(\007)p 1886 -69 60 4 v 1886 -102 V 1886 -135 V
-1896 41 4 195 v 1897 -153 a(\007)p 1982 -69 60 4 v 1982
--102 V 1982 -135 V 1982 -168 V 1992 32 4 202 v 1993 -170
-a(\007)p 2078 -69 60 4 v 2078 -102 V 2078 -135 V 2078
--168 V 2088 22 4 209 v 2089 -186 a(\007)936 88 y(\213)1467
-34 y(\213)1656 15 y(\213)936 112 y(\213)1467 59 y(\213)1656
-40 y(\213)936 137 y(\213)1467 84 y(\213)1656 65 y(\213)p
-2174 -69 60 4 v 2174 -102 V 2174 -135 V 2174 -168 V 2174
--201 V 2184 13 4 216 v 2185 -203 a(\007)p 2280 98 4 135
-v 2579 -170 a Fd(3)2273 279 y Fc(c4-x3n+0.8+1.5)p 2363
--69 60 4 v 2363 -102 V 2373 21 4 125 v 2374 -103 a Fe(\007)p
-2509 -69 60 4 v 2509 -102 V 2519 21 4 142 v 2520 -120
-a(\007)p 2373 29 296 16 v 2655 -69 60 4 v 2655 -102 V
-2655 -135 V 2665 21 4 158 v 2666 -137 a(\007)2958 -170
-y Fd(3)2791 179 y Fc(f4x3)p 2801 -69 60 4 v 2801 -102
-V 2801 -135 V 2811 21 4 175 v 2812 -153 a Fe(\007)p 2948
--69 60 4 v 2948 -102 V 2948 -135 V 2958 21 4 158 v 2959
--137 a(\007)p 2811 29 296 16 v 3094 -69 60 4 v 3094 -102
-V 3104 21 4 142 v 3105 -120 a(\007)3430 -103 y Fd(3)3230
-179 y Fc(g-x3d)p 3250 38 4 92 v 3251 -54 a Fe(\007\000)3390
-6 y(\201)3400 5 y(\201)p 3420 -69 60 4 v 3430 29 4 99
-v 3431 -70 a(\007)3250 38 y(\204)3270 37 y(\204)p 3523
--69 60 4 v 3533 24 4 111 v 3534 -87 a(\007)291 b Fd(3)3699
-295 y Fc(cx3)p 3669 -69 60 4 v 3669 -102 V 3679 21 4
-125 v 3680 -103 a Fe(\007)p 3825 43 4 97 v 3826 -54 a(\007\000)3965
-39 y(\315)3975 41 y(\315)3679 21 y(\320)3742 31 y(\320)p
-4005 70 4 91 v 4006 -20 a(\007)p 4108 98 4 135 v 4111
-262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 4111 262 a -364 621 4475 4 v -364 654 V -364 687
-V -364 720 V -364 753 V -364 719 a Fe(G)-43 768 y Fd(3)-155
-785 y Fb(\025 )-72 779 y( )11 773 y( )28 771 y( )111
-765 y(\025)-211 885 y Fc(f4x3Dnf-1)p -151 735 4 117 v
--150 619 a Fe(\007)p 65 710 4 108 v 66 710 a(-)66 602
-y(\007)443 552 y Fd(5)197 934 y Fc(bx5D)p 207 587 60
-4 v 217 694 4 125 v 218 569 a Fe(\007)p 374 587 60 4
-v 384 702 4 117 v 385 586 a(\007)p 502 708 4 106 v 503
-602 a(\007)385 677 y(\303)491 682 y(\303)217 694 y(\304)357
-701 y(\304)p 619 714 4 95 v 620 619 a(\007)825 835 y
-Fd(3)717 934 y Fc(d4x3Fn-2)p 737 760 4 108 v 738 652
-a Fe(\007)738 636 y(\000)913 726 y(\201)-23 b(\201)737
-760 y(\203)823 756 y(\203)p 953 749 4 114 v 954 636 a(\007)1182
-602 y Fd(3)1101 519 y Fb(\0269)1184 536 y(9)1220 543
-y(9)1303 560 y(\026)1085 835 y Fc(f4x3)p 1105 727 4 108
-v 1106 727 a Fe(-)1106 619 y(\007)p 1257 768 4 117 v
-1258 652 a(\007)p 1473 753 4 135 v 1518 684 a Fa(6)1518
-751 y(8)1815 569 y Fd(2)1697 436 y Fb(\026D)1780 476
-y(D)1863 515 y(D)1893 529 y(D)1976 569 y(\026)1602 934
-y Fc(cd4+x2)p 1691 587 60 4 v 1691 554 V 1701 685 4 133
-v 1702 552 a Fe(\007)p 1930 785 4 117 v 1931 669 a(\007)2159
-835 y Fc(fd4-x4n)p 2197 735 4 125 v 2159 735 a Fe(\007)p
-2358 719 4 116 v 2320 719 a(\007)p 2520 702 4 108 v 2482
-702 a(\007)2197 611 y(\204)2418 600 y(\204)p 2681 685
-4 99 v 2643 685 a(\007)p 2805 753 4 135 v 2901 777 4
-108 v 2902 669 a(\007)p 3088 777 V 187 w(\007)p 2901
-785 377 16 v 3275 777 4 108 v 187 w(\007)3724 569 y Fd(4)3462
-835 y Fc(fd4-x4n4)p 3500 735 4 125 v 3462 735 a Fe(\007)p
-3661 719 4 116 v 3623 719 a(\007)p 3823 702 4 108 v 3785
-702 a(\007)3500 611 y(\204)3721 600 y(\204)p 3984 685
-4 99 v 3946 685 a(\007)p 4108 753 4 135 v 4111 918 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
-
-4111 918 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/xtuplets.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: xtuplets.dvi
+%%CreationDate: Fri Apr 30 23:03:32 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 658 567 798
+%%DocumentFonts: TeXMUSIX16-Regular CMTI8 CMTT10 TeXMUSIXSPX-Regular
+%%+ CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: D:\MikTeX\texmf\miktex\bin\dvips.exe xtuplets.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.04.30:2303
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 54 /six put
+dup 56 /eight put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13C6F0190EA03208C1624923CD23F6BA9B722C
+E2316C051790AE71DA6260D5496E8A0B6E3C14171224EDD11B92E199DAE5F8FD
+B9822F9A31D63E2E9F980EA0E6117A84EB1C2AF38ABB15DB646BCC63CCA6F94E
+F3F523ACDB05070DAE2468BD5D162D54CA0D805BA67873AF78C5FD9B0FC5E688
+020926F5AC03D295120E2ABB5656B485E8A15928D1C853E4453A66FCFC6208D6
+1A4B011437B9E720AA5742FDA983E3D8DD6E7D7E95ED886A3F81B579757EC087
+71A6BFA6D42CBE0DA850E82D85EC8C10135A3EE811E9B62CA656D16E3026CC1D
+532A8CDD835A516D3C64F982E9727751E327DE2A025F6B5F5CA552E4A7308571
+BE65796766832380F814DBD17E939AE2B64C1E9B446647DB2862167B2983895D
+1EA9B7CB7DDED044B67B09539D4195C5BB6A8423237EBC12B9BEEAD89D263A4E
+76BBA075736BF5A88FF8281A702525C826ED203FC8659CDA18D7AB5E26876B24
+CDA860EEF75F0E4E4B1F30AD3E9F13AE4A56DA1CC8FFB7C765A442A873DB342B
+16DB4A1CD4D1D798ED77CACB812E4BD55354422F106D282CF3FADE79DB8DB515
+B374B5A2CA873D5F2DDC6A85FD765FDE7D0312B6FAAFEF40FA6B269A63D83F47
+6A510D39CC4A64D9DD59CDB4BCDE6E5D04220D213AF83058DA3F494C94C3C903
+76F5E1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 21 /endash put
+dup 22 /emdash put
+dup 32 /space put
+dup 33 /exclam put
+dup 57 /nine put
+dup 68 /D put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1ABCB01CF70AD5C0709D6C68E309A8912EB1866D31B3ADDEEF4FE6
+DEA92FD943B1D0E2B2A72B4E6F6198DB8850E8F62BEC05F5895A35D2EBEC151D
+D1F32E6A91F3719974935FE2F7E7BD75B5208BAB55BF1D3BC9603FB03611C700
+07442890C85240D57C7C3968C89EA69B3D75AD68A7BD0127C80B321EDC7189C1
+B2F8282767E7CBDE116FD7763C699719AC5F132F0FBE324EA8F5FF1C9C3ADB93
+17FDB35FB51692846C67A02136EE2827BF4FB52399C889B4B017D1BA678E6DAE
+545D73CB60BC08ED5ED2D2C0B9E27D256D0EEE179B49CC78AD01030806FBCDD4
+76AFD0729F3AA3E94701B348E7FADAC750003205ABC6B8D1BBAB27DABDCF56A0
+B900DDDC30EA9DFC518C382DF842A4BD14A85402915322774A26CDF9553EBC34
+29E945E4087A26412F91C26EBF5A75BEC8F6DDDC18F8FE1F80829F0823A7383E
+1D1CD5A4745BA8E4B0A7690438BB9BAC08893C49946E68D93663952004384A09
+FD476236B3555178371FCE5E2F9C8093DD39D86FBFF328DA9A6F4A7D865C5A87
+6768D312A57DDBE44EB34F3759564F6B23743372D5693D4BDC44EB52206FF796
+FE61B10F3B35AA26A02398B5D72E31CF7E468B12D1D6CBBED4EEFC09B025D75D
+5C22BB169236C6F0FF88F0FBC2D85D553624155E0A956399391D16F0174657F2
+7B864B32A3DB5CBCD0393320C01BC3E9F163EFE84E8CB09AA84E09813D1D9718
+FC594EC1FFA27C68FF95D4A5DC1B95E2B2D7CE6A6F134F7D97696DB5A5239066
+2F86D1331486749340336853BCC4AB747A772A6CD80E947979C3E3373A91B93A
+5C28668E67E4AD474E144D26E532E815CFFC2E11567B28F434A6D6903CAA69AB
+BDE28466AF647A37007A5F91734870E5671DF837F7B084E11C2F266CF732229E
+C192F8CEEB631E1D901D174DD13407F718378DDB798F980AEA21659B32CA5777
+2F372893AC0C2514996406B6E986C8128D0534EAE7C3F59A074A20F5F0B6EB1D
+D9E5AE27
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%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 43 /plus put
+dup 45 /hyphen put
+dup 46 /period 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 56 /eight put
+dup 68 /D put
+dup 70 /F 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 110 /n put
+dup 120 /x put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A9D9755522FF50BFFF61E504C1AC474646B0910BEB2B
+950E33B9AB30D0786CF7F5F5DD218EBDF7B90241CFD6EE56AD3ED6BA5F18855D
+7E430575CF31761423CF91A9275915A099A5D0C289E5CA71844EA3179A2E917C
+8ED53F194AC2E42AF88FA2A7843F392E71F66DEA6D6D320CC018C055ED3FD2E3
+D896CB52C58907EC253A6EE4C0F0142C0D2BA97AAB203D626433EABDD890E1D8
+85B46B1D6801E39931F402F8825A21D0D4869F02FA1C99FEE1A786CE64B76750
+63A2B3BD3FA2B3E0E04ED9832582F5515AFEA4AE33D316ED13D544947BCA38CA
+9248812BFB89A91453458C0A2D49D46F971EC9C5875A3B85BA7736F7EB48AC80
+91C25D42C302F6963AEC093D804013AF4326D75D838C039DD7B637802D663A87
+55EAE9A270823267DCAF70D85D56D17D89DCCBAB7DACD1DE23FC6FE892966602
+4C5D3B211F325B99ACAED97EF275CF917A6A67B5C04C700FBB29DF2FB1823215
+202A3062F218582C59B4973E4E9FB1DCAC3D1DC5D8096F80B49CA3444CF1294F
+BFAB57DFACC9D019DB28335BBB3DEFDB921C86FBEEB0F238F7A3840D783A439C
+62E3102054068412621214D6CC59FB6CD9CF4BBB73A61F7C685A3A9A518734F9
+E4D7E801AC7E97C83F76ECD2882B91FCF7E694BBEA02488CBF10A57A60AE69F1
+44832469CE1088DA535DC05FF15EE71F5CC8A8518304F71C5B85635B18FB8FAE
+C00078161AD00F471ECAEB7B45F97532457998548EC65BF7A2000507D3016CB7
+7C91C309BD37F8007ECE3138BEE05B308A23D6D7E588EC80176CDACA3BC49CAC
+3B233D73E639BFD60A073B2BE61CC0F26DDF48CADF96F9413FBF1C2DE273850A
+CDEDF89CBBB08E9C1BA99FCFC7C1AA053199F341D019829AFE863747C1FDC7B3
+8BECE8BB0B2F06C89697DC6FF5E875146F413F4C42D8470CF5CE4CC04ED9FC46
+A680DE6AD3D0BBF5EF644A3A2A34D2EAAF5E7F3811FE1F6FD96500A95ED7962A
+FE0EADD850A680972F144CBF078B8E82FA23063899AC1339A5CDAD7170D37A30
+13FAFEC3EECCF53C4A1AAFAD3B24F6E20BAC9E38AA13AEEC039D92CF9C6D1D83
+76A96ACE03FEC46EA52EA93EAC45949C9A7AD1E7948CB5C57B41750FFAA4B048
+3E7DD290F56578EB721E1449BACFE3F598BAB04122236A5A65E5C38C3EABB781
+9B6CD5FBAE3918F6324401B67EC934903C32EB3CCD7B449B61540D4B4AC18AF1
+AFCC130903EDB1CE4D33065DBD29741201F96F9225443BC77B4E6D7C70295FB5
+D84D6889645D0C43D0525F6B018231F8CFF293D29AE4C7BE59196F7F45CDB934
+1C123C2E16D5374ED310B03DC5FC67719A22771734F6F3C25288FF5CEAA250D6
+D4941B8EE911F856DDD0277E040CD78A79AACA38A637B17489C6D91A307803A3
+A9FCDA03B1ED9FDF33A54CB3FB14E33AC6D0C4C17659385181323B199D4F029C
+11676A74DFF18DA2325C0687DD3232A72F27884BB3FA09C9FA131FDFC449AF7E
+ABE350F46B54AB693591295037665DC4CF84867732F41C7D4EFD0BFC7A91D72B
+842A69CA7479ADF7731FB189B0F06E5004EC5A7AC2A05B4D4896A4C5BDC5007C
+C957D89ADF6043BF25304E03FF619B78859286087601AE6501F5166965B9E3C0
+2B3EFBE636240BE9517CA4CF14EE1C9A42AB00E67E280DE00341C7F78FC1BDD7
+037984FC80CADE34F6B0E2906BE03E6D11DD9EB3FF0944108A36CAC1DACA014C
+1BFB784B5F5A8449DAB2C633F73B9C514ECD698D0A32FB01393A1317579CD8D0
+10CD54531B0CD4E1DED0AE9495BEAFDEB4E60877C8D8F6C0BB28175558481662
+00D07F7C836CBCF186953D0B8422C24A80560A24D2667AC2D8FCBDE65448FFD2
+C7AF19C1B9AE8764BF598A23E43A872DC497768A2DE6EBF0D48CADA1BD24FD68
+5A665446804AB37E73FAD239DE3E57DBB58F644F6EC63ADCFC21DE75C07620A4
+771E026871B377B77C8D07DA22F85E745B012B5EFEB8BD22CEA0F741D21069A0
+3F1329FFC3826BEF34BD95FCE5E55E27385894E6FDF1701F47937D1F59F542AD
+7F153CC8055AA83065A40F3879CB9836D17A455597E18FABA35057C67DF63D25
+4C875D5ED8DB9DBEE546D522BFC3A06172D302E341B9E8E2CEEAA42EC46C5FC9
+79B51C0F87714E62688A2F18816B9713D5C3C0D980B48CBEC204EEA5B381EEEB
+DEDAFDD59411600020FF082EBBB197606E571D9D89A31C115E4822DEADA0352F
+CDC2FBF3D37E3CC1E46370B60B2C42E483A056D3E5ADE954E6D6FC489A9AECB3
+60D521741C24E8345BF9906364F3D3FA5CC3E7B1DBD49C2EF6A5EF3E71E1C34D
+92240CA5F30F53CB3C3D3EF920317BD154EADE277AB900577D43838174174CB5
+574FEA4B091C6CB8D1DF0C18C7047F7E22A09968A0AFE40860430D80A34AEB49
+4C66CB89E57BCA0CFF295E56400F8B660143A9073DFCD1EA0D46E2EE17377C43
+EEC9EFA0F807B49B8508D01CD95FE5818440C241C792D3598B356BFC9E54BB3E
+390F9A69D05C4197BCF4352155764164B48759F42DBCB89A5A91FC121FC88EC5
+B6C31F1194973ED5657569A4E3812F10EEBCB2D42D1C39A689C59BB0843081BE
+5D79672EB3E3D276D46B2BAED6C361DC0CE90AA065EA4F16C15490298F9CFC07
+94B7D0DC7C6D50F73516FEB2E7E2B33F2ED3132C66D75D950884FE842151E4DD
+C54C6B0CE6C70AB84E2F1FECB1FDCAA41668609F6B37400715F22B088D5AA363
+C28D260E7E398E9838065B8ACDDE14A40718566534ED27E6C2B4964899B18A3D
+CD84E1731E3087F1AE95E49A28BB08A26B683F652BDCC4B1496027305AF45D41
+ABCCD3ABEF70667198436E200BC42E6D431660B3C91279063FFE0F5F77844E2B
+D5502576C1D1ACB667227042B835C0AC54170186F162CE76BFE7B39E326A20E2
+AD922E0C02F7E95E2AFC60ACB872DB6BB6AF2C26A3B54E27F2725073110D814E
+AD7136F399F04E044FE28D5E979EF181B25070223616A6CDE17853C5A57C5E75
+CCF036B36D5A5B6D12265F890E6EC651A0BCA986B23B2E41ED976E12BA91F9CE
+67EFFFEEB31C55F9989E762AEE5A12D882AFD983F1615BC431388063A7E9FFD8
+23F9B36319371CF72EDF0583AD2FC609E2E47FC3D5DF720937A85CF2352834B2
+AABBD82A6A613256104C23DA53EF76254BFA56679E14124141BF11EC4F625FB6
+84BE7AAA8997CED05CEAC2996BBB29D4A9CFF6EB0D07838E0D61FB2D9DB93771
+DB15E9281C116630AC257BA1B3182901F6BC07DF975BD42B77F24074447F8E6C
+B4E43F716F4EB4FF36DFD41C29BCAE6AE95073CA4217103E9E5D4228478A7564
+8E847651FCD262D75AFEA49B72BC640A6EFA1A5D7B6018979F4A7FBCE417B574
+3F7F87984EF35EEDA1B09426AF7CE15BB1191F01CA7628EF67DC302EC35DCC85
+EB85B1DE534003B9DD795DA5581907D9EFEA2B5E9E1E023EF6EAC8A88B30AD72
+116DE3497AC713698258E098CC1215ADC523257C33302FC010CAA779069E4F0D
+78723370581B9522B26841FA9AC1A56B3A5459C23887433145E71EEF02786386
+4F903C1D2A33F0B1A5DE6D955A2D887FA8BD622AD737D61D5E380C75C97E8F7E
+BFB1ED7A60D5ECBEFF966D9F4E98EF4F5BE5FF06BFA642978A03C411C9A9E4ED
+8CB6598B5F449CFCDBAAC0A30572E6DCE9A9F9D9F250C7D9A101D5C8E109F3E0
+C21F63D6A092F76276384B82E58D165A5FB25CCB7CD9BF042B0C10081E7129D4
+9583CD99556C7EC1FF40603A0049ADC1F1A4CEE143A11E20A95BCF27DD29952C
+E5603998A6559BAC069BF00BDD749CB3BCCAEA9ADB93AFD5AE6F1E75134F563F
+4F9381FC154FD8BDFCEF08BFB1EF903C887B2ACCC239FE6E71E37D346D9FB4EA
+F3DF0D1367F3A7EA495D88DB0D2056A06D0600201E40BC9DFF8DAB4577AA11B5
+025C94CDC34E65A0530BF7F0B9BD61978CE00E5790C95E6ED56D767E2EB3D5B3
+C8013826547E250AE9265D0ACA19AB9F6D91B301E7C46C7F931B4F904060E23B
+08387F44C5F906FD87B7E84924FE66F9FED1E929427888B28E5AC9083D0A6BC3
+2657346548A10866183E67E8FFD17CBD11ED5A3DC3CC3D08A042AC44660CE0A1
+FD0EB14FB653F1825C6CE1AB06ECEB4F8C88672AF86DE203427DE127FF9AB317
+ABABCDE611839C16D2F59CB2ECEA25914DF1F54C4823B21276FBAFA01B384559
+5ED9142528976700BC90004ED1BD97B30F47A500106A2F07672CD9055253A580
+530A2BC58818B3C5594BFAA8B9B49C2C8CFD70519A863FEA470158EE3E261BD8
+A1877E382013ADAC5B882B480D1220A7D14B589254C0201368990B27E55F3947
+461BB073A987113F9770399EFCA8A989FF962E7648F79603F12F22480E490F50
+3772227B6E784151D819066994304DAD5A65D3779843582C0D5257F2342217C7
+2950CA39A7B9FD39ACBA8C589F79AD6D5BD48F985BA887941BA04FDD70682885
+ECC632D5394FF038553C4EB069E2570FE8D37652D20405A1D7A18C5405063033
+7BA7CC90174520C3EA92D31408059C9DA77875CCA1FFA8EA2DCDE5E126C42D24
+94BAF2AE4A9DD330A386099BEF31A06FC68A373E797780F448C86539686C804A
+1D4AE3BECF9F614A08A4B7E2DC0BEC19B5E7E9428EEB5FE3FB26B97CBA469D89
+C83FEF12EB9D4A469CC0764AF9CD5298D1FDEE2C6C6EE0EBBDD7902A9B6D98B4
+9A5434A8034FDA63ADB8E79CDDB395D29A28793D64AA1B16418E320FC7F7826D
+F9DD1DBF82930CEED48FBB6E930423DAEE3BC7D49232D49A1746C486420423EE
+ECC98498532E3D563760222100876BCDBAF299F6FF154B649D1D132053AB2C53
+7AF3991FC315F8828AD4AF735A07E29B5BBE2278BAC3FC66A99C07CE909C4A43
+8479FE3DB8335666DAA11BD71927553B0907924724C460BCF11BA55DD9012945
+1EB51DF1EAA452F671505B97A0BA3E66942C0BB528B218B1FB209885E381D79D
+AAE3E8497CB3AD1F53CC00CABE7D33DBBEAB02BE0E5250077DAAE411DEA2292D
+8897BDC14598B1557E9CC05ECFC5C86E8BA51F2135FA8E04C7F753967B38FE56
+61B1ADE26C20B545D1CFD74F3656E2FBA60A4D0678C8A0BF33D38FC04FD56A1B
+D8E2450AED6ED089C23ECB43CD25087EA8303DA7124D256930374A2BDD5F1330
+48355003DD7A13E5DBA9
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4C7DFC961F6C1FE53CEFC199A95B8DBAAA3FC986A88F6684ABE1585E33
+712826DBA16971B8AD5B7CBC4CE67900097C69C2245E9EE458A31355733EE7CC
+90C4FFC71A7EDE118B4D71D7FE3EB35DA64B5C654FDFAFA258B0EFDA461E41ED
+58CD17B771CFC0CB6A1F12FA728105408A8959AF1931D2921B46D57937099761
+85559F27E71584C7BAEF5158C12FB0FA3B64ABA8F414C1FC923C5F3E6077C8D2
+EC8CFA4A8A5906F7B3B2C1EFCBA6DEED3AE32E488FA57018E852A59AE4C0DD0A
+D27AFCEF2880B065DC3EA87CF81D14CE6007BCF1E4554B3628D6F2821B4A2DAF
+85C0D4D431577FFC6EC199D049D4146B9D30D266ABF71BAABE6866B6E6D742DB
+2FB6B50079A980248896B05427B5D4106C6AC33B5BDFA72AC622CFC8CF42061C
+4144264EE1551A34F0ED7706DEF91DCABE4609430ED341F01270F860E9974CBB
+FB25A4171B721F966905220B344C71BA217C09C4757A492BAA79172E9B92C91F
+0147E4472F1A61D165B4485202D7BAA2059A2A60EFD10332F521D3B1AADA931C
+0B1D4CCFCD5D45C79304B86DAF526B36773FFEE65AEEC9DEE5CBD4796637A115
+F33F783268B743AA3A2B49CE472BD1DD86CE8C30FA9027FE267023A8CD6CF010
+027D9F20CEBA71AC20BBF58E04995C167072B42DA89C201730C32D706CBD6E55
+68D63802EEF006D645172DA6D002D19BDC85EFD7117AF75FF252D5E8F8B7BBA0
+E00580E97738675E717BE22B210040AA0DC3BAA6218D73B3036808530316F26B
+99CC5D8EBF41A1081F4057095C860CBF611D4A00EB773FF349DBEC0F86E66703
+D9D3BDF4DDF79DB606A08E274E9D9E1B6C70F6E2D91F7D6C9A22962C9FCFE01E
+D19E3638BE8AEF8790E01C7A24740F85378D14B2D2C6FC75D906CFDC215E3832
+CA6FD64C9F3D0BB78FDCDC38363B1E7906EDE5C5AC965A4FB15DB12C8D499C48
+92774A33111A8E2B674DAA3C1487DF7FD6699C6B3CB1339A13CC8F2BA996E606
+11AE6C0C987FE6F50778E86664137CAEA3CED2461B3E1C40EDB5CDA387D98C95
+B0202C59AEDD203BBFA90026149268FCE8ADC3BE5DAE7131DC9027805B5CBE78
+A532452BAD079043E4987A25AB0E9F393FCF4536E265AF4B24F4646ED98A97B7
+64A78A3E5235E61F0BA0F3626057A683B074C1860A838D89ABA954D2587FBE30
+9E643EAA66D2268E8204158BBF85C01F84445BF052CEDB557F681DB34CAABB42
+E5BE540C9DEAC27A4782FD75D7D3A8066B5D36F31AED0462481A981EFEF3BFD4
+1615AA0AFFF5CFDC800A753677387B1FFB64D4A73FC4E77EA216DDF3189BC13D
+99BE60AFD9B511FBEA809DD8D236F70DDB60FB4ED0F18F3558831C411C1C8CFB
+16AB745E5464D4F50543EA6CE70DAE402E5CAD5B041AFB33E32EEB100B03290B
+B01DCE175E529FF83CBB0CCF2B7F8D6D05150DACE1ED817542CFF59960A43586
+A53113F644DA9C24BCF39CB1BA6B0E4AD9B89BE46EB38ED776807ECCB0649C01
+CA0C8A7AD72615C52FDAD0C3875E0CE463D95C15DFC7A0C4D30E0E1FF1A7A971
+614F328957FAC286774C5641D74924B0373856DEDE5E05AA3D75F1EFFB631F66
+3E3629BB3ECD0DD16CE4F0BCA9A7BA402A45CD548D65F12EBCBFD8191D6AD55E
+3EBC360315BC30BFDEE5969A21DCEEDA063629132D92231B97BC4091ECBD98F1
+CE9667E3511961D4689D55B90B432110218CC99801CD59621BED3E5AE4208198
+67B13A90E0B2C1EA2A84D0F0F91C982D6497
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 45 /hyphen put
+dup 71 /G put
+dup 83 /S put
+dup 129 /Aogonek put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 138 /Lslash put
+dup 139 /Nacute put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+dup 205 /Iacute put
+dup 208 /Eth put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86463FD6FA342DC0139168F5BEE46B8EAB1D78359B25636C93B11DE0
+21B27915CB45437C3868DD1BD693E84A08CB6F47529E7F7B227DA3FDB376C15C
+BFC84F721111FC89C718BF7C77F311852668B0E67E69440690CEC6D8F7061605
+A4A68126B09455D6256EFF5F6E5EB47D159E29106461A63F663F745E5C9745EB
+7A2B80270D9F2800DD6D5B746F18201C0E6E90020BEB948B805403A784DE11C6
+FE923BF21011A43CCD01B4F5962E65EBC2AA89EB045796E85AA10E505EB7E76A
+EE0ED8D23BA4BC15EF2E19AD7D444138EB2C7E6CD793492DEA87154676C0A522
+B5029A833E15FF8C0BF47700B3BC5F55E235A902FD133C3BBE45009FED06D87D
+8E03D051DAD0B4812762F5B04829C0F607E743B709A5BC08E6574ED590CB0CB2
+8DA54E563F3CE7CDAA3F1E5C178D991388C73A98CC30D3493F25F23FF04EBFD5
+0C71C2309411EC72DDED0FDB935454E03BAACDC4921547A074D5586C7283B373
+A1B383786FA10E1299E5E05927B712113F5916D09286C9C0327DEEFD2ABA2489
+0D9A622E773A4919A928F16B055DCE8BDEB5AFAC49CA2D5A27501862A569192A
+FD92167DCC957A0176D50221A03153F2CEBA1E8FA3C3E209A6AAA0067975B084
+C9E2CC4B0C86A927AE638EBEF35C5BB85E3630B91038A5EC189F0316A7674A2B
+55FD8BC89BBCF617140B3B0FDD017FDFD3341D0A9DD8B416D6AEFCC1B3E69315
+4673144851C00F0E66266E2E9A82A8547F7F0BFA1234F8811EAD17400018E816
+0D1E953D795FBEB1416E0ACDD2665844D010FAF7DC3D6BD679103769614870E4
+226C4E8E37E5C02B38234B30EE1055B706EEF79BD6FC215C248635D6D8186912
+CAB48E8C27877CDCD6DBE64540F2AFFB0D26AF1E64F36C3BC519FAEA507FDAAD
+77B66B28F89F50565B8F557E8CAC300AE1FC6720DAE0AE9EB61A18BC5ABAB046
+DFFFBAF841FE5DCE1EFA4716807AE96878B084CEEDDC6989E0062A6E77F33EB4
+759B858966A559C080573A8C3CC8BAC05D667DABE6AA5EAB34768A06DFC2122E
+B15AECC457E8C5847DBB6A656A679C82608E349FAC896224BAB3ACBDA1206D45
+B4D63C385D129D5D1C2560076F7B196C6AECAEA5F5DDD117BA25BE40DB3C2638
+8DA1C03B4699C327B7BB19557C7C6C1D72DBD8ACB0FC646554963B1738048C3C
+F8180D025897F12EAAA5FA66912A4D57F0589778863E3AC6FD3192FC2217F3BF
+5C0049EC5B9537DC78656B8CA049B328EF2AA3EBDE65C1030A05AF50EF850722
+EE6D9601F0EE31E786B24EFFB7993D89E0D8327B4389254CFB18C8DFB994AC8A
+2C3099B2668630AD2D60740F81759B455FB1233509EA2D3BD1BF974692770856
+D2C1E3FA1E0FCFC70C05DAFE295632C961967771BA5258057A7E6BE46B6CEC46
+6A7F38F6818F77321074B02FF2DA607EDDDE9D8CD61F93F498F4E720FC18CC86
+6D6C953CC07194AA046A250BC34C947549A4E4AD011EA7B264F2A8958279CA6A
+99F85176CC0EAC988D603CC55535300FD80CF60456C6FA92367F539689024AFE
+43AA65EFDE25719A118104170B2DE78CA2C1B76B79E96AA83A6369D7CB5D0E73
+4BA8D40A599D6365B50D68F95D5B6CE2F9545D63CA72EC43881D0AA6BE7ABAEA
+FC1D8A601CDA591DB9E96950E3C0B4F987FCE023DC160AB6505898329A6AC699
+33731B4C1FD26E6DA3FBFC65D4012BBFCED2BF1B5E5C70CDBAAE157FD6026CF2
+C85F60E7F6D4BE7745A00BFBC90594E3066D2CF975BDDE3BB1365E21C9253193
+BF2FD24D57CB948EFC9C9BDCFC10CB97BE79EF4DA809C16CE0509FA41C943AF4
+8E626D85FD02F323B0068C29B0D6401146C8A1EEEAE3890F6E5858653C88682E
+701FD9404C5735B81B56E9EF763427EDE763EE928B324C2C48749E1038D0E52B
+7E55EE7E0C80A5E5E867AE74B79D8AAAFA8FA13E04D067B5DF1C648E0D483312
+92B2F830163B2DD357C29C5EF3D7C7670ED1F7A6CB50D87E255A4D417E920936
+1AF4989DC55BEB225A01CA497766360A40E1966A284721A09469EBFF8AB8C382
+D3BB19B581746168B54D843BB3E3C8D83610193DF757DA18320C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (xtuplets.dvi)
+@start /Fa 199[56 1[56 54[{}2 99.6264 /CMBX12 rf /Fb
+187[83 10[83 23[83 83 9[0 0 21[{}6 166.044 /TeXMUSIXSPX-Regular
+rf /Fc 135[44 9[44 6[44 44 44 44 44 44 27[44 1[44 11[44
+2[44 44 44 44 44 44 1[44 44 1[44 43[{}20 83.022 /CMTT10
+rf /Fd 202[36 36 36 36 36 49[{}5 66.4176 /CMTI8 rf /Fe
+47[266 2[33 8[266 133 55[531 266 5[266 133 1[33 45[66
+11[106 25[0 37[0 6[0{}14 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4475 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fe(G)-244 29 y(S)179
+-120 y Fd(5)-68 195 y Fc(e4x5)p -30 96 4 150 v -68 96
+a Fe(\007)p 83 79 4 145 v 45 79 a(\007)p 196 63 4 139
+v 158 63 a(\007)p 309 46 4 134 v 271 46 a(\007)-30 -29
+y(\212)158 -47 y(\212)-30 -54 y(\212)158 -72 y(\212)p
+422 29 4 129 v 384 29 a(\007)624 162 y Fd(3)493 179 y
+Fb(\025!)576 171 y(!)659 162 y(!)742 154 y(!)752 153
+y(!)835 145 y(\025)477 279 y Fc(c4x3n-1)p 497 121 4 108
+v 498 121 a Fe(-)498 13 y(\007)p 643 104 V 644 104 a(-)644
+-4 y(\007)p 790 88 V 791 88 a(-)791 -20 y(\007)1519 -170
+y Fd(14)916 212 y Fc(c2x14n+2-1)p 936 137 4 125 v 937
+13 a Fe(\007)p 1032 127 4 132 v 1033 -4 a(\007)p 1128
+117 4 139 v 1129 -20 a(\007)p 1224 107 4 146 v 1225 -37
+a(\007)p 1320 97 4 153 v 1321 -54 a(\007)p 1406 -69 60
+4 v 1416 89 4 160 v 1417 -70 a(\007)p 1502 -69 60 4 v
+1512 80 4 167 v 1513 -87 a(\007)p 1598 -69 60 4 v 1598
+-102 V 1608 70 4 174 v 1609 -103 a(\007)p 1694 -69 60
+4 v 1694 -102 V 1704 61 4 181 v 1705 -120 a(\007)p 1790
+-69 60 4 v 1790 -102 V 1790 -135 V 1800 51 4 188 v 1801
+-137 a(\007)p 1886 -69 60 4 v 1886 -102 V 1886 -135 V
+1896 41 4 195 v 1897 -153 a(\007)p 1982 -69 60 4 v 1982
+-102 V 1982 -135 V 1982 -168 V 1992 32 4 202 v 1993 -170
+a(\007)p 2078 -69 60 4 v 2078 -102 V 2078 -135 V 2078
+-168 V 2088 22 4 209 v 2089 -186 a(\007)936 88 y(\213)1467
+34 y(\213)1656 15 y(\213)936 112 y(\213)1467 59 y(\213)1656
+40 y(\213)936 137 y(\213)1467 84 y(\213)1656 65 y(\213)p
+2174 -69 60 4 v 2174 -102 V 2174 -135 V 2174 -168 V 2174
+-201 V 2184 13 4 216 v 2185 -203 a(\007)p 2280 98 4 135
+v 2579 -170 a Fd(3)2273 279 y Fc(c4-x3n+0.8+1.5)p 2363
+-69 60 4 v 2363 -102 V 2373 21 4 125 v 2374 -103 a Fe(\007)p
+2509 -69 60 4 v 2509 -102 V 2519 21 4 142 v 2520 -120
+a(\007)p 2373 29 296 16 v 2655 -69 60 4 v 2655 -102 V
+2655 -135 V 2665 21 4 158 v 2666 -137 a(\007)2958 -170
+y Fd(3)2791 179 y Fc(f4x3)p 2801 -69 60 4 v 2801 -102
+V 2801 -135 V 2811 21 4 175 v 2812 -153 a Fe(\007)p 2948
+-69 60 4 v 2948 -102 V 2948 -135 V 2958 21 4 158 v 2959
+-137 a(\007)p 2811 29 296 16 v 3094 -69 60 4 v 3094 -102
+V 3104 21 4 142 v 3105 -120 a(\007)3430 -103 y Fd(3)3230
+179 y Fc(g-x3d)p 3250 38 4 92 v 3251 -54 a Fe(\007\000)3390
+6 y(\201)3400 5 y(\201)p 3420 -69 60 4 v 3430 29 4 99
+v 3431 -70 a(\007)3250 38 y(\204)3270 37 y(\204)p 3523
+-69 60 4 v 3533 24 4 111 v 3534 -87 a(\007)291 b Fd(3)3699
+295 y Fc(cx3)p 3669 -69 60 4 v 3669 -102 V 3679 21 4
+125 v 3680 -103 a Fe(\007)p 3825 43 4 97 v 3826 -54 a(\007\000)3965
+39 y(\315)3975 41 y(\315)3679 21 y(\320)3742 31 y(\320)p
+4005 70 4 91 v 4006 -20 a(\007)p 4108 98 4 135 v 4111
+262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 4111 262 a -364 621 4475 4 v -364 654 V -364 687
+V -364 720 V -364 753 V -364 719 a Fe(G)-43 768 y Fd(3)-155
+785 y Fb(\025 )-72 779 y( )11 773 y( )28 771 y( )111
+765 y(\025)-211 885 y Fc(f4x3Dnf-1)p -151 735 4 117 v
+-150 619 a Fe(\007)p 65 710 4 108 v 66 710 a(-)66 602
+y(\007)443 552 y Fd(5)197 934 y Fc(bx5D)p 207 587 60
+4 v 217 694 4 125 v 218 569 a Fe(\007)p 374 587 60 4
+v 384 702 4 117 v 385 586 a(\007)p 502 708 4 106 v 503
+602 a(\007)385 677 y(\303)491 682 y(\303)217 694 y(\304)357
+701 y(\304)p 619 714 4 95 v 620 619 a(\007)825 835 y
+Fd(3)717 934 y Fc(d4x3Fn-2)p 737 760 4 108 v 738 652
+a Fe(\007)738 636 y(\000)913 726 y(\201)-23 b(\201)737
+760 y(\203)823 756 y(\203)p 953 749 4 114 v 954 636 a(\007)1182
+602 y Fd(3)1101 519 y Fb(\0269)1184 536 y(9)1220 543
+y(9)1303 560 y(\026)1085 835 y Fc(f4x3)p 1105 727 4 108
+v 1106 727 a Fe(-)1106 619 y(\007)p 1257 768 4 117 v
+1258 652 a(\007)p 1473 753 4 135 v 1518 684 a Fa(6)1518
+751 y(8)1815 569 y Fd(2)1697 436 y Fb(\026D)1780 476
+y(D)1863 515 y(D)1893 529 y(D)1976 569 y(\026)1602 934
+y Fc(cd4+x2)p 1691 587 60 4 v 1691 554 V 1701 685 4 133
+v 1702 552 a Fe(\007)p 1930 785 4 117 v 1931 669 a(\007)2159
+835 y Fc(fd4-x4n)p 2197 735 4 125 v 2159 735 a Fe(\007)p
+2358 719 4 116 v 2320 719 a(\007)p 2520 702 4 108 v 2482
+702 a(\007)2197 611 y(\204)2418 600 y(\204)p 2681 685
+4 99 v 2643 685 a(\007)p 2805 753 4 135 v 2901 777 4
+108 v 2902 669 a(\007)p 3088 777 V 187 w(\007)p 2901
+785 377 16 v 3275 777 4 108 v 187 w(\007)3724 569 y Fd(4)3462
+835 y Fc(fd4-x4n4)p 3500 735 4 125 v 3462 735 a Fe(\007)p
+3661 719 4 116 v 3623 719 a(\007)p 3823 702 4 108 v 3785
+702 a(\007)3500 611 y(\204)3721 600 y(\204)p 3984 685
+4 99 v 3946 685 a(\007)p 4108 753 4 135 v 4111 918 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+
+4111 918 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletsSich.eps b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletsSich.eps
index 96a31e31f77..170349dc60c 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletsSich.eps
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/eps/xtupletsSich.eps
@@ -1,1148 +1,1148 @@
-%% LaTeX2e file `eps/xtupletsSich.eps'
-%% generated by the `filecontents' environment
-%% from source `pmxccn' on 2011/07/14.
-%%
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
-%%Title: xtupletsSich.dvi
-%%CreationDate: Fri Apr 30 23:03:05 2004
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 28 659 567 798
-%%DocumentFonts: TeXMUSIX16-Regular CMTI8 CMTT10 TeXMUSIXSPX-Regular
-%%+ CMBX12
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: D:\MikTeX\texmf\miktex\bin\dvips.exe xtupletsSich.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2004.04.30:2303
-%%BeginProcSet: texc.pro
-%!
-/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
-/Rx X V}B/V{}B/RV 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: psslurs.pro
-% This file can be used instead of psslurs.pro, it is only commented
-% and indented.
-%
-% VERSION: 1.0
-%
-% WARNING! This is a heavy magic! If you want something more understandable,
-% you will have to write it yourself (if it is possible in a stack-oriented
-% language that PostScript is). There are some constants you can
-% change and see what happens, but I think the slurs should be almost
-% always satisfiable. When not, let me know at:
-% standa@hiero.cz
-% Also any bug reports and comments are welcomed.
-%
-% Stanislav Kneifl.
-
-/slur@Dict 200 dict def
-
-% this dictionary is for \setslurtext, overriding some dvips's definitions
-/temp@xx@dict 4 dict def temp@xx@dict begin
- /a { moveto ax1 ay1 rmoveto } def
- /V {gsave newpath transform round exch round exch itransform
- exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
- rlineto rulex neg 0 rlineto fill grestore} def
-end
-
-TeXDict begin
-% get dimen from TeX's string ("125pt" -> 125 PS points)
-/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
-% get dimen adjusted to Resolution
-/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
-% Adjust to Resolution
-/AR { Resolution mul 300 div } def
-% the distances in dvips's PostScript are resolution dependant!
-end
-
-slur@Dict begin
-/CP /currentpoint load def
-/ED { exch def } bind def
-/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
-/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
-/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
-/M { mul } def
-/A { add } def
-/SB { sub } def
-/P { pop } def
-/DP { dup } def
-/R { roll } def
-
-/drawseg { 0 0 moveto
- ax1 ay1
- ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
- ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
- ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
- ax2 ay2
- x2 0 curveto } def
-
-/DS {
- AR /maxe ED
- /ifadjust ED
- /ifdash ED
- AR /m ED % max height of the slur
- /e ED % "angularity" of the slur; 0.1 = very angular,
- % 0.3 = very round
- /aa exch neg def % what to multiply the height with
- % AFTER the max height checking
- /y2 ED % y coordinate of the end of the slur
- /x2 ED % x coordinate of the end of the slur
- /y1 ED % y coordinate of the beginning of the slur
- /x1 ED % x coordinate of the beginning of the slur
- /yr2 ED
- /yr1 ED
- /internote ED
- /x2 x2 x1 sub def % x2=x2-x1
- /y2 y2 y1 sub def % y2=y2-y1
- /sx y2 x2 div def
- /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
- b 3 AR lt {/b 3 AR def} if % b=max(b,3)
- b m gt {/b m def} if % b=min(b,m)
- /aa b aa mul def % aa=aa*b
- /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
- /aa aa s cos div def % aa=aa/cos(s) height of the slur
- /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
- % is the length of the slur
- e x2 mul maxe gt { /e maxe x2 div def } if
- /beta e x2 mul aa neg atan def
- beta 90 gt {/beta 180 beta sub def} if
- /ax1 e x2 mul def % control points
- /ay1 aa def
- /ax2 1 e sub x2 mul def
- /ay2 aa def
-
-% check if the starting and endin vector stay in desired quadrants
-% => beta < abs(s)
- beta s abs lt {
- /b aa abs s abs 2 add sin mul s abs 2 add cos div def
- s aa mul 0 lt {
- s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
-% (values to play with)
- /ax2 x2 b sub def
- }
- {
- /ax1 b def
- s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
-% ^^^^ ^^^ ^^^
- } ifelse
- } if
-
-% align the slur to the staff lines
-
- gsave
- x1 y1 translate
- s rotate
-% [1 0 sx 1 0 0] concat
- drawseg
- gsave
- initmatrix
- flattenpath
- pathbbox
- exch pop
- sub
- /slh ED % in slh we have the height of the whole slur
- pop
- grestore
-
- /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
- /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
-% check if the slur gets too close to staff line
- /shift 0 def
- slh 4.45 lt slh -0.5 gt and {
- /slh slh dup truncate sub def
- slh 0 lt { /slh 1 slh add def } if
- aa 0 gt { /slh 1 slh sub def } if
-
- % slh now contains the position ot the slur top/bottom in the space
- % between the nearest staff lines (from <0,1>), regardless direction
-
- % slur is too low:
- slh 0.45 lt { /shift 0.45 slh sub def } if
- % slur is too high, but we can be shift it down:
- slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
- % slur is too high, must be shifted up:
- slh 0.85 ge { /shift 1.45 slh sub def } if
- } if
-
- aa 0 gt { /shift shift neg def } if
-
- ifadjust 0 eq {
- /shift 0 def
- } if
-
-
-% and finally draw it...
-
- grestore
- gsave
- /linew internote 0.06 mul AR def
- linew 4 mul setlinewidth
- 1 setlinecap
- 0 setlinejoin
- ifdash 1 eq
- { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
- x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
- s rotate
-% [1 sx 0 1 0 0] concat
-
-% uncomment this to see the control points
-% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
-% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
-
- drawseg
- 1 VS
- drawseg
- -2 VS
- drawseg
- x2 20 AR gt {
- 3 VS
- drawseg
- } if
- x2 50 AR gt {
- -4 VS
- drawseg
- } if
- x2 80 AR gt {
- 5 VS
- drawseg
- } if
- stroke
-
- grestore
-
- % now some \slurtext code...
-
- /x1 ax1 ax2 add 2 div def % middle of the slur
- /y1 ay1 ay2 add 2 div def
- x1 s cos mul y1 s sin mul add neg
- y1 s cos mul x1 s sin mul sub
- aa 0 lt {1} {0} ifelse
- end
-
- % this is a hack to place the slurtext in the middle of the slur.
- % From unknown reasons simple 'ax1 ay1 translate' did not work,
- % so we have to overlay some definitions with our own, namely
- % 'a', which is originally 'moveto' and 'V' for drawing rules.
- % maybe there are some other operations that should be redefined,
- % but for almost all cases this will be sufficient. If you find
- % anything that won't be typeset at the correct position, let me know...
-
- temp@xx@dict begin
- /dir exch def
- /ay1 exch def
- /ax1 exch def
-} def
-
-% crescendos
-/DC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth % line thickness: this results
- 1 setlinecap % to exactly 2 pixels in 300 dpi
- 1 setlinejoin
- x2 y2 10 AR add moveto % the 10's specify wideness of the
- x1 y1 lineto % open end of the crescendo,
- x2 y2 10 AR sub lineto % similarly the 11's below
- stroke
- grestore
-} def
-
-% half crescendos
-/DHC {
- /y2 ED
- /x2 ED
- /y1 ED
- /x1 ED
- gsave
- 1 AR ceiling setlinewidth
- 1 setlinecap
- 1 setlinejoin
- x2 y2 11 AR add moveto
- x1 y1 4 AR add lineto stroke
- x1 y1 4 AR sub moveto
- x2 y2 11 AR sub lineto
- stroke
- grestore
-} def
-
-% differenced line
-
-/DLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch GDAR neg rlineto
- stroke
- grestore
-} def
-
-% sloped line
-
-/DSLN {
- gsave
- GDAR ceiling setlinewidth
- GDAR exch 1.125 mul neg rotate 0 rlineto
- stroke
- grestore
-} def
-
-% free line (init & terminate)
-
-/DFLN {
- gsave
- GDAR ceiling setlinewidth
- CP moveto
- lineto
- stroke
- grestore
-} def
-
-end
-
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-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]/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[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
-%!
-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/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/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: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% 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 (CMBX12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Bold) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMBX12 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 54 /six put
-dup 56 /eight put
-readonly def
-/FontBBox{-53 -251 1139 750}readonly def
-/UniqueID 5000769 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
-1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
-583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
-0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
-B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
-D6C478E571C9E7625F22D7236D13C6F0190EA03208C1624923CD23F6BA9B722C
-E2316C051790AE71DA6260D5496E8A0B6E3C14171224EDD11B92E199DAE5F8FD
-B9822F9A31D63E2E9F980EA0E6117A84EB1C2AF38ABB15DB646BCC63CCA6F94E
-F3F523ACDB05070DAE2468BD5D162D54CA0D805BA67873AF78C5FD9B0FC5E688
-020926F5AC03D295120E2ABB5656B485E8A15928D1C853E4453A66FCFC6208D6
-1A4B011437B9E720AA5742FDA983E3D8DD6E7D7E95ED886A3F81B579757EC087
-71A6BFA6D42CBE0DA850E82D85EC8C10135A3EE811E9B62CA656D16E3026CC1D
-532A8CDD835A516D3C64F982E9727751E327DE2A025F6B5F5CA552E4A7308571
-BE65796766832380F814DBD17E939AE2B64C1E9B446647DB2862167B2983895D
-1EA9B7CB7DDED044B67B09539D4195C5BB6A8423237EBC12B9BEEAD89D263A4E
-76BBA075736BF5A88FF8281A702525C826ED203FC8659CDA18D7AB5E26876B24
-CDA860EEF75F0E4E4B1F30AD3E9F13AE4A56DA1CC8FFB7C765A442A873DB342B
-16DB4A1CD4D1D798ED77CACB812E4BD55354422F106D282CF3FADE79DB8DB515
-B374B5A2CA873D5F2DDC6A85FD765FDE7D0312B6FAAFEF40FA6B269A63D83F47
-6A510D39CC4A64D9DD59CDB4BCDE6E5D04220D213AF83058DA3F494C94C3C903
-76F5E1
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIXSPX-Regular
-%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
-%%CreationDate: 01-07-22 at 22.39
-%%VMusage: 1024 69400
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 502 498 0
-%%EndComments
-FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIXSPX-Regular) readonly def
-/FamilyName (TeXMUSIXSPX) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -300.3 def
-/UnderlineThickness 150.15 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 502 def
-/descent 498 def
-end readonly def
-/FontName /TeXMUSIXSPX-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 21 /endash put
-dup 22 /emdash put
-dup 32 /space put
-dup 33 /exclam put
-dup 57 /nine put
-dup 68 /D put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-810 -5754 9613 5760}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
-E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
-84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
-81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
-758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
-CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
-F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
-13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
-BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
-1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
-DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
-84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
-5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
-912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
-F9F218F54C1ABCB01CF70AD5C0709D6C68E309A8912EB1866D31B3ADDEEF4FE6
-DEA92FD943B1D0E2B2A72B4E6F6198DB8850E8F62BEC05F5895A35D2EBEC151D
-D1F32E6A91F3719974935FE2F7E7BD75B5208BAB55BF1D3BC9603FB03611C700
-07442890C85240D57C7C3968C89EA69B3D75AD68A7BD0127C80B321EDC7189C1
-B2F8282767E7CBDE116FD7763C699719AC5F132F0FBE324EA8F5FF1C9C3ADB93
-17FDB35FB51692846C67A02136EE2827BF4FB52399C889B4B017D1BA678E6DAE
-545D73CB60BC08ED5ED2D2C0B9E27D256D0EEE179B49CC78AD01030806FBCDD4
-76AFD0729F3AA3E94701B348E7FADAC750003205ABC6B8D1BBAB27DABDCF56A0
-B900DDDC30EA9DFC518C382DF842A4BD14A85402915322774A26CDF9553EBC34
-29E945E4087A26412F91C26EBF5A75BEC8F6DDDC18F8FE1F80829F0823A7383E
-1D1CD5A4745BA8E4B0A7690438BB9BAC08893C49946E68D93663952004384A09
-FD476236B3555178371FCE5E2F9C8093DD39D86FBFF328DA9A6F4A7D865C5A87
-6768D312A57DDBE44EB34F3759564F6B23743372D5693D4BDC44EB52206FF796
-FE61B10F3B35AA26A02398B5D72E31CF7E468B12D1D6CBBED4EEFC09B025D75D
-5C22BB169236C6F0FF88F0FBC2D85D553624155E0A956399391D16F0174657F2
-7B864B32A3DB5CBCD0393320C01BC3E9F163EFE84E8CB09AA84E09813D1D9718
-FC594EC1FFA27C68FF95D4A5DC1B95E2B2D7CE6A6F134F7D97696DB5A5239066
-2F86D1331486749340336853BCC4AB747A772A6CD80E947979C3E3373A91B93A
-5C28668E67E4AD474E144D26E532E815CFFC2E11567B28F434A6D6903CAA69AB
-BDE28466AF647A37007A5F91734870E5671DF837F7B084E11C2F266CF732229E
-C192F8CEEB631E1D901D174DD13407F718378DDB798F980AEA21659B32CA5777
-2F372893AC0C2514996406B6E986C8128D0534EAE7C3F59A074A20F5F0B6EB1D
-D9E5AE27
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-%%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 43 /plus put
-dup 45 /hyphen put
-dup 46 /period 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 56 /eight put
-dup 68 /D put
-dup 70 /F 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 110 /n put
-dup 120 /x put
-readonly def
-/FontBBox{-4 -235 731 800}readonly def
-/UniqueID 5000832 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
-BA304FA879392EE0BCC1A9D9755522FF50BFFF61E504C1AC474646B0910BEB2B
-950E33B9AB30D0786CF7F5F5DD218EBDF7B90241CFD6EE56AD3ED6BA5F18855D
-7E430575CF31761423CF91A9275915A099A5D0C289E5CA71844EA3179A2E917C
-8ED53F194AC2E42AF88FA2A7843F392E71F66DEA6D6D320CC018C055ED3FD2E3
-D896CB52C58907EC253A6EE4C0F0142C0D2BA97AAB203D626433EABDD890E1D8
-85B46B1D6801E39931F402F8825A21D0D4869F02FA1C99FEE1A786CE64B76750
-63A2B3BD3FA2B3E0E04ED9832582F5515AFEA4AE33D316ED13D544947BCA38CA
-9248812BFB89A91453458C0A2D49D46F971EC9C5875A3B85BA7736F7EB48AC80
-91C25D42C302F6963AEC093D804013AF4326D75D838C039DD7B637802D663A87
-55EAE9A270823267DCAF70D85D56D17D89DCCBAB7DACD1DE23FC6FE892966602
-4C5D3B211F325B99ACAED97EF275CF917A6A67B5C04C700FBB29DF2FB1823215
-202A3062F218582C59B4973E4E9FB1DCAC3D1DC5D8096F80B49CA3444CF1294F
-BFAB57DFACC9D019DB28335BBB3DEFDB921C86FBEEB0F238F7A3840D783A439C
-62E3102054068412621214D6CC59FB6CD9CF4BBB73A61F7C685A3A9A518734F9
-E4D7E801AC7E97C83F76ECD2882B91FCF7E694BBEA02488CBF10A57A60A972C1
-D8E9C4C78E417EA8F982841DE477C7CF06D99A30AD905041D5C8EEFC72CB446B
-6A381E924333B1CE178C52D8326D9B54930DA77D7061E5ED7BA35FC19B90AC14
-E6031004E1302D6A3AC105F7E2B7B89AE47BAFED3C2EA03EF10779BD77D047EB
-8C502613255C70976E5E00B2AD84499F1679E373293E43FD9AD944FEE7214558
-FF88BED8E5CCC87EED1F6C15896BD3048A78CAF070C86AF3B0E5CF23D89D1C2F
-0FFAB7757EC422BB0E85C1503FF644C252CB4F4DA0DCC64F22FC0900215EC34D
-0BDA6BDD5326FE66ECCCCC22E9752567078B05975B4625D5BF539E5C9D34D596
-3E21B10F510319A5292DA2753664557F23A1FA47EE3D7FDE7CCB2AE8D1D6A397
-4AFAAF2B97D2DDD126FCEBC9E71C792A4AD5F05807913816A8DB922E6CDEAFDD
-F3BCC5AB0E6AB42F3B79012BBE1FC348CD375023D618A678AE7C9A030917B290
-FD09F30DB6FC490819B2B34E916CD2229B8FCC34CCF6958A1A3ACCB31A6FB711
-D2708C9728A4702340FDFEBB2065E843FCD1DA8E7A5CD9B3CD8E170BDE5F858D
-B2C12BB7A66101743E1485777BC125BA7C01F67F1AFD39090934DDB668F9C598
-935DD174112B6DCE1B4DFA4FDEA079BB7F1F6005B46B8030C9BD4EB3DF5DDD8E
-BC29D76E422638B38B11FFFC93683436F604B663CAF4611DB31B574B0A4E9E1C
-AF6409C9CE4A2A9DC8F3C0CE6BBC1C1EB038D59E883C4835B61B5C902180B085
-2E7ED8E3CF70F284B56BE753BB737DC0E7789B870A48164546F1AB5C2468B334
-C44251F7267A14A6879A7463DB9E2E8DBB2A58406B1440BEEC28E70F4E28E1B7
-71BB5313B86AD78167A9BF61C3CE289B17BA5419685730C3FCCC38C11966C4CF
-2BBE1D5CEE2B2F1D7A7EABDAF3F611E701716B45EA118431FA33360A17192B6D
-DDB70E158422144410F230A7F4D638E8A54F66212781B35BC3A9F978B71038BD
-B1391F6AD020D06D54D4563E799DAE12B7A8E6E6DE06B06A618C71D9FFD71419
-17CAC85836A6766EBBD0CE1BF4B68F02FEC11F269FB5C58EA7F8741BCAB04423
-BE020818201838F2402F9E2E2B771C84AEEFC64C46A48CC1608A55356ACE23C4
-DE45D692625CAD8E6361693BC0F83B849379EDF5920FC8388849D3465A1A4F08
-75DAFEBA9A355CC665A2859E974EDEB50B8A6ABA1209D1E1782F278A3D4008E6
-71C3C663B8AC6C6792AAE4F2148407CA70D2F13BBFD130DAC6B3047E31BCCCFE
-0B43672084F6F4B0F60975383ED4FD2D2D9218D92147B005047BDE1F5835C05F
-4766AA2D234DD6DC11E591E90E876EAD5CB92FD129F79D7023ABF9514C6563E7
-3E3321607B3583D7A8A1E3FDFA3727D8E3F9D368268743C8DAE900B625AEAC26
-71436B63EFCA9629EEAACDAA86446622D7F9DD0A152CEF5EEFBD6F2228E14176
-1EB8E7DBD83FA09A6C3787BFE51D2A6F78BE8D271A68B53D7190465D23584F2F
-09D50DCDC04943D9A6608F12DB1408C2EC1EA053F54279257A647476BA9A8A8D
-CF732B0549FD3AF0A61802030E08846FB046CC97FDBF9EB77A2FC401E600654A
-8C315F27276E8C1C401F8ACAD1502FEF45792121D5EDF2A26EF315C219F5D014
-74153BC6D0C07B77C75718AC748BC274ABDC70E7AECD143B100C8F8E5E950689
-143D1EBB4000E973BA297835AAF951B32AC17990DF46D23174C5A00298CCC761
-5B1B265A2EB9EFCB3B7BE068392DBA60737F6066BBB16DC7BA36110E3AD6B435
-F4E80E7B71D9A14D4E08F7FFE94253EDA39883E029E87D848F2674060B210A4B
-4D75EA89F66DAD714C8A65A963F643C41A044C2528583B0E1F84BB63ADFDAAE0
-CF0239E5C43D3BE72975EF030102B6C1C5E7025AD098E61E64FA01B20167660E
-2926130DBD51D0966762DC1B16F3E76A2080BC91CC1BD564FD5A2E067443E089
-E5AA24AFF609526D7E14BA2FCB50EA6D729BE043B799AAC92A7598A07BA7C5D2
-6603F5F3C6F58D0836A963F7F6E1D0D41509CC35FD57BC45F4FA8EA482700453
-B3576A4B8ACDDAC4858FFDA330BAF6C47511C336A1D700366723CED8B3191D65
-5CE2ED797059ADFE046F11C0F27645A17FE9BAF00F0BD8AF2162B1ED05A61E8E
-DB6B6A98D60ADB820576122C30BF90019D255DF12A13D68A7C3CF0078AE50C76
-72FC07F886F61F244447BCBA71612CA3A6A2D99BE2C459C39289B785FB68792F
-49EF8453C4D95CB7B5DAC0EF501F6FE871F0E3167B6107C124865F6A542A7903
-53241E68FD2D102AE4185D8D5B3C6F2FA5675AD0EFC35935F5147865D44EA44E
-62A5539C82FE658AD07E29AAF6749DC662B35FD26B3BB9B81DFD700D4167D731
-893D00EDBC32EEBF7060F70AD67B8DF0DC64FAC71FD55A741EBA91B6E5EDC90A
-FB19C1DC2AAB1E7D94A4A221274DFE6081737D2B63A5752F7405BF4C3C2489CB
-909E3FA2DAC0CE71CFCECD62C87C50843A557E2628B33AE7631DF16FE89ACA3B
-4454F7F29371E3E1E8E5A5B82587F7DAF7329F2E8DCC7041532EBAD8FFA13112
-2B9D9B0BAD9076285C6C635154F81864A4AA44DC8DEAAAB202885FD0D358B645
-F72EA9D1E21F80F24356AB5F1E920732D45BB0F605E11C31468673F5A87A09E6
-C80BCB6EE61428F0592575E54CA7DAFDE909F4EC41C73BC7AA51BA36DCB434C3
-62807D9B490E82BE5D9B9AB8582FA3FFF808448F49DE3E9D07693DE7298CEB22
-1BD7C2B40BDD0E98B4C7DF1524B7248276D668B192D6BD6B9E3D6568A092938E
-2E482445AAFE84CB172FB62A6CD0E2127A7C7B41D8B64ED9DCB28AFE8E23011E
-3D85181E372230BA7434BE468D62BDC726C4191854D655CCEB8F03E6C2D8B1B6
-ADE3E8C0ECB4CD8C14B68438005F00C7CE7EA1461909DC5FA7381ADAE09C7D2E
-DF6CF337A48CE2297FC06F8D10C15737D8EEFEDE595FE797149C58F111C534A6
-D6B64DE9EDA9324F993E963515BDD9B7D752CC9EFC48DC79C64A9BE86FEA8C89
-3E31B23E1B8429F21DEA97E92E6AE742E9012E1E996B9D4AA635BC152552AE6B
-75992D6B2B9BB9ACF4F175BAB184D28C2E275B85116C5BD63856CCB7758A337F
-FCB142100E6E4843FF91C48CA661EDF1F1E91AB67F549FC863410A1CA4A3C146
-ACEF6B8ACF16253990C407E12EA811B3B8AFEC46D0BDD9C0613DBB504EBBB25C
-AAE7925872B83A6C5BCEEBD9F683B1CB89BAFE6A9DC950EA548B85972DACA335
-90F571235C31CF1971A39E97584EFB89607AF944AB142A9BBDDF0830DA31DC26
-D23602FF3BCC0F5FDE59761AA3E426BDDFA67744CD7E1CCA3DEFBF85BBB444CD
-713AF587BF3F2194B62419DBA257D0C91A8FA0F1CB80474A2577B989ECBAC1CC
-452F2CF653487C6A1D0B2274C30E09E944A04DEA04BEF28B9BEA43E6D431CEA8
-DBD28C427EB4368D6459286A6D502DF52B3BD0B493B1F1316491F2B28FC28787
-AB4D78BF341FC2757EFEE305760A73EEE6BCF8816AEE84DF2D8B3238A4EA9DF7
-DBFB0531521A86EC8EBB20863DCD59AA9DAA2A460218B9D47E33173AFDC5516F
-CD71D1866C03C17BB4870FEB3D59E814E28FCD7F5C86775FE2577A457473D0DC
-6C5AE56D72EF222CF8559621FF7251B5A8511833B699E7DF2A1E05364F53B55E
-B47DAFEE4C5ECA26171DDDF49EE5723BAD841382EE5950BFDDD572048A2A2CF6
-C743B19DF52ACCB1DCC10EAEB0835B7AFD7BDC2CEE30FC871645622E98710BE7
-D446885DAE77345F2100F871BE236C76C0C49753DF0A6F6F2F48469D9FDEB742
-70DAF376FF4CBA2F64DBD34AC5FD9B52375FED1FB89FFB57EE3CCD38D50320B5
-0BD772337BD8ED7D655875431CBCAA0DD0548C5FB2C9C4E32465152EA655EB21
-AFC2909F5075AB6611E315991E703F5C39304985FB701A9A46FB359430CCD035
-838AF5691734336F86B72692378B4339C10A0EE3F7FBE2715D9D8697B64E9786
-64FB546F0DC6E9A8440E459B0C706B79749269D12A44E23A3C436C9C3BF2CDDA
-E50BBCCF686BE149F73039232174BF54BB49D2C9AB689234EABA0E1250D62079
-ECE62768331D204DFEEADCA51EC7233DB00CB8D89562B584C03D05FD0CEA137A
-264A8CC4AF87128C40A75AB1220959F09AFF7741A084BB41810CCE1F111D7D0D
-8A24AED89B909515AA9120217D798F79B25406E7BC71A4D3EE1FCD45BBBCB289
-87AF6B753D89A753145DEEEAFE6075ED1AE0F4B859994C1F865B6C89FAA4EE6B
-EFF37164971588CE4E2330F818A0956B2F7F314823A74DE26292879B80386B3D
-39883E591F9DBD0174D6792E7A7123DA6F44A04B52484C25369B898F29E9C742
-6285CB0C36DDE9EEADD16D540A6A592B5BCE4AF1D950C597E543F4E7F3229AB5
-97DAC25D235124D18081F400113A5B8FB4EA928BEDC1FC5B08B5B642F20C2C96
-3079068B41FBE64492A02DAD37405303CDB5241D9FDDB53765CCCB19207C46C6
-0CA7C66CC3EBE1FB6F15CAE4068934909B30D89E39CFE935D948499FA8D075BE
-9528BBA510C9A1EAA660079936AFCDD70374D7FB0E27BFDBE9F9F6CF8CF2469A
-E06630C42C6C32938E5522F704BAB2CB5BBC907A2264BBBEDD5D9C993AA1AC9F
-EF0FD00B4D39BCF1BC3C3ED3A4C3CE9A8AE8830CE6C01018D38FA1D3CE9E0A53
-3884F01C7E4D273AC07E4661CAA7375A556866F03730756E007DE3527A3995A1
-203EDBE387EB5CDED96C209D48E733AEEA65DE9EE221478C7B344C76AF36ADA1
-984D479CE60DBB8CFAC12699FF9A745F7AD7FBB30286EFF1D0AA9F8459A771AD
-25505F65FE0E6C9B2BED
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% 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 (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 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 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4C7DFC961F6C1FE53CEFC199A95B8DBAAA3FC986A88F6684ABE1585E33
-712826DBA16971B8AD5B7CBC4CE67900097C69C2245E9EE458A31355733EE7CC
-90C4FFC71A7EDE118B4D71D7FE3EB35DA64B5C654FDFAFA258B0EFDA461E41ED
-58CD17B771CFC0CB6A1F12FA728105408A8959AF1931D2921B46D57937099761
-85559F27E71584C7BAEF5158C12FB0FA3B64ABA8F414C1FC923C5F3E6077C8D2
-EC8CFA4A8A5906F7B3B2C1EFCBA6DEED3AE32E488FA57018E852A59AE4C0DD0A
-D27AFCEF2880B065DC3EA87CF81D14CE6007BCF1E4554B3628D6F2821B4A2DAF
-85C0D4D431577FFC6EC199D049D4146B9D30D266ABF71BAABE6866B6E6D742DB
-2FB6B50079A980248896B05427B5D4106C6AC33B5BDFA72AC622CFC8CF42061C
-4144264EE1551A34F0ED7706DEF91DCABE4609430ED341F01270F860E9974CBB
-FB25A4171B721F966905220B344C71BA217C09C4757A492BAA79172E9B92C91F
-0147E4472F1A61D165B4485202D7BAA2059A2A60EFD10332F521D3B1AADA931C
-0B1D4CCFCD5D45C79304B86DAF526B36773FFEE65AEEC9DEE5CBD4796637A115
-F33F783268B743AA3A2B49CE472BD1DD86CE8C30FA9027FE267023A8CD6CF010
-027D9F20CEBA71AC20BBF58E04995C167072B42DA89C201730C32D706CBD6E55
-68D63802EEF006D645172DA6D002D19BDC85EFD7117AF75FF252D5E8F8B7BBA0
-E00580E97738675E717BE22B210040AA0DC3BAA6218D73B3036808530316F26B
-99CC5D8EBF41A1081F4057095C860CBF611D4A00EB773FF349DBEC0F86E66703
-D9D3BDF4DDF79DB606A08E274E9D9E1B6C70F6E2D91F7D6C9A22962C9FCFE01E
-D19E3638BE8AEF8790E01C7A24740F85378D14B2D2C6FC75D906CFDC215E3832
-CA6FD64C9F3D0BB78FDCDC38363B1E7906EDE5C5AC965A4FB15DB12C8D499C48
-92774A33111A8E2B674DAA3C1487DF7FD6699C6B3CB1339A13CC8F2BA996E606
-11AE6C0C987FE6F50778E86664137CAEA3CED2461B3E1C40EDB5CDA387D98C95
-B0202C59AEDD203BBFA90026149268FCE8ADC3BE5DAE7131DC9027805B5CBE78
-A532452BAD079043E4987A25AB0E9F393FCF4536E265AF4B24F4646ED98A97B7
-64A78A3E5235E61F0BA0F3626057A683B074C1860A838D89ABA954D2587FBE30
-9E643EAA66D2268E8204158BBF85C01F84445BF052CEDB557F681DB34CAABB42
-E5BE540C9DEAC27A4782FD75D7D3A8066B5D36F31AED0462481A981EFEF3BFD4
-1615AA0AFFF5CFDC800A753677387B1FFB64D4A73FC4E77EA216DDF3189BC13D
-99BE60AFD9B511FBEA809DD8D236F70DDB60FB4ED0F18F3558831C411C1C8CFB
-16AB745E5464D4F50543EA6CE70DAE402E5CAD5B041AFB33E32EEB100B03290B
-B01DCE175E529FF83CBB0CCF2B7F8D6D05150DACE1ED817542CFF59960A43586
-A53113F644DA9C24BCF39CB1BA6B0E4AD9B89BE46EB38ED776807ECCB0649C01
-CA0C8A7AD72615C52FDAD0C3875E0CE463D95C15DFC7A0C4D30E0E1FF1A7A971
-614F328957FAC286774C5641D74924B0373856DEDE5E05AA3D75F1EFFB631F66
-3E3629BB3ECD0DD16CE4F0BCA9A7BA402A45CD548D65F12EBCBFD8191D6AD55E
-3EBC360315BC30BFDEE5969A21DCEEDA063629132D92231B97BC4091ECBD98F1
-CE9667E3511961D4689D55B90B432110218CC99801CD59621BED3E5AE4208198
-67B13A90E0B2C1EA2A84D0F0F91C982D6497
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: TeXMUSIX16-Regular
-%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
-%%CreationDate: 01-07-25 at 04.07
-%%VMusage: 1024 36138
-% Generated by Fontographer 4.1.4
-% converted using TeXtrace 0.45 and modified by T. Uchiyama
-% ADL: 701 299 0
-%%EndComments
-FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
-/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-20 dict begin
-/FontInfo 16 dict dup begin
-/version (001.000) readonly def
-/FullName (TeXMUSIX16-Regular) readonly def
-/FamilyName (TeXMUSIX16) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
-/em 1000 def
-/ascent 701 def
-/descent 299 def
-end readonly def
-/FontName /TeXMUSIX16-Regular def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 7 /caron put
-dup 45 /hyphen put
-dup 71 /G put
-dup 83 /S put
-dup 129 /Aogonek put
-dup 131 /Ccaron put
-dup 132 /Dcaron put
-dup 138 /Lslash put
-dup 139 /Nacute put
-dup 195 /Atilde put
-dup 196 /Adieresis put
-dup 205 /Iacute put
-dup 208 /Eth put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/StrokeWidth 0 def
-/FontMatrix[0.001 0 0 0.001 0 0]readonly def
-%/UniqueID 0 def
-/FontBBox{-620 -2059 4000 2062}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
-0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
-B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
-84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
-9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
-810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
-A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
-52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
-20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
-9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
-2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
-E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
-C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
-577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
-AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
-696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
-F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
-1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
-DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
-CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
-2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
-7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
-8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
-79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
-CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
-4205FDFF86463FD6FA342DC0139168F5BEE46B8EAB1D78359B25636C93B11DE0
-21B27915CB45437C3868DD1BD693E84A08CB6F47529E7F7B227DA3FDB376C15C
-BFC84F721111FC89C718BF7C77F311852668B0E67E69440690CEC6D8F7061605
-A4A68126B09455D6256EFF5F6E5EB47D159E29106461A63F663F745E5C9745EB
-7A2B80270D9F2800DD6D5B746F18201C0E6E90020BEB948B805403A784DE11C6
-FE923BF21011A43CCD01B4F5962E65EBC2AA89EB045796E85AA10E505EB7E76A
-EE0ED8D23BA4BC15EF2E19AD7D444138EB2C7E6CD793492DEA87154676C0A522
-B5029A833E15FF8C0BF47700B3BC5F55E235A902FD133C3BBE45009FED06D87D
-8E03D051DAD0B4812762F5B04829C0F607E743B709A5BC08E6574ED590CB0CB2
-8DA54E563F3CE7CDAA3F1E5C178D991388C73A98CC30D3493F25F23FF04EBFD5
-0C71C2309411EC72DDED0FDB935454E03BAACDC4921547A074D5586C7283B373
-A1B383786FA10E1299E5E05927B712113F5916D09286C9C0327DEEFD2ABA2489
-0D9A622E773A4919A928F16B055DCE8BDEB5AFAC49CA2D5A27501862A569192A
-FD92167DCC957A0176D50221A03153F2CEBA1E8FA3C3E209A6AAA0067975B084
-C9E2CC4B0C86A927AE638EBEF35C5BB85E3630B91038A5EC189F0316A7674A2B
-55FD8BC89BBCF617140B3B0FDD017FDFD3341D0A9DD8B416D6AEFCC1B3E69315
-4673144851C00F0E66266E2E9A82A8547F7F0BFA1234F8811EAD17400018E816
-0D1E953D795FBEB1416E0ACDD2665844D010FAF7DC3D6BD679103769614870E4
-226C4E8E37E5C02B38234B30EE1055B706EEF79BD6FC215C248635D6D8186912
-CAB48E8C27877CDCD6DBE64540F2AFFB0D26AF1E64F36C3BC519FAEA507FDAAD
-77B66B28F89F50565B8F557E8CAC300AE1FC6720DAE0AE9EB61A18BC5ABAB046
-DFFFBAF841FE5DCE1EFA4716807AE96878B084CEEDDC6989E0062A6E77F33EB4
-759B858966A559C080573A8C3CC8BAC05D667DABE6AA5EAB34768A06DFC2122E
-B15AECC457E8C5847DBB6A656A679C82608E349FAC896224BAB3ACBDA1206D45
-B4D63C385D129D5D1C2560076F7B196C6AECAEA5F5DDD117BA25BE40DB3C2638
-8DA1C03B4699C327B7BB19557C7C6C1D72DBD8ACB0FC646554963B1738048C3C
-F8180D025897F12EAAA5FA66912A4D57F0589778863E3AC6FD3192FC2217F3BF
-5C0049EC5B9537DC78656B8CA049B328EF2AA3EBDE65C1030A05AF50EF850722
-EE6D9601F0EE31E786B24EFFB7993D89E0D8327B4389254CFB18C8DFB994AC8A
-2C3099B2668630AD2D60740F81759B455FB1233509EA2D3BD1BF974692770856
-D2C1E3FA1E0FCFC70C05DAFE295632C961967771BA5258057A7E6BE46B6CEC46
-6A7F38F6818F77321074B02FF2DA607EDDDE9D8CD61F93F498F4E720FC18CC86
-6D6C953CC07194AA046A250BC34C947549A4E4AD011EA7B264F2A8958279CA6A
-99F85176CC0EAC988D603CC55535300FD80CF60456C6FA92367F539689024AFE
-43AA65EFDE25719A118104170B2DE78CA2C1B76B79E96AA83A6369D7CB5D0E73
-4BA8D40A599D6365B50D68F95D5B6CE2F9545D63CA72EC43881D0AA6BE7ABAEA
-FC1D8A601CDA591DB9E96950E3C0B4F987FCE023DC160AB6505898329A6AC699
-33731B4C1FD26E6DA3FBFC65D4012BBFCED2BF1B5E5C70CDBAAE157FD6026CF2
-C85F60E7F6D4BE7745A00BFBC90594E3066D2CF975BDDE3BB1365E21C9253193
-BF2FD24D57CB948EFC9C9BDCFC10CB97BE79EF4DA809C16CE0509FA41C943AF4
-8E626D85FD02F323B0068C29B0D6401146C8A1EEEAE3890F6E5858653C88682E
-701FD9404C5735B81B56E9EF763427EDE763EE928B324C2C48749E1038D0E52B
-7E55EE7E0C80A5E5E867AE74B79D8AAAFA8FA13E04D067B5DF1C648E0D483312
-92B2F830163B2DD357C29C5EF3D7C7670ED1F7A6CB50D87E255A4D417E920936
-1AF4989DC55BEB225A01CA497766360A40E1966A284721A09469EBFF8AB8C382
-D3BB19B581746168B54D843BB3E3C8D83610193DF757DA18320C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark{restore}if
-%%EndFont
-TeXDict begin 39158280 55380996 1000 600 600 (xtupletsSich.dvi)
-@start /Fa 199[56 1[56 54[{}2 99.6264 /CMBX12 rf /Fb
-187[83 10[83 23[83 83 9[0 0 21[{}6 166.044 /TeXMUSIXSPX-Regular
-rf /Fc 135[44 9[44 6[44 44 44 44 44 44 44 26[44 1[44
-11[44 2[44 44 44 44 44 44 1[44 44 1[44 43[{}21 83.022
-/CMTT10 rf /Fd 202[36 36 36 36 36 49[{}5 66.4176 /CMTI8
-rf /Fe 47[266 2[33 8[266 133 55[531 266 5[266 133 1[33
-45[66 11[106 25[0 37[0 6[0{}14 132.835 /TeXMUSIX16-Regular
-rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop -364 -35 4475 4 v -364 -2 V -364
-31 V -364 64 V -364 98 V -364 63 a Fe(G)-244 29 y(S)179
--120 y Fd(5)-68 195 y Fc(e4x5)p -30 96 4 150 v -68 96
-a Fe(\007)p 83 79 4 145 v 45 79 a(\007)p 196 63 4 139
-v 158 63 a(\007)p 309 46 4 134 v 271 46 a(\007)-30 -29
-y(\212)158 -47 y(\212)-30 -54 y(\212)158 -72 y(\212)p
-422 29 4 129 v 384 29 a(\007)493 179 y Fb(\025!)550 173
-y(!)642 183 y Fd(3)695 159 y Fb(!)752 153 y(!)835 145
-y(\025)477 279 y Fc(c4ax3n-1)p 497 121 4 108 v 498 121
-a Fe(-)498 13 y(\007)p 643 104 V 644 104 a(-)644 -4 y(\007)p
-790 88 V 791 88 a(-)791 -20 y(\007)1519 -170 y Fd(14)916
-212 y Fc(c2x14n+2-1)p 936 137 4 125 v 937 13 a Fe(\007)p
-1032 127 4 132 v 1033 -4 a(\007)p 1128 117 4 139 v 1129
--20 a(\007)p 1224 107 4 146 v 1225 -37 a(\007)p 1320
-97 4 153 v 1321 -54 a(\007)p 1406 -69 60 4 v 1416 89
-4 160 v 1417 -70 a(\007)p 1502 -69 60 4 v 1512 80 4 167
-v 1513 -87 a(\007)p 1598 -69 60 4 v 1598 -102 V 1608
-70 4 174 v 1609 -103 a(\007)p 1694 -69 60 4 v 1694 -102
-V 1704 61 4 181 v 1705 -120 a(\007)p 1790 -69 60 4 v
-1790 -102 V 1790 -135 V 1800 51 4 188 v 1801 -137 a(\007)p
-1886 -69 60 4 v 1886 -102 V 1886 -135 V 1896 41 4 195
-v 1897 -153 a(\007)p 1982 -69 60 4 v 1982 -102 V 1982
--135 V 1982 -168 V 1992 32 4 202 v 1993 -170 a(\007)p
-2078 -69 60 4 v 2078 -102 V 2078 -135 V 2078 -168 V 2088
-22 4 209 v 2089 -186 a(\007)936 88 y(\213)1467 34 y(\213)1656
-15 y(\213)936 112 y(\213)1467 59 y(\213)1656 40 y(\213)936
-137 y(\213)1467 84 y(\213)1656 65 y(\213)p 2174 -69 60
-4 v 2174 -102 V 2174 -135 V 2174 -168 V 2174 -201 V 2184
-13 4 216 v 2185 -203 a(\007)p 2280 98 4 135 v 2579 -170
-a Fd(3)2273 279 y Fc(c4-x3n+0.8+1.5)p 2363 -69 60 4 v
-2363 -102 V 2373 21 4 125 v 2374 -103 a Fe(\007)p 2509
--69 60 4 v 2509 -102 V 2519 21 4 142 v 2520 -120 a(\007)p
-2373 29 296 16 v 2655 -69 60 4 v 2655 -102 V 2655 -135
-V 2665 21 4 158 v 2666 -137 a(\007)2958 -170 y Fd(3)2791
-179 y Fc(f4x3)p 2801 -69 60 4 v 2801 -102 V 2801 -135
-V 2811 21 4 175 v 2812 -153 a Fe(\007)p 2948 -69 60 4
-v 2948 -102 V 2948 -135 V 2958 21 4 158 v 2959 -137 a(\007)p
-2811 29 296 16 v 3094 -69 60 4 v 3094 -102 V 3104 21
-4 142 v 3105 -120 a(\007)3430 -103 y Fd(3)3230 179 y
-Fc(g-x3d)p 3250 38 4 92 v 3251 -54 a Fe(\007\000)3390
-6 y(\201)3400 5 y(\201)p 3420 -69 60 4 v 3430 29 4 99
-v 3431 -70 a(\007)3250 38 y(\204)3270 37 y(\204)p 3523
--69 60 4 v 3533 24 4 111 v 3534 -87 a(\007)291 b Fd(3)3699
-295 y Fc(cx3)p 3669 -69 60 4 v 3669 -102 V 3679 21 4
-125 v 3680 -103 a Fe(\007)p 3825 43 4 97 v 3826 -54 a(\007\000)3965
-39 y(\315)3975 41 y(\315)3679 21 y(\320)3742 31 y(\320)p
-4005 70 4 91 v 4006 -20 a(\007)p 4108 98 4 135 v 4111
-262 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 4111 262 a -364 604 4475 4 v -364 637 V -364 670
-V -364 704 V -364 737 V -364 702 a Fe(G)-155 768 y Fb(\025 )-136
-767 y( )-45 779 y Fd(3)9 756 y Fb( )28 754 y( )111 748
-y(\025)-211 868 y Fc(f4x3Dnf-1)p -151 718 4 117 v -150
-602 a Fe(\007)p 65 694 4 108 v 66 694 a(-)66 586 y(\007)443
-536 y Fd(5)197 918 y Fc(bx5D)p 207 571 60 4 v 217 677
-4 125 v 218 552 a Fe(\007)p 374 571 60 4 v 384 685 4
-117 v 385 569 a(\007)p 502 691 4 106 v 503 586 a(\007)385
-660 y(\303)491 666 y(\303)217 677 y(\304)357 684 y(\304)p
-619 697 4 95 v 620 602 a(\007)825 818 y Fd(3)717 918
-y Fc(d4x3Fn-2)p 737 743 4 108 v 738 636 a Fe(\007)738
-619 y(\000)913 710 y(\201)923 709 y(\201)737 743 y(\203)823
-739 y(\203)p 953 733 4 114 v 954 619 a(\007)1101 519
-y Fb(\0269)1179 561 y Fd(3)1220 543 y Fb(9)1303 560 y(\026)1085
-818 y Fc(f4x3)p 1105 710 4 108 v 1106 710 a Fe(-)1106
-602 y(\007)p 1257 752 4 117 v 1258 636 a(\007)p 1473
-737 4 135 v 1518 668 a Fa(6)1518 734 y(8)1697 436 y Fb(\026D)1722
-448 y(D)1814 524 y Fd(2)1867 517 y Fb(D)1893 529 y(D)1976
-569 y(\026)1602 918 y Fc(cd4+x2)p 1691 571 60 4 v 1691
-538 V 1701 669 4 133 v 1702 536 a Fe(\007)p 1930 768
-4 117 v 1931 652 a(\007)2159 818 y Fc(fd4-x4n)p 2197
-719 4 125 v 2159 719 a Fe(\007)p 2358 702 4 116 v 2320
-702 a(\007)p 2520 685 4 108 v 2482 685 a(\007)2197 594
-y(\204)2418 583 y(\204)p 2681 669 4 99 v 2643 669 a(\007)p
-2805 737 4 135 v 2901 760 4 108 v 2902 652 a(\007)p 3088
-760 V 187 w(\007)p 2901 768 377 16 v 3275 760 4 108 v
-187 w(\007)3724 552 y Fd(4)3462 818 y Fc(fd4-x4n4)p 3500
-719 4 125 v 3462 719 a Fe(\007)p 3661 702 4 116 v 3623
-702 a(\007)p 3823 685 4 108 v 3785 685 a(\007)3500 594
-y(\204)3721 583 y(\204)p 3984 669 4 99 v 3946 669 a(\007)p
-4108 737 4 135 v 4111 901 a
- slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
- 4111 901 a eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF
+%% LaTeX2e file `eps/xtupletsSich.eps'
+%% generated by the `filecontents' environment
+%% from source `pmxccn' on 2011/07/14.
+%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.90a Copyright 2002 Radical Eye Software
+%%Title: xtupletsSich.dvi
+%%CreationDate: Fri Apr 30 23:03:05 2004
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 28 659 567 798
+%%DocumentFonts: TeXMUSIX16-Regular CMTI8 CMTT10 TeXMUSIXSPX-Regular
+%%+ CMBX12
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: D:\MikTeX\texmf\miktex\bin\dvips.exe xtupletsSich.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.04.30:2303
+%%BeginProcSet: texc.pro
+%!
+/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/IE 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 IE 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/IE 256 array N 2 string 0 1 255{IE S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/v{/Ry X
+/Rx X V}B/V{}B/RV 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: psslurs.pro
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.0
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% standa@hiero.cz
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/GD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/GDAR { dup length 2 sub 0 exch getinterval cvr 4 AR mul 1.045 mul} def
+% Adjust to Resolution
+/AR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/AR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ AR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ AR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt AR 2 mul def % b=2*sqrt(x2)
+ b 3 AR lt {/b 3 AR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul AR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul AR internote 5 mul AR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 AR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 AR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 AR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 AR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 AR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 AR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 AR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 AR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 AR add moveto
+ x1 y1 4 AR add lineto stroke
+ x1 y1 4 AR sub moveto
+ x2 y2 11 AR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch GDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ GDAR ceiling setlinewidth
+ GDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ GDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+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]/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[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
+%!
+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/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/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: CMBX12
+%!PS-AdobeFont-1.1: CMBX12 1.0
+%%CreationDate: 1991 Aug 20 16:34:54
+% 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 (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMBX12 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 54 /six put
+dup 56 /eight put
+readonly def
+/FontBBox{-53 -251 1139 750}readonly def
+/UniqueID 5000769 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
+B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
+AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
+7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
+20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
+B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
+68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
+D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
+26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
+F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
+77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
+BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
+C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
+30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
+148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
+E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
+1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
+583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
+0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
+B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE290D69BA
+D6C478E571C9E7625F22D7236D13C6F0190EA03208C1624923CD23F6BA9B722C
+E2316C051790AE71DA6260D5496E8A0B6E3C14171224EDD11B92E199DAE5F8FD
+B9822F9A31D63E2E9F980EA0E6117A84EB1C2AF38ABB15DB646BCC63CCA6F94E
+F3F523ACDB05070DAE2468BD5D162D54CA0D805BA67873AF78C5FD9B0FC5E688
+020926F5AC03D295120E2ABB5656B485E8A15928D1C853E4453A66FCFC6208D6
+1A4B011437B9E720AA5742FDA983E3D8DD6E7D7E95ED886A3F81B579757EC087
+71A6BFA6D42CBE0DA850E82D85EC8C10135A3EE811E9B62CA656D16E3026CC1D
+532A8CDD835A516D3C64F982E9727751E327DE2A025F6B5F5CA552E4A7308571
+BE65796766832380F814DBD17E939AE2B64C1E9B446647DB2862167B2983895D
+1EA9B7CB7DDED044B67B09539D4195C5BB6A8423237EBC12B9BEEAD89D263A4E
+76BBA075736BF5A88FF8281A702525C826ED203FC8659CDA18D7AB5E26876B24
+CDA860EEF75F0E4E4B1F30AD3E9F13AE4A56DA1CC8FFB7C765A442A873DB342B
+16DB4A1CD4D1D798ED77CACB812E4BD55354422F106D282CF3FADE79DB8DB515
+B374B5A2CA873D5F2DDC6A85FD765FDE7D0312B6FAAFEF40FA6B269A63D83F47
+6A510D39CC4A64D9DD59CDB4BCDE6E5D04220D213AF83058DA3F494C94C3C903
+76F5E1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 21 /endash put
+dup 22 /emdash put
+dup 32 /space put
+dup 33 /exclam put
+dup 57 /nine put
+dup 68 /D put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1ABCB01CF70AD5C0709D6C68E309A8912EB1866D31B3ADDEEF4FE6
+DEA92FD943B1D0E2B2A72B4E6F6198DB8850E8F62BEC05F5895A35D2EBEC151D
+D1F32E6A91F3719974935FE2F7E7BD75B5208BAB55BF1D3BC9603FB03611C700
+07442890C85240D57C7C3968C89EA69B3D75AD68A7BD0127C80B321EDC7189C1
+B2F8282767E7CBDE116FD7763C699719AC5F132F0FBE324EA8F5FF1C9C3ADB93
+17FDB35FB51692846C67A02136EE2827BF4FB52399C889B4B017D1BA678E6DAE
+545D73CB60BC08ED5ED2D2C0B9E27D256D0EEE179B49CC78AD01030806FBCDD4
+76AFD0729F3AA3E94701B348E7FADAC750003205ABC6B8D1BBAB27DABDCF56A0
+B900DDDC30EA9DFC518C382DF842A4BD14A85402915322774A26CDF9553EBC34
+29E945E4087A26412F91C26EBF5A75BEC8F6DDDC18F8FE1F80829F0823A7383E
+1D1CD5A4745BA8E4B0A7690438BB9BAC08893C49946E68D93663952004384A09
+FD476236B3555178371FCE5E2F9C8093DD39D86FBFF328DA9A6F4A7D865C5A87
+6768D312A57DDBE44EB34F3759564F6B23743372D5693D4BDC44EB52206FF796
+FE61B10F3B35AA26A02398B5D72E31CF7E468B12D1D6CBBED4EEFC09B025D75D
+5C22BB169236C6F0FF88F0FBC2D85D553624155E0A956399391D16F0174657F2
+7B864B32A3DB5CBCD0393320C01BC3E9F163EFE84E8CB09AA84E09813D1D9718
+FC594EC1FFA27C68FF95D4A5DC1B95E2B2D7CE6A6F134F7D97696DB5A5239066
+2F86D1331486749340336853BCC4AB747A772A6CD80E947979C3E3373A91B93A
+5C28668E67E4AD474E144D26E532E815CFFC2E11567B28F434A6D6903CAA69AB
+BDE28466AF647A37007A5F91734870E5671DF837F7B084E11C2F266CF732229E
+C192F8CEEB631E1D901D174DD13407F718378DDB798F980AEA21659B32CA5777
+2F372893AC0C2514996406B6E986C8128D0534EAE7C3F59A074A20F5F0B6EB1D
+D9E5AE27
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%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 43 /plus put
+dup 45 /hyphen put
+dup 46 /period 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 56 /eight put
+dup 68 /D put
+dup 70 /F 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 110 /n put
+dup 120 /x put
+readonly def
+/FontBBox{-4 -235 731 800}readonly def
+/UniqueID 5000832 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
+BA304FA879392EE0BCC1A9D9755522FF50BFFF61E504C1AC474646B0910BEB2B
+950E33B9AB30D0786CF7F5F5DD218EBDF7B90241CFD6EE56AD3ED6BA5F18855D
+7E430575CF31761423CF91A9275915A099A5D0C289E5CA71844EA3179A2E917C
+8ED53F194AC2E42AF88FA2A7843F392E71F66DEA6D6D320CC018C055ED3FD2E3
+D896CB52C58907EC253A6EE4C0F0142C0D2BA97AAB203D626433EABDD890E1D8
+85B46B1D6801E39931F402F8825A21D0D4869F02FA1C99FEE1A786CE64B76750
+63A2B3BD3FA2B3E0E04ED9832582F5515AFEA4AE33D316ED13D544947BCA38CA
+9248812BFB89A91453458C0A2D49D46F971EC9C5875A3B85BA7736F7EB48AC80
+91C25D42C302F6963AEC093D804013AF4326D75D838C039DD7B637802D663A87
+55EAE9A270823267DCAF70D85D56D17D89DCCBAB7DACD1DE23FC6FE892966602
+4C5D3B211F325B99ACAED97EF275CF917A6A67B5C04C700FBB29DF2FB1823215
+202A3062F218582C59B4973E4E9FB1DCAC3D1DC5D8096F80B49CA3444CF1294F
+BFAB57DFACC9D019DB28335BBB3DEFDB921C86FBEEB0F238F7A3840D783A439C
+62E3102054068412621214D6CC59FB6CD9CF4BBB73A61F7C685A3A9A518734F9
+E4D7E801AC7E97C83F76ECD2882B91FCF7E694BBEA02488CBF10A57A60A972C1
+D8E9C4C78E417EA8F982841DE477C7CF06D99A30AD905041D5C8EEFC72CB446B
+6A381E924333B1CE178C52D8326D9B54930DA77D7061E5ED7BA35FC19B90AC14
+E6031004E1302D6A3AC105F7E2B7B89AE47BAFED3C2EA03EF10779BD77D047EB
+8C502613255C70976E5E00B2AD84499F1679E373293E43FD9AD944FEE7214558
+FF88BED8E5CCC87EED1F6C15896BD3048A78CAF070C86AF3B0E5CF23D89D1C2F
+0FFAB7757EC422BB0E85C1503FF644C252CB4F4DA0DCC64F22FC0900215EC34D
+0BDA6BDD5326FE66ECCCCC22E9752567078B05975B4625D5BF539E5C9D34D596
+3E21B10F510319A5292DA2753664557F23A1FA47EE3D7FDE7CCB2AE8D1D6A397
+4AFAAF2B97D2DDD126FCEBC9E71C792A4AD5F05807913816A8DB922E6CDEAFDD
+F3BCC5AB0E6AB42F3B79012BBE1FC348CD375023D618A678AE7C9A030917B290
+FD09F30DB6FC490819B2B34E916CD2229B8FCC34CCF6958A1A3ACCB31A6FB711
+D2708C9728A4702340FDFEBB2065E843FCD1DA8E7A5CD9B3CD8E170BDE5F858D
+B2C12BB7A66101743E1485777BC125BA7C01F67F1AFD39090934DDB668F9C598
+935DD174112B6DCE1B4DFA4FDEA079BB7F1F6005B46B8030C9BD4EB3DF5DDD8E
+BC29D76E422638B38B11FFFC93683436F604B663CAF4611DB31B574B0A4E9E1C
+AF6409C9CE4A2A9DC8F3C0CE6BBC1C1EB038D59E883C4835B61B5C902180B085
+2E7ED8E3CF70F284B56BE753BB737DC0E7789B870A48164546F1AB5C2468B334
+C44251F7267A14A6879A7463DB9E2E8DBB2A58406B1440BEEC28E70F4E28E1B7
+71BB5313B86AD78167A9BF61C3CE289B17BA5419685730C3FCCC38C11966C4CF
+2BBE1D5CEE2B2F1D7A7EABDAF3F611E701716B45EA118431FA33360A17192B6D
+DDB70E158422144410F230A7F4D638E8A54F66212781B35BC3A9F978B71038BD
+B1391F6AD020D06D54D4563E799DAE12B7A8E6E6DE06B06A618C71D9FFD71419
+17CAC85836A6766EBBD0CE1BF4B68F02FEC11F269FB5C58EA7F8741BCAB04423
+BE020818201838F2402F9E2E2B771C84AEEFC64C46A48CC1608A55356ACE23C4
+DE45D692625CAD8E6361693BC0F83B849379EDF5920FC8388849D3465A1A4F08
+75DAFEBA9A355CC665A2859E974EDEB50B8A6ABA1209D1E1782F278A3D4008E6
+71C3C663B8AC6C6792AAE4F2148407CA70D2F13BBFD130DAC6B3047E31BCCCFE
+0B43672084F6F4B0F60975383ED4FD2D2D9218D92147B005047BDE1F5835C05F
+4766AA2D234DD6DC11E591E90E876EAD5CB92FD129F79D7023ABF9514C6563E7
+3E3321607B3583D7A8A1E3FDFA3727D8E3F9D368268743C8DAE900B625AEAC26
+71436B63EFCA9629EEAACDAA86446622D7F9DD0A152CEF5EEFBD6F2228E14176
+1EB8E7DBD83FA09A6C3787BFE51D2A6F78BE8D271A68B53D7190465D23584F2F
+09D50DCDC04943D9A6608F12DB1408C2EC1EA053F54279257A647476BA9A8A8D
+CF732B0549FD3AF0A61802030E08846FB046CC97FDBF9EB77A2FC401E600654A
+8C315F27276E8C1C401F8ACAD1502FEF45792121D5EDF2A26EF315C219F5D014
+74153BC6D0C07B77C75718AC748BC274ABDC70E7AECD143B100C8F8E5E950689
+143D1EBB4000E973BA297835AAF951B32AC17990DF46D23174C5A00298CCC761
+5B1B265A2EB9EFCB3B7BE068392DBA60737F6066BBB16DC7BA36110E3AD6B435
+F4E80E7B71D9A14D4E08F7FFE94253EDA39883E029E87D848F2674060B210A4B
+4D75EA89F66DAD714C8A65A963F643C41A044C2528583B0E1F84BB63ADFDAAE0
+CF0239E5C43D3BE72975EF030102B6C1C5E7025AD098E61E64FA01B20167660E
+2926130DBD51D0966762DC1B16F3E76A2080BC91CC1BD564FD5A2E067443E089
+E5AA24AFF609526D7E14BA2FCB50EA6D729BE043B799AAC92A7598A07BA7C5D2
+6603F5F3C6F58D0836A963F7F6E1D0D41509CC35FD57BC45F4FA8EA482700453
+B3576A4B8ACDDAC4858FFDA330BAF6C47511C336A1D700366723CED8B3191D65
+5CE2ED797059ADFE046F11C0F27645A17FE9BAF00F0BD8AF2162B1ED05A61E8E
+DB6B6A98D60ADB820576122C30BF90019D255DF12A13D68A7C3CF0078AE50C76
+72FC07F886F61F244447BCBA71612CA3A6A2D99BE2C459C39289B785FB68792F
+49EF8453C4D95CB7B5DAC0EF501F6FE871F0E3167B6107C124865F6A542A7903
+53241E68FD2D102AE4185D8D5B3C6F2FA5675AD0EFC35935F5147865D44EA44E
+62A5539C82FE658AD07E29AAF6749DC662B35FD26B3BB9B81DFD700D4167D731
+893D00EDBC32EEBF7060F70AD67B8DF0DC64FAC71FD55A741EBA91B6E5EDC90A
+FB19C1DC2AAB1E7D94A4A221274DFE6081737D2B63A5752F7405BF4C3C2489CB
+909E3FA2DAC0CE71CFCECD62C87C50843A557E2628B33AE7631DF16FE89ACA3B
+4454F7F29371E3E1E8E5A5B82587F7DAF7329F2E8DCC7041532EBAD8FFA13112
+2B9D9B0BAD9076285C6C635154F81864A4AA44DC8DEAAAB202885FD0D358B645
+F72EA9D1E21F80F24356AB5F1E920732D45BB0F605E11C31468673F5A87A09E6
+C80BCB6EE61428F0592575E54CA7DAFDE909F4EC41C73BC7AA51BA36DCB434C3
+62807D9B490E82BE5D9B9AB8582FA3FFF808448F49DE3E9D07693DE7298CEB22
+1BD7C2B40BDD0E98B4C7DF1524B7248276D668B192D6BD6B9E3D6568A092938E
+2E482445AAFE84CB172FB62A6CD0E2127A7C7B41D8B64ED9DCB28AFE8E23011E
+3D85181E372230BA7434BE468D62BDC726C4191854D655CCEB8F03E6C2D8B1B6
+ADE3E8C0ECB4CD8C14B68438005F00C7CE7EA1461909DC5FA7381ADAE09C7D2E
+DF6CF337A48CE2297FC06F8D10C15737D8EEFEDE595FE797149C58F111C534A6
+D6B64DE9EDA9324F993E963515BDD9B7D752CC9EFC48DC79C64A9BE86FEA8C89
+3E31B23E1B8429F21DEA97E92E6AE742E9012E1E996B9D4AA635BC152552AE6B
+75992D6B2B9BB9ACF4F175BAB184D28C2E275B85116C5BD63856CCB7758A337F
+FCB142100E6E4843FF91C48CA661EDF1F1E91AB67F549FC863410A1CA4A3C146
+ACEF6B8ACF16253990C407E12EA811B3B8AFEC46D0BDD9C0613DBB504EBBB25C
+AAE7925872B83A6C5BCEEBD9F683B1CB89BAFE6A9DC950EA548B85972DACA335
+90F571235C31CF1971A39E97584EFB89607AF944AB142A9BBDDF0830DA31DC26
+D23602FF3BCC0F5FDE59761AA3E426BDDFA67744CD7E1CCA3DEFBF85BBB444CD
+713AF587BF3F2194B62419DBA257D0C91A8FA0F1CB80474A2577B989ECBAC1CC
+452F2CF653487C6A1D0B2274C30E09E944A04DEA04BEF28B9BEA43E6D431CEA8
+DBD28C427EB4368D6459286A6D502DF52B3BD0B493B1F1316491F2B28FC28787
+AB4D78BF341FC2757EFEE305760A73EEE6BCF8816AEE84DF2D8B3238A4EA9DF7
+DBFB0531521A86EC8EBB20863DCD59AA9DAA2A460218B9D47E33173AFDC5516F
+CD71D1866C03C17BB4870FEB3D59E814E28FCD7F5C86775FE2577A457473D0DC
+6C5AE56D72EF222CF8559621FF7251B5A8511833B699E7DF2A1E05364F53B55E
+B47DAFEE4C5ECA26171DDDF49EE5723BAD841382EE5950BFDDD572048A2A2CF6
+C743B19DF52ACCB1DCC10EAEB0835B7AFD7BDC2CEE30FC871645622E98710BE7
+D446885DAE77345F2100F871BE236C76C0C49753DF0A6F6F2F48469D9FDEB742
+70DAF376FF4CBA2F64DBD34AC5FD9B52375FED1FB89FFB57EE3CCD38D50320B5
+0BD772337BD8ED7D655875431CBCAA0DD0548C5FB2C9C4E32465152EA655EB21
+AFC2909F5075AB6611E315991E703F5C39304985FB701A9A46FB359430CCD035
+838AF5691734336F86B72692378B4339C10A0EE3F7FBE2715D9D8697B64E9786
+64FB546F0DC6E9A8440E459B0C706B79749269D12A44E23A3C436C9C3BF2CDDA
+E50BBCCF686BE149F73039232174BF54BB49D2C9AB689234EABA0E1250D62079
+ECE62768331D204DFEEADCA51EC7233DB00CB8D89562B584C03D05FD0CEA137A
+264A8CC4AF87128C40A75AB1220959F09AFF7741A084BB41810CCE1F111D7D0D
+8A24AED89B909515AA9120217D798F79B25406E7BC71A4D3EE1FCD45BBBCB289
+87AF6B753D89A753145DEEEAFE6075ED1AE0F4B859994C1F865B6C89FAA4EE6B
+EFF37164971588CE4E2330F818A0956B2F7F314823A74DE26292879B80386B3D
+39883E591F9DBD0174D6792E7A7123DA6F44A04B52484C25369B898F29E9C742
+6285CB0C36DDE9EEADD16D540A6A592B5BCE4AF1D950C597E543F4E7F3229AB5
+97DAC25D235124D18081F400113A5B8FB4EA928BEDC1FC5B08B5B642F20C2C96
+3079068B41FBE64492A02DAD37405303CDB5241D9FDDB53765CCCB19207C46C6
+0CA7C66CC3EBE1FB6F15CAE4068934909B30D89E39CFE935D948499FA8D075BE
+9528BBA510C9A1EAA660079936AFCDD70374D7FB0E27BFDBE9F9F6CF8CF2469A
+E06630C42C6C32938E5522F704BAB2CB5BBC907A2264BBBEDD5D9C993AA1AC9F
+EF0FD00B4D39BCF1BC3C3ED3A4C3CE9A8AE8830CE6C01018D38FA1D3CE9E0A53
+3884F01C7E4D273AC07E4661CAA7375A556866F03730756E007DE3527A3995A1
+203EDBE387EB5CDED96C209D48E733AEEA65DE9EE221478C7B344C76AF36ADA1
+984D479CE60DBB8CFAC12699FF9A745F7AD7FBB30286EFF1D0AA9F8459A771AD
+25505F65FE0E6C9B2BED
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% 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 (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 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 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+/UniqueID 5000826 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4C7DFC961F6C1FE53CEFC199A95B8DBAAA3FC986A88F6684ABE1585E33
+712826DBA16971B8AD5B7CBC4CE67900097C69C2245E9EE458A31355733EE7CC
+90C4FFC71A7EDE118B4D71D7FE3EB35DA64B5C654FDFAFA258B0EFDA461E41ED
+58CD17B771CFC0CB6A1F12FA728105408A8959AF1931D2921B46D57937099761
+85559F27E71584C7BAEF5158C12FB0FA3B64ABA8F414C1FC923C5F3E6077C8D2
+EC8CFA4A8A5906F7B3B2C1EFCBA6DEED3AE32E488FA57018E852A59AE4C0DD0A
+D27AFCEF2880B065DC3EA87CF81D14CE6007BCF1E4554B3628D6F2821B4A2DAF
+85C0D4D431577FFC6EC199D049D4146B9D30D266ABF71BAABE6866B6E6D742DB
+2FB6B50079A980248896B05427B5D4106C6AC33B5BDFA72AC622CFC8CF42061C
+4144264EE1551A34F0ED7706DEF91DCABE4609430ED341F01270F860E9974CBB
+FB25A4171B721F966905220B344C71BA217C09C4757A492BAA79172E9B92C91F
+0147E4472F1A61D165B4485202D7BAA2059A2A60EFD10332F521D3B1AADA931C
+0B1D4CCFCD5D45C79304B86DAF526B36773FFEE65AEEC9DEE5CBD4796637A115
+F33F783268B743AA3A2B49CE472BD1DD86CE8C30FA9027FE267023A8CD6CF010
+027D9F20CEBA71AC20BBF58E04995C167072B42DA89C201730C32D706CBD6E55
+68D63802EEF006D645172DA6D002D19BDC85EFD7117AF75FF252D5E8F8B7BBA0
+E00580E97738675E717BE22B210040AA0DC3BAA6218D73B3036808530316F26B
+99CC5D8EBF41A1081F4057095C860CBF611D4A00EB773FF349DBEC0F86E66703
+D9D3BDF4DDF79DB606A08E274E9D9E1B6C70F6E2D91F7D6C9A22962C9FCFE01E
+D19E3638BE8AEF8790E01C7A24740F85378D14B2D2C6FC75D906CFDC215E3832
+CA6FD64C9F3D0BB78FDCDC38363B1E7906EDE5C5AC965A4FB15DB12C8D499C48
+92774A33111A8E2B674DAA3C1487DF7FD6699C6B3CB1339A13CC8F2BA996E606
+11AE6C0C987FE6F50778E86664137CAEA3CED2461B3E1C40EDB5CDA387D98C95
+B0202C59AEDD203BBFA90026149268FCE8ADC3BE5DAE7131DC9027805B5CBE78
+A532452BAD079043E4987A25AB0E9F393FCF4536E265AF4B24F4646ED98A97B7
+64A78A3E5235E61F0BA0F3626057A683B074C1860A838D89ABA954D2587FBE30
+9E643EAA66D2268E8204158BBF85C01F84445BF052CEDB557F681DB34CAABB42
+E5BE540C9DEAC27A4782FD75D7D3A8066B5D36F31AED0462481A981EFEF3BFD4
+1615AA0AFFF5CFDC800A753677387B1FFB64D4A73FC4E77EA216DDF3189BC13D
+99BE60AFD9B511FBEA809DD8D236F70DDB60FB4ED0F18F3558831C411C1C8CFB
+16AB745E5464D4F50543EA6CE70DAE402E5CAD5B041AFB33E32EEB100B03290B
+B01DCE175E529FF83CBB0CCF2B7F8D6D05150DACE1ED817542CFF59960A43586
+A53113F644DA9C24BCF39CB1BA6B0E4AD9B89BE46EB38ED776807ECCB0649C01
+CA0C8A7AD72615C52FDAD0C3875E0CE463D95C15DFC7A0C4D30E0E1FF1A7A971
+614F328957FAC286774C5641D74924B0373856DEDE5E05AA3D75F1EFFB631F66
+3E3629BB3ECD0DD16CE4F0BCA9A7BA402A45CD548D65F12EBCBFD8191D6AD55E
+3EBC360315BC30BFDEE5969A21DCEEDA063629132D92231B97BC4091ECBD98F1
+CE9667E3511961D4689D55B90B432110218CC99801CD59621BED3E5AE4208198
+67B13A90E0B2C1EA2A84D0F0F91C982D6497
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont
+%%BeginFont: TeXMUSIX16-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX16-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 36138
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX16-Regular known{/TeXMUSIX16-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX16-Regular) readonly def
+/FamilyName (TeXMUSIX16) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX16-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 45 /hyphen put
+dup 71 /G put
+dup 83 /S put
+dup 129 /Aogonek put
+dup 131 /Ccaron put
+dup 132 /Dcaron put
+dup 138 /Lslash put
+dup 139 /Nacute put
+dup 195 /Atilde put
+dup 196 /Adieresis put
+dup 205 /Iacute put
+dup 208 /Eth put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-620 -2059 4000 2062}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE457AD4294FDF137DF3CF8
+2A268AA6A26AC11CE99D5C1346290B6858A05C80699EA47DA7EC1256A161ABB5
+E1F5110BF11EB22B883A7642AD41BD614AC33327503EF4CDF29ECBF52E2AE341
+C5B1ACBE202DA6B5251FC2B7285AAA3035DAA61FDF68905D1A2BD55C4F9757C8
+577AEE888E92ACD515DE60A4EA2EA395F9763401BCC6E169CEE5A51A11E11AF1
+AE7B20319472690FF356A308F9FCC098A42EF3831CDDAC5F57D2C2AD90DD52D8
+696CBF55852192941AFDBD4D3D3D7155EABCF5657BC3BB8B324E318F9CAFC95A
+F2E22078C4327781B443A4C37D0D60DFBD242921196B956F8B74CFAE2B6F87C0
+1828EB6FEB36F8EBE3D934746CFEF1ABE31A8DAED4DB5BB506C05DB836132B1D
+DA0218A6BFF476ACC9678E9D3E42780B8102B160541093CC375B1064FAD0A341
+CF768ABDC43E007DD86CC1DCA6C78B003A6B311D40A5CECFBF6FCB87ACE53B03
+2B9C0B4749E37D20F20DC8ADF66FE2CB47B5D467D56929A551B8808935F08F64
+7E809B6529752460DA6B95BBDE9D3B27F0D3D6459B5D9116FAF8DA634266EA8C
+8D4ADAC936719165AC1FF8F441690E196B992B70F6BA09781F4BC06848F7FAD1
+79A2BF9BA6CB5818D72CDD90E52DD0A4463AF471D22E778978C89FDC6665E5C7
+CE1B0AEC997C573FE481576046A12414B50E34A2A2E3C788ED4CDB3D1AAC8ABB
+4205FDFF86463FD6FA342DC0139168F5BEE46B8EAB1D78359B25636C93B11DE0
+21B27915CB45437C3868DD1BD693E84A08CB6F47529E7F7B227DA3FDB376C15C
+BFC84F721111FC89C718BF7C77F311852668B0E67E69440690CEC6D8F7061605
+A4A68126B09455D6256EFF5F6E5EB47D159E29106461A63F663F745E5C9745EB
+7A2B80270D9F2800DD6D5B746F18201C0E6E90020BEB948B805403A784DE11C6
+FE923BF21011A43CCD01B4F5962E65EBC2AA89EB045796E85AA10E505EB7E76A
+EE0ED8D23BA4BC15EF2E19AD7D444138EB2C7E6CD793492DEA87154676C0A522
+B5029A833E15FF8C0BF47700B3BC5F55E235A902FD133C3BBE45009FED06D87D
+8E03D051DAD0B4812762F5B04829C0F607E743B709A5BC08E6574ED590CB0CB2
+8DA54E563F3CE7CDAA3F1E5C178D991388C73A98CC30D3493F25F23FF04EBFD5
+0C71C2309411EC72DDED0FDB935454E03BAACDC4921547A074D5586C7283B373
+A1B383786FA10E1299E5E05927B712113F5916D09286C9C0327DEEFD2ABA2489
+0D9A622E773A4919A928F16B055DCE8BDEB5AFAC49CA2D5A27501862A569192A
+FD92167DCC957A0176D50221A03153F2CEBA1E8FA3C3E209A6AAA0067975B084
+C9E2CC4B0C86A927AE638EBEF35C5BB85E3630B91038A5EC189F0316A7674A2B
+55FD8BC89BBCF617140B3B0FDD017FDFD3341D0A9DD8B416D6AEFCC1B3E69315
+4673144851C00F0E66266E2E9A82A8547F7F0BFA1234F8811EAD17400018E816
+0D1E953D795FBEB1416E0ACDD2665844D010FAF7DC3D6BD679103769614870E4
+226C4E8E37E5C02B38234B30EE1055B706EEF79BD6FC215C248635D6D8186912
+CAB48E8C27877CDCD6DBE64540F2AFFB0D26AF1E64F36C3BC519FAEA507FDAAD
+77B66B28F89F50565B8F557E8CAC300AE1FC6720DAE0AE9EB61A18BC5ABAB046
+DFFFBAF841FE5DCE1EFA4716807AE96878B084CEEDDC6989E0062A6E77F33EB4
+759B858966A559C080573A8C3CC8BAC05D667DABE6AA5EAB34768A06DFC2122E
+B15AECC457E8C5847DBB6A656A679C82608E349FAC896224BAB3ACBDA1206D45
+B4D63C385D129D5D1C2560076F7B196C6AECAEA5F5DDD117BA25BE40DB3C2638
+8DA1C03B4699C327B7BB19557C7C6C1D72DBD8ACB0FC646554963B1738048C3C
+F8180D025897F12EAAA5FA66912A4D57F0589778863E3AC6FD3192FC2217F3BF
+5C0049EC5B9537DC78656B8CA049B328EF2AA3EBDE65C1030A05AF50EF850722
+EE6D9601F0EE31E786B24EFFB7993D89E0D8327B4389254CFB18C8DFB994AC8A
+2C3099B2668630AD2D60740F81759B455FB1233509EA2D3BD1BF974692770856
+D2C1E3FA1E0FCFC70C05DAFE295632C961967771BA5258057A7E6BE46B6CEC46
+6A7F38F6818F77321074B02FF2DA607EDDDE9D8CD61F93F498F4E720FC18CC86
+6D6C953CC07194AA046A250BC34C947549A4E4AD011EA7B264F2A8958279CA6A
+99F85176CC0EAC988D603CC55535300FD80CF60456C6FA92367F539689024AFE
+43AA65EFDE25719A118104170B2DE78CA2C1B76B79E96AA83A6369D7CB5D0E73
+4BA8D40A599D6365B50D68F95D5B6CE2F9545D63CA72EC43881D0AA6BE7ABAEA
+FC1D8A601CDA591DB9E96950E3C0B4F987FCE023DC160AB6505898329A6AC699
+33731B4C1FD26E6DA3FBFC65D4012BBFCED2BF1B5E5C70CDBAAE157FD6026CF2
+C85F60E7F6D4BE7745A00BFBC90594E3066D2CF975BDDE3BB1365E21C9253193
+BF2FD24D57CB948EFC9C9BDCFC10CB97BE79EF4DA809C16CE0509FA41C943AF4
+8E626D85FD02F323B0068C29B0D6401146C8A1EEEAE3890F6E5858653C88682E
+701FD9404C5735B81B56E9EF763427EDE763EE928B324C2C48749E1038D0E52B
+7E55EE7E0C80A5E5E867AE74B79D8AAAFA8FA13E04D067B5DF1C648E0D483312
+92B2F830163B2DD357C29C5EF3D7C7670ED1F7A6CB50D87E255A4D417E920936
+1AF4989DC55BEB225A01CA497766360A40E1966A284721A09469EBFF8AB8C382
+D3BB19B581746168B54D843BB3E3C8D83610193DF757DA18320C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 39158280 55380996 1000 600 600 (xtupletsSich.dvi)
+@start /Fa 199[56 1[56 54[{}2 99.6264 /CMBX12 rf /Fb
+187[83 10[83 23[83 83 9[0 0 21[{}6 166.044 /TeXMUSIXSPX-Regular
+rf /Fc 135[44 9[44 6[44 44 44 44 44 44 44 26[44 1[44
+11[44 2[44 44 44 44 44 44 1[44 44 1[44 43[{}21 83.022
+/CMTT10 rf /Fd 202[36 36 36 36 36 49[{}5 66.4176 /CMTI8
+rf /Fe 47[266 2[33 8[266 133 55[531 266 5[266 133 1[33
+45[66 11[106 25[0 37[0 6[0{}14 132.835 /TeXMUSIX16-Regular
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -364 -35 4475 4 v -364 -2 V -364
+31 V -364 64 V -364 98 V -364 63 a Fe(G)-244 29 y(S)179
+-120 y Fd(5)-68 195 y Fc(e4x5)p -30 96 4 150 v -68 96
+a Fe(\007)p 83 79 4 145 v 45 79 a(\007)p 196 63 4 139
+v 158 63 a(\007)p 309 46 4 134 v 271 46 a(\007)-30 -29
+y(\212)158 -47 y(\212)-30 -54 y(\212)158 -72 y(\212)p
+422 29 4 129 v 384 29 a(\007)493 179 y Fb(\025!)550 173
+y(!)642 183 y Fd(3)695 159 y Fb(!)752 153 y(!)835 145
+y(\025)477 279 y Fc(c4ax3n-1)p 497 121 4 108 v 498 121
+a Fe(-)498 13 y(\007)p 643 104 V 644 104 a(-)644 -4 y(\007)p
+790 88 V 791 88 a(-)791 -20 y(\007)1519 -170 y Fd(14)916
+212 y Fc(c2x14n+2-1)p 936 137 4 125 v 937 13 a Fe(\007)p
+1032 127 4 132 v 1033 -4 a(\007)p 1128 117 4 139 v 1129
+-20 a(\007)p 1224 107 4 146 v 1225 -37 a(\007)p 1320
+97 4 153 v 1321 -54 a(\007)p 1406 -69 60 4 v 1416 89
+4 160 v 1417 -70 a(\007)p 1502 -69 60 4 v 1512 80 4 167
+v 1513 -87 a(\007)p 1598 -69 60 4 v 1598 -102 V 1608
+70 4 174 v 1609 -103 a(\007)p 1694 -69 60 4 v 1694 -102
+V 1704 61 4 181 v 1705 -120 a(\007)p 1790 -69 60 4 v
+1790 -102 V 1790 -135 V 1800 51 4 188 v 1801 -137 a(\007)p
+1886 -69 60 4 v 1886 -102 V 1886 -135 V 1896 41 4 195
+v 1897 -153 a(\007)p 1982 -69 60 4 v 1982 -102 V 1982
+-135 V 1982 -168 V 1992 32 4 202 v 1993 -170 a(\007)p
+2078 -69 60 4 v 2078 -102 V 2078 -135 V 2078 -168 V 2088
+22 4 209 v 2089 -186 a(\007)936 88 y(\213)1467 34 y(\213)1656
+15 y(\213)936 112 y(\213)1467 59 y(\213)1656 40 y(\213)936
+137 y(\213)1467 84 y(\213)1656 65 y(\213)p 2174 -69 60
+4 v 2174 -102 V 2174 -135 V 2174 -168 V 2174 -201 V 2184
+13 4 216 v 2185 -203 a(\007)p 2280 98 4 135 v 2579 -170
+a Fd(3)2273 279 y Fc(c4-x3n+0.8+1.5)p 2363 -69 60 4 v
+2363 -102 V 2373 21 4 125 v 2374 -103 a Fe(\007)p 2509
+-69 60 4 v 2509 -102 V 2519 21 4 142 v 2520 -120 a(\007)p
+2373 29 296 16 v 2655 -69 60 4 v 2655 -102 V 2655 -135
+V 2665 21 4 158 v 2666 -137 a(\007)2958 -170 y Fd(3)2791
+179 y Fc(f4x3)p 2801 -69 60 4 v 2801 -102 V 2801 -135
+V 2811 21 4 175 v 2812 -153 a Fe(\007)p 2948 -69 60 4
+v 2948 -102 V 2948 -135 V 2958 21 4 158 v 2959 -137 a(\007)p
+2811 29 296 16 v 3094 -69 60 4 v 3094 -102 V 3104 21
+4 142 v 3105 -120 a(\007)3430 -103 y Fd(3)3230 179 y
+Fc(g-x3d)p 3250 38 4 92 v 3251 -54 a Fe(\007\000)3390
+6 y(\201)3400 5 y(\201)p 3420 -69 60 4 v 3430 29 4 99
+v 3431 -70 a(\007)3250 38 y(\204)3270 37 y(\204)p 3523
+-69 60 4 v 3533 24 4 111 v 3534 -87 a(\007)291 b Fd(3)3699
+295 y Fc(cx3)p 3669 -69 60 4 v 3669 -102 V 3679 21 4
+125 v 3680 -103 a Fe(\007)p 3825 43 4 97 v 3826 -54 a(\007\000)3965
+39 y(\315)3975 41 y(\315)3679 21 y(\320)3742 31 y(\320)p
+4005 70 4 91 v 4006 -20 a(\007)p 4108 98 4 135 v 4111
+262 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 4111 262 a -364 604 4475 4 v -364 637 V -364 670
+V -364 704 V -364 737 V -364 702 a Fe(G)-155 768 y Fb(\025 )-136
+767 y( )-45 779 y Fd(3)9 756 y Fb( )28 754 y( )111 748
+y(\025)-211 868 y Fc(f4x3Dnf-1)p -151 718 4 117 v -150
+602 a Fe(\007)p 65 694 4 108 v 66 694 a(-)66 586 y(\007)443
+536 y Fd(5)197 918 y Fc(bx5D)p 207 571 60 4 v 217 677
+4 125 v 218 552 a Fe(\007)p 374 571 60 4 v 384 685 4
+117 v 385 569 a(\007)p 502 691 4 106 v 503 586 a(\007)385
+660 y(\303)491 666 y(\303)217 677 y(\304)357 684 y(\304)p
+619 697 4 95 v 620 602 a(\007)825 818 y Fd(3)717 918
+y Fc(d4x3Fn-2)p 737 743 4 108 v 738 636 a Fe(\007)738
+619 y(\000)913 710 y(\201)923 709 y(\201)737 743 y(\203)823
+739 y(\203)p 953 733 4 114 v 954 619 a(\007)1101 519
+y Fb(\0269)1179 561 y Fd(3)1220 543 y Fb(9)1303 560 y(\026)1085
+818 y Fc(f4x3)p 1105 710 4 108 v 1106 710 a Fe(-)1106
+602 y(\007)p 1257 752 4 117 v 1258 636 a(\007)p 1473
+737 4 135 v 1518 668 a Fa(6)1518 734 y(8)1697 436 y Fb(\026D)1722
+448 y(D)1814 524 y Fd(2)1867 517 y Fb(D)1893 529 y(D)1976
+569 y(\026)1602 918 y Fc(cd4+x2)p 1691 571 60 4 v 1691
+538 V 1701 669 4 133 v 1702 536 a Fe(\007)p 1930 768
+4 117 v 1931 652 a(\007)2159 818 y Fc(fd4-x4n)p 2197
+719 4 125 v 2159 719 a Fe(\007)p 2358 702 4 116 v 2320
+702 a(\007)p 2520 685 4 108 v 2482 685 a(\007)2197 594
+y(\204)2418 583 y(\204)p 2681 669 4 99 v 2643 669 a(\007)p
+2805 737 4 135 v 2901 760 4 108 v 2902 652 a(\007)p 3088
+760 V 187 w(\007)p 2901 768 377 16 v 3275 760 4 108 v
+187 w(\007)3724 552 y Fd(4)3462 818 y Fc(fd4-x4n4)p 3500
+719 4 125 v 3462 719 a Fe(\007)p 3661 702 4 116 v 3623
+702 a(\007)p 3823 685 4 108 v 3785 685 a(\007)3500 594
+y(\204)3721 583 y(\204)p 3984 669 4 99 v 3946 669 a(\007)p
+4108 737 4 135 v 4111 901 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 4111 901 a eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn.pdf b/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn.pdf
deleted file mode 100644
index 82689fe7d63..00000000000
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn2618.pdf b/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn2618.pdf
new file mode 100644
index 00000000000..86412ed8c0c
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn2618.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn.tex b/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn2618.tex
index 86e73da87c5..c029cedbb77 100644
--- a/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn.tex
+++ b/Master/texmf-dist/doc/generic/pmx/pmxccn/pmxccn2618.tex
@@ -1,49 +1,9 @@
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
-% %
-% How to compile pmxccn, using the packed source pmxccn.tex %
-% ========================================================= %
-% %
-% The following instructions presuppose that you have a modern %
-% (and up-to-date) LaTeX installation (MikTeX or teTeX, say). %
-% %
-% Then go through the following steps: %
-% %
-% 1. in your working directory (that is the one to which you have %
-% unzipped pmxccntex.zip, and which now should contain %
-% pmxccn.tex and this readme), create 2 subdirectories: %
-% %
-% a) addresses/ %
-% b) eps/ %
-% %
-% (unfortunately, LaTeX is does not do this on its own) %
-% %
-% 2. latex the soucce file pmxccn, i.e. run %
-% %
-% latex pmxccn %
-% %
-% two times (to get the references and Table of Contents etc. %
-% right). %
-% %
-% The only LaTeX errors you might encounter would be errors %
-% regarding missing LaTeX packages. If you are currently %
-% connected to the Internet, MikTeX/teTeX should download and %
-% install these missing packages on-the-fly %
-% %
-% 3. run %
-% %
-% LEGAL NOTICE: This software is subject to the usual GNU/LLPL licence %
-% conditions. %
-% %
-% Fri 2005 Jan 14 /23:35 /ccn %
-% %
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PMX tutorial by ccn / LaTex header file starts here:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ------------------------------------------------------
%
- % This version dated Sun 2011 May 29 /15:34 /ccn
+ % This version dated Thu 2012 Jan 19 /23:8 /ccn
%
% ------------------------------------------------------
@@ -53,7 +13,7 @@
\usepackage[english]{babel}
\usepackage{amsmath,index}
\usepackage[dvips]{graphicx}
- \usepackage[dvips]{hyperref}
+ \usepackage[dvips,colorlinks=true,linkcolor=red]{hyperref}
\newfont{\hv}{phvbo at 14pt}
@@ -80,16 +40,13 @@
}
\newcommand{\Examples}{\noindent {\large \textbf{Examples :} }
}
-\newcommand{\Note}[1]{\begin{center} \fbox{\begin{minipage}{370pt}
- #1 \end{minipage} } \end{center}
+\newcommand{\Note}[2][370pt]{\begin{center} \fbox{\begin{minipage}{#1}
+ #2 \end{minipage} } \end{center}
}
+\renewcommand{\seename}{$\;\rightarrow\;$}
-% \newcommand{\Note}[1]{\medskip\noindent\fbox{\begin{minipage}{390pt}
-% #1 \end{minipage} }
-% }
-
-\newcommand{\versionline}[1]{[\, Version \quad 2.61
- \quad May 2011]
+\newcommand{\versionline}[1]{[\, Version \quad 2.618
+ \quad Mar.\ 2012]
}
% \keepversion
@@ -107,12 +64,11 @@
{\Huge \textbf{Typesetting music with {\PMX} } \\[3ex] }
by \\[4ex]
{\LARGE Cornelius C.\ Noack} \\[1ex]
- \hspace*{1em}\raisebox{-0.75ex}{%
- \includegraphics{addresses/noack}}
+ \hspace*{1em}\raisebox{-0.75ex}{\includegraphics{addresses/noack}}
\vspace{2cm}
- {\Large --- Version 2.61 / May 2011} \\
- {\large ({\PMX} features up to version 2.603 included)}
+ {\Large --- Version 2.8 / March 2012} \\
+ {\large ({\PMX} features up to version 2.618 included)}
\end{center}
\end{titlepage}
@@ -161,8 +117,7 @@ _{manual!Don Simons' manual for {\PMX}, Version 2.40} _{Simons, Don}
{\LaTeX} has moved on in an accelerating pace, and so have
{\MusiXTeX} and {\PMX}. This tutorial was also bound to
follow suite. So now the current status of {\PMX}
- (\texttt{2.603}) and this tutorial are closely synchronized for
- the first time.
+ (\texttt{2.618}) and this tutorial are closely synchronized.
\bigskip
After thanking Luigi, in particular for his kind permission to
@@ -175,7 +130,7 @@ _{manual!Don Simons' manual for {\PMX}, Version 2.40} _{Simons, Don}
friends (too numerous to mention all of them) kept me busy
trying to keep up with their productive suggestions and
clarifications on the
- \href{mailto:tex-music@tug.org}{{\TeX}-music users' list}
+ \href{mailto:tex-music@tug.org}{\underline{{\TeX}-music users' list}}
during the past years.
\vspace*{\fill}
@@ -236,8 +191,8 @@ should have two very different approaches:
the whole tutorial quickly in a matter of minutes to see what's
there and gloat about what's missing, and later on rely on the
index -- or look into authoritative source, the
- \href{http://icking-music-archive.org/software/pmx/pmx260.pdf}{PMX
- manual} by Don Simons.
+ \href{http://icking-music-archive.org/software/pmx/pmx260.pdf}%
+ {\underline{{\PMX} manual}} by Don Simons.
\end{description}
_{Quick Reference Table}
@@ -247,7 +202,7 @@ you'll ever need is Don Simons' ``Quick Reference Table''\,%
the \textbf{W}erner \textbf{I}cking \textbf{M}usic
\textbf{A}rchive as
\href{http://icking-music-archive.org/software/pmx/ref260.pdf}%
- {\texttt{ref260.pdf}}\,.
+ {\underline{\texttt{ref260.pdf}}}\,.
}.
That summarizes the {\PMX} symbols with all their options and always
reflects the latest version. Errors found in the
@@ -257,10 +212,16 @@ subtleties) should be sent solely to the author.
\bigskip
_{\PMX}
-This tutorial refers to {\PMX} 2.603 , as of Dec 11, 2010. For details
-on the differences with previous versions consult the ``list of
-changes'' of {\PMX} in the software section of the WIMA
-(``\textbf{W}erner \textbf{I}cking \textbf{M}usic \textbf{A}rchive'').
+This tutorial refers to {\PMX} 2.618 , as of March 2012
+(formally still a `beta' version). For details on the
+differences with previous versions consult the
+\href{http://icking-music-archive.org/software/pmx/pmxbeta.html}{%
+ \underline{list of changes}} of \PMX\ in the software section of
+the WIMA (``\textbf{W}erner \textbf{I}cking \textbf{M}usic
+\textbf{A}rchive'')\,%
+\footnote{For details on the staff-wise transposition feature refer to
+ \ref{sec:stafftranspos}.
+ }.
\section{ {\TeX}, {\MusiXTeX}, {\PMX}, {\MTX} } \label{sec:TeXetc}
_{\TeX} _{\MusiXTeX} _{\PMX} _{\MTX}
@@ -409,120 +370,124 @@ and, in a very cursory way, that of {\MTX}.
_{\MusiXTeX} _{\PMX} _{\MTX}
In the remaining part of this introduction, we treat questions of
-installation of the entire system of {\MusiXTeX} and {\PMX}. The
-whole installation procedure may seem a formidable task to non-experts.
-But don't despair: your efforts will be rewarded by the best and
-simplest system of musical typesetting available. And, to paraphrase a
-famous {\TeX} error message: ``If in serious trouble, ask a wizard for
-help''. Such wizards are literally at your fingertips; just sign up and
-post your problem to the mailing list at ^{WIMA} (the \textbf{W}erner
-\textbf{I}cking \textbf{M}usic \textbf{A}rchive):
-\raisebox{-0.75ex}{%
- \includegraphics[scale=0.6]{addresses/texmusiclist}
- },
+installation of the entire system of {\MusiXTeX}~\texttt{1.15} and
+{\PMX}. The whole installation procedure may seem a formidable task to
+non-experts. But don't despair: your efforts will be rewarded by the
+best and simplest system of musical typesetting available. And, to
+paraphrase a famous {\TeX} error message: ``If in serious trouble, ask a
+wizard for help''. Such wizards are literally at your fingertips; just
+sign up and post your problem to the mailing list at ^{WIMA} (the
+\textbf{W}erner \textbf{I}cking \textbf{M}usic \textbf{A}rchive),
and someone is bound to be in the mood to answer.
\section{Installation} \label{sec:installation}
_{Installation}
Recently, there has been a number of major improvements in the basic
-{\MusiXTeX} software (increasing, e.g., the maximum number of
-instruments allowed), and subsequently {\PMX} has also undergone major
-improvements. As a consequence, {\PMX} now is really tuned
-to \texttt{\MusiXTeX-T115}: with {\PMX}\texttt{(2.603)} you can make
-full use of all the new features of {\MusiXTeX-T115}.
+{\MusiXTeX}~\texttt{1.15} software (increasing, e.g., the maximum number
+of instruments allowed), and subsequently {\PMX} has also undergone
+major improvements. As a consequence, {\PMX} now is really tuned to
+\texttt{\MusiXTeX}~\texttt{1.15}: with {\PMX}\texttt{(2.6xx)} you can
+make full use of most%
+\footnote{An important restriction is: in \PMX\texttt{(2.6xx)} the
+ maximum number of staves is 24 .
+ }
+of the new features of {\MusiXTeX}~\texttt{1.15}.
\medskip
The installation instructions given here refer explicitly to installing
-{\MusiXTeX} and {\PMX} under Windows XP; they assume that you have
-MiKTeX\,%
-\footnote{MikTeX is a {\TeX} data-base system for Microsoft Windows
- users.
+{\MusiXTeX}~\texttt{1.15} and {\PMX} under Windows XP; they assume that
+you have MiKTeX\,%
+\footnote{MikTeX is a {\TeX} system for Microsoft Windows users.
}
-installed (version 2.6 or higher).
+installed (version 2.6 or higher; preferably the current
+version 2.9 ; cf.\ p.~\pageref{p:tennent}).
+
For Unix, good instructions can be found in the software section of
WIMA: \\ \quad \href{http://icking-music-archive.org%
/software/musixtex/musixtex-for-unix.html}%
- {\texttt{http://icking-music-archive.org%
- /software/musixtex/musixtex-for-unix.html}}~. \hspace*{\fill}
+ {\underline{\texttt{Icking-music-archive.org%
+ /software/musixtex/musixtex-for-unix.html}}}~. \hspace*{\fill}
-\pagebreak
-\subsection*{Installation of \MusiXTeX\texttt{-T 115}
- and {\PMX} \texttt{2.603} }
+% \pagebreak
+\subsection*{Installation of \MusiXTeX\texttt{~115}
+ and {\PMX} \texttt{2.6xx} }
+
+\subsubsection*{\MusiXTeX}~\texttt{1.15}
+You can download the basic distribution for {\MiKTeX}~115 from WIMA:
-\subsubsection*{\MusiXTeX}
+% \smallskip
+\href{http://icking-music-archive.org/software/musixtex/musixtex.zip}%
+ {\underline{\texttt{icking-music-archive.org/software/musixtex/musixtex.zip}}} .
+\medskip
A comprehensive -- and very readable -- installation instruction manual
-for {\MusiXTeX}\texttt{-T 115} has recently been given by Andre van
-Ryckeghem and Don Simons. To obtain it, download the
+for {\MusiXTeX}\texttt{~115} has recently been given by Andre van
+Ryckeghem and Don Simons: \\
+\hspace*{\fill}
+\verb#http://icking-music-archive.org/software/musixtex/mxinsuse.pdf#
+\hspace*{\fill} \\
+on the WIMA software page, which you can download
\href{http://icking-music-archive.org/software/pmxtricks/mxinsuse.pdf}%
- {PDF file} from the WIMA software page.
-
-If you are not really an expert for installing high-level software under
-the Windows XP system, you are probably well advised to simply follow
-the instructions in the installation manual more or less by the letter,
-using the default choices of folders.
+ {\underline{here}}. \\
+\noindent
+Even if you consider yourself an expert in installing high-level
+software, it is certainly wise to first read this manual carefully
+(it's only 6 pages) before starting the installation this way.
-But in any case, it is wise to first read this manual (it's only 6
-pages) before starting to apply it.
+% \medskip
+% One point, pointed out explicitly in the {\MusiXTeX}~\texttt{1.15} installation
+% manual, is of particular importance:
+%
+% \Note{As Don Simons has pointed out, it is safer to load
+% {\MusiXTeX}~\texttt{1.15} (and all its subfolders, of course)
+% \emph{completely outside} of where {\MiKTeX} is loaded. But
+% whether you do that or load {\MusiXTeX} in a subfolder of
+% {\MiKTeX} (traditionally named `\texttt{localmiktex}'), you must
+% enter the full name of the {\MusiXTeX} main folder in the 'roots'
+% list of the {\MiKTeX} `settings' menu; otherwise {\MiKTeX} will
+% not be able to access any of the files.
+% }
+
+\bigskip \bigskip
+The installation procedure referred to above has the
+advantage that it does not rely on the TDS-compliant
+data structure of the CTAN (`\textbf{C}omprehensive
+\textbf{T}eX \textbf{A}rchive \textbf{N}etwork)
+distribution and, a fortiori, on the MikTeX data system
+being up-to-date with the development of {\MusiXTeX}.
+For many years, this was a serious obstacle against
+making comfortable use of CTAN , and thus of MikTeX as
+well.
\medskip
-One point, pointed out explicitly in the {\MusiXTeX} installation
-manual, is of particular importance: when updating your MiKTeX
-installation, files that are not standard parts of the MiKTeX data base
-tend to get lost or overwritten. In order to avoid this once and for
-all, it is convenient have an extra folder for your `private' files in a
-subdirectory of the MiKTeX ROOT directory (usually named
-\verb#localmiktex#). Explicitly, if your MiKTeX directory is, e.g., \\
-\verb#C:programs\miktex 2.7# \;, followed by
-\verb#...\miktex\...#,\,
-you should have an additional directory structure
-\texttt{C:}{\bs}\texttt{programs}{\bs}\texttt{miktex 2.7}%
- {\bs}\texttt{localmiktex}%
- {\bs}\texttt{...}{\bs}\texttt{miktex}{\bs}\texttt{...} \\
-and check that in the MiKTeX `settings -- root' window these folders
-are listed as
+\label{p:tennent}
+This has changed drastically in the last few years. As
+of 2012, the {\MusiXTeX} software of WIMA is formally
+maintained by CTAN as well, and in consequence,
+MikTeX is now pledged to be updated with the CTAN data within a
+few months at most. In particular, with its current version
+(MikTeX 2.9) MikTeX now fully supports {\PMX} 2.603 .
+\medskip
+So if you have MikTeX 2.9 installed, all you need to
+install {\MusiXTeX}~\texttt{1.15} is to download
\begin{center}
-\begin{tabular}{|ll|} \hline
-path & Descriptions \\ & \\
-\texttt{C:}{\bs}\texttt{programs}{\bs}\texttt{miktex 2.7} & Install \\
-\texttt{C:}{\bs}\texttt{programs}{\bs}\texttt{miktex 2.7}%
- {\bs}\texttt{localmiktex} & \\ \hline
-\end{tabular}
+ \href{http://mirrors.ctan.org/macros/musixtex/musixtex-texmf.zip}%
+ {musixtex/musixtex-texmf.zip}
\end{center}
-Then all files in the \texttt{localmiktex} folder and all its subfolders
-will never be updated or purged by MiKTeX .
-
-\medskip
-Another way to installing {\MusiXTeX} -- designed specifically to
-produce a TDS compliant structure
-\footnote{`TDS' stands for a `TeX Directory Structure', which is a
- standard way of organizing all the TeX-related files on a
- computer system.
- }
-of the data base in Windows XP -- has been described by Bob Tennent; all
-the info is contained in
- \href{http://www.ctan.org/tex-archive/macros/musixtex/musixtex-texmf.zip}%
- {musixtex-texmf}, available at \texttt{CTAN}.
+and follow the (terse, but clear)
+\href{http://mirrors.ctan.org/macros/musixtex/musixtex-install.pdf}%
+ {\underline{Installation instructions}}
+by Bob Tennent.
-\medskip
-At the same link you will also find a README with a terse, but clear
-instruction how to proceed. There is just one important item to amend:
-in the README it says: "unzip musixtex-texmf.zip at the root of a texmf
-tree \dots" ; but, for the reason pointed out above, it is much safer to
-unzip it in the \verb#localmiktex# folder of the MiKTeX structure.
-
-\medskip
-In all other respects, these 2 ways to installing {\MusiXTeX} will
-produce identical results; so which of the two you want to employ is
-just a matter of personal taste.
-
-\pagebreak\noindent
-To test the {\MusiXTeX} installation, download
-\href{http://icking-music-archive.org/software/pmxtricks/sample.zip}{sample.zip}
+\bigskip
+\medskip\noindent
+To test the {\MusiXTeX}~\texttt{1.15} installation, download
+\href{http://icking-music-archive.org/software/pmxtricks/sample.zip}%
+ {\underline{sample.zip}}
from WIMA to some temporary folder and unzip it, obtaining the 3 files
\verb#sample.tex#~, \verb#sample.pmx#~, and \verb#pmxrun.bat#~. Then run \\
\hspace*{10ex}
@@ -531,27 +496,37 @@ in a command line.
\Note{Make sure that when using basic {\TeX} you \emph{always} run
\texttt{etex.exe} (`extended {\TeX}') and \emph{not}
- \texttt{tex.exe} !! Although {\MiKTeX} now uses extended {\TeX} by
- default, the 2 commands \texttt{tex.exe} and \texttt{etex.exe}
- still differ; and {\MusiXTeX} 115, as well as {\PMX} 2.6, will not
- run properly under ordinary \texttt{tex.exe} .
+ \texttt{tex.exe} !! Although {\MiKTeX} and {\LaTeX} now use
+ extended {\TeX} by default, the 2 commands \texttt{tex.exe} and
+ \texttt{etex.exe} still both exist and \emph{differ};
+ {\PMX}~\texttt{2.6xx}, will not run properly under ordinary
+ \texttt{tex.exe} .
}
\subsubsection*{\PMX}
\noindent
-Compared to {\MusiXTeX}, installing {\PMX} 2.603 is a cinch. All you
-need to do is
+Compared to {\MusiXTeX}~\texttt{1.15}, installing {\PMX} 2.6 is a cinch.
+All you need to do is
\begin{enumerate}
- \item downkoad
- \href{http://icking-music-archive.org/software/pmx/pmx2603.zip}%
- {pmx 2.603.zip} and unzip it,
- \item copy \verb#pmxab.exe# and \verb#scor2prt.exe# to
- \verb#...\localmixtex\miktex\bin# ,
+ \item decide which particular version of the \PMX\ 2.6 series you
+ need: 2.603 is by now almost standard; the new version 2.617 has
+ a very important new feature regarding
+ transposing instruments, and 2.618 allows
+ adjusting the size of the {\PMX} output
+ automatically to the paper size used\,%
+ \footnote{remember that formally {\PMX} is still `beta' .
+ },
+ \item download
+ \href{http://icking-music-archive.org/software/pmx/pmx2618.zip}%
+ {\underline{pmx 2.618.zip}}
+ (or another \texttt{2.6xx}) and unzip it,
+ \item copy \verb#pmxab.exe# and \verb#scor2prt.exe#
+ to \verb#...\localmixtex\miktex\bin# ,
\item copy \verb#pmx.tex# to
- \verb#...\localmixtex\tex# ,
- \item run the {\MiKTeX} FNDB
- (`\texttt{F}ile \texttt{N}ame \texttt{D}ata \texttt{B}ase') .
+ \verb#...\localmixtex\tex# ,
+ \item run the {\MiKTeX} FNDB (`\texttt{F}ile
+ \texttt{N}ame \texttt{D}ata \texttt{B}ase') .
\end{enumerate}
\medskip\noindent
@@ -560,15 +535,17 @@ To test the installation, run \\
in a command line.
+
\section{Authors of the Software} \label{sec:authors}
_{authors}
+
\begin{description}
- \item[{\MusiXTeX}:] \emph{Daniel Taupin}
-_{Taupin, Daniel}
+ \item[{\MusiXTeX}:] \emph{Daniel Taupin}
+ _{Taupin, Daniel}
\href{http://icking-music-archive.org/software/indexmt6.html}%
- {\MusiXTeX} evolved from Music{\TeX} by
+ {\underline{\MusiXTeX}} evolved from Music{\TeX} by
\emph{Daniel Taupin}, a physicist in the Laboratoire de Phisique
des Solides in Orsay, \emph{Ross Mitchell} (CSIRO Division of
Atmospheric Research, Private Bag No.1, Mordialloc, Victoria
@@ -579,42 +556,31 @@ _{Taupin, Daniel}
Daniel Taupin until his untimely death in 2001 --- he died
accidentally while climbing in the Alps. He is remembered with a
\href{http://icking-music-archive.org/Memorial/Taupin%
- /Statements.html}{Memorial} on the web page of the Werner Icking
- Music Archive.
+ /Statements.html}{\underline{Memorial}}
+ on the web page of the Werner Icking Music Archive.
After Taupins death, {\MusiXTeX} seemed quite stable and could
thus, for all practical purposes, be considered `frozen' for a
long time.
However, nothing as lively as {\MusiXTeX} can really remain
- \marginpar{redo after release of T 115 !}
literally frozen forever. A number of improvements have
been continuously added by a group of {\MusiXTeX}perts, and,
finally, Hiroaki Morimoto has kindly provided a new version
of {\MusiXTeX} which corrects known bugs. Then a new and
\emph{strongly enhanced version} of the {\MusiXTeX} manual was
- prepared by a group led by Don Simons, which has now been
- officially released: {\MusiXTeX}-\texttt{T 114} . It is located
- at Werner Icking Music Archive (dubbed `WIMA') as
-
- \href{http://icking-music-archive.org/software/musixtex/%
- musixtex-t114.zip}{\texttt{musiXtex-t114.zip}}\,.
-
- \medskip
- Quite recently, Hiroaki Morimoto went even further in enhancing
- {\MusiXTeX}: his newest version, {\MusiXTeX} \texttt{T 115} ,
- now allows up to 24 instruments! While still a beta version as
- of this writing, it is likely to be released officially soon,
- and the present version of {\PMX}, version {\PMX} \texttt{2.603}
- -- and this tutorial -- is already based on {\MusiXTeX} \texttt{T
- 115} .
-
+ prepared by a group led by Don Simons, which has now been
+ officially released: {\MusiXTeX}~\texttt{1.15} . It is located
+ at the
+ \href{http://icking-music-archive.org/software/indexmt6.html#musixtex}%
+ {software section} of the Werner Icking Music Archive
+ (dubbed `WIMA').
\bigskip
Finally, here is a list of the authors of essential parts of
{\PMX} and related software:
- \item[{\PMX}:]
+ \item[{\PMX}:]
\emph{Don Simons}
_{Simons, Don} _{\PMX!author}
@@ -622,7 +588,7 @@ _{Simons, Don} _{\PMX!author}
\includegraphics[scale=0.7]{addresses/dsimons}
}
- \item[{\MTX}:]
+ \item[{\MTX}:]
\emph{Dirk Laurie}
_{Laurie, Dirk}
@@ -651,7 +617,7 @@ _{Kneifl, Stanislav}
_{Morimoto, Hiroaki}
E-mail: \raisebox{-1.0ex}{%
- \includegraphics[scale=0.7]{addresses/hmorimoto}
+ \includegraphics[scale=0.7]{addresses/hmorimoto}
}
\end{description}
@@ -697,7 +663,7 @@ The archive houses four main categories of information:
\label{p:Icking}
\begin{description}
- \item[Archive of sheet music]: Contains hundreds of royalty-free
+ \item[Archive of sheet music]: Contains hundreds of royalty-free
scores in PDF, many with their source code in {\MusiXTeX},
{\PMX}, or {\MTX}. It is maintained by \emph{Christian Mondrup},
who is also the main administrator of the Werner Icking Music
@@ -712,7 +678,7 @@ _{Mondrup, Christian}
is maintained by \emph{Don Simons} \\
E-mail:
\raisebox{-1.0ex}{%
- \includegraphics[scale=0.72]{addresses/dsimons}
+ \includegraphics[scale=0.72]{addresses/dsimons}
} .
_{Simons, Don}
\item[{\TeX}-music list]:
@@ -727,26 +693,44 @@ _{{\TeX}-music users' list}
{\texttt{http://icking-music-archive.org/mailman/listinfo/tex-music\/}}~.
Its administrator is \emph{Maurizio Codogno} (E-mail
\raisebox{-1.2ex}{%
- \includegraphics[scale=0.80]{addresses/mcodogno}
+ \includegraphics[scale=0.80]{addresses/mcodogno}
}$\!\!$).
_{Codogno, Maurizio}
- \item [Links to other sources of information regarding music:] There
- are links to search facilities about composers/works/editions, a
- multi-lingual glossary of musical terms, and some lists of
- composers' works. This is maintained by \emph{Jean-Pierre
- Coulon}:
+ \item [Links to other sources of information regarding music:]
+ There are links to search facilities about
+ composers/works/editions, a multi-lingual
+ glossary of musical terms, and some lists of
+ composers' works. This is maintained by
+ \emph{Jean-Pierre Coulon}:
\hspace*{10em}
E-mail: \raisebox{-1.0ex}{\includegraphics[scale=0.72]%
{addresses/jpcoulon}
}
_{Coulon,Jean-Pierre}
+
+ \bigskip\bigskip
+ As of 2012, ({\MusiXTeX} / \PMX) is coordinated
+ with \textbf{CTAN}, thus ensuring that
+ \textbf{CTAN} is up to date with ({\MusiXTeX}.
+
+ \medskip\noindent
+ This coordination with \textbf{CTAN} is
+ maintained by \emph{Bob Tennent}.
+
+ \hspace*{10em}
+ E-mail: \raisebox{-1.0ex}{\includegraphics[scale=0.72]%
+ {addresses/btennent}
+ }
+_{Tennent,Bob}
+
\end{description}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PMX tutorial by ccn / chapter B starts here:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{A {\PMX} Tutorial} \label{sec:GuidePMX}
-\section*{Conventions for this tutorial} \label{sec:conventions}
+
+\chapter{A {\PMX} Tutorial} \label{sec:GuidePMX} \section*{Conventions
+for this tutorial} \label{sec:conventions}
\addcontentsline{toc}{section}{Conventions for this tutorial}
_{tutorial!conventions of this tutorial}
@@ -862,8 +846,8 @@ _{\textbf{pmxab}}
(i) running {\TeX}, (ii) running ^{\textbf{musixflx}},
and (iii) running {\TeX} again (details on the
rationale behind this are described in the {\MusiXTeX}
- manual by Daniel Taupin).
_{Taupin, Daniel}
+ manual by Daniel Taupin).
}.
This \texttt{.dvi} file is machine readable and (usually) can be
previewed on the screen,
@@ -886,28 +870,28 @@ can trust that you get all the individual help you need.
_{{\TeX}-music users' list}
\begin{table}[!htbp]
- \begin{center}
+\begin{center}
\begin{minipage}{380pt}
-\small
+ \small
\begin{verbatim}
:::::::::::::::::::::::: runpmx.bat ::::::::::::::::::::::::
-Call C:\Programme\MikTeX_2.7\localmiktex\miktex\bin\pmxab %1.pmx
+Call C:\Programme\MikTeX_2.9\localmiktex\miktex\bin\pmxab %1.pmx
if errorlevel 1 goto pmxerr
if exist %1.pml del %1.pml
if exist %1.mx2 del %1.mx2
if exist %1.mx1 del %1.mx1
if exist pmxaerr.dat del pmxaerr.dat
::
-Call C:\Programme\MikTeX_2.7\miktex\bin\etex.exe %1.tex
+Call C:\Programme\MikTeX_2.9\miktex\bin\etex.exe %1.tex
if errorlevel 1 goto texerr
::
-Call C:\Programme\MikTeX_2.7\localmiktex\miktex\bin\musixflx.exe %1.mx1
+Call C:\Programme\MikTeX_2.9\localmiktex\miktex\bin\musixflx.exe %1.mx1
::
-Call C:\Programme\MikTeX_2.7\miktex\bin\etex.exe %1.tex
+Call C:\Programme\MikTeX_2.9\miktex\bin\etex.exe %1.tex
if errorlevel 1 goto texerr
if exist %1.log del %1.log
::
-Call C:\Programme\MikTeX_2.7\miktex\bin\dvips.exe %1.dvi
+Call C:\Programme\MikTeX_2.9\miktex\bin\dvips.exe %1.dvi
if errorlevel 1 goto dvierr
if exist %1.log del %1.log
::
@@ -943,16 +927,15 @@ pause
:::::::::::::::::::: end of runpmx.bat ::::::::::::::::::::
\end{verbatim}
\end{minipage}
- \end{center}
- \caption{An example of a batch file for running {\PMX}}
- \label{tab:runpmx}
+\end{center}
+ \caption{An example of a batch file for running {\PMX}}
+ \label{tab:runpmx}
\end{table}
-\pagebreak
+\bigskip
To illustrate the above process, however, an example for a typical
`batch' file, for a standard \textbf{Windows} system, is given in
-Table~\ref{tab:runpmx}. This assumes that you have
-installed
+table (\ref{tab:runpmx}). This assumes that you have installed
\begin{enumerate}
\item a ^{\MiKTeX} system,
\item a {\MusiXTeX} system,
@@ -977,7 +960,7 @@ You perhaps will want to write your own batch program\,%
When adapting this to your needs or writing your own batch
file altogether, you should make sure that you use
\texttt{etex.exe} in the 3 calls of {\TeX}.
- {\MusiXTeX}-\texttt{T115} and {\PMX} texttt{2.603} both
+ {\MusiXTeX}-\texttt{T115} and {\PMX} texttt{2.6xx} both
require e{\TeX} (extended {\TeX})!
}, to suit your personal requirements. Some further remarks on
how \textbf{pmxab}
@@ -1010,6 +993,7 @@ output from \textbf{pmxab}
_{\textbf{pmxab}}
will be stored in the log file [\emph{filename}]\texttt{.pml}.
+\newpage
\subsection{Concatenating several files} \label{sec:concatfiles}
_{\PMX!concatenating several files}
@@ -1166,7 +1150,7 @@ The {\PMX} code of a musical score consists of two parts, the
comment lines (as in {\TeX}); they are disregarded by the program\,%
\footnote{Note, however, the additional conventions of
the \textbf{scor2prt} program (see Chapter \ref{sec:scor2prt},
- pp.\ \pageref{p:scor2prt}).
+ pp.\ \pageref{sec:scor2prt}).
}.
\medskip
@@ -1560,7 +1544,8 @@ numbers for the clefs, again starting with the bottom staff. The choices
are\,%
\footnote{There are several more exotic clefs, available only in
straight {\MusiXTeX} (cf.~Section \ref{sec:inlineTeX} on
- ``Inline {\TeX}'', and the {\MusiXTeX} manual, Section~2.21).
+ ``Inline {\TeX}'', and the {\MusiXTeX}~\texttt{1.15} manual,
+ Section~2.21).
}:
\verb|b, r, n, a, m, s, t, f| , which stand for
\textbf{b}ass, ba\textbf{r}itone, te\textbf{n}or, \textbf{a}lto,
@@ -1744,7 +1729,8 @@ been illustrated in prior examples. The construction of the symbols will
be explained in much more detail in the remainder of this chapter.
\section{Commands for the Individual Staves}
- \label{sec:body}
+ \label{sec:stave transposition}
+
_{\PMX!commands for individual staves}
\subsection{Notes} \label{sec:notes}
@@ -2341,39 +2327,38 @@ same duration. They are coded in {\PMX} as follows:
\begin{itemize}
\item
_{chords!main note}
- One of the notes in the chord is chosen to be the first note,
- the ``main'' note, of the chord. It can be any note in the
- chord; usually it is simplest
- \footnote{Sometimes, however, careful choice of the main note
- can make an important difference. For example, if the
- chord is beamed with other notes, the default height
- and angle of the beam will be determined by the main
- note of each chord. If a beam joining chords looks
- bad, you can often fix it by changing which note acts
- as the main one [\,of course there are other ways to
- fine-tune beam parameters, as will be described in
- detail in Section~\ref{sec:beams}\,].
-
- So wise use of this freedom of choice is definitely
- called for! For further details, consult
- Section~\ref{sec:arpeggio} .
- }
- to start either from the bottom up or the top down.
-
- The main note is written as usual and as described in
- Section~\ref{sec:notes} .
- \item All other chordal notes are denoted by separate symbols
- starting with \texttt{z} followed by a note name. The note name
- can optionally be followed by an accidental and an octave
- indicator (\texttt{+} or \texttt{-}), but no absolute octave is
- allowed. And no duration value is allowed either, as this is
- logically determined by the first note.
-
- If the main note is dotted, the dot is obviously `inherited'
- for all other notes as well, so writing another \texttt{d}
- would be redundant. But if you want to shift the dot of a
- chordal note, you \emph{must add} a \texttt{d}, followed by the
- shift parameters, as described on p.\pageref{shifts}.
+ One of the notes in the chord is chosen to be the `first note'.
+ The first note is written as usual and as described in
+ Section~\ref{sec:notes} ; all other chordal notes are denoted by
+ separate symbols starting with \texttt{z} , followed by a note
+ name. The note name can optionally be followed by an accidental
+ and an octave indicator (\texttt{+} or \texttt{-}), but no
+ absolute octave is allowed. And no duration value is allowed
+ either, as this is logically determined by the first note.
+
+ Legally the first note can be any one of the chord notes; but wise
+ use of this freedom of choice is definitely called for, since
+ \begin{itemize}
+ \item the first note sets the default stem direction,
+ \item in a beam it can affect the height and slope of the
+ beam,
+ \item if the chord is beamed with other notes, the default
+ height and slope of the beam will be determined by the
+ `first note' of the chord.
+ \end{itemize}
+
+ If a beam joining chords looks bad, you can often fix it by
+ changing which note acts as the main one [\,of course there are
+ other ways to fine-tune beam parameters, as will be described in
+ detail in Section~\ref{sec:beams}\,]. For further details, consult
+ Section~\ref{sec:arpeggio} .
+
+ If the main note is dotted, the dot is obviously `inherited' for
+ all other notes as well, so writing another \texttt{d} would be
+ redundant. But if you want to shift the dot of a chordal note, you
+ \emph{must add} a \texttt{d}, followed by the shift parameters, as
+ described on p.\pageref{shifts}.
+
\item Normally {\PMX} will automatically set notes in a chord so that
collisions are avoided (in a second, e.g.). If you don't like
the result, you can shift the note by one notehead width to the
@@ -2417,6 +2402,37 @@ As decribed above, every chord note has its own note symbol. This means,
as always: no space within a note symbol, but at least one space
between the note symbols of a chord.
+\Note{\begin{center} \large\textbf{A beginner's trap} \end{center} When
+ slurring two chords, you may get confused by a simple
+ programming error. Take, e.g., the sequence
+
+ \vspace*{-3ex} \begin{center} \texttt{c45 zf d zg-} \qquad .
+ \end{center}
+ \vspace*{-2ex}\noindent
+ The first notes of the two chords are c and d , the chord notes
+ (denoted by \texttt{z} in \PMX) are f and g . However, \PMX\
+ following your instruction, sets the lower notes as \emph{c and
+ g} , the higher ones as \emph{f and d} .
+
+ So if you want to slur the chord say, in the higher notes (as
+ shown in the picture),
+
+ \vspace*{-3ex} \begin{center}
+ \includegraphics{eps/chordslur.eps} ,
+ \end{center}
+ \vspace*{-3ex}\noindent
+ you must obviously write
+
+ \noindent
+ \hspace*{5em} \texttt{c45 zf s d s zg-} \; , \quad not \quad
+ \texttt{c45 zf s d zg- s} \; .
+
+ \smallskip
+ \textbf{Moral}: if you want to slur chords, look at the
+ \emph{names of the notes} you want to slur, not
+ the \texttt{z} symbols!
+ }
+
\subsubsection{Arpeggio} \label{sec:arpeggio}
_{chords!arpeggio} _{arpeggio|see{chords}}
@@ -2724,21 +2740,22 @@ this feature, terminate the first ornament symbol with \texttt{:} . Then
every note in that voice will have the same ornament until a
note is followed by the repeat terminator \texttt{o:} .
+
\subsection{Beams} \label{sec:beams}
_{beaming}
_{beaming!forced} _{beaming!inhibited}
-For the most part, \PMX\ automatically takes care of the details of
-defining beams: selecting which notes are beamed together, and setting
-the angle, direction, height, and \emph{multiplicity} (the number of
-bars along the top or bottom). However, one may define a \emph{forced}
-beam -- which overrides {\PMX}'s selection of which notes are beamed
-together -- by surrounding the included notes with \texttt{[} and
-\texttt{]}, being certain to separate these beam symbols: \texttt{[} and
-\texttt{]} and their options, from the included note symbols with
-spaces. Conversely, if {\PMX}'s selection is to beam notes, and you want
-to inhibit this for a single note, add the option \texttt{a} to the note
-symbol (cf.~Section~\ref{sec:otherparams}).
+For the most part, \PMX\ automatically takes care of the details
+of defining beams: selecting which notes are beamed together,
+and setting the angle, direction, height, and
+\emph{multiplicity} (the number of bars along the top or
+bottom). However, one may define a \emph{forced} beam -- which
+overrides {\PMX}'s selection of which notes are beamed together
+-- by surrounding the notes to be beamed with \texttt{[} and
+\texttt{]} (with spaces, as usual). Conversely, if {\PMX}'s
+selection is to beam notes, and you want to inhibit this for a
+single note, add the option \texttt{a} to the note symbol
+(cf.~Section~\ref{sec:otherparams}).
\bigskip
One may also wish to edit certain features of a beam even when {\PMX}'s
@@ -2774,10 +2791,9 @@ one, two or three consecutive integers, each preceded with \texttt{+} or
\vspace*{-2ex}
\begin{enumerate}
- \item first is an adjustment of the starting height, which
- thus determines the stem length of the first beamed
- note. It is given in \verb#\internote#s and may range
- from -30 to 30,
+ \item first is an adjustment of the starting height; it is
+ given in \verb#\internote#s and may range from -30 to
+ 30,
\item the second is a slope adjustment (again in the range
from -30 to 30),
\item The third is an additional adjustment to the starting
@@ -2795,11 +2811,12 @@ Note also that, since the meaning of these numbers is interpreted by
\PMX\ in their sequence, if you need only the second or only the third
number you \emph{must not omit} the preceding number(s), but rather give
explicit \texttt{0}'s for them.
-
-\begin{figure}[!htb]
+\vspace*{-2ex}
+\begin{figure}[!h]
\begin{center}
\includegraphics[scale=.82]{eps/beams.eps} \\[2ex]
------------------------------------------
+\vspace*{-2ex}
\begin{minipage}{380pt}
\small
\begin{verbatim}
@@ -2816,32 +2833,33 @@ f1s c f a c fs a c- b g+ b g [l+12-8 b-- g1++ b g ] Rd /
% Bar f:
m3434
cd84 c3 c6 c [+0+0+3 cd8 c3 c6 c ] [-1+0+3 cd8 c3 c6 c ] Rd /
-%
\end{verbatim}
\end{minipage}
\end{center}
-
- \vspace*{-4ex}
\caption{Beams}
\label{fig:beams}
+ \vspace*{-4ex}
\end{figure}
+\pagebreak
-\bigskip
Here are some further possibilities regarding beaming:
\begin{itemize}
\item
_{xtuplet!beamed with other notes} _{beaming!in xtuplet}
+ \vspace*{-1ex}
By default, xtuplets (cf.~Section~\ref{sec:xtuplets}) are set
apart with their own beam. To beam an xtuplet together with
other non-xtuplets, just include it with the other notes in a
forced beam.
\item
_{beaming!rest within beamed notes} _{rest!in beam}
+ \vspace*{-1ex}
Rests may also be included within forced beams, provided they
are shorter than quarter rests, and of course that they come
\emph{between} the first and last notes under the beam.
\item
_{beaming!beamed groupings}
+ \vspace*{-1ex}
Sometimes one may wish to define beamed groupings with subgroups
joined by a single beam. The symbol \texttt{][} , standing alone
between two note symbols inside a forced beam, causes the
@@ -2853,6 +2871,7 @@ _{beaming!beamed groupings}
\texttt{[ c15 c c ][ c c cx3 c c ]} .
\item
_{beaming!single-slope beam}
+ \vspace*{-1ex}
Related to this is a
\emph{single-slope beam group}, which is the same as described
in the previous item except that there is no connecting beam
@@ -2861,6 +2880,7 @@ _{beaming!single-slope beam}
two notes inside the forced beam.
\item
_{beaming!large jumps} _{beaming!up/down beams}
+ \vspace*{-1ex}
If there are large jumps in pitch between
notes in a beam within a single staff, as a matter of taste you
may wish to start the beam for example as an upper one and end
@@ -2871,28 +2891,28 @@ _{beaming!large jumps} _{beaming!up/down beams}
\begin{enumerate}
\item if there are any intermediate multiplicity changes,
they will only be handled properly if the initially
- specified up-down-ness is consistent with the vertical
+ specified up/down-ness is consistent with the vertical
position of the intermediate notes involved\,%
\footnote{This is due to a fundamental technical
limitation of \MusiXTeX.
},
- \item for proper appearance in crowded scores you may wish to
- insert hardspace or shifts as described in
- Section~\ref{sec:spacing}.
+ \item for proper appearance in crowded scores you may
+ wish to insert hardspace or shifts as described
+ in Section~\ref{sec:spacing}.
\end{enumerate}
- \pagebreak
- \item
+
+ \item Beams cannot normally jump staves. But if that is
_{beaming!staff-jumping} \label{p:jumpbeam}
- Beams cannot normally jump staves. But if that is desired, start
- the beam normally in one voice, and terminate the part of the
- beam in that voice with \texttt{]j} . Then resume the beam in
- the other voice on a neighboring staff with \texttt{[j}, ending
- that part with the normal \texttt{]} . For staff-jumping beams,
- it's OK to have just a single note inside one or both of the
- partial beams. Each voice must, however, still have the right
- number of beats, so you will probably need to adjust the
- durations with blank rests after the first members of the beam
- and before the second.
+ desired, start the beam normally in one voice, and
+ terminate the part of the beam in that voice with
+ \texttt{]j} . Then resume the beam in the other voice on
+ a neighboring staff with \texttt{[j}, ending that part
+ with the normal \texttt{]} . For staff-jumping beams,
+ it's OK to have just a single note inside one or both of
+ the partial beams. Each voice must, however, still have
+ the right number of beats, so you will probably need to
+ fill in the durations with blank rests after the first
+ members of the beam and before the second.
\smallskip
With staff-jumping beams, some adjustment of the beam height and
@@ -2903,108 +2923,127 @@ _{beaming!staff-jumping} \label{p:jumpbeam}
may sometimes produce unexpected results, and some iteration may
be required to get exactly what you want.
- \medskip
- An example of a staff-jumping beam is seen in
- Fig.~\ref{fig:jumpbeam}.
+ \smallskip
+ An example of a staff-jumping beam is seen
+ in Fig.~\ref{fig:jumpbeam} .
+\begin{figure}[!bth]
+ \begin{center}
+ \raisebox{-0.75ex}{%
+ \includegraphics[scale=.82]{eps/jumpbeam.eps}
+ }
+ \end{center}
+ \caption{\textbf{A staff-jumping beam}}
+ \label{fig:jumpbeam}
+\end{figure}
\item
-_{beaming!automatic forced beams} \label{p:autoforcedbeam}
- If the option : (colon) is appended to the starting symbol
- \texttt{[} for a forced beam, then henceforth beams of the same
- length will be force-beamed similarly in that line of music
- until the end of the input block. Within an input block, the
- automatic forced beaming can also be stopped explicitly by
- starting a new regular forced beam.
-
- \begin{quote} But remember that {\PMX} is actually quite good at
- beaming notes in the manner a human musician would normally
- expect; so it will be necessary to use this facility only in
- the special cases when you want (or need) beaming different
- from what {\PMX} provides on its own. In such cases, consider
- this beaming automatism as a kind of shorthand; as such, it
- will be really worth your while only when you want to repeat
- the same `non-orthodox' beaming an appreciable number of
- times. \end{quote} Regarding automatic forced beaming, you
- should also be aware of the following features:
-
- \begin{enumerate} \item As with regular beams, you can have
- notes of different durations beamed together in an
- automatic forced beam. The rule in that case is: in th e
- beams following the initial one, the next sequence(s) of
- notes with the \emph{same total duration time} as that of
- the notes beamed together initially will then be beamed
- together automatically. As usual, notes given without
- duration will `inherit' their durations from the most
- recent note with an explicit duration. All this is best
- seen in the following example:
- \begin{center}
- \includegraphics[scale=.82]{eps/autobeam} \qquad ,
- \end{center} which is coded as follows:
- \begin{verbatim}
- d85 e b a1 b c1 b a8
- [ d85 e ] b a1 b c1 b a8
- [: d85 e ] b a1 b c1 b a8
- d85 e b a1 b c1 b a8 /
- g2d /
- \end{verbatim}
-
- Note how the automatic beaming ends at the end of the
- first input block. Leaving out the slash at the end of
- the fourth line would create havoc, because a full note
- cannot be beamed. But no slash is needed
- between the code for the first three bars.
-
- \item {\PMX} will never produce beams across bar
-_{beams!forced across bar lines}
- lines. However, a somewhat fortuitous exception of this
- general feature of {\PMX} are staff-jumping beams, and a
- specific example of this can be seen in
- Fig.~\ref{fig:jumpbeam}. This is \emph{not an intended
- feature}, and its intentional use is not encouraged.
-
- \medskip
- A fortiori {\PMX} does not allow automatic
- \emph{forced-beaming} across bar lines. Any attempt to
- try that will always result in a {\PMX} error stop.
- Thus, if your automatic forced-beam pattern would cause
- a beam to cross a bar line, you have to terminate the
- automatic beaming properly before the end of the bar, or
- {\PMX} will stop with an error.
- \end{enumerate}
+ If the option : (colon) is appended to the starting
+ symbol \texttt{[} for a forced beam
+_{automatic beaming!} \label{p:autoforcedbeam}
+ (`automatic forced beaming'), then henceforth beams of
+ the same length will be force-beamed similarly in that
+ line of music \emph{until the end of the input block}.
+ Within an input block, the automatic forced beaming can
+ also be stopped explicitly by starting a new regular
+ forced beam.
+
+ But remember that {\PMX} is actually quite good at
+ beaming notes in the manner a human musician would
+ normally expect; so it will be necessary to use this
+ facility only in the special cases when you want (or
+ need) beaming different from what {\PMX} provides on its
+ own. In such cases, consider this beaming automatism as
+ a kind of shorthand; as such, it will be really worth
+ your while only when you want to repeat the same
+ `non-orthodox' beaming an appreciable number of times.
+
+ Regarding automatic forced beaming, you should also be
+ aware of the following:
+
+ \smallskip
+ As with regular beams, you can have notes of different
+ durations beamed together in an automatic forced beam.
+ The rule in that case is: in the beams following the
+ initial one, the next sequence(s) of notes with the
+ \emph{same total duration time} as that of the notes
+ beamed together initially will then be beamed together
+ automatically. As usual, notes given without duration
+ will `inherit' their durations from the most recent note
+ with an explicit duration.
+
+ All this is best seen in the following example:
+
+ \vspace*{-2ex}
+ \begin{center}
+ \includegraphics[scale=.82]{eps/autobeam} \qquad ,
+ \end{center}
+
+ \vspace*{-3ex}
+ which is coded as follows:
+
+ \vspace*{-4ex}
+ \qquad \begin{verbatim}
+ d85 e b a1 b c1 b a8
+[ d85 e ] b a1 b c b a8
+[: d85 e ] b a1 b c b a8
+ d85 e b a1 b c1 b a8 /
+ d85 e b a1 b c1 b a8 Rd
+ \end{verbatim}
+ \vspace*{-3ex}
+ \nopagebreak
+ Note how the automatic beaming ends at the \emph{end of
+ the first input block}.
\end{itemize}
-\begin{figure}[!htb]
-\begin{center}
- \includegraphics[scale=.82]{eps/jumpbeam.eps} \\[2ex]
- ------------------------------------------
-\begin{minipage}{360pt}
-\small
-\begin{verbatim}
-r4 | [ c8-- e c+ e c+ e- c a+ ]j stl | ald2 st ze ze+ r4 Rb /
-c4+ zc+ su | bdf2 zbf- a4+ s za- | [ju c8- a+ c e ] c+ r+0 c4 zc- //
-rb4 | er0+ | rb0 /
-%
-\end{verbatim}
-\end{minipage}
-\end{center}
-\caption{An extraordinary staff-jumping beam} \label{fig:jumpbeam}
+ \pagebreak
+A last remark:
+
+\smallskip \noindent
+{\PMX} was never intentionally designed to produce beams across
+bar lines.
+_{beams across bar lines}
+\label{sec:beamjump}
+However, in an (undocumented) exception, {\PMX} \emph{in some
+cases} does accept beams that cross bar lines: as it turns out,
+the machinery designed for staff-jumping beams may also be used
+to force a beam across a bar line, whether the beam jumps to a
+different staff or stays within the same staff.
+
+The syntax for that feature is applied in the obvious way, as
+described on p.\ \pageref{p:jumpbeam}, and then applied
+similarily in the single-staff example of Fig.
+\ref{fig:Donjump}.
+
+\begin{figure}[!ht] \begin{center}
+\includegraphics[scale=.82]{eps/Donjump.eps} \\[2ex]
+------------------------------------------------------------------
+\begin{minipage}{360pt} \small
+ \begin{verbatim}
+ cd24 c8 [+0+1 c ]j | [jf c d e f ]
+ g4 g8 [+0-1 g8 ]j / [j f84 e d c ] c2 /
+ \end{verbatim}
+\end{minipage} \end{center}
+
+\hspace*{-2ex}
+\caption{An example of bar-crossing beams within a single staff}
+ \label{fig:Donjump}
\end{figure}
-\bigskip
-Some further examples of beaming and their {\PMX} coding are given in
-Fig.~\ref{fig:beams}.
+% \addcontentsline{toc}{chapter}{Index}
+
\subsection{Slurs and Ties} \label{sec:psslurs}
-_{slurs} _{ties|see{psslurs}}
+_{slurs}
\subsubsection*{Pick a package} \label{sec:postscriptpackages}
\addcontentsline{toc}{subsubsection}{Pick a package}
_{dynamic marks!hairpin!length limit} _{hairpins|see{dynamic marks}}
-By default \PMX\ will use \MusiXTeX's built-in, font-based slurs and
+By default \PMX\ will use {\MusiXTeX}'s built-in, font-based slurs and
+_{ties|see{psslurs}}
hairpins (crescendi and diminuendi, see Section~\ref{sec:dynamics},
p.~\pageref{p:dynamics} ff). To use these, you don't have to install any
-more software. But they do have drawbacks: the fonts used by {MusixTeX}
+more software. But they do have drawbacks: the fonts used by {\MusiXTeX}
for font-based slurs come in fixed sizes and shapes and are therefore
often not flexible enough in complicated situations. In contrast, slurs
and hairpins produced with the help of the PostScript language overcome
@@ -3012,8 +3051,8 @@ many of the shortcomings of their font-based counterparts.
_{slurs!PostScript} _{PostScript!slurs, ties and hairpins}
There are two independent ``third-party'' packages that provide
-{\MusiXTeX} and {\PMX} users with PostScript-based slurs, ties, and
-hairpins:
+{\MusiXTeX}~\texttt{1.15} and {\PMX} users with PostScript-based slurs,
+ties, and hairpins:
\begin{description}
\item[\emph{Type K} --] \label{sec:pss-K}
_{Kneifl, Stanislav}
@@ -3024,14 +3063,14 @@ _{Kneifl, Stanislav}
\item[\emph{Type M} --]
_{Morimoto, Hiroaki}
This package, by \textbf{Hiroaki Morimoto}, is somewhat more
- flexible when used directly in {\MusiXTeX}, but it requires
- the \textbf{Metapost} package to be installed in the {\TeX}
- installation. These are not directly supported by {\PMX}, but
- are advertised to be fully compatible with {\MusiXTeX}'s
- default font-based slurs. From {\PMX}'s standpoint they are not
- different from font-based slurs, and the same options and
- features that apply to font-based slurs should apply as well to
- these.
+ flexible when used directly in {\MusiXTeX}~\texttt{1.15}, but
+ it requires the \textbf{Metapost} package to be installed in
+ the {\TeX} installation. These are not directly supported by
+ {\PMX}, but are advertised to be fully compatible with default
+ font-based slurs of {\MusiXTeX}~\texttt{1.15} . From {\PMX}'s
+ standpoint they are not different from font-based slurs, and
+ the same options and features that apply to font-based slurs
+ should apply as well to these.
\end{description}
Both PostScript slur packages provide excellent slurs, ties and
@@ -3072,7 +3111,7 @@ slurs and hairpins to use with {\PMX}:
\begin{itemize}
\item True ties, which are shaped differently from slurs, are only
available with Type K\,%
- \footnote{In {\MusiXTeX}, font-based
+ \footnote{In {\MusiXTeX}~\texttt{1.15}, font-based
true ties are actually available; but they were never
incorporated in {\PMX}, now being superceded by type K
slurs.
@@ -3528,6 +3567,7 @@ of 3 types of parameters, optionally followed by position shifts:
\item \textbf{A standard dynamic mark :} this can be any one of the
following:
\texttt{pppp, ppp, pp, p, mp, mf, f, ff, fff, ffff, sfz, fp}.
+\pagebreak
\item
_{dynamic marks!hairpin} _{crescendo|see{dynamic marks}}
_{decrescendo|see{dynamic marks}}
@@ -3536,34 +3576,32 @@ _{decrescendo|see{dynamic marks}}
are \emph{toggles}, i.e.\ the first \texttt{D<} starts the
crescendo, and the next \texttt{D<} ends it; similarily for
\texttt{D>}.
- \item
-_{dynamic marks!textual}
- \textbf{Arbitrary text :} \texttt{"\dots\"}, where \, \dots \,
- stands for any text string, e.g.~\texttt{D"}molto
- espressivo\texttt{"}.The text will be set in italics unless
- another \TeX-style font specification is included.
-\end{enumerate}
+ \Note{As of version 2.616 {\PMX} allows hairpin
+ dynamics to span input blocks!
+ }
+ \item _{dynamic marks!textual} \textbf{Arbitrary text :}
+ \texttt{"\dots\"}, where \, \dots \, stands for any
+ text string, e.g.~\texttt{D"}molto
+ espressivo\texttt{"}. The text will be set in italics
+ unless another \TeX-style font specification is
+ included\,
+ \footnote{A practical example is \texttt{D"
+ $\backslash$ppff fz"}
+ (cf.\ \href{http://icking-music-archive.org/%
+ software/pmxtricks/dynamic.pdf}%
+ {Tips and Tricks}).
+ }.
+ \end{enumerate}
All dynamics symbols go \emph{after} the note to which they refer (so
e.g.~\texttt{g Dpp} will write a pianissimo g). Hairpin marks
-must be contained \emph{completely within the same input block}\,%
+must be contained \emph{completely within the same input block}?,%
\footnote{If need be (e.g.\ for crescendi/decrescendi across bar
lines), you can adjust the position and length of a
crescendo/decrescendo by adding position shifts as
described.
}
-\Note{Since all dynamic marks go \emph{after} a note, a fortiori they
- should \emph{never come at the very beginning of an input block}.
- This is important to keep in mind because \PMX\ does not
- necessarily give an error message, but can produce rather strange
- results, often at remote places in your score (what Knuth calls `a
- weird error'), so the true source of the error may be hard to
- detect. You can usually get a hint that something went wrong if
- \PMX\ has produced a backup file of your source --- without any
- apparent reason!
- }
-
\medskip
The default position of any dynamic mark or text entered with the
\texttt{D} symbol is just below the notehead, stem end, or bottom staff
@@ -3983,7 +4021,8 @@ Fig.~\ref{fig:bars} gives some examples.
\Note{On some special occasions, you may want dashed or dotted barlines
instead of the regular ones. For this and similar purposes, there
is a very good and easy-to-use package by Rainer Dunker:
- \texttt{musixdbr.tex}, included in the {\MusiXTeX} distribution.
+ \texttt{musixdbr.tex}, included in the {\MusiXTeX}~\texttt{1.15}
+ distribution.
_{Dunker, Rainer} _{bar lines!dotted, dashed}
}
@@ -4153,8 +4192,32 @@ Some examples are given in Fig.~\ref{fig:keychg}.
\end{figure}
\subsection{Transpositions} \label{sec:transpositions}
+
_{transposition} _{K symbol@\texttt{K} symbol}
+\subsubsection{Transposition of an entire score}
+
+To transpose an entire score to a different key from the one in which
+the data have been entered, use the symbol \texttt{K} (for
+\textbf{K}ey), followed by two explicitly signed digits: (1) the
+distance to transpose by, in units of \verb#\internote# (i.e.\ the
+vertical offset on the staff), and (2) the new key signature. This
+symbol must be entered at the beginning of the piece, in the header
+(cf.~p.\pageref{p:header}).
+
+There is one case that requires special handling, viz., when transposing
+by a half step, but the vertical position doesn't change, e.g.\ from D
+flat to D. In this case the shift parameter (the first parameter of
+\texttt{K}) is \emph{always} \texttt{-0} \emph{regardless} of whether
+the transposition is up or down a half step\,%
+\footnote{This artifact is needed to differentiate a half-note
+ transposition from a mere key change without
+ transposition (cf.~Section~\ref{sec:keychg}) .
+ };
+the direction of the transposition will be determined by the new key
+signature, the second parameter. An example of transposition is given in
+Figs.~\ref{fig:transpose}.
+
\begin{figure}[!htb]
\begin{center}
no transposition: \\
@@ -4182,44 +4245,12 @@ _{transposition} _{K symbol@\texttt{K} symbol}
\label{fig:transpose}
\end{figure}
-To transpose an entire score to a different key from the one in which
-the data have been entered, use the symbol \texttt{K} (for
-\textbf{K}ey), followed by two explicitly signed digits: (1) the
-distance to transpose by, in units of \verb#\internote# (i.e.\ the
-vertical offset on the staff), and (2) the new key signature. This
-symbol must be entered at the beginning of the piece, in the header
-(cf.~p.\pageref{p:header}).
-
-There is one case that requires special handling, viz., when transposing
-by a half step, but the vertical position doesn't change, e.g.\ from D
-flat to D. In this case the shift parameter (the first parameter of
-\texttt{K}) is \emph{always} \texttt{-0} \emph{regardless} of whether
-the transposition is up or down a half step\,%
-\footnote{This artifact is needed to differentiate a half-note
- transposition from a mere key change without
- transposition (cf.~Section~\ref{sec:keychg}) .
- };
-the direction of the transposition will be determined by the new key
-signature, the second parameter. An example is given in
-Fig.~\ref{fig:transpose}.
-
-\medskip
-_{accidentals!relative}
-When transposing, one should always use relative accidentals, activated
-by the symbol \texttt{Ar} in the header (cf.~Section~\ref{sec:A} for a
-detailed explanation of this notation).
-
-Of course, if you have just one transposing instrument, or a choir of
-same-type instruments, you can use the transposition mechanism effected
-by the \texttt{K}ey symbol to easily obtain both the original score and
-its actual sound. For an example of this use of the transposition
-mechanism see Fig.~\ref{fig:tristan}.
-\begin{figure}[!htb]
+\begin{figure}
\begin{center}
- \includegraphics[scale=.82]{eps/tristano.eps} \\
+ \includegraphics[scale=.82]{eps/tristn.eps} \\
Standard notation in the original score \\[3ex]
- \includegraphics[scale=.82]{eps/tristans.eps} \\
+ \includegraphics[scale=.82]{eps/trists.eps} \\
Actual sound (transposed with \texttt{K-4-4})
\end{center}
\caption{\textbf{R.\ Wagner}, \emph{Tristan und Isolde},
@@ -4227,21 +4258,58 @@ mechanism see Fig.~\ref{fig:tristan}.
\label{fig:tristan}
\end{figure}
-_{wind instruments|see{instruments,transposing}}
-\Note{The transposition of an an entire score must not be confused with
- the standard notation for `transposing' instruments, such as
- clarinets (in B, A etc.), oboe d'amore (which is in A), oboe da
- caccia (in F), or horns. {\PMX} does not provide a notation for
- this directly if transposing instruments appear together with
- non-transposing instruments in the same score, but it is easy to
- do it with some inline {\MusiXTeX}\,\footnotemark\
- (for details on this particular problem see the example of
- Mozart's \emph{Mauerische Trauermusik} in
- Section~\ref{sec:mtrauer}).
- }
-\footnotetext{_{Vogel, Olivier} I am grateful to Olivier Vogel for
- pointing this out to me.
- }
+
+\medskip
+_{accidentals!relative}
+When transposing, one should always use relative accidentals, activated
+by the symbol \texttt{Ar} in the header (cf.~Section~\ref{sec:A} for a
+detailed explanation of this notation).
+
+\medskip
+When transposing an entire score of same-type instruments, it is of
+course easy to obtain both the original score and its actual sound, as
+shown in Fig.~\ref{fig:tristan}.
+
+\subsubsection{Transposition of Individual staves}
+ \label{sec:stafftranspos}
+
+In orchestral scores, you usually have individual `transposing
+instruments', i.e.\ instruments that are denoted (and, in fact,
+\emph{played}) in a pitch different from what they sound: clarinets in E or B
+flat, Oboes in A (oboe d'amore) or F (oboe da caccia), and similar. For
+that purpose \PMX\ now provides the option to transpose individual
+staves.
+
+The instructions given by Don Simons himself on introduction of \PMX\
+\texttt{2.613} are so clear that it is best to quote them literally
+here:
+
+\begin{quotation}
+``The syntax is an extension of the existing full-score transpose/key
+ change command "K". Just follow "K" with "i", then instrument number,
+ then the same parameters as before for transposition amount and new
+ key signature:
+
+ \verbġKi[instrument #][+/-][trans amt.][+/-][new key]ġ
+
+ For more than one instrument, you may immediately repeat everything
+ after "K". The command must either be at the start of the score (right
+ after setup), or if later, must be preceded by a normal (full score)
+ key change command K+0[+/-][new key]. (Remember that later full-score
+ transpositions are not allowed). ''
+\end{quotation}
+
+An important function is worth repeating/emphasizing:
+\begin{itemize}
+ \item It is usually easiest to put the new \texttt{K} command where
+ the old one was: right before the start of the actual score,
+ i.e.\ in the `header' . But it is now also possible to enter it
+ later, albeit with the (somewhat cumbersome) addition of a `dummy'
+ full-score key change command (as explained above).
+
+ This can indeed occur in practice, e.g.\ when the oboe player
+ switches to English Horn in midstream!
+\end{itemize}
\subsection{Titles, and text above and below a system}
\label{sec:titles} _{titles}
@@ -4637,7 +4705,7 @@ this, use the \textbf{type 3} inline {\TeX} command
\bigskip
{\MusiXTeX} provides still more elaborate bar numbering schemes, such as
a number over every $n^{\text{th}}$ bar. For details refer to the
-{\MusiXTeX} manual.
+{\MusiXTeX}~\texttt{1.15} manual.
\section{Some general options and technical adjustments}
\label{sec:options} _{\PMX!options!general}
@@ -4663,6 +4731,8 @@ _{\PMX!options!global} _{A symbol} _{global options |see{@\texttt{A} symbol}}
\hline
\texttt{Aa}$[x]$ & sets space before first note in a bar \\
\texttt{Ab} & makes accidentals \textbf{b}ig \\
+\texttt{Ac}$[x]$ & sets page sizes and offsets according
+ to paper type \\
\texttt{Ad} & puts \textbf{d}ots in lower voices
\emph{below} the line \\
\texttt{Ae} & \textbf{e}qualizes inter-system spacing \\
@@ -4755,6 +4825,25 @@ that the {\PMX} source for the score to be transposed use the
}.
\end{itemize}
+\subsubsection{General layout} _{genlayout} The
+esthetic appearance of a score of music depends on the
+white space around it, and thus depends on the physical
+size of the paper.
+
+\medskip
+In {\PMX}, default values for this can be set with a
+global option \texttt{Acl} or \texttt{Ac4}, with no
+further adjustments required in \textbf{dvips} . These
+commands set horizontal and vertical sizes and offsets
+that center the page:
+\begin{itemize}
+ \item \texttt{Acl} for letter paper
+ \item \texttt{Ac4} for DIN A4 paper .
+\end{itemize}
+
+\Note[180pt]{These 2 global options are available as of {\PMX}
+ version 2.618 , not before !!}
+
\subsubsection{Layout details} _{layout}
When the note head of a dotted note is \emph{on} the line (e.g.\
for a \emph{g} in a violin clef), it is customary to place the
@@ -4765,16 +4854,6 @@ the \emph{lower} voice. {\PMX}'s default is the first possiblity;
dots for both voices \emph{above} the line, but it can be
overridden:
-\begin{itemize}
-_{layout!dotted note in 2-voice staff}
-_{notes!dotted note!dots in 2-voice staff}
-_{voice!several voices in one staff}
-
- \item \texttt{Ad} causes the \textbf{d}ot -- for notes that are
- \emph{on} a line -- in the lower voice
- of any two-voice staff to be placed \emph{below} the
- line.
-\end{itemize}
\noindent
By default {\PMX} inserts a horizontal gap of \verb#1\elemskip#
@@ -5610,17 +5689,18 @@ We close this section with two practical examples and a final remark:
(cf.~Section~\ref{sec:numinput}). Some special clef symbols
(among them no clef at all) are defined in {\MusiXTeX} and can
be invoked by the command \bs\texttt{setclefsymbol} (cf.~the
- {\MusiXTeX} manual, Sec.~2.21.2). The most common of these are
- octave treble and octave bass clefs, in which a small $8$ is
- attached to either the top or the bottom of the clef symbol. To
- get a higher octave treble key for instrument number $2$, for
- example\,%
+ {\MusiXTeX}~\texttt{1.15} manual, Sec.~2.21.2). The most common
+ of these are octave treble and octave bass clefs, in which a
+ small $8$ is attached to either the top or the bottom of the
+ clef symbol. To get a higher octave treble key for instrument
+ number $2$, for example\,%
\footnote{Matters are more complicated for instruments with
more than 1 staff, such as piano or organ, because
the number in the command refers to the number of the
\emph{instrument}, not the staff. Cf.~the
- {\MusiXTeX} manual, Sec.~2.27.10 for details.
- },
+ {\MusiXTeX}~\texttt{1.15} manual, Sec.~2.27.10 for
+ details.
+ },
just add the following type 2 inline {\MusiXTeX} command
\begin{center}
\bs\bs\texttt{setclefsymbol}\{\texttt{2}\}
@@ -5659,41 +5739,53 @@ inline {\TeX} strings. Simply put the commands into a text file named
\chapter{Special Features} \label{sec:specials}
\section{Making Parts from a Score}
- \label{sec:scor2prt} \label{p:scor2prt} _{\textbf{scor2prt}}
-
-Separate parts can be made from a score with the tool \textbf{scor2prt}
-(included in the standard {\PMX} distribution). Suppose you want to
-produce the parts to the ``Mauerische Trauermusik''
-(Fig.~\ref{fig:mtrauermus}), and the \texttt{.pmx} file of that score is
-called \verb#mtrauermus.pmx#. All you to need to do is to run
-\begin{center}\begin{verbatim}
- scor2prt mtrauermus
-\end{verbatim}\end{center}
-from the command line (if you omit the file name, you will be prompted
-for one). The program will then create the following \texttt{.pmx}
-files, one for each instrument\,%
-\footnote{As is explained in Section~\ref{sec:mtrauer}, this particular
- {\PMX} source has defined both the oboes and the violins as
- one two-staves instrument each, so that there is a total of
- only 8 `instruments'.
- }:
+ \label{sec:scor2prt}
-\medskip
-\hspace*{2.5em}
-\begin{minipage}{20em} %
- \texttt{mtrauermus1.pmx} \qquad [\,Violoncello\,] \\
- \texttt{mtrauermus2.pmx} \qquad [\,Viola\,] \\
- \texttt{mtrauermus3.pmx} \qquad [\,Violins\,] \\
- \texttt{mtrauermus4.pmx} \qquad [\,French Horn II, in C\,] \\
- \texttt{mtrauermus5.pmx} \qquad [\,French Horn I, in E $\flat$\,] \\
- \texttt{mtrauermus6.pmx} \qquad [\,Basset Horn I, in F\,] \\
- \texttt{mtrauermus7.pmx} \qquad [\,Clarinet in F\,] \\
- \texttt{mtrauermus8.pmx} \qquad [\,Oboes\,]
-\end{minipage}
+\begin{figure}[!ht]
+ \begin{center}
+ \raisebox{-0.75ex}{%
+ \includegraphics[scale=.75]{eps/JChrBach.eps} }
+ \end{center}
+ \caption{\textbf{F.Chr.\ Bach},
+ \emph{quartet B-Dur (p.\ 1)}
+ }
+ \label{fig:JChBach}
+\end{figure}
-\medskip
-To obtain the parts, you then need to run each of these files through
-{\PMX}, in the usual way.
+Separate parts can be made from a score with the tool
+\textbf{scor2prt} (included in the standard {\PMX}
+distribution).
+
+Suppose you want to produce the parts to page 1 of a J.Chr.Bach
+quartet (Fig.~\ref{fig:JChBach}), and the \texttt{.pmx} file of
+that score is called \verb#JChBach.pmx#.
+All you to need to do is to run
+
+\vspace*{-2ex}
+\begin{center}
+ \begin{verbatim}
+ scor2prt JChBach
+ \end{verbatim}
+\end{center}
+
+\vspace*{-4ex}\noindent
+from the command line (if you omit the file name, you will be
+prompted for one). The program will then create the following
+\texttt{.pmx} files, one for each instrument:
+
+\vspace*{-2ex}
+\begin{center}
+ \begin{verbatim}
+ JChBach1.pmx
+ JChBach2.pmx
+ JChBach3.pmx
+ JChBach4.pmx
+ \end{verbatim}
+\end{center}
+
+\vspace*{-3ex}
+To obtain the parts, you then need to run each of these files
+through {\PMX}, in the usual way.
As can be seen in the example, the parts files will be named
[\emph{yourscorename}][\emph{n}]\texttt{.pmx}, where [\emph{n}] is the
@@ -5957,11 +6049,6 @@ aware both of the general restrictions of MIDI and the special ones that
repeats, volte, or segnos. The only ties that are recognized
are those using \texttt{s}, \texttt{t} or \texttt{(} \,; alone,
with no explicit ID number.
- \item _{transposition!not with MIDI} _{octaviation!not with MIDI}
- Neither can the module reproduce music in which notes sound
- differently from what is written in the score. This pertains
- boths to transposing wind instruments and octaviation notation
- (cf.~Sections \ref{sec:mtrauer}, \ref{sec:clefoctaviation}).
\item the MIDI file generator does not support changing the number of
instruments in midstream. You will not see an error message,
but the results will be unpredictable.
@@ -6346,15 +6433,16 @@ There are, however, several methods to use {\LaTeX} and {\PMX} in
use the {\LaTeX} package \textbf{musixltx}, together with
{\MusiXTeX}\,%
\footnote{\textbf{musixltx} is part of the standard
- distribution of the {\MusiXTeX} package.
+ distribution of the {\MusiXTeX}~\texttt{1.15} package.
}.
The {\MusiXTeX} code is then sandwiched between the start and
end of a specific environment:
\begin{center} \vspace*{-2ex}
\verb#\begin{music}# \dots \verb#\end{music}# .
\end{center}\noindent
- For more detail on this method see the {\MusiXTeX} manual by
- Daniel Taupin. _{Taupin, Daniel}
+ For more detail on this method see the
+ {\MusiXTeX} manual by Daniel Taupin. _{Taupin,
+ Daniel}
\medskip
But be aware of the fact that the \texttt{.tex} files produced
@@ -6608,171 +6696,12 @@ Another solution to this problem is to use the {\LaTeX}/{\PMX}
interface \textbf{mtxlatex} (cf.~\ref{sec:LaTeX}); this may be
simpler in cases involving more complicated layout.
-\begin{figure}[!htbp]
- \begin{center}
- \includegraphics[scale=.82]{eps/mtrauermus.eps} \\[2ex]
- \end{center}
- \caption{\textbf{W.A.\ Mozart}, \emph{Mauerische Trauermusik} KV
- 477, bars 1 -- 9
- }
- \label{fig:mtrauermus}
-\end{figure}
-
-\begin{table}[!htbp]
- \begin{center}
-\begin{minipage}{400pt}
-\small
-\begin{verbatim}
----
-% Mozart, Mauerische Trauermusik KV 477, bars 1 -- 9
----
-10 -8 1 1 2 1 1 1 1 2
-4 4 5 0
-0 -3
-1 1 16 0.22
-Violoncello
-Viola
-Violini
-Corno II in Do
-Corno I in Mi $\flat$
-Corno di Bassetto in Fa
-Clarinetto in Fa
-Oboi
-battttbttt
-./
-AbeplI.8
-w190m
-h250m
-Tc
-W.A. Mozart
-Tt20
-Mauerische Trauermusik \\ KV 477
-h
-Adagio
-%%
-\\setsign{4}{0}\setsign{5}{0}\setsign{6}{-2}\setsign{7}{-1}\
-% standard musixTeX commands to set the signatures of the transposing winds
-%
-\\groupbottom{1}{1}\grouptop{1}{3}\
-\\groupbottom{2}{4}\grouptop{2}{6}\
-\\groupbottom{3}{7}\grouptop{3}{8}\
-% standard musixTeX commands to group instruments together
-\end{verbatim}
-\end{minipage}
- \end{center}
- \caption{{\PMX} code of the \emph{Mauerische Trauermusik}, ,
- bars 1 -- 9
- }
- \label{tab:mtrauermus}
-\end{table}
-
-\subsection{Transposing wind instruments} \label{sec:mtrauer}
-_{transposition}
-
-Fig.~\ref{fig:mtrauermus} contains the first few bars of Mozart's
-``Mauerische Trauermusik KV 477. Two features of this score are
-remarkable from the point of view of {\PMX} coding (given in Table
-\ref{tab:mtrauermus}):
-\begin{enumerate}
- \item[a)] _{instruments!transposing}
- the Mauerische Trauermusik is a piece for 10 instruments\,%
- \footnote{You may have seen (or heard) this piece before with a
- total of 13 instruments: 2 more Corni di bassettto and a
- Gran Fagotto. These were in fact added to the score
- later on by Mozart himself; the score given here
- reflects the orchestra of the first performance (on 17
- Nov. 1785).
- },
- 4 of which are ``transposing wind instruments'' : a clarinet in
- B~$\flat$, a corno di bassetto in F, and two horns in C~.
- Consequently the parts for these instruments must be written with
- a key signature different from the rest of the orchestra (this is
- true also for the 2 horns, even though the piece is in C minor:
- horn parts are invariably written \emph{without any signature}).
- {\PMX} has no mechanism to do that, so once again you have to
- resort to inline {\TeX},
- \item[b)] as is usual with orchestral music, similar instruments are
- grouped together by accolades (square brackets). How do you do
- that in {\PMX}?
-\end{enumerate}
-
-\bigskip
-The example exhibits both features. The header contains the following
-Type 2 inline {\TeX} commands:
-\begin{enumerate}
- \item[a)] _{\MusiXTeX!\bs\texttt{setsign}}
- \begin{verbatim}
-\\setsign{4}{0}\setsign{5}{0}\setsign{6}{-2}\setsign{7}{-1}\
- \end{verbatim}
- \verb#\setsign{n}{m}# sets the ^{key signature} of instrument $n$
- to $m$ sharps (or flats if $m<0$). So this sets the signatures for
- the transposing wind instruments. The {\PMX} notation of the notes
- is then, of course, as they are written, not as they sound, and it
- is the composers's responsibilty, as usual, to get all the
- accidentals right.
-
-\bigskip\bigskip
-\Note{As just explained, this use of \bs\texttt{setsign\{n\}\{m\}} is a
- purely notational device. A seasoned orchestra conductor, when
- seeing the notation (name of instrument, together with the key
- signature), \emph{might mentally} `hear' the sound of a clarinet
- in B\,$\flat$ a full note lower than what he sees written in the
- score; but {\PMX} does \emph{not} know about this when producing a
- MIDI file from that score\,\footnotemark.
-
- _{`transposing' instruments!not in MIDI}
- The upshot of this is: when you have transposing instruments coded
- with \bs\texttt{setsign\{n\}\{m\}} in {\PMX}, don't produce a MIDI
- file; it would be \emph{meaningless}\,\footnotemark.
- } \label{p:mtrauer}
-\addtocounter{footnote}{-1}
-\footnotetext{This is to be clearly distinguished from a difference in
- clefs: the note on the middle line of a staff with a
- violin clef \emph{is} a \texttt{b}, whereas with a bass
- clef it \emph{is} a \texttt{d}, and a MIDI file produced
- by {\PMX} will reflect that correctly.
- }
-
-\addtocounter{footnote}{+1}
-\footnotetext{_{MIDI!Jazz sequencer} _{Mondrup, Christian} If you insist
- on MIDI, their is some extra work to be done to the
- \texttt{.tex} output file of {\PMX}. Describing this is
- beyond the scope of this tutorial; you may find help with
- the freely available ``MIDI Jazz sequencer'' available
- from \\[-2ex]
- \hspace*{\fill}
- \href{http://www.jazzware.com/cgi-bin/Zope.cgi/jazzware}%
- {\texttt{http://www.jazzware.com/cgi-bin/Zope.cgi%
- /jazzware}}~.
- \hspace*{\fill}
- }
-
- \item[b)] _{\MusiXTeX!\bs\texttt{groupbottom}, \bs\texttt{grouptop}}
- \begin{verbatim}
-\\groupbottom{1}{1}\grouptop{1}{3}\
-\\groupbottom{2}{4}\grouptop{2}{6}\
-\\groupbottom{3}{7}\grouptop{3}{8}\
- \end{verbatim}
-
- These commands gather together 3 groups of instruments
- in the usual way: group 1 is the 4 strings\,%
- \footnote{Note that the two violins as well as the two oboes are
- coded in this {\PMX} source as one two-stave instrument
- each, so that they are accoladed with curly brackets.
- Thus, from the {\PMX} point of view, the whole score
- logically comprises 8 instruments!
- },
- group 2 the 2 horns and the basset horn, group 3 the clarinet and
- the 2 oboes.
-\end{enumerate}
-
-
\subsection{Clef octaviation} \label{sec:clefoctaviation}
_{octaviation}
As was noted in Section~\ref{sec:octaviation}, {\PMX} does not
presently provide a notation for octaviation; but native {\MusiXTeX}
-does; cf.~the {\MusiXTeX} manual, Sec.~2.11 for details.
+does; cf.~the {\MusiXTeX}~\texttt{1.15} manual, Sec.~2.11 for details.
\medskip
Consider, for example, bar 155 of the $2^\text{nd}$ movement of
@@ -6832,7 +6761,6 @@ the preamble.
\medskip
\Note{When using this octaviation notation in a score, do not try to
produce a MIDI file for that score: it will come out faulty
- (cf.~the Note on p.\pageref{p:mtrauer}).
}
\section{More tricks}
@@ -6932,16 +6860,16 @@ which does what you want.
\medskip
Can one find a way to circumvent this restriction? A pedestrian,
awkward way around might be this: remembering that \PMX\ is a
- preprocessor for MusixTeX, and in a second pass \TeX\ processes the
+ preprocessor for MusiXTeX, and in a second pass \TeX\ processes the
\PMX\ output, one could simply enter some arbitrary note in place of
the desired rest, run \PMX\ , and then in the resulting \TeX\ file
replace the arbitrary note \emph{manually} by the appropriate
- MusixTeX rest symbol \emph{before} running the file through \TeX\ for
- the the 2nd pass.
+ {\MusiXTeX} rest symbol \emph{before} running the file through \TeX\
+ for the the 2nd pass.
This semi-solution however, has two major drawbacks:
\begin{enumerate}
- \item it takes a certain amount of aquaintance with basic MusixTeX,
+ \item it takes a certain amount of aquaintance with basic MusiXTeX,
so this is not for everyone;
\item more dangerously, this hack goes away if and when you
rerun \PMX\ ! So if you are still in the middle of a
@@ -6991,14 +6919,14 @@ if you use wrong ones, \PMX\ will complain in the usual way.
\medskip
Explaining the inline {\TeX} commands in detail would go beyond the
-scope of this tutorial. But if you know some of the MusixTeX
+scope of this tutorial. But if you know some of the MusiXTeX
terminology, you will recognize that these commands conform to the
-MusixTeX names for quarter and half notes etc.\,%
+MusiXTeX names for quarter and half notes etc.\,%
\footnote{This knowledge may be useful if you want to produce more
complicated xtuplets with ending rests than the simple
- examples given here. The new MusixTeX-T114 manual may be
- helpful in such cases. If that doesn't help: consult a
- {MusiXTeX}pert!
+ examples given here. The new {\MusiXTeX}~\texttt{1.15} manual
+ may be helpful in such cases. If that doesn't help: consult a
+ {\MusiXTeX}pert!
}
The inline commands are then each followed by a dummy note. Usually it
@@ -7068,9 +6996,9 @@ r4 | b83 Dmf b b b \FE\ b2 | \FE\ a2 a8 a b b |
\medskip _{semiquavers|see{sixteenths}} _{sixteenths}
_{shorthand!for semiquavers}
If you want such a shorthand for semiquavers (sixteenth notes), you
- need to consult the {\MusiXTeX} manual: you will find that all you
- need to do is to replace \bs\texttt{ibl0} and \bs\texttt{ibl0} by
- \bs\texttt{ibbl0} and \bs\texttt{ibbl0} , resp.
+ need to consult the {\MusiXTeX}~\texttt{1.15} manual: you will find
+ that all you need to do is to replace \bs\texttt{ibl0} and
+ \bs\texttt{ibl0} by \bs\texttt{ibbl0} and \bs\texttt{ibbl0} , resp.
\subsection{Varying the stave sizes} \label{sec:varstaves}
@@ -7094,9 +7022,9 @@ staves \emph{and only these}\,%
\medskip
The second macro, named \verb#curly.tex#\,%
-\footnote{\texttt{curly.tex}, if not included in your {\MusiXTeX}
- installation, is available in the ``add-ons'' software
- section of the WIMA.
+\footnote{\texttt{curly.tex}, if not included in your
+ {\MusiXTeX} installation, is available in the ``add-ons''
+ software section of the WIMA.
},
provides a brace as an accolade of a set of staves\,% to be grouped
to\-gether\,%
@@ -7337,9 +7265,10 @@ coded by Luigi Cataldi).
The {\PMX} code for the Dufay Kyrie contains a few inline {\TeX}
commands; this is done intentionally so you again can get a feel of the
usage of inline {\TeX}; to understand them fully, however, you will have
-to consult the {\MusiXTeX} documentation.Similarily, you can get an idea
-from the Vivaldi and Caccini example what {\MTX} is all about. For a
-full understanding, you again need to look at the {\MTX} documentation.
+to consult the {\MusiXTeX}~\texttt{1.15} documentation.Similarily, you
+can get an idea from the Vivaldi and Caccini example what {\MTX} is all
+about. For a full understanding, you again need to look at the {\MTX}
+documentation.
\subsection{Dufay, \emph{Kyrie} ({\PMX} code) :}
\label{sec:Dufay} \label{p:Dufay} _{\PMX!full-score example}
@@ -7677,7 +7606,7 @@ f4 ) f8 g8 (~ [ a1 b1 c1 b1 ] [ a8 g8 ]
d4.e f.e
b2 zf f zc+
b2 a2 6
-
+
% Bar 4
[ fd8 g1 ] [ f8 g8 ] [ a1 ( g g8 ) ] [ a1 ( f f8 ) ] )~
d0e
@@ -7789,7 +7718,7 @@ e8 d8 e8 f8 g2
c2 r8+0 e d c
g2 ze rb
( c2 c8 ) c8 b8 a8
-
+
% Bar 22
g4 d4 d2
bnr4 ( c c ) b
@@ -7816,151 +7745,76 @@ e2 f
g2 zc c za
c2+ f2-
-% Bar 26
-d2 r8 b8+ b a
-f2 g
-b2 zd d zb
-b4 b8 a8 g2 -
-
-% Bar 27
-g8 e8 e8 f8 g4 [ f1 g1 a1 b1 ]
-g4 f e ( f
-c2 ze c zg
-c2 c4 \zcharnote{-4}{\num 11}\ c4
-
-% Bar 28
-g0
-f2 ) cr4 b
-g2 zc e zg-
-%%%%%% The two following lines must actually be written in one line!
-\zcharnote{-4}{\num 11}\ (5t c2
-(6t \zcharnote{-4}{\num 10}\ c4 )5t c 7 )6t
+% Bar 26 d2 r8 b8+ b a f2 g b2 zd d zb b4 b8 a8 g2 -
-% Bar 29
-f0
-f0+
-a0
-f0-
-
-% Bar 30
-ad2 g8 f8
-f4 ( c c ) bn
-a4 g ( f f )
-f4+ e4 ( d 7 d #6 )
+% Bar 27 g8 e8 e8 f8 g4 [ f1 g1 a1 b1 ] g4 f e ( f c2 ze c zg c2
+c4 \zcharnote{-4}{\num 11}\ c4
-% Bar 31
-e8 d8 e8 f8 g2
-c2 r8+0 e d c
-g2 ze rb
-( c2 c8 ) c8 b8 a8
-
-% Bar 32
-gd8 (~ g1 [ f1 e1 d1 c1 ] )~ d2
-bnr4 ( c c ) b
-g0 zd+
-%%%%%% The two following lines must actually be written in one line!
-\zcharnote{-6}{\num $\sharp $10}\ ( g4 \zcharnote{-6}{\num 11}\ g )
-( \zcharnote{-6}{\num 11}\ g \zcharnote{-6}{\num $\sharp $10}\ g )
-
-% Bar 33
-c0
-e0
-c0 zg
-c0
+% Bar 28 g0 f2 ) cr4 b g2 zc e zg- %%%%%% The two following
+lines must actually be written in one line! \zcharnote{-4}{\num
+11}\ (5t c2 (6t \zcharnote{-4}{\num 10}\ c4 )5t c 7 )6t
-% Bar 34
-gd4+ e8 a4 g8 f8
-e2 e4 f
-g2 zc c za
-c2 a4 f4
+% Bar 29 f0 f0+ a0 f0-
-% Bar 35
-g2 f8 f8 f8 e8
-e2 f
-g2 zc c za
-c2+ f2-
+% Bar 30 ad2 g8 f8 f4 ( c c ) bn a4 g ( f f ) f4+ e4 ( d 7 d #6
+)
-% Bar 36
-d2 r8 b8+ b a
-f2 g
-b2 zd d zb
-b4 b8 a g2 -
-
-% Bar 37
-g2 r8 c8 c8 b8
-g2 a4 b
-c2 ze c4 zf d zg
-c4 c8 b8 a4 6 g4
-
-% Bar 38
-a4 b4 ( c2
-a2 a
-f2 c
-f2 a4 6 b4
-
-% Bar 39
-[ c8 ) (~ b1 a1 ] [ g1 f1 e1 d1 ] [ e1 d1 c1 d1 ] [ e1 f1 g1 a1 ]
-g0
-c0 ze
-c0
-
-% Bar 40
-[ g1 c1- d1 e1 ] [ f1 g1 a1 b1 ] [ c1 b1 a g1 ] [ a1 g1 a1 f1 ]
-e0
-c0 zg
-c0
+% Bar 31 e8 d8 e8 f8 g2 c2 r8+0 e d c g2 ze rb ( c2 c8 ) c8 b8
+a8
-% Bar 41
-g0 )~
-f2 e
-\zw N\ ce2d+0+1 b4
-%%%%%% The two following lines must actually be written in one line!
-\zcharnote{-4}{\num 11}\
-(1t c2 (2t \zcharnote{-4}{\num 10}\ c4 )1t c 7 )2t
+% Bar 32 gd8 (~ g1 [ f1 e1 d1 c1 ] )~ d2 bnr4 ( c c ) b g0 zd+
+%%%%%% The two following lines must actually be written in one
+line! \zcharnote{-6}{\num $\sharp $10}\ ( g4 \zcharnote{-6}{\num
+11}\ g ) ( \zcharnote{-6}{\num 11}\ g \zcharnote{-6}{\num
+$\sharp $10}\ g )
-% Bar 42
-f0
-f0
-a0
-f0-
-%
-%----------------%
-%
-% end Caccini, Amor l'ali m'impenna
-%
-%----------------%
-\end{verbatim}
+% Bar 33 c0 e0 c0 zg c0
+
+% Bar 34 gd4+ e8 a4 g8 f8 e2 e4 f g2 zc c za c2 a4 f4
+
+% Bar 35 g2 f8 f8 f8 e8 e2 f g2 zc c za c2+ f2-
+
+% Bar 36 d2 r8 b8+ b a f2 g b2 zd d zb b4 b8 a g2 -
+
+% Bar 37 g2 r8 c8 c8 b8 g2 a4 b c2 ze c4 zf d zg c4 c8 b8 a4 6
+g4
+
+% Bar 38 a4 b4 ( c2 a2 a f2 c f2 a4 6 b4
+
+% Bar 39 [ c8 ) (~ b1 a1 ] [ g1 f1 e1 d1 ] [ e1 d1 c1 d1 ] [ e1
+f1 g1 a1 ] g0 c0 ze c0
+
+% Bar 40 [ g1 c1- d1 e1 ] [ f1 g1 a1 b1 ] [ c1 b1 a g1 ] [ a1 g1
+a1 f1 ] e0 c0 zg c0
+
+% Bar 41 g0 )~ f2 e \zw N\ ce2d+0+1 b4 %%%%%% The two following
+lines must actually be written in one line! \zcharnote{-4}{\num
+11}\ (1t c2 (2t \zcharnote{-4}{\num 10}\ c4 )1t c 7 )2t
+
+% Bar 42 f0 f0 a0 f0- % %----------------% % % end Caccini,
+Amor l'ali m'impenna % %----------------% \end{verbatim}
\end{small} \end{center}
-\begin{figure}[!htb]
- \begin{center}
-\includegraphics[scale=.75]{eps/caccini1.eps}
- \end{center}
-\end{figure}
-\begin{figure}[!htb]
+\begin{figure}[!htb] \begin{center}
+ \includegraphics[scale=.75]{eps/caccini1.eps}
+ \end{center} \end{figure} \begin{figure}[!htb]
\begin{center}
-\includegraphics[scale=.75]{eps/caccini2.eps}
- \end{center}
-\end{figure}
-\begin{figure}[!htbp]
+ \includegraphics[scale=.75]{eps/caccini2.eps}
+ \end{center} \end{figure} \begin{figure}[!htbp]
\begin{center}
-\includegraphics[scale=.75]{eps/caccini3.eps}
- \end{center}
- \caption{\textbf{G.\ Caccini}, \emph{Amor l'ali m'impenna}
- (generated by {\MTX}/{\PMX})}
- \label{fig:caccini}
-\end{figure}
+ \includegraphics[scale=.75]{eps/caccini3.eps}
+ \end{center} \caption{\textbf{G.\ Caccini}, \emph{Amor
+ l'ali m'impenna} (generated by {\MTX}/{\PMX})}
+ \label{fig:caccini} \end{figure}
\addcontentsline{toc}{chapter}{Index}
-\renewcommand{\seename}{$\;\Rightarrow\;$}
\printindex
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% End of PMX tutorial by ccn / Mon 2003 Sep 22 /19:15 /ccn
+% End of PMX tutorial by ccn / Mon 2003 Sep 22 /19:15
+/ccn
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)))
-
-
diff --git a/Master/texmf-dist/doc/support/pmx/ChangeLog b/Master/texmf-dist/doc/support/pmx/ChangeLog
new file mode 100644
index 00000000000..e4e72d6c87d
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pmx/ChangeLog
@@ -0,0 +1,205 @@
+Changes from PMX 2.5 to 2.603, 15 April 2011
+
+2.501 (Note: new scor2prt)
+
+Bugfix: initialize index in PMX subroutine putorn to eliminate subscript
+error detected in some compilers Bugfix in scor2prt: Ignore special
+treatment of special symbols if they appear between double quotes.
+Tweak: move end of first part of line­break ties slightly to the right.
+
+2.502 (Note: new pmx.tex)
+
+The height of a figured bass vertical stack can now be adjusted upward by
+an integral number of \internote by appending "+" and the number. Recall
+that it can already be moved downward 4\internote by prepending "_"
+(underscore). The two options can be combined to provide full control
+over the vertical position. Ties can now be represented with braces
+"{" before a note and "}" after. Both are equivalent to "t" after the
+note. (Thanks to Dirk Laurie). In pmx.tex all the commands of the form
+\font\...=\fontid sy1000 have been changed to \font\...=cmsy10 (Thanks
+to Olivier Vogel).
+
+2.503
+
+Enable arpeggio left shift with ?­[x] Allow musicsize of 24 and 29.
+Bugfix: Fix bug introduced in 2.415 which caused error in printing
+replacement number in xtup.
+
+2.504
+
+Gap between normal grace and main note: X[x] as option to the G command,
+where x is the gap size in notehead widths. Bugfix: og (segno) now
+works OK when nv .ne. noinst.
+
+2.505
+
+A new global option AK activates special rules for vertical positioning of
+rests in two­voice staves. By way of background, without the new option,
+rests in two­voice staves have default positions based on a simple rule
+that is not context­sensitive: those in the lower voice (the one before
+"//") are 4\internote below their single­voice default positions,
+and those in the upper line are 2\internote above the single­voice
+default. The new option invokes a set of context­sensitive rules to
+set the default position. The baseline rule is to align the rest in
+a horizontal line with the next following note in the same bar. If
+there is no following note in the bar, then it is aligned with the next
+prior note. If there are simulataneous rests in both voices, the old
+rule is applied. When the AK option is in force, it only affects places
+where there are two voices in a staff. It may be toggled on and off at
+the beginning of any input block, using just AK. When the option is in
+effect, any user­defined tweaks on the height of a rest will supersede
+the option for that particular rest, i.e., the tweak will be applied
+relative to the single­voice default position.
+
+2.506
+
+Fixes a bug in AK. Simultaneous, equal­duration rests will be positioned
+according to the default rules.
+
+2.507
+
+Enhancement to global option AK for vertical positioning of rests in
+two­voice staves (see version 2.505): The option L ("look left") in a rest
+will cause the vertical position of that rest to be based on the preceding
+note, rather than the following one as is the default when AK has been
+issued Partial bugfix: In unbeamed xtuplets, the length of the bracket
+and position of the number are now adjusted to account for any inserted
+hardspaces. Bugfix: unbeamed xtups with two flags are now allowed.
+
+2.508
+
+Allow grace notes in xtuplets.
+
+2.509
+
+Correct small bug in arpeggio left­shifting (it got confused when there
+was more than one voice on a staff).
+
+2.510
+
+Bugfix: Correct omission of character variable declarations in new
+subroutine getgrace introduced in 2.508.
+
+2.511 (Note: new scor2prt named s2p2511.exe)
+
+Bugfix: Correct error in horizontal spacing introduced in 2.507.
+Experiment: Remove prohibition against tempo changes in MIDI macros.
+Bugfix in scor2prt: Make it work right when "R" command occurs at end
+of input block and "/" is on next line (as produced by M­Tx).
+
+2.512
+
+Enable multiplicity down­up "][" within xtuplet
+
+2.513
+
+Bugfix: If there is more than one rest at start of a beamed xtuplet marked
+as a forced beam, beam height and slope tweaks are now properly handled.
+Bugfix: If an xtuplet with multiplicity 2 or 3 starts with a rest, the
+rest is now printed correctly. Bugfix: Unbeamed xtuplets (with option
+'a' on first note) with multiplicity 2 or 3 are now printed correctly.
+
+2.514
+
+Bugfix: Correct horizontal spacing when after­grace is immediately
+followed by normal grace. Bugfix: Correct transpose register when it
+has been changed in a single after­grace.
+
+2.515
+
+Bugfix: Correct error in automatic forced beams. Before the fix, if the
+beam did not start an integral number of beam durations from the start
+of the bar, incorrect results would occur. Bugfix: Properly center
+fermata over centered whole­bar rest.
+
+2.516 (Note: new pmx.tex)
+
+Allow figures in voice #2.
+
+2.517
+
+Allow figures in two voices, voice 1 and any other one.
+
+2.518
+
+Bug fixes in 2­voice figures.
+
+2.519
+
+Fix bug that prevented \sk from being output, misaligning some voices.
+
+2.520
+
+New feature: special characters 2+, 4+, 5+, 6+, 9+ for figured bass. In
+the PMX string for any figure, follow the number by 's'. This uses the
+font cmrj from the new package figbas. You must install this font in
+your TeX setup for this to work.
+
+2.521
+
+Bugfix: Font definition syntax corrected so no extra space is introduced.
+
+2.602 (Note: new pmx.tex; requires eTeX)
+
+Allow 24 voices, beams, slurs. Require etex. Include comment about
+doubling size of internal buffer to 131072, requiring gfortran for
+Windows to compile. Correct slur indexing in linebreakslurs. Account for
+comment lines in line count for error messages
+
+2.603 (Note: new scor2prt)
+
+In getpmxmod.for, decrease nline by 2 to fix locating errors following
+reading in an include file. Add some error messages in g1etset.for
+setup data
+
+2.610
+
+Instrument-wise transposition: Ki[instrument #][+/-][trans
+amt.][+/-][new key]. For more than one instrument, may immediately
+repeat everything after "K". Must either be at start of score (right
+after setup), or if later, must be preceded by normal (full score) key
+change command K+0[+/-][new key]. Must be used with relative accidentals
+("Ar"). Part(s) to be transposed must be entered in concert key, and
+will appear transposed in the score. MIDI behavior not yet tested.
+Has not yet been integrated into scor2prt, so for now if you want to
+make parts, only use Ki... as score-only (on line after "%%") and/or
+instrument only (on same line after %[Instrument #]).
+
+2.613
+
+Set error trap if "D" is entered before any notes.
+
+Enhance "AS" to allow spacing adjustments tailored for either smallsize
+or tinysize. As before, "AS" must be followed by nv characters, but now
+they may be "0" for normal, "-" or "s" for small, or "t" for tiny. Still
+must set sizes of instruments with inline TeX.
+
+Bugfix: Fixed broken "K-..." in 2.610.
+
+2.614
+
+Bugfix: revise raised dotted rests by separately raising rest and dot.
+
+2.615 *(Note: new scor2prt)*
+
+Command "AS", described above under 2.163, now also causes staff sizes
+to change (in score only, not parts), so inline TeX is no longer needed
+to change sizes of selected staves.
+
+Scor2prt transfers partwise transposition commands Ki... (see 2.610
+above) into parts.
+
+2.616
+
+"Feature" added: Hairpin dynamics now may span input blocks.
+
+2.617
+
+Repaired several obscure bugs related to platform and compiler
+dependencies; see pmxab.f for details.
+
+2.618
+
+For letter and a4 paper respectively, commands "Acl" and "Ac4" set
+horizontal and vertical sizes and offsets that center the page with no
+further adjustments required in dvips.
diff --git a/Master/texmf-dist/doc/support/pmx/OSX/pmxab b/Master/texmf-dist/doc/support/pmx/OSX/pmxab
new file mode 100755
index 00000000000..9e02a8807c1
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pmx/OSX/pmxab
Binary files differ
diff --git a/Master/texmf-dist/doc/support/pmx/OSX/scor2prt b/Master/texmf-dist/doc/support/pmx/OSX/scor2prt
new file mode 100755
index 00000000000..7617305ed4d
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pmx/OSX/scor2prt
Binary files differ
diff --git a/Master/texmf-dist/doc/support/pmx/README b/Master/texmf-dist/doc/support/pmx/README
new file mode 100644
index 00000000000..69a4f36f641
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pmx/README
@@ -0,0 +1,79 @@
+This is PMX, version 2.6.18 (May 15th, 2012). PMX provides a preprocessor for MusiXTeX.
+
+pmxab builds a TeX input file based on a .pmx input file in a much
+simpler language, making most of the layout decisions by itself. It has
+most of MusiXTeX's functionality, but it also permits in-line TeX to
+give access to virtually all of MusiXTeX. For proof-listening, pmxab will
+make a MIDI file of your score.
+
+scor2prt is an auxiliary program that makes parts from a score.
+
+pmx2pdf is a wrapper script that runs pmxab, all 3 passes of MusiXTeX,
+and subsequent conversions to PDF.
+
+The author of pmxab and scor2prt is Don Simons (dsimons@roadrunner.com).
+The author of the pmxccn tutorial is Cornelius C. Noack.
+
+This package consists of
+
+ (i) pmx-texmf.zip, which contains macros, documentation, and the
+ pmx2pdf.lua script
+
+ (ii) pmx-2.6.18.tar.gz, which contains the source code for
+ pmxab and scor2prt
+
+(iii) directories Windows and OSX, which contain pre-compiled
+ pmxab and scor2prt executables for those platforms
+
+ (iv) pmx-install.{tex,pdf}, which is a more detailed version of the
+ following instructions:
+
+To install (on TDS-compliant TeX systems):
+
+ + unzip pmx-texmf.zip at the root of a texmf tree and, if necessary,
+ update the filename database; e.g., texhash texmf. Documentation for
+ PMX is installed under doc/generic/pmx.
+
+ + on Windows or OS-X: copy the pre-compiled executables appropriate for your
+ platform to a folder on the executable PATH
+
+ + on any Unix-like system with gcc and standard development tools installed:
+ unpack the pmx tarball (anywhere), move to the resulting pmx-2.6.18 directory
+ and do
+
+ ./configure
+ make
+ make install (as root)
+
+ + on Windows: copy the file scripts\pmx\Windows\pmx2pdf.bat to a folder on the
+ executable PATH
+
+ + on any Unix-like system: install a symbolic link pmx2pdf in any
+ directory on the executable PATH to scripts/pmx/pmx2pdf.lua
+
+In this release of PMX, the original Fortran sources for pmxab and
+scor2prt have been included but the C files actually used have been
+obtained from these by the f2c translator. The source files for libf2c,
+which is needed at link time, are also included.
+
+Documentation for PMX is installed under
+
+doc/generic/pmx
+
+Many examples of PMX and MusiXTeX typesetting may be found at the Werner
+Icking Music Archive at
+
+http://icking-music-archive.org/
+
+Support for users of MusiXTeX and related software may be obtained via
+the MusiXTeX mail list at
+
+http://tug.org/mailman/listinfo/tex-music
+
+PMX may be freely copied, duplicated and used in conformance to the GNU
+General Public License (see included file COPYING). The libf2c source
+files are governed by a Notice that allows copying, modification and
+distribution.
+
+This CTAN distribution is maintained by Bob Tennent (rdt@cs.queensu.ca).
+May 15th, 2012.
diff --git a/Master/texmf-dist/doc/support/pmx/pmx-install.pdf b/Master/texmf-dist/doc/support/pmx/pmx-install.pdf
new file mode 100644
index 00000000000..cf6046c331f
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pmx/pmx-install.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/pmx/pmx-install.tex b/Master/texmf-dist/doc/support/pmx/pmx-install.tex
new file mode 100644
index 00000000000..67b27d82905
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pmx/pmx-install.tex
@@ -0,0 +1,163 @@
+\documentclass[11pt]{article}
+\usepackage[textwidth=6.5in,textheight=8.5in]{geometry}
+\usepackage[osf]{mathpazo}
+\PassOptionsToPackage{urlcolor=black,colorlinks}{hyperref}
+\RequirePackage{hyperref}
+\usepackage{xcolor}
+\newcommand{\myurl}[1]{\textcolor{blue}{\underline{\textcolor{black}{\url{#1}}}}}
+\newcommand{\pmxVersion}{2.6.18}
+\begin{document}
+\title{Installation of the CTAN PMX Distribution}
+\author{Bob Tennent\\
+\small\url{rdt@cs.queensu.ca}}
+\date{\today}
+\maketitle
+\thispagestyle{empty}
+
+\section{Introduction}
+We assume that you have already installed a MusiXTeX distribution.
+Before trying to install PMX from CTAN, check whether your TeX distribution
+provides a package for PMX; this will be easier than doing it yourself.
+But if your TeX distribution
+doesn't have PMX (or doesn't have the most recent version), this distribution
+of PMX is very easy to install, though
+you may need to read the material on
+installation of (La)TeX files in the
+TeX FAQ\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html}},
+particularly
+the pages on
+which tree to use\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=what-TDS}}
+and installing files\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf}}.
+
+\section{Installing \texttt{pmx-texmf.zip}}
+
+In this distribution of PMX, most of the files to be installed
+(including macros, documentation, and a processing script) are in
+\texttt{pmx-texmf.zip}, a zipped TEXMF
+hierarchy. Simply unzip this archive in the root folder/directory of whichever TEXMF tree
+you decide is most appropriate, likely a ``local'' or ``personal'' one.
+This should work with any TDS\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds}}
+compliant TeX distribution, including MikTeX, TeXlive and teTeX.
+
+After unzipping the archive, update the filename database as necessary,
+for example, by executing \verb\texhash ~/texmf\ or
+clicking the button labelled ``Refresh FNDB" in the MikTeX settings program.
+
+Documentation for PMX is installed under \verb\doc/generic/pmx\
+in the TEXMF tree.
+
+\section{Installing \texttt{pmxab} and \texttt{scor2prt}}
+
+The next step in the installation is to install
+the two essential files that can't be installed in a TEXMF tree: the \texttt{pmxab} preprocessor
+and \texttt{scor2prt}, an executable used to produce single-player parts from multi-player scores.
+
+\subsection{Pre-Compiled Executables}
+
+On Windows
+systems, one can install \texttt{pmxab.exe} and
+\texttt{scor2prt.exe} in the \texttt{Windows} sub-directory; these are pre-compiled
+executables and should be copied to any
+folder on the PATH of executables.
+This might entail creating a suitable folder and adding that folder
+to the PATH as follows:
+in ``My Computer''
+click on
+\begin{center}
+View System Information\quad$\rightarrow$\quad Advanced\quad$\rightarrow$\quad Environment Variables
+\end{center}
+scroll
+down to ``path'', select it, click edit, and add the path to \verb|...\scripts\musixtex\Windows| after a semi-colon.
+
+
+On the MAC OS-X platform (version 10.2 or better), one can install \texttt{pmxab} and \texttt{scor2prt} that are in the
+\texttt{OSX} sub-directory.
+
+\subsection{Compilation from Source}
+
+If you have conventional GNU development tools (\texttt{tar}, \texttt{gunzip}, \texttt{make})
+and \texttt{gcc}\footnote{%
+\myurl{http://gcc.gnu.org/gcc/}}
+on your platform,
+you should be able to build \texttt{pmxab} and \texttt{scor2prt} executables.
+
+To build \texttt{pmxab} and \texttt{scor2prt} for your platform:
+\begin{enumerate}
+\item Unpack the \texttt{pmx-\pmxVersion.tar.gz} archive:
+\begin{list}{}{}
+\item \texttt{tar zxvf pmx-\pmxVersion.tar.gz}
+\end{list}
+and move to the resulting \texttt{pmx-\pmxVersion} directory.
+\item Configure:
+\begin{list}{}{}
+\item \verb\./configure\
+\end{list}
+or, if you want the executables to be installed in your own path,
+\begin{list}{}{}
+\item \verb\./configure --prefix=$HOME\
+\end{list}
+\item Install:
+\begin{list}{}{}
+\item \verb\make install\
+\end{list}
+as root (admin) to install to the system path, or just
+\begin{list}{}{}
+\item \verb\make install\
+\end{list}
+to install in your own path.
+\end{enumerate}
+You should now have executables \verb\pmxab\ and
+\verb\scor2prt\ available for use.
+
+\section{The Processing Script}
+
+The Lua script \verb\.../scripts/pmx/pmx2pdf.lua\
+is simply a convenient wrapper that
+by default runs the following processes in order (and then deletes intermediate files):
+\begin{itemize}\topsep=0pt\itemsep=0pt
+\item \verb\pmxab\ (pre-processing pass)
+\item \verb\etex\ (1st pass)
+\item \verb\musixflx\ (2nd pass)
+\item \verb\etex\ (3rd pass)
+\item \verb\dvips\ (to convert \verb\dvi\ output to Postscript)
+\item \verb\ps2pdf\ (to convert \verb\ps\ output to Portable Document Format)
+\end{itemize}%
+There are many options to vary the default behaviour.
+
+On a Unix-like system (with \texttt{luatex} installed), put a
+symbolic link \texttt{pmx2pdf} in any directory on the executable PATH as follows:
+\begin{list}{}{}
+\item \verb\ln -s <path to pmx2pdf.lua> pmx2pdf \
+\end{list}
+On Windows, you can \emph{either}
+copy the batch file
+\begin{list}{}{}
+\item \verb|...\scripts\pmx\Windows\pmx2pdf.bat|
+\end{list}
+to a folder
+on the executable PATH \emph{or} add the folder
+\verb|...\scripts\pmx\Windows| to the executable PATH as explained above.
+
+Documentation for \verb\pmx2pdf\ is in the
+\verb\doc/generic/pmx/scripts\ directory.
+
+
+\section{Discussion}
+
+
+
+Other pre-processor packages, additional documentation, additional
+add-on packages, and many examples of PMX and MusiXTeX typesetting may be found
+at the Werner Icking Music Archive\footnote{%
+\myurl{http://icking-music-archive.org}}.
+Support for users of MusiXTeX and related software may be obtained via
+the MusiXTeX mail list\footnote{%
+\myurl{http://tug.org/mailman/listinfo/tex-music}}.
+PMX may be freely copied, duplicated and used in conformance to the
+GNU General Public License (Version 2, 1991, see included file \verb\gpl.txt\).
+
+\end{document}
diff --git a/Master/texmf-dist/scripts/pmx/Windows/pmx.bat b/Master/texmf-dist/scripts/pmx/Windows/pmx2pdf.bat
index 6373c4d63aa..24184c8deeb 100755
--- a/Master/texmf-dist/scripts/pmx/Windows/pmx.bat
+++ b/Master/texmf-dist/scripts/pmx/Windows/pmx2pdf.bat
@@ -1,5 +1,5 @@
-:: wrapper script to call pmx.lua
-:: Usage: pmx [options] basename[.pmx]
+:: wrapper script to call pmx2pdf.lua
+:: Usage: pmx2pdf [options] basename[.pmx]
:: Suggested by Tomasz Luczak (Tomek) t34www@googlemail.com
@for /f "delims=" %%I in ('kpsewhich --format=texmfscripts %~n0.lua') do texlua "%%I" %*
diff --git a/Master/texmf-dist/scripts/pmx/pmx.lua b/Master/texmf-dist/scripts/pmx/pmx2pdf.lua
index 035c9515d93..37790841e5f 100755
--- a/Master/texmf-dist/scripts/pmx/pmx.lua
+++ b/Master/texmf-dist/scripts/pmx/pmx2pdf.lua
@@ -1,11 +1,12 @@
#!/usr/bin/env texlua
-VERSION = "0.2"
+VERSION = "0.2.1"
--[[
- pmx.lua: processes MusiXTeX files using pmxab as a pre-processor (and deletes intermediate files)
+ pmx2pdf: processes MusiXTeX files using pmxab as a pre-processor
+ (and deletes intermediate files)
- (c) Copyright 2011 Bob Tennent rdt@cs.queensu.ca
+ (c) Copyright 2011-12 Bob Tennent rdt@cs.queensu.ca
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
@@ -26,6 +27,9 @@ VERSION = "0.2"
--[[
ChangeLog:
+ version 0.2.1 2012-05-15 RDT
+ renamed to avoid possible name clashes
+
version 0.2 2011-11-28 RDT
added -i (retain intermediate files) option
@@ -34,7 +38,7 @@ VERSION = "0.2"
--]]
function usage()
- print("Usage: [texlua] pmx.lua { option | basename[.pmx] } ... ")
+ print("Usage: [texlua] pmx2pdf { option | basename[.pmx] } ... ")
print("options: -v version")
print(" -h help")
print(" -l latex (or pdflatex)")
@@ -47,7 +51,7 @@ function usage()
end
function whoami ()
- print("This is pmx.lua version ".. VERSION .. ".")
+ print("This is pmx2pdf version ".. VERSION .. ".")
end
whoami()
@@ -138,7 +142,7 @@ repeat
end
end
else
- print("pmx/MusiXTeX processing of " .. filename .. ".pmx fails.\n")
+ print("PMX/MusiXTeX processing of " .. filename .. ".pmx fails.\n")
exit_code = 2
--[[ uncomment for debugging
print("tex = ", tex)
diff --git a/Master/texmf/doc/man/man1/pmx.man1.pdf b/Master/texmf/doc/man/man1/pmx.man1.pdf
deleted file mode 100644
index da954145382..00000000000
--- a/Master/texmf/doc/man/man1/pmx.man1.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf/doc/man/man1/pmx.1 b/Master/texmf/doc/man/man1/pmx2pdf.1
index 5d699c826b3..9ffcf094377 100644
--- a/Master/texmf/doc/man/man1/pmx.1
+++ b/Master/texmf/doc/man/man1/pmx2pdf.1
@@ -1,12 +1,12 @@
.\" This manpage is licensed under the GNU Public License
-.TH pmx 1 2011-11-28 "pmx script, version 0.2" ""
+.TH pmx2pdf 1 2012-05-15 "pmx2pdf script, version 0.2.1" ""
.SH NAME
-pmx \- This script processes pmx files and then deletes intermediate files
+pmx2pdf \- This script processes pmx files and then deletes intermediate files
.SH SYNOPSIS
[ texlua ]
-.B pmx[.lua]
+.B pmx2pdf
{
.IR option
|
diff --git a/Master/texmf/doc/man/man1/pmx2pdf.man1.pdf b/Master/texmf/doc/man/man1/pmx2pdf.man1.pdf
new file mode 100644
index 00000000000..88c0b4dd42b
--- /dev/null
+++ b/Master/texmf/doc/man/man1/pmx2pdf.man1.pdf
Binary files differ
diff --git a/Master/texmf/doc/man/man1/prepmx.1 b/Master/texmf/doc/man/man1/prepmx.1
deleted file mode 100644
index 299591e2e9d..00000000000
--- a/Master/texmf/doc/man/man1/prepmx.1
+++ /dev/null
@@ -1,95 +0,0 @@
-.TH prepmx 1 "01 September 2005" "M-Tx Version 0.60" "prepmx Manual Page"
-.SH NAME
-prepmx \- preprocessor for PMX, easy music typesetting program
-.SH SYNOPSIS
-.B prepmx
-.RI [ options ]
-.I jobname
-.RI [ outdir/ ]
-.RI [ stylefile ]
-.SH DESCRIPTION
-.B M-Tx
-is an easy to use preprocessor language for the
-.B PMX
-music typesetting program, aimed at people who are not experts. For an
-easy example, have a look at the following example:
-
- c2+ e4 g | b4d- c1 d c2 |
- c8 g+ e g c- g+ e g | d g f g c- g+ e g |
-
-For syntax reference, please look at the M-Tx manual written by Dirk
-Laurie, the creator of the M-Tx language and the author of prepmx, its
-command line utility.
-
-.B prepmx
-processes the file
-.IR jobname .mtx
-to generate
-.IR jobname .pmx.
-You can then process this file using the `pmx' command.
-.B PMX
-is a preprocessor for MusiXTeX.
-
-.I outdir/
-is the directory where `pmx' will put the final .tex file. Note that the
-trailing slash is mandatory. You can provide a
-.I stylefile
-for M-Tx. If omitted, the file `mtxstyle.txt' in the current
-directory is used, if there is one.
-.SH OPTIONS
-Options can also be specified in a `Options:' line in the preamble,
-which takes precedence over the command line.
-.TP
-.B \-b
-never unbeam eighth notes and shorter
-.TP
-.B \-c
-main music lines only \- ignore chords
-.TP
-.B \-D
-enable debug mode
-.TP
-.B \-f
-use tonic sol\-fa note names
-.TP
-.B \-i
-ignore errors
-.TP
-.B \-m
-music only \- ignore lyrics
-.TP
-.B \-n
-indent first system and print default instrument names
-.TP
-.B \-t
-ignore uptext lines
-.TP
-.B \-u
-uptext synchronizes with notes only, not rests
-.TP
-.B \-v
-verbose progress report
-.TP
-.B \-w
-enable pedantic warnings
-.TP
-.BI \- n
-select specified case of multiple score
-.SH EXIT STATUS
-If no error was found,
-.B prepmx
-exits with return code 0. In case of an error, the line number of the
-processed line is returned. This may not always be the line containing
-the actual error. A return status of 10000 means that the input file was
-empty or could not be opened.
-.SH SEE ALSO
-.B M-Tx
-User's Guide (mtx060.pdf)
-.br
-pmx(1), musixtex(1)
-.SH AUTHORS
-prepmx was written by Dirk Laurie <dpl@sun.ac.za>.
-This manual page was written by Roland Stigge <stigge@antcom.de> for the Debian
-project. It was revised and extended by Nis Martensen
-<nis.martensen@web.de>, mostly by copying text from Dirk Laurie's M-Tx
-User's Guide.
diff --git a/Master/texmf/doc/man/man1/prepmx.man1.pdf b/Master/texmf/doc/man/man1/prepmx.man1.pdf
deleted file mode 100644
index 7a821d93ab0..00000000000
--- a/Master/texmf/doc/man/man1/prepmx.man1.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 733ae45669f..7a2d6a929c8 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -311,7 +311,7 @@ my @TLP_working = qw(
pictex pictex2 pictexsum piechartmp piff pigpen
pinlabel pitex pittetd pkfix pkfix-helper placeins placeins-plain
plari plantslabels plates play
- plnfss plweb pmgraph pnas2009
+ plnfss plweb pmgraph pmx pnas2009
poemscol polski poltawski
polyglossia polynom polynomial
polytable postcards poster-mac powerdot powerdot-FUBerlin
diff --git a/Master/tlpkg/bin/tlpkginfo b/Master/tlpkg/bin/tlpkginfo
index 31f6f0d2790..0c300e4c3b7 100755
--- a/Master/tlpkg/bin/tlpkginfo
+++ b/Master/tlpkg/bin/tlpkginfo
@@ -299,7 +299,7 @@ sub prepare {
} else {
$tds_path = "$latex_tds_dir/$pkg.tds.zip";
}
- # and more exceptions to the exceptions:
+ # and more latex exceptions to the latex exceptions:
$tds_path = "$latex_tds_dir/source.tds.zip" if $pkg eq "latex-tds";
$tds_path = "$latex_tds_dir/base.tds.zip" if $pkg eq "latex";
}
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 125da4dd20f..b63da0229d2 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -697,7 +697,6 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'pitthesis', "die 'skipping, noinfo license",
'pl', "die 'skipping, not ready, cf. cc-pl, sorry",
'pl-qx', "&MAKEplqx",
- 'pmx', "die 'skipping, musixtex binaries'",
'pmxchords', "die 'skipping, problematic musixtex scripts'",
'pointRuler', "die 'skipping, requires compilation'",
'poltawski', "&MAKEcopy",
@@ -1009,6 +1008,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'mp3d' => '&PREHOOK_mp3d',
'pgf-blur' => '&PREHOOK_pgfblur',
'pictex' => '&PREHOOK_pictex',
+ 'pmx' => '&PREHOOK_pmx',
'skb' => '&PREHOOK_flatten1',
'suftesi' => '&PREHOOK_suftesi',
'tui' => '&PREHOOK_tui',
@@ -2186,6 +2186,7 @@ $standardxmt='\.xmt';
'perltex' => '\.pl$',
'pkfix' => '\.pl$',
'pkfix-helper' => 'pkfix-helper$',
+# 'pmx' => '\.lua$', # also has real binaries, so cannot do
'pst2pdf' => 'pst2pdf$',
'purifyeps' => 'purifyeps$',
'sty2dtx' => '\.pl$',
@@ -4500,6 +4501,7 @@ sub PREHOOK_mp3d {
}
sub PREHOOK_musixtex {
+ print "PREHOOK_$package - unzip, scripts\n";
# must unzip first so we can find the scripts.
&PREHOOK_unzip ();
#
@@ -4516,6 +4518,19 @@ sub PREHOOK_pgfblur {
&SYSTEM ("pdflatex pgf-blur.dtx");
}
+sub PREHOOK_pmx { # only difference is location of .1's
+ print "YOU-MUST-DO! update Build/source/utils/$package\n";
+ print "PREHOOK_$package - unzip, mans\n";
+ # must unzip first so we can find the scripts.
+ &PREHOOK_unzip ();
+ #
+ &SYSTEM ("$RM -rf $package*.tar.gz Windows"); # leave OSX binaries
+ #
+ my $mandest = "$TOPDEST/texmf/doc/man/man1/";
+ &xmkdir ($mandest);
+ &SYSTEM ("$CP $DEST/doc/generic/$package/*.1 $mandest/");
+ &tl_man_to_pdf ();
+}
sub PREHOOK_pictex {
print "PREHOOK_$package - rm autoarea\n";
diff --git a/Master/tlpkg/tlpsrc/pmx.tlpsrc b/Master/tlpkg/tlpsrc/pmx.tlpsrc
index aea32e45417..0b607f6cda1 100644
--- a/Master/tlpkg/tlpsrc/pmx.tlpsrc
+++ b/Master/tlpkg/tlpsrc/pmx.tlpsrc
@@ -1,9 +1,8 @@
-binpattern f bin/${ARCH}/pmx
+binpattern f bin/${ARCH}/pmx2pdf
binpattern f bin/${ARCH}/pmxab
-binpattern f bin/${ARCH}/prepmx
binpattern f bin/${ARCH}/scor2prt
-docpattern +f texmf/doc/man/man1/pmx.*
+#
+docpattern +f texmf/doc/man/man1/pmx2pdf.*
docpattern +f texmf/doc/man/man1/pmxab.*
-docpattern +f texmf/doc/man/man1/prepmx.*
docpattern +f texmf/doc/man/man1/scor2prt.*